2021年秋C语言QQ群内答疑题目汇总
群里同学传的一张照片,十分漂亮!
第1题
从右边往左边一步一步地算,m=m*y,m=10;y=y-10, y = -8; y = y + (-8); y 就等于 -16 了
第2题
第一个十进制,第二个八进制,第三个十六进制
第3题
顶部要加上:#define _CRT_SECURE_NO_WARNINGS 这样在这个vs2010 中就不会报错了, 其它方法可以参考:https://blog.csdn.net/jh0703/article/details/47820875
第4题
因为 b不等于0,所以a+b肯定不等于a-b,所以 a+b != a-b 为真,即结果为逻辑真(用1 表示);y-=6.1 的结果为 0.4,此时x<=0.4 显然逻辑假(因为x=3.14,比0.4要大啊),逻辑假用0表示。
!= 表示 不等于的意思哈, == 表示等于的意思,<= 表示小于等于。
第5题
这里的 \0 不是八进制,这是字符串结束标志符号,其对应的ascii码值为0。
这个题目输出是 abc ,s[0] = ‘a’, s[1]='b’,s[2]='c’, s[3]=’\0’,s[…] = … printf("%s”,s) 这个格式化碰到s[3]这个标志位(表示字符串结束)后面的字符就不再输出了,结果就为abc。
第6题
011 是八进制的意思 0b11是二进制,八进制的 12 了,结果是 8+2 = 10
关于 二进制 八进制 和 十进制 ,可以看下这篇短文:http://c.biancheng.net/cpp/html/3421.html
第7题
while(—s); 这个就是空循环体,最终s=0时候循环体结束;s=s-2,s最后等于-2 了
s=7 的时候 它自减变成6了,while(6) 仍然是真,然后while(5),…, while(1),然后while(0)不满足,循环结束。
第8题
Y(5+1)=((N+1)*5 + 1),宏只是简单的替换 ,结果为48
第9题
第一个?填1 ,第二个?填 j++;%2 如果余数是1则说明这个数是奇数,然后用把当前的这个奇数赋值给a[j],j 自增,为下一个奇数准备。第3个?填 j
第10题
pt = {2,3,4,5,6,7,8,9,10},for(i=0;i < 9;i +=2) sum=sum + pt[i] ;2+4+6+8+10 = 30 ;
因为 pt = {2,3,4,5,6,7,8,9,10},所以pt[0]=2;i=2,pt[2]=4;pt[4]=6;pt[6]=8;pt[8]=10;pt[10]不满足i<9循环结束;
a表示数组的首地址,也是第一个元素的地址,a+1 表示第二个元素的地址,这种传递就是把第二个元素到末尾的元素全部传给形参pt[]。
第11题
这个j=3,第一个printf 执行完了之后 j的值变化了 j=4,在第二个printf 里面 j++,是先把j的值打印出来,然后j自增。
第12题
跟上面某道题类似,&aa[3] 是第四个元素,也就是a[] = {4,5,6,7,8,9,10};
不过 n = 5,sort函数只对 a数组的前五个元素排序,结果为 { 8, 7, 6, 5, 4, 9, 10};
最后的结果是 1,2,3,8, 7, 6, 5, 4, 9, 10
第13题
3,3。因为逗号表达式,取最右边
第14题
这种连=的运算,大家最好从右边往左边看。a*= a>b?a:b 显然 a <b 所以 a *=b 也就是 a=a**b a=63,再把a的值赋值给t,答案为c