单选题有如下程序段: int total = 0; for ( int i = 0; i  4; i++ ){ if ( i == 1) continue; if ( i == 2) break;total += i;} 则执行完该程序段后total的值为()A 0B 1C 3D 6

题目
单选题
有如下程序段: int total = 0; for ( int i = 0; i < 4; i++ ){ if ( i == 1) continue; if ( i == 2) break;total += i;} 则执行完该程序段后total的值为()
A

0

B

1

C

3

D

6

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

第1题:

有以下程序

#include <stdio.h>

main()

{ int a[ ]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

{ case 0:switch(a[i]%2)

{case 0:a[i]++;break;

case 1:a[i]--;

}break;

case 1:a[i ] =0;

}

for(i=0;i<4;i++) printf("%d",a[i]); printf("\n");

}

程序运行后的输出结果是

A)3 3 4 4

B)2 0 5 0

C)3 0 4 0

D)0 3 0 4


正确答案:C

第2题:

( 19 )有如下程序段:

int i=5;

while ( int i=0 ) {cout 《 '*';i--;}

运行时输出 "*" 的个数是

A ) 0

B ) 1

C ) 5

D )无穷


正确答案:A

第3题:

●试题四

【说明】

下面程序的功能是:在含有10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。

例如:若输入

2857848328

则应输出

The max:8

Total:4∥最大数出现次数

The positions:1469

【函数】

#include<stdio.h>

#define M 10

int fun(int*a,int*n,int pos[])

{

int i,k max=-32767;

(1)

for(i=0;i<M;i++)

if( (2) )max=a[i];

for(i=0;i<M;i++)

if( (3) )pos[k++]=i;

*n=k;

return max;

}

main()

{

int a[M],pos[M],i=0,j,n;

printf("Enter 10 number:");

for(i=0;i<M;i++)scanf("%d", (4) );

j=fun( (5) );

printf("The max:%d\n",j);

printf("Total:%d",n);

printf("The position:");

for(i=0;i<n;i++)printf("%4d",pos[i]);

printf("\n");

}


正确答案:

●试题四

【答案】(1)k=0(2)ai>max(3)ai=max(4)a+i或&ai(5)a&npos

【解析】先分析(4)(5)空。(4)空所在语句是从键盘中读入数据并存放在数组a[]之中,循环变量为I(4)空处应填写存放地址,循环变量有两种表示方法,一种是"a+i",另一种是"&ai"。(5)空处需要填写调用函数fun()的实参,从函数fun()的形参可以看出,第1个参数是要处理的数组a[],第2个参数要返回的最大元素的个数n,第3个参数最大元素的下标数组pos[]。因此(5)空处应填写"a&npos"。

再来分析(1)(3)空。(1)(3)空所在函数是找最大数,并将其下标存放在数组pos[]中,其实现的思路是先遍历一次数组,从数组中找出最大数max,再将遍历一次数组,依次将这些最大数的下标存放在数组pos[]中。(2)空所在的循环就是找最大数max,因此(2)空处应填写"ai>max"。(3)空所在的循环是将这些最大数的下标存放在数组pos[]中,因此(3)空处应填写"ai==max"。(1)空应填写什么呢?从语句"posk++]=i"和"*n=k"可知,变量k是用来指出当前要存放在数组pos[]中的位置,但这个变量要进行初始化,因此(1)空处应填写"k=0"。

 

第4题:

有如下程序段:

for(int i=1;i<=50;i++){

if(i%3 1=0)

continue;

else

if(i%5 1=0)

continue;

cout<<i<<”,”;

}

执行这个程序段的输出是【 】。


正确答案:153045
15,30,45, 解析:程序输出1到50中同时被3和5整除的数,为15、30、45。

第5题:

( 19 )有如下程序段:

int i=1;

while (1) {

i++;

if(i == 10) break;

if(i%2 == 0) cout << '*';

}

执行这个程序段输出字符 * 的个数是

A ) 10

B ) 3

C ) 4

D ) 5


正确答案:C

第6题:

有以下程序 main() { int i=0,s=0; for(;;) { if(i==3‖i==5) continue; if(i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是

A.10

B.13

C.24

D.程序进入死循环


正确答案:D
解析:程序中for循环中省略了判断退出循环的表达式,for循环将由里面的break语句控制是否结束循环,第一次循环,第一条if语句后面括号里的表达式的值为假,所以该if语句不被执行,执行下面的第二条语句,此时该if语句表达式的值为假,所以该if语句也不执行,执行下面的语句,i++、s+=i,执行完毕后i的值为1,s的值为1,如此循环,直到第三次之后i,s的值都为3,继续第四次循环,显然这时满足第一条if语句的,执行后面的continue该次循环结束从头开始下次循环,而i的值为3一直没有改变,所以第一条语句始终要执行,因此for循环将一直循环下去。

第7题:

( 7 )有如下程序段:

fer ( int i=1; i<=50;i++ ) {

if ( i%3 != 0 )

continue;

else

if ( i%5!=0 )

continue;

tout<<i<<" , " ;

}

执行这个程序段的输出是【 7 】 。


正确答案:

第8题:

有以下程序 , 程序执行后 , 输出结果是【 1 1 】

#include <stdio.h>

void fun(int *a)

{ a[0]=a[1];}

main()

{ int a[10]={10,9,8,7,6,5,4,3,2,1},i;

for(i=2;i>=0;i--) fun(&a[i]);

for(i=0;i<10;i++) printf("%d",a[i]);

printf("\n");

}


正确答案:

第9题:

设有以下程序:

main()

{int i,sum=0;

for(i=2;i<10;i++)

{ if((i%2)==0)

continue;

sum+=i;}

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

}

程序执行后的输出结果是( )。


正确答案:24
24 解析:continue语句功能:结束本次循环(注:不是终止整个循环),即跳过循环体中continue语句后面的语句,开始下一次循环。

第10题:

针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支覆盖的要求。

int MathMine(int x)

{

int m=0;

int i;

for(i=x-1; i<=x+1; i++)

{

if (i<0) continue;

if (i>31) break;

if (sta[i]=-1) m++;

}

return m;

}

A.3

B.4

C.5

D.6

A.

B.

C.

D.


正确答案:A

更多相关问题