首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言——小学一年级题目解析(一)

作者|我是奔跑的键盘侠

来源|奔跑的键盘侠(ID:runningkeyboardhero)

转载请联系授权(微信ID:ctwott)

想不出比较好的系列专题名称,暂且用《小学一年级题目解析》吧

第1题

if判断中的a++,先判断后自加,if不成立,但是依旧自加成6。

执行else 语句,先输出,后自减。输出的是6,但是输出完a的值是5。

#include "stdio.h"

int main()

{

int a=5;

if (a++>5) printf("%d\n",a);

else printf("%d\n",a--);

printf("The end value of a is %d.\n",a);

return 0;

}

==========编译成功后开始运行==========

"C:\Users\Desktop\2019_943.exe"

Process started (PID=14832) >>>

6

The end value of a is 5.

<<< Process finished (PID=14832). (Exit code 0)

================ READY ================

第2题

这题目考的比较鸡肋,看着眼花,但是没挖坑,所以很容易就找到第一个else中b<d这个分路,也就x=2这个答案。

关于if,else,有个坑,就是执行语句要用大括号{}括起来,不然的话只执行单行命令。

#include "stdio.h"

int main()

{

int a=1,b=3,c=5,d=4;

int x;

if(a<b)

if(c<d) x=1;

else

if(a<c)

if(b<d)x=2;

else x=3;

else x=6;

else x=7;

printf("%d\n",x);

return 0;

}

==========编译成功后开始运行==========

"C:\Users\Desktop\2019_943.exe"

Process started (PID=13648) >>>

2

<<< Process finished (PID=13648). (Exit code 0)

================ READY ================

第3题

关于switch,不知道是不是数据结构中讲的顺序链表,其中c存放的是地址,运行时,直接跳至case 2,未遇到break就会沿着链表顺序,继续下一个地址的操作,直到break才结束。也就是运行了case 2,case 3。

switch的设计比较特殊,记住即可。

#include "stdio.h"

int main()

{

int c=2;

switch(c)

{

case 4: c++;

case 2: c++;

case 3: c++;break;

case 5: c++;

}

printf("%d",c);

}

==========编译成功后开始运行==========

"C:\Users\Desktop\2019_943.exe"

Process started (PID=13040) >>>

4<<< Process finished (PID=13040). (Exit code 0)

================ READY ================

第4题

while在后,do循环至少做一次。

循环第一次:输出 i%8=2,而i的值i/8变成3;

循环第二次:输出 i%8=3,而i的值i/8变成0。

因为输出时没有\n换行符,所以输出的2和3在一起,也就是23。

#include "stdio.h"

int main()

{

int i=26;

do{

printf("%d",i%8);

i=i/8;

}while(i!=0);

}

==========编译成功后开始运行==========

"C:\Users\Desktop\2019_943.exe"

Process started (PID=21524) >>>

23<<< Process finished (PID=21524). (Exit code 0)

================ READY ================

-END-

© Copyright

奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权

举报
领券