实验改错填空题Word文档格式.docx
《实验改错填空题Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验改错填空题Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
scanf("
max=a;
if(max<
printf("
max=%d"
3.填空题
(1)从键盘输入两个整数,输出这两个整数的和。
根据注释信息填写完整程序,以实现其功能。
intx,y,total;
/*定义整型变量x,y,total*/
Pleaseinputx,y!
"
/*输出提示信息*/
Pleaseinputx,y!
"
/*由键盘输入两个数分别赋予x和y*/
x,&
y);
total=x+y;
/*赋值语句*/
%d+%d=%d\n"
x,y,total);
/*输出两个整数的和*/
(2)从键盘输入两个整数,输出这两个整数的差。
main()
inta,b,m;
Inputa,bplease!
scanf("
%d%d"
m=a-b;
/*赋值语句,将a和b的差值赋给m*/
%d-%d=%d\n"
a,b,m);
/*输出a和b差的结果值后换行*/
实验3
1.改错题
输入一个华氏温度,要求输出摄氏温度。
公式为:
C=
,输出取2位小数。
请纠正程序中存在的错误,使程序实现其功能,程序以文件名保存。
floatc,f;
请输入一个华氏温度:
%f"
,f);
c==(5/9)*(f-32);
摄氏温度为:
%\n"
c);
floatc,f;
f);
c=9)*(f-32);
c);
按下列公式计算并输出x的值。
其中a和b的值由键盘输入。
x=2ab/(a+b)2
main()
{
inta,b;
floatx;
a,b);
x=2ab/(a+b)(a+b);
x=%d\n"
x);
}
x=*a*b/((a+b)*(a+b));
x=%f\n"
(3)下列程序的功能为:
从键盘输入一个小写字母,要求改用大写字母输出。
纠正程序中存在的错误,以实现其功能,程序以文件名保存。
charc1,c2;
c1=getchar;
%c,%d\n"
c1,c1);
c2=c1+26;
c2,c2);
c1=getchar();
c2=c1-32;
2.程序填空
给定格式输入数据,按要求格式输出结果,补充完善程序,以实现其功能,程序以文件名保存。
输入形式enterx,y:
2
输出形式x+y=
intx;
floaty;
printf("
enterx,y:
%d%f"
x+y=%.1f\n"
x+y);
(2)下列程序的功能为:
设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
(周长l=2
,圆面积s=
,圆球表面积sq=
,圆球体积vq=
;
圆柱体积vz=
)
请填写适当的符号或语句,使程序实现其功能,程序以文件名保存。
floatpi,h,r,l,s,sq,vq,vz;
pi=;
请输入圆半径r,圆柱高h:
%f%f"
r,&
h);
l=2*pi*r;
s=pi*r*r;
sq=4*pi*r*r;
vq=4*pi*r*r*r;
vz=pi*h*r*r;
圆周长为:
%.2f\n"
l);
圆面积为:
s);
圆球表面积为:
sq);
圆球体积为:
vq);
圆柱体积为:
vz);
(3)下列程序的功能为:
通过键盘输入两个整数,分别存入变量x,y中,通过中间变量t互换x,y之值,并输出之。
{
intx,y,t;
请输入x,y:
if(x<
y)
{t=x;
x=y;
y=t;
}
充完善程序,以实现其功能。
inti,j;
for(i=0;
i<
10;
i++)
{
j=i*10+6;
if(j%3!
=0)continue;
%d"
j);
}
实验6
为指定的数组输入10个数据,并求这些数据之和。
纠正程序中存在的错误,以实现其功能。
intn=10,i,sum=0;
inta[n];
i++)
%d"
a[i]);
sum=sum+a[i];
sum=%d\n"
sum);
inta[10];
scanf("
a[i]);
sum=sum+a[i];
将字符串b连接到字符串a。
voidmain()
chara[]="
wel"
b[]="
come"
;
inti,n=0;
while(!
a[n])n++;
b[i]!
='
\0'
a[n+i]=b[i];
a[n+i]=’\0’;
%s\n"
chara[10]="
while(a[n]!
)n++;
a[n+i]=b[i];
a[n+i]=’\0’;
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
也可能没有鞍点。
#defineN4
#defineM4
inti,j,k,flag1,flag2,a[N][M],max,maxj;
for(i=0;
N;
for(j=0;
j<
M;
j++)
a[i][j]);
flag2=0;
//1,
max=a[j][0];
maxj=0;
//i
if(a[i][j]>
max)
{
max=a[i][j];
maxj=j;
for(k=0,flag1=1;
k<
N&
&
flag1;
k++)
if(max>
a[k][maxj])
flag1=0;
if(flag1)
\nThesaddlepointis:
a[%d][%d]=%d\n"
i,maxj,max);
flag2=1;
//0
}
if(flag2)
\nThereisnosaddlepointintheMatrix\n"
for(j=0;
scanf("
max=a[i][0];
for(j=0;
j++)
if(a[i][j]>
for(k=0,flag1=1;
k++)
if(max>
a[k][maxj])flag1=0;
if(flag1)
printf("
flag2=1;
if(!
flag2)
2.程序填空题
(1)以下程序的功能是:
采用二分法在给定的有序数组中查找用户输入的值,并显示查找结果。
补充完善程序,以实现其功能。
#include"
#defineN10
inta[]={0,1,2,3,4,5,6,7,8,9},k;
intlow=0,high=N-1,mid,find=0;
请输入欲查找的值:
k);
while(low<
=high)
mid=(low+high)/2;
if(a[mid]==k)
找到位置为:
%d\n"
mid+1);
find=1;
if(a[mid]>
k)
high=mid-1;
else
low=mid+1;
if(!
find)printf("
%d未找到\n"
k);
(2)以下程序的功能是:
求3个字符串(每串不超过20个字符)中的最大者。
charstring[20],str[3][20];
inti;
3;
i++)gets(str[i]);
if(strcmp(str[0],str[1])>
0)strcpy(string,str[0]);
elsestrcpy(string,str[1]);
if(strcmp(string,str[0])<
0)strcpy(string,str[2]);
puts(string);
从键盘输入20个整数,统计非负数个数,并计算非负数之和。
inti,a[20],sum=0,count=0;
20;
i++)
&
a[i]);
if(a[i]<
0)
continue;
sum+=a[i];
count++;
s=%d\tcount=%d\n"
sum,count);
实验7
(1)下列sub函数的功能为:
将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。
例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。
程序以文件名存盘。
voidsub(chars[],chart[])
inti,d;
d=strlen(s);
for(i=1;
d;
t[i]=s[d-1-i];
t[d+i]=s[i];
t[2*d]='
/0'
main()
chars[100],t[100];
printf("
Pleaseenterstrings:
);
%s"
s);
sub(s,t);
\nTheresultis:
%s\n"
t);
将字符数组中的字符串逆序输出。
#defineARR_SIZE80
voidInverse(charstr[]);
chara[ARR_SIZE];
Pleaseenterastring:
gets(a);
Inverse(chara[]);
Theinversedstringis:
puts(a);
voidInverse(charstr[])
intlen,i=0,j;
chartemp;
len=strlen(str);
for(j=len-1;
j;
i++,j--)
temp=str[i];
str[j]=str[i];
str[j]=temp;
Inverse(a);
str[i]=str[j];
求整数n的阶乘。
intfun(intn)
staticintp=1;
p=p*n;
returnp;
intn,i;
intf=0;
inputmember:
n);
=n;
f=f*fun(i);
%d!
=%d\n"
n,f);
intf=1;
f=fun(i);
(1)下列sum()函数的功能是:
计算数组x前n个元素之和。
在主函数中,输入10个任意整数和下标i1、i2的值(设1≤i1≤i2≤9),调用sum()函数计算从第i1元素到第i2元素的和,并输出结果。
intsum(intx[],intn)
inti,s=0;
for(i=0;
n;
s=s+x[i];
returns;
inti,i1,i2,result;
intx[10];
i<
i++)
scanf("
x[i]);
scanf("
i1,&
i2);
result=sum(x+i1,i2-i1+1);
Sum=%d\n"
result);
输入一个字符数小于100的字符串string,然后将string所存盘字符串中的每个字符之间加一个空格。
#defineMAX100
voidinsert(chars[]);
charstring[MAX];
string);
insert(string);
voidinsert(charsrcStr[])
charstrTemp[MAX];
inti=0,j=0;
strcpy(strTemp,srcStr);
while(strTemp[j]!
srcStr[i]=strTemp[j];
i++;
j++;
srcStr[i]='
'
i++;
srcStr[i]='
输出如下图形,补充完善程序,以实现其功能。
1
222
33333
4444444
5
666
77777
666
5
voida(inti)
intj,k;
for(j=1;
=30-i;
j++)printf("
%c"
'
for(k=1;
=2*i-1;
k++)printf("
i+48);
=7;
i++)a(i);
for(i=6;
i>
=1;
i--)a(i);