首页 C语言上机题库

C语言上机题库

举报
开通vip

C语言上机题库RevisedbyPetrelat2021C语言上机题库C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:B输出格式:26#includeintmain(void){charch;intsum;ch=getchar();sum=ch-'A'+10+15;printf("%d\n",sum);return0;}3.12输入三个整数,求其平均值。输入格式:357输出格式:5#includeintmain(void){inta,b,c,aver;...

C语言上机题库
RevisedbyPetrelat2021C语言上机题库C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:B输出格式:26#includeintmain(void){charch;intsum;ch=getchar();sum=ch-'A'+10+15;printf("%d\n",sum);return0;}3.12输入三个整数,求其平均值。输入格式:357输出格式:5#includeintmain(void){inta,b,c,aver;scanf("%d%d%d",&a,&b,&c);aver=(a+b+c)/3;printf("%d\n",aver);return0;}3.13根据c=5/9*(f-32)公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。输入格式:80.0输出格式:26.67#includeintmain(void){floatf,c;scanf("%f",&f);c=5.0/9*(f-32);printf("%.2f\n",c);return0;}3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1+3+5+7=16。输入格式:1357输出格式:16#includeintmain(void){intnum;inta,b,c,d,total;scanf("%d",&num);a=num/1000;b=(num-a*1000)/100;c=(num-a*1000-b*100)/10;d=num-a*1000-b*100-c*10;total=a+b+c+d;printf("%d\n",total);return0;}3.15输入一大写字母,输出对应的小写字母。输入格式:A输出格式:a#includeintmain(void){charc1,c2;scanf("%c",&c1);c2=c1+32;printf("%c",c2);}3.16输入两个整数分别赋值给变量a和b,将a和b的值互换,输出a、b的值。输入格式:35输出格式:53#includeintmain(void){inta,b,temp;scanf("%d%d",&a,&b);temp=a;a=b;b=temp;printf("%d%d",a,b);return0;}3.21输入一小写字母,输出对应的大写字母。输入格式:b输出格式:B#includeintmain(void){charch;ch=getchar();putchar(ch-32);putchar('\n');}3.22输入任意四位整数,以反序的方式输出该整数。例如:输入1234,输出4321输入格式:1357输出格式:7531#includeintmain(void){charc1,c2,c3,c4;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);printf("%c%c%c%c\n",c4,c3,c2,c1);}3.23输入两个电阻值,求它们并联和串联的电阻值,结果保留两位小数。并联和串联的电阻值的计算公式为:并联电阻:PR=(R1*R2)/(R1+R2)串联电阻:RS=R1+R2输入格式:35输出格式:1.888.00#includeintmain(void){doubler1,r2,pr,rs;scanf("%lf%lf",&r1,&r2);pr=(r1*r2)/(r1+r2);rs=r1+r2;printf("%.2f%.2f\n",pr,rs);return0;}3.24使用getchar函数分别输入两个字符变量c1和c2,要求c1、c2均是字符'0'到'9'中的一个字符。将c1、c2中的值转换成相应的数字,如将字符'1'转换为数字1,并输出这两个数相加的结果。输入格式:26输出格式:8#includeintmain(void){charc1,c2;c1=getchar();c2=getchar();c1=c1-48;c2=c2-48;printf("%d\n",c1+c2);return0;}3.25输入梯形的上下底边长度和高,计算梯形的面积,保留一位小数。计算梯形面积的公式如下:S=h*(a+b)/2输入格式:354输出格式:16.0#includeintmain(void){inta,b,h;floatS;scanf("%d%d%d",&a,&b,&h);S=h*(a+b)/2.0;printf("%.1f",S);return0;}3.26输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。已知圆周率为3.14159。输入格式:5.0输出格式:31.4278.54#includevoidmain(){doubler,l,s;scanf("%lf",&r);l=2*3.14159*r;s=3.14159*r*r;printf("%.2f%.2f\n",l,s);}4.1输入整数a和b,如果a^2+b^2大于100,则输出a+b的值;否则,输出a-b的值。输入格式:35输出格式:-2#includevoidmain(){inta,b;scanf("%d%d",&a,&b);if(a*a+b*b>100)printf("%d\n",a+b);elseprintf("%d\n",a-b);}4.2输入整数n,如果n既是5的整倍数又是7的整倍数,则输出yes;否则输出no。输入格式:35输出格式:Yes#includevoidmain(){intn;scanf("%d",&n);if(n%5==0&&n%7==0)printf("yes\n");elseprintf("no\n");}4.3商场为促销实行打折销售商品,假定商品价格为p元,编程计算某顾客购买x件商品的应付金额,保留一位小数。先输入价格p,再输入购买的件数x。计算公式sum=p*x*(1-d)其中,sum为应付金额,d为折扣(x<5时:d=0;5<=x<10时:d=1%;10<=x<21时:d=2%;21<=x<30时:d=4%;30<=x时:d=6%;)。输入格式:9.915输出格式:145.5#includevoidmain(){intx;floatp,sum,d;scanf("%f%d",&p,&x);if(x<5)d=0;elseif(x<10)d=0.01;elseif(x<21)d=0.02;elseif(x<30)d=0.04;elsed=0.06;sum=p*x*(1-d);printf("%.1f",sum);}4.4输入'0'~'9'或'a'~'f'或'A'~'F'中的一个字符,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:6输出格式:21#includevoidmain(){charch;ch=getchar();if(ch>='0'&&ch<='9')printf("%d\n",ch-'0'+15);elseif(ch>='A'&&ch<='F')printf("%d\n",ch-'A'+10+15);elseif(ch>='a'&&ch<='f')printf("%d\n",ch-'a'+10+15);elseprintf("IaputError!!\n");}4.5已知一张如下所示的时间表:***************Time***************1morning2afternoon3night**********************************Pleaseinputyourchoice:根据输入的序号显示相应的问候信息:输入1时,输出Goodmorning;输入2时,输出Goodafternoon;输入3时,输出Goodnight;对于其他的输入,则输出error。输入格式:2输出格式:Goodafternoon#includeintmain(void){intchoice;scanf("%d",&choice);switch(choice){case1:printf("Goodmorning\n");break;case2:printf("Goodafternoon\n");break;case3:printf("Goodnight\n");break;default:printf("error\n");}}4.6输入3个整数,要求按从小到大的顺序输出。输入格式:531输出格式:135#includeintmain(void){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;}4.7输入两个实数和一个算术运算符(+,-,*,/),根据运算符执行相应的运算并输出运算结果,保留一位小数。(提示:运算符先输入,两个实数后输入)输入格式:+1.52.1输出格式:3.6#includeintmain(void){doublea,b;charop;scanf("%c%lf%lf",&op,&a,&b);if(op=='+')printf("%.1f\n",a+b);elseif(op=='-')printf("%.1f\n",a-b);elseif(op=='*')printf("%.1f\n",a*b);elseprintf("%.1f\n",a/b);return0;}4.8输入3个整数,要求按从大到小的顺序输出。输入格式:135输出格式:531#includeintmain(void){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(aintmain(void){intnum1,num2,t,i,sum=0;scanf("%d%d",&num1,&num2);if(num1>num2){t=num1;num1=num2;num2=t;}if(num1%2==0)num1++;for(i=num1;i<=num2;i+=2)sum+=i;printf("%d",sum);}5.12输入10个分数(浮点型),去掉最高分和最低分后求平均分,保留一位小数。输入格式:0123456789输出格式:4.5#includevoidmain(){inti;doublesum=0,a,max,min;scanf("%lf",&a);sum=max=min=a;for(i=1;i<=9;i++){scanf("%lf",&a);if(maxa)min=a;sum=sum+a;}sum=sum-max-min;printf("%.1f",sum/8);}5.13输入n,求1*2*3*...*n的值。输入格式:10输出格式:3628800#includeintmain(void){inti,n,k=1;scanf("%d",&n);for(i=1;i<=n;i++)k=k*i;printf("%d",k);}5.14根据用户输入的正整数a(1~9)和正整数n,求a+aa+...+aa...a(n个a)的值。例如,当用户输入a为6,n为5时,结果为74070。输入格式:65输出格式:74070#includevoidmain(){inta,n,i,t;longintsum=0;scanf("%d%d",&a,&n);t=a;for(i=1;i<=n;i++){sum=sum+t;t=t*10+a;}printf("%d",sum);}5.15已知函数头为voidavg(void),函数avg的功能:输入10个分数(浮点型),去掉最高分和最低分,求平均分,保留一位小数。编写main函数并调用函数avg。输入格式:0123456789输出格式:4.5#includevoidavg(void){inti;floatsum,n,max,min,aver;scanf("%f",&n);max=min=n;sum=n;for(i=2;i<=10;i++){scanf("%f",&n);max=(max>n)max:n;min=(minvoidmain(){inti,flag=1,n;doublesum=0;scanf("%d",&n);for(i=1;i<=n;i++){sum+=1.0/i*flag;flag=-flag;}printf("%.2f\n",sum);}5.21输入n,求1!+2!+3!+...+n!的值。输入格式:10输出格式:4037913#includeintmain(void){intsum=0,i,n,s=1;scanf("%d",&n);for(i=1;i<=n;i++){s*=i;sum+=s;}printf("%d\n",sum);}5.22根据用户输入的正整数n,求2/1+3/2+5/3+8/5+13/8+...的前n项之和。保留两位小数。输入格式:2输出格式:3.50#includevoidmain(void){inta=1,b=2,c,i,n;doubled,sum=0;scanf("%d",&n);for(i=1;i<=n;i++){d=1.*b/a;sum+=d;c=a+b;a=b;b=c;}printf("%.2f",sum);}5.23根据用户输入的正整数n,求1-2/3+3/5-4/7+5/9-6/11+...的前n项之和。保留两位小数。输入格式:2输出格式:0.33#includeintmain(void){inti,n,flag=1;doublesum=0;scanf("%d",&n);for(i=1;i<=n;i++){sum+=flag*1.0*i/(2*i-1);flag=-flag;}printf("%.2f\n",sum);return0;}5.24根据用户输入的正整数n,求数列1,2,3,5,8,13,21,34,...中第n项的值。输入格式:25输出格式:121393#includeintmain(void){inta=1,b=2,c,n,i;scanf("%d",&n);for(i=3;i<=n;i++){c=a+b;a=b;b=c;}printf("%d\n",c);return0;}5.25输入一行字符,统计其中英文字母、数字字符、空格和其他字符的个数。输入格式:kf3f5;p08d?^@输出格式:5424#includeintmain(void){charc;inteng=0,dig=0,space=0,others=0;scanf("%c",&c);while(c!='\n'){if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))eng++;elseif(c>='0'&&c<='9')dig++;elseif(c=='')space++;elseothers++;scanf("%c",&c);}printf("%d%d%d%d\n",eng,dig,space,others);return0;}5.26根据用户输入的正整数n,输出数列0,1,2,3,6,11,20,37,68,...中第n项的值。输入格式:4输出格式:3#includevoidmain(){inti,a=0,b=1,c=2,d,n;scanf("%d",&n);for(i=4;i<=n;i++){d=a+b+c;a=b;b=c;c=d;}printf("%d\n",d);}5.31输入若干整数,以-1结束,去掉最大值和最小值,求平均值,保留一位小数。输入格式:13579-1输出格式:5.0#includevoidmain(){intscore;doublesum=0,n=0,avg,max,min,b;scanf("%d",&score);max=min=b=score;while(score!=-1){if(score>max)max=score;if(scoreintmain(void){inti,m,n,temp,maxgy;scanf("%d%d",&m,&n);if(m>n){temp=m;m=n;n=temp;}for(i=m;i>=1;i--)if(m%i==0&&n%i==0){maxgy=i;break;}printf("%d\n",maxgy);return0;}5.33输入两个正整数,求最小公倍数。输入格式:515输出格式:15#includeintmain(void){inti,m,n,temp,maxgy;scanf("%d%d",&m,&n);if(mmain(void){intn,sum=0,k=0;scanf("%d",&n);while(n){n/=10;k++;}printf("%d\n",k);}5.35输入一个正整数n,判断n是否为回文数。所谓回文数,是从左到右读这个数和从右到左读这个数是一样的。例如,98789是回文数。如果是,输出"yes";如果不是,则输出"no"。输入格式:输出格式:Yes#includemain(void){intn,m,sum=0,k=0;scanf("%d",&n);m=n;while(m){sum=sum*10+m%10;m/=10;}if(sum==n)printf("yes");elseprintf("no");}5.36根据输入的行数输出图案。例如,输入的行数为7,则输出如下图所示的图案(注:星号之间没有空格)。*************************输入格式:5输出格式:*************#includevoidmain(){inti,j,n;scanf("%d",&n);for(i=-n/2;i<=n/2;i++){for(j=1;j<=abs(i);j++)printf("");for(j=1;j<=n-2*abs(i);j++)printf("*");printf("\n");}}6.11输入10个数到数组t中,求最小值及最小值在数组t中的下标。输入格式:9753102468输出格式:05#includevoidmain(){intx[10],i,min,j,k;for(i=0;i<10;i++)scanf("%d",&x[i]);min=x[0];k=0;for(j=1;j<10;j++)if(min>x[j]){min=x[j];k=j;}printf("%d%d\n",min,k);}6.12输入10个数到数组t中,再输入x,如果有与x相等的数组元素,输出该数组元素的下标;否则,输出-1。输入格式:97531024685输出格式:2#includevoidmain(){intt[10],i,x,flag=0;for(i=0;i<10;i++)scanf("%d",&t[i]);scanf("%d",&x);for(i=0;i<10;i++){if(x==t[i]){flag=1;printf("%d",i);break;}}if(flag==0)printf("-1");}6.13输入10个整数到数组t中,按升序排序,输出下标为6的数组元素。输入格式:9753102468输出格式:6#includeintmain(void){intt[10],i,j,temp;for(i=0;i<10;i++)scanf("%d",&t[i]);for(i=1;i<10;i++)for(j=0;j<10-i;j++)if(t[j]>t[j+1]){temp=t[j];t[j]=t[j+1];t[j+1]=temp;}printf("%d",t[6]);return0;}6.14输入九个整数到数组t中数组长度为奇数,将数组t中的数组元素倒置,输出倒置以后下标为5的数组元素。例如,数组t中九个数组元素依次为2、4、6、8、9、7、5、3、1,倒置以后九个数组元素依次为1、3、5、7、9、8、6、4、2,下标为5的数组元素为8。已知变量声明和数组声明为“inti,tmp,t[9];”,要求不再声明其他的变量或数组。输入格式:975312468输出格式:3#includeintmain(void){inti,tmp,t[9];for(i=0;i<9;i++)scanf("%d",&t[i]);for(i=0;i<9/2;i++){tmp=t[i];t[i]=t[8-i];t[8-i]=tmp;}printf("%d\n",t[5]);return0;}6.15求3行5列二维数组中每列数组元素的最小值,并输出列下标为3的这一列的最小值。输入格式:-3-1-5-7-9-8-6-4-2-8-2-3-4-5-6输出格式:-7#includeintmain(void){inti,j,t[3][5],max;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf("%d",&t[i][j]);max=t[0][3];for(i=1;i<3;i++)if(max>=t[i][3])max=t[i][3];printf("%d",max);return0;}6.16求3行5列二维数组中的最小值,及最小值在数组中的行号和列号,并输出。输入格式:315798642013-131输出格式:-122#includeintmain(void){inti,j,t[3][5],max,m,n;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf("%d",&t[i][j]);max=t[0][0];for(i=0;i<3;i++)for(j=0;j<5;j++)if(max>t[i][j]){max=t[i][j];m=i;n=j;}printf("%d%d%d",max,m,n);return0;}6.21输入10个数到数组t中,求最大值及最大值在数组t中的下标。输入格式:9753102468输出格式:90#includevoidmain(){inti,a,m,t[10],max;for(i=0;i<10;i++)scanf("%d",&t[i]);max=t[0];a=0;for(m=1;m<10;m++)if(maxintmain(void){inta[6],i,min;scanf("%d",&a[0]);min=a[0];for(i=1;i<6;i++){scanf("%d",&a[i]);min=(minintmain(void){intt[10],i,temp;for(i=0;i<10;i++)scanf("%d",&t[i]);for(i=0;i<10/2;i++){temp=t[i];t[i]=t[10-1-i];t[10-1-i]=temp;}printf("%d\n",t[5]);return0;}6.26已知数组声明为"inta[10]={0,10,20,30,40,50,60,70,80,90};",10个数组元素是按升序排列的。输入一个整数n,如果没有与n相等的数组元素,输出-1;否则,删除与n相等的数组元素,要求剩余的九个数组元素是按升序排列的,输出下标为6的数组元素。输入格式:100输出格式:-1#includeintmain(void){inta[10]={0,10,20,30,40,50,60,70,80,90};intn,i,flag=1;scanf("%d",&n);for(i=0;i<10;i++)if(n==a[i]){flag=0;break;}if(flag==1)printf("-1\n");else{for(;i<10;i++)a[i]=a[i+1];printf("%d\n",a[6]);}return0;}6.31求3行5列二维数组中每列数组元素的最大值,并输出列下标为3的这一列的最大值。输入格式:-3-1-5-7-9-8-6-4-2-8-2-3-4-5-6输出格式:-2#includeintmain(void){inti,j,t[3][5],max;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf("%d",&t[i][j]);max=t[0][3];for(i=1;i<3;i++)if(max<=t[i][3])max=t[i][3];printf("%d\n",max);return0;}6.32判断数组s中的字符串是不是回文。一个字符串从左向右读和从右向左读是一样的,该字符串是回文。例如,字符串"abcdedcba"是回文。如果是,输出"yes";如果不是,则输出"no"。chars[80];gets(s);输入格式:abcdcba输出格式:Yes#include#includeintmain(void){chars[80];inti,t,flag=1;gets(s);t=strlen(s);for(i=0;iintmain(void){inti,t[6],max;for(i=0;i<6;i++)scanf("%d",&t[i]);max=t[0];for(i=1;i<6;i++)if(maxintmain(void){inti=0:chars1[80],s2[80];printf("输入一个字符串");gets(s1);while(s1[i]!='10'){s2[i]=s1[i];i++;}s2[i]='!0';printf("复制的字符串为");puts(s2);return0;}6.35求3行5列二维数组中的最大值,及最大值在数组中的行号和列号,并输出。输入格式:-3-1-5-7-9-8-6-4-2-8-2-3-4-5-6输出格式:-101#includeintmain(void){inti,j,t[3][5],max,m,n;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf("%d",&t[i][j]);max=t[0][0];for(i=0;i<3;i++)for(j=0;j<5;j++)if(maxintmain(void){intt[10],i,tmp;for(i=0;i<10;i++)scanf("%d",&t[i]);for(i=0;i<5;i++){tmp=t[i];t[i]=t[9-i];t[9-i]=tmp;}printf("%d\n",t[5]);return0;}
本文档为【C语言上机题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
超龙
人民教师
格式:doc
大小:1MB
软件:Word
页数:0
分类:企业经营
上传时间:2021-08-29
浏览量:3