C语言上机题库.docx

上传人:b****5 文档编号:30592459 上传时间:2023-08-18 格式:DOCX 页数:42 大小:21.71KB
下载 相关 举报
C语言上机题库.docx_第1页
第1页 / 共42页
C语言上机题库.docx_第2页
第2页 / 共42页
C语言上机题库.docx_第3页
第3页 / 共42页
C语言上机题库.docx_第4页
第4页 / 共42页
C语言上机题库.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C语言上机题库.docx

《C语言上机题库.docx》由会员分享,可在线阅读,更多相关《C语言上机题库.docx(42页珍藏版)》请在冰豆网上搜索。

C语言上机题库.docx

C语言上机题库

C语言习题集

3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。

输入格式:

B

输出格式:

26

#include

intmain(void)

{

charch;

intsum;

ch=getchar();

sum=ch-'A'+10+15;

printf("%d\n",sum);

return0;

}

3.12输入三个整数,求其平均值。

输入格式:

357

输出格式:

5

#include

intmain(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

#include

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

intmain(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

#include

intmain(void)

{

charc1,c2;

scanf("%c",&c1);

c2=c1+32;

printf("%c",c2);

}

3.16输入两个整数分别赋值给变量a和b,将a和b的值互换,输出a、b的值。

输入格式:

35

输出格式:

53

#include

intmain(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

#include

intmain(void)

{

charch;

ch=getchar();

putchar(ch-32);

putchar('\n');

}

3.22输入任意四位整数,以反序的方式输出该整数。

例如:

输入1234,输出4321

输入格式:

1357

输出格式:

7531

#include

intmain(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

#include

intmain(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

#include

intmain(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

#include

intmain(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

#include

voidmain()

{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

#include

voidmain()

{

inta,b;

scanf("%d%d",&a,&b);

if(a*a+b*b>100)

printf("%d\n",a+b);

else

printf("%d\n",a-b);

}

4.2输入整数n,如果n既是5的整倍数又是7的整倍数,则输出yes;否则输出no。

输入格式:

35

输出格式:

Yes

#include

voidmain()

{

intn;

scanf("%d",&n);

if(n%5==0&&n%7==0)

printf("yes\n");

else

printf("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

#include

voidmain()

{

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

#include

voidmain()

{

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);

else

printf("IaputError!

!

\n");

}

4.5已知一张如下所示的时间表:

***************Time***************

1morning

2afternoon

3night

**********************************

Pleaseinputyourchoice:

根据输入的序号显示相应的问候信息:

输入1时,输出Goodmorning;输入2时,输出Goodafternoon;输入3时,输出Goodnight;对于其他的输入,则输出error。

输入格式:

2

输出格式:

Goodafternoon

#include

intmain(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

#include

intmain(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

#include

intmain(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

#include

intmain(void)

{

inta,b,c,t;

scanf("%d%d%d",&a,&b,&c);

if(a

if(a

if(b

printf("%d%d%d\n",a,b,c);

return0;

}

5.11编写程序,接收两个整数num1和num2,找出这两个数之间所有奇数的和。

输入格式:

1100

输出格式:

2500

#include

intmain(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

#include

voidmain()

{inti;

doublesum=0,a,max,min;

scanf("%lf",&a);

sum=max=min=a;

for(i=1;i<=9;i++)

{scanf("%lf",&a);

if(max

if(min>a)min=a;

sum=sum+a;

}

sum=sum-max-min;

printf("%.1f",sum/8);

}

5.13输入n,求1*2*3*...*n的值。

输入格式:

10

输出格式:

3628800

#include

intmain(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

#include

voidmain()

{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

#include

voidavg(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=(min

min:

n;

sum+=n;

}

aver=(sum-max-min)/8;

printf("%.1f\n",aver);

}

5.16根据用户输入的正整数n,求1-1/2+1/3-1/4+...+((-1)^(n+1))/n的值。

保留两位小数。

输入格式:

2

输出格式:

0.50

#include

voidmain()

{

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

#include

intmain(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

#include

voidmain(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

#include

intmain(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

#include

intmain(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

#include

intmain(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++;

else

others++;

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

#include

voidmain()

{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

#include

voidmain()

{

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(score

min=score;

sum+=score;

n++;

scanf("%d",&score);

}

avg=(sum-max-min)/(n-2);

printf("%.1f\n",avg);

}

5.32输入两个正整数,求最大公约数。

输入格式:

155

输出格式:

5

#include

intmain(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

#include

intmain(void)

{inti,m,n,temp,maxgy;

scanf("%d%d",&m,&n);

if(m

for(i=m;;i++)

if(i%m==0&&i%n==0)

{maxgy=i;break;}

printf("%d\n",maxgy);

return0;

}

5.34输入一个正整数n,求n是几位数。

输入格式:

1357

输出格式:

4

#include

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"。

输入格

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1