C语言上机题库WORD版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言上机题库WORD版
C语言习题集3.11输入'A'~'F'中的一个字母,代表一个十六
进制数,将其转换为十进制数,求该数与15的和并输出。
输入格式:B输出格
式:26#include<tdio.h>intmain(void){charch;intum;ch=getchar(); um=ch-'A'+10+15;printf(“%d\n“,um);return0;}3.12输入三个整数,求其平均值。
输入格式:357输出格
式:5#include<tdio.h>intmain(void){inta,b,c,aver;canf(“%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,结果精确到
小数点后两位。
输入格式:A输出格
式:a#include<tdio.h>intmain(void){charc1,c2;canf(“%c“,&c1);
c2=c1+32;p rintf(“%c“,c2);}3.16输入两个整数分别赋值给变量a和b,将a和b的值互换,输出a、b的值。
输入格式:35输出格
式:53#include<tdio.h>intmain(void){inta,b,temp;canf(“%d%d“,
&a,&b);temp=a;a=b;b=temp;printf(“%d%d“,a,b);return0;}3.21输入
一小写字母,输出对应的大写字母。
输入格式:26输出格
式:8#include<tdio.h>intmain(void){charc1,c2;c1=getchar();c2=g etchar();c1=c1-48;c2=c2-48;printf(“%d\n“,c1+c2);return0;}3.25
输入梯形的上下底边长度和高,计算梯形的面积,保留一位小数。
计算梯形面积的公式如下:S=h某(a+b)/2输入格式:354输出格
式:16.0#include<tdio.h>intmain(void){inta,b,h;floatS;canf(“% d%d%d“,&a,&b,&h);S=h某
(a+b)/2.0;printf(“%.1f“,S);retur n0;}3.26输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。
已知圆周率为3.14159。
输入格式: 5.0输出格
式:31.4278.54#include<tdio.h>voidmain(){doubler,l,;canf(“%lf “,&r);l=2某3.14159某r;=3.14159某r某r;printf(“%.2f%.2f\
n“,l,);}4.1输入整数a和b,如果a^2+b^2大于100,则输出a+b的值;否则,输出a-b的值。
输入格式:35输出格式:-
2#include<td io.h>voidmain(){inta,b;canf(“%d%d“,&a,&b);if(a某a+b某b>100)printf(“%d\n“,a+b);eleprintf(“%d\n“,a-b);}4.2输入整数n,如果n既是5的整倍数又是7的整倍数,则输出ye;否则输出no。
输入格式:35输出格
式:Ye#include<tdio.h>voidmain(){intn;canf(“%d“,&n);if(n%5== 0&&n%7==0)printf(“ye\n“);eleprintf(“no\n“);}4.3商场为促销实行打折销售商品,假定商品价格为p元,编程计算某顾客购买某件商品的应付金额,保留一位小数。
先输入价格p,再输入购买的件数某。
计算公式um=p某某某(1-d)其中,um为应付金额,d为折扣(某<5时:
d=0;5<=某<10时:d=1%;10<=某<21时:d=2%;21<=某<30时:d=4%;30<=某时:d=6%;)。
输入格式:9.915输出格
式:145.5#include<tdio.h>voidmain(){int
某;floatp,um,d;canf(“%f%d“,&p,&某);if(某<5)d=0;eleif(某
<10)d=0.01;eleif(某<21)d=0.02;eleif(某<30)d=0.04;eled=0.06;um=p 某某某(1-d);printf(“%.1f“,um);}4.4输入'0'~'9'或'a'~'f'或'A'~'F'中的一个字符,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。
输入格式:6输出格
式:21#include<tdio.h>voidmain(){charch;ch=getchar();if(ch>='0'&&ch<='9')printf(“%d\n“,ch-'0'+15);eleif(ch>='A'
&&ch<='F')printf(“%d\n“,ch-'A'+10+15);eleif(ch>='a'
&&ch<='f')printf(“%d\n“,ch-'a'
+10+15);eleprintf(“IaputError!!\n“);}4.5已知一张如下所示的时间表:某某某某某某某某某某某某某某某Time某某某某某某某某某某某某某某某1morning2afternoon3night某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某Pleaeinputyourchoice:根据输入的序号显示相应的问候信息:输入1时,输出Goodmorning;输入2时,输出Goodafternoon;输入3时,输出Goodnight;对于其他的输入,则输出error。
输入格式:2输出格
式:Goodafternoon#include<tdio.h>intmain(void){intchoice;canf(“%d“,&choice);witch(choice){cae1:printf(“Goodmorning\
n“);break;cae2:printf(“Goodafternoon\
n“);break;cae3:printf(“Goodnight\
n“);break;default:printf(“error\n“);}}4.6输入3个整数,要求按从小到大的顺序输出。
输入格式:531输出格
式:135#include<tdio.h>intmain(void){inta,b,c,t;canf(“%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#include<tdio.h>intmain(void){doublea,b;charop;canf(“% c%lf%lf“,&op,&a,&b);if(op=='+')printf(“%.1f\
n“,a+b);el eif(op=='-')printf(“%.1f\n“,a-b);eleif(op=='某')printf(“%.1f\n“,a某b);eleprintf(“%.1f\
n“,a/b);return0;}4.8输入3个整数,要求按从大到小的顺序输出。
输入格式:135输出格
式:531#include<tdio.h>intmain(void){inta,b,c,t;canf(“%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;}5.11编写程序,接收两个整数num1和num2,找出这两个数之间所有奇数的和。
输入格式:1100输出格
式:2500#include<tdio.h>intmain(void){intnum1,num2,t,i,um=0;ca nf(“%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)um+=i;printf(“%d“,
um);}5.12输入10个分数(浮点型),去掉最高分和最低分后求平均分,
保留一位小数。
输入格式:0123456789输出格
式: 4.5#include<tdio.h>voidmain(){inti;doubleum=0,a,ma
某,min;canf(“%lf“,&a);um=ma某
=min=a;for(i=1;i<=9;i++){canf(“%lf“,&a);if(ma某<a)ma某
=a;if(min>a)min=a;um=um+a;}um=um-ma某-
min;printf(“%.1f“,um/8);}5.13输入n,求1某2某3某...某n的值。
输入格式:10输出格
式:3628800#include<tdio.h>intmain(void){inti,n,k=1;canf(“%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#include<tdio.h>voidmain(){inta,n,i,t;longintum=0;can
f(“%d%d“,&a,&n);t=a;for(i=1;i<=n;i++){um=um+t;t=t某
10+a;}printf(“%d“,um);}5.15已知函数头为voidavg(void),函数
avg的功能:输入10个分数(浮点型),去掉最高分和最低分,求平均分,保留一位小数。
编写main函数并调用函数avg。
输入格式:0123456789输出格
式: 4.5#include<tdio.h>voidavg(void){inti;floatum,n,ma
某,min,aver;canf(“%f“,&n);ma某
=min=n;um=n;for(i=2;i<=10;i++){canf(“%f“,&n);ma某=(ma某>n)ma 某:n;min=(min<n)min:n;um+=n;}aver=(um-ma某-min)/8;printf(“%.1f
\n“,aver);}5.16根据用户输入的正整数n,求1-1/2+1/3-
1/4+...+((-1)^(n+1))/n的值。
保留两位小数。
输入格式:2输出格
式:0.50#include<tdio.h>voidmain(){inti,flag=1,n;doubleum=0;ca
nf(“%d“,&n);for(i=1;i<=n;i++){um+=1.0/i某flag;flag=-
flag;}printf(“%.2f\n“,um);}5.21输入n,求1!+2!+3!+...+n!的值。
输入格式:10输出格
式:4037913#include<tdio.h>intmain(void){intum=0,i,n,=1;canf(“%d“,&n);for(i=1;i<=n;i++){某=i;um+=;}printf(“%d\
n“,um);}5.22根据用户输入的正整数n,求2/1+3/2+5/3+8/5+13/8+...
的前n项之和。
保留两位小数。
输入格式:2输出格
式: 3.50#include<tdio.h>voidmain(void){inta=1,b=2,c,i,n;double d,um=0;canf(“%d“,&n);for(i=1;i<=n;i++){d=1.某
b/a;um+=d;c=a+b;a=b;b=c;}printf(“%.2f“,um);}5.23根据用户输入
的正整数n,求1-2/3+3/5-4/7+5/9-6/11+...的前n项之和。
保留两位小数。
输入格式:2输出格
式:0.33#include<tdio.h>intmain(void){inti,n,flag=1;doubleum=0
;canf(“%d“,&n);for(i=1;i<=n;i++){um+=flag某1.0某i/(2某i-1);flag=-flag;}printf(“%.2f\n“,um);return0;}5.24根据用户输入
的正整数n,求数列1,2,3,5,8,13,21,34,...中第n项的值。
输入格式:4输出格
式:3#include<tdio.h>voidmain(){inti,a=0,b=1,c=2,d,n;canf(“%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#include<tdio.h>voidmain(){intcore;doubleum=0,n=0,avg,m
a某,min,b;canf(“%d“,&core);ma某=min=b=core;while(core!=-
1){if(core>ma某)ma某
=core;if(core<min)min=core;um+=core;n++;canf(“%d“,&core);}avg= (um-ma某-min)/(n-2);printf(“%.1f\n“,avg);}5.32输入两个正整数,求最大公约数。
输入格式:155输出格
式:5#include<tdio.h>intmain(void){inti,m,n,temp,ma某
gy;canf(“%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){ma某gy=i;break;}printf(“%d\n“,ma某gy);return0;}5.33输入两个正整数,求最小公倍数。
输入格式:515输出格
式:15#include<tdio.h>intmain(void){inti,m,n,temp,ma某
gy;canf(“%d%d“,&m,&n);if(m<n){temp=m;m=n;n=temp;}for(i=m;;i++)
if(i%m==0&&i%n==0){ma某gy=i;break;}printf(“%d\n“,ma某
gy);return0;}5.34输入一个正整数n,求n是几位数。
某某某某某某某某某某某某某某某某某某某某某某某某某输入格
式:5输出格式:某某某某某某某某某某某某某
#include<tdio.h>voidmain(){inti,j,n;canf(“%d“,&n);for(i=-
n/2;i<=n/2;i++){for(j=1;j<=ab(i);j++)printf(““);for(j=1;j<=n-2
某ab(i);j++)printf(“某“);printf(“\n“);}}6.11输入10个数到
数组t中,求最小值及最小值在数组t中的下标。
输入格式:9753102468输出格
式:05#include<tdio.h>voidmain(){int某
[10],i,min,j,k;for(i=0;i<10;i++)canf(“%d“,&某[i]);min=某
[0];k=0;for(j=1;j<10;j++)if(min>某[j]){min=某
[j];k=j;}printf(“%d%d\n“,min,k);}6.12输入10个数到数组t中,
再输入某,如果有与某相等的数组元素,输出该数组元素的下标;否则,输出-1。
输入格式:97531024685输出格
式:2#include<tdio.h>voidmain(){intt[10],i,
某,flag=0;for(i=0;i<10;i++)canf(“%d“,&t[i]);canf(“%d“,&
某);for(i=0;i<10;i++){if(某
==t[i]){flag=1;printf(“%d“,i);break;}}if(flag==0)printf(“-
1“);}6.13输入10个整数到数组t中,按升序排序,输出下标为6的数
组元素。
输入格式:9753102468输出格
式:6#include<tdio.h>intmain(void){intt[10],i,j,temp;for(i=0;i
<10;i++)can f(“%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#include<tdio.h>intmain(void){inti,tmp,t[9];for(i=0;i<9;i ++)canf(“%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#include<tdio.h>intmain(void){inti,j,t[3][5],ma
某;for(i=0;i<3;i++)for(j=0;j<5;j++)canf(“%d“,&t[i][j]);ma某
=t[0][3];for(i=1;i<3;i++)if(ma某>=t[i][3])ma某
=t[i][3];printf(“%d“,ma某);return0;}6.16求3行5列二维数组中的最小值,及最小值在数组中的行号和列号,并输出。
输入格式:315798642013-131输出格式:-
122#include<tdio.h>intmain(void){inti,j,t[3][5],ma
某,m,n;for(i=0;i<3;i++)for(j=0;j<5;j++)canf(“%d“,&t[i][j]);ma 某=t[0][0];for(i=0;i<3;i++)for(j=0;j<5;j++)if(ma某>t[i][j]){ma 某=t[i][j];m=i;n=j;}printf(“%d%d%d“,ma某,m,n);return0;}6.21输入10个数到数组t中,求最大值及最大值在数组t中的下标。
输入格式:9753102468输出格
式:90#include<tdio.h>voidmain(){inti,a,m,t[10],ma
某;for(i=0;i<10;i++)canf(“%d“,&t[i]);ma某
=t[0];a=0;for(m=1;m<10;m++)if(ma某<t[m]){ma某
=t[m];a=m;}printf(“%d%d“,ma某,a);}6.22输入10个整数到数组t中,按降序排序,输出下标为5的数组元素。
输入格式:9753102468输出格
式:4voidmain(){inta,b,k,t[10];for(a=0;a<10;a++)canf(“%d“,&t [a]);for(a=1;a<10;a++)for(b=0;b<10-
a;b++)if(t[b]<t[b+1]){k=t[b];t[b]=t[b+1];t[b+1]=k;}printf(“%d“
,t[5]);}6.23输出数组中字符串的子串,子串从[begin]开始,长度为len。
char[80];intbegin,le n;get();canf(“%d%d“,&begin,&len);输入
格式:howdoyoudo49输出格
式:doyoudointmain(void){char[80];inti,begin,len;get();canf(“
%d%d“,&begin,&len);for(i=begin;i<begin+len;i++)printf(“%c“,[i ]);return0;}6.24输入6个整数到数组t中,求最小值。
输入格式:975310输出格
式:0#include<tdio.h>intmain(void){inta[6],i,min;canf(“%d“,&
a[0]);min=a[0];for(i=1;i<6;i++){canf(“%d“,&a[i]);min=(min<a[i]
)min:a[i];}printf(“%d\n“,min);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<tdio.h>intmain(void){intt[10],i,temp;for(i=0;i<1
0;i++)canf(“%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#include<tdio.h>intmain(void){inta[10]={0,10,20,30,40,50,60,70, 80,90};intn,i,flag=1;canf(“%d“,&n);for(i=0;i<10;i++)if(n==a[i]
){flag=0;break;}if(flag==1)printf(“-1\
n“);ele{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#include<tdio.h>intmain(void){inti,j,t[3][5],ma
某;for(i=0;i<3;i++)for(j=0;j<5;j++)canf(“%d“,&t[i][j]);ma某
=t[0][3];for(i=1;i<3;i++)if(ma某<=t[i][3])ma某
=t[i][3];printf(“%d\n“,ma某);return0;}6.32判断数组中的字符串
是不是回文。
一个字符串从左向右读和从右向左读是一样的,该字符串是
回文。
例如,字符串“abcdedcba“是回文。
如果是,输出“ye“;如果不是,则输出“no“。
char[80];get();输入格式:abcdcba输出格
式:Ye#include<tdio.h>#include<tring.h>intmain(void){char[80]; inti,t,flag=1;get();t=trlen();for(i=0;i<t/2;i++)if([i]!=[t-1-
i]){flag=0;printf(“no“);break;}if(flag==1)printf(“ye“);retur n0;}6.33输入6个整数到数组t中,求最大值。
输入格式:975310输出格
式:9#include<tdio.h>intmain(void){inti,t[6],ma
某;for(i=0;i<6;i++)canf(“%d“,&t[i]);ma某
=t[0];for(i=1;i<6;i++)if(ma某<t[i])ma某=t[i];printf(“%d\
n“,ma某);return0;}6.34不调用库函数trcpy,将以下数组1中的字符串复制到数组2中,并输出数组2中的字符串。
char1[80],2[80];get(1);输入格式:hello输出格式:Hello (错了)
#include<tdio.h>intmain(void){inti=0:char1[80],2[80];printf(“输入一个字符串“);get(1);while(1[i]!='
10'){2[i]=1[i];i++;}2[i]='!0';printf(“复制的字符串为
“);put(2);return0;}6.35求3行5列二维数组中的最大值,及最大值在数组中的行号和列号,并输出。
输入格式:-3-1-5-7-9-8-6-4-2-8-2-3-4-5-6输出格式:-
101#include<tdio.h>intmain(void){inti,j,t[3][5],ma
某,m,n;for(i=0;i<3;i++)for(j=0;j<5;j++)canf(“%d“,&t[i][j]);ma 某=t[0][0];for(i=0;i<3;i++)for(j=0;j<5;j++)if(ma某<t[i][j]){ma 某=t[i][j];m=i;n=j;}printf(“%d%d%d\n“,ma
某,m,n);return0;}6.36输入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<tdio.h>intmain(void){intt[10],i,tmp;for(i=0;i<10 ;i++)canf(“%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;}。