C语言第6-7章试卷有答案
- 格式:pdf
- 大小:118.07 KB
- 文档页数:13
C语⾔第6-7章试卷有答案
(6~7章)⼀、选择题1、能正确表⽰a和b同时为正或同时为负的逻辑表达式是
A) (a>=0‖b>=0)&&(a<0‖b<0) B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0) D) a*b>0
2、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
A) a\bre\'hi\'y\\\bou B) a\bre\'hi\'y\bou C) re'hi'you D) abre'hi'y\bou
3、设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&&++y));的输出结果是A) 1 B) 0 C) -1 D) 2
4、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A) c=b=a;B) (a=c) ‖(b=c) ;C) (a=c) &&(b=c);D)a=c=b;
5、以下程序的输出结果是
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 6、设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 12 7、下列程序执⾏后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); } A) -32767 B) FFFE C) -1 D)8、下列程序的输出结果是A) 3 B) 3.2 C) 0 D) 3.07
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
9、下列程序执⾏后的输出结果是(⼩数点后只写⼀位)
main()
{ double d; float f; long e; int i;i=f=e=d=20/3;
printf("%d %ld %f %f \n", i,e,f,d);}
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0
10、设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1 C) 2 D) -1
11、以下循环体的执⾏次数是
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 12、以下叙述正确的是A) do-while语句构成的循环不能⽤其它语句构成的循环来代替。
B) do-while语句构成的循环只能⽤break语句退出。
C) ⽤do-while语句构成的循环,在while后的表达式为⾮零时结束循环。
D) ⽤do-while语句构成的循环,在while后的表达式为零时结束循环。
13、下列程序执⾏后的输出结果是A) G B) H C) I D) J
main( )
{ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }
14、以下程序的输出结果是
main( )
{ int n=4;
while(n--)printf("%d ",--n);
} A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0
15、以下程序运⾏后,如果从键盘上输⼊5,则输出结果是
main()
{ int x;
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
} A)3 B) 4 C) 5 D) 6 16、有以下程序
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
17、以下程序的输出结果是
main( )
{ int a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0))
printf("%d %d\n",a,b);printf("%d %d\n",b,a);
}
A) -1 1 B) 0 1 C) 1 0 D) 0 0
18、运⾏下列程序时输⼊:123456789,输出结果是main( )
{ char s[100]; int c, i;
scanf("%c",&c); scanf("%d",&i); scanf("%s",s);
printf("%c,%d,%s \n",c,i,s);
}
A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 19、以下程序的输出结果是 main( )
{ int i ;
for(i=1;i<6;i++)
{ if(i%2){printf("#");continue ;}
printf("*");
}
printf("\n");
}A) #*#*# B) ##### C) ***** D) *#*#*20、以下程序的输出结果是
main( )
{ int i ;
for(i='A';i<'I';i++,i++) printf("%c",i+32);
printf(" \n");
} A) 编译不通过,⽆输出 B) aceg C) acegi D) abcdefghi 21、 有以下程序 main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d \n",x);
}程序运⾏后的输出结果是 A)3 B)5 C)-1 D)-2
(23)以下程序段的执⾏结果是
int a=10, y=0;
do
{ a+=2; y+=a;
printf("a=%d y=%d\n",a,y);
if(y>20) break;
} while(a=14); A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 23、.有以下程序 main()
{ int i=0,x=0,int 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)21 D)程序进⼊死循环
C) a=12 y=12 a=14 y=26 a=14 y=44 D) a=12 y=12 a=16 y=20 a=18 y=24
24、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
A)for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1; p*=i;}
C)i=1;p=1;while(i<=5){p*=i; i++;} D)i=1;p=1;do{p*=i; i++; }while(i<=5);
25、下列程序的输出结果是_________。
main()
{int i;
for(i=1;i+l;i++)
{if(i>4){printlf("%d",i++);break;}
}
printf("%d",i++);
}A)55B)56 c)程序错误,没有输出D)循环条件永远为真,死循环
26、假定int类型变量占⽤两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A) 3 B) 6 C) 10D) 20 27、执⾏下⾯的程序后,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 28、以下程序的输出结果是A} 0650 B} 1470 C} 5430 D} 输出值不定
main()
{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
} 29、以下程序的输出结果是A)9 9 B)5 20 C)13 20 D)20 20
main(){ char st[20]= "hello\0\t\\\";
printf(%d %d \n",strlen(st),sizeof(st));
} 30、有以下程序
m ain()
{ int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for (j=2;j>=i;j--)
if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for (i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
for (i=0;i<8;i++) printf("%d",x);
printf("\n");
} 程序运⾏后的输出结果是:A)75310246B)01234567 C)76310462
D)13570246 31、有以下程序
main( )
{ char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(a) ,sizeof(b) );
}执⾏后输出结果是A) 7 7 B) 8 8C) 8 10 D) 10 10 32、以下程序的输出结果是main ()
{ int y=18,i=0,j,a[8];
do
{ a[i]=y%2;i++;
y=y/2;
} while(y>=1);
for(j=i;j>=0;j--)printf(“%d",a[j]);
printf("\n");
} A)1000 B)10010 C)00110 D)10100
33、已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是
A)数组a和b的长度相同B)a数组长度⼩于b数组长度C)a数组长度⼤于b数组长度D)上述说法都不对34、有以下程序main()
{ int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) if(p[i]%2) j+=p[i];
printf("%d ",j);