1.int a=1, x=5; while(a<10) x+...
发布网友
发布时间:2023-09-18 22:05
我来回答
共4个回答
热心网友
时间:2024-04-26 05:01
1 while(a<10) x++;循环每次只将x加一,a++不执行,因为没有大括号
和while(a<10){ x++;a++;}要去分开
2 a%b是a除以b余数,a根本不够除嘛,商是0,余数是1:a=0*b+1
3 向上转型,(a/f-z)之后为double型,(int)强制转换后是int,int和char运算的话还是int(利用asc码进行运算)。
4 (a=1)&&(b=-1),因为都是赋值语句,其表达式的结果分别是a和b的值,所以就是1&&-1,所以结果是true,也就是1.c语言里true是1,false是0.
5 知识点: 表达式1&&表达式2: 表达式1不成立,则表达式2不执行;
表达式1&表达式2:表达式1不成立,表达式2也执行
所以,a>b是不成立的m为0,“&&”前面判断就为false(0),所以后面不执行,n还是2。
6 a b c肯定没错把,不解释了。像a++这种运算符其实是a=a+1的!所以D转换成为a+1=a+1+1 肯定不对,左侧表达式不能被赋值。
7 你是不是打错了,题目应该是o102吧,这是八进制数,按每个数字三位转换成二进制是001 000 010 ,再转换成十进制是66。
热心网友
时间:2024-04-26 04:58
1.while循环以其后的第一个";"表示结束,既while(a<10) x++;此时a==1,满足条件循环一直执行
2.a%b表示a除以b的余数,所以是1
3.表达式中的int表示强制类型转换
4.&&运算符表示“或”运算,运算符前的条件满足则不再进行&&后的运算,既由于a=1恒满足,则不再经行b=-1运算
5.与上题类似,=为赋值运算符,其优先级低于>,所以m=a>b恒成立(且此时m值为0),就不再经行&&后的运算,所以n依然等于2
6.A,B显然正确;C中b的值先加1后赋给a,正确;D中a+1此时为常量,不能自加加
7.4位数字在系统中默认表示的是8进制数,%d表示以10进制输出,8进制0102转换成10进制就为66
热心网友
时间:2024-04-26 05:00
1.while(a<10) x++; 是循环体,a++; 在循环外面,不参加循环,所以只有X改变,a不变,所以循环无限次
2.1%2啊,结果是1,1除2,余数是1
3.c+(int)(a/f-z)其中(int)是强制转换,把后面的类型转换成int,和前面的char相加是,char自动回转换成ACSII码进行运算,所以是int
4.(a=1)和(b=-1)都是赋值运算,其表达式的结果分别是a和b的值,即1&&-1,所以结果是1
5.&&运算符在前面的表达式为0或否的时候,直接认为整个&&表达式的值是0,不进行后面表达式的运算,所以(n=c>d)不执行,n=2
6.a+1不是变量,++运算符必须是对变量进行的,--也是
7.0102是以0开头,会认为是八进制,所以就是8和2次*1加8的0次*2,就是66
热心网友
时间:2024-04-26 04:57
1.while循环以其后的第一个";"表示结束,既while(a<10) x++;此时a==1,满足条件循环一直执行
2.a%b表示a除以b的余数,所以是1
3.表达式中的int表示强制类型转换
4.&&运算符表示“或”运算,运算符前的条件满足则不再进行&&后的运算,既由于a=1恒满足,则不再经行b=-1运算
5.与上题类似,=为赋值运算符,其优先级低于>,所以m=a>b恒成立(且此时m值为0),就不再经行&&后的运算,所以n依然等于2
6.A,B显然正确;C中b的值先加1后赋给a,正确;D中a+1此时为常量,不能自加加
7.4位数字在系统中默认表示的是8进制数,%d表示以10进制输出,8进制0102转换成10进制就为66