2程序基本结构答案.docx

上传人:b****6 文档编号:7772330 上传时间:2023-01-26 格式:DOCX 页数:35 大小:28.35KB
下载 相关 举报
2程序基本结构答案.docx_第1页
第1页 / 共35页
2程序基本结构答案.docx_第2页
第2页 / 共35页
2程序基本结构答案.docx_第3页
第3页 / 共35页
2程序基本结构答案.docx_第4页
第4页 / 共35页
2程序基本结构答案.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

2程序基本结构答案.docx

《2程序基本结构答案.docx》由会员分享,可在线阅读,更多相关《2程序基本结构答案.docx(35页珍藏版)》请在冰豆网上搜索。

2程序基本结构答案.docx

2程序基本结构答案

程序基本结构

1.以下for循环的执行次数是

for(x=0,y=0;(y=123)&&(x<4);x++);

A)是无限循环B)循环次数不定

C)4次D)3次

2.若有如下语句

intx=3;

do{printf("%d\n",x-=2);}while(!

(--x));

则上面程序段

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

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

3.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。

#include

voidmain()

{inti=0,j,k;

do{i++;k=316-13*i;}while(_______);

j=k/11;

printf("316=13*%d+11*%d",i,j);

}

A)k/11B)k%11C)k/11==0D)k%11==0

4.下面程序的运行结果是

#include

voidmain()

{inty=10;

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

printf("%d\n",y--);

}

A)-1B)1C)8D)0

5.若运行以下程序时,从键盘输入ADescriptor表示回车),则下面程序的运行结果是

#include

voidmain()

{charc;

intv0=1,v1=0,v2=0;

do{

switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

v1+=1;

default:

v0+=1;v2+=1;

}

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8

C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=12

6.下面程序的运行结果是

#include

voidmain()

{inta=1,b=10;

do

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

printf("a=%d,b=%d\n",a,b);

}

A)a=3,b=11B)a=2,b=8C)a=1,b=-1D)a=4,b=9

7.设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是________

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

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

D)循环体语句执行一次

8.设有以下程序段

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则______

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

9.语句while(!

E);中的表达式!

E等价于_______

A)E==0B)E!

=1C)E!

=0D)E==1

10.下面程序段的运行结果是_________

a=1;b=2;c=2;

while(a

printf("%d,%d,%d",a,b,c);

A)1,2,0B)2,1,0C)1,2,1D)2,1,1

11.下面程序段的运行结果是

x=y=0;

while(x<15)y++,x+=++y;

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

A)20,7B)6,12C)20,8D)8,20

12.下面有关for循环的正确描述是

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

13.有如下程序

voidmain()

{

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j

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

}

该程序的输出结果是

A)14B)19C)20D)21

14.若i为整型变量,则以下循环执行次数是

for(i=2;i==0;)printf("%d",i--);

A)无限次B)0次C)1次D)2次

15.C语言中while和do-while循环的主要区别是

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件更严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

16.以下不是无限循环的语句为

A)for(y=0,x=1;x>++y;x=i++)i=x;

B)for(;;x++=i);

C)while

(1){x++;}

D)for(i=10;;i--)sum+=i;

17.下面程序段的运行结果是

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

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

A)x=27,y=27B)x=12,y=13

C)x=15,y=14D)x=y=27

18.执行语句for(i=1;i++<4;);后变量i的值是

A)3B)4C)5D)不定

19.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

下面程序是求这堆零件总数,请选择填空。

#include

voidmain()

{inti;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!

((i-3)%7))

if(______)

printf("%d",i);

}

A)i%9=5B)i%9!

=5C)(i-5)%9!

=0D)i%9==5

20.有如下程序

voidmain()

{intx=1,a=0,b=0;

switch(x){

case0:

b++;

case1:

a++

case2:

a++;b++

}

printf("a=%d,b=%d\n",a,b);

}

该程序的输出结果是

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

21.有如下程序

voidmain()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);

}

该程序的输出结果是

A)0.000000B)0.250000C)0.500000D)1.000000

22.有如下程序

voidmain()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec++;

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

}

该程序的输出结果是

A)0B)1C)2D)3

23.有如下程序

voidmain()

{inti,sum;

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

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

}

该程序的执行结果是

A)6B)3C)死循环D)0

24.有如下程序

voidmain()

{intx=23;

do

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

while(!

x);

}

该程序的执行结果是

A)321B)23

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

25.有如下程序

voidmain()

{intn=9;

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

}

该程序段的输出结果是

A)987B)876C)8765D)9876

26.以下函数返回a所指数组中最小的值所在的下标值

fun(int*a,intn)

{inti,j=0,p;

p=j;

for(i=j;i

if(a[i]

return(p);

}

在下划线处应填入的是

A)i=pB)a[p]=a[i]C)p=jD)p=i

27.C语言中用于结构化程序设计的三种基本结构是

A)顺序结构、选择结构、循环结构

B)if、switch、break

C)for、while、do-while

D)if、for、continue

28.对for(表达式1;;表达式3)可理解为

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

29.下列运算符中优先级最高的是

A)

=

30.有以下程序

voidmain()

{inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

执行后输出结果是

A)011122B)012C)012020D)120

31.有以下程序

voidmain()

{inta=5,b=4,c=3,d=2;

if(a>b>c)

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

elseif((c-1>=d)==1)

printf("%d\n",d+1);

else

printf("%d\n",d+2)

}

执行后输出结果是

A)2B)3C)4

D)编译时有错,无结果

32.有以下程序

voidmain()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i];i++;}

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

}

执行后输出结果是

A)58B)56C)45D)24

33.有以下程序

voidmain()

{inti=0,s=0;

 do{

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

 i++;

 s+=i;

}while(i<7);

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

}

执行后输出结果是

A)16B)12C)28D)21

34.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式

A)从左起输出该字符串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

35.已有定义inta=-2;和输出语句printf("%8lx",a);以下正确的叙述是

A)整型变量的输出形式只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的

D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

36.以下C程序正确的运行结果是

voidmain()

{longy=-43456;

printf("y=%-8ld\n",y);

printf("y=%-08ld\n",y);

printf("y=%08ld\n",y);

printf("y=%+8ld\n",y);

}

A)y=-43456(换行)y=-43456(换行)y=-0043456(换行)y=-43456

B)y=-43456(换行)y=-43456(换行)y=-0043456(换行)y=+-43456

C)y=-43456(换行)y=-43456(换行)y=-0043456(换行)y=-43456

D)y=-43456(换行)y=-0043456(换行)y=00043456(换行)y=+43456

37.putchar函数可以向终端输出一个

A)整型变量表达式值B)实型变量值

C)字符串D)字符或字符型变量值

38.以下程序的输出结果是

voidmain()

{

printf("\n*s1=%15s*","chinabeijing");

printf("\n*s2=%-15s*","chi");

}

A)*s1=chinabeijing*(换行)*s2=**chi*

B)*s1=chinabeijing*(换行)*s2=chi*

C)*s1=*chinabeijing*(换行)*s2=chi*

D)*s1=chinabeijing*(换行)*s2=chi*

39.下面程序段的运行结果是

intn=0;

while(n++<=2);printf("%d",n);

A)2B)3C)4D)有语法错

40.设有程序段:

t=0;

while(printf("*"))

{t++;

if(t<3)break;

}

下面描述正确的是

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

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

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

D)以上说法都不对

41.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空

#include

voidmain()

{inta,b,t;

scanf("%d%d",&a,&b);

while(___________)

{if(a>b)

{t=a;a=b;b=t;}

printf("%d,%d\n",a,b);

scanf("%d%d",&a,&b);

}

}

A)!

a=bB)a!

=bC)a==bD)a=b

42.以下描述中正确的是

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作

D)do-while循环中,根据情况可以省略while

43.以下关于运算符优先顺序的描述中正确的是

A)关系运算符<算术运算符<赋值运算符<逻辑运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑运算符

44.以下程序段______

x=-1;

do

{x=x*x;}

while(!

x);

A)是死循环B)循环执行二次

C)循环执行一次D)有语法错误

45.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!

y)的值是

A)0B)语法错C)1D)“假”

46.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是

A)A%2==1B)!

(A%2==0)

C)!

(A%2)D)A%2

47.设有:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>b)&&(n=c>d)后n的值是

A)1B)2C)3D)4

48.判断char型变量cl是否为小写字母的正确表达式是

A)'a'<=cl<='z'B)(cl>=a)&&(cl<=z)

C)('a'>=cl)||('z'<=cl)D)(cl>='a')&&(cl<='z')

49.以下不正确的if语句形式是

A)if(x>y&&x!

=y);

B)if(x==y)x+=y;

C)if(x!

=y)scanf("%d",&x)elsescanf("%d",&y);

D)if(x

50.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

z=x;x=y;y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

51.请阅读以下程序:

voidmain()

{

inta=5,b=0,c=0;

if(a=b+c)printf("***\n");

elseprintf("$$$\n");

}

以上程序

A)有语法错不能通过编译

B)可以通过编译但不能通过连接

C)输出***

D)输出$$$

52.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

A)1B)2C)3D)6

53.以下程序的输出结果是

voidmain()

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(x

if(y!

=10)

if(!

ok1)

a=1;

else

if(ok2)a=10;

a=-1;

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

}

A)1B)0C)-1D)值不确定

54.以下程序的输出结果是

voidmain()

{intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez+=1;

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

}

A)3B)2C)1D)0

55.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总是与________配对

A)缩排位置相同的ifB)其之前最近的if

C)其之后最近的ifD)同一行上的if

56.有如下程序

voidmain()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

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

for(j=0;p[i][j]>'\0';j+=2)

s=10*s+p[i][j]-'0';

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

}

该程序的输出结果是

A)69825B)63825C)6385D)693825

57.逻辑运算符两侧运算对象的数据类型

A)只能是0或1

B)只能是0或非0正数

C)只能是整型或字符型数据

D)可以是任何类型的数据

58.以下程序的输出结果是

voidmain()

{inti,k,a[10],p[3];

k=5;

for(i=0;i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

for(i=0;i<3;i++)k+=p[i]*2;

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

}

A)20B)21C)22D)23

59.以下程序的输出结果是

voidmain()

{intnum=0;

while(num<=2)

{num++;printf("%d\n",num);

}

A)1B)1C)1D)l

222

33

4

60.以下程序的输出结果是

voidmain()

{inta,b;

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

{if(b>=10)break;

if(b%3==1)

{b+=3;continue;}

}

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

}

A)101B)6C)5D)4

61.与y=(x>0?

1:

x<0?

-1:

0);的功能相同的if语句是

A)if(x>0)y=1;B)if(x)

elseif(x<0)y=-1;if(x>0)y=1;

elsey=0;elseif(x<0)y=-1;

C)y=-1D)y=0;

if(x)if(x>=0)

if(x>0)y=1;if(x>0)y=1;

elseif(x==0)y=0;elsey=-1;

elsey=-1;

62.以下程序中,while循环的循环次数是

voidmain()

{inti=0;

while(i<10)

{if(i<1)continue;

if(i==5)break;

i++;

}

......

}

A)1B)10C)6D)死循环,不能确定次数

63.有如下程序

voidmain()

{intn[5]={0,0,0},i,k=2;

for(i=0;i

printf("%d\n",n[k]);

}

该程序的输出结果是

A)不确定的值B)2C)1D)0

64.以下程序的输出结果是

voidmain()

{inta=0,i;

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

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

}

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

}

A)31B)13C)10D)20

65.以下程序的输出结果是

#include

voidmain()

{inti=0,a=0;

while(i<20)

{for(;;)

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

elsei--;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1