第四章 数组习题集答案

2019-04-21 12:09

第四章 数组习题

一、选择题

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(\ 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(\程序段的输出结果是【 】。

A) 11 B) 10 C) 9 D) 8

8. 如果有char s[10]和int i,那么下面能够把输入的字符串存入数组s的选项是【 】。 A) scanf(\ B) gets(s);

C) for(i=0;i<10;i++) scanf(\ D) for(i=1;i<10;i++) getc(s[i]);

9. 若有说明char s1[]=”good”,s2[]=”idea”, 则下列输出语句中正确的是【 】。 A) printf(\ B) printf(\ C) putc(s1);putc(s2); D) puts(s1,s2);

10. 若有定义char str[7]; 要将键盘输入的字符串\赋给str,应使用【 】。

A) gets(str); B) scanf(\C) str=\D) getchar(str); 11. 若有说明 char s1[5],s2[7];,要将字符串存储到s1和s2中,下列语句中正确的是【 】。 A) scanf(\B) gets(s1, s2); C) scanf(\ D) s1=getchar( ); s2=getchar( ); 12. 下面程序段运行后,输出结果是【 】。

main() {

char s[20]=\

printf(\}

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(\

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(\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 (\

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) scanf(\D) gets(s);

21. 设定义char a[20] ,要想使数组a得到字符串“how are you”应使用【 】

A) printf(\; B) gets(a); C) a=gets(); D) printf(\; 22. 若有说明char s1[]=\则下列输出语句中正确的是【 】。

A) printf(\); B) printf(\; C) puts(s1, s2); D) puts(s1); puts(s2);

23. 若有定义 char s[]=\;则数组的长度自动定义为【 】。

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(\

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[]=\s2[]=\

假设已经执行预编译命令

#include

则函数strcmp(s1,s2) 的值是【 】。

A) 0 B) -5 C) 5 D) 13

31. 若已经包含头文件,且已有定义:

char s[]={?a?,?\\0?,?c?,?o?,?d?,?e?,?\\0?}; int i;

若要输出 “a code”,应使用【 】。 A) puts(s); B) for(i=0;i<6;i++) printf(\C) printf(\ D) for(i=0;i<6;i++) putchar(s[i]); 32. 有下列程序段,运行时会【 】。

char a[3],b[]=\a=b;

printf(“%s”,a);

A) 运行后将输出tianjin B) 运行后将输出ti C) 运行后将输出tian D) 编译出错

若已有定义char s[6]=\下列错误的是【 】。 A) for (i=0; i<6; i++) putchar(s[i]); B) for (i=0; i<6; i++) put(s[i]) ; C) printf(\ D) puts(s);

若有说明 double b[7][6]; 对元素的非法引用是【 】。

A) b[3][5] B)b[7][5] C) b[2*3][4] D) b[0][9-6] 若已包含标题文件,并已有定义 char s1[5],s2[]=\;int i;现要将字符串”abcd”赋给s1,下述语句中错误的是【 】。 A) strcpy(s1,\B) s1=”abcd”;

C) for(i=0;i<5;i++) s1[i]=s2[i];

D) s[0]=?a?,s[1]=?b?,s[2]=?c?,s[3]=?d?;s[4]=?\\0?; 运行下面程序段的输出结果是【 】。

33.

34. 35.

36.

char s1[6]={'d','o','\\0','i','t ','\\0'}; printf (\

A) 5 B) 2 C) 6 D) 7 37. 定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句输出结果是【 】

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

A) 1 4 7 B) 3 5 7 C) 3 6 9 D) 1 5 9

38. 若有一维数组初始化语句int b[5]={1,2,3,4,5};且数组的起始地址为8050H(H表示十六

进制),则8058H是数组元素【 】的起始地址(假设一个int型变量在内存占2个字节存储空间)。

A) b[1] B) b[4] C) b[0] D) b[2]

39. 设 char str[4][5]; 所说明的数组在存储区的起始地址为50(十进制), 则数组元素

str[3][3]在存储区中的地址为【 】。 A) 62 B) 86 C) 63 D) 68 40. 下面程序段运行后,输出结果是【 】。 int i, j, x=0; int a[6]={1,2,3};

for (i=0,j=1; i<3 && j<4; ++i, j++ ) x+=a[i]+a[j]; printf(\

A) 8 B) 11 C) 10 D) 不确定值 41. 下列程序运行后,输出值为【 】。

main() {

int a[6]={1,3,5,7,9},b[]={2,4,6,7,3},c,d; c=a[1]*b[2]; d=a[5]/b[4];

printf(\) ; } A) 4,3 B) 4,0 C) 18,0 D) 18,不确定值 42. 下面的程序用来求方阵的主对角线元素之和,请将程序填完整。

#include main() {

int i=0,x=0;

int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0}; while (i<4) {

x+= 【 】; i++; }

printf(\ }

A) a[3-i][3-j] B) a[i][3-i] C) a[i][i] D) a[3-i][4] 43. 下面的程序用来求方阵的次对角线元素之和,请将程序填完整。

#include main( ) {

int i=0,x=0;

int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0}; while (i<4) {

x+=【 】;


第四章 数组习题集答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017安徽省考公务员面试热点:强制女学生剪短发

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: