【第6章】数组

更新时间:2024-05-28 05:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计》计算机二级笔试习题

《C语言程序设计》分类习题六——数组

姓名:__________________ 学号:__________________ 成绩: __________________

一、基础题 (下列各题A、B、C、D 四个选项中,只有一个选项是正确的)

1.以下关于数组的描述正确的是( ).

A. 数组大小是固定的,但可以有不同的类型的数组元素

B. 数组大小是可变的,但所有数组元素的类型必须相同

C. 数组大小是固定的,所有数组元素的类型必须相同

D. 数组大小是可变的,可以有不同的类型的数组元素

2.以下对一维整型数组a的正确说明是( ). A. int a(10); B. int n=10, a[n]; C. int n, a[n];

D. #define SIZE 10 scanf(\ int a[SIZE]; int a[n];

3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( ). A. 整型常量 B. 整型表达式

C. 整型常量或整型表达式 D. 任何类型的表达式

4. 以下对一维数组m进行正确初始化的是( ). A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0};

D. int m[10]={10*2};

5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( ). A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1

1 / 4

6. 假定int类型变量占用两个字节,其有定义: int x[10]={0,2,4};,则数组x在内存中所占字节数是( ).

A. 3 B. 6 C. 10 D. 20

7. 若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a', d, g;

则数值为4的表达式是( ). A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c]

8. 若说明:int a[2][3]; 则对a数组元素的正确引用是( ).

A. a(1,2) B. a[1,3] C. a[1>2][!1] D. a[2][0]

9. 若有定义:int b[3][4]={0};则下述正确的是( ).

A. 此定义语句不正确 B. 没有元素可得初值0 C. 数组b中各元素均为0

D. 数组b中各元素可得初值但值不一定为0

10. 若有以下数组定义,其中不正确的是( ). A. int a[2][3];

B. int b[][3]={0,1,2,3,0,0}; C. int c[100][100]={0};

D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

11. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是( ).

A. t[2][4] B. t[5][0] C. t[0][0] D. t[0,0]

12. 在定义int m[ ][3]={1,2,3,4,5,6}; 后,m[1][0]的值是( ).

A. 4 B. 1 C. 2 D. 5

13. 在定义int n[5][6]后第10个元素是( ). A. n[2][5] B. n[2][4] C. n[1][3] D. n[1][4]

《C语言程序设计》计算机二级笔试习题

14. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为( ).

A. i*m+j B. j*m+i C. i*m+j-1 D. i*m+j+1

15. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是( ).

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}}; A. 0.0 B. 4.0 C. 5.0 D. 6.0

16. 下述对C语言字符数组的描述中错误的是( ).

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出 C. 可以在赋值语句中通过赋值运算符\对字符数组整体赋值

D. 不可以用关系运算符对字符数组中的字符串进行比较

17. 下述对C语言字符数组的描述中正确的是 ( ).

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间 B. 一维数组的元素在引用时下标大小没有限制 C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素

18. 不能把字符串:Hello!赋给数组str的语句是( ).

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '}; B. char str[10]; str=\

C. char str[10]; strcpy(str,\ D. char str[10]=\

19. 合法的数组定义是( ).

A. int a[]=\ B. int a[5]={0,1,2,3,4,5}; C. int s=\ D. char a[]={0,1,2,3,4,5};

20. 下列语句中,不正确的是( ). A. static char a[2]={1,2}; B. static char a[2]={ '1', '2'}; C. static char a[2]={ '1', '2', '3'}; D. static char a[2]={ '1'};

21. 若给出以下定义: char x[ ]=\

char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为( ). A. 数组x和数组y等价

B. 数组x和数组y的长度相同 C. 数组x的长度大于数组y的长度 D. 数组x的长度小于数组y的长度

22. 若有数组定义: char array [ ]=\则数组 array所占的空间为( ).

A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节

23. 若有定义和语句:

char s[10]; s=\则结果是(以下└┘代表空格)( ).

A. 输出abcd B. 输出a

C. 输出abcd└┘└┘└┘└┘ D. 编译不通过

二、程序题

24. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( ). #include main()

{ int a[10], i=0;

while(i<10) scanf(\ ┇ }

A. a+(i++) B. &a[i+1] C. a+i D. &a[i++] 25. 执行下面的程序段后,变量k中的值为( ). int k=3, s[2]; s[0]=k; k=s[1]*10;

A. 不定值 B. 33 C. 30 D. 10

26. 以下程序的输出结果是( ). main()

{ int i, a[10];

for( i=9; i>=0; i-- ) a[i]=10-i; printf(\ }

A. 258 B. 741 C. 852 D. 369

2 / 4

《C语言程序设计》计算机二级笔试习题

27. 以下程序运行后,输出结果是( ). main()

{ int n[5]={0,0,0}, i, k=2; for( i=0; i

A. 不确定的值 B. 2 C. 1 D. 0

28. 以下程序运行后,输出结果是( ). 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

29. 以下程序运行后,输出结果是( ). main()

{ int a[10], a1[ ]={1,3,6,9,10},

a2[ ]={2,4,7,8,15}, i=0, j=0, k; for( k=0; k<4; k++ )

if(a1[i]

for( k=0; k<4; k++ ) printf(\ }

A. 1234 B. 1324 C. 2413 D. 4321

30. 以下程序运行后,输出结果是( ). 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

31. 以下程序运行后输出结果是( ). main( )

{ int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2;

for (i=0;i

for (j=0;j

printf(\ }

A. 2 B. 1 C. 0 D. 3

32. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是 ( ). main()

{ int i, a[10], x, flag=0;

for(i=0;i<10;i++) scanf(\ scanf(\ for(i=0;i<10;i++)

if _______ {flag=i+1; break;} printf(\ flag); }

A. x!=a[i] B. !(x-a[i]) C. x-a[i] D. !x-a[i]

33. 运行下面的程序,如果从键盘上输入: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

3 / 4

《C语言程序设计》计算机二级笔试习题

34. 运行下面的程序,如果从键盘上输入:ABC时,输出的结果是( ). #include main()

{ char ss[10]=\ strcat(ss, \

gets(ss); printf(\ }

A. ABC B. ABC9

C. 123456ABC D. ABC456789

35. 判断两个字符串是否相等,正确的表达方式是( ).

A. while(s1==s2) B. while(s1=s2)

C. while(strcmp(s1,s2)==0) D. while(strcmp(s1,s2)=0)

36. 以下程序的输出结果是( ). main()

{ char str[12]={ 's','t','r','i','n','g'}; printf(\ }

A. 6 B. 7 C. 11 D. 12

37. 若有以下程序片段: char str[ ]=\ printf(\

上面程序片段的输出结果是 ( ).

A. 3 B. 4 C. 6 D. 12

38. 若有以下程序段,输出结果是( ). char s[ ]=\ printf (\

A. 9 B. 12 C. 13 D. 14

39. 设有static char str[ ]=\

则执行printf(\后的输出结果为 ( ).

A. 5 B. 7 C. 12 D. 14

40. 以下程序运行后,输出结果是( ). main()

{ char cf[3][5]={\ printf(\ }

A. \ B. \ C. \ D. \

4 / 4

本文来源:https://www.bwwdw.com/article/k167.html

Top