C语言实验题及参考答案

上传人:无*** 文档编号:168551745 上传时间:2022-11-10 格式:DOCX 页数:94 大小:86.51KB
收藏 版权申诉 举报 下载
C语言实验题及参考答案_第1页
第1页 / 共94页
C语言实验题及参考答案_第2页
第2页 / 共94页
C语言实验题及参考答案_第3页
第3页 / 共94页
资源描述:

《C语言实验题及参考答案》由会员分享,可在线阅读,更多相关《C语言实验题及参考答案(94页珍藏版)》请在装配图网上搜索。

1、实验1、计算整数各位数字之和(2.1) (10分)输入个3位正整数,将其每一位的数字相加,输出和。输入格式:输入个3位正整数。变量数据类型为unsigned。输出格式:输出整数每一位相加后的整数和。输入样例:输出样例:【参考答案】include stdio.hint main() unsigned int a,ge,shi,bai,sum; scanf(n%d,&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf(dn”,sum);return 0;2、计算代数表达式(2.2) (10分)求:(si 60。+ 1n3。+ 1COS X输

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

3、的。比如输入700,输出应该是7。输入格式:每个测试是个3位的正整数。输出格式:输出按位逆序的数。输入样例:输出样例:321【参考答案】include nstdio.hMint main() int a,ge,shi,bai,b;scanf(M%dH,&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge* 100+10*shi+bai;primf(dn”,b);return 0;)4、求整数均值(10分)本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型 范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。输出格式: 在一行中按照格式Sum

4、=和;Average =平均值”顺序输出和与平均值,其中平 均值精确到小数点后一位。输入样例:输出样例:Sum = 10; Average = 2.5【参考答案】#include stdio.h int main()int a,b,c,d,sum;float ave;scanf(M%d %d %d %d”,&a,&b,&c,&d);sum=a+b+c+d;ave=sum/4.0;printf(MSum = %d; Average = %. 1 fnM,sum,ave);return 0;5、是不是太胖了 (10分)据说个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得 到的公

5、斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应 该是多少?(顺便也悄悄给自己算下吧.一)输入格式:输入第一行给出个正整数H (100 H 3300),为某人身高。输出格式:在行中输出对应的标准体重,单位为市斤,保留小数点后1位。输入样例:169输出样例:124.2【参考答案】#include int main()(int h;float w;scanf(”d”,&h);w=(h-100)*0.9*2;printfC%.lfnM, 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(n%d-%d-%dn,&month,&day,&year);printf(H%d-%02d-%02dnn,year,month,day);return 0;7、整数四则运算(10分

7、)本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和 输出全部在整型范围内。输入格式:输入在一行中给出2个正整数A和B。输出格式: 在4行中按照格式“ A运算符B=结果”顺序输出和、差、积、商。输入样例:输出样例:【参考答案】#include stdio.hint main() int a,b;scanf(n%d %d;&a,&b);printf(%d + %d = %dn”,a,b,a+b); printf(n%d - %d = %dnM,a,b,a-b); printf(n%d * %d = %dn*,a,b,a*b); printf(H%d / %d = %dnn,a

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

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

10、H%d %d %d”,&a,&b,&c);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(n%d-%d-%dnM,a,b,c);return 0;2、计算运费(3.4) (15分)运输公司对用户计算运费。路程越远,每千米运费就越低。标准如下: s250km ,没有折扣; 250kms500km, 2% 的折扣; 500kms 1000km, 5% 的折扣; 1000kms2000km, 8%的折扣; 2000kms3000km, 10% 的折扣; 3000kmss, 15% 的折扣。设每千米每吨货物的基本运

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

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

13、人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”), 并且输出in day N”。输入样例1:103输出样例1:Fishing in day 103输入样例2:34输出样例2:Drying in day 34【参考答案】#include stdio.hint main() int N,x;scanf(n%dn,&N);x=N%5;if(x= 1 &x=3)printf(Fishing in day %dnM,N);else printf(uDrying in day %dnM,N);return 0;4、计算分段函数2 (15分)本题目要求计算下列分段函数f(x)

14、的值:人所,8时)(x + 1)2 + 2x +1/x (X 004)注:可在头文件中包含同,并调用函数求平方根,调用函数求零。输入格式:输入在一行中给出实数X。输出格式:在一行中按“f(x) = resul的格式输出,其中X与result都保留两位小数。输入样例1:10输出样例1:f(10.00) - 3.16输入样例2:-0.5输出样例2:f(-0.50) - -2.75【参考答案】#include #include math.hint main()(float x,y;scanf(H%r,&x);if(x=0) y=sqrt(x);else y=(x+1 )*(x+1 )+2*x+1 /

15、x;printf(Hf(%.2f) = %.2fnM, x,y);return 0;)5、判断输入的字符是哪种类型(3.3) (15分)通过键盘输入个字符,编程判断并输出用户输入的是什么类型的字符。输入格式:输入一个字符。输出格式: 在行中输出该字符是哪种类型的字符 若用户输入字符为和9之间,输出This is a digit. 若用户输入字符在A和Z之间,输出This is a capital letter. 若用户输入字符在和,之间,输出 This is a small letter. 其他情况,输出 Other character.输入样例:输出样例:This is a digit.【参

16、考答案】#include int main()char c;c=getchar();if(c=lO&c=,A&c=a&c=z)printf(This is a small letter.);else printf(Other character.);return 0;)6、求一元二次方程的根(15分)本题目要求一元二次方程的根,结果保留2位小数。输入格式:输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出个根,先 输出虚部为

17、正的,后输出虚部为负的;3)如果方程只有一个根,则直接输出此根;4)如果系数都为0I则输出Zero Equation;5)如果a和b为, c不为,则输出Not An Equation。输入样例1:输出样例1:输入样例2:输出样例2:-i.0e+i.4ii-i.oe-i.4ii输入样例3:输出样例3:输入样例4:输出样例4:Zero Equation输入样例5:0 0 1输出样例5:Not An Equation【参考答案】#include #include int main()(float a,b,c;float xl,x2,p,y;scanf(%f %f %f,&a,&b,&c);if(a=

18、0&b=0&c=0) printf(Zero Equation);return 0; if(a=0&b=0&c! =0) printf(Not An Equation); return 0; p=b*b-4*a*c;if(a=0) xl=-c/b; printf(%,2fn,xl);return 0; if(p=0&a!=0)if(p0)xl=(-b+sqrt(p)/(2*a);x2=(-b-sqrt(p)/(2*a);printf(%.2fn%.2fn,x 1 ,x2);)elsex 1 =-b/(2*a); printf(%.2fn,x 1);)else if(b!=0) p=sqrt(-

19、p);xl=-b/(2*a);y=p/(2*a);printf(%.2f+%.2fin,xl,y);printf(%,2f-%.2fin,x 1 ,y);else y=sqrt(-p)/(2*a);if(y0)printf(0.00+%.2fin0.00-%,2fin,y,y);else printf(0.00+%.2fin0.00-%.2fin,-y,-y);)return 0;7、A除以B (15分)真的是简单题哈给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。输入格式:输入在第一行给出两个整数A和B (-100A,B100)数字间以空格分隔。输出格式:在行

20、中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为0输出的商应 保留小数点后2位。输入样例1:-1 2输出样例1:-1/2-6.50输入样例2:1 -3输出样例2:1/(-3)=-0.33输入样例3:输出样例3:5/0=Error【参考答案】#include #include int main()int A,B;scanf(%d %d,&A,&B);if(B=O)printf(%d/%d=Errorn,A,B);elseif(B0)printf(%d/(%d)=%.2fn,A,B,(float)A/B);elseprint

21、f(%d/%d=%.2fn,A,B,(float)A/B);return ;8、计算火车运行时间(15分)本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。输入格式:输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时 间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59), 假设出发和到达在同一天内。输出格式:在一行输出该旅途所用的时间,格式为hh:mm,其中hh为2位小时数、mm 为2位分钟数。输入样例:1201 1530输出样例:03:29【参考答案】#include stdio.hint main() int h 1 ,h2

22、,hour 1 ,hour2,men 1 ,men2,a,b;scanf(%d %d,&hl,&h2);hour l=h 1/100;menl=hl%100;hour2=h2/100;men2=h2%100;if(men2menl)(men2=men2+60;hour2;a=hour2-hourl;b=men2-menl;printf(%02d:%02dn,a,b);return 0;实验三1、求交错序列前N项和(15分)本题要求编写程序,计算交错序列1-2/3+3/5-4/7+5/961+的前N项之和。输入格式:输入在一行中给出个正整数No输出格式:在行中输出部分和的值,结果保留三位小数。输

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

24、.输入样例:12534输出样例:It contains 5 digits.【参考答案】#include int main()(int N,s=O;scanf(%d,&N);if(N=O) 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的

25、最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:输出样例:73 2044【参考答案】#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个字符,统计其中英文字母、空格或回车、数字字 符和其他字符的个数。输

26、入格式: 输入为10个字符。最后一个回车表示输入结束,不算在内输出格式:在一行内按照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;lette 尸 blank=digit=other=0;for(i=0;i=a,&c=A,&c=0&c=,9) digit+;else if(c= |c=

27、n) blank+;else other+;)printf(letter = %d, blank = %d, digit = %d, other =%dn,letter,blank,digit,other);return 0;5、简写转全称(15分)用或或或附 c J K 亠在一行中输入若干个字符作为简写字符,字符之间没有空格间隔,并按如下规则 产生输出:c,则该行输出BEIJING OLYMPIC GAMESn 则该行输出JAPAN WORLD CUPk,则该行输出KOREA WORLD CUP,则该行原样输出该字符。刖入格式:输入在一行中输入若干个字符,字符之间没有空格间隔,以回车结束。输

28、出格式:按题目要求产生若干行输出。输入样例:kijckj输出样例:KOREA WORLD CUP 1JAPAN WORLD CUPBEIJING OLYMPIC GAMESKOREA WORLD CUP JAPAN WORLD CUP【参考答案】#include int main()char ch;ch=getchar();while(ch!-n)if(ch=c|ch=C)printf(BEIJING OLYMPIC GAMESn);else if(ch=j|ch=J)printf(JAPAN WORLD CUPn);else if(ch=k|ch=,K)printf(KOREA WORLD

29、CUPn);else printf(%cn,ch);ch=getchar();)return 0;)实验四1、穷举法搬运砖块问题(4.3) (15分)这是中国古典算术问题,某工地需要搬运砖块,已知男人一人搬3块,女人一人 搬2块,小孩两人搬1块。有多少种搬法用N人正好搬N块砖?输入格式:在行内输出正整数N(N32men=6 women=5 child=34men9 women=0 child36输入样例2:1输出样例2:No solution!【参考答案】#include int main()(int n,men,women,child,flag=0;scanf(%d,&n);for(men=

30、0;men=n/3;men+)for(women=0;women=n/2;women+)(child=n-men-women;if(men*3+women*2+child/2=n&child%2=0) printf(men=%d women=%d child=%dn,men,women,chi 1 d); flag=l;if(flag=0)printf(No solution!);return 0;)2、输出N以内的所有素数(4.5) (15分)编程找出N(2WNW500)以内(即小于等于N)的所有素数。输入格式:输入整数N(2N500)o输出格式:每8个一行输出N以内的所有素数。注意每个数据

31、均占5歹,且采用右对齐。 输入样例1:5。输出样例:2 3 S 7 11 13 17 19 23 29 31 37 41 43 47【参考答案】#include int main()int n,i,j,m=0;scanf(%d,&n);if(n=2) printf(%5d,n); return 0;for(i=2;i=n;i+) if(i=2)printf(%5d,i+);m+;for(j=2;ji;j+)if(i%j=O)break;ig) if(m%8=0)printf(n);printf(%5d,i);m+;)return 0;)3、求特殊方程的正整数解(15分)本题要求对任意给定的正整

32、数N,求方程X?+y2=N的全部正整数解。输入格式:输入在一行中给出正整数N (10000) 输出格式:输出方程X2+Y2=N的全部正整数解,其中XYo每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出输入样例1:输出样例1 :10 2820 22输入样例2:输出样例2:No Solution【参考答案】#include int main()(int n,x,y,flag=0;scanf(%d,&n);for(x=l ;x*xn;x+)(for(y=x;y*y=n-x;y+) if(x*x+y*y=n) flag=l;printf(%d %dn,x,y); ;)if(f

33、lag=O)printf(No Solutionn);return 0;4、打印菱形图案(15分)本题要求编写程序,打印一个高度为n的、由*”组成的正菱形图案。输入格式:输入在一行中给出个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟个空格。输入样例:7输出样例:【参考答案】#include stdio.h int main()int n, nl;int i, j;scanf(%d, &n);nl=(n + 1)/2;for (i = 1; i = nl; i+)for (j = 1; j = (2 * n 1 - 2 * i); j+)printf();for

34、 (j = 1; j = (2 * i - 1); j+)printf(* );printf(n);)for (i = n 1 + 1; i = n; i+)(for (j = 1; j = (2 * i - 2 * nl); j+)printf();for (j = 1; j = (4 * nl - 2 * i - 1); j+)printf(* );printf(n);)return 0;)5、跟奥巴马起画方块(15分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国 历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正 式启动,奥巴马编写了很简

35、单的计算机代码:在屏幕上画一个正方形。现在你也 跟他起画吧!输入格式:输入在一行中给出正方形边长N (3N21)和组成正方形边的某种字符c,间 隔个空格。输出格式: 输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结 果看上去更像正方形,我们输出的行数实际上是列数的50% (四舍五入取整)。输入样例:输出样例:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa【参考答案】#include int main()char c;int n,l,i,j;scanf(%d %c,&n,&c);l=(float)n/2+0.5;for(

36、i=l;i=l;i+)for(j=l;j=n;j+) putchar(c);putchar(n);)return 0;实验五1、数字金字塔(4.10)(20分)输入个正整数repeat (repeat0),做repeat次下列运算: 输入个正整数n(vl0),输出n行数字金字塔。输岀时使用以下语句: printfC ); printf(M%d i); printf(n);输入格式:输入在第1行中给出1个正整数repeat(/縫10)接下来repeat行,每行给出个正整数 ()输出格式:个(字后一个空格。)按照对应顺序的n值,依次输岀repeat个数字金字塔(n行数字金字塔的格式如样例所示,输入

37、样例:输出样例:12 2 23 3 3 3 34 4 4 4 4 4 45555555551 2 2 2【答案】#include #include int main()(int repeat,n,i,j,k;scanf(%d,&repeat);for(k= 1 ;k=repeat;k+)(scanf(%d,&n);for(i=l;i=n;i+)(for(j=1; j=n-i;j+) printf();for(j=l;j=2*i-l ;j+) printf(%d ,i);printf(n);)return 0;2、分解质因数(4.6) (20分)输入个整数n(2910000),对其分解质因数。输

38、入格式:输入正整数n(2W於1000)。输出格式:输出整数=各分解质因数的乘积输入样例:120输出样例:120=2*2*2*3*5【答案1】#include int main() (int n,i,j,k=l;scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+) |while(n%i=O)(if(k=l) printf(%d,i); k+;) else printf(*%d,i);n=n/i;)return 0;#include int main()(int n,i,j,k=l;scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+)

39、(for(j=2;ji;j+)if(i%j=O) break;ig)while(n%i=O) n=n/i;if(k= 1) printf(%d,i);k+;else printf(*%d,i);)return 0;)3、龟兔赛跑(20分)乌龟与兔子进行赛跑,跑场是个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子毎分钟前进9米;兔子嫌乌龟 跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继 续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输

40、入格式:输入在一行中给出比赛时间T (分钟)。输出格式:在行中输出比赛的结果:乌龟赢输出”,兔子赢输出、,平局则输出 ;后跟1空格,再输出胜利者跑完的距离。输入样例:242输出样例:726【答案】#include int main()(int t,tu=O,gui=O;scanf(%d,&t);while(t0)(if(t=10)tu+=9*10;gui+=3*10;else(tu+=t*9;gui+=t*3;if(tgui)if(t=30) gui+=3*30;else gui+=3*t;t=t-30;)if(guitu)printf(_ %dn,gui);else if(tugui) pr

41、intf(A_A %dn,tu);else printf(-_- %dn,tu);return 0;)4、简单计算器(20分)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计 算。输入格式:输入在一行中给出个四则运算算式,没有空格,且至少有一个操作数。遇等号说明输入结束。输出格式:在行中输出算式的运算结果,或者如果除法分母为或有非法运算符,则输出错误信息“ERROR”。输入样例:1*2*10-10/2输出样例:10【答案】#include int main()(int a,result;char op;scanf(%d,&a

42、);result=a;scanf(%c,&op);while(op!=,)(scanf(%d,&a);switch(op)(caseresult+=a; break;caseresult-=a; break;case result*=a; break;case 7: if(a0) printf(ERROR);return 0;result/=a; break;default: printf(ERROR);return 0;)scanf(%c,&op);printf(%dn,result);return 0;实验六1、将数组中的数逆序存放(15分)本题要求编写程序,将给定的个整数存入数组中,将数

43、组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出个正整数n ( ln10)。第二行输入n个整数,用空格分开。输出格式:在行中输出这n个整数的处理结果,相邻数字中间用个空格分开,行末不得有多余空格。输入样例:4 ie 8 1 2输出样例:2 1 8 ie【答案】#include stdio.hint main() int n,a10,i,t;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in/2;i+) t=ai; ai=an-1 -i;an-1 -i=t; for(i=0;in-l;i+)printf(%d ,a

44、i); printf(%dn,an-l);return 0;2、査找整数(15分)本题要求从输入的N个整数中査找给定的X。如果找到,輸出X的位值(从。开始数);如果没有找到,输出“ Not Found”。输入格式:输入在第一行中给出两个正整数N ( W20 )和X ,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。输出格式:在行中输出X的位置,或者Not Found”。输入样例1:输出样例1:输入样例2:输出样例2:Not Found【答案】#include int main()int a20,n,x,i;scanf(%d %d成n,&x);for(i=0;in;i+)scanf(%d

45、,&ai);for(i=0;in;i+)if(x=ai) break;if(in)printf(%dn,i);else printf(Not Foundn);return 0;)3、交换最小值和最大值(15分)本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换.然后将最大值与最后个数交换,最后输出交换后的序列。注意:题目保证最大和最小值都是唯一的。输入格式:输入在第一行中给出个正整数N(10),第二行给出N个整数,数字间以空格分隔。输出格式:在行中顺序输出交换后的序列,每个整数后跟个空格。输入样例:5 8 2 5 1 4输出样例:1 2 5 4 8【答案】#include int

46、main()int a10,n,i,min,max,t,mj;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);min=aO;mj=O;for(i=l;iai) mj=i; min=ai;t=aO; aO=amj; amj=t;max=aO;mj=O;for(i=l;in;i+)if(maxai) mj=i; max=ai; t=an-l; an-l=amj; amj=t;for(i=0;in;i+)printf(%d ,ai);printf(n);return 0;)4、简化的插入排序(15分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果

47、序列仍然有序。输入格式:输入在第一行先给出非负整数N(10);第二行给出N个从小到大排好顺序的整数;第三行给出个整数Xo输出格式:每个数字后面有一个空格。在行内输出将X插入后仍然从小到大有序的整数序列,输入样例:5 1 2 4 5 7 3输出样例:1 2 3 4 5 7【答案】#include int main()(int a10,n,x,j,i; scanf(%d,&n);for(i=0;in;i+)scanf(%d ,&ai);scanf(%d,&x);for(i=0;in;i+)if(xai) break;if(i=i;j-)a|j+l=a|j;ai=x;else an=x;for(i=

48、0;i=n;i+)printf(%d ,ai);return 0;)5、求整数序列中出现次数最多的数(15分)本题要求统计个整型序列中出现次数最多的整数及其出现次数。输入格式:輸入在一行中给出序列中整数个数NItKNSIOOO),以及N个整数。数字间以空格分隔。输出格式:在行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:1。 32 5343032输出样例:3 4【答案】#include int main()(int al000,bl000=0,n,max=O,j,k=O,maxi,x,i;scanf(%d,&n);for(i=0;in;i+) s

49、canf(%d,&x);for(j=0;ji) ak=x;bk+;k+;for(i=0;ik;i+)if(maxbi)max=bi ;maxi=i; printf(%d %dn,amaxi,max);return 0;)实验七1、求矩阵的局部极大值(15分)给定M行N列的整数矩阵A ,如果A的非边界元素大于相邻的上下左右4个元素,那么就称元素是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。输入格式:输入在第一行中给出処阵A的行数M和列数N( 39f,NW20 );最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。输出格式:毎行按照“元素值 行号列号”的格式输出个局

50、部极大值,其中行、列蝙号从1开始。要求按照行号递増输出;若同行有超过1个局部极 大值,则该行按列号递増输出。若没有局部极大值,则输出“None总行数总列数。输入样例1:4 5111115 3 9 3 16 5 3 5 111111输出样例1:输入样例2:输出样例2:【答案】#include int main()(int a2020,flag=:0,n,m,i,j;scanf(%d %d”,&m成n);for(i=0;im;i+)for(j=0;jn;j+)scanf(%d,&aij);for(i=l;im-l;i+)for(j=l;ja国j-l&a国!a皿&aiUai+lj) printf(%

51、d %d %dn,aij,i+l,j+l);flag=l;if(flag=O) printf(None %d %dn,m,n);return 0;2、矩阵运算(15分)给定一个X的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下 角的连线。输入格式:输入第一行给出正整数n( ln10 );隨后行,每行给出n个整数,其间以空格分隔。输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:47 3 4 15 6 117 18 11111输出样例:35【答案】#include int main()(int a 1

52、0 10,n,i,j,sum=0;scanf(%dn,&n);for(i=0;in;i+)for(j=0;jn;j+)scanf(%d,&aig);for(i=0;in;i+)for(j=0;jn;j+)if(i! =n-l &j !=n-l&i+j !=n-l)sum+=ai 皿;printf(%dn,sum);return 0;)3、统计不及格人数(15分)有4名学生,每名学生有4门课程,编写程序,要求输入所有学生的成绩,然后统计每门课不及格的人数。输入格式:输入4名学生的4门课程到维数蛆a4 4,数据之间用个空格分隔,每输入4个数,敲回车,成绩为整数。输出格式:在行中输出每列数据中小于6

53、0的个数,即不及格人数,数据之间用个空格分隔输入样例:在这里给出组输入。例如:86 54 78 9061 50 60 4530 90 70 8580 85 75 96输出样例:在这里给出相应的输出。例如:12 0 1【答案】#include int main()int fen44,bu4=0,i,j;for(i=0;i4;i+)for(j=0;j4;j+)scanf(%d,&fenij);for(j=0;j4;j+)for(i=0;i4;i+)if(fenij60) buj+;for(i=0;i4;i+)printf(%d ,bui);return 0;)4、矩阵的转置运算(15分)使用数组指针编写程序,将一个”n (ns10)的矩阵进行转置,即将行与列互 换,转置后再按nxn矩阵形式输出。输入格式:输入整数n,从第2行开始依次输入n2个整数,各数以个空格间隔。输出格式:输出n行n列的二维数组,每个元素右对齐输出占4歹。输入样例:在这里给出组输入。例如:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!