图文精华

分享

2021-05-07 精英班学员作业

 
迁羽 发表于 2021-5-7 19:44:36 [显示全部楼层] 回帖奖励 倒序浏览 阅读模式 关闭右栏 58 1414

本帖最后由 迁羽 于 2021-5-8 10:02 编辑

> 本帖最后由 迁羽 于 2021-5-8 09:58 编辑

一、数据类型测试题

1、以下代码是否能正常运行,并且说明理由。

short sh=12;
sh=s1+1;

2 、char 类型变量能不能储存一个中文的汉字,为什么?

3、以下代码哪些会报错,并且说明理由。

float _float=1.0;
int num=0xFFF;
char ch=75576;

二、运算符测试题

1、判断以下程序的输出结果

float F1=45.9f;
float F2=78.3f;
System.out.println(--F1+F2); 
System.out.println(F1-F2--); 
System.out.println(F1*++F2); 
System.out.println(F1++/F2); 
System.out.println(F1+F1%F2++); 

2、判断以下程序的输出结果

11.png

3、判断以下程序的输出结果

234.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
选择远比努力更重要!
回复

使用道具 举报

已有(78)人评论

跳转到指定楼层
听雨安卓逆向 发表于 2021-5-8 12:48:17
一数据类型;
        short sh=12;
        //    sh=s1+1;
        //    不能运行 s1没有声明或者定义
        char x1 = '中';
     float _float=1.0;//1.0是double类型 要么强转 要么加1.0f
        int num=0xFFF; //16进制当然也是一个int型数字
        char ch=75556;//字符越界了 75556是int类型  char只能存储1个字节
        System.out.println("hello world!!!"+ x1);
输出  hello world!!!中
二运算符;
输出
123.200005  熟悉掌握-- ++ 内容
-33.4
3515.6702 没看懂
0.5734355
91.8 没看懂
char C1='A';
char C2='D';
        System.out.println(C1>C2&&C1<=C2);
        System.out.println(C1>C2||C1<=C2);
        System.out.println(C2!=C1);
        System.out.println(C1>=C2?C1+C2:C1-C2);
        System.out.println(C1<=C2?C1+C2:C1-C2);
        System.out.println("=====================");
  输出     false
             true
             true
            -3
            133
boolean x,y,z;
        int a =15;
        int b=2;
        x=a>b;
        y=a<b;
        z=a!=b;
        System.out.println("x="+x);
        System.out.println("y="+y);
        System.out.println("z="+z);
输出
=====================
      x=true
      y=false
      z=true

by  听雨

点评

总结的很不错  发表于 2021-5-10 18:14
一. 1.不能运行 s1没有定义 2.可以,char和中文都两字节 3.第一个报错,float赋值后需要加f。第三个报错,超过范围 二 1. 123.2 -33.4 3515.67 0.57 91.8 2、flase,true,true,-3,133 3、true,flase,tr  详情 回复 发表于 2021-5-10 16:32
现在是明白了 *不是取地址 擦 是个乘法运算啊 那么我全懂了 --  详情 回复 发表于 2021-5-9 09:42
<
回复

使用道具 举报

爱因斯坦 发表于 2021-5-8 13:24:45

精英班day2-数据类型运算符

本帖最后由 爱因斯坦 于 2021-5-8 14:39 编辑


一、数据类型测试题
1、无法正常运行,①、s1未定义变量和类型file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml16632\wps1.jpg
②、int32/16位) 转换成short(16) 可能会有损失 (大容器到小容器)

2、char的长度刚好可以存一个汉字。 2个字节
3、第一行会报错:单精度浮点数数字末尾需要加f
第三行会报错:intshort可能会有损失
二、运算符测试题
1
float F1=45.9f;
float F2=78.3f;
System.out.println(--F1+F2); //(45.9-1)+78.3=123.2
System.out.println(F1-F2--); //44.9-(78.3-1)=-32.4
System.out.println(F1*++F2); //44.9*78.3=3470.77
System.out.println(F1++/F2);//44.9/78.3=0.5734355044
System.out.println(F1+F1%F2++); //45.9+45.9%78.3=45.9+45.9=91.8
2
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml16632\wps2.jpg
//flase
//true
//true
//c1-c2=-3
//c1+c2=133
3、file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml16632\wps3.jpg
//x=true
//y=flase
//z=true

--本·拉登

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
<
回复

使用道具 举报

小吴 发表于 2021-5-8 13:46:15
1、不能运行,s1未定义

2、在ASCII中一个汉字占两个字节,java中char也是两个字节,所以可以存储

3、第一行和第三行会报错: (1)、java中默认浮点数类型为double,定义float要在浮点数后加上F
(2)、第三行中将int赋值给char肯定会报错,直接类型不匹配了

4、根据运算符的优先级可知:前置++ > 前置-- > + > - 而前置与后置的区别在于前置是在对这个数操作前进行,后置是对这个数操作后进行
System.out.println(--F1+F2); 可知先--在+ ===> 123.2
123.200005
System.out.println(F1-F2--); 此时F1=44.9f了,结合方向为从到右===>33.4
-33.4
System.out.println(F1*++F2); 此时F1=44.9f,F2为77.3f  从左到右,F1 * (++F2) ====>3515.67
3515.6702
System.out.println(F1++/F2); 此时F1=44.9f,F2为78.3f  从左到右,F1 / F2  ====> 0.5734
0.5734355
System.out.println(F1+F1%F2++); 此时F1=45.9f,F2为78.3f  从左到右,F1+(F1%F2)++  ====> 91.8 其中F1<F2,与F2做取余操作等于本身 所以表示式化简为F1+F1++
91.8

5、对于字符的比较,就是比较他们对应的ASCII值,对于A=65,D=68
再根据比大小及三目运算符的逻辑得出如下结果:
false
true
true
-3
133

6、结果如下,一眼出结果不分析了:
x=true
y=false
z=true

by 小吴
<
回复

使用道具 举报

spoint 发表于 2021-5-8 14:06:09
本帖最后由 spoint 于 2021-5-10 20:14 编辑

一、 数据类型测试题
1.  short sh=12;
    sh=s1+1;
    以上代码无法正常运行,s1变量未进行声明定义;

2. 由于char类型是一个单一的16位Unicode字符即2字节,而一个汉字占2个字节,所以char类型可以存储一个汉字。

3.        float _float=1.0; // 报错,需要在1.0后面加上f或F符号,否则默认为double类型,需要进行添加(float)进行强转
        int num=0xFFF;          // 正常输出,16进制取值未超出int类型范围
        char ch=75576;          // 报错,超出char取值范围

二、运算符测试题
1. 判断一下程序的输出结果
float F1=45.9f;
float F2=78.3f;
System.out.println(--F1+F2);         // 44.9+78.3 = 123.2
System.out.println(F1-F2--);        // 44.9-78.3 = -33.4
System.out.println(F1*++F2);        // 44.9*78.3 = 3515.67
System.out.println(F1++/F2);         // 44.9/78.3 = 0.5734355
System.out.println(F1+F1%F2++); // 45.9 + 45.9 % 78.3 = 91.8

2. 判断一下程序输出结果
char C1='A'; // 65
char C2='D'; // 68
System.out.println(C1>C2 && C1<=C2);         // false
System.out.println(C1>C2 || C1<=C2);            // true
System.out.println(C2!=C1);                            // true
System.out.println(C1>=C2 ? C1+C2 : C1-C2);     // C1-C2 = -3
System.out.println(C1<=C2 ? C1+C2 : C1-C2);     // C1+C2 = 133

3. 判断一下程序输出结果
boolean x, y, z;
int a = 15;
int b = 2;
x = a > b;  // true
y = a < b;  // false
z = a != b; // true
System.out.println("x = " + x); // x = true
System.out.println("y = " + y); // y = false
System.out.println("z = " + z); // z = true

by 玄枵



<
回复

使用道具 举报

wx_188 发表于 2021-5-8 14:23:05
以下代码是否能正常运行,并且说明理由。

short sh=12;
sh=s1+1;答:因为该变量没有给他声明他的数据类型使用不能正常编译

2 、char 类型变量能不能储存一个中文的汉字,为什么?
        答:char是按照字符存储的,不管英文还是中文,固定占用占用2个字节,用来储存Unicode字符。范围在        0-65536。
        unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉                字没有被包含在unicode编码字符集中,那么,这个char型

变量中就不能存储这个特殊汉字。

3、以下代码哪些会报错,并且说明理由。

float _float=1.0;
        答:float是单精度类型如果该变量结果后面没有+大写F或者小写f该类型默认为double类型

int num=0xFFF; 答:16进制当然也是一个int型数字

char ch=75556;
        答:char是按照字符存储的,不管什么是结果,他能接收的只有2个字节char型数据,在内存中存的就是        整数,对应一张ASCII码表 ,比如说字符知 ‘A’ 对应的是65
        字符 ‘a’ 对应的是97 ,道所以char c1 = ‘A’ ; 等效于 char c1 = 65 ;
        正是因为这样,所以字符型数据既可以作为一个字符使用,也可以作为一个整数使用,所以char型数据可        以和int型数据进行运算!
        比如 ‘A’ + 1 的结果如果用char型变量接收就是 ‘B’ , 用int型变量接收就是66
        char c = ‘A’+1; 最后c为’B’
        int i = ‘A’ + 1 ; 最后i为 66       
        虽然char型是以整数存储,但是和int型还是有一定区别的,表现在取值范围上,
        char型 占2个字节 无符号 范围是0~65535
        所以char ch=75576 就会报错了,因为越界了
二、运算符测试题
1、判断以下程序的输出结果

float F1=45.9f;
float F2=78.3f;
System.out.println(--F1+F2); //答:结果为:123.200005,因为F1“45.9”是自减以后再参与跟F2“78.3”进行加法运算
System.out.println(F1-F2--); //答:结果为-33.4,因为F1“45.9”是减了以后再参与跟F2“78.3”进行运算然后再自增+1等于33.4
System.out.println(F1*++F2); //答:想不明白,头炸了
System.out.println(F1++/F2); //答:想不明白,头炸了
System.out.println(F1+F1%F2++); //答:结果为91.8,因为F2“78.3”%于F1“45.9”再加F1“45.9”运算之后再递增+1
2、判断以下程序的输出结果

11.判断以下程序的输出结果
        char C1 = 'A';//ASCII中对应的值为65
        char C2 = 'D';//ASCII中对应的值为68

        System.out.println(C1 > C2 && C1 <= C2);//false答:A在ASCII中对应的值为65,B在ASCII中对应的值为68,所以C1没有大于C2那么他的条件没成立那么就是为false
        System.out.println(C1 > C2 || C1 <= C2);//true 答:A在ASCII中对应的值为65,B在ASCII中对应的值为68,所以C1大于C2那么他的条件成立了那么就是为true
        System.out.println(C2 != C1);//true答:C2肯定不等于C1所以为true
        System.out.println(C1 >= C2 ? C1+C2 : C1-C2);//-3答:C1不大于等于C2条件没有成立所以表达式就会执行C1-C2;
        System.out.println(C1 <= C2 ? C1+C2 : C1-C2);//133答:C1小于等于C2条件成立了所以表达式就会执行第一条c1+c2
        System.out.println("判断以下程序的输出结果");


3、判断以下程序的输出结果

boolean x , y, z;
        int a = 15;
        int b = 2;
        x =(a > b);//x="15>2"
        y =(a < b);//y="12<2"
        z =(a != b);//z="15不等于2"
        System.out.println("x =" + x);//答:x =true//答:因为a"15"大于b"2"所以结果为:true
        System.out.println("y =" + y);//答:y =false//答:因为a"15"并没有小于b"2"所以结果为:fasle
        System.out.println("z =" + z);//答:z =true//答:因为a"15"事实不等于b"2"所以结果为:true

点评

写的很不错  发表于 2021-5-10 18:20
<
回复

使用道具 举报

追忆 发表于 2021-5-8 14:33:14
本帖最后由 追忆 于 2021-5-8 14:45 编辑

1、short sh = 12;
sh = s1+1;
不能运行,因为s1是一个未定义的变量。

2、char类型变量能不能存储一个中文的汉字,为什么?
可以存储,因为char类型是用来存储unicode编码字符的,unicode编码字符集中包含了汉字,所以char类型变量中可以存储汉字。如果存储汉字没有在unicode字符集中,char类型变量就无法存储这个特殊汉字。

3、以下代码哪些会报错,并且说明理由。
float _float=1.0;                int num=0xFFF;char ch=75576;                //这句会报错。因为char类型是unicode编码。无法给变量赋值数字
二、
1、判断以下程序的输出结果
float F1=45.9f;               
float F2=78.3f;                  
System.out.println(--F1+F2);                            //123.2
System.out.println(F1-F2--);                          //-33.4
System.out.println(F1*++F2);                           //3515.67
System.out.println(F1++/F2);                           //0.57
System.out.println(F1+ F1 % F2++);              //91.8               

2、判断以下程序的输出结果
char C1 = 'A';                                //65
char C2 = 'D';                                //68
System.out.println(C1>C2 && C1<=C2);                                                //flase
System.out.println(C1>C2 || C1<=C2);                                                //true
System.out.println(C1 != C2);                                                                //true
System.out.println(C1>=C2 ? C1 + C2 : C1 - C2);                                //-3
System.out.println(C1<=C2 ? C1+ C2 : C1 - C2);                                //133

3、判断以下程序的输出结果
boolean x, y, z;
int a= 15;
int b = 2;
x = a > b;
y = a < b;
z = a != b;
System.out.println("x= " + x);                        //true
System.out.println("y= " + y);                        //flase
System.out.println("z= " + z);                        //true

<
回复

使用道具 举报

pcsms_2x0gkhv3 发表于 2021-5-8 14:33:17
一、数据类型测试题
1、不能正常运行,没有定义s1这个变量
2、可以,一个char 类型占 2 个字节,一个中文占2个字节。
3、第一行代码,1.0是double类型需要加一个f或者强转(float)。第三行代码,超出char类型的数据范围

二、运算符测试题
1、123.2,-32.4,3639.87,0.5862068965517241,91.8
2、flase,true,true,-3,133
3、x = true,y = flase,z = true
<
回复

使用道具 举报

恐龙先生 发表于 2021-5-8 14:46:32
本帖最后由 恐龙先生 于 2021-5-8 14:56 编辑

一、数据类型测试题
1、以下代码是否能正常运行,并且说明理由。
short sh=12;
sh=s1+1;


答:不能正常运行。第二行会报错找不到符号s1,s1这个变量未声明就拿来做算术运算。

2 、char 类型变量能不能储存一个中文的汉字,为什么?

答:能。在java中char类型大小是2个字节,1个中文字符等于2个字节。


3、以下代码哪些会报错,并且说明理由。
float _float=1.0;
int num=0xFFF;
char ch=75576;


答:float _float=1.0和char ch=75576会报错。
float类型的变量声明并赋值的时候,等号右边的值需要携带后缀f或者F,_float变量的值缺少后缀f或者F
char类型的变量声明并赋值的时候,等号右边的值的范围不能超过0-65535,ch变量的值超过了0-65535所以会报错

二、运算符测试题
1、判断以下程序的输出结果
float F1=45.9f;
float F2=78.3f;
System.out.println(--F1+F2);
System.out.println(F1-F2--);
System.out.println(F1*++F2);
System.out.println(F1++/F2);
System.out.println(F1+F1%F2++);


答:输出结果按顺序如下:
123.2.00005
-33.4
3515.6702
0.5734355
91.8


2、判断以下程序的输出结果

答:输出结果按顺序如下:
Flase
true
true
-3
133


3、判断以下程序的输出结果

答:输出结果按顺序如下:
x= true
y= false
z= true

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

写的不错,排版也很工整  发表于 2021-5-10 18:23
<
回复

使用道具 举报

教主 发表于 2021-5-8 14:52:22
1-1.不能正常运行 因为没有显式声明变量s1
1-2.能储存中文汉字 因为char是2字节16位 汉字也是2字节 所以可以存储单个汉字
1-3.第一个会错----float类型变量 赋初值后面需要加个f  一般ide会默认没有强转的浮点数都为双精度double(最好养成强转的习惯 有些ide虽然不报错 也最好float强转) --------------第二个正常---------第三个会错---char是无符号整形最大存储范围是0-65535这个明显超过了


2-1.     123.2******-32.4********3639.87(不知道什么原因实测显示3639.8704)*********0.5862069(后面还有小数位但是float类型只能显示这么多)*********91.8

2-2.    false(逻辑与一个为假必为假 这个必然有一个为假c1不可能即大于c2又小于等于c2)*******true(逻辑或一个为真返回真 条件2成立)******true(不等于成立)******-3(三目运算符 条件不成立 返回第二个 c1-c2)*****133(三目运算符 条件成立 返回第一个c1+c2)

2-3. true  false true  简单的逻辑运算 看字面意思就ok
<
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则