C语言上机题库_第1页
C语言上机题库_第2页
C语言上机题库_第3页
C语言上机题库_第4页
C语言上机题库_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言习题集3.11输入冏F*中的一个字母,代表一个十六进制数将,其转换为十进制数,求该数与15的和并输出。输入格式:B输出格式:26#include<stdio.h>intmain(void){charch;intsum;ch=getchar();sum二ch」A'+10+15;printf("%d\njsum);return0;}3.12输入三个整数,求其平均值。输入格式:357输出格式:5#inelude<stdio.h>intmain(void){inta,b»,caver;scanf("%d%d%$&a,&b”&c);aver=(a+b+c)/3;printf?”d\rTaveij;return0;}3.13根据c=5/9*(f-3公式,输入华氏温度f求摄氏温度c,结果精确到小数点后两位。输入格式:80.0输出格式:26.67#include<stdio.h>intmain(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#include<stdio.h>intmain(void){intnum;inta,be,d,total;scanf,%d"/&num);a=num/10;b=(num-a*10)/1;c=(num-a*10-b*1)/10;d=num-a*10-b*1-c*10;totalsa+b+c+d;printf(d\n,/total);return0;}3.15输入一人写字母,输出对应的小写字母。输入格式:A输出格式:a#include<stdio.h>intmain(void){charcl,c2;scanf("%cj&cl);c2=cl+32;printf(c,’c2);}3.16输入两个整数分别赋值给变量a和b,将a和b的值互换,输出a、b的值。输入格式:35输出格式:53#inelude<stdio.h>intmain(void)intabtemp;scanfi%d%d,,&a/&b);temp=a;a=b;b=temp;printf("%d%dqb);return0;}3.21输入一小写字母,输出对应的大写字母。输入格式:b输出格式:B#include<stdio.h>intmain(void)(charch;ch=getchar();putchar(ch-32);putchar、(n');}3.22输入任意四位整数,以反序的方式输出该整数。例如:输入1234,输出4321输入格式:1357输出格式:7531#include<stdio.h>intmain(void)(charc&2,c/t4;scanf)c%c%c%c,/&cl&c2&c3,&c4);/ /printf%c%c%c%c\nHc4c3c2cl);/ / / /

}3.23输入两个电阻值,求它们并联和串联的电阻值,结呆保留两位小数。并联和串联的电阻值的计算公式为:并联电阻:PR=(R1*R2)/(R1+R2)串联电阻:RS二R1+R2输入格式:35输出格式:1.888.#inelude<stdio.h>intmain(void)(doublerl,r2,pcrs;scanf,%lf%lf,&rl,&r2);pr=(rlr2)/(rl+r2);rs=rl+r2;printf(.2f%.2f、npr,rs);return0;}3.24使用getchar函数分别输入两个字符变量cl和c2,要求c、c2均是字符'0到9中的一个字符。将cl、c2中的值转换成相应的数字,如将字符T转换为数字1,并输出这两个数相加的结果。输入格式:26输出格式:8#include<stdio.h>intmain(void)(char甲2;cl=getchar();c2=getchar();cl=cl-48;c2=c2-48;printf(d\n"cl+c2);/return0;}3.25输入梯形的上卞底边长度和高,计算梯形的面积,保留一位小数。计算梯形面积的公式如下:S=h*(a+b)/2输入格式:354输出格式:16.0#include<stdio.h>intmain(void)(inta,b,h;floatS;scanf,%d%d%d,,&a/&b/&h);S=h*(a+b)/2.0;printf("%,,Sf;return0;}3.26输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。已知圆周率为3.14159。输入格式:5.0输出格式:31.4278.54#include<stdio.h>voidmain()(doublecLS;scanf(%lf”,&r);l=2*3.14159*r;s=3.14159*r*r;printf%.2f%.2f\n"s);}4.1输入整数a和b,如果aA2+b2大于1,则输出a+l的值;否则,输出a-的值。输入格式:35输出格式:-2#include<stdio.h>voidmain()(inta,b;scanf,%d%d,,&a/&b);

if(a*a+b*b>1)printf('%d\na+b);elseprintf("%d\n",a-b);}4.2输入整数n,如果n既是5的整倍数又是7的整倍数,则输yes;否则输出no。输入格式:35输出格式:Yes#inelude<stdio.h>voidmain()(intn;scanf(%“d“,&n);if(n%5==0&&n%7==0)printf(es\m);elseprintf("no\n")}4.3商场为促销实行打折销售商品,假定商品价格为p元,编程计算某顾客购买x件商品的应付金额,保留一位小数。先输入价P,再输入购买的件数X。计算公式sum=p*x*(1-其)中,sum为应付金额,d为折扣(x<5时:d=0;5<=x<10时:d=l%;10<=x<21时:d=2%;21<=x<30时:d=4%;30<=x时:d=6%;)o输入格式:9.915输出格式:145.5#include<stdio.h>voidmain()(intx;floatp,sumdscanf,(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*(l-d);}4.4输入09或3f或,A~F中的一个字符,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:输出格式:21#include<stdio.h>voidmain()(charch;ch=getchar();if(ch>=,&&ch<='9‘printf(d\n,/ch-0'+15);elseif(ch>='A'&&ch<='F)p%d\nf夕h-A,+10+15);elseif(ch>=&ch<=,f)prinJ%d\n,,ch-a'+10+15);elseprintflaputError!M)n4.5已知一张如下所示的时间表:morningafternoon3nightPleaseinputyourchoice:根据输入的序号显示相应的问候信息:输入1时,输出Goodmorning;输入2时,输出Goodafternoon输入3时,输Goodnight对于其他的输入,则输出erroro输入格式:2输出格式:Goodafternoon#include<stdio.h>intmain(void)(intchoice;scanf,%d"/&choice);switch(choice)(casel:printf("GoodmornH)gbneak;case2:printf("Goodafternoon\n");break;case3:printf("Goodnightbreak;

default:prinerror\m);}}4.6输入3个整数,要求按从小到大的顺序输出。输入格式:531输出格式:135#include<stdio.h>intmain(void)(inta,bc,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\,nab,c);zreturn0;}4.7输入两个实数和一个算术运算符/),根据运算符执行相应的运算并输出运算结果,保留一位小数。(提示:运算符先输入,两个实数后输入)输入格式:+1.52.1输出格式:3.6#include<stdio.h>intmain(void){doublea,b;charop;scanf("%c%lf%J&op/&a/&b);*A**A**A**A**A**A**A**A**A**A**A**A**A**A* j-jAgj|c*He************不不不不不不不不不不不不不不if(op==)prinf.(lf\r/a+b);elseif(oQ==prinf.(lf\n/a-b);elseif(op==printf(.lf\ga*b);elseprin,tflf\na/b);return0;}输出格式:4.8输入3个整数,要求按从大到小的顺序输出。输入格式:4.5135include<stdio.h>输出格式:voidmain()531{int;i#include<stdio.h>doublesum=0,Zmaxzmin;intmain(void){inta,b,tc;z,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\nabc);return0;}5.11编写程序,接收两个整数numl和num2,找出这两个数之间所有奇数的和。输入格式:11输出格式:25#include<stdio.h>intmain(void){intnumlAnum2tisum=0;///scanf,%d%d,,&numl,&num2);讦(numl>num2){t=numl;num二num2;num2=t;}if(numl%2==0)numl++;for(二numl;i<=num2;i+=2)sum+=i;printf(d,,sum);}5.12输入10个分数(浮点型),去掉最高分和最低分后求平均分,保留一位小数。输入格式:0123456789

scanf(%Tf“,&a);sum=max=min二a;for(i=l;i<=9;i++){scanf%'lf”,&a);if(max<a)max=a;if(min>a)min=a;sum=sum+a;}sum=sum-max-min;printf(.lf,sum/8);}5.13输入n,求1*2*3*..的值n输入格式:10输出格式:36288#include<stdio.h>intmain(void){intbik=l;zscanf(%d”,&n);for(i=l;:!<n;i++)k=k*i;printf%'d”,k);}5.14根据用户输入的正整数a(l~9和正整数n,求a+aa.aa...a个a)的值。例如,当用户输入a为6,i为5时,结果为7407输入格式:65输出格式:74070#inelude<stdio.h>voidmain(){intznazt;longintsum=0;scanf,%d%d,,&a/&n);t=a;for(i=l;:!<n;i++){sum=sum+t;t=t*10+a;}printf(d,,sum);}5.15已知函数头为voidavg(voi函数avg的功能:输入10个分数(浮点型),去掉最高分和最低分,求平均分,保留一位小数。编写main函数并调用函数avg。输入格式:0123456789输出格式:4.5#include<stdio.h>voidavg(void){inti;floatsum,n,max,minever;scanf,%f,,&n);max=min二n;sum=n;for(i=2;i<=10;i++){scanf"%化&n);max=(max>n)?max:n;min=(min<n)?min:n;sum+二n;}aver=(sum-max-min)/&printf(.lf\,naver);}5.16根据用户输入的正整数n,求1-1/2+1/3-1/4+...+((-l)n+l))/的值。保留两位小数。输入格式:2

输出格式:0.50#include<stdio.h>+voidmain(){inti,flag=l,n;doublesum=0;scanf(%d",&n);for(i=l;i<=n;i++){sum+=1.0/i*flag;flag=-flag;}printf(.2f\n,/sum);}5.21输入n,求l!+2!+3!++n的值。输入格式:10输出格式:4037913#include<stdio.h>intmain(void){intsum=0J,n,s=l;scanf("%cT&n);for(i=l;i<=n;i++)s*=i;sum+=s;}printf("%d\:Vsum);}5.22根据用户输入的正整数n,求2/1+3/2+5/3+8/5+13/8・的前n项之和。保留两位小数。+输入格式:2输出格式:3.50#inelude<stdio.h>voidmain(void)(inta=1,2b=,i,n;doubled,sum=0;scanf("%d”,&n);for(i=1;i<=n;i++){d=l.*b/a;sum+=d;c=a+b;a=b;b=c;}printf盼2f:sum);}5.23根据用户输入的正整数n,求].2/3+3/5-4/7+5/9-6/11+.的.前n项之和。保留两位小数。输入格式:2输出格式:0.33#include<stdio.h>intmain(void){inti,n,flag=l;doublesum=0;scanf(%d",&n);for(i=l;*<n;i++){sum+=flag*1.0*i/(2*i-l);flag=-flag;}printf(.2f\n,sum);return0;}5.24根据用户输入的正整数n,求数列1,2,3,5,&13,21,中第n项的值。输入格式:25输出格式:121393include<stdio.h>intmain(void){inta=1,2b,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?输出格式:5424include<stdio.h>intmain(void){charc;inteng=0,dig=0,spac/o4hers=0;scanf(''%c&c);while(c!=n‘{if((c,a=&&c<=,z')||(c>='A'&&c<='Z'))eng++;elseif(c>"&&c<='9')dig++;elseif(c==*')space++;elseothers++;scan(%c%,&c);}printf("%d%d%d%d\笃eng’dig,space,others);return0;}5.26根据用户输入的正整数n,输出数列0,1,2,3,6,11,20,37,6…,中第n项的值。输入格式:4343输出格式:3#include<stdio.h>voidmain(){inti,/a=b>bc=2dn;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输出格式:5.0#inelude<stdio.h>voidmain(){intscore;doublesum=0,n=0avg”max,minb;scanf,%d,/&score);max=min二b二score;while(score!=-l){if(score>max)max=score;if(score<min)min=score;sum+=score;n++;scanf%d,,&score);}avg=(sum-max-min)/(n-;print%(”lf\navg);}5.32输入两个正整数,求最人公约数。输入格式:5输出格式:5#inelude<stdio.h>intmain(void){intimn,temp,maxgy;scanf,(d%d"/&m”&n);if(m>n){temp=m;m=n;n=temp;}for(i=m;i>=l;i-if(m%i==0&&n%i==0){maxgy=i;break;}printf(d\n,,maxgy);return0;

}5.33输入两个正整数,求最小公倍数。输入格式:515输出格式:15include<stdio.h>intmain(void){intimnemp,maxgy;zscanf,(d%d,/&FTL&n);if(m<n){temp=m;m=n;n=temp;}for(i=m;;i++)i(i%m==0&&i%n==0){maxgy=i;break;}printf(d\n,,maxgy);return0;}5.34输入一个正整数n,求n是几位数。输入格式:1357输出格式:include<stdio.h>main(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”。输入格式:输出格式:Yesinclude<stdio.h>main(void){intsum=0,k=0;scanf(%“d",&n);m二n;while(m){sum=sum*10+m%10;m/=10;}if(sum==n)printfC'yes");elseprintf("nq")}5.36根据输入的行数输出图案。例如,输入的行数为7,则输出如下图所示的图案(注:星号之间没有空格)。输入格式:输出格式:********include<stdio.h>voidmain()(inti,j,n;scanf(”%d”,&n);for(i=-n/2;i<=n/2;i++)(for(j=l;j<=abs(i);j++)printfC");for(j=l;j<=n-2*abs(i);j++)printf("")printfCV)}}6.11输入10个数到数组t中,求最小值及最小值在数组t中的下标。输入格式:9753102468输出格式:05#inelude<stdio.h>voidmain()(intx[10]minjk;for(i=0;i<10;i++)scanf("%d",&x[i]);min=x[0];k=0;for(j=l;j<10;j++)if(min>x[j])(min=x[j];k=j;}printf(d%d\n,/min,k);}6.12输入10个数到数组t中,再输入乂,如果有与x相等的数组元素,输出该数组元素的下标;否则,输出输入格式:97531024685输出格式:2#include<stdio.h>voidmain()(intt[10]jx,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=;lprintf(dl,i);break;}}if(flag==O)printf)C'T}6.13输入10个整数到数组t中,按升序排序,输出卞标为6的数组元素。输入格式:9753102468输出格式:6#include<stdio.h>intmain(void)(intjtemp;for(i=0;i<10;i++)scanf吆d”,&t[i]);for(i=l;i<10;i++)for(j=0;j<10-i;j++)if(t[j]>t[j+l])(temp=t[j;]tU]=tO+i];t[j+l]=temp;}printf("%壮[6]);return0;}6.14输入九个整数到数组t中数组长度为奇数,将数组t中的数组元素倒置,输出倒置以后下标为5的数组元素。例如,数组t中九个数组元素依次为2、4、6、8、9、7、5、3、1,倒置以后九个数组元素依次为]、3、5、7、9、8、6、4、2,下标为5的数组元素为8。已知变量声明和数组声明为"inti,tmp,t[9]要求不再声明其他的变量或数组。输入格式:975312468输出格式:3#include<stdio.h>intmain(void)(inttimp,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\rft[5]);return0;}6.15求3行5列二维数组中每列数组元素的最小值,并输出列下标为3的这一列的最小值。输入格式:-359-84835-6输出格式:-7#include<stdio.h>intmain(void){inti⑶t5),max;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf(%d”,&t[i][j]);max=t[0][3];for(i=l;i<3;i++)if(max>=t[i][3])max=t[i][3];printf("%cT,max);return0;}6.16求3行5列二维数组中的最小值,及最小值在数组中的行号和列号,并输出。

输入格式:315798642013-131输出格式:-122#include<stdio.h>intmain(void){inj,it[5)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=t;n}printf("%d%d*%dnax/m/n);return0;}6.21输入10个数到数组t中,求最人值及最人值在数组t中的下标。输入格式:9753102468输出格式:90#include<stdio.h>voidmain(){inti,amt[10],max;for(i=0;i<10;i++)scanf(%d",&t[i]);max=t[0];a=0;for(m=l;m<10;m++)if(max<t[m]){max=t[m];a=m;}printf(d%d,’max/a);}6.22输入10个整数到数组t中,按降序排序,输出卞标为的数组元素。输入格式:9753102468输出格式:4voidmain(){inta我t[10];for(a=0;a<10;a++)scanffAdA&tla]);for(a=l;a<10;a++)for(b=0;b<10-a;b++)if+(]t)[b]<t[b{k=t[b];t[b]=t[b+l];t[b+l]=k;}printffAdM5));}6.23输出数组s中字符串的子串,子串从s[begin开始,长度为lenchars[80];intbeginlen;gets(s);scanf,%d%d,/&begin,&len);输入格式:howdoyoudo?49输出格式:doyoudointmain(void){chars[80];intbegin,len;zgets(s);scanf,%d%d,/&begin,&len);for(i=begin;i<begin+len;i++)printf("%舄s[i]);return0;}6.24输入6个整数到数组t中,求最小值。输入格式:975310输出格式:

0#include<stdio.h>intmain(void){inta[6],i,min;scanf(%d",&a[0]);min=a[0];for(i=l;i<6;i++){scanf(%(r:&a[i]);min=(min<a[i])?min:a[i];}printf(d\n,jmin);return0;6.25输入10个整数到数组t中数组长度为偶数,将数组t中的数组元素倒置,输出倒置以后卞标为5的数组元素。例如,数t中10个数组元素依次为1、3、5、7、9、8、6、4、2、0,倒置以后10个数组元素依次为0、2、4、6、8、9、7、5、3、1,下标为5的数组元素为9。已知变量声明和数组声明为“inti,tmp,t[10要求不再声明其他的变量或数组。输入格式:9753102468输出格式:1#include<stdio.h>intmain(void){intt[10tdmp;for(i=0;i<10;i++)scanf(%d%,&t[i]);for(i=0;i<10/2;i++){temp=t[i];t[i]=t[10-l-i];t[10-l-i]=temp;}printf(d\n,,t[5]);return0;}6.26己知数组声明为“inta[10]=0,{020,30,40,50,60,70,80,90},;20个数组元素是按升序排列的。输入一个整n,如果没有与n相等的数组元素,输出-1;否则,删除与n相等的数组元素,要求剩余的九个数组元素是按升序排列的,输出下标为6的数组元素。输入格式:1输出格式:-1#include<stdio.h>intmain(void){inta[10]={0,10,20,30,40,50,60,70,80,90};intn,i,flag=l;scanf(%d”,&n);for(i=0;i<10;i++)if(n==a[i]){flag=O;break;}if(flag==l)printfC'-lXn");else{for(;i<10;i++)a[i]=a[i+l];printf盼d\n",a[6]);}return0;}6.31求3行5列二维数组中每列数组元素的最人值,并输出列下标为3的这一列的最大值。输入格式:-359-84835-6输出格式:-2#include<stdio.h>intmain(void){inti⑶t5),max;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf(%“d",&t[i][j]);max=t[0][3];for(i=l;i<3;i++)if(max<=t[i][3])max=t[i][3];printf(d\n,zmax);

return0;}6.32判断数组s中的字符串是不是回文。一个字符串从左向右读和从右向左读是一样的,该字符串是回文。例如,字符串"abcdedcba'是回文。如果是,输出%yes%如果不是,则输出"no%chars[80];ge

温馨提示

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

评论

0/150

提交评论