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)!