数组习题及答案_第1页
数组习题及答案_第2页
数组习题及答案_第3页
数组习题及答案_第4页
数组习题及答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

构造数据对象一一数组

一、填空题

1.数组是一组相同的—集合。

2.数组名代表数组的o

3.数组元素在数组中的位置序号称为它是从—开始整数。

4.有inta[]={4,6,2,12,435,-9,76,0,0};该数组元素值最大的下标为

5.定义数组tw,其能存储23个长整形数的语句为。

6.有说明语句inta[10]={l,2,3,4,5,6};则元素a[9]的值为—。

7.数组charc[]="abcd"中有个元素,最后一个元素是。

8."a"在内存中占个存储单元。

9.定义一个能存放下字符串Vocation的字符数组enm的语句为。

10.定义一个可保存100个整型数的数组pn,并把每个元素初值设为

0的语句是o

11.与puts(ss)等价的printf函数调用是。

二、选择题

1.下面关于数组的说法,不正确的是()

A.数组总为一个整体,可以参加算术运算

B.数组中的数组元素相当于一个简单变量

C.数组可以用来保存字符串

D.数组是一组连续的,类型相同的数据集合

2.下列说法不是数组特性的是()

A.数组元素类型相同B.数组长度固定

C.数组占用连续的内存空间D.数组可作为一个整体参与运算

3.定义一个具有8个元素的整形数组,应使用语句()

A.inta[8];B.inta[2z4];

C.inta[];D.int*a[8];

4.以下能正确定义一维数组的选项是()

A.intnum[];

B.#defineN100intnum[N];

C.intnum[0..100];

D.intN=100;

5.下面对s的初始化,不正确的是()

A.chars[5]={"abcd"};

B.chars[5]={/a7b;,c/};

C.chars[5]=,,,z;

D.chars[5]=wabcdw;

6.对以下说明语句正确的理解是()

inta[10]={6,7/8,9,10,12;

A.将6个初值依次赋值给a⑴至a[5];

B.将6个初值依次赋值给a⑼至a[5];

C.将6个初值依次赋值给a⑸至a[10];

D.因数组长度和初值的个数不同,所以此语句不正确

7.用scanf语句为数组a中的第二个数组元素输入数据,格式正确

的是()

A.scanf("%d",a[2]);B.scanf("%d”,&a[2]);

C.scanf("%d”,&a⑴);D.scanf("%d”,a⑴);

三、判断题

1.数组在内存中占用的空间是不连续的。()

2.数组下标的取值范围从1开始到长度结束。()

3.数组的3个特点是:数组元素类型相同、数组长度固定、数组占用

连续的内存空间。()

4.利用scanf函数输入字符串时,以空格作为结束标志。()

5.使用串常量给字符数组初始化时,可以省略{}o()

6.利用格式转换说明符%s输入字符串时,系统会自动在字符串末尾加

±/\0/;输出时,遇到第1个,\0,结束,且输出字符中不包含'\0'。()

四、写出程序运行结果

1.

#include"stdio.h"

main()

(

chars[20];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

s[j++]=s[i];

sU]='\O';

puts(s);

)

若输入bcdceeccffg

程序运行结果:_______________

2.

#include"stdio.h"

main()

(

inta[8]={l,4,3,56,77,44,66,88};

intx=O,y=O,i;

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

(

if(a[i]%2==0)

x=x+l;

else

y=v+i;

)

printf("x=%d,y=%d\n",x/y);

)

程序运行结果:______________

3.

#include"Stdio.h"

main()

(

chara[]="morning",t;

intij=O;

for(i=l;i<7;i++)

if(aUl<a[i])

j=i;

t=a[j];a[j]=a[7];

a[7]=aU];

printf(”%s”,a);

)

程序运行结果:_______________

4.

#include"stdio.h"

main()

(

intiJ[10];

f[O]=f[l]=l;

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

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

if(i%4==0)

printf("\n");

printf("%d",f[i]);

)

)

程序运行结果:______________

五、程序填空:

以下程序的功能是将输入的十进制数正整数转换为相应的二进

制数形式,请填空。

#include"Stdio.h"

main()

(

inta,e[10],c,i=0;

printf("请输入一个正整数\n");

scanf(”%d”,&a);

while(a!=O)

a=a/2;

e[i]=__________;

i++;

)

for(;i>O;i-)

printf(”%cT,e[i・l]);

intsub(inta)

(

intc;

c=a%2;

六、请思考下列问题,想一想解决的方法,写出相应程序

1.输入30个数放在一个数组中,输出其中最大者和最小者,并求30个数和和平均值。

2.输入20个数到一个数组中,找出其中的质数。

3.数组a已经赋值,输入一个数x,看在数组a中能否找到,若找到输出find,未找到输出no

find(数组中无重复值)。

构造数据对象一一数组(参考答案)

一、填空题

1.有序的连续的类型变量

2.首地址

3.数组元素的下标0

4.4

5.longtw[23];

6.0

7.5

8.2

9.charenm[9]=,,Vocationw;

10.printf("%s",ss);

二、选择题

1.A

2.D

3.A

4.B

5.A

6.B

7.C

三、判断题

1.X

2.X

3.V

4.V

5.V

6.V

四、程序运行结果

1.bdeeffg

2.x=5,y=3

3.mo

4.1123

581221

3455

五、程序填空

sub(a)

c

returnc

六、编写程序

1.

#include"stdio.h"

#defineN30

main()

(

inti,a[N],max,min,sum=O;

floatave;

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

scanfC^d'^&ali]);

max=a[0]zmin=a[0];

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

(

if(max<a[i])

max=a[i];

if(min>a[i])

min=a[i];

sum+=a[i];

)

ave=sum/30.0;

printf("max=%d\nmin=%d\n",max/min);

printf("sum=%d\nave=%f\n"/sum/ave);

#include"stdio.h"

#defineN20

main()

(

inta[N]JJ;

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

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

print,\n其中质数有:)

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

(

for(j=2;j<a[i];j++)

if(a[i]%j==0)

break;

if(a[i]==j)

printf("%d",a[i]);

#include"stdio.h"

main()

(

inta[10]={

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论