为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C语言实验题及参考答案

2022-02-09 10页 doc 311KB 29阅读

用户头像 个人认证

人生one

暂无简介

举报
C语言实验题及参考答案如有侵权,请联系网站删除,仅供学习与交流【精品文档】第PAGE77页C语言实验题及参考答案实验一1、计算整数各位数字之和(2.1)(10分)输入一个3位正整数,将其每一位的数字相加,输出和。输入格式:输入一个3位正整数。变量数据类型为unsigned。输出格式:输出整数每一位相加后的整数和。输入样例:123输出样例:6【参考答案】#include"stdio.h"intmain(){unsignedinta,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/1...
C语言实验题及参考答案
如有侵权,请联系网站删除,仅供学习与交流【精品文档】第PAGE77页C语言实验题及参考答案实验一1、计算整数各位数字之和(2.1)(10分)输入一个3位正整数,将其每一位的数字相加,输出和。输入格式:输入一个3位正整数。变量数据类型为unsigned。输出格式:输出整数每一位相加后的整数和。输入样例:123输出样例:6【参考答案】#include"stdio.h"intmain(){unsignedinta,ge,shi,bai,sum;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;sum=ge+shi+bai;printf("%d\n",sum);return0;2、计算代数表达式(2.2)(10分)求:输入格式:输入角度x。变量数据类型为double。π为3.14159。输出格式:输出y的值,精确到小数点后2位。输入样例:12.3输出样例:1.69【参考答案】#include#include#definePI3.14159intmain(){doublex,y;scanf("%lf",&x);y=sqrt((sin(60*PI/180)+1)*(sin(30*PI/180)+1)/cos(x*PI/180));printf("%.2lf",y);return0;3、逆序的三位数(10分)程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321【参考答案】#include"stdio.h"intmain(){inta,ge,shi,bai,b;scanf("%d",&a);ge=a%10;shi=a/10%10;bai=a/100;b=ge*100+10*shi+bai;printf("%d\n",b);return0;4、求整数均值(10分)本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。输入格式:输入在一行中给出4个整数,其间以空格分隔。输出格式:在一行中按照格式“Sum=和;Average=平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。输入样例:1234输出样例:Sum=10;Average=2.5【参考答案】#include"stdio.h"intmain(){inta,b,c,d,sum;floatave;scanf("%d%d%d%d",&a,&b,&c,&d);sum=a+b+c+d;ave=sum/4.0;printf("Sum=%d;Average=%.1f\n",sum,ave);return0;5、是不是太胖了(10分)据说一个人的体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)输入格式:输入第一行给出一个正整数H(100intmain()inth;floatw;scanf("%d",&h);w=(h-100)*0.9*2;printf("%.1f\n",w);return0;6、日期格式化(10分)世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。输入样例:03-15-2017输出样例:2017-03-15【参考答案】#includeintmain(){intyear,month,day;scanf("%d-%d-%d",&month,&day,&year);printf("%d-%02d-%02d\n",year,month,day);return0;7、整数四则运算(10分)本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。输入格式:输入在一行中给出2个正整数A和B。输出格式:在4行中按照格式“A运算符B=结果”顺序输出和、差、积、商。输入样例:32输出样例:3+2=53-2=13*2=63/2=1【参考答案】#include"stdio.h"intmain(){inta,b;scanf("%d%d",&a,&b);printf("%d+%d=%d\n",a,b,a+b);printf("%d-%d=%d\n",a,b,a-b);printf("%d*%d=%d\n",a,b,a*b);printf("%d/%d=%d\n",a,b,a/b);return0;8、计算存款利息(10分)本题目要求计算存款利息,计算公式为interest=money×(1+rate)​year​−money,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。输入格式:输入在一行中顺序给出三个正实数money、year和rate,以空格分隔。输出格式:在一行中按“interest=利息”的格式输出,其中利息保留两位小数。输入样例:100030.025输出样例:interest=76.89【参考答案】#include#includeintmain()floatmoney,rate,year,interest;scanf("%f%f%f",&money,&year,&rate);interest=money*pow((1+rate),year)-money;printf("interest=%.2f\n",interest);return0;实验二1、比较大小(15分)本题要求将输入的任意3个整数从小到大输出。输入格式:输入在一行中给出3个整数,其间以空格分隔。输出格式:在一行中将3个整数从小到大输出,其间以“->”相连。输入样例:428输出样例:2->4->8【参考答案】#includeintmain()inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d->%d->%d\n",a,b,c);return0;2、计算运费(3.4)(15分)运输公司对用户计算运费。路程(s)越远,每千米运费就越低。标准如下:s<250km,没有折扣;250km≤s<500km,2%的折扣;500km≤s<1000km,5%的折扣;1000km≤s<2000km,8%的折扣;2000km≤s<3000km,10%的折扣;3000km≤s,15%的折扣。设每千米每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p×w×s×(1-d)输入格式:在一行中以小数形式输入基本运费、货重和距离,以空格作为分隔符。输出格式:在一行输出计算出来的运费,精确到小数点后2位的值。输入样例:在这里给出一组输入。例如:10020300输出样例:在这里给出相应的输出。例如:freight=588000.00【参考答案】#includeintmain()intc,s;floatp,w,d,f;scanf("%f%f%d",&p,&w,&s);if(s>=3000)c=12;elsec=s/250;switch(c)case0:d=0;break;case1:d=2;break;case2:case3:d=5;break;case4:case5:case6:case7:d=8;break;case8:case9:case10:case11:d=10;break;case12:d=15;break;f=p*w*s*(1-d/100.0);printf("freight=%.2f\n",f);return0;3、三天打鱼两天晒网(15分)中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?输入格式:输入在一行中给出一个不超过1000的正整数N。输出格式:在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“indayN”。输入样例1:103输出样例1:Fishinginday103输入样例2:34输出样例2:Dryinginday34【参考答案】#include"stdio.h"intmain(){intN,x;scanf("%d",&N);x=N%5;if(x>=1&&x<=3)printf("Fishinginday%d\n",N);elseprintf("Dryinginday%d\n",N);return0;4、计算分段[2](15分)本题目要求计算下列分段函数f(x)的值:注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。输入格式:输入在一行中给出实数x。输出格式:在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数。输入样例1:10输出样例1:f(10.00)=3.16输入样例2:-0.5输出样例2:f(-0.50)=-2.75【参考答案】#include#include"math.h"intmain()floatx,y;scanf("%f",&x);if(x>=0)y=sqrt(x);elsey=(x+1)*(x+1)+2*x+1/x;printf("f(%.2f)=%.2f\n",x,y);return0;5、判断输入的字符是哪种类型(3.3)(15分)通过键盘输入一个字符,编程判断并输出用户输入的是什么类型的字符。输入格式:输入一个字符。输出格式:在一行中输出该字符是哪种类型的字符。若用户输入字符为'0'和'9'之间,输出Thisisadigit.若用户输入字符在'A'和'Z'之间,输出Thisisacapitalletter.若用户输入字符在'a'和'z'之间,输出Thisisasmallletter.其他情况,输出Othercharacter.输入样例:6输出样例:Thisisadigit.【参考答案】#includeintmain()charc;c=getchar();if(c>='0'&&c<='9')printf("Thisisadigit.");elseif(c>='A'&&c<='Z')printf("Thisisacapitalletter.");elseif(c>='a'&&c<='z')printf("Thisisasmallletter.");elseprintf("Othercharacter.");return0;6、求一元二次方程的根(15分)本题目要求一元二次方程的根,结果保留2位小数。输入格式:输入在一行中给出3个浮点系数a、b、c,中间用空格分开。输出格式:根据系数情况,输出不同结果:1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;3)如果方程只有一个根,则直接输出此根;4)如果系数都为0,则输出"ZeroEquation";5)如果a和b为0,c不为0,则输出"NotAnEquation"。输入样例1:2.18.93.5输出样例1:-0.44-3.80输入样例2:123输出样例2:-1.00+1.41i-1.00-1.41i输入样例3:024输出样例3:-2.00输入样例4:000输出样例4:ZeroEquation输入样例5:001输出样例5:NotAnEquation【参考答案】#include#includeintmain()floata,b,c;floatx1,x2,p,y;scanf("%f%f%f",&a,&b,&c);if(a==0&&b==0&&c==0){printf("ZeroEquation");return0;}if(a==0&&b==0&&c!=0){printf("NotAnEquation");return0;}p=b*b-4*a*c;if(a==0){x1=-c/b;printf("%.2f\n",x1);return0;}if(p>=0&&a!=0)if(p>0){x1=(-b+sqrt(p))/(2*a);x2=(-b-sqrt(p))/(2*a);printf("%.2f\n%.2f\n",x1,x2);else{x1=-b/(2*a);printf("%.2f\n",x1);}elseif(b!=0){p=sqrt(-p);x1=-b/(2*a);y=p/(2*a);printf("%.2f+%.2fi\n",x1,y);printf("%.2f-%.2fi\n",x1,y);else{y=sqrt(-p)/(2*a);if(y>0)printf("0.00+%.2fi\n0.00-%.2fi\n",y,y);elseprintf("0.00+%.2fi\n0.00-%.2fi\n",-y,-y);return0;7、A除以B(15分)真的是简单题哈——给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。输入格式:输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。输出格式:在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。输入样例1:-12输出样例1:-1/2=-0.50输入样例2:1-3输出样例2:1/(-3)=-0.33输入样例3:50输出样例3:5/0=Error【参考答案】#include#includeintmain(){intA,B;scanf("%d%d",&A,&B);if(B==0)printf("%d/%d=Error\n",A,B);elseif(B<0)printf("%d/(%d)=%.2f\n",A,B,(float)A/B);elseprintf("%d/%d=%.2f\n",A,B,(float)A/B);return0;8、计算火车运行时间(15分)本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。输入格式:输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。输出格式:在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。输入样例:12011530输出样例:03:29【参考答案】#include"stdio.h"intmain(){inth1,h2,hour1,hour2,men1,men2,a,b;scanf("%d%d",&h1,&h2);hour1=h1/100;men1=h1%100;hour2=h2/100;men2=h2%100;if(men2intmain()inti,N,s=1;floata,b,t,sum=0;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("%.3f\n",sum);return0;2、统计整数的位数(4.1)(15分)从键盘读入一个整数,统计该数的位数。例如,输入12534,输出5;输入-99,输出2;输入0,输出1。输入格式:输入一个整数N(−10​5​​≤N≤10​5​​)。输出格式:在一行中按如下格式输出该数的位数。Itcontains位数digits.输入样例:12534输出样例:Itcontains5digits.【参考答案】#includeintmain()intN,s=0;scanf("%d",&N);if(N==0)printf("Itcontains%ddigits.\n",++s);else{if(N<0)N=-N;while(N!=0)s++;N=N/10;printf("Itcontains%ddigits.\n",s);return0;3、最大公约数和最小公倍数(15分)本题要求两个给定正整数的最大公约数和最小公倍数。输入格式:输入在一行中给出两个正整数M和N(≤1000)。输出格式:在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。输入样例:511292输出样例:732044【参考答案】#includeintmain()intM,N,gys,gbs;intt;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);return0;4、统计字符(15分)本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。输入格式:输入为10个字符。最后一个回车表示输入结束,不算在内。输出格式:在一行内按照letter=英文字母个数,blank=空格或回车个数,digit=数字字符个数,other=其他字符个数的格式输出。输入样例:aZ&09Az输出样例:letter=4,blank=3,digit=2,other=1【参考答案】#includeintmain()inti,letter,blank,digit,other;charc;letter=blank=digit=other=0;for(i=0;i<10;i++){scanf("%c",&c);if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letter++;elseif(c>='0'&&c<='9')digit++;elseif(c==''||c=='\n')blank++;elseother++;printf("letter=%d,blank=%d,digit=%d,other=%d\n",letter,blank,digit,other);return0;5、简写转全称(15分)在一行中输入若干个字符作为简写字符,字符之间没有空格间隔,并按如下规则产生输出:每个简写字母对应一行输出若字符为C或c,则该行输出"BEIJINGOLYMPICGAMES"若字符为J或j,则该行输出"JAPANWORLDCUP"若字符为K或k,则该行输出"KOREAWORLDCUP"若为其他字符,则该行原样输出该字符。输入格式:输入在一行中输入若干个字符,字符之间没有空格间隔,以回车结束。输出格式:按题目要求产生若干行输出。输入样例:kijckj输出样例:KOREAWORLDCUPiJAPANWORLDCUPBEIJINGOLYMPICGAMESKOREAWORLDCUPJAPANWORLDCUP【参考答案】#includeintmain()charch;ch=getchar();while(ch!='\n')if(ch=='c'||ch=='C')printf("BEIJINGOLYMPICGAMES\n");elseif(ch=='j'||ch=='J')printf("JAPANWORLDCUP\n");elseif(ch=='k'||ch=='K')printf("KOREAWORLDCUP\n");elseprintf("%c\n",ch);ch=getchar();return0;实验四1、穷举法搬运砖块问题(4.3)(15分)这是中国古典算术问题,某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬1块。有多少种搬法用N人正好搬N块砖?输入格式:在一行内输出正整数N(N<500)输出格式:输出所有满足条件的搬法,每种搬法占一行。每行按如下格式依次输出该搬法中男人、女人、小孩的人数(中间用空格间隔,=前后没有多余的空格)。men=男人数women=女人数child=小孩数若没有满足条件的搬法,则输出"Nosolution!"输入样例1:45输出样例1:men=0women=15child=30men=3women=10child=32men=6women=5child=34men=9women=0child=36输入样例2:1输出样例2:Nosolution!【参考答案】#includeintmain()intn,men,women,child,flag=0;scanf("%d",&n);for(men=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=%dwomen=%dchild=%d\n",men,women,child);flag=1;if(flag==0)printf("Nosolution!");return0;2、输出N以内的所有素数(4.5)(15分)编程找出N(2≤N≤500)以内(即小于等于N)的所有素数。输入格式:输入整数N(2≤N≤500)。输出格式:每8个一行输出N以内的所有素数。注意每个数据均占5列,且采用右对齐。输入样例1:50输出样例:23571113171923293137414347【参考答案】#includeintmain()intn,i,j,m=0;scanf("%d",&n);if(n==2){printf("%5d",n);return0;}for(i=2;i<=n;i++){if(i==2){printf("%5d",i++);m++;}for(j=2;j=i){if(m%8==0)printf("\n");printf("%5d",i);m++;return0;3、求特殊方程的正整数解(15分)本题要求对任意给定的正整数N,求方程X​2​+Y​2​=N的全部正整数解。输入格式:输入在一行中给出正整数N(≤10000)。输出格式:输出方程X​2​+Y​2​=N的全部正整数解,其中X≤Y。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出NoSolution。输入样例1:884输出样例1:10282022输入样例2:11输出样例2:NoSolution【参考答案】#includeintmain()intn,x,y,flag=0;scanf("%d",&n);for(x=1;x*xintmain(){charc;intn,l,i,j;scanf("%d%c",&n,&c);l=(float)n/2+0.5;for(i=1;i<=l;i++){for(j=1;j<=n;j++)putchar(c);putchar('\n');return0;实验五1、 数字金字塔(4.10) (20 分)输入一个正整数repeat (repeat<10),做repeat次下列运算:输入一个正整数n(n<10),输出n行数字金字塔。输出时使用以下语句:printf("");printf("%d",i);printf("\n");输入格式:输入在第1行中给出1个正整数repeat(repeat<10)接下来repeat行,每行给出一个正整数n(n<10)输出格式:按照对应顺序的n值,依次输出repeat个数字金字塔(n行数字金字塔的格式如样例所示,注意:每个数字后面跟一个空格。)输入样例:252输出样例:12223333344444445555555551222【答案】#include#includeintmain()intrepeat,n,i,j,k;scanf("%d",&repeat);for(k=1;k<=repeat;k++)scanf("%d",&n);for(i=1;i<=n;i++)for(j=1;j<=n-i;j++)printf("");for(j=1;j<=2*i-1;j++)printf("%d",i);printf("\n");return0;2、分解质因数(4.6)(20 分)输入一个整数n(2≤n≤10000),对其分解质因数。输入格式:输入正整数n(2≤n≤10000)。输出格式:输出整数=各分解质因数的乘积输入样例:120输出样例:120=2*2*2*3*5【答案1】#includeintmain()intn,i,j,k=1;scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++)while(n%i==0)if(k==1){printf("%d",i);k++;}elseprintf("*%d",i);n=n/i;return0;【答案2】#includeintmain()intn,i,j,k=1;scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++)for(j=2;j=i)while(n%i==0){n=n/i;if(k==1){printf("%d",i);k++;}elseprintf("*%d",i);return0;3、龟兔赛跑(20 分)乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入格式:输入在一行中给出比赛时间T(分钟)。输出格式:在一行中输出比赛的结果:乌龟赢输出@_@,兔子赢输出^_^,平局则输出-_-;后跟1空格,再输出胜利者跑完的距离。输入样例:242输出样例:@_@726【答案】#includeintmain()intt,tu=0,gui=0;scanf("%d",&t);while(t>0)if(t>=10)tu+=9*10;gui+=3*10;elsetu+=t*9;gui+=t*3;t=t-10;if(t<=0)break;if(tu>gui)if(t>=30)gui+=3*30;elsegui+=3*t;t=t-30;if(gui>tu)printf("@_@%d\n",gui);elseif(tu>gui)printf("^_^%d\n",tu);elseprintf("-_-%d\n",tu);return0;4、简单计算器(20 分)模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。输入样例:1+2*10-10/2=输出样例:10【答案】#includeintmain()inta,result;charop;scanf("%d",&a);result=a;scanf("%c",&op);while(op!='=')scanf("%d",&a);switch(op)case'+':result+=a;break;case'-':result-=a;break;case'*':result*=a;break;case'/':if(a==0){printf("ERROR");return0;}result/=a;break;default:printf("ERROR");return0;scanf("%c",&op);printf("%d\n",result);return0;实验六1、将数组中的数逆序存放(15 分)本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410812输出样例:21810【答案】#include"stdio.h"intmain(){intn,a[10],i,t;scanf("%d",&n);for(i=0;iintmain()inta[20],n,x,i;scanf("%d%d",&n,&x);for(i=0;iintmain()inta[10],n,i,min,max,t,mj;scanf("%d",&n);for(i=0;ia[i]){mj=i;min=a[i];}t=a[0];a[0]=a[mj];a[mj]=t;max=a[0];mj=0;for(i=1;iintmain()inta[10],n,x,j,i;scanf("%d",&n);for(i=0;i=i;j--)a[j+1]=a[j];a[i]=x;elsea[n]=x;for(i=0;i<=n;i++)printf("%d",a[i]);return0;5、求整数序列中出现次数最多的数(15 分)本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0intmain()inta[1000],b[1000]={0},n,max=0,j,k=0,maxi,x,i;scanf("%d",&n);for(i=0;ii){a[k]=x;b[k]++;k++;}for(i=0;iintmain()inta[20][20],flag=0,n,m,i,j;scanf("%d%d",&m,&n);for(i=0;ia[i][j-1]&&a[i][j]>a[i][j+1]&&a[i][j]>a[i-1][j]&&a[i][j]>a[i+1][j]){printf("%d%d%d\n",a[i][j],i+1,j+1);flag=1;}if(flag==0)printf("None%d%d\n",m,n);return0;2、矩阵运算(15 分)给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1intmain()inta[10][10],n,i,j,sum=0;scanf("%d\n",&n);for(i=0;iintmain()intfen[4][4],bu[4]={0},i,j;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&fen[i][j]);for(j=0;j<4;j++)for(i=0;i<4;i++)if(fen[i][j]<60)bu[j]++;for(i=0;i<4;i++)printf("%d",bu[i]);return0;4、矩阵的转置运算(15分)使用数组指针编写程序,将一个n×n(n≤10)的矩阵进行转置,即将行与列互换,转置后再按n×n矩阵形式输出。输入格式:输入整数n,从第2行开始依次输入n2个整数,各数以一个空格间隔。输出格式:输出n行n列的二维数组,每个元素右对齐输出占4列。输入样例:在这里给出一组输入。例如:3123456789输出样例:在这里给出相应的输出。例如:147258369【答案】#includeintmain()inta[10][10],i,j,n,t;scanf("%d",&n);for(i=0;iintmain()inta[3][3],i,j,max,min;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);min=max=a[0][0];for(i=1;i<3;i++)for(j=0;j<3;j++)if(a[i][j]>max)max=a[i][j];if(a[i][j]#includeintmain()chara[82],b[82],c[26];intn,i;for(i=0;i<26;i++)c[i]='Z'-i;//c[i]=25-i+'A';gets(a);n=strlen(a);for(i=0;i='A'&&a[i]<='Z')b[i]=c[a[i]-'A'];elseb[i]=a[i];b[i]='\0';puts(b);return0;2、IP地址转换(15 分)一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100100101000001010101110010输出样例:204.148.21.114【答案】#include"stdio.h"intmain(){inta[4]={0},i;charb[32];for(i=0;i<32;i++)scanf("%c",&b[i]);for(i=24;i<32;i++)a[3]=a[3]*2+(b[i]-'0');for(i=16;i<24;i++)a[2]=a[2]*2+(b[i]-'0');for(i=8;i<16;i++)a[1]=a[1]*2+(b[i]-'0');for(i=0;i<8;i++)a[0]=a[0]*2+(b[i]-'0');for(i=0;i<3;i++)printf("%d.",a[i]);printf("%d\n",a[3]);return0;3、找最长的字符串(15 分)本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:Thelongestis:最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样例:5liwangzhangjinxiang输出样例:Thelongestis:zhang【答案】#include#includeintmain(){charstr[1000][82]={""};intlen[1000]={0},N,i,k,max;scanf("%d\n",&N);for(i=0;i#includeintmain()chara[102],b[204]={'\0'},i,j,length;gets(a);length=strlen(a);for(i=0,j=0;i#includeintmain()charb[18];inti=0,shu=0;gets(b);while(b[i]!='\0')shu=shu*2+b[i++]-'0';printf("%d\n",shu);return0;实验九1、找两个数中最大者(10 分)本题要求对两个整数a和b,输出其中较大的数。函数接口定义:intmax(i
/
本文档为【C语言实验题及参考答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索