南昌大学c语言大作业,[转载]南昌大学计算机C语言答案3

第6章

循环控制

1、设变量已正确定义,则以下能正确计算f = n!的程序段是

A)

f=0; B) f=1;

for(i=1;i<=n;i++)

f*=i; for(i=1;i

C)

f=1; D) f=1;

for(i=n;i>1;i++)

f*=i; for(i=n;i>=2;i--) f*=i;

[D] 教师批改:D

2、有以下程序

main()

{ int k=5,n=0;

while(k>0)

{ switch(k)

{ default : break;

case 1 : n+=k;

case 2 :

case 3 : n+=k;

}

k--;

}

printf("%dn",n);

}

程序运行后的输出结果是

A)0

B)4

C)6

D)7

[D] 教师批改:D

3、有以下程序

main()

{

int a=1,b;

for(b=1;b<=10;b++)

{

if(a>=8) break;

if(a%2==1) { a+=5; continue;}

a-=3;

}

printf("%dn",b);

}

程序运行后的输出结果是

A)3

B)4

C)5

D)6

[B] 教师批改:B

4、有以下程序

main ()

{ int s=0,a=1,n;

scanf("%d",&n);

do

{ s+=1; a=a-2; }

while(a!=n);

printf("%dn",s);

}

若要使程序的输出值为2,则应该从键盘给n输入的值是

A) -1

B) -3

C) -5

D) 0

[B] 教师批改:B

5、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

s=a;

for(b=1;b<=c;b++) s=s+1;

则与上述程序段功能等价的赋值语句是

A) s=a+b;

B) s=a+c;

C) s=s+c;

D) s=b+c;

[B] 教师批改:B

6、有以下程序

main()

{ int k=4,n=4;

for( ; n

{ n++;

if(n%3!=0) continue;

k--; }

printf("%d,%dn",k,n);

}

程序运行后的输出结果是

A) 1,1

B) 2,2

C) 3,3

D) 4,4

[C] 教师批改:C

7、要求以下程序的功能是计算:

main ()

{ int n; float s;

s=1.0;

for(n=10;n>1;n--)

s=s+1/n;

print("%6.4fn",s);

}

程序运行后输出结果错误,导致错误结果的程序行是

A) s=1.0;

B) for(n=10;n>1;n--)

C) s=s+1/n;

D) printf("%6.4f/n",s);

[C] 教师批改:C

8、有以下程序

main()

{ int i;

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

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default:

printf("%d",i);

}

}

执行后输出结果是

A) 011122

B) 012

C) 012020

D) 120

[A] 教师批改:A

9、有以下程序

main()

{ int i=0,s=0;

do{

if(i%2){i++;continue;}

i++;

s +=i;

}while(i<7);

printf("%dn",s);

}

执行后输出结果是

A) 16

B) 12

C) 28

D) 21

[A] 教师批改:A

10、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

main()

{ int n,k;

float score ,sum,ave;

sum=0.0;

for(n=1;n<=10;n++)

{ for(k=1;k<=4;k++)

{ scanf(“%f”,&score); sum+=score;}

ave=sum/4.0;

printf(“NO%d:%fn”,n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是

A) sum=0.0;

B) sum+=score;

C) ave=sun/4.0;

D) printf(“NO%d:%fn”,n,ave);

[A] 教师批改:A

11、有以下程序段

int n=0,p;

do{scanf(“%d”,&p);n++;}while(p!=12345

&&n<3);

此处do—while循环的结束条件是

A) P的值不等于12345并且n的值小于3

B) P的值等于12345并且n的值大于等于3

C) P的值不等于12345或者n的值小于3

D) P的值等于12345或者n的值大于等于3

[D] 教师批改:D

12、以下程序中,while循环的循环次数是

main()

{ int i=0;

while(i<10)

{ if(i<1) continue;

if(I==5) break;

i++;

}

......

}

A) 1

B) 10

C) 6

D) 死循环,不能确定次数

[D] 教师批改:D

13、以下程序的输出结果是

main()

{ int a=0,i;

for(i=;i<5;i++)

{ switch(i)

{ case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}

printf("%dn",a);

}

A) 31

B) 13

C) 10

D) 20

[A] 教师批改:A

14、以下程序的输出结果是

#include 

main()

{ int i=0,a=0;

while(i<20)

{ for(;;)

{ if((i%10)==0) break;

else i--;

}

i+=11; a+=i;

}

printh("%dn",a);

}

A) 21

B) 32

C) 33

D) 11

[B] 教师批改:B

15、t为int类型,进人下面的循环之前,t的值为0

while( t=l )

{ …… }

则以下叙述中正确的是

A) 循环控制表达式的值为0

B) 循环控制表达式的值为1

C) 循环控制表达式不合法

D) 以上说法都不对

[D] 教师批改:B

16、以下程序的输出结果是

main()

{ int num= 0;

while(num<=2)

{ num++; printf(“%dn”,num);

}

A) 1

2

3

4

B) 1

2

3

C) 1

2

D) 1

[B] 教师批改:B

17、以下程序的输出结果是

main()

{ int a, b;

for(a=1, b=1; a<=100; a++)

{ if(b>=10) break;

if (b%3= =1)

{ b+=3; continue; }

}

printf(“%dn”,a);

}

A) 101

B) 6

C) 5

D) 4

[D] 教师批改:D

18、有以下程序段

int k=0

while(k=1)k++;

while 循环执行的次数是

A) 无限次

B) 有语法错,不能执行

C) 一次也不执行

D) 执行1次

[A] 教师批改:A

19、以下程序执行后sum的值是

min()

{ int i , sum;

for(i=1;i<6;i++) sum+=i;

printf(“%dn”,sum);

}

A)15

B)14

C) 不确定

D)0

[C] 教师批改:C

20、有以下程序段

int x=3

do

{ printf(“%d”,x-=2); }

while (!(--x));

其输出结果是

A)中 1

B) 3 0

C) 1 -2

D) 死循环

[C] 教师批改:C

21、有如下程序

main0

{ int i,sum;

for(i=1;i<=3;sum++) sum+=i;

printf(“%dn”,sum);

}

该程序的执行结果是 A) 6 B) 3

C) 死循环 D) 0

[C] 教师批改:C

22、有如下程序

main0

{ int x=23;

do

{ printf(“%d”,x--);}

while(!x);

}

该程序的执行结果是 A) 321 B) 23

C) 不输出任何内容 D) 陷入死循环

[B] 教师批改:B

23、有如下程序

main0

{ int n=9;

while(n>6) {n--;printf(“%d”,n);}

}

该程序段的输出结果是 A) 987 B) 876

C) 8765 D) 9876

[B] 教师批改:B

24、以下循环体的执行次数是

main()

{ int i,j;

for(i=0,j=1; i<=j+1; i+=2,

j--)printf("%d n",i);

} A) 3 B) 2

C) 1 D) 0

[C] 教师批改:C

25、以下叙述正确的是 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。

C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D)

用do-while语句构成的循环,在while后的表达式为零时结束循环。

[D] 教师批改:D

26、以下程序段的执行结果是

int a, y;

a=10; y=0;

do

{ a+=2; y+=a;

printf("a=%d y=%dn",a,y);

if(y>20) break;

{ while(a=14); A) a=12 y=12

a=14 y=16

a=16 y=20

a=18 y=24 B) a=12 y=12

a=16

y=28

C) a=12 y=12 D) a=12 y=12

a=14 y=26

a=14

y=44

[B] 教师批改:B

27、以下程序的输出结果是

main( )

{ int x=10,y=10,I;

for(i=0;x>8;y=++i)

printf("%d,%d ",x--,y);

} A) 10 1 9 2 B) 9 8 7 6

C) 10 9 9 0 D) 10 10 9 1

[D] 教师批改:D

28、以下程序的输出结果是

main( )

{ int n=4;

while(n--)printf("%d ",--n);

} A) 2 0 B) 3 1

C) 3 2 1 D) 2 1 0

[A] 教师批改:A

29、以下程序的输出结果是

main( )

{ int i;

for(i=1;i<6;i++)

{ if(i%2){printf("#");continue;}

printf("*");

}

printf("n");

} A)

#*#*# B) #####

C) ***** D) *#*#*

[A] 教师批改:A

30、执行以下程序段时

X=-1;

do {x=x*x; } while(! x); A)

循环体将执行一次 B) 循环体将执行两次

C) 循环体将执行无限次 D)

系统将提示有语法错误

[A] 教师批改:A

31、执行以下程序后,输出的结果是

main

()

{ int y=10;

do { y - -;} while(- - y);

printf("%dn",y - -);

}

A) -1

B) 1

C) 8

D) 0

[D] 教师批改:D

32、在下列选项中,没有构成死循环的程序段是

A) int i=100

while(1)

{ i=i%100+1;

if(i>100)break;

}

B) for( ; ;);

C) int k=1000;

do{++k;}

while(k>=10000);  D) int s=36;

while(s);--s;

[C] 教师批改:C

33、执行语句: for(i=l:i++<4:);后,变量i的值是

A) 3

B) 4

C) 5

D) 不定

[C] 教师批改:C

34、以下程序的输出结果是

main()

{ int i,j,x=0;

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

{ x++;

for(j=0;j<=3;j++)

{ if(j%2)continue;

x++;

}

x++;

}

printf("x=%dn",x);

}

A) x=4

B) x=8

C) x=6

D) x=12

[B] 教师批改:B

35、运行以下程序后,如果从键盘上输入65 14,则输出结果为:

main()

{ int m, n;

printf("Enter m,n;"); scanf("%d%d", &m,&n):

while (m!=n)

{ while (m>n)m-=n;

while (n>m)n-=m;

}

printf("m=%dn",m);

}

A) m=3

B) m=2

C) m=1

D) m=1

[C] 教师批改:C

36、设x和y均为int型变量,则执行下的循环后,y值为

for(y=1,x=1;y<=50;y++)

{ if(x>=10))break;

if (x%2==1)

{ x+=5; continue;}

x-=3;

}

A) 2

B) 4

C) 6

D) 8

[C]  教师批改:C

37、假定a和b为int型变量,则执行以下语句后b的值为

a=1; b=10;

do{

b-=a; a++; } while (b--<0) ;

A) 9

B) -2

C) -1

D) 8

[D] 教师批改:D

38、设j为int型变量,则下面for循环语句的执行结果是

for( j=10;j>3;j--)

{ if(j%3)j--;

--j; --j;

printf("%d ",j);

}

A) 6 3

B) 7 4

C) 6 2

D) 7 3

[B] 教师批改:B

39、若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是

for (i=5;i;i--)

for(j=0;j<4;j++){...}

A)20

B)25

C)24

D)30

[A] 教师批改:A

40、执行下面的程序后,a的值为

main()

{ int a,b;

for

(a=1,b=1;a<=100;a++)

{ if(b>=20)

break;

if(b%3==1) {b+=3; continue; }

b-=5;

}

}

A) 7

B) 8

C) 9

D) 10

[B] 教师批改:B

41、以下程序段的输出结果是

int x=3;

do { printf("%3d",x-=2);} while(!(--x)); A) 1 B) 3

0

C) 1-2 D) 死循环

[C] 教师批改:C

42、下面的程序

main()

{ int x=3;

do {

printf("%dn",X-=2);

}while(!(--x));

} A) 输出的是1 B) 输出的是1和-2

C) 输出的是3和0 D) 是死循环

[B] 教师批改:B

43、下面程序的输出是

main()

{ int y=9;

for( ; y>0; y--)

{ if(y%3==0)

{

printf("%d", --y);continue;}

}

} A) 741 B) 852

C) 963 D) 875421

[B] 教师批改:B

44、若x是int型变量,且有下面的程序片段:

for(x=3; x<6; x++)

printf((x%2)?("**%d"):("##%dn"),x);

上面程序片段的输出结果是 A)

**3

##4

**5 B)

##3

**4

##5

C)

##3

**4##5 D)

**3##4

**5

[D] 教师批改:D

45、请读程序片段:

#include

main()

{ int a, b;

for(a=1;b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{

b+=3;

continue;

}

b-=5;

}

printf("%dn",a);

}

上面程序的输出结果是 A) 7 B) 8

C) 9 D) 10

[B] 教师批改:B

46、请读程序:

#include

main()

{ int mun=0;

while(num<=2)

{ num++; printf("%dn",num);}

}

上面程序的输出结果是 A)

1

2

3

4 B)

1

2

3

C) 1

2 D)

1

[C] 教师批改:C

47、请读程序:

#include

#include

main()

{ float x,y,z;

scan("%f%f",&x,&y);

z=x/y;

while(1)

{ if(fabs(z)>1.0)

{ x=y;

y=z; z=x/y; }

else

break

}

printf("%fn",y);

}

若运行时从键盘上输入3.6

2.4(表示回车),则输出的结果是

A) 1.500000 B) 1.600000

C) 2.000000 D) 2.400000

[B] 教师批改:B

48、执行下面程序片段的结果是( )

int x=23;

do

{ printf("%2d",x--);}

while(!x); A) 打印出321 B)

打印出23

C) 不打印任何内容 D) 陷入死循环

[B] 教师批改:B

49、语句while(!E);中的条件!E等价于( ) 。 A)E = = 0 B)E!=1

C)E!=0 D)~E

[A] 教师批改:A

50、C语言中( )。 A)不能使用do-while语句构成的循环 B)do-while语句构成的循环必须用break语句才能退出

C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环

[D] 教师批改:D

51、以下程序的输出结果是( )。

# include

main()

{ int i;

for ( i=1;i<=5;i + +

) {

if ( i%2 ) printf("*");

else continue; printf("#");

}

printf("$n");

} A)

*#*#*#$ B) #*#*#*$

C) *#*#$ D) #*#*$

[A] 教师批改:A

52、设有程序段:

int k=10;

while(k=0)

k=k-1;

则下面描述中正确的是_____。

A.while循环执行10次 B.循环是无限循环

C.循环体语句一次也不执行 D.循环体语句执行一次

[C] 教师批改:C

53、以下程序段的运行结果是_____。

int n=0;

while(n++<=2);

printf("%d",n); A. 2 B. 3

C. 4 D. 有语法错误

[C] 教师批改:C

54、以下程序段的运行结果是_____。

int a=1,b=2,c=2,t;

while(a

{ t=a; a=b; b=t; c--; }

printf("%d,%d,%d",a,b,c); A. 1,2,0 B.

2,1,0

C. 1,2,1 D. 2,1,1

[A] 教师批改:A

55、下面程序段的运行结果是____。

x=y=0;

while(x<15)

y++ ,x+=++y ;

printf("%d,%d" ,y,x); A. 20,7 B.

6,12

C. 20,8 D. 8,20

[D] 教师批改:D

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值