c语言习题答案.docx
- 文档编号:7513202
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:41
- 大小:25.72KB
c语言习题答案.docx
《c语言习题答案.docx》由会员分享,可在线阅读,更多相关《c语言习题答案.docx(41页珍藏版)》请在冰豆网上搜索。
c语言习题答案
.实验一
(1)编程求37+29的值,实习VC环境。
#include
inta,b,sum;
a=37;b=29;
sum=a+b;
printf(sum=%d,sum);}
(2)从键盘输入三个整数,求出最大数并输出。
#include
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;elsez=y;return(z);}
(3)通过上机实践,运行下列程序并分析输出结果。
A程序代码
#include
charch='a';
printf(%c对应的ASCII码是:
%d\n,ch,ch);}
程序输出结果:
a对应的ASC||码是:
97
.B程序代码
#include
inta=168;
floatb=123.456;floatx=35.567,y;printf(a=]\n,a);printf(a=%-5d\n,a);printf(b=%6.2f\n,b);printf(b=%e\n,b);
y=(int)(x*100+0.5)/100.0;printf(x=f,y=%f\n,x,y);
}
程序输出结果:
a=168a=168
b=123.46b=1.234560e+002x=f,y=35.567001
C程序代码
#include
inta=168;
printf(十进制数%d对应的八进制数是%o\n,a,a);printf(十进制数%d对应的十六进制数是%x\n,a,a);}
程序输出结果:
十进制数168对应的八进制数是250十进制数168对应的十六进制数是a8
.实验二
2.1顺序结构
2.1.1已知a=1.5,b=5.3,c=2.9,计算s=?
?
2-4ac的结果并输出。
#include
}
2.1.2输入某学生的三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。
#include
intmath,english,c_program;floatsum,average;
printf(inputmath,english,c_program:
);scanf(%d,%d,%d,&math,&english,&c_program);sum=math+english+c_program;average=sum/3;
printf(sum=%.0f,average=%.5f,sum,average);}
2.1.3输入圆的半径,计算圆的面积,设圆周率为3.1416.
#include
);scanf(%f,&r);s=3.1416*r*r;printf(圆的面积为%.6f,s);}
.
2.1.4输入一个两位数,将其个位数和十位数互换后变成一个新的数,输出这个数。
#include
intn,a,b;
printf(inputn:
);scanf(%d,&n);b=n_x0010_;a=n/10;n=b*10+a;
printf(%d\n,n);return0;}
2.1.5输入两个数a和b,将两数的值互换后输出新值。
#include
2.2简单分支结构
2.2.1输入两个整数,求出其中的较小值输出。
#include
intmain(){
inta,b,min;
printf(请输入a,b:
\n);scanf(%d,%d,&a,&b);
if(a
.elsemin=b;
printf(最小值是%d\n,min);return0;
}
2.2.2输入x的值并计算分段函数y的值。
?
?
2+2xx<2Y=f(x)=
2x-1x>=2#include
doublex,y;
scanf(%lf,&x);if(x<2)
y=x*x+2*x;else
y=2*x-1;
printf(%.6f,y);return0;}
2.2.3输入两个整数并判断两数是否相等,输出相应结论。
#include
intmain(){
inta,b;
printf(请输入两个整数:
\n);scanf(%d,%d,&a,&b);if(a==b)
printf(a等于b);else
printf(a不等于b);return0;
}
2.2.4输入一个整数,若为负数,求出它的平方;若为正数,求出它的立方,并输出结果。
#include
.{
printf(请输入一个整数:
);doublex,y;
scanf(%lf,&x);if(x<0)y=x*x;elsey=x*x*x;
printf(y=f(%f)=%f\n,x,y);
}
2.2.5输入三个整数,用if-else结构求出其中的最大值。
提示:
首先求出两个数的较大值放在一个变量里,然后用这个变量和第三个数再进行一次比较。
#include
intmain(){
inta,b,c,max;
printf(请输入三个数);scanf(%d,%d,%d,&a,&b,&c);if(a>b)max=a;else
max=b;if(c>max)max=c;else
max=a;
printf(最大值为%d\n,max);return0;
}
2.3简单循环结构
2.3.1计算1+4+7+…+301。
#include
voidmain(){
inti,sum;sum=0;
for(i=1;i<=301;i=i+3)sum=sum+i;
.printf(sum=%d\n,sum);
}
2.3.2循环输入某学生八个科目期末考试成绩,计算出该学生成绩总分和平均分。
#include
inti,a;
floatsum,average;sum=0;
for(i=1;i<=8;i++){
scanf(%d,&a);sum=sum+a;}
printf(成绩总分为%f\n,sum);printf(平均分为%f\n,sum/8);return0;
}
2.3.3输入n的值,计算n!
#include
intmain(void){
intn,i,a;a=1;
printf(请输入n的值:
%d\n);scanf(%d,&n);for(i=1;i<=n;i++)a=a*i;
printf(积=%d\n,a);return0;
}
2.3.4显示1~10平方,输出结果如下图所示:
1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=64
.9*9=8110*10=100
#include
intmain(void){
inti,a;
for(i=1;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项之和。
#include
inti,n;
floatitem,flag,sum;sum=0;flag=1;
printf(inputn:
);scanf(%d,&n);for(i=1;i<=n;i++){item=flag*(2*i-1)/(3*i-2);sum=sum+item;flag=-flag;}
printf(%f\n,sum);}
.
实验三
3.1.1
输入一个整数x,判定是否为5的倍数。
#include
intmain(void)
{
intx;
printf(x=);
scanf(%d,&x);
if(x%5==0)
printf(能整除5);
else
printf(不能整除5);
return0;
}
3.1.2
输入x,计算并输入下列分段函数对应的值。
-5x<0
Y=x2+20<=x<=1
x/2x>1
#include
intmain(void)
{
floatx,y;
printf(x=);
scanf(%f,&x);
if(x<0)
y=-5;
elseif(x>1)
y=x/2;
else
y=x*x+2;
printf(对应值为%.2f\n,y);
return0;
}
3.1.3
某商场给顾客购物的折扣率如下:
购物金额<300元不打折
300<=购物金额<500元9折
.500元<=购物金额7折
要求输入一个购物金额(x),输出打折率(rate)以及购物实际付款金额(x*rate)
#include
intmain(void)
{
intx,y;
printf(x=);
scanf(%d,&x);
if(x<300)
{
y=x;
printf(不打折,付款%d\n,y);
}
elseif(x>=300&&x<500)
{
y=0.9*x;
printf(打9折,付款%d\n,y);
}
else
{
y=0.7*x;
printf(打7折,付款%d\n,y);
}
return0;
}
3.1.4
求解一元二次方程?
?
?
?
?
?
+b?
?
+?
?
=?
?
的实数解。
#include
#include
intmain(void)
{
inta,b,c,d,x1,x2;
printf(a=,b=,c=);
scanf(%d,%d,%d,&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{
doublesqrt(doubled);
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf(x1=%d\n,x2=%d\n,x1,x2);
}
.elseif(d=0)
{
x1=(-b+sqrt(d))/(2*a);
printf(x1=x2=%d\n,x1);
}
else
printf(没有实数解);
return0;
}
3.1.5
从键盘输入10个字符,将所有的英文字母转换为大写后输出。
#include
intmain(void)
{
chari,ch;
printf(请输入);
for(i=1;i<=10;i++)
{
ch=getchar();
if(ch>='a'&&ch<='z')
ch=ch-32;
putchar(ch);
}
return0;
}
3.1.6
从键盘输入10个字符,统计其中英文字母、空格、数字字符和其他字符的个数。
#include
intmain(void)
{
charch,i;
intletter,space,digiter,other;
letter=space=digiter=other=0;
for(i=1;i<=10;i++)
{
ch=getchar();
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='z'))
letter++;
elseif(ch==''||ch=='\n')
space++;
elseif(ch>='0'&&ch<='9')
.digiter++;
else
other++;
}
printf(letter=%d,space=%d,digiter=%d,other=%d\n,letter,space,digiter,other);
return0;
}
3.2.1
输入一个四位整数的年份,判断是否为闰年。
#include
intmain(void)
{
intx,a,b,c;
printf(输入年份:
);
scanf(%d,&x);
a=x%4;
b=x_x0010_0;
c=x@0;
if((a==0&&b!
=0)||(c==0))
printf(闰年);
else
printf(不是闰年);
return0;
}
3.2.2
假设自动售货机出售4种商品,薯片、爆米花、巧克力和可乐,售价分别是每份3.0元、2.5元、4.0元和3.5元。
在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询次数超过五次时,退出查询;不到五次时,用户可以选择退出。
当用户输入编号1~4,显示对应商品的价格;输入0,退出查询;输入其他编号,显示价格为0。
#include
intmain(void)
{
charprice;
inti;
printf(请输入商品的名称:
\n);
for(i=1;i<=5;i++)
{
price=getchar();getchar();
switch(price)
.{
case'1':
printf(售价3.0元\n);break;
case'2':
printf(售价2.5元\n);break;
case'3':
printf(售价4.0元\n);break;
case'4':
printf(售价3.5元\n);break;
case'0':
printf(退出查询\n);break;
default:
printf(价格为0元\n);break;
}
}
return0;
}
3.2.3
编写一个程序输入某人的身高(cm)和体重(kg),按下式确定其体重是否为标准、过胖或过瘦。
判断标准为:
✍标准体重=身高-110;✍超过标准体重5kg为过胖;✍低于标准体重5kg为过瘦。
#include
intmain(void)
{
intx,y,z;
printf(请输入身高和体重:
\n);
scanf(%d,%d,&x,&y);
z=x-110;
if(y-z>5)
printf(过胖);
elseif(y-z<-5)
printf(过瘦);
else
printf(标准);
return0;
}
3.2.4
编写一个程序,计算购买某物品的总金额,该物品的单价为5元/公斤,购买5公斤以上打九折,购买10公斤以上打八折,购买20公斤以上打7折,购买50公斤以上打6折,购买100公斤以上打5折。
(用多分支if语句求解)
#include
intmain(void)
{
floatx,y;
printf(购买量\n);
scanf(%f,&x);
if(x>=5&&x<10)
y=0.9*5*x;
elseif(x>=10&&x<20)
.y=0.8*5*x;
elseif(x>=20&&x<50)
y=0.7*5*x;
elseif(x>=50&&x<100)
y=0.6*5*x;
elseif(x>100)
y=0.5*5*x;
else
y=5*x;
printf(付款%.2f\n,y);
return0;
}
3.2.5
编写一个程序,输出给定的某年某月的天数。
#include
intmain(void)
{
intyear,month,days,leap;
printf(年,月:
);
scanf(%d,%d,&year,&month);
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
break;
case4:
case6:
case9:
case11:
days=30;
break;
case2:
if(year%4==0&&year_x0010_0!
=0||year@0==0)
leap=1;
else
leap=0;
if(leap)
days=29;
else
days=28;
}
printf(%d年%d月的天数为%d天\n,year,month,days);
}
.
实验四
4.1.1
输入一批正整数(以零或负数为结束标志)求其中的奇数和。
#include
#include
intmain(void)
{
intdata,sum;
sum=0;
printf(输入一批正整数(以零或负数为结束标志):
);
scanf(%d,&data);
while(data>0)
{
if(data%2==1)
sum=sum+data;
scanf(%d,&data);
}
printf(奇数和是%d.\n,sum);
return0;
}
4.1.2
输入两个整数a和n,求a+aa+aaa+……(n个a)之和。
例如输入2和3,输出246(2+22+222)
提示:
可采用递推的方法计算当前项item=item*10+a
#include
intmain(void)
{
inta,n,item,i,sum;
i=1;
sum=0;
item=0;
printf(请输入两个整数a和n:
);
scanf(%d,%d,&a,&n);
while(i<=n)
{
item=item*10+a;
sum=sum+item;
i=i++;
}
printf(结果为%d\n,sum);
return0;
.}
4.1.3
编写程序:
计算2/1+3/2+5/3+8/5……的近似值。
要求计算前n项之和,保留2位小数(该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)
#include
intmain(void)
{
floatn,i,sum,a,b,item;
printf(请输入n的值:
);
scanf(%f,&n);
sum=0;
i=1;
a=2;
b=1;
item=0;
while(i<=n)
{
sum=sum+a/b;
item=a;
a=a+b;
b=item;
i=i++;
}
printf(结果为%.2f\n,sum);
return0;
}
4.1.4
编写一个程序,找出被2,3,5整除时余数均为1的最小的10个自然数。
#include
intmain(void)
{
intx,i;
i=0;
x=1;
while(i<10)
{
if(x%2==1&&x%3==1&&x%5==1)
{
printf(%d\n,x);
i++;
}
x++;
.}
return0;
}
4.1.5
输入一个正整数,求它的位数以及各位数字之和,例如123的位数是3,各位数字之和是6.
#include
intmain(void)
{
intnumber,digit,i,sum;
i=0;
sum=0;
printf(输入一个正整数:
);
scanf(%d,&number);
while(number!
=0)
{
digit=number_x0010_;
number=number/10;
sum=sum+digit;
i=i+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)