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
CC BY-NC-SA 4.0
本文由 Xiang CHEN 陈向 创作,采用 CC BY-NC-SA 4.0 协议,首发于 https://chenxofhit.xyz 个人网站。
您可以自由地:
- 分享 — 在任何媒介以任何形式复制、发行本作品
- 演绎 — 修改、转换或以本作品为基础进行创作
惟须遵守下列条件:
- 署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。
- 非商业性使用 — 您不得将本作品用于商业目的。
- 相同方式共享 — 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同的许可协议分发您贡献的作品。
商业使用请联系:[email protected]



