C语言20道编程题操作题示例.docx

上传人:b****8 文档编号:10357144 上传时间:2023-02-10 格式:DOCX 页数:25 大小:19.38KB
下载 相关 举报
C语言20道编程题操作题示例.docx_第1页
第1页 / 共25页
C语言20道编程题操作题示例.docx_第2页
第2页 / 共25页
C语言20道编程题操作题示例.docx_第3页
第3页 / 共25页
C语言20道编程题操作题示例.docx_第4页
第4页 / 共25页
C语言20道编程题操作题示例.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C语言20道编程题操作题示例.docx

《C语言20道编程题操作题示例.docx》由会员分享,可在线阅读,更多相关《C语言20道编程题操作题示例.docx(25页珍藏版)》请在冰豆网上搜索。

C语言20道编程题操作题示例.docx

C语言20道编程题操作题示例

1.题目标题:

四位反序数

题目描述:

设N是一个四位数,它的n倍恰好是其反序数(例如:

123的反序数是321),编程,输出一个满足条件的N。

(知识点:

控制语句)

输入描述:

输入为一个整形数n(2<=n<=9)

输出描述:

输出为一个四位数的整形数

样式输入:

9

样式输出:

1089

#include

main()

{

intn,g,s,b,q,i;

scanf("%d",&n);

for(i=1000;i<10000;i++)

{

q=i/1000;

b=i/100%10;

s=i/10%10;

g=i%10;

if(i*n==q+b*10+s*100+g*1000)

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

}

}

2.题目标题:

年龄分组

题目描述:

统计各年龄段的人数。

N(N=20)个年龄通过键盘输入,并放在age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。

依次输出d[0]至d[10]。

输入描述:

输入为20个正整数;

输出描述:

输出为11个正整数;

样式输入:

12111222233334444555566667688899100101102

样式输出:

22222230113

#include

main()

{

inti,age[20],d[11]={0};

for(i=0;i<20;i++)

scanf("%d",&age[i]);

for(i=0;i<20;i++)

switch(age[i]/10)

{

case0:

d[0]++;break;

case1:

d[1]++;break;

case2:

d[2]++;break;

case3:

d[3]++;break;

case4:

d[4]++;break;

case5:

d[5]++;break;

case6:

d[6]++;break;

case7:

d[7]++;break;

case8:

d[8]++;break;

case9:

d[9]++;break;

default:

d[10]++;break;

}

for(i=0;i<=10;i++)

printf("%d\n",d[i]);

}

3.题目标题:

求三个整数的最大公约数

题目描述:

对任意三个整数,求它们的最大公约数

输入描述:

三个整数a,b,c

输出描述:

a,b,c的最大公约数

样式输入:

42432

样式输出:

4

#include

intgcd(intn,intm)

{

if(m==0)returnn;

returngcd(m,n%m);

}

intmain()

{

intx,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("%d",gcd(gcd(x,y),z));

return0;

}

4.题目标题:

发放奖金

题目描述:

某车间按工人加工零件的数量发放奖金,奖金分为五个等级:

每月加工零件数N<100者奖金为10元;100<=N<110者奖金为30元;110<=N<120者奖金为50元;120<=N<130者奖金为70元;N>130者奖金为80元。

请编程,由键盘输入加工零件数量,显示应发奖金数。

输入描述:

输入10个加工零件数量,数量小于400.

输出描述:

对每一个加工零件个数,输出应发奖金数,每个奖金数之间用空格隔开

样式输入:

85858585858585858585

样式输出:

10101010101010101010

#include

main()

{

inta[10],i,k;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

{

k=a[i]/10;

if(k<10)a[i]=10;

else

switch(k)

{

case10:

a[i]=30;break;

case11:

a[i]=50;break;

case12:

a[i]=70;break;

default:

a[i]=80;break;

}

}

printf("%d",a[0]);

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

printf("%d",a[i]);

return0;

}

5.题目标题:

矩阵计算

题目描述:

求一个3*3矩阵对角线元素之和。

输入描述:

按行输入9个整数。

输出描述:

对角线元素之和

样式输入:

123456789

样式输出:

15

#include

intmain()

{

inta[3][3];

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("%d",a[0][0]+a[1][1]+a[2][2]);

return0;

}

6.题目标题:

歌手比赛

题目描述:

青年歌手参加歌曲大奖赛,有10个评委对她的进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。

输入描述:

10个评委的分数,每个分数是一个浮点数.输入数据保证有一个最低分,一个最高分,且最高分,最低分不相同.其它是数据与最低、最高均不相同

输出描述:

输出歌手的得分,保留一位小数.所有输出的最后一行不能有回车

样式输入:

8.599.86.58.78.59.39.68.98.2

样式输出:

8.8

#include

intmain()

{

doublea[10],max,min,sum;

inti;

for(i=0;i<10;i++)

scanf("%lf",&a[i]);

sum=min=max=a[0];

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

{

if(max

if(min>a[i])min=a[i];

sum+=a[i];

}

printf("%.1lf",(sum-min-max)/8);

return0;

}

7.题目标题:

统计

题目描述:

统计个位数为6的n位数,且能被m整除的共有多少个?

输入描述:

一个整数n(n<=5),表示该整数的位数,一个整数m(1~9);

输出描述:

符合条件的数的个数。

样式输入:

23

样式输出:

3

#include

intf(intn)

{

intt=1,i;

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

t*=10;

returnt;

}

intmain()

{

intn,m,i,count=0;

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

for(i=f(n-1)+6;i

if(i%m==0)

count++;

printf("%d",count);

return0;

}

8.题目标题:

四位数

题目描述:

计算满足下述条件的四位数的个数:

把数字abcd重新组成两个新的两位数:

ac及db,如果新组成的两个十位数ac>db,且ac必须是偶数且能被n(n为1~9的整数)整除,db必须是奇数,同时两个新数的十位数字均不为零。

输入描述:

一个1~9的整数。

输出描述:

符合条件的数的个数。

样式输入:

5

样式输出:

180

#include

intmain()

{

inti,j,count=0,n;

scanf("%d",&n);

for(i=10;i<100;i+=2)

for(j=11;j<100;j+=2)

if(i>j&&i%n==0)

count++;

printf("%d",count);

return0;

}

9.题目标题:

产值翻番计算

题目描述:

假设当年工业产值为100,工业产值的增长率每年为c%,从键盘输入一个c(0<=c<=30),试求工业产值过多少年可实现翻番(即增加一倍)。

注:

后一年的产值是在前一年的基础上增长c%。

输入描述:

一个0~30的实数(增长率)。

输出描述:

实现翻番的年数。

样式输入:

6

样式输出:

12

#include

intmain()

{

intcount=0;

doublec,t=1;

scanf("%lf",&c);

while(t<2)

{

t*=(c/100+1);

count++;

}

printf("%d",count);

return0;

}

10.题目标题:

行托运

题目描述:

铁路托运行规定:

行重不超过50公斤的,托运费按每公斤0.15元计费;如超过50公斤,超过部分每公斤按0.25元计费。

请编程实现自动计费功能。

输入描述:

输入一个整数,表述要托运的行的重量,单位为公斤

输出描述:

托运的行重量(单位公斤)空格和运费(单位为元,保留2位小数)。

样式输入:

45

样式输出:

456.75

#include

intmain()

{

doublex,y;

scanf("%lf",&x);

if(x<50)

y=x*0.15;

else

y=(x-50)*0.25+50*0.15;

printf("%.0lf%.2lf",x,y);

return0;

}

11.题目标题:

分数比较

题目描述:

请编程实现比较两个分数的大小。

(注:

进行分数的通分后再比较分子的大小)

输入描述:

输入两个分数,格式为分子/分母分子/分母,分子,分母均为整数。

输出描述:

输出比较后的结果。

如果等于,则输出分子/分母=分子/分母;如果小于分子/分母<分子/分母;如果大于,则输出分子/分母>分子/分母

样式输入:

1/21/3

样式输出:

1/2>1/3

#include

intgcd(intx,inty)

{

intr=x%y;

while(r)

{

x=y;

y=r;

r=x%y;

}

returny;

}

intmain()

{

inta,b,c,d,t;

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

if(b>d)

t=gcd(b,d);

else

t=gcd(d,b);

if(a*d/t>c*b/t)

printf("%d/%d>%d/%d",a,b,c,d);

elseif(a*d/t==c*b/t)

printf("%d/%d=%d/%d",a,b,c,d);

else

printf("%d/%d<%d/%d",a,b,c,d);

return0;

}

12.题目标题:

求人数

题目描述:

定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。

用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?

输入描述:

输入50个学生的成绩

输出描述:

输出一个整数表示高于平均成绩的人数

样式输入:

45464748495041525354

55565758596061626364

65666768697071727374

75767778798081828384

85868788899091929394

样式输出:

25

#include

#include

#include

intaver(inta[],doublesum)

{

inti=0,n=0;

for(;i<50;i++)

if(a[i]>sum)

n++;

returnn;

}

intmain()

{

inta[55],i;

doublesum=0;

for(i=0;i<50;i++)

{

scanf("%d",&a[i]);

sum+=a[i];

}

sum/=50;

printf("%d",aver(a,sum));

return0;

}

13.题目标题:

求圆的周长和面积

题目描述:

从键盘输入圆的半径,求该圆的周长和面积。

(注:

取3.14)

输入描述:

一个实数r。

输出描述:

圆的周长和面积。

样式输入:

1

样式输出:

r=1.00,l=6.28,s=3.14

 

#include

#definePI3.14

intmain()

{

doubler,l,s;

scanf("%lf",&r);

l=2*PI*r;

s=PI*r*r;

printf("r=%.2f,l=%.2f,s=%.2f",r,l,s);

return0;

}

14.题目标题:

确定一个数的位数

题目描述:

编写程序用来确定一个数的位数。

如:

输入:

567输出:

Thenumber567has3digits假设输入的数最多不超过四位。

输入描述:

一个整数n。

输出描述:

按指定格式输出这个数的位数。

样式输入:

567

样式输出:

Thenumber567has3digits

#include

main()

{

intn,x,digits=0;

scanf("%d",&n);

x=n;

do

{

x=x/10;

digits++;

}while(x);

printf("Thenumber%dhas%ddigits",n,digits);

}

15.题目标题:

阶乘累加

题目描述:

计算1!

+2!

+3!

……+n!

输入描述:

一个整数n(n<=20)。

输出描述:

1到n的阶乘累加之和。

样式输入:

5

样式输出:

s=153

#include

intmain()

{

intn,i;

scanf("%d",&n);

longlongs=1,sum=0;

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

{

s*=i;

sum+=s;

}

printf("s=%lld",sum);

return0;

}

16.题目标题:

计算e的近似值

题目描述:

利用泰勒级数e=1+1/1!

+1/2!

+……+1/n!

计算e的近似值。

精度要求最后一项的绝对值小于f(如:

f=1e-5)。

输入描述:

精度。

输出描述:

e的近似值,保留6位小数。

样式输入:

1e-5

样式输出:

e=2.718282

#include

#include

doublefac(intn)

{

if(n==1)

return1;

else

returnn*fac(n-1);

}

intmain()

{

inti=1;

doublee=1.0,t,f;

scanf("%le",&f);

for(t=1.0;t>f;i++)

{

t=1.0/fac(i);

e+=t;

}

printf("e=%.6lf",e);

return0;

}

17.题目标题:

求水仙花数

题目描述:

打印n(三位的整数)以的所有水仙花数。

所谓水仙花数是指一个三位的整数,其各位数字的立方和等于该数本身。

例如:

153是水仙花数,因为153=1^3+5^3+3^3。

输入描述:

一个整数n。

输出描述:

符合条件的水仙花数。

样式输入:

400

样式输出:

153

370

371

 

#include

intmain()

{

inti,x,y,z,a;

scanf("%d",&a);

for(i=100;i<=a;i++)

{

x=i/100;

y=i/10%10;

z=i%10;

if(i==x*x*x+y*y*y+z*z*z)

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

}

return0;

}

18.题目标题:

百马百担问题

题目描述:

百马百担问题:

有n1匹马,驮n2担货,大马驮3担,中马驮2担,两匹小马驮1担,问有多少种驮法?

注意:

每种马至少有1匹.

输入描述:

两个整数n1(马匹数)和n2(担货数)。

输出描述:

驮法数。

样式输入:

100100

样式输出:

6

#include

intmain()

{

intd,z,x;

intsum=0,n1,n2;

scanf("%d%d",&n1,&n2);

for(d=1;d<=n1;d++)

for(z=1;z<=n1-d;z++)

{

x=n1-d-z;

if((3*d+2*z+0.5*x)==n2)

sum++;

}

printf("%d",sum);

return0;

}

19.题目标题:

函数求解1/n的累乘

题目描述:

利用自定义函数编写程序,求下面的式子:

Y=1*1/2*1/3……*1/n(n的数值由键盘输入,n<=10)

输入描述:

输入一个正整数

输出描述:

输出为小数,保留小数点后12位有效数字。

样式输入:

3

样式输出:

0.7

#include

#include

#include

intmain()

{

intn,i;

doublet=1;

scanf("%d",&n);

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

t/=i;

printf("%.12lf",t);

return0;

}

20.题目标题:

整数的分解)

题目描述:

将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

输入描述:

输入一个正整数。

输出描述:

等式左边输出整数,等式右边整数相乘形式。

样式输入:

90

样式输出:

90=2*3*3*5

 

#include

intisprime(intn)

{

inti;

for(i=2;i*i<=n;i++)

if(n%i==0)

return0;

return1;

}

intmain()

{

intnum,i;

scanf("%d",&num);

printf("%d=",num);

if(isprime(num))

printf("1*%d",num);

else{

for(i=2;i<=num;i++)

if(num%i==0)

{

num/=i;

printf("%d",i);

break;

}

for(i=2;i<=num;i++)

while(num%i==0)

{

num/=i;

printf("*%d",i);

}

}

return0;

}

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

当前位置:首页 > 解决方案 > 学习计划

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

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