c语言习题答案.docx
《c语言习题答案.docx》由会员分享,可在线阅读,更多相关《c语言习题答案.docx(47页珍藏版)》请在冰豆网上搜索。
![c语言习题答案.docx](https://file1.bdocx.com/fileroot1/2023-8/13/5b3313d7-b686-4f5f-8acc-60a7e29b7c70/5b3313d7-b686-4f5f-8acc-60a7e29b7c701.gif)
c语言习题答案
(1)编程求37+29的值,实习VC环境。
#inelude〈Stdi0h〉voidmain()
{
0inta,b,sum;
a=37;
ob二29;
sum=a+b;
printf(”sum=%d”,sum);
}
(2)从键盘输入三个整数,求出最大数并输出。
#inc1ude
voidmain()
{
inta,b,c,y;
intmax(intx,inty):
printf(inputa,b,andc:
”);
Scanf(”%d,%d,%d",&a,&b,&c);
y=max(a,b);
y=max(y,c);
printf(”\nmax=%d\n",y);
}
intmax(intx,inty)
{
intz;
if(x〉y)z二x;
e1sez二y;
return(z);
}
(3)通过上机实践,运行下列程序并分析输出结果、
A程序代码
#inc1udevoidmain()
{
charch=,a';
printf(M%c对应的ASCII码是:
%d\n",ch,ch);}
程序输出结果:
a对应的ASC|丨码是:
97
B程序代码
#includeh>
voidmain()
6inta=168;
®floatb二123、456;
6f10atx=35、567,y;
printf(”a=%5d\n”,a);
6printf("a=%—5d\n”,a);
oprintf("b=%6、2f\n〃,b);
oprintf(〃b=%e\n〃,b);
oy=(int)(x*l00+0、5)/100、0;
0printf("x=f,y=%『\n",x,y);
}
程序输出结果:
a=168
a=168
2123、46b=l>234560e+002
x=f,y=35.567001
C程序代码
#include
v0idmain()
{
6inta=l68;
printfC十进制数%d对应的八进制数是%o\n”,a,a);oprintf(”十进制数%d对应的十六进制数是%x\n”,a,a);
}
程序输出结果:
十进制数168对应的八进制数是250
十进制数168对应的十六进制数是a8
实验二
2、1、1己知a二1、5,b二5、3,c二2、9,计算s二以-4ac的结果并输出、
#inc1udevoidmain()
{
汪1oata,b,c,s;
a二1、5;
ab=5、3;
%二2、9;
3s二b*b-4*a*c;oprintf(”s的值是%f\n",s);
}
2、1、2输入某学生的三个科目的期末考试成绩,计算出该学生的成绩总分与
平均分。
#includeh)
voidmain()
{
intmath,english,c_program;
floatsum,average;
printf("inputmath,eng1ish,c_pr0gram:
,z);scanf(”%d,%d,%d”,&math,&english,&c_program);
sum二math+english+c_program;
average=sum/3;
printf(〃sum=%、Of,average=%、5f”,sum,average);
}
2、1、3输入圆的半径,计算圆的面积,设圆周率为3、1416、
#inc1udeintmain()
{
0floatr,s:
oprintf(”请输入半径:
”);
sean『(”%f”,&r);
s=3、1416*r*r;
0Printf(”圆的面积为%、6f",s);
}
2、1、4输入一个两位数,将其个位数与十位数互换后变成一个新的数,输出这个数、
#include〈stdi0、h>
intmain(void)
{
intn,a,b;
printf("inputn:
");
scanf(”%d〃,&n);
b=n%10;
a=n/10;
n二b*I0+a;
printf("%d\n",n);
return0;
}
2、1、5输入两个数a与b,将两数的值互换后输出新值。
#inc1ude〈Stdi0>h〉
voidmain()
ointx,y,t;
Qscanf(”%d%d”,&x,&y);
ot二X;
坎二y;
y=t;
6printf(”x=%d,y二%d\n",x,y);
2、2简单分支结构
2、2、1输入两个整数,求出其中的较小值输出、
nclude〈stdio、h)
intmain()
{
0inta,b,min;
6printf("请输入a,b:
\n");
6scanf("%d,%d”,&a,&b);
if(a
eIse
min=b;
printf(w最小值是%d\n",min);return0;
}
2、2、2输入x的值并计算分段函数y的值。
\以+2xx<2
Y二f(x)Q
2x—1x)=2
^include
intmain(void)
{
0doublex,y;
6Scanf(〃%lf",&x);
oif(x<2)
ay二x*x+2*x;
0eIse
呵=2*x-l;
oprintf(”%、6f〃,y);
°return0;
}
2、2、3输入两个整数并判断两数是否相等,输出相应结论、
#includeh〉
intmain()
inta,b;
«printf(”请输入两个整数:
\n〃);
。
scanf(”%d,%d”,&a,&b);
oif(a==b)
oprintf(”a等于b”);
6elSe
oprintf("a不等于b”);
return0;
}
2.2.4输入一个整数,若为负数,求出它的平方;若为正数,求出它的立方,并输出结果。
ttincludevoidmain()
{
printf("请输入一个整数:
”);
doublex,y;
scan『(”%lf",&x);
if(x<0)
oy二x*x;
else
oy二x*x*x;
printf(”y=f(%f)=%f\n〃,x,y);
}
2.2.5输入三个整数,用if-e1se结构求出其中的最大值、提示:
首先求出两个数的较大值放在一个变量里,然后用这个变量与第三个数再进行一次比较、
#include〈stdio、h>
intmain()
{
0inta,b,c,max;
6printf(”请输入三个数");
6sCanf("%d,%d,%d",&a,&b,&c);
6if(a>b)
3max=a;
oelse
0max=b;
oif(c>max)
amax=c;
0else
0max=a;
6Printf("最大值为%d\n",max);
0return0;
}
2、3简单循环结构
2.3.1计算1+4+7+…+301、
#include〈stdio、h〉
voidmain()
{
。
inti,sum;
%um二0;
吐or(i=1;i<=301;i=i+3)
°sum=sum+i;
Rrintf("sum=%d\n”,sum);
}
2.3.2循环输入某学生八个科目期末考试成绩,计算出该学生成绩总分与平均分、
#includeintmain(void)
{
0inti,a;
0f1oatSum,average;
0sum=0;
0for(i=l;i<=8;i++)
6{
ascanf("%d”,&a);
asum=Sum+a;
。
}
Printf(”成绩总分为%f\n”,sum);
6printf(n平均分为%f\n",sum/8);
6return0;
}
2.3.3输入n的值,计算n!
tiinc1ude
intmain(void)
{
6intn,i,a;
0a=l;
6printf("请输入n的值:
%d\n”);
scanf(”%d",&n);
for(i=l;i<=n;i++)
6a=a*i;
6printf(”积=%d\n",a);
oreturn0;
}
2.3.4显示1〜10平方,输出结果如下图所示:
1*1=1
2*2=4
3*3=9
4*4二16
5*5=25
6*6=36
7*7=49
8*8二64
9*9=81
10*10=100
#includeintmain(void)
{
inti,a;
fOr(i=l;i〈二10;i++)
{
a=i*i;
printf(”%d*%d=%d\n”,i,i,i*i);}
return0;
}
2.3.5计算1-3/4+5/7—7/10+…的前n项之与。
#ineludevoidmain()
{
inti,n;
f10atitem,f1ag,sum;
sum=0;
f1ag=l;
printf("inputn:
”);
seanf("%d”,&n);
for(i=l;i<=n;i++)
{
o«item=f1ag*(2*i-l)/(3*i-2);
osum二sum+item;f1ag=—flag;
}
Brintf("%f\n",sum);
}
实验三
3、K1
输入一个整数X,判定是否为5的倍数、
#iiiclude
iiitmain(void)
UDtX;
sprintf(”x=”);
。
scanff%T,&x);
4f(x%5==0)
printf(”能整除5”);
eIse
。
priiitf("不能整除5”);
^>return0;
}
3、1、2
输入池计算并输入下列分段函数对应的值、
rsxY=x?
+20<=x<=l
J
x/2x>1
#iiiclude
intniaiii(void)
{
。
floatx,y;
pnntf(”x=M);
scanff%f\&x);
。
if(x<0)
。
y=—5;
代Iseif(x〉1)
y=x/2;
eIse
y=x*x+2;
prmtf(”对应值为%、2f\iT,y);
return0;
}
3、1>3
某商场给顾客购物的折扣率如下:
购物金额〈300元不打折
300<=购物金额<500元9折
500元〈=购物金额7折
要求输入一个购物金额(x),输出打折率(rate)以及购物实际付款金额(x*ratc)
#incIudeh>
intmaiii(void)
{
°intx,y;
。
printK”x=”);
scanf(H%d”,&x);
4f(x<300)
-y=x;
°prmtf(”不打折,付款%d\n”,y);訂
e1seif(x>=300&&x<500)
。
(
呼=0、9*x;
printf(”打9折,付款%d\n”,y);訂
gy=O、7*x;
°printf(”打7折,付款%d\n",y);
°return0;
}
3、1、4
求解一元二次方程"护+bX+c=°的实数解、
#include
#inc1ude