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语言会自动将剩余的元素初始化为初始化列表中最后一个初始值。
A.对 B.错
15.可以对字符型数组进行整体输入、输出。
A.对 B.错
16.可以对实型数组进行整体输入、输出。
A.对 B.错
17.设有定义:double a[4][5];,则数组a中元素的个数是9。
A.对 B.错 18.设有定义:int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}};,则表达式a[1][2]+a[2][3]的值9。
A.对 B.错 19.设有定义:char s[]={\,则执行printf(\后输出的值是6。
A.对 B.错
20.设有两个整型数组a和b,可以通过a=b,将数组b整体赋值给数组a。
A.对 B.错 (二)、选择题
1.设有两字符串“Good”、“Morning”分别存放在字符数组 str1[10]、str2[10]中,下面语句中能把“Morning”连接到“Good”之后的是______。 A.strcpy(str1,str2); B.strcpy(str1, \
C.strcat(str1, \ D.strcat(\2.以下对一维整型数组 a 定义正确的是______。
A.int a(10); B.int n=10,a[n];
C.int n;scanf(\D.#define SIZE 10 int a[SIZE];
3.下列字符串赋值语句中,不能正确把字符串“Hello World”赋给数组的语句是______。
A.char a1[]={'H','e ','l','l','o','','W','o','r','l','d','\\0'}; B.char a2[15]; strcpy(a2,\C.char a3[15]; a3=\D.char a4[10]={ \
4.用 scanf 函数输入一个字符串到数组 str 中,下面正确的语句是______。
A.scanf(\ B.scanf(\C.scanf(\ D.scanf(\
5.以下能对二维数组 a 进行正确说明和初始化的语句是______。
A.int a()(3)={ (1,2,3),(2,4,6)};B.int a[2][]={{3,2,1},{5,6,7}}; C.int a[][3]={{3,2,1},{5,6,7}};D.int a(2)()={(1,2,3),(2,4,6)}; 6.判断字符串 a 和 b 是否相等,应当使用______。
A.if(a==b) B.if(a=b)
C.if(strcat(a,b)) D.if(strcmp(a,b))
7.有字符数组 a[80]和 b[80],则正确的输出语句是______。
A.puts(a,b); B.puts(a);puts(b);
C.printf(\ D.putchar(a,b); 8.下面程序的运行结果是______。 #include
{int a[5],i;
for(i=0;i<5;i++)
{ a[i]=9*(i-2+4*(i>3))%5; printf(\
A.-3-404 4 B.-3-4043C.-3-40 4 2 D.-3-40 4 0
9.假设 array 是一个有 10 个元素的整型数组, 则下列写法中正确的是______。
A.array[0]=10; B.array=0;C.array[10]=0;D.array[-1]=0; 10.下面程序的运行结果是______。
#include
{int a[3],i,j,k;
for(i=0;i<3;i++) a[i]=0; k=2;
for(i=0;i printf(\ A.0 B.1 C.2 D.3 11.若有定义:int a[5]={1,2,3,4,5};char b='c',c;,则下面表达式中数值为 2 的是______。 A.a[2] B.a[c-b] C.a[b] D.a[b-'b'] 12.下面程序的运行结果是______。 #include {int a[3][3]={1,2,3,4,5,6,7,8,9},i; for(i=0;i<=2;i++)printf(\A.3 5 7 B.3 6 9C.1 5 9 D.1 4 7 13.下面程序的运行结果是______。 #include {char c[5]={'a','b','\\0','c','\\0'}; printf(\ A.'a' 'b' B.abC.ab c D.ab\\0c\\0 14.下面程序的运行结果是______。 #include {char s[12]= \printf(\ A.6 B.7 C.10 D.12 15.若有说明:int a[3][4]; 则对a数组元素的正确引用是______。 A.a[2][4] B.a[1,3]C.a[1+1][0] D.a(2)(1) 16.以下各组选项中,均能正确定义二维实型数组a的选项是______。 A.float a[3][4]; float a[][4]; float a[3][]={{1},{0}}; B.float a(3,4); float a[3][4]; float a[][]={{0};{0}}; C.float a[3][4]; static float a[][4]={{0},{0}}; D.float a[3][4]; float a[3][]; 17.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式是______。(假设