C语言数组练习及答案

第四部分数组

4.1 选择题

1. 以下关于数组的描述正确的是(c )。

A. 数组的大小是固定的,但可以有不同的类型的数组元素

B. 数组的大小是可变的,但所有数组元素的类型必须相同

C. 数组的大小是固定的,所有数组元素的类型必须相同

D. 数组的大小是可变的,可以有不同的类型的数组元素

2. 以下对一维整型数组a的正确说明是(d )。

A.int a(10);

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

C.int n;

D. #define SIZE 10

scanf("%d",&n); int a[SIZE];

int a[n];

3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。

A. 整型常量

B. 整型表达式

C. 整型常量或整型表达式

D. 任何类型的表达式

4. 以下对一维数组m进行正确初始化的是(c )。

A. int m[10]=(0,0,0,0) ;

B. int m[10]={ };

C. int m[ ]={0};

D. int m[10]={10*2};

5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。

A. &bb[0]+1

B. &bb[1]

C. &bb[0]++

D. bb+1

6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。

A. 3

B. 6

C. 10

D. 20

7. 若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c='a',d,g;

则数值为4的表达式是(d )

A. a[g-c]

B. a[4]

C. a['d'-'c']

D. a['d'-c]

8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。

#include

main()

{

int a[10],i=0;

while(i<10) scanf("%d",________ );

}

A. a+(i++)

B. &a[i+1]

C. a+i

D. &a[++i]

9. 执行下面的程序段后,变量k中的值为(a )。

int k=3, s[2];

s[0]=k; k=s[1]*10;

A. 不定值

B. 33

C. 30

D. 10

10. 以下程序的输出结果是(c )

main()

{

int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

}

A. 258

B. 741

C. 852

D. 369

11. 以下程序运行后,输出结果是(d )。

main()

{

int n[5]={0,0,0},i,k=2;

for(i=0;i

printf("%d\n",n[k]);

}

A. 不确定的值

B. 2

C. 1

D. 0

12. 以下程序运行后,输出结果是(b )。

main()

{

int y=18,i=0,j,a[8];

do

{ a[i]=y%2; i++;

y=y/2;

} while(y>=1);

for(j=i-1;j>=0;j--) printf("%d",a[j]);

printf("\n");

}

A. 10000

B. 10010

C. 00110

D. 10100

13. 以下程序运行后,输出结果是(a )。

main()

{

int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;

for(k=0;k<4;k++)

if(a1[i]

else a[k]=a2[j++];

for(k=0;k<4;k++) printf("%d",a[k]);

}

A. 1234

B. 1324

C. 2413

D. 4321

14. 以下程序运行后,输出结果是(b )。

main()

{

int i,k,a[10],p[3];

k=5;

for (i=0;i<10;i++) a[i]=i;

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

for (i=0;i<3;i++) k+=p[i]*2;

printf("%d\n",k);

}

A. 20

B. 21

C. 22

D. 23

15. 以下程序运行后输出结果是(d )。

main( )

{

int n[3],i,j,k;

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

n[i]=0;

k=2;

for (i=0;i

for (j=0;j

n[j]=n[i]+1;

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

A. 2

B. 1

C. 0

D. 3

16. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是 (b )。main()

{

int i,a[10],x,flag=0;

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

scanf("%d",&a[i]);

scanf("%d",&x);

for(i=0;i<10;i++) if _______ {flag=i+1; break;}

printf("%d\n", flag);

}

A. x!=a[i]

B. !(x-a[i])

C. x-a[i]

D. !x-a[i]

17. 若说明:int a[2][3]; 则对a数组元素的正确引用是(c ) 。

A. a(1,2)

B. a[1,3]

C. a[1>2][!1]

D. a[2][0]

18. 若有定义:int b[3][4]={0};则下述正确的是(b ) 。

A. 此定义语句不正确

B. 没有元素可得初值0

C. 数组b中各元素均为0

D. 数组b中各元素可得初值但值不一定为0

19. 若有以下数组定义,其中不正确的是(d ) 。

A. int a[2][3];

B int b[][3]={0,1,2,3};

C. int c[100][100]={0};

D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

20. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是(c )。

A. t[2][4]

B. t[5][0]

C. t[0][0]

D. t[0,0]

21. 在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是(a )。

A. 4

B. 1

C. 2

D. 5

22. 在定义int n[5][6]后第10个元素是(c )。

A. n[2][5]

B. n[2][4]

C. n[1][3]

D. n[1][4]

23. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为(d )。(假设c[0][0]位于数组的第一个位置)

A. i*m+j

B. j*m+i

C. i*m+j-1

D. i*m+j+1

24. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是(a )。

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A. 0.0

B. 4.0

C. 5.0

D. 6.0

25. 以下程序运行后,输出结果是 (a )。

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. 输出值不定

26. 以下程序运行后,输出结果是(b )。

main()

{

int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};

int i,s=0;

for(i=0;i<4;i++) s+=aa[i][1];

printf(“%d\n”,s);

}

A. 11

B. 19

C. 13

D. 20

27. 有以下程序

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\n",s);

}

该程序的输出结果是(a )。

A. 18

B. 19

C. 20

D. 21

28. 若定义如下变量和数组:

int i;

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

则下面语句的输出结果是(c )。

for(i=0;i<3;i++) printf("%d",x[i][2-i]);

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

29. 下述对C语言字符数组的描述中错误的是(c )。

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出

C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D. 不可以用关系运算符对字符数组中的字符串进行比较

30. 下述对C语言字符数组的描述中正确的是 (a )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间

B. 一维数组的元素在引用时其下标大小没有限制

C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素

31. 不能把字符串:Hello!赋给数组b的语句是(b )。

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '};

B. char str[10];str="Hello!";

C. char str[10];strcpy(str,"Hello!");

D. char str[10]="Hello!";

32. 合法的数组定义是(d )。

A. int a[]="string";

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

C. int s="string";

D. char a[]={0,1,2,3,4,5};

33. 下列语句中,不正确的是(c )。

A. static char a[2]={1,2};

B. static char a[2]={ '1', '2'};

C. static char a[2]={ '1', '2', '3'};

D. static char a[2]={ '1'};

34. 若给出以下定义:

char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为(c )。

A. 数组x和数组y等价

B. 数组x和数组y的长度相同

C. 数组x的长度大于数组y的长度

D. 数组x的长度小于数组y的长度

35. 若有数组定义: char array [ ]="China"; 则数组 array所占的空间为(c )。

A. 4个字节

B. 5个字节

C. 6个字节

D. 7个字节

36. 若有定义和语句:

char s[10];s="abcd";printf("%s\n",s);

则结果是(以下└┘代表空格)(d )。

A. 输出abcd

B. 输出a

C. 输出abcd└┘└┘└┘└┘

D. 编译不通过

37. 下面程序运行后,输出结果是(c )。

main()

{

char ch[7]={ "65ab21"};

int i,s=0;

for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2)

s=10*s+ch[i]- '0';

printf("%d\n",s);

}

A. 12ba56

B. 6521

C. 6

D. 62

38. 运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是(d )。

A. 123,456,789

B. 1,456,789

C. 1,23,456,789

D. 1,23,456

main()

{

char s[100]; int c, i;

scanf("%c",&c); scanf("%d",&i); scanf("%s",s);

printf("%c,%d,%s\n",c,i,s);

}

39. 运行下面的程序,如果从键盘上输入:

ab<回车>

c <回车>

def<回车>

则输出结果为(c )。

A. a

B. a

C. ab

D. abcdef

b b c

c c d

d d

e

f

#include

#define N=6

main()

{

char c[N];

int i=0;

for( ;i

for( i=0;i

printf("\n");

}

40. 运行下面的程序,如果从键盘上输入:ABC时,输出的结果是(a )。

#include

main()

{

char ss[10]="12345";

strcat(ss, "6789" );

gets(ss);printf("%s\n",ss);

}

A. ABC

B. ABC9

C. 123456ABC

D. ABC456789

41. 判断两个字符串是否相等,正确的表达方式是(c )。

A.while(s1==s2)

B. while(s1=s2)

C. while(strcmp(s1,s2)==0)

D. while(strcmp(s1,s2)=0)

42. 以下程序的输出结果是(a )。

main()

{

char str[12]={ 's','t','r','i','n','g'};

printf("%d\n",strlen(str));

}

A. 6

B. 7

C. 11

D. 12

43. 若有以下程序片段:

char str[ ]="ab\n\012\\\"";

printf("%d",strlen(str));

上面程序片段的输出结果是 (c )。

A. 3

B. 4

C. 6

D. 12

44. 若有以下程序段,输出结果是(a )。

char s[ ]="\\141\141abc\t";

printf ("%d\n",strlen(s));

A. 9

B. 12

C. 13

D. 14

45. 设有static char str[ ]="Beijing";

则执行printf("%d\n", strlen(strcpy(str,"China")));

后的输出结果为 (a )。

A. 5

B. 7

C. 12

D. 14

46. 以下程序运行后,输出结果是(b )。

main()

{

char ch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A. "AAAA"

B. "BBB"

C. "BBBCC"

D. "CC"

47. 以下程序运行后,输出的结果是(d )。

#include

#include

main()

{

char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for (k=1;k<3;k++)

printf("%s\n",&w[k][k]);

}

A. ABCD

B. ABCD

FGH EFG

KL IJ

M

C. EFG

D. FGH

JK KL

O

48. 以下程序运行后,输出结果是(a )。

main()

{

char arr[2][4];

strcpy(arr,"you"); strcpy(arr[1],"me");

arr[0][3]='&';

printf("%s \n",arr);

}

A. you&me

B. you

C. me

D. err

C语言数组练习及答案

第四部分数组 4.1 选择题 1. 以下关于数组的描述正确的是(c )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 2. 以下对一维整型数组a的正确说明是(d )。 A.int a(10); B. int n=10,a[n]; C.int n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 4. 以下对一维数组m进行正确初始化的是(c )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在存中所占字节数是(d )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是(d ) A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); ┇

C语言数组练习及答案

第四部分数组 4. 1 选择题 1. 以下关于数组的描述正确的是(c ) 。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 2. 以下对一维整型数组a的正确说明是(d )。 A. int a(10); B. int n=10,a[n]; C.int n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(c)。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 4. 以下对一维数组m进行正确初始化的是(c )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8] ;。则以下表达式中不能代表数组元bb[1] 的地址的是(c ) 。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4}; ,则数组x 在内存中所占字节数是(d ) 。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是(d ) A. a[g-c] B. a[4] C. a[ 'd'-'c'] D. a[ 'd'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a ) 。 #include main() { int a[10],i=0; while(i<10) scanf("%d", ); }

C语言(数组)习题与答案

一、单选题 1、下列描述中不正确的是() A.字符串的结束符是'\0'。 B.可以对字符型数组进行整体输入、输出。 C.字符型数组中能存放字符串。 D.字符串函数声明在ctype.h中。 正确答案:D 2、下面是有关C语言字符数组的描述,其中错误的是() A.不可以用赋值语句给字符数组名赋字符串 B.可以用输入语句把字符串整体输入给字符数组 C.字符数组只能存放字符串 D.字符数组中的内容不一定是字符串 正确答案:C 3、下面是对数组s的初始化操作,其中不正确的是() A.char s[5]= " "; B.char s[5]={'a'}; C.char s[5]={"a"}; D.char s[5]= "abcdef"; 正确答案:D 4、下面叙述正确的是() A.字符串"123 "与"123"相等。 B.字符串"123"小于字符串"2"。 C.两个字符串所包含的字符个数不相同时,才能进行大小比较。 D.字符个数多的字符串比字符个数少的字符串大。 正确答案:B

5、下面程序段的输出结果是() char a[7]=“123456”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]); A.\0 B. C.5 D.6 正确答案:D 6、以下对二维数组a的正确说明是__。 A.double a[1][4]; B.float a(3)(4); C. floatf a(3,4); D. int a[3][]; 正确答案:A 7、以下能对二维数组a进行正确初始化的语句是__。 A. int a[][3]={{1,2,3},{4,5,6}}; B.int a[2][]={{1,0,1},{5,2,3}}; C.int a [2][4]={{1,2,3},{4,5},{6}}; D. int a[][3={{1,0,1},{},{1,1}}; 正确答案:A 8、若有说明: int a[3][4]={0};则下面正确的叙述是__。 A.数组a中各元素都可得到初值,但其值不一定为0。 B.只有元素a[0][0]可得到初值0。 C.数组a中每个元素均可得到初值0 。

C语言练习——数组(附答案)

练习4—数组(附答案) 一、基础知识 数组的定义、初始化、引用和遍历 1、定义一个整型数组a,长度为10,全部赋值为0~9,以“%d\t”格式输出所有元素。 2、定义一个整型数组b,长度为6,第1 个元素为2,第3 个元素4,第 4 个元素为5,其它赋值为0,以“%d\t”格式输出所有元素。 3、定义一个浮点型数组c,赋值为{1.7, 2.13, 4.2, 5.16, 7.3333, 3.5, 6.768, 11.11},以“%.4f\t”格式输出c 中所有元素。 4、定义一个整数数组d,长度为6,把上述数组b 中的元素复制到 d 中,使得数组b 和数组d 中存放相同元素,以“%d\t”格式先打印a 中的元素,接着打印b中的元素。 5、定义一个整型数组e,长度为5,依次从控制台输入数组中的各元素1,2,3,4,5,并在控制台以“%6d\t”格式输出打印e 中所有元素。 二、填空式编程 1、输入5 个整数, 将这5 个数按逆时针顺序转动一次后再输出,如输入1 2 3 4 5,逆时针转动一次后,输出2 3 4 5 1。要求用数组实现。完善test4_1.c。 2、如果要求程序实现数组元素的顺时针转动,那么应该如何修改test4_2.c

3、有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。完善test4_3.c 4、给定平面上10 个点,求其中离原点最近的点。源程序用一维数组x 存放这10 个点的x 坐标,用一维数组y 存放相应的y 坐标,即第i 个点的坐标为(x[i], y[i])。完善test4_4.c 1. #include int main() { int a[10]={0,1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<10;i++) printf("%d\t",a[i]); return 0; } 2. #include int main() { int b[6]={2,0,4,0,5,0};

C语言习题六(数组部分)习题及答案

习题六 一.选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 c 。A)整型常量B)整型表达式 C)整型常量或整型表达式C)任何类型的表达式 2.以下对一维整型数组a的正确说明是D A)int a(10) ; B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n);int a[SIZE]; int a[n]; 3.若有定义:int a[10],则对数组a元素的正确引用是 D 。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 4.以下不能对一维数组a进行正确初始化的语句是B 。 A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[ ] = {0} ; D)int a[10]={10*1} ; 5.若有定义:int a[3][4],则对数组a元素的正确引用是。A A)a[2][3] B)a[1,3] C)a(5) D)a[10-10] 6.以下能对二维数组a进行正确初始化的语句是B。 A)int a[2][]={{1,0,1},{5,2,3}} ; B)int a[][3]={{1,2,3},{4,5,6}} ; C)int a[2][4]={{1,2,3},{4,5},{6}} ; D)int a[][3]={{1,0,1},{},{1,1}} ; 7.以下不能对二维数组a进行正确初始化的语句是。C A)int a[2][3]={0} ; B)int a[][3]={{1,2},{0}} ; C)int a[2][3]={{1,2},{3,4},{5,6}} ; D)int a[][3]={1,2,3,4,5,6} ; 8.若有说明:int a[3][4]={0};则下面正确的叙述是D。 A)只有元素a[0][0]可得到初值0

C语言数组练习及答案

第四部分数组 4.1选择题 1.以下关于数组的描述正确的是(c} A.数组的大小是固定的,但可以有不同的类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同的类型的数组元素 2.以下对一维整型数组a的正确说明是(d)。 A.inta(10); C.intn; scanf("%d",&n); inta[n]; B.intn=10,a[n]; D.#defineSIZE10inta[SIZE]; 3.在C语言中,引用数组元素时,其数组下标的数据类型允许是(c)。 A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 页脚内容1

4.以下对一维数组m进行正确初始化的是(c)。 A.intm[10]=(0,0,0,0); B.intm[10]={}; C.intm[]={0}; D.intm[10]={10*2}; 5.若有定义:intbb[8];。则以下表达式中不能代表数组元bb[1的地址的是(c> A.&bb[0]+1 B.&bb[1] C.&bb[0]++ D.bb+1 6.假定int类型变量占用两个字节,具有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是(d) A.3 B.6 C.10 D.20 7.若有以下说明: inta[12]={1,2,3,4,5,6,7,8,9,10,11,12}; charc='a',d,g; 则数值为4的表达式是(d) A.a[g-c] B.a[4] C.a['d'-'c'] D.a['d'-c] 8.以下程序段给数组所有的元素输入数据,请选择正确答案填入(a)。 #includemain() { inta[10],i=0; while(i<10)scanf("%d",); 页脚内容2 ) A.a+(i++) B.&a[i+1] C.a+i D.&a[++i] 9.执行下面的程序段后,变量k中的值为(a)。 intk=3,s[2];

c语言数组练习题及答案

c语言数组练习题及答案 /* 4.16 5*5矩阵中每行的绝对值最大值,与同行对角线交换*/ #include "stdio.h" #include "math.h" void main() { int a[5][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2}, {1,3,-2,4,6},{2,2,0,7,4}} ; int i,k,max,sub,temp; /* i 循环变量,控制行,k 循环变量,控制列,max 当前最大绝对值,sub 当前最大绝对值元素的下标 temp 临时用于交换的变量*/ printf("交换之前,输出\"); /*交换之前,输出*/ for(i=0;i<=4;i++) { for(k=0;k<=4;k++) printf("%4d",a[i][k]); printf("\"); } /*交换*/ for(i=0;i<=4;i++) { /*假设第一个元素最大*/ max=fabs(a[i][0]); sub=0; /*寻找绝对值最大的元素记下下标*/ for(k=1;k<=4;k++) { if(fabs(a[i][k])>max) {

max=fabs(a[i][k]); sub=k; } } /*交换*/ temp=a[i][i]; a[i][i]=a[i][sub]; a[i][sub]=temp; } /*交换之后,输出*/ printf("交换之后,输出\"); for(i=0;i<=4;i++) { for(k=0;k<=4;k++) printf("%4d",a[i][k]); printf("\"); } } /* 4.17 在一个一维数组中存放任意4个数,如:5,1,8,6,生成如下矩阵 5 5 5 5 5 5 5 5 1 1 1 1 1 5 5 1 8 8 8 1 5 5 1 8 6 8 1 5 5 1 8 8 8 1 5 5 1 1 1 1 1 5 5 5 5 5 5 5 5 */ #include "stdio.h" #include "conio.h" void main() { int FourNumbers[4], array[7][7], i , row, column;

c语言数组试题及答案

c语言数组试题及答案 1. 请编写一个程序,要求用户输入10个整数,然后将其存储在一个数组中,并输出这个数组的内容。 答案: ```c #include int main() { int numbers[10]; int i; printf("请输入10个整数:\n"); for (i = 0; i < 10; i++) { scanf("%d", &numbers[i]); } printf("数组内容为:\n"); for (i = 0; i < 10; i++) { printf("%d ", numbers[i]); } return 0; }

``` 2. 请编写一个程序,要求用户输入一个整数n(n>0),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中所有元素的和。 答案: ```c #include int main() { int n; int numbers[100]; int sum = 0; int i; printf("请输入整数n:\n"); scanf("%d", &n); printf("请输入%d个整数:\n", n); for (i = 0; i < n; i++) { scanf("%d", &numbers[i]); sum += numbers[i]; } printf("数组元素之和为:%d\n", sum);

return 0; } ``` 3. 请编写一个程序,要求用户输入一个整数n(n>1),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中最大和最小的元素。 答案: ```c #include int main() { int n; int numbers[100]; int max, min; int i; printf("请输入整数n:\n"); scanf("%d", &n); printf("请输入%d个整数:\n", n); for (i = 0; i < n; i++) { scanf("%d", &numbers[i]);

C程序设计(数组)习题与答案

C程序设计(数组)习题与答案C程序设计(数组)习题与答案 数组是C语言中常用的数据结构之一,它可以存储多个相同类型的元素。掌握数组的使用对于C程序设计至关重要,下面将为大家介绍一些关于C数组的习题及其答案。 1. 习题一:计算数组元素的和 题目描述:编写一个程序,计算给定数组中所有元素的和,并输出结果。 解题思路: ```c #include int main() { int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的整型数组 int sum = 0; // 用于存储和的变量 // 遍历数组,累加每个元素的值 for (int i = 0; i < 5; i++) { sum += arr[i]; } printf("数组元素的和为:%d\n", sum);

return 0; } ``` 2. 习题二:查找数组中的最大值 题目描述:编写一个程序,找出给定整型数组中的最大值,并输出结果。 解题思路: ```c #include int main() { int arr[7] = {4, 7, 2, 9, 1, 5, 8}; // 定义一个包含7个元素的整型数组 int max = arr[0]; // 假设第一个元素为最大值 // 遍历数组,比较每个元素的值与当前最大值的关系 for (int i = 1; i < 7; i++) { if (arr[i] > max) { max = arr[i]; } }

printf("数组中的最大值为:%d\n", max); return 0; } ``` 3. 习题三:查找数组中的特定元素 题目描述:编写一个程序,在给定整型数组中查找是否存在指定元素,并输出结果。 解题思路: ```c #include int main() { int arr[6] = {3, 6, 9, 2, 5, 8}; // 定义一个包含6个元素的整型数组 int target = 2; // 指定要查找的元素 int found = 0; // 用于标记是否找到目标元素的变量 // 遍历数组,比较每个元素的值与目标值的关系 for (int i = 0; i < 6; i++) { if (arr[i] == target) { found = 1;

c语言数组练习题及答案

c语言数组练习题及答案 第一题:在数组a中,存放有n个学生的成绩.试编一函数:将低于平均分的学生人数m由函数值返回,将低于平均分的分数由数组b带回. int fun(int a[],int n,int b[]) { int i,m=0,aver=0; for(i=0;i

data=m+1; n=0; while(n

C语言习题六(数组部分)习题及答案

C语言习题六(数组部分)习题及答案 习题六 一.选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 c 。A)整型常量B)整型表达式 C)整型常量或整型表达式C)任何类型的表达式 2.以下对一维整型数组a的正确说明是D A)int a(10) ; B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n);int a[SIZE]; int a[n]; 3.若有定义:int a[10],则对数组a元素的正确引用是 D 。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 4.以下不能对一维数组a进行正确初始化的语句是B 。 A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[ ] = {0} ; D)int a[10]={10*1} ; 5.若有定义:int a[3][4],则对数组a元素的正确引用是。A A)a[2][3] B)a[1,3] C)a(5) D)a[10-10] 6.以下能对二维数组a进行正确初始化的语句是B。 A)int a[2][]={{1,0,1},{5,2,3}} ; B)int a[][3]={{1,2,3},{4,5,6}} ; C)int a[2][4]={{1,2,3},{4,5},{6}} ; D)int a[][3]={{1,0,1},{},{1,1}} ; 7.以下不能对二维数组a进行正确初始化的语句是。C A)int a[2][3]={0} ; B)int a[][3]={{1,2},{0}} ; C)int a[2][3]={{1,2},{3,4},{5,6}} ; D)int a[][3]={1,2,3,4,5,6} ; 8.若有说明:int a[3][4]={0};则下面正确的叙述是D。

2023年C语言考试数组知识习题库及答案(精品)

2023年C语言考试数组知识习题库及答案 (精品) 1. 单项选择题 (1) int a[4]={5,3,8,9};其中a[3]的值为( )。D A. 5 B. 3 C. 8 D. 9 (2) 以下4 个字符串函数中,( )所在的头文件与其他3 个不同。A A. gets B. strcpy C. strlen D. strcmp (3) 以下4 个数组定义中,( )是错误的。D A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n]; (4) 对字符数组进行初始化,( )形式是错误。B A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123"; (5) 在数组中,数组名表示( )。A A. 数组第1 个元素的首地址 B.数组第2 个元素的首地址 C. 数组所有元素的首地址 D.数组最后1 个元素的首地址 (6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。B int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; A. 1,12 B. 0,11 C. 1,11 D. 0,12 (7) 若有以下说明,则数值为4 的表达式是( )。D int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;

A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] (8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。A A. 6 B. 7 C. 11 D. 12 (9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( )。D A. 6 B. 7 C. 11 D. 12 (10) 合法的数组定义是( )。A A. char a[ ]= "string " ; B. int a[5] ={0,1,2,3,4,5}; C. char a= "string " ; D. char a[ ]={0,1,2,3,4,5} (11) 合法的数组定义是( )。D A. int a[3][ ]={0,1,2,3,4,5}; B. int a[ ][3] ={0,1,2,3,4}; C. int a[2][3]={0,1,2,3,4,5,6}; D. int a[2][3]={0,1,2,3,4,5,}; (12) 下列语句中,正确的是( )。D A. char a[3][ ]={'abc', '1'}; B. char a[ ][3] ={'abc', '1'}; C. char a[3][ ]={'a', "1"}; D. char a[ ][3] ={ "a", "1"}; (13) 下列定义的字符数组中,输出printf("%s\n", str[2]) ;的输出是( )。C static str[3][20] ={ "basic", "foxpro", "windows"}; A. basic B. foxpro C. windows D. 输出语句出错 (14) 下列各语句定义了数组,其中哪一个是不正确的( )。C A. char a[3][10]={"China","American","Asia"}; B. int x[2][2]={1,2,3,4};

C语言数组练习及答案

C语言数组练习及答案 第四部分数组 4.1 选择题 1. 以下关于数组的描述正确的是(c )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 2. 以下对一维整型数组a的正确说明是(d )。 a(10); B. int n=10,a[n]; n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是 (c )。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 4. 以下对一维数组m进行正确初始化的是(c )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++

D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是(d ) A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入 (a )。 #include<> main() { int a[10],i=0; while(i<10) scanf("%d",________ ); ┇ } A. a+(i++) B. &a[i+1] C. a+i D. &a[++i] 9. 执行下面的程序段后,变量k中的值为(a )。 int k=3, s[2];

C语言练习3(数组)=参考答案

C语言(数组) 一、选择题 1. 设有程序: main() { int i,a[11]; printf("给数组赋值:\n"); for (i=0;i<=10;i++) scanf("%d",( )); ... ... printf("输出数组:\n"); for(i=0;i<=10;i++) printf("%d,",( )); } 则在程序中的两个园括号中分别应填入:C A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i] D) a[i]和a[i] 2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ). A) 15 B) 16 C) 30 D) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 以上程序的输出结果是( D ). A) 720 B) 6 C)24 D) 120 5. 以下定义语句中,错误的是( B ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= "string"; D) char a[5 ]={'0','1','2','3','4'}; 6. 以下描述中正确的是( D ). A) 数组名后面的常量表达式用一对圆括弧括起来 B) 数组下标从1开始 C) 数组下标的数据类型可以是整型或实型 D) 数组名的规定与变量名相同 7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ). A) scanf("%c",a[0]); B) scanf("%s",&a); C) printf("%c",a[3]); D) printf("%s",a); 8.若定义数组int a[10] ,其最后一个数组元素为( C ). A) a[0] B) a[1] C) a[9] D) a[10] 9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )? A) a[8] 的值为0 B) a[1] 的值为1 C) a[3] 的值为4 D) a[9] 的值为0 10. 指出以下错误语句( A ).

C语言数组选择题及答案

C语言数组选择题及答案 1、以下定义语句中,错误的是________。 A) int a[]={1,2}; B) char a[]={"test"}; C) char s[10]={"test"}; D) int n=5,a[n]; D 2、以下对一维数组a进行正确初始化的是__________。 A) int a[10]=(0,0,0,0,0); B) int a[10]={ }; C) int a[ ]={0}; D) int a[10]={ 10*2}; C 3、以下对二维数组a进行正确初始化的是__________。 A) int a[2][3]={ {1,2},{3,4},{5,6} }; B) int a[ ][3]={1,2,3,4,5,6 }; C) int a[2][ ]={1,2,3,4,5,6}; D) int a[2][ ]={ { 1,2},{3,4}}; B 4、在定义int a[5][4]; 之后,对a的引用正确的是________。 A) a[2][4] B) a[1,3] C) a[4][3] D) a[5][0] C 5、以下给字符数组str定义和赋值正确的是________。 A) char str[10]; str={"China!"}; B) char str[ ]={"China!"};

C) char str[10]; strcpy( str,"abcdefghijkl"); D) char str[10]={"abcdefghijkl"}; B 6、以下一维数组a的正确定义是________ 。 A) int a(10); B) int n=10,a[n]; C) int n; D) #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; D 7、在执行语句:int a[ ][3]={1,2,3,4,5,6}; 后, a[1][0]的值是________。 A) 4 B) 1 C) 2 D) 5 A 8、当接受用户输入的含有空格的字符串时,应使用________函数。 A) gets( ) B) getchar( ) C) scanf( ) D) printf( ) A 9、在定义int a[5][6]; 后,数组a中的第10个元素是________。(设a[0][0]为第一个元素)A) a[2][5] B) a[2][4]

相关文档
最新文档