若有如下程序段:main(){int n=0;while(printf("*")){n++;if(n<3)break;}}则下列描述正确的是()A.

题目

若有如下程序段: main() {int n=0; while(printf("*")) {n++; if(n<3)break;} } 则下列描述正确的是( )

A.其中循环控制表达式与0等价

B.其中循环控制表达式与'0'等价

C.其中循环控制表达式是不合法的

D.以上说法都不对

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序 void change(int k[]){k[0]=k[5];} main() { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4) { change(&x[n]); n++;} for(n=0;n<5;n++) printf("%d",x[n]); printf("\n"); } 程序运行后输出的结果是______。

A.678910

B.13579

C.12345

D.62345


正确答案:A
解析:本题考点为数组名作函数参数,当n=O时,把x[0]的地址传绐被调函数change,即将形参k与实参x指向同一个存储单元x[0],执行被调函数后,k[0]=6,即x[0]=6:当n=1时,形参k指向x数组的第1个数组元素所在单元,即 k[0]与x[1]共用同一存储单元,执行被调函数后,k[0]=7,即x[1]=7,依次类推得出x[0]到x[4]的值分别为6、7、8、 9、10。

第2题:

下列程序的运行结果为______。main(){ int n; for (n=1;n<=10;n++) { if(n%3==0) continue; printf("%d",n); }}

A.12457810

B.369

C.12

D.12345678910


正确答案:A

第3题:

有以下程序

void change(int k[ ]){ k[0]=k[5];}

main()

{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

while( n<=4 ) { change( &x[n]) ; n++; }

for(n=0;n<5;n++) printf("%d ",x[n]);

printf("\n");

}

程序运行后输出的结果是

A)6 7 8 9 10

B)1 3 5 7 9

C)1 2 3 4 5

D)6 2 3 4 5


正确答案:A
答案 A
解析 : 子函数 void change(int k[]) {k[0]=k[5]}; 表示用一维数组中的第 6 个元素替换第 1 个元素 。 因此主函数的 4 次循环 , 都是用数组中 , 当前指针所指元素后的第 6 个元素替换该元素 ,因此本题的答案为 A 。此时数组中的元素是 “ 6,7,8,9,10 , 6,7,8,9,10 ” 。

第4题:

若有如下程序: main() {int a=0,t=0; while(!a!=0) t+=a++; printf("%d,%d\n",t,A) ; } 则程序运行后的输出结果是( )

A.0,1

B.1,0

C.0,0

D.1,1


正确答案:A

第5题:

有以下程序includemain(){int k=5,n=0;while(k>0){switch(k){defhult:break;case 1:n+

有以下程序 #include<stdio.h> main() {int k=5,n=0; while(k>0) {switch(k) {defhult:break; case 1:n+=k: case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( )

A.0

B.4

C.6

D.7


正确答案:D
解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。

第6题:

有以下程序: main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf("n=%d\n",n); } 程序执行后的输出结果是( )。

A.n=5

B.n=2

C.n=3

D.n=4


正确答案:D
解析:for循环当i=2时,执行do循环。由于if表达式的条件为真,执行continue语句,结束本次循环,判断while循环条件为假,故退出while循环,执行n++,此时n的值为1。当i=3时,执行do循环,由于if{3%3)为假,执行下面的n++语句,此时n的值为2,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++语句,此时n的值为3。当i=4时,执行do循环。由于if(4%3)为真,执行continue语句,结束本次循环,继续判断while循环条件为假,故退出while循环,执行n++,此时n的值为4。当i=5时,退出for循环,因此最后输出的n值为4。所以,4个选项中选项D符合题意。

第7题:

有如下程序: main() { int k=4, n=0; for(; n<k; ) { n++; if(n% 3!=0)continue; k--; } printf(" % d, % d\n", k, n); 程序运行后的输出结果是______。

A.1, 1

B.2, 2

C.3, 3

D.4, 4


正确答案:C
解析:continue语句是结束本次循环。
  for循环语句的执行过程为:
  第1次循环:循环前n=0,执行n++得n=1,n%3!=0成立,执行continue语句结束本次循环,k=4;
  第2次循环:循环前n=1,执行n++得n=2,n%3!=0成立,执行continue语句结束本次循环,k=4;
  第3次循环;循环前n=2,执行n++得n=3,n%3!=0不成立,执行语句k--得k=3;nk不成立,结束整个for循环。
  所以执行完for循环后k=3、n=3,正确答案为选项C。

第8题:

有以下程序: main() {int n=0; do { n++; printf("%d\n",n); } while(n<=3); } 程序的输出结果是( )。

A.1 2

B.1 2 3

C.1 2 3 4

D.1


正确答案:C
解析:本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。

第9题:

计算机二级程序

#include <stdio.h>

int main()

{

 int n=0;

 while((getchar()!='\r')||(getchar()!='\n')) n++;

 printf("%d",n);

 return 0;

}

哪错了?


代码不完整

void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}

mian()里面赋点值啊  没值这程序做什么啊

第10题:

若有如下程序: main() {int x=9,y=4,n=0; switch(x%2) {case 0:n++;break; case 1:n++; case 0:n++;break; } printf("%d\n",n); } 则程序运行后的输出结果是( )。

A.1

B.2

C.3

D.编译错误


正确答案:D
解析:一个switch语句中不能有两个相同的case分支。本题的switch语句中出现了两个case0,编译无法通过。所以应该选D。

更多相关问题