C)do-while允许从外部转到循环体内 D)do-while 的循环体不能是复合语句 正确答案: A
6.21 下列说法中错误的是 A)只能在循环体内使用break语句
B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 C)在while和do?while循环中,continue语句并没有使整个循环终止
D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断 正确答案: A
二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)
6.22 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【1】。 for(i=0, j=10; i<=j; i++, j- -) k=i+j; 正确答案: 10
6.23 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。 main() {int i, x, y=1; scanf(\); for(i=2; i<=x/2; i++) if【2】{ y=0; break;} printf(\\n\); }
正确答案: (x%i= =0)
6.24 以下程序的输出结果是【3】。 main() { int y=9; for(; y>0; y- -) if (y%3= =0)
{ printf(\); continue; } }
正确答案: 852
6.25 阅读下面程序段,则执行后的输出结果为 【4】 。 #include \main() { int a=1; for(;a<=15;)
if(++a%5!=2) continue;
else printf(\); printf(\\n\); } 正确答案: 2712
6.26 阅读下面语句,则执行后的输出结果为 【5】 #include \main() {char a,b;
for(a=′0′,b=′9′;a printf(\); printf(\\n\);} 正确答案: 0918273645
6.27 阅读下面程序,则执行后程序的结果为 【6】 #include \main() { int a=0,b=0; while(a<15)a++; while(b++<15);
printf(\\n\);} 正确答案: 15,16
2011年计算机等级二级C语言章节习题及答案(6)
第7章 数组
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
7.1 若有说明 int a[3][4];则a数组元素的非法引用是 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 正确答案:D
7.2 在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量 B)整型表达式
C)整型常量或整型表达式 D)任何类型的表达式 正确答案:C
7.3 执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10; A)不定值 B)33 C)30 D)10 正确答案:A
7.4 定义如下变量和数组: int k;
int a[3][3]={9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是
for(k=0;k<3;k++)printf(\[k][k]); A)7 5 3 B)9 5 1 C)9 6 3 D)7 4 1 正确答案:B
7.5 下列程序执行后的输出结果是 main()
{ char arr[2][4]; strcpy(arr,\); strcpy(arr[1],\); arr[0][3]=′&′; printf(\\n\); }
A)you&me B)you C)me D)err 正确答案:A
7.6 设有数组定义: char array[]=\则数组 array所占的空间为 A)4个字节 B)5个字节 C)6个字节 D)7个字节 正确答案:C
7.7 以下不正确的定义语句是
A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9};
C)char c1[]={′1′,′2′,′3′,′4′,′5′}; D)char c2[]={′\x10′,′\xa′,′\x8′}; 正确答案:B
7.8 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 A)2 B)3 C)4 D)无确定值 正确答案:B
7.9 对以下说明语句的正确理解是 int a[10]={6,7,8,9,10};
A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10]
D)因为数组长度与初值的个数不相同,所以此语句不正确 正确答案:B
7.10 若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值 正确答案:D 7.11 有以下程序 main()
{ char a[]={ ′a′, ′b′, ′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j; i=sizeof(a); j=strlen(a);
printf(\\b\); }
程序运行后的输出结果是 A)9,9 B)8,9 C)1,8
D)9,8 正确答案:D
7.12 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A)3 B)6 C)10 D)20 正确答案:D
7.13 以下能对二维数组c进行正确的初始化的语句是 A)int c[3][]={{3},{3},{4}}; B)int c[][3]={{3},{3},{4}}; C)int c[3][2]={{3},{3},{4},{5}}; D)int c[][3]={{3},{},{3}}; 正确答案:B
7.14 在C语言中,一维数组的定义方法为 类型说明符 数组名 A)[常量表达式] B)[整型常量] C)[整型变量]
D)[整型常量]或[整型表达式] 正确答案:A
7.15 若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为设a[0][0]位于数组的第一个位置上) A)i*m+j B)j*m+I C)i*m+j-1 D)i*m+j+1 正确答案:A
7.16 下面程序输出的结果是 main() { int i;
int a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)
printf(\[2-i][i]); } A)1 5 9 B)7 5 3
(假