C语言求助(4道选择题)要说下怎么想的

来源:百度知道 编辑:UC知道 时间:2024/05/16 07:27:53
下面程序的输出是____(选项竖着看)。
main()
{ int num=0;
while(num<=2)
{ num++;
printf("%d\n",num);
}
}
A) 1 B) 1 C) 1 D) 1
2 2 2
3 3
4

1.2 下面程序的输出结果是____。
main()
{ int a=1,b=0;
do
{ switch(a)
{ case 1: b=1;break;
case 2: b=2;break;
default : b=0;
}
b=a+b;
}while(!b);
printf("a=%d,b=%d",a,b);
}
A) 1,2 B) 2,1 C) 1,1 D) 2,2

从键盘上输入"446755"时,下面程序的输出是____。
#include <stdio.h>
main()
{ int c;
while((c=getchar())!='\n')
switch(c -'2')
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
printf("\n");
}
A) 888988 B) 668966 C) 88898787 D) 66898787

下面程序的输出结果是____。
main()
{ int k=0;
char c='A';
do
{ switch(c++

第一题:答案是 B。num=0这是初始值,下面进入while循环因为num<=2,所以做num++;这个表达式的值等价与num=num+1现在num=1了;然后就做printf打印出num的值是1。在进行判断num=1<2就在继续做num++,num变为了2在打印,再循环num=2<=2就再做num++,num现在变为3在打印,最后判断num=3>2所以跳出循环程序结束!最后答案就是 1 2 3 所以B
第二题:答案是A。a=1进入switch语句做case 1: b=1;break;这时b就变为1了啊!在做b=a+b;这时b=2了!在下面就做while(!b);那就退出do—while循环了!最后打印a=1,b=2整个程序结束所以答案就是A
第三题: 答案C 先做while((c=getchar())!='\n') 这时c=4在做switch(c -'2')所以就到了语句 case 2: putchar(c+4);break;这时就打印出8了!当4467输入时就自然打印出8889了但是请注意当输入5时做switch(c -'2')这时做的是case 3: putchar(c+3);
default: putchar(c+2);break;也就是说做到break为止switch语句一定要注意做到break才能跳出这整个switch所以当输入5时就自然得到87这2个数了!最后一个5也是87这2个得数;所以最后答案88898787
第4题:答案D先做switch(c++) ;做完做 case 'A': k++;break;因为C++是先用后++的
也就是说C++这时的值还是“A”做完之后做k++; 这时k=2了 然后因为while(c<'C')为真所以就做 switch(c++)这时做 case 'B': k--;(这时k=1)case 'C': k+=2;break;(这时k=3)是上面说过的先用在++;最后在做k++;(这时k=4)应为C已经变为了"C"所以跳出循环打印出k=4 所以答案:D
第5题:答案D 要是做题就把答案反带回去