- 单项选择题
1. A. float f[3,4]; B. int a[ ][4];
C. char c(3); D. double d[3+2][4];
2. 一维数组初始化时,若对部分数组元素赋初值,则下面正确的说法是______。
A. 可以只对数组的前几个元素赋初值
B. 可以只对数组的中间几个元素赋初值
C. 可以只对数组的后几个元素赋初值
D. 以上说法全部正确
3. 若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10}; char c='a'; 则数值为4的表达式是______。
A. a['f'-c] B. a[4] C. a['d'-'c'] D. a['d'-c]
4. 当执行下面程序时,输出结果是______。
#include <stdio.h>
void main()
{ int i; char b[6]={"12345"};
for(i=0;i<=4;i++) printf("%C",b[i]); }
A."12345" B.'1''2''3''4''5' C.12345 D.1,2,3,4,5
5. 用数组名作为函数调用时的实参,实际上传送给形参的是______。
A. 数组首地址 B. 数组的第一个元素值
C. 数组中全部元素的值 D. 数组元素的个数
6. 若已有char b[10]={'0','1','2','3','4'},则______。
A.元素b[5]到b[9]没有被赋值 B.元素b[5]到b[9]不存在
C.元素b[5]到b[9]自动为空字符 D.元素b[5]到b[9]自动为0字符
7. 决定数组所占内存单元多少的是______。
A. 数组的长度
B. 数组的类型
C. 数组在初始化时被赋值的元素的个数
D. 数组元素的个数及其类型
8. 已知有char a[]={"I\nsee\"ABC\""};a数组的长度是______。
A.7 B.8 C.9 D.10
9. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是______。
A. 'L' B. 'E' C. 'H' D. 'O'
10. 设有数组定义: char a[2][3]={{'a','b'},{'e'}};则数组a所占空间的字节数为______。
A.3 B.2 C.5 D.6
11. 数组初始化时,下面说法错误的是______。
A.当对一维数组的全部元素赋初值时,可以不指定长度
B.当对二维数组的全部元素赋初值时,可以省略维数
C.用字符串对一维字符数组赋值时,可以不指定长度
D.用字符串对二维字符数组赋值时,可以省略维数
12. 如已有定义:int a[4];若要把10,20,30,40分别赋值给数组a的4个元素,下面正确的赋值方式是______。
A. scanf("%d%d%d%d",a[0],a[1],a[2],a[3]);
B. scanf("%s", a)
C. a[0]=10;a[1]=a[0]+10;a[2]=a[1]+10;a[3]=a[2]+10;
D. a={10,20,30,40};
13. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'},指出以下会导致错误的语句______。
A. printf("%s",a[0]); B. printf("%c",a[4]);
C. printf("%x", A); D. printf("%s", A);
14. 设定义了:char a[10]={'1','2','3','4','5'}; 则a[5]的正确初值是______。
A. '5' B. 5 C. '\0' D. ' '
15. 以下程序的输出结果是______。
#include <stdio.h>
void 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]); }
A.0650 B. 1470 C. 5430 D.输出值不确定
16. 下面程序的输出是______。
#include <stdio.h>
void main()
{ struct cmplx int x;inf y;}cnum[2]={1,3,2,7};
printf(“%d、n”,cnum[0].y/cnum[0].x*cnum[1].x);}
A.0 B.1 C.3 D.6
17若定义数组并初始化
int i,j,a[2][3]= {{1,2},{3,4},{5,6}};
for(i=0;i<2;i++)
for(j=0;j<3;j++) printf("%d", a[i][j]);语句的结果是哪一个______。
A. 1,2,3,4,5,6 B. 1 2 3 4 5 6 C. 120340 D. 1 2 0 3 4 0
18. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立______。
A. 表达式b[1][2]的值为1 B. 表达式b[1][2]的值为4
C. 表达式b[1][2]的值为6 D. 表达式b[1][2]的值为2
19. 下述对C语言字符数组的描述中错误的是______。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
20. 设有程序:
#include <stdio.h>
void main()
{ int i,a[5]; printf("Please input number:\n");
for (i=0;i<=4;i++) scanf("%d",( ));
... ...
printf("输出数组:\n");
for(i=0;i<=4;i++) printf("%d,",( )); }
则在程序中的两个括号中应填入______。
A. a[i]和&a[i] B. &a[i]和&a[i] C. &a[i]和a[i] D. a[i]和a[i]
21. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立______。
A. a[10]是a数组的最后一个元素的引用
B. a数组中有10个元素
C. a数组中每个元素都为整数
D. a数组是整型数组
22. 已定义:float a[5]; 则数组a可引用的元素有______。
A. a[1]~a[5] B. a[0]~a[5] C. a[1]~a[4] D. a[0]~a[4]
23. 设有定义:char a[][5]={{'*'},{'*',' ','*'},{'*',' ',' ',' ','*'},{'*',' ','*'},{'*'}}; 则a[0][0]和a[4][4]的初值分别为______。
A. *,* B. 空格,空格 C. 空白符,* D. *,空白符
24. 设有程序段: #define N 3 #define M N+2 float a[M][N]; 则数组a的元素个数和最后一个元素分别为______。
A. 15,a[5][3] B. 15,a[3][5] C. 8,a[4][2] D. 15,a[4][2]
25下面程序的输出是______。
#include <stdio.h>
void main( ) {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(“%d、n”,*(p2));}
A.3 B.4 C.1 D.2
26.阅读程序:
f(int b[],int n)
{ int i,r=1;
for(i=0;i<=n;i++) r=r*b[i];
return r; }
main()
{ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3); printf("%d\n",x); }
以上程序的输出结果是______。
A. 720 B. 6 C.24 D. 120
27. 若有数组定义 char str[10]={"1234567"};则执行printf("%.3s",str);后,输出结果是______。
A. 输出第1,第2,第3个元素的值
B. 输出str[1],str[2],str[3]的值
C. 输出全部元素
D. 输出格式描述不正确
28.在对二维数组初始化时,错误的说法是______。
A.可对二维数组的全部元素赋初值
B.可对二维数组的部分元素赋初值
C.给二维数组的全部元素赋初值时,可以不指定第一维的长度但第二维的长度不能省略
D.给二维数组的全部元素赋初值时,可以不指定第二维的长度但第一维的长度不能省略
29. 若定义数组并初始化char a[20]= "Hello"; printf("%s", strupr(a);语句的结果是哪一个______。
A. hello B. Hello C. HELLO D. 不确定
30. 已定义:int a[15]; 则数组a占用的内存单元数是______。
A. 15 B. 16 C. 30 D. 32
31. 若定义数组并初始化char a[20]= "Hello";使用函数调用strcat(a," world")后, printf("%s", a)语句的结果是哪一个______。
A. Hello B. Hello word C. world D. 不确定
32. 以下数组定义中,不正确的是______。
A. int b[3][4];
B. int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};
C. int b[200][100]={0};
D. int c[ ][3]={{1,2,3},{4,5,6}};
33. 指出以下错误语句______。
A. 用#define N 10语句定义了n后,可以使用char str[N+1];语句定义数组
B. 在用#define N 10语句定义了n后,可以使用char str[N];语句定义数组
C. 在用#define n 10语句定义了n后,可以使用char str[n];语句定义数组
二、判断题
1.可以用如下的语句定义数组a:int n=10,a[n];
2. 设需定义一个有15个元素的数组a,并对其前5个元素赋初值,可用如下语句实现:int a[]={1,2,3,4,5};
3.数组中的所有元素必须属于同一种数据类型。
4. 定义数组: int a[10]; 则数组a的最后一个元素是a[9],数组 a共有9个元素。
5. 语句printf(“%d\n”,strlen(“\t\”\065\xff\n”))输出项不合法,无正常输出。
6. 在计算机中二维数组的元素是按行顺序存放的,即在内存中,先顺序存放二维数组第一行的元素,再顺序存放二维数组第二行的元素,以此类推。
7. 数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。
8. 设定义了:char c[]={"girl"}; 则字符数组c在内存中占用5个字节的内存单元。
9. C语言只能单个引用数组元素而不能一次引用整个数组。
10. 设已定义:double a[5][5]; 则数组a在内存中的存放顺序是:a[0][0],a[0][1],a[0][2], ... ,a[4][3],a[4][4] 。
11. 在C语言中,可以用表达式:"AbcDE">"ABC"比较字符串的大小。
12. 设已定义:char a[3][5]; 则可用语句 scanf("%s",a); 给数组a输入15个字符之内的字符串。
13. 设有int a[2][3],元素a[1][2]是数组中第六个元素。
14. C语言数组的下标从0开始,下标必须是整数型的常量或变量。
15. C语言中数组元素用数组名后带圆括弧的下标表示。
三、填空题
1.#include<stdio.h>
void 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]);}
输出:_________
2. #include<stdio.h>
#include<string.h>
void main( )
{ char ss[10]={"1,2,3,4,5"};
gets(ss);
strcat(ss,"6789");
printf("%s\n",ss);}
如果输入ABC,则输出:_________
参考答案
DADCA CDDAD BCACA DCCCC ADDDA DADCC BBD
FFTFF TFTTT FTTTF
0650
ABC6789