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

下面程序的输出是____(选项竖着看)。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}A)1B)1C)... 下面程序的输出是____(选项竖着看)。
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++)
{ case 'A': k++;break;
case 'B': k--;
case 'C': k+=2;break;
case 'D': k=k%2;contiue;
case 'E': k=k+10;break;
default: k=k/3;
}
k++;
}while(c<'C') ;
printf("k=%d\n",k);
}
A) k=1 B) k=2 C) k=3 D) k=4

下面程序的输出结果是____。
main()
{ int x,i;
for(i=1;i<=100;i++)
{ x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d ",x);
}
}
A) 39 81 B) 42 84 C) 26 68 D) 28 70
展开
 我来答
070705049
2009-04-14
知道答主
回答量:22
采纳率:0%
帮助的人:0
展开全部
第一题:答案是 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 要是做题就把答案反带回去看它题目++你就——符合题意就OK了 要是上机的话可以单步调试来看看的!
一页凌风
2009-04-14 · TA获得超过1907个赞
知道小有建树答主
回答量:434
采纳率:25%
帮助的人:387万
展开全部
1.B num = 0,一直循环到num = 2,从0到2一共三次循环。每次打印的都是num+1,所以是1 2 3.

2.A do while循环,不论条件,先做一次。a是1,所以,先进case 1 ,b就为1,然后b=a+b,所以b就为2.进入判断循环条件!b,此条件不成立,因为2不为0,非后为0,0表示假。a的值没变,还是1,b的值为2

3.C 主要考察switch case中的break。没有break的语句要继续执行下一个case的语句,直到遇到break。switch的值是输入的值-2,所以446755就是224533,但是输入值没变,只是这个表达式c-'2'的值为224533.一次判断。并且由于没有break的case要继续执行,所以输出的数据的位数一定大于原来的数据。

4. C 首先明确C++是先使用c的值。所以第一次,进入的是case'A',第二次是case'B'

5.此题目只有方法。以四个选项分别带入原程序。方法是 结果/7 整除的话, 将结果-1再/3,整除的话,将结果再-1,再/2,整除的话,这个值就是输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhang020744
2009-04-14 · TA获得超过571个赞
知道小有建树答主
回答量:615
采纳率:0%
帮助的人:202万
展开全部
B; A; C ; C; D;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式