A.10 B.0 C.2 D.l 25.下列程序的输出结果是_______。
#include \void main() {int k=5;
while(-k) printf(\
A.1 B.2 C.4 D. 死循环 26.以下程序执行后的输出结果是________。
#include \void main() {int i;
for(i=1;i<=40;i++) {if(i++%5==0)
if(++i%8==0) printf(\printf(\
A.5 B.24 C.32 D.40
27.有以下程序,若运行时从键盘输入:18,11,则程序输出结果是_______ 。
#include \void main() { int a,b;
printf(\while(a!=b)
{ while(a>b) a-=b;
while(b>a) b-=a; } printf(\
A.1 1 B.1 2 C.1 3 D.1 4
28.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以
下正确的程序段是_______。
A.while((ch=getchar())!='N ')printf(\; B.while(ch=getchar()!='N ')printf(\;
C.while(ch=getchar()=='N ')printf(\; D.while((ch=getchar())=='N ')printf(\; 29.以下程序运行后的输出结果是_______。
#include \void main()
{int y=10;while(y--);printf(\A.y=0 B.y=-1 C.y=1 D.while构成无限循环 30.有以下程序段:
int n,t=1,s=0; scanf(\ do{ s=s+t; t=t-2; }while (t!=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是_______。
A.任意正奇数 B.任意负偶数 C.任意正偶数 D.任意负奇数 31.以下程序运行后的输出结果是_______。
#include \
void 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(\
A.x=4 B.x=8 C.x=6 D.x=12
32.设变量已正确定义,则以下能正确计算f=n!的程序段是_______。 A.f=0; B.f=1; for(i=1;i<=n;i++) for(i=1;i<=n;i--) f*=i;f*=i;
C.f=1; D.f=1;
for(i=n;i>1;i++) for(i=n;i>=2;i--) f*=i; f*=i;
33.以下程序运行后的输出结果是_______。
#include \void 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(\
A.0 B.4 C.6 D.7 34.以下程序的输出结果是_______。
#include \void 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(\A.3 B.4 C.5 D. 6
35.以下程序输出结果是_______。 #include \void main() {int i;
for(i=0;i<3;i++)
switch(i)
{ case 0:printf(\ case 2:printf(\default:printf(\
A.022111 B.021021 C.000122 D.012 36.以下程序输出结果是_______。 #include \void main() { int i=0,s=0; for(;;)
{if(i==3||i==5) continue; if(i==6) break; i++;s+=i;};
printf(\
A.10 B.13 C.21 D.程序进入死循环 37.若变量已正确定义,要求程序段完成求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); 38.以下程序执行后的输出结果是_______。
#include \void main()
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1; printf(\
A.3,2,0 B.3,2,-1 C.4,3,-1 D.5,-2,-5 39.以下程序执行后的输出结果是_______。
#include \void main() { int i,n=0; for(i=2;i<5;i++)
{ do{ if(i%3) continue;n++; }while(!i); n++; }
printf(\
A.n=5 B.n=2 C.n=3 D.n=4
40.下面程序的功能是输出以下形式的金字塔图。在下划线处应填入的是_______。
*
*** ***** ******* #include \voidmain( ) { int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(\for(j=1;j<=_______;j++) printf(\printf(\}
A.i B.2*i-1 C.2*i+1 D.i+2
第5章 数组
二、习题
(一)、是非题
1.数组名代表数组的首地址。
A.对 B.错
2.字符型数组可以用来存储字符串,因此可以用字符串初始化数组,例如:char str[]=\
Programming\。
A.对 B.错
3.函数strcpy(str1,str2)是将字符串 str2 连接到字符串 str1之后。
A.对 B.错
4.一个数组可以存储不同类型的数据。
A.对 B.错
5.数组在定义时可以不指定数组的长度,可根据程序中实际使用的元素个数决定。
A.对 B.错
6.在 C 语言中,只有当两个字符串所包含的字符个数相同时,才能比较大小。例如,字符串“That”与“The”就不能进行大小比较。 A.对 B.错
7.若有定义:int a[10];,使用数组元素时,下标的最小值是1,最大值是10。
A.对 B.错
8.在 C 语言中引用数组元素时,其数组的下标可以是任何类型的表达式。
A.对 B.错
9.任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占用存储空间。
A.对 B.错
10.一维数组的元素实质上就是一个变量,代表内存中的一个存储单元。
A.对 B.错
11.若有说明:int a[3][4]={0};,则只有元素a[0][0]可得到初值0。
A.对 B.错
12.若有说明:int a[][3]={1,2,3,4,5,6,7};,则a数组第一维的大小不能确定。
A.对 B.错
13.若一维数组在定义时进行了初始化,则可以省略数组长度,系统会根据初始值个数确定该数组长度。
A.对 B.错
14.数组初始化时,若初始值的个数少于数组定义的长度,C语言会自动将剩余的元素初始化为初始化列表中最后一个初始值。