C语言练习3数组参考答案Word格式.docx

上传人:b****5 文档编号:21473039 上传时间:2023-01-30 格式:DOCX 页数:21 大小:34.04KB
下载 相关 举报
C语言练习3数组参考答案Word格式.docx_第1页
第1页 / 共21页
C语言练习3数组参考答案Word格式.docx_第2页
第2页 / 共21页
C语言练习3数组参考答案Word格式.docx_第3页
第3页 / 共21页
C语言练习3数组参考答案Word格式.docx_第4页
第4页 / 共21页
C语言练习3数组参考答案Word格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言练习3数组参考答案Word格式.docx

《C语言练习3数组参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《C语言练习3数组参考答案Word格式.docx(21页珍藏版)》请在冰豆网上搜索。

C语言练习3数组参考答案Word格式.docx

=n;

i++)r=r*b[i];

returnr;

{intx,a[]={2,3,4,5,6,7,8,9};

x=f(a,3);

printf("

x);

A)720B)6C)24D)120

5.以下定义语句中,错误的是(B).

A)inta[]={6,7,8};

B)intn=5,a[n];

C)chara[]="

string"

;

D)chara[5]={'

0'

'

1'

2'

3'

4'

};

6.以下描述中正确的是(D).

A)数组名后面的常量表达式用一对圆括弧括起来

B)数组下标从1开始 

C)数组下标的数据类型可以是整型或实型

D)数组名的规定与变量名相同

7.若定义数组并初始化chara[10]={'

1'

5'

6'

7'

8'

9'

指出以下错误语句(AB).

A)scanf("

%c"

a[0]);

B)scanf("

%s"

&

a);

C)printf("

a[3]);

D)printf("

a);

8.若定义数组inta[10],其最后一个数组元素为(C).

A)a[0]

B)a[1]

C)a[9]

D)a[10]

9.若定义数组并初始化inta[10]={1,2,3,4},以下语句哪一个不成立(B)?

A)a[8]的值为0

B)a[1]的值为1

C)a[3]的值为4

D)a[9]的值为0

10.指出以下错误语句(A).

A)intn=10,a[n];

B)intn,a[10];

C)inta[10]={1,2,3};

D)inta[10]={1,2,3,4,5,6,7,8,9,10};

11.请读程序:

{intn[2],i,j,k;

2;

i++)n[i]=0;

k=2;

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

n[k]);

上面程序的输出结果是(A).

A)不确定的值B)3C)2D)1

12.若有以下的定义和语句:

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

charc='

e'

则数值为2的表达式是(C).

A)str['

g'

-c]B)str[2]C)str['

d'

-'

c'

]D)str['

-c]

13.设有数组定义:

inta[5];

则下列给数组元素赋值错误的是(B).

A)a[3]=93;

C)a[3]=getchar();

D)a[3]='

a'

+3;

14.以下数组定义中错误的是(D).

A)#defineN30

inta[N+30];

B)#defineN30

inta[N];

C)inta[30];

D)inta[N];

15.在定义一个一维数组时,不能用来表示数组长度的是(D).

A)常量B)符号常量C)常量表达式D)已被赋值的变量

16.若float型变量占用4个字节,有定义floata[20]={1.1,2.1,3.1};

则数组a在内存中所占的字节数是(D).

A)12B)20C)40D)80

17.设已定义:

intx[2][4]={1,2,3,4,5,6,7,8};

则元素x[1][1]的正确初值是(A).

A)6B)5C)7D)1

18.设有定义:

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

则a[1][2]的初值为(C).

A)2B)4C)6D)8

19.设有:

inta[4][5];

则数组a占用的内存字节数是(C).

A)12B)24C)40D)20

20.以下数组定义中,不正确的是(B).

A)intb[3][4];

 

B)intc[3][]={{1,2},{1,2,3},{4,5,6,7}};

C)intb[200][100]={0};

D)intc[][3]={{1,2,3},{4,5,6}};

21.定义数组:

intx[2][3];

则数组x的维数是

(2).

A)1B)2C)3D)6

22.若定义数组并初始化intb[2][3]={1,2,3,4,5,6},以下语句哪一个成立(C)?

A)表达式b[1][2]的值为1

B)表达式b[1][2]的值为4

C)表达式b[1][2]的值为6

D)表达式b[1][2]的值为2

23.若定义数组并初始化inta[2][3]={{1,2,3},{4,5,6}};

for(i=0;

i++)

for(j=0;

3;

j++)

a[i][j]);

语句的结果是哪一个(C)?

A)1,2,3,4,5,6

B)123456

C)123456

24.若定义数组并初始化inta[2][3]={{1,2,3},{4,5,6}};

以下语句哪一个不成立(B)?

A)a数组中有6个元素

B)a[2][3]是a数组的最后一个元素的引用

C)a数组中每个元素都为整数

D)a数组是整型数组

25.定义如下变量和数组:

inti;

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

则下面语句的输出结果是(C).

i++)printf("

x[i][2-i]);

A)159B)147C)357D)369

26.如有以下定义:

doubles[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};

则数值为2的元素是(C).

A)s[1][3]B)s[0][3]C)s[0][2]D)s[1][2]

27.以下程序的输出结果是(A).

{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=1;

=i;

s+=a[i][j];

s);

A)18B)19C)20D)21

28.若已有charb[10][50];

则该二维字符数组在内存所占字节数为(D).

A)10B)50C)60D)500

29.设有:

chara[10];

下列语句那个是正确的(D)?

a[0])

a)

30.阅读程序:

{chara[10];

inti;

for(i=1;

=5;

scanf("

a[i]);

设从键盘输入字符串:

abcde,则程序的输出结果是(C).

A)aB)空格C)不确定D)0

31.合法的数组定义是(D).

A)inta[]="

B)inta[5]={0,1,2,3,4,5};

C)chara="

D)chara[]={'

32.设有数组定义:

charstring[]="

China"

则数组string所占的空间为(B).

A)5个字节 

B)6个字节 

C)7个字节 

D)10个字节

33.定义字符数组c:

charc[]={"

clanguage"

};

数组c在内存中所占字节数是(C).

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

34.指出以下错误语句(C).

A)chara[10]={'

B)chara[10]={'

C)chara[2]={"

1"

"

2"

D)chara[2]={'

a’,'

b’};

35.若定义数组并初始化chara[10]={"

hello"

},该数组的元素个数是(A).

A)10

B)5

C)6

D)7

36.若定义数组并初始化chara[10]={"

HELLO"

},该数组的元素中a[2]是(A).

A)'

L'

B)'

E'

C)'

H'

D)'

O'

37.若定义数组并初始化intb[10]={1,2,3,4},以下哪几个语句成立(ACD)?

A)b[8]的值为0

B)b[1]的值为1

C)b[3]的值为整数

D)b[10]不是b数组中的元素

38.若定义数组inta[10];

指出下列错误语句:

ABCD

A)a数组共有10个元素,其引用方法是:

a[1],a[2]...a[10];

B)a数组是整型数组,其元素自动初始化为0;

C)a数组最后一个元素的引用方法是a[10];

D)a数组第一个元素的引用方法是a[1];

二、判断题

1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

2.数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构类型。

3.设需定义一个有15个元素的数组a,并对其前5个元素赋初值,可用如下语句实现:

inta[]={1,2,3,4,5};

4.数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度。

5.C语言数组的下标从0开始,下标必须是整数型的常量或变量。

6.数组是数目固定、类型相同的若干变量的有序集合。

数组中的每一个数(变量)称为数组元素,数组中的所有元素都属于同一种数据类型。

7.数组元素下标的下界是固定的,总是为0。

8.一维数组在引用时下标的范围是:

0<

=下标<

数组的长度。

9.若有数组定义为:

inta[100];

则该数组的下界为0,上界为100。

数组元素下标范围是:

下界<

上界。

10.设已定义:

doublea[5][5];

则数组a在内存中的存放顺序是:

a[0][0],a[0][1],a[0][2],...,a[4][3],a[4][4]。

二.填空题

1.在C语言中,二维数组的元素在内存中的存放顺序是按行的顺序依次存放。

2.若有定义:

doublex[3][5],则x数组中行下标的下限为0,列下标的下限为0。

3.若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};

则初始化后,a[1][2]的值为0,a[2][1]得到的值为6。

4.字符串”ab\n\\012\\”的长度是8。

5.下面程序段的运行结果是he。

 

charx[]=”theteacher”;

inti=0;

while(x[++i]!

=’\0’)

if(x[i-1]==’t’)printf(“%c”,x[i]);

6.欲为字符串S1输入”HelloWorld!

”,其语句是scanf(“%s”,S1);

7.欲将字符串S1复制到字符串S2中,其语句是strcpy(S2,S1);

8.如果在程序中调用了strcat函数,则需要预处理命令#include<

string.h>

如果调用了gets函数,则需要预处理命令#include<

stdio.h>

9.C语言数组的下标总是从0开始,不可以为负数;

构成数组各个元素具有相同的数据类型。

10.字符串是以‘\0’为结束标志的一维字符数组。

有定义:

chara[]=””;

则a数组的长度是0。

三.程序阅读题

1.写出下面程序的运行结果。

main()

{inta[6][6],i,j;

for(i=1;

i<

6;

i++)

for(j=1;

j<

j++)

a[i][j]=(i/j)*(j/i);

i++){

printf(“%2d”,a[i][j]);

printf(“\n”);

运行结果:

2.写出下面程序的运行结果。

{inti=0;

chara[]=”abm”,b[]=”aqid”,c[10];

while(a[i]!

=’\0’&

&

b[i]!

=’\0’){

if(a[i]>

=b[i])c[i]=a[i]-32;

elsec[i]=b[i]-32;

i++;

c[i]=’\0’;

puts(c);

AQM

3.当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。

{chars[80];

gets(s);

while(s[i]!

if(s[i]<

=’z’&

s[i]>

=’a’)

s[i]=’z’+’a’-s[i];

puts(s);

AzyD

4.写出下面程序的运行结果。

{inti,c;

chars[2][5]={“8980”,”9198”};

for(i=3;

i>

=0;

i--){

c=s[0][i]+s[1][i]-2*’0’;

s[0][i]=c%10+‘\0’;

for(i=0;

=1;

i++)puts(s[i]);

注:

s数组中每个字符的ASCII值为:

5.当运行下面程序时,从键盘上输入748915↙,则写出下面程序的运行结果。

{inta[6],i,j,k,m;

for(i=0;

scanf(“%d”,&

for(i=5;

=0;

k=a[5];

for(j=4;

j>

j--)

a[j+1]=a[j];

a[0]=k;

for(m=0;

m<

m++)

printf(“%d”,a[m]);

四.程序填空题

1.下面程序可求出矩阵a的主对角线上的元素之和,请填

(2)空使程序完整。

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

3;

for(j=0;

if(【i==j】)

sum=sum+【a[i][j]】;

printf(“sum=%d”,sum);

2.下面程序将十进制整数n转换成base进制,请填(3)空使程序完整。

{inti,base,n,j,num[20];

scanf(“%d”,&

n);

base);

do{

num[i]=【n%base】;

n=【n/base】;

}while(n!

=0);

for(【j=i;

j>

0;

j--】)

printf(“%d”,num[j]);

3.下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把两者对调,然后输出调整后的10个数,请填(3)空使程序完整。

{inta[10],max,min,i,j,k;

10;

max=min=a[0];

if(a[i]<

min){min=a[i];

【j=i】;

max){max=a[i];

【k=i】;

【max=a[j];

a[j]=a[k];

a[k]=max;

printf(“%d”,a[i]);

4.下面程序的功能是在一个字符串中查找一个指定的字符,若字符串中包含该字符则输出该字符在字符串中第一次出现的位置(下标值),否则输出-1,请填

(2)空使程序完整。

#include<

{charc=’a’;

/*需要查找的字符*/

chart[50];

inti,j,k;

gets(t);

i=【strlen(t)】;

for(k=0;

k<

i;

k++)

if(【t[k]==c】)

{j=k;

break;

elsej=-1;

printf(“%d”,j);

5.下面程序用“顺序查找法”查找数组a中是否存在某一关键字,请填

(2)空使程序完整。

{inta[10]={25,57,48,371,123,291,18,22,44};

inti=0,x;

x);

【a[10]=x】;

=x)i++;

if(【i<

10】)printf(“found=%d\n”,i);

elseprintf(“can\’tfound!

\n”);

6.以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填

(2)空使程序完整。

{chara[40]=”Great”,b[]=”Wall”;

inti=0,j=0;

=’\0’)i++;

while(【b[j]!

='

\0'

】){

a[i]=b[j];

i++;

j++;

【a[i]='

】;

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

五、编程题

[1]输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。

用下标为0元素统计字符“0”的个数,下标为1的元素统计字符“1”的个数,...。

#include<

#defineN80

voidmain()

{

charchs[N];

inti,count[10];

Inputastring:

"

);

chs);

i++)count[i]=0;

N;

{

count[chs[i]-'

]++;

if(count[i])printf("

%dcounts:

i,count[i]);

[2]编写程序求任意方阵每行、每列、两对角线元素之和。

#defineN5

#defineM5

inta[N][M]={{3,4,7,8,9},

{6,8,2,1,3},

{8,5,4,3,2},

{7,6,9,1,5},

{5,6,4,1,7}};

ints1[N];

//存放每行的和

ints2[M];

//存放每列的和

intsum1=0,sum2=0;

//存放两对角线的和

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1