C语言实验答案重庆大学出版社杨永斌 丁明勇.docx
- 文档编号:11792387
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:59
- 大小:26.52KB
C语言实验答案重庆大学出版社杨永斌 丁明勇.docx
《C语言实验答案重庆大学出版社杨永斌 丁明勇.docx》由会员分享,可在线阅读,更多相关《C语言实验答案重庆大学出版社杨永斌 丁明勇.docx(59页珍藏版)》请在冰豆网上搜索。
C语言实验答案重庆大学出版社杨永斌丁明勇
一
2、①a/b②a%b
3.
(1)
#include"stdio.h"
#include"conio.h"
voidmain()
{floatr,s;
r=10;
s=3.14*r*r;
printf("s=%.4f\n\n",s);
getch();
}
(2)
#include"stdio.h"
#include"conio.h"
#include
voidmain()
{ints,num1,num2,num=100;
/*初始化随机数发生器,其作用是每次运行程序时使rand()产生的随机数不一样*/
intrand();
num1=rand()%num+1;/*产生num范围内的随机加法数1*/
num2=rand()%num+1;/*产生num范围内的随机加法数2*/
printf("%d+%d=",num1,num2);
printf("请输入你的答案:
");
scanf("%d",&s);
if(num1+num2==s)/*判断是否答对*/
printf("Yes,你答对了。
%c\n",7);/*7为响铃*/
else/*答错的处理*/
printf("No,你答错了。
\n");
getch();
}
二
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
输出:
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
67
567
c:
\a.txt
2.填空性实验
①%f②&h③pi*r*r④s*h⑤v
3.程序改错
(1)
#include"stdio.h"
#include"conio.h"
voidmain()
{floata,b,x;
a=3.1;
b=4.5;
x=a+b;
printf("%.0f",x);
getch();
}
(2)
#include"stdio.h"
#include"conio.h"
voidmain()
{
intx,a;
x=12345;
a=x%10;
printf("%d",a);
getch();
}
4.设计性实验
(1)
#include"stdio.h"
#include"conio.h"
voidmain()
{floatx,y,z;
printf("Pleaseinput2reals");
scanf("%f%f",&x,&y);
z=x;x=y;y=z;
printf("Afterswapped,x=%f,y=%f",x,y);
getch();
}
(2)
#include"stdio.h"
#include"conio.h"
voidmain()
{chara,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();
}
三
一、验证性试验:
由于程序主函数结尾缺少"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
四、设计性试:
(1)
#include
#include"conio.h"
voidmain()
{inti,j,k;
printf("Pleaseinputtwointegers:
");
scanf("%d%d",&i,&j);
printf("Beforeswapped,i=%d,j=%d\n",i,j);
k=i;
i=j;
j=k;
printf("Afterswapped,i=%d,j=%d",i,j);
getch();
}
(2)
#include
#include"conio.h"
voidmain()
{floatr,h,p,s1,s2,v;
printf("pleaseinputradiusrandh\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,Basalarea:
%10.2f,Surfacearea:
%10.2f,Volume:
%10.2f",l,s1,s2,v);
getch();
}
(3)
#include
#include"conio.h"
voidmain()
{charc;
c=42;
printf("%-4c%c%4c\n",c,c,c);
printf("*********\n");
printf("%c%4c%4c",c,c,c);
getch();
}
(4)
#include
#include"conio.h"
voidmain()
{intx,y,a,b,c;
printf("pleaseinputanumberhavingthreefigures\n");
scanf("%d",&x);
a=x/100;
b=x/10%10;
c=x%10;
y=c*100+b*10+a;
printf("It\'sreversednumberis%d",y);
getch();
}
四
1.验证性实验
(1)分析程序的运行结果。
①程序的运行结果
运行一:
Input(1-7):
1
Mon.
运行二:
Input(1-7):
4
Tur.
运行三:
Input(1-7):
0
Theinputiswrong!
②运行5次下列程序,输入的数据分别是1,2,3,4,5,每次的运行结果
运行一:
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或最后。
(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
(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);}
(2)
scanf("%f",x);改为scanf("%f",&x);
if(1<=x<=10)y=x*x;改为if(1<=x&&x<=10)y=x*x;
4.设计性实验
#include
#include
voidmain()
{floatA,B,C,S,L;
printf("Pleaseinput3length-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);
}
elseprintf("Inputerror!
");
getch();
}
(2)
#include
voidmain()
{inta,b,c;
scanf("%d",&a);
if((a<100)||(a>=1000))printf("Inputerror!
");
else
{
b=a%10;c=a/100;
if(b==c)printf("It\'sapalindromenumber.");
elseprintf("Itisnotapalindromenumber.");
}
getch();
}
(3)
#include
voidmain()
{floatA,B,weight,waistline,fattiness;charS;
printf("pleaseinputyoursex,weight,andwaistline");
scanf("%c%f%f",&S,&weight,&waistline);
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("Yourstatureisperfect");
elseprintf("Yourstatureisnormal");
}
elseprintf("Youneedmoreexersice");break;
case'B':
if(weight*0.12<=fattiness&&fattiness<=weight*0.2)
printf("Yourstatureisnormal");
elseprintf("Youneedmoreexersice");
}
getch();
}
(4)
#include
voidmain()
{inta;
printf("pleaseinputainteger:
");
scanf("%d",&a);
switch(a%2)
{
case0:
printf("Thenumberiseven");break;
case1:
printf("Thenumberisodd");
}
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)ints,i;改为ints=0,i;
while(i<=99)s=s+i;改为while(i<=99){s=s+i;i+=2;}
#include
voidmain()
{ints=0,i;
i=1;
while(i<=99){s=s+i;i+=2;}
printf("1+3+5+…99的和是:
%d\n",s);
}
(2)inti,x,y=0;改为inti,x,y=1;
if((x%i)!
=0)y=0;改为if((x%i)==0)y=0;
#include
voidmain()
{inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2&&y;i++)
if((x%i)==0)y=0;
printf("%d\n",y);
getch();
}
4.设计性实验
(1)
#include
#include
#include
voidmain()
{ints;floatn,t,pi;
t=1;pi=0;n=1.0;s=1;
while(n<1e6)
{
pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
getch();
}
运行结果为:
pi=3.141594
(2)
#include
#include
voidmain()
{doublewheat=1,sum=1;
inti;
for(i=1;i<=64;i++)
{wheat*=2;sum+=wheat;}
printf("wheat=%.0lfsum=%.0lf",wheat,sum);
getch();
}
运行结果为:
wheat=184********709551600sum=36893488147419103200
(wheat真实值应为:
18446744073709551616)
(3)
#include
#include
voidmain()
{floatterm=1,s=1;
inti;
for(i=1;i<20;i++)
{term*=2*i+1;s+=term;}
printf("s=%.0f",s);
getch();
}
运行结果为:
sum=328259954906849547000000
(4)
①for语句
#include
#include
voidmain()
{inti;longs=0;
for(i=35;i<=1000;i++)
if(i%5==0&&i%7==0)s=s+i;
printf("%ld\n",s);
getch();
}
②while语句
#include
#include
voidmain()
{inti;longs=0;
i=35;
while(i<=1000)
{
if(i%5==0&&i%7==0)s=s+i;
i++;
}
printf("\n%ld",s);
getch();
}
③do-while语句
#include
#include
voidmain()
{inti;longs=0;
i=35;
do
{
if(i%5==0&&i%7==0)s=s+i;
i++;
}while(i<=1000);
printf("\n%ld",s);
getch();
}
(5)
①while语句
#include
#include
voidmain()
{longinti,j,k,sum=0;
scanf("%ld%ld",&i,&j);
k=i;
while(k>=j)
{sum+=k;k--;}
printf("sum=%ld",sum);
getch();
}
②do-while语句
#include
#include
voidmain()
{longinti,j,k,sum=0;
scanf("%ld%ld",&i,&j);
k=i;
do
{sum+=k;k--;
}while(k>=j);
printf("sum=%ld",sum);
getch();
}
六
1.验证性实验
(1)程序的执行结果是
x=15,i=2
(2)程序的执行结果是
n=5
*
***
*****
*******
*********
2.程序填空
(1)求任意两个整数之间所有的素数。
①&i1②&i2③i1④i2⑤0
#include"stdio.h"
#include"conio.h"
voidmain()
{inti1,i2,i,j,flag;
printf("inputtwointeger(i1,i2):
");
scanf("%d%d",&i1,&i2);
printf("primenumber:
\n");
for(i=i1;i<=i2;i++)
{
flag=1;
for(j=2;j<=i-1;j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1)printf("%d\t",i);
}
printf("\n");
getch();
}
(2)以下程序的功能是输出下三角九九乘法表
①9②i③i*j
#include"stdio.h"
#include"conio.h"
voidmain()
{inti,j;
for(i=1;i<=9;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%d\t",i,j,i*j);
printf("\n");
}
getch();
}
3.程序改错
(1)
#include"stdio.h"
#include"conio.h"
voidmain()
{intx,s,a;
for(x=100;x<1000;x++)
{s=0,a=x;
while(a!
=0)
{s=s+(a%10)*(a%10)*(a%10);
a=a/10;
}
if(x==s)printf("%d",x);
}
getch();
}
(2)
#include"stdio.h"
#include"conio.h"
voidmain()
{inti,j;
ints;
for(i=1;i<=999;i++)
{s=0;
for(j=1;j {if(i%j==0)s=s+j;} if(s==i)printf("%5d",i); } getch(); } 4.设计性实验 (1) #include"stdio.h" #include"conio.h" voidmain() {inti,j,k; for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i*i*i+j*j*j+k*k*k==1099)printf("%d%d%d",i,j,k); getch(); } (2) #include"stdio.h" #include"conio.h" voidmain() {inti,j; for(i=1;i<=4;i++) {for(j=0;j<4-i;j++)putchar(’’); for(j=0;j<2*i-1;j++)putchar(’*’); printf("\n"); } for(i=2;i>=0;i--) {for(j=0;j<3-i;j++)putchar(’’); for(j=0;j<2*i+1;j++)putchar(’*’); printf("\n"); } getch(); } (3) #include #include #include /*Thisisthemainprogram*/ voidmain() {floata=-10,b=10,fa=(2*a*a+3)*(a-2),fb=(2*b*b+3)*(b-2),fab,ab; do {ab=(a+b)/2;fab=(2*ab*ab+3)*(ab-2); if(fa*fab>0)a=ab; elseb=ab; }while(fabs(a-b)>1e-5); printf("x=%f\n",ab); getch(); } (4) #include"stdio.h" #include"conio.h" intmain(void) {inti,a,x,s; for(i=1;i<=50;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言实验答案重庆大学出版社杨永斌 丁明勇 语言 实验 答案 重庆 大学出版社 杨永斌