第四章 数组习题
一、选择题
1. 如果char型变量占两个字节的存储单元,则按照如下方式定义的数组x占用的字节数是【 】。
char x[50]={2,4,6,8,10};
A) 50 B) 100 C) 10 D) 5
2. 下面关于数组的定义正确的是【 】。
A)
int n=10;
float a[n]={1.0,2.1,3.2};
B)
#define N 10
int a[N]={1,2,3};
C)
int n;
scanf("%d", &n);scanf输入整型数组
int a[n];
D)
#define N 10;
int a[N]={1,2,3};
3. 若有说明 int a[5][4]; 则对其数组元素的正确引用是【 】。
A)a[3+1][2] B)a(2)(3) C)a[0,2] D)a[3][5]
4. 若定义了数组int k[][4]={{1},{1,2,3},{5,6}};则数组共有【 】元素。
A)6 B) 9 C) 10 D) 12
5. 要将20,30,40,50 存入数组b中, 下列正确的程序段是【 】。
A)
int i,b[4];
for(i=0; i<4; i++)
b[i]=(i+2)*10;
B)
int b[4];
b={20,30,40,50};
C)
int b[4];
b[1]=20,b[2]=30,b[3]=40,b[4]=50;
D)
int b[4];
b[4]={20,30,40,50};
6. 下列二维数组初始化语句中正确且与语句float a[]={0,1,2,0,4,0}等价的是【 】。
A) float a[6]={0,1,2,0,4}; B) float a[]={0,1,2,0,4};
C) float a[7]={0,1,2,0,4,0}; D) float a[5]={0,1,2,0,4};
7. printf("%d \n ", strlen ("ATS\n012\1\\" )) ; 程序段的输出结果是【 】。
A) 11 B) 10 C) 9 D) 8
8. 如果有char s[10]和int i,那么下面能够把输入的字符串存入数组s的选项是【 】。
A) scanf("%s",&s);
B) gets(s);
C) for(i=0;i<10;i++) scanf("%c",s[i]);
D) for(i=1;i<10;i++) getc(s[i]);
9. 若有说明char s1[]=”good”,s2[]=”idea”, 则下列输出语句中正确的是【 】。
A) printf("%s%s",&s1[0],&s2[0]);
B) printf("%c%c",s1,s2);
C) putc(s1);putc(s2);
D) puts(s1,s2);
10. 若有定义char str[7]; 要将键盘输入的字符串"a book" 赋给str,应使用【 】。
A) gets(str); B) scanf("%s",str); C) str="a pear"; D) getchar(str);
11. 若有说明 char s1[5],s2[7];,要将字符串存储到s1和s2中,下列语句中正确的是【 】。
A) scanf("%s%s",&s1, &s2); B) gets(s1, s2);
C) scanf("%s%s", s1, s2); D) s1=getchar( ); s2=getchar( );
12. 下面程序段运行后,输出结果是【 】。
main()
{
char s[20]="1234\0abcd";
printf("%d,%d\n",strlen(s),sizeof(s));
}
A) 4,20 B) 5,20 C) 9,10 D) 10,10
13. 下列一维数组说明中,不正确的是【 】。
A) float a[5+6];
B) int n=10, a[n];
C) #define M 10
int a[M+5] ;
D) float a[10], b[9] ;
14. 定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句输出结果是【 】。
for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A) 1 4 7 B) 3 5 7 C) 3 6 9 D) 1 5 9
15. 下面程序段的运行结果是【 】。
char c[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,c) ;
A) ’a’ ‘b’ B) ab C) ab c D) ab
16. 运行下面程序段的输出结果是【 】。
int a[7]={1,3,5} ;
printf("%d\n",a[3] );
A) 0 B)5 C) 3 D) 不确定数
17. 要将字符串str2连接到字符串str1后,应使用的函数是【 】。
A) strcpy(str1,str2);
B) strcat(str2,str1);
C) strcat(str1,str2);
D) strcmp(str2,str1);
18. 下列二维数组说明中,正确的是【 】。
A) int n=5; float a[n][5];
B) int a[][9];
C) #define L1 7
#define L2 8
float a[L1][L2];
D) int n, m; scanf ("%d%d",&n,&m); float a[m][n];
19. 若 int data[5][6];且数组的起始地址为100(十进制), 则元素data[3][2]的地址为【 】。
A) 120 B) 113 C) 140 D) 126
20. 若已有定义 char s[10]; int i;下列输入函数调用中错误的是【 】。
A) for (i=0; i<10; ++i) s[i]=getchar( ) ;
B) for (i=0; i<10; i++) scanf("%c",s[i] );
C) scanf("%s",s);
D) gets(s);
21. 设定义char a[20] ,要想使数组a得到字符串“how are you”应使用【 】
A) printf("%s",a); B) gets(a); C) a=gets(); D) printf("%c",a);
22. 若有说明char s1[]="good",s2[]="well";则下列输出语句中正确的是【 】。
A) printf("%s%s",&s1, &s2); B) printf("%s%s", s1[], s2[]);
C) puts(s1, s2); D) puts(s1); puts(s2);
23. 若有定义 char s[]="a boy" ;则数组的长度自动定义为【 】。
A) 6 B) 5 C) 8 D) 7
24. 在C语言中,引用数组元素时,其数组下标的数据类型允许是【 】。
A)整型常量 B)整型表达式
C)整型常量或整型表达式 D)任何类型的表达式
25. 若有说明int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是【 】。
A) 2 B)3 C)4 D) 无确定值
26. 下面程序段的运行结果是【 】。
char st[5]={‘a’,’b’,’\0’,’c’,’\0’};
puts(st);
A) ‘a’’b’ B) ab C) ab c D) ab
27. 下面程序段的运行结果是【 】。
int i;
char st[5]={‘a’,’b’,’\0’,’c’,’\0’};
for(i=0;i<5;i++)
printf(“%c”,st[i]);
A) ‘a’’b’ B) ab C) ab c D) ab
28. 运行下面程序段的输出结果是【 】。
int a[10]={1,3,5} ;
printf("%d\n",a[3] );
A) 0 B) 5 C) 3 D) 不确定数
29. 要将字符串str2复制到字符串str1,应使用的函数是【 】。
A) strcpy(str1,str2); B) strcat(str2,str1);
C)strcat(str1,str2); D) strcmp(str2,str1);
30. 若已定义
char s1[]="go to bed";
s2[]="go on";
假设已经执行预编译命令
#include<string.h>
则函数strcmp(s1,s2) 的值是【 】。
A) 0 B) -5 C) 5 D) 13
31. 若已经包含头文件<stdio.h>,且已有定义:
char s[]={‘a’,’\0’,’c’,’o’,’d’,’e’,’\0’};
int i;
若要输出 “a code”,应使用【 】。
A) puts(s); B) for(i=0;i<6;i++) printf("%s",s[i]);
C) printf("%s",s); D) for(i=0;i<6;i++) putchar(s[i]);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论