上机报告数组答案C语言doc.docx

上传人:b****6 文档编号:7129160 上传时间:2023-01-21 格式:DOCX 页数:9 大小:78.92KB
下载 相关 举报
上机报告数组答案C语言doc.docx_第1页
第1页 / 共9页
上机报告数组答案C语言doc.docx_第2页
第2页 / 共9页
上机报告数组答案C语言doc.docx_第3页
第3页 / 共9页
上机报告数组答案C语言doc.docx_第4页
第4页 / 共9页
上机报告数组答案C语言doc.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

上机报告数组答案C语言doc.docx

《上机报告数组答案C语言doc.docx》由会员分享,可在线阅读,更多相关《上机报告数组答案C语言doc.docx(9页珍藏版)》请在冰豆网上搜索。

上机报告数组答案C语言doc.docx

上机报告数组答案C语言doc

C语言上机报告数组

1、上机内容

完成实验指导书P261实验6的实验内容

(1),

(2),(3),(4)的实验内容。

(先自己编程,答案见指导书的习题解答)

2、上机作业(请先自行计算后再上机验证。

一、完成下列选择题

1.以下为一维整型数组a的正确说明是・

a)inta(10);b)intn=10,a[n];不能用变量

c)intn;d)#defineSIZE10;

scanf(”%d”,&n);intafSIZE];

inta[n];不能用变量

2.以下对二维数组a的正确说明是.

a)inta[3][];b)floata(3,4);

c)doublea[11[4]d)floata(3)(4);

3.以下能对一维数组a进行正确初始化的语句是。

A)inta[3]={0,0,0,0,0};超过数组长度B)inta[10]={);应至少有一个数据

C)inta[]={0};D)inta[IO]=(IO*l};

4.有以下程序段intk=0;while(k=l)k++;while循环执行的次数是

A)无限次while(k=l)总成立B)有语法错,不能执行C)一次也不执行

D)执行1次

5.运算完下面的C语言程序段以后,a的值是,b的值是,c的值是

intx=10,y=9;

inta,b,c;

a=(--x=y++)?

--x:

++y;

b=x++;c=y;

A、6913B、8711C、881()D、8710

6.若有说明:

inta[3][4]={0}测下而正确的叙述是。

A)只有元素a[0][0]nT得到初值0

B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0

D)数组a中每个元素均可得到初值0

7有如下程序

main()

{inti,sum;

for(i=1;iv=3;sum++)

sum+=i;

printf(”%d”,sum);}该程序的执行结果是

A)6B)3C)死循环,(i的值没有变)D)0

8以下程序的输出结果是

main()

{inti,a[10];

for(i=9;i>=0;i—)

a[i]=10-i;

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

A)258B)741C)852第•个循环q[9]—q[o]:

1234567890D)369

9、下面程序段的输出结果是。

charc[5]={'a','b','\0','c','\0'};

printf("%s",c);

A)B)ab第一个,\0'本字符申结束C)abcD)abc

10^设有数组定义:

charstr[]="Chinae”;则数组str所占空间为

A)5个字节B)6个字节C)7个字节"Chinae+‘\0'”D)8个字节11、下列描述中不正确的是

A)字符型数组中可以存放字符申

B)可以对字符型数组进行整体输入、输出。

利用函数puts,gets

0可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符〃/对字符型数组进行整体赋值char*p=''sina"

12、以下定义语句,charb=‘\123‘;变量b—

A)包含4个字符B)包含3个字符

0包含2个字符D)包含1个字符'S'

13、以下语句的执行结果是(以下□代表空格):

chars[10];

s="abcd〃;s是数组首地址,不能再赋值

printfs);

A)输出abedB)输出aC)输出abcdD□□□□D)编译不通过

14.判断两个字符出si和s2相等,应当使用()。

A.if(si=s2)B.if(si=s2)

C.if(!

strcmp(sl,s2))D.if(strcmp(sl,s2))如果两字符申相等,strcmp(sl,s2)值为0,故应加上!

15二维数组a有m行n列,则在a[i][j]之前的元素个数为()。

A.j*n+iB.i*n+jC.i*n+jTD.i*n+j+l

16、下面程序段的输出结果是。

chara[7]=”abcdef”;

charb[4]="ABC”;

strcpy(a,b);〃执行后,数组a中的元素为’A''B''C'O''e''f'printf("%c”,a[5]);

A)B)\OC)eD)f

17、以下程序的输出结果是25

^include〃stdio.h〃

ttdefineN3

voidmain(){inta,b=0;

intc[10]={l,2,3,4,5,6,7,8,9,0};

for(a=0;a<10;++a)//a从0循环至9

if((a%2)=0)〃如果a是偶数,执行,成立条件为定0,2,4,6,8

b+=c[a];〃b二c[0]+c[2]+c[4]+c[6]+c[8]二1+3+5+7+9=25

18、以下程序的输出结果是^include〃stdio.h〃

voidmain()

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

for(i=0;i

n[i]-0;//n[0],n[l]为0

for(i=0;i

for(j=0;j

j第2循环、n[l]=n[0]+l=l+l=2;*/n[j]=n[i]+l;

〃i第二循环i=l

/*j从0—1循环两次j第1循环、n[0]=n[l]+l=2+l=3;

j第2循环、n[l]=n[l]+l=2+l=3;*/

printfn[0]);

}

19、以下程序的输出结果是

^include"stdio.h〃voidmain()

inty二8;

for(;y>0;y―)

{

if(y%3==0)//如果y%3=0成迂,则执行可成立的值为6,3

{

printf(〃%d〃,一y);//执行y=yT,再打印在屏幕上。

(所以打印6T

=5,3-1=2)

continue;

}

}

}

20、下面叙述正确的是。

A)两个字符出所包含的字符个数相同时,才能比较字符出

B)字符个数多的字符申比字符个数少的字符申大

C)字符串|”STOP与”STOP”相等

D)字符串”That"小于字符串”The"

二、程序填空题

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

voidmain()

(inta[10]={11,12,13,14,15,16,17,18,19,20};

intmax,min,i=0,j=0,k;

max=min=a[0];

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

if(a[i]

min=a[i];

〃记录最小值的元素下标

〃记录最大值的元素下标

【1】j=i;

}

if(a[i]>max)

max=a[i];

【2】k=i;

【3】a[j]=max;〃将最大值赋值给最小值的元素

【4】a「k]=min;〃将最小值赋值给最大值的元素

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

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

}

2)以下程序是将字符申b的内容连接字符数组a的内容后面,形成新字符中a,请填空使程序完整。

voidmain()

{

chara[40]=z/Great/,,b[]="Wall〃;

inti=0,j=0;

while(a.[i]!

='\0')

i++;〃找出数组a中字符申的结束符'\0'位置。

while(b[j]!

='\0,)

a[i]=b[j];

i++;j++;

}

Mi]='\o';//添加字符申的结束符'\o'

printf(z/%s\n,z,a);

三、编程练习。

1.韩信有一队兵,他想知道有多少人,便让士兵排队报数:

按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为I0o编程求韩信至少有多少兵?

^include〃stdio.h〃

voidmain()

{

inta;

for(a=11;;a++)

if(a%5==l&&a%6==5&&a%7==4&&a%ll==10)break;

printf(〃%d〃,a);

2、10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20o然后按下列规则调整,所有小孩同时.把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。

提示:

用一个包含11个变量的数组。

最后一个变量a[10]用于改变第一个人的糖数。

^include"stdio.h〃

^include"string.h〃voidmain()

{intaril]={12,2,8,22,16,4,10,6,14,201

 

〃围成一圈,最后一•个人的糖数=第一•个人的糖数

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

{if(a[0]!

=a[i])//如果有一个人的糖数不一样,

(flag。

;break;}//标志flag=1,同时退出本循环

elseflag";}//所有人的人糖数相等,标志flag^jO

}while(flag!

=O);//当所彳j人的人糖数相等结束大循环。

printfC分糖%d次后大家糖数一样多〃,n);}

3从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!

”;如果找不到,则打印“Notfound!

”。

fidefineM10

^include"stdio.h〃

voidmain()

inta[M],i,x,flag=0;//flag做为查找标识

for(i=0;i

(printf(〃a[i]=:

〃);

scanf&a[i]);}

putsC请输入一个数:

”)•、

scanf(〃%d”,&x);

for(i=0;i

if(x=a[i])

flag二1;//如果找到,则标识flag=l

if(flag)

printf("Found");

else

printf("Nofound");

}

ttdefineM3

^include〃stdio.h〃

voidmain()

{

inta[M],i,x;

for(i=0;i

{printf(〃a[i]二:

”);

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

puts(〃请输入一个数:

〃);

scanf(〃%d〃,&x);

for(i=0;i

if(x==a[i])

{printf("Found");break;}

if(i==M)printfC'noFound");

}

4编写一个程序,将字符数组s2中的全部字符拷贝到字符数组si中,不用strcpy函数。

拷贝时,'\0‘也要拷贝过去。

‘\0’后面的字符不拷贝。

^defineM10

ttdefineN10

^include〃stdio.h〃

voidmain()

{

chara[M],b[N];

inti;

printfC请输入一个字符申:

”);gets(a);

for(i=0;(b[i]=a[i])!

=,\0,;i++);

printfC输入的字符申是:

〃);

puts(a);

printfC新的字符串是:

〃);

puts(b);

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

当前位置:首页 > 解决方案 > 学习计划

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

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