自学内容网 自学内容网

C语言(数组)单元练习

一、单项选择题

1.设有:char a[4][5]; 则数组a占用的内存字节数是______。

  A. 12    B. 24    C. 40    D. 20

2.若有以下定义语句:double a[5],*p=a;int i=2;对a数组元素错误的引用是______。

  A.*a     B.*&a[4]     C.*(p+i)     D.p[5]

3.若定义数组并初始化char a[20]= “Hello”;; printf(“%d”, strlen(a));语句的结果是哪一个______。

  A. 20    B. 6    C. 不确定    D. 5

4. 若主函数中有以下定义和语句:main(){double a[3][4];fun(a);}则正确的fun函数的首部是______。

  A.void fun(double*s)     B.fun(double*s[4])

  C.fun(double(*s)[3]))    D.void fun(double(*s )[4])

5. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c='e', 则数值为2的表达式是______。

  A.str['g'-c]    B.str[2]    C.str['d'-'c']    D.str['d'-c]

6. 下列数组定义正确的是______。

  A. int a[];           B. char a[100]={68,69,70};   

C. int n=100,a[n];    D. char n=4,a[n]={“abc”;};

7. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是______。  

A. s[1][3]    B. s[0][3]    C. s[0][2]    D. s[1][2]

8. 若要把“abcde”存放在一个一维字符数组中,下面错误的是______。

  A.char a[8]={“abcde”};    B.char a[7]={“abcde”};

  C.char a[6]={“abcde”};    D.char a[5]={“abcde”};

9. 若定义数组并初始化

int 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. 123456     D.1, 2, 3, 4, 5, 6

10. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立______。

  A. a[8] 的值为0    B. a[1] 的值为1    

C. a[3] 的值为4    D. a[9] 的值为0

11. 指出以下错误语句______。

  A. int n=10,a[n];        B. int n,a[10];   

C. int a[10]={1,2,3};    D. int a[10]={1,2,3,4,5,6,7,8,9,10};

12. 以下描述中正确的是______。

A. 数组名后面的常量表达式用一对圆括弧括起来     

B. 数组下标从1开始  

C. 数组下标的数据类型可以是整型或实型           

D. 数组名的规定与变量名相同

13. 以下选项中不能正确把cl定义成结构体变量的是______。

A.typedef struct

B.struct color cl{ int red;{ int red;int green; int green;int blue; int blue;} COLOR;} ;COLOR cl;

C.struct color

D.struct{ int red;{ int red;int green;int green;int blue;int blue;}cl;} cl;

14. 执行下面的程序段后,变量k中的值为______。

int k=3,s[2]; s[0]=k;k=s[1]*10;

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

15. 指出以下错误语句______。

A. char a[10]={'0','1','2','3','4','5','6','7','8','9'};   

B. char a[10]={'0','1 ','2','3'};

C. char a[2]= {“1”,” 2”};                   

D. char a[2]= {'a’,'b’};

16. 若有以下定义和语句,则输出结果是______。

char string[ ]=”;Sunny”; printf(“%.3s”,string);

  A. Su     B. Sun     C. Sunn     D. Sunny

17. 指出以下错误语句______。

  A. int a[2][3]= {{1,2,3},{4,5,6}}; B. int b[2][3]= {1,2,3,4,5,6};

  C. int a[][]={{1,2,3},{4,5,6}};   D. int a[][3]= {{1,2,3},{4,5,6}};

18. 以下程序的输出结果是______。

#include <stdio.h>

void 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(“%d”,s); }

  A. 18    B. 19    C. 20    D. 21

19. 阅读程序:

#include <stdio.h>

void main()

{  char a[10]; int i;

for(i=1;i<=5;i++) scanf(“%c”,&a[i]);

printf(“%c”,a[0]); }

设从键盘输入字符串:abcde,则程序的输出结果是______。

  A. a    B.空格    C.不确定    D.0

20. 若有以下说明:int w[3][4]o={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是______。

   A.*w[1]1    B.p,*(p1)    C.w[2][2]   D.p[1][1]

21. 下面程序的输出是______。

#include <stdio.h>

void main()

{  enum team {my,your=4,his,her=eis10};

printf(“%d%d%d%d、n”,my,your,his,her);}

   A.0 1 2 3    B.0 4 0 10    C.0 4 5 15    D.1 4 5 15

22. 若定义数组并初始化char a[10]={“hello”}; printf(“%s”,  a);语句的屏幕输出结果是______。

  A. hello    B. “hello”    C. 'hello'    D. “hello”

23. 已知有定义char b[10];下面对b数组元素表示不正确的是______。

  A.b[i=2]    B.b[!0]    C. b[i=0]    D. b[i=0,3X4]

24. 若定义数组int a[10] ,其数组元素的下标下限为______。

  A. 1    B. 0    C. 9    D. 10

25. 若定义数组并初始化char a[20]=”Hello”; 使用函数调用strcpy(a,”world”)后, printf(“%s”;, a)语句的结果是哪一个______。

  A. Hello    B. Hello word    C. world    D. 不确定

26. void fun(doubles[10], int *n){ …… }main(){ double arr[10];int n;……fun( arr, &;n); …… }则以下叙述中正确的是______。

  A.调用fun函数时系统将为形参s开辟10个double型存储单元

  B.调用fun函数时系统将为形参s开辟1个存储单元

  C.调用fun函数时形参s中的值将传回主函数

  D.fun函数中的形参s是一个一维数组名

27. 设有:char a[]={“I am a student.”}; 则a在内存中占用的字节数是______。

  A. 15    B. 12    C. 16    D. 32

28. 下列选项中正确的语句组是______。

A.char s[8]; s={"Beijing"}; B.char *s; s={"Beijing"};

C.char s[8]; s="Beijing";    D.char *s; s="Beijing";

29. 设有:int a[4][5]; 则数组a占用的内存字节数是______。

  A. 12    B. 24    C. 40    D. 20

30. 指出以下编译时报错的错误语句______。

A. char str[]="hello, world!";      B. char str[10]="hello, world!";

  C. char str[20]="hello, world!";    D. char str[20]; str[]="hello, world!";

31. 已知int类型变量在内存中占用2个字节,定义数组int b[8]={2,3,4};则数组b在内存中所占字节数为______。

  A. 3     B. 6     C. 8     D. 16

32. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个成立______。

  A. 若引用a[10],编译时报错    B. 若引用a[10],连接时报错

  C. 若引用a[10],运行时出错    D. 若引用a[10],系统不报错

33. C语言中实现字符串输入的库函数是______。

  A. gets(字符数组)    B. puts(字符数组)   

C. strlen (字符串)    D. strcmp(字符串1,字符串2)

二.判断题

1. 若字符串串长为n个字节,则其占用内存空间为n+1个字节。

2. 设已定义:float a[5][4];并赋值,要求每行输出4个数,则以下输出二维数组a的程序段是正确的:for(i=0;i<5;i++)

for(j=0;j<4;j++) printf(“%f”,a[i][j]); printf(“\n”);

3. 定义一维数组int a[10];则语句for(i=0;i<10;i++) scanf(“%d”,a[i]);是正确的。

4. 对二维数组元素赋初值:int a[3][4]={5,12,7,4,8,3,9,24,11,2,6,4,}, 则其中数组元素a[2][2]的值为3。

5. 下面字符串赋值的方式是正确的: char str1[10];str1=”string”。

6. C语言中数组所占存储单元的多少仅由数组的长度决定。

7. 可以把二维数组看作是一种特殊的一维数组:它的每一个元素又是一个一维数组。

8数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构类型。

9. 定义字符数组c[6],可以使用格式符%s实现字符串整体的输入和输出,则语句scanf(“%s”,&c);是正确的。

10数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度。

11. 给二维数组的全部元素赋初值,可以不指定第二维的长度,但第一维的长度不能省略。

12. 由于二维数组在内存中是按行存放的,因此二维数组的初始化也是按行进行赋值的。

13. 用字符串为字符数组赋初值:char c[ ]={“BOY”};则数组c的长度是3。

14. 在字符数组中,每一个元素只能存放一个字符。

15. 二维数组在内存中占用一串连续的存储单元。

三。填空

1.main()

{  int i,j,a[][3]={1,2,3,4,5,6,7,8,9};

   for(i=0;i<3;i++)

     for(j=i+1;j<3;j++) a[j][i]=0;

   for(i=0;i<3;i++)

   {  for(j=0;j<3;j++) printf("%d ",a[i][j]);

printf("\n");}}

输出:______

2. 以下程序运行后的输出结果是:

main()

{  int i,n[]={0,0,0,0,0};

   for(i=1;i<=4;i++)

     {  n[i]=n[i-1]*2+1;

        printf("%d ",n[i]);}}

输出:_______

参考答案:DDDDB BCDCB  ADBAC BCACD CADBC BCDCD DCA

TFFFF FTTFT FTFTT

1 2 3

1 3 7 15


原文地址:https://blog.csdn.net/qq_42769760/article/details/136686855

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!