[C] 教师批改:C
4、若有说明:int a[l0];则对a效组元素的正确引用是_____。 A. a[10] B. a[3.5] C. a(5) D. a[10-10] [D] 教师批改:D
5、在C语言中.一维数组的定义方式为;类型说明符 数组名_____。 A. [常量表达式] B. [整型表达式]
C. [整型常量]或[整型表达式] D. [整型常量] [C] 教师批改:A
6、以下能对一维数组a进行正确初始化的语句是_____。 A. int a[lO]=(0,0.0,0,0); B. int a[l0]={ }; C. int a[ ]={0}; D. int a[10]={10*1}; [D] 教师批改:C
7、以下对二维数组a的正确说明是_____。 A. int a[3][ ]; B. float a(3,4); C. double a[1][4]; D. float a(3)(4); [C] 教师批改:C
8、若有说明:int a[3][4];则对a数组元素的正确引用是_____。 A. a[2][4] B. a[l,3] C. a[l+l][0] D. a(2)(1)
[C] 教师批改:C
9、若有说明:int a[3][4];则对a效组元素的非法引用是_____。 A. a[0][2*1] B. a[l][3] C. a[4-2][0] D. a[0][4]
[D] 教师批改:D
10、若有说明:int a[ ][3]={1,2,3,4,5,6,7};则a数组第一维的大小是_____。 A. 2 B. 3 C. 4 D. 无确定值 [D] 教师批改:B
11、以下程序段的结果是_____。 int k;
int a[3][3]={1,2,3,4,5,6,7,8,9}; for(k=0;k<3;k++) printf{\,a[k][2-k]); A. 3 5 7 B. 3 6 9 C. 1 5 9 D 1 4 7
[A] 教师批改:A
12、若二维数组a有m列,则在a[i][j]前的元素个数为_____。 A. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+1 [C] 教师批改:B
13、若有说明:int a[3][4]={0};则下面正确的叙述____。 A. 只有元素a[0][0]可以得到初值 B. 此说明语句不正确
C. 数组a中各元素都可得到初值,但其值不一定为0 D. 数组a中各元素都可得到初值0 [D] 教师批改:D
14、合法的数组定义是_____。 A.int a[]=\ B.int a[5]={0,1,2,3,4,5}; C.char a=\ D.char a[]={0,1,2,3,4,5}; [B] 教师批改:D 15、若有定义和语句: char s[10]; s=\ printf(\
则结果是(以下μ代表空格)_____。 A.输出abcd B.输出a
C.输出abcdμμμμμ D.编译不通过 [B] 教师批改:D
16、若有以下说明和语句,则输出结果是_____。 char sp[]=\ printf(\ A.1D B.3 C.9
D.字符串中有非法字符 [B] 教师批改:B
17、若有以下说明和语句,则输出结果是_____。 char str[]=\ printf(\
A.字符串中有非法字符 B.\\\ C.\ D.\ [D] 教师批改:C
18、下列对C语言字符数组的描述中错误的是_____。 A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 [A] 教师批改:C 19、有以下程序 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(\); }
程序运行后的输出结果是_____。 A)42 B)45 C)56 D)60
[A] 教师批改:B
20、以下叙述中错误的是 _____。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变 C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数 [C] 教师批改:C 21、有以下程序 main()
{ 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(\); printf(\);
}
程序运行后的输出结果是_____。 A) 75310246 B) 01234567 C) 76310462 D) 13570246 [A] 教师批改:A
22、假定int类型变量占用两个字节,其有定义:
int x[10]={0,2,4};,则数组x在内存中所占字节数是_____。 A) 3 B) 6 C) 10 D) 20
[D] 教师批改:D
23、以下程序的输出结果是_____。 main() { int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i; printf(“%d%d%d”,a[2],a[5],a[8]); } A) 258 B) 741 C) 852 D) 369
[C] 教师批改:C 24、有如下程序 main()
{ int n[5]={0,0,0},i,k=2; for(i=0;i 该程序的输出结果是_____。 A) 不确定的值 B) 2 C) 1 D) 0 [D] 教师批改:D 25、执行下面的程序段后,变量k中的值为_____。 int k=3, s[2]; s[0]=k; k=s[1]*10; A) 不定值 B) 33 C) 30 D) 10 [A] 教师批改:A 26、以下程序运行后,输出结果是_____。 main() { int y=18,i=0,j,a[8]; do { a[i]=y%2; i++ y=y/2; } while(y>=1) for(j=i-1;j>=0;j--) printf(\ printf(\); } A) 10000 B) 10010 C) 00110 D) 10100 [B] 教师批改:B 27、以下程序的输出结果是_____。 main() { int i,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(\); } A)20 B)21 C)22 D)23 [B] 教师批改:B 28、阅读下列程序: main() { int n[3],i,j,k; for(i=0;i〈3;i++〉 n[i]=0; k=2; for (i=0;i〈k;i++〉 for (j=0;j〈k;j++〉 n[j]=n[i]+1; printf(\); } 下述程序运行后输出结果是_____。 A) 2 B) 1 C) 0 D) 3 [D] 教师批改:D 29、有以下程序 main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=1;j<=i;j++) printf(\ ?); for(j=_____;j<4;j++) printf(\); printf(\); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是_____ A) i-1 B) i C) i+1 D) 4-i [C] 教师批改:B 30、以下能正确定义二维数组的是 A) int a[][3]; B) int a[][3]= {2*3}; C) int a[][3]={}; ) int a[2][3]={{1},{2},{3,4}}; [B] 教师批改:B 31、以下能正确定义数组并正确赋初值的语句是 A) int N=5,b[N][N]; B) int a[1][2]={{1},{3}}; C) int c[2][]={{1,2},{3,4}}; D) int d[3][2]={{1,2},{34}}; [B] 教师批改:D 32、有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf(\); } } 执行后输出结果是 A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9 [C] 教师批改:C 33、有以下程序 main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0 for(i=0;i<4;i++) s+=aa[i][1]; printf(\ } 程序运行后的输出结果是 A) 11 B) 19 C) 13 D) 20 [B] 教师批改:B 34、以下程序的输出结果是 main() { int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(“%dn”,s); } A) 18 B) 19 C) 20 D)21 [A] 教师批改:A 35、下列描述中不正确的是 A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 [A] 教师批改:C 36、请读程序片段(字符串内没有空格): printf(\(\)); 上面程序片段的输出结果是 A) 11 B) 10 C) 9 D) 8 [B] 教师批改:C 37、以下数组定义中不正确的是 A) int a[2][3]; B) int b[][3]={0,1,2,3}; C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; [D] 教师批改:D 38、以下程序的输出结果是 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf(\} A) 0650 B) 1470 C) 5430 D) 输出值不定 [B] 教师批改:A 39、以下程序的输出结果是 main() { int n[3][3] , i, j; for ( i=0; i<3; i++ ) for ( j=0; j<3; j++ ) n[i][j]=i+j; for ( i=0; i<2; i++ ) for ( j=0; j<2; j++ ) n[i+1][j+1]+= n[i][j]; printf(“%d\\n”,n[i][j]); } A)14 B)0 C)6 D)值不确定 [C] 教师批改:C 40、定义如下变题和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是 for(i=0;i<3;i++) printf(\); A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9 [B] 教师批改:C 41、有以下程序 #include { char p[]={?a?, ?b?, ?c?}, q[10]={?a?, ?b?, ?c?}; printf(\(p), strlen(q)); } 以下叙述中正确的是( ) A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3 C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3 D)由于p和q数组中都没有字符串结束符,故长度都不能确定 [B] 教师批改:B 42、有定义语句:int b;char c[10]; ,则正确的输入语句是_____ A)scanf(\); B)scanf(\); C)scanf(\); D)scanf(\); [A] 教师批改:B 43、以下能正确定义一维数组的选项是_____ A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5}; C)char a={?A?,?B?,?C?}; D)int a[5]=\ [B] 教师批改:B 44、已有定义:char a[]=\以下叙述中正 确的是_____ A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 [A] 教师批改:C 45、s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是_____ A) if(s1>s2)S; B) if(strcmp(s1,s2))S; C) if(strcmp(s2,s1)>0) S; D) if(strcmp(s1,s2)>0)S; [C] 教师批改:D 146、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t; C) char s[10];s=”abcdefg”; D) char s[10];strcpy(s,”abcdefg”); [C] 教师批改:C 47、当执行下面的程序时,如果输入ABC,则输出结果是 #include “stdio.h” #include “string.h” main() { char ss[10]=\ gets(ss); strcat(ss, \ } A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 [A] 教师批改:A 48、设有数组定义: char array [ ]=\则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 [C] 教师批改:C 49、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是 main() { char s[100]; int c, i; scanf(\); scanf(\); scanf(\); printf(\); } A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 [D] 教师批改:D 50、下述对C语言字符数组的描术中错误的是 A) 字符数组可以存放字符串 B) 字符数组中的字符串可以整体输入、输出 C) 可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较 [C] 教师批改:C 51、下列选项中正确的语句组是 A) char s[8]; s={\ B) char *s; s={\ C) char s[8]; s=\ D) char *s; s=\ [D] 教师批改:D 52、以下程序的输出结果是 main() { char cf[3][5]={\ printf(\); } A) \ B) \ C) \ D) \ [A] 教师批改:B 53、以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]=\ D) int n=5,a[n]; [C] 教师批改:D 54、以下选项中,不能正确赋值的是 A) char s1[10];s1=\ B) char s2[]={?C?,?t?,?e?,?s?,?t?}; C) char s3[20]=\ D) char *s4=\ [B] 教师批改:A 55、以下程序的输出结果是 main() { char w[][10]={ “ABCD”,”EFGH”,”IJKL”,”MNOP”},k; for(k=1;k<3;k++) printf(“%s\\n”,w[k]); }