ImageVerifierCode 换一换
格式:DOCX , 页数:76 ,大小:109.84KB ,
资源ID:7176549      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7176549.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言实验题及参考答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言实验题及参考答案.docx

1、C语言实验题及参考答案实验一1、计算整数各位数字之和 (10 分)输入一个3位正整数,将其每一位的数字相加,输出和。输入格式:输入一个3位正整数。 变量数据类型为unsigned。输出格式:输出整数每一位相加后的整数和。输入样例:123输出样例:6【参考答案】#include int main() unsigned int a,ge,shi,bai,sum; scanf(%d,&a); ge=a%10; shi=a/10%10; bai=a/100; sum=ge+shi+bai; printf(%dn,sum); return 0;2、计算代数表达式 (10 分)求: 输入格式:输入角度x。

2、变量数据类型为double。为。输出格式:输出y的值,精确到小数点后2位。输入样例:输出样例:【参考答案】#include #include #define PI int main()double x,y;scanf(%lf,&x);y=sqrt(sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180); printf(%.2lf,y); return 0;3、逆序的三位数 (10 分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的

3、正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321【参考答案】#include int main() int a,ge,shi,bai,b; scanf(%d,&a); ge=a%10; shi=a/10%10; bai=a/100; b=ge*100+10*shi+bai; printf(%dn,b); return 0;4、求整数均值 (10 分)本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。 输出格式:在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其

4、中平均值精确到小数点后一位。 输入样例:1 2 3 4输出样例:Sum = 10; Average = 【参考答案】#include int main()int a,b,c,d,sum; float ave; scanf(%d %d %d %d,&a,&b,&c,&d); sum=a+b+c+d; ave=sum/; printf(Sum = %d; Average = %.1fn,sum,ave); return 0;5、是不是太胖了 (10 分)据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少

5、(顺便也悄悄给自己算一下吧)输入格式:输入第一行给出一个正整数H(100 H 300),为某人身高。输出格式:在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。输入样例:169输出样例:【参考答案】#include int main() int h; float w; scanf(%d,&h); w=(h-100)*2; printf(%.1fn, w); return 0;6、日期格式化 (10 分)世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一

6、行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。输入样例:03-15-2017输出样例:2017-03-15【参考答案】#include int main() int year,month,day; scanf(%d-%d-%d,&month,&day,&year); printf(%d-%02d-%02dn,year,month,day); return 0; 7、整数四则运算 (10 分)本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在

7、整型范围内。输入格式:输入在一行中给出2个正整数A和B。 输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例:3 2输出样例:3 + 2 = 53 - 2 = 13 * 2 = 63 / 2 = 1【参考答案】#include int main() int a,b; scanf(%d %d,&a,&b); printf(%d + %d = %dn,a,b,a+b); printf(%d - %d = %dn,a,b,a-b); printf(%d * %d = %dn,a,b,a*b); printf(%d / %d = %dn,a,b,a/b); ret

8、urn 0;8、计算存款利息 (10 分)本题目要求计算存款利息,计算公式为interest=money(1+rate)?year?money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。输入格式:输入在一行中顺序给出三个正实数money、year和rate,以空格分隔。输出格式:在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。输入样例:1000 3 输出样例:interest = 【参考答案】#include #include int main() float money,rate,year,interes

9、t; scanf(%f %f %f,&money,&year,&rate); interest=money*pow(1+rate),year)-money; printf(interest = %.2fn, interest); return 0;实验二1、比较大小 (15 分)本题要求将输入的任意3个整数从小到大输出。输入格式:输入在一行中给出3个整数,其间以空格分隔。输出格式:在一行中将3个整数从小到大输出,其间以“-”相连。 输入样例:4 2 8输出样例:2-4-8【参考答案】#include int main() int a,b,c,t; scanf(%d %d %d,&a,&b,&c

10、); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%d-%d-%dn,a,b,c); return 0; 2、计算运费 (15 分)运输公司对用户计算运费。路程(s)越远,每千米运费就越低。标准如下: s250km ,没有折扣; 250kms500km, 2%的折扣; 500kms1000km, 5%的折扣; 1000kms2000km,8的折扣; 2000kms3000km,10的折扣; 3000kms,15的折扣。设每千米每吨货物的基本运费为p,货物重为 w,距离为s,折扣为d,则总运费f的计算公式为

11、: fpws(d)输入格式:在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。输出格式:在一行输出计算出来的运费,精确到小数点后位的值。输入样例:在这里给出一组输入。例如:100 20 300输出样例:在这里给出相应的输出。例如:freight=【参考答案】#include int main() int c,s; float p,w,d,f; scanf (%f %f %d,&p,&w,&s); if (s=3000) c=12; else c=s/250; switch(c) case 0: d=0;break; case 1: d=2;break; case 2: case 3

12、: d=5;break; case 4: case 5: case 6: case 7: d=8;break; case 8: case 9: case 10: case 11: d=10;break; case 12: d=15;break; f=p*w*s*(1-d/; printf(freight=%.2fn,f); return 0; 3、三天打鱼两天晒网 (15 分)中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是

13、“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34【参考答案】#include int main() int N,x; scanf(%d,&N); x=N%5; if(x=1&x=3)printf(Fishing in day %dn,N); else printf(Drying in day %dn,N); return 0;4、计算分段函数2 (15 分)本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含,并

14、调用sqrt函数求平方根,调用pow函数求幂。 输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。输入样例1:10输出样例1:f = 输入样例2:输出样例2:f = 【参考答案】#include #include int main() float x,y; scanf(%f,&x); if(x=0) y=sqrt(x); else y=(x+1)*(x+1)+2*x+1/x; printf(f(%.2f) = %.2fn, x,y); return 0;5、判断输入的字符是哪种类型 (15 分)通过键盘输入一个字

15、符,编程判断并输出用户输入的是什么类型的字符。输入格式:输入一个字符。输出格式:在一行中输出该字符是哪种类型的字符。 若用户输入字符为0和9之间,输出This is a digit. 若用户输入字符在A和Z之间,输出This is a capital letter. 若用户输入字符在a和z之间,输出This is a small letter. 其他情况,输出Other character.输入样例:6输出样例:This is a digit.【参考答案】#include int main() char c; c=getchar(); if(c=0&c=A&c=a&c=z)printf(Thi

16、s is a small letter.); else printf(Other character.); return 0; 6、求一元二次方程的根 (15 分)本题目要求一元二次方程的根,结果保留2位小数。输入格式:输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;3)如果方程只有一个根,则直接输出此根;4)如果系数都为0,则输出Zero Equation;5)如果a和b为0,

17、c不为0,则输出Not An Equation。输入样例1: 输出样例1:输入样例2:1 2 3输出样例2:+输入样例3:0 2 4输出样例3:输入样例4:0 0 0输出样例4:Zero Equation输入样例5:0 0 1输出样例5:Not An Equation【参考答案】#include #include int main() float a,b,c; float x1,x2,p,y; scanf(%f %f %f,&a,&b,&c); if(a=0&b=0&c=0) printf(Zero Equation);return 0; if(a=0&b=0&c!=0) printf(Not

18、 An Equation); return 0; p=b*b-4*a*c; if(a=0) x1=-c/b; printf(%.2fn,x1);return 0; if(p=0&a!=0) if(p0) x1=(-b+sqrt(p)/(2*a); x2=(-b-sqrt(p)/(2*a); printf(%.2fn%.2fn,x1,x2); else x1=-b/(2*a); printf(%.2fn,x1); else if(b!=0) p=sqrt(-p);x1=-b/(2*a);y=p/(2*a); printf(%.2f+%.2fin,x1,y); printf(%.2f-%.2fin

19、,x1,y); else y=sqrt(-p)/(2*a); if(y0)printf(+%.2fi%.2fin,y,y); else printf(+%.2fi%.2fin,-y,-y); return 0; 7、A除以B (15 分)真的是简单题哈 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。输入格式:输入在第一行给出两个整数A和B(?100A,B100),数字间以空格分隔。输出格式:在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。输入

20、样例1:-1 2输出样例1:-1/2=输入样例2:1 -3输出样例2:1/(-3)=输入样例3:5 0输出样例3:5/0=Error【参考答案】#include #include int main()int A,B; scanf(%d %d,&A,&B); if(B=0) printf(%d/%d=Errorn,A,B); else if(B0) printf(%d/(%d)=%.2fn,A,B,(float)A/B); else printf(%d/%d=%.2fn,A,B,(float)A/B); return 0;8、计算火车运行时间 (15 分)本题要求根据火车的出发时间和达到时间,编

21、写程序计算整个旅途所用的时间。输入格式:输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。输出格式:在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。输入样例:1201 1530输出样例:03:29【参考答案】#include int main() int h1,h2,hour1,hour2,men1,men2,a,b; scanf(%d %d,&h1,&h2); hour1=h1/100; men1=h1%100; hour2=

22、h2/100; men2=h2%100; if(men2men1) men2=men2+60; hour2-; a=hour2-hour1; b=men2-men1; printf(%02d:%02dn,a,b); return 0;实验三1、求交错序列前N项和 (15 分)本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+. 的前N项之和。输入格式:输入在一行中给出一个正整数N。输出格式:在一行中输出部分和的值,结果保留三位小数。输入样例:5输出样例:【参考答案】#include int main() int i,N,s=1; float a,b,t,sum=0;

23、 a=1; b=1; scanf(%d,&N); for(i=1;i=N;i+) t=a/b; sum+=s*t; s=-s; a+; b=b+2; printf(%.3fn,sum); return 0; 2、统计整数的位数 (15 分)从键盘读入一个整数,统计该数的位数。例如,输入12534,输出5;输入-99,输出2;输入0,输出1。输入格式:输入一个整数N(?10?5?N10?5?)。输出格式:在一行中按如下格式输出该数的位数。It contains 位数 digits.输入样例:12534输出样例:It contains 5 digits.【参考答案】#include int mai

24、n() int N,s=0; scanf(%d,&N); if(N=0) printf(It contains %d digits.n,+s); else if(N0) N=-N; while(N!=0) s+; N=N/10; printf(It contains %d digits.n,s); return 0; 3、最大公约数和最小公倍数 (15 分)本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511 292输出样例:73 2044【参考答

25、案】#include int main() int M, N, gys, gbs; int t; scanf(%d %d, &M, &N); if (M N) t = M; M = N; N = t; for (gys = N; gys-) if (M%gys = 0 & N%gys = 0) break; gbs = M*N / gys; printf(%d %d, gys, gbs); return 0;4、统计字符 (15 分)本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。输入格式:输入为10个字符。最后一个回车表示输入结束,不算在内。输出格式

26、:在一行内按照letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数的格式输出。输入样例:aZ &09 Az输出样例:letter = 4, blank = 3, digit = 2, other = 1【参考答案】#include int main() int i,letter,blank,digit,other; char c; letter=blank=digit=other=0; for(i=0;i=a&c=A&c=0&c=9) digit+; else if(c= |c=n) blank+; else othe

27、r+; printf(letter = %d, blank = %d, digit = %d, other = %dn,letter,blank,digit,other); return 0; 5、简写转全称 (15 分)在一行中输入若干个字符作为简写字符,字符之间没有空格间隔,并按如下规则产生输出: 每个简写字母对应一行输出 若字符为C或c,则该行输出BEIJING OLYMPIC GAMES 若字符为J或j,则该行输出JAPAN WORLD CUP 若字符为K或k,则该行输出KOREA WORLD CUP 若为其他字符,则该行原样输出该字符。输入格式:输入在一行中输入若干个字符,字符之间没有空格间隔,以回车结束。输出格式:按题目要求产生若干行输出。输入样例:kijckj输出样例:KOREA WORLD CUPiJAPAN WORLD CUPBEIJING OLYMPIC GAMESKOREA WORLD CUPJAPAN WORLD CUP【参考答案】#includ

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1