上机报告数组答案C语言doc文档格式.docx
《上机报告数组答案C语言doc文档格式.docx》由会员分享,可在线阅读,更多相关《上机报告数组答案C语言doc文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
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以下程序的输出结果是
{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'
};
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<
k;
i++)
n[i]-0;
//n[0],n[l]为0
i++)//i从0—1循环两次i第一循环i=0
for(j=0;
j<
j++)/*j从0—1循环两次j第1循环、n[0]=n[0]+l=l;
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];
10;
(
if(a[i]<
min)
min=a[i];
〃记录最小值的元素下标
〃记录最大值的元素下标
【1】j=i;
if(a[i]>
max)
max=a[i];
【2】k=i;
【3】a[j]=max;
〃将最大值赋值给最小值的元素
【4】a「k]=min;
〃将最小值赋值给最大值的元素
printf(”%d\t”,a[i]);
2)以下程序是将字符申b的内容连接字符数组a的内容后面,形成新字符中a,请填空使程序完整。
chara[40]=z/Great/,,b[]="
Wall〃;
inti=0,j=0;
while(a.[i]!
='
\0'
i++;
〃找出数组a中字符申的结束符'
位置。
while(b[j]!
\0,)
a[i]=b[j];
j++;
Mi]='
\o'
;
//添加字符申的结束符'
printf(z/%s\n,z,a);
三、编程练习。
:
1.韩信有一队兵,他想知道有多少人,便让士兵排队报数:
按从1至5报数,最末一个士兵报的数为1;
按从1至6报数,最末一个士兵报的数为5;
按从1至7报数,最末一个士兵报的数为4;
最后再按从1至11报数,最末一个士兵报的数为I0o编程求韩信至少有多少兵?
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]用于改变第一个人的糖数。
stdio.h〃
string.h〃voidmain()
{intaril]={12,2,8,22,16,4,10,6,14,201
〃围成一圈,最后一•个人的糖数=第一•个人的糖数
for(i=1;
{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
inta[M],i,x,flag=0;
//flag做为查找标识
M;
(printf(〃a[i]=:
〃);
scanf&
a[i]);
putsC请输入一个数:
”)•、
scanf(〃%d”,&
x);
for(i=0;
if(x=a[i])
flag二1;
//如果找到,则标识flag=l
if(flag)
Found"
);
else
Nofound"
或
ttdefineM3
inta[M],i,x;
{printf(〃a[i]二:
”);
scanf(〃%d”,&
a[i]);
puts(〃请输入一个数:
〃);
scanf(〃%d〃,&
if(x==a[i])
{printf("
if(i==M)printfC'
noFound"
4编写一个程序,将字符数组s2中的全部字符拷贝到字符数组si中,不用strcpy函数。
拷贝时,'
\0‘也要拷贝过去。
‘\0’后面的字符不拷贝。
^defineM10
ttdefineN10
chara[M],b[N];
inti;
printfC请输入一个字符申:
”);
gets(a);
(b[i]=a[i])!
=,\0,;
i++);
printfC输入的字符申是:
puts(a);
printfC新的字符串是:
puts(b);