C语言实验答案(2-6)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) ①%f%f ②y>20 ③s=s0+200 ④s=s0+120
3.程序改错 (1) d=b*b-4ac 改为 d=b*b-4*a*c if(d=0) x1=x2=-b-sqrt(d)/2*a 改为 if(d==0) x1=x2=(-b-sqrt(d))/(2*a)
if(d>0) x1=-b-sqrt(d)/(2*a); x2=-b+sqrt(d)/(2*a); 改为 if(d>0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); }
getch(); }
(2)
#include "stdio.h" #include "conio.h" void main() {
int x,a; x=12345; a=x%10; printf("%d",a); getch(); }
4.设计性实验
(1) #include "stdio.h" #include "conio.h" void main() { float x,y,z;
运行一: 1 0,1,0,0
运பைடு நூலகம்二: 2 0,0,1,1
运行三: 3 0,0,0,1
运行四: 4 1,0,0,0
运行五: 5 1,0,0,0
输入不同数据以后,a,b,c,d 的结果不一样,分析其原因主要在于:输入值不同, switch 语句进入的 case 分支不同;当分支语句中未出现 break 时 switch 语句会继 续继续进入下一 case 分支分支执行,直到遇到 break 或最后。
(3) #include<stdio.h> void main() { float A,B,weight,waistline,fattiness; char S;
printf("please input your sex,weight,and waistline"); scanf ("%c%f%f",&S,&weight,&waistline);
#include <stdio.h> void main() { int i,x,y=1;
scanf("%d",&x); for(i=2;i<=x/2&&y;i++)
#include <stdio.h> void main( ) { int s=0,i;
i=1; while(i<=99) {s=s+i;i+=2;} printf("1+3+5+…99 的和是:%d\n",s); }
(2)int i,x,y=0;改为 int i,x,y=1; if ((x%i)!=0) y=0;改为 if ((x%i)==0) y=0;
实验二 1.验证性实验 (1) 程序运行结果
x=10,y=10,z=10 x=8,y=10,z=16 c1=M,c2=4d,c3=115,c4=77 c1=M,c2=M,c3=M,c4=M c1=77,c2=77,c3=77,c4=77 c=m,c=109
(2)程序运行结果
输入:
1,2 3,4 5,6 7,6 a,b
printf("Please input 2 reals"); scanf("%f%f",&x,&y);
z=x;x=y;y=z; printf("After swapped,x=%f,y=%f",x,y); getch(); }
(2)
#include "stdio.h" #include "conio.h"
67 56 7 c:\a.txt
2. 填空性实验
①%f ②&h ③pi*r*r ④s*h ⑤v
3.程序改错
(1) #include "stdio.h" #include "conio.h"
void main() { float a,b,x;
a=3.1; b=4.5; x=a+b; printf("%.0f",x);
(2)输入 x 的不同值,程序求得“y=f(x)”函数的不同值 运行一: -11 11.000000
运行二: 9 81.000000
运行三: 10 1.000000
2.程序填空 (1)
①(('A'<=c)&&(c<='Z')) 或者 ((65<=c)&&(c<=90))
②c+=32 ③(('a'<=c)&&(c<='z')) 或者 ((97<=c)&&(c<=122)) ④c-=32
(3) #include<stdio.h> #include "conio.h" void main() { char c;
c=42; printf("%-4c%c%4c\n",c,c,c); printf("*********\n"); printf("%c%4c%4c",c,c,c); getch(); } (4) #include<stdio.h> #include "conio.h" void main() { int x,y,a,b,c ; printf("please input a number having three figures\n"); scanf("%d",&x); a=x/100; b=x/10%10; c=x%10; y=c*100+b*10+a; printf("It\’s reversed number is %d",y); getch(); }
(2) #include<stdio.h> void main() { int a,b,c;
scanf("%d",&a); if((a<100)||(a>=1000)) printf("Input error!"); else {
b=a%10; c=a/100; if(b==c) printf("It\'s a palindrome number."); else printf("It is not a palindrome number."); } getch(); }
(2) scanf("%f",x); 改为 scanf("%f",&x); if(1<=x<=10) y=x*x; 改为 if(1<=x&&x<=10) y=x*x; 4.设计性实验
#include<stdio.h> #include<math.h> void main() { float A,B,C,S,L;
A=waistline*4.15; B=weight*0.082; fattiness=(A-B-76.76)*0.01; switch(S) { case 'F':
if(weight*0.2<=fattiness&&fattiness<=weight*0.3) { if(fattiness==weight*0.23) printf("Your stature is perfect"); else printf("Your stature is normal"); } else printf("You need more exersice");break; case 'B': if(weight*0.12<=fattiness&&fattiness<=weight*0.2)
printf("Please input 3 length-numbers:") scanf("%f%f%f",&A,&B,&C); if(A>0&&B>0&&C>0&&A+B>C&&B+C>A&&C+A>B) { L=(A+B+C)/2;
S=sqrt(L*(L-A)*(L-B)*(L-C)); printf("Area:%f\n",S); } else printf("Input error!"); getch(); }
(1) #include<stdio.h> #include "conio.h" void main() { int i,j, k ;
printf("Please input two integers:"); scanf("%d%d",&i,&j); printf("Before swapped,i=%d,j=%d\n",i,j); k=i; i=j; j=k; printf("After swapped,i=%d,j=%d",i,j); getch(); } (2) #include<stdio.h> #include "conio.h" void main() { float r ,h, p ,s1 ,s2, v; printf("please input radius r and h\n"); scanf("r=%d,h=%d",&r,&h); p=2*3.14*r; s1=3.14*r*r; s2=2*s1+p*h; v=s1*h; printf("Perimeter:%10.2f,Basal area:%10.2f,Surface area:%10.2f,Volume:%10.2f",l,s1,s2,v); getch(); }
实验五
1.验证性试验
(1)程序执行结果: s=2500
(2)程序执行结果: sum=2450
(3)程序执行结果: sum=4950
2.程序填空 (1) ①0 ②i<=50 ③i%7==0
(2) ① (cx=getchar())!=-1 ②front=cx;
3.程序改错 (1) int s,i; 改为 int s=0,i; while(i<=99)s=s+i;改为 while(i<=99){s=s+i;i+=2;}
printf("Your stature is normal"); else printf("You need more exersice"); } getch(); }
(4) #include<stdio.h> void main() { int a;
printf("please input a integer:"); scanf("%d",&a); switch (a%2) { case 0:printf("The number is even");break; case 1:printf("The number is odd"); } getch(); }
实验四
参考答案:
1.验证性实验
(1)分析程序的运行结果。
①程序的运行结果 运行一: Input(1-7):1 Mon.
运行二: Input(1-7):4 Tur.
运行三: Input(1-7):0 The input is wrong!
②运行 5 次下列程序,输入的数据分别是 1,2,3,4,5,每次的运行结果
void main() { char a,b;
a=127; b=a+1; printf("a=%c,a+1=%c\n",a,b); printf("a=%d,a+1=%d\n",a,b); a=-128; b=a-1; printf("a=%c,a-1=%c\n",a,b); printf("a=%d,a+1=%d\n",a,b); getch(); }
实验三
一、验证性试验 15M5.55
b=25,y=2.6,c2=N a= 15,b=25 x=5.550000,y=2.600000 c1=M,c2=N 在 scanf("%d%c%f",&a,&c1,&x);的输入中,由于输入字符型数据时空格会作为 有效输入字符处理,所以空格不能作为数据输入的分隔符,在输入 a 的值后,接 下来输入的应是一个字符型,若之间用空格则此空格将被视为一个字符,但若是 先输字符再输一个数,其间就可以用空格。 二、程序填空: ①a/b ②a%b ③quot,resi 三、程序改错: scanf("%f %f ",&x,&y) 改为 scanf("%d%d",&x,&y); printf("%d+%d=%d",x+y) 改为 printf("%d+%d=%d",x,y,x+y) ; (2) getchar(x) 改为 x=getchar() y=x-32 改为 y=x+32 四、设计性试:
输出:
a= 1,b= 2
c= 3.00,d= 4.00
e=
5,f=
6
u=7,v=6
c1=
,c2=2
输入:
1,2 2,3 3,4 4,5a,b
输出:
a= 1,b= 2
c= 2.00,d= 3.00
e=
3,f=
4
u=4,v=5 c1=a,c2=b (3)程序运行结果 12345678123456781234567812345678 5
相关文档
最新文档