0
点赞
收藏
分享

微信扫一扫

C语言(数组)单元练习二

杨小羊_ba17 2024-03-14 阅读 6
  • 单项选择题

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

举报

相关推荐

0 条评论