C语言实验报告第3章答案.docx
《C语言实验报告第3章答案.docx》由会员分享,可在线阅读,更多相关《C语言实验报告第3章答案.docx(14页珍藏版)》请在冰豆网上搜索。
![C语言实验报告第3章答案.docx](https://file1.bdocx.com/fileroot1/2022-11/16/915f9886-0cbb-48bf-9c63-161797292bf2/915f9886-0cbb-48bf-9c63-161797292bf21.gif)
C语言实验报告第3章答案
3.2基础实验
一、程序分析
1.以下程序若输入’a’,则输入格式为:
__c1=a____;运行结果为:
___a,A↙_____。
#include
intmain()
{charc1,c2;
scanf(“c1=%c”,&c1);
c2=c1-32;
printf(“%c,%c\n”,c1,c2);
return0;
}
2.以下程序如果使得a的值为2、b的值为3,则输入格式为:
_a=2,b=3__;运行结果为:
_2,3↙_。
#include
intmain()
{inta,b;
scanf(“a=%d,b=%d”,&a,&b);
printf(“%d,%d\n”,a,b);
return0;
}
3.以下程序若输入12.3、7.6、1.1,则输入格式为:
_12.37.61.1__;运行结果为:
_aver=7.00___。
#include
intmain()
{floata,b,c,d;
scanf(“%f%f%f”,&a,&b,&c);
d=(a+b+c)/3;
printf(“aver=%.2f”,d);
return0;
}
二、程序填空
1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。
若输入3562,则运行结果为:
___3+5+6+2=16↙____________。
#include
intmain()
{intn,a,b,c,d,m;
scanf(“%d”,&n);
a=n%10;
b=(n/10)%10;
c=(n/100)%10;
d=__n/1000________;
m=__a+b+c+d________;
printf(“%d+%d+%d+%d=%d\n”,d,c,b,a,m);
return0;
}
2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式为则运行结果为:
__f=64.00,c=17.78↙__。
#include
intmain()
{floatf,c;
f=64.0;
c=__(f-32)*5.0/9.0_________________;
printf(“f=%.2f,c=%5.2f\n”,f,c);
return0;
}
三、程序改错
1.分析以下程序段,找出错误并改正。
行号
源程序
1
2
3
4
5
6
7
8
#include
main()
{inti;floatk;
scanf(“i=%d”,i);
k=3.12*i;
printf(“%.2f\n”,k);
return0;
}
找错
错误在4行
应改为:
scanf(“i=%d”,&i);
调试正确后的运行结果
输入数据:
i=17
运行结果:
53.04↙
2.分析以下程序段,找出错误并改正。
行号
源程序
1
2
3
4
5
6
7
8
#include
main()
{chara;intb;floatc;doubled;
scanf(“%c,%d,%f,%lf”,&a,&b,&c,&d);
putchar(a\n);
printf(“%d,%0.2f,%.2lf\n”,b,c,d);
return0;
}
找错
错误在5行
应改为:
putchar(a);putchar(“\n”);
调试正确后的运行结果
输入数据:
A,19,12.3,10.98
运行结果:
A↙19,12.30,10.98
四、程序设计
1.对输入的字符进行加密,加密规则为“输入4个字符,将每个字符加4后转换成加密字符”,如输入“Ab2c”则加密后的字符序列为“Ef6g”。
1.#include
intmain()
{charc1,c2,c3,c4;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c1+=4;
c2+=4;
c3+=4;
c4+=4;
printf(“%c%c%c%c\n”,c1,c2,c3,c4);
return0;
}
3.3拓展实验
一、程序分析
1.⊙以下程序若输入3.4、12.0、8.9,则输入格式为:
3.4,12.0,8.9,运行结果为:
7.20↙。
#include
#include
intmain()
{floata,b,c;
floats,area;
scanf(“%f,%f,%f”,&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“%.2f\n”,area);
return0;
}
2.以下程序若输入C和2,则运行结果分别为:
__'F'和'5'_________。
#include
intmain()
{charc1;
intc2=0;
c1=getchar();
c2=c1+3;
putchar('\'');putchar(c2);putchar('\'');
return0;
}
二、程序填空
1.⊙以下程序实现按由大到小顺序输出任意两个整数。
若输入3562,则运行结果为:
__62,35↙__。
#include
intmain()
{intm,n;
scanf(“%d%d”,_&m,&n_______);
n>=m?
printf(“%d,%d\n”,n,m):
_printf(“%d,%d\n”,m,n)________;
return0;
}
2.以下程序实现输入任意两个整数,完成加、减、乘、除、求余操作并运行结果。
若输入29、18,则运行结果为:
_29+18=47,29-18=11,29*18=522,29/18=1,29%18=11_。
#include
intmain()
{intx,y;
printf(“请输入x,y的值:
”);
scanf(“%d%d”,&x,&y);
printf(“%d+%d=%d,”,_x,y,x+y________);
printf(“%d-%d=%d,”,_x,y,x-y_________);
printf(“%d*%d=%d,”,_x,y,x*y_______);
printf(“%d/%d=%d,”,_x,y,x/y________);
printf(“%d%%%d=%d”,_x,y,x%y____);
return0;
}
三、程序改错
1.分析以下程序段,找出错误并改正。
行号
源程序
1
2
3
4
5
6
7
8
#include
main();
{chari;intj;
scanf(“i=%d,j=%d”,&i,&j);
j=i+j/2;
printf(“%c%c\n”,i,j);
return0;
}
找错
错误在2行
应改为:
main()
调试正确后的运行结果
输入数据:
i=65,j=5
运行结果:
AC
2.分析以下程序段,找出错误并改正。
行号
源程序
1
2
3
4
5
6
7
8
9
#include
#include
#definepi=3.1416
main()
{floatr;
scanf(“r=%f”,&r);
printf(“%.2f,%.2lf\n”,pi*pow(r,2),2pi*r);
return0;
}
找错
错误在3,7行
应改为:
#definepi3.1416
printf(“%.2f,%.2lf\n”,pi*pow(r,2),2*pi*r);
调试正确后的运行结果
输入数据:
r=2
r=3
运行结果:
12.57,12.57↙
28.27,18.85↙
四、程序设计
1.输入圆的半径,输出该圆的周长和面积,结果保留2位小数。
2.⊙求ax2+bx+c的根,a、b、c从键盘输入,结果保留2位小数。
1.#include
intmain()
{floatr,s,area;
scanf(“%f”,&r);
s=2*3.14*r;
area=3.14*r*r;
printf(“周长为%.2f,面积为%.2f\n”,r,area);
return0;
}
2.#include
#include
intmain()
{floata,b,c,x1,x2,disc,p,q;
scanf(“%f%f%f”,&a,&b,&c);
disc=sqrt(b*b-4*a*c);p=-b/2/a;q=disc/2/a;
x1=p+q;x2=p-q;
printf(“x1=%.2f,x2=%.2f\n”,x1,x2);
return0;
}
3.4习题
一、选择题
1.以下4个选项中,不能看作一条语句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
2.以下叙述中错误的是()。
A.C语句必须以分号结束
B.复合语句在语法上被看作一条语句
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
3.⊙已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是()。
inta1,a2;charc1,c2;
scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);
A.10A20B↙B.10A20B↙C.10A20B↙D.10A20B↙
4.有输入语句:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是()。
A.132↙B.1,3,2↙C.a=1b=3c=2↙D.a=1,b=3,c=2↙
5.若定义x为double型变量,则能正确输入x值的语句是()。
A.scanf(“%f”,x);B.scanf(“%f”,&x);
C.scanf(“%lf”,&x);D.scanf(“%5.1f”,&x);
6.已知i,j,k为int型变量,若从键盘输入:
1,2,3<回车>,以下选项中正确的输入语句是()。
A.scanf(“%2d%2d%2d”,&i,&j,&k);B.scanf(“%d_%d_%d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);D.scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
7.⊙若运行时输入:
12345678↙,则下列程序运行结果为()。
inta,b;
scanf(“%2d%2d”,&a,&b);
printf(“%d\n”,a+b);
A.46B.579C.5690D.出错