长沙理工大学上期期末c语言编程题库.docx

上传人:b****3 文档编号:3712837 上传时间:2022-11-24 格式:DOCX 页数:17 大小:19.89KB
下载 相关 举报
长沙理工大学上期期末c语言编程题库.docx_第1页
第1页 / 共17页
长沙理工大学上期期末c语言编程题库.docx_第2页
第2页 / 共17页
长沙理工大学上期期末c语言编程题库.docx_第3页
第3页 / 共17页
长沙理工大学上期期末c语言编程题库.docx_第4页
第4页 / 共17页
长沙理工大学上期期末c语言编程题库.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

长沙理工大学上期期末c语言编程题库.docx

《长沙理工大学上期期末c语言编程题库.docx》由会员分享,可在线阅读,更多相关《长沙理工大学上期期末c语言编程题库.docx(17页珍藏版)》请在冰豆网上搜索。

长沙理工大学上期期末c语言编程题库.docx

长沙理工大学上期期末c语言编程题库

C算机编程题

一.

题目标题:

四位反序数(卜胜贤)

题目描述:

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

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

(知识点:

控制语句)

输入描述:

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

输出描述描述:

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

样式输入:

9

样式输出:

1089

#include

#include

intmain()

{

intn;intg,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",i);

}

return0;

}

二.

题目标题:

年龄分组(卜胜贤)

题目描述:

统计各年龄段的人数。

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

intmain()

{

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

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

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

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

{

swith(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",d[i]);

printf("%d",d[10]);

return0;

}

三.

题目标题:

求三个整数的最大公约数(杨洁)

题目描述:

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

输入描述:

三个整数a,b,c

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

}

题目标题:

发放奖金(杨鼎强)

题目描述:

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

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

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

输入描述:

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

输出描述描述:

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

#include

inta[10];

intmain()

{

inti,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;

}

五.

题目标题:

矩阵计算(甘正佳)

题目描述:

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

输入描述:

按行输入9个整数。

输出描述描述:

对角线元素之和

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

}

六.

题目标题:

歌手比赛(甘文)

题目描述:

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

输入描述:

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

输出描述描述:

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

#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("%lf",(sum-min-max)/8);

return0;

}

七.

题目标题:

统计(左利芳)

题目描述:

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

输入描述:

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

输出描述描述:

符合条件的数的个数。

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

}

八.

题目标题:

四位数(左利芳)

题目描述:

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

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

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

输入描述:

一个1~9的整数。

输出描述描述:

符合条件的数的个数。

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

}

九.

题目标题:

产值翻番计算(左利芳)

题目描述:

假设当年工业产值为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;

}

十.

题目标题:

四位数(左利芳)

题目描述:

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

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

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

输入描述:

一个1~9的整数。

输出描述描述:

符合条件的数的个数。

十一.

题目标题:

分数比较(彭纪良)

题目描述:

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

(注:

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

输入描述:

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

输出描述描述:

输出比较后的结果。

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

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

}

十二

题目标题:

求人数(甘文)

题目描述:

定义一个函数,功能是计算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;

}

十三.

题目标题:

3.2求圆的周长和面积

题目描述:

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

(注:

取3.14)

输入描述:

一个实数r。

输出描述描述:

圆的周长和面积。

#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",l,s);

return0;

}

 

十四.

题目标题:

3.4确定一个数的位数

题目描述:

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

如:

输入:

567输出:

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

输入描述:

一个整数n。

输出描述描述:

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

#include

main()

{

intn,x,digits=0;

scanf("%d",&n);

x=n;

do

{

x=x/10;

digits++;

}

while(x);

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

}

十五.

题目标题:

3.9阶乘累加

题目描述:

计算1!

+2!

+3!

……+n!

输入描述:

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

 

输出描述描述:

1到n的阶乘累加之和。

样式输入:

5

样式输出:

s=153

#include

main()

{

intn,i,s,sum;

scanf("%d",&n);

longs=1,sum=0;

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

{

s*=i;

sum+=s;

}

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

return0;

}

十六.

计算e的近似值

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

+1/2!

+……+1/n!

计算e的近似值。

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

f=1e-5)。

#include

#include

doublefac(intn)

{

if(n==1)

return1;

elsereturnn*fac(n-1);

}

main()

{

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;

}

十七.

题目标题:

3.12求水仙花数

题目描述:

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

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

例如:

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

输入描述:

一个整数n。

输出描述描述:

符合条件的水仙花数。

#include

main()

{

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;

}

十八.

题目标题:

3.17百马百担问题

题目描述:

百马百担问题:

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

注意:

每种马至少有1匹.

输入描述:

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

输出描述描述:

驮法数。

#include

main()

{

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*z)==n2);

sum++;

}

printf("%d",sum);

return0;

}

十九.

题目标题:

函数求解1/n的累乘(谌海军)

题目描述:

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

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

输入描述:

输入一个正整数

输出描述描述:

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

#include

#include

#include

main()

{

intn,i;

doublet=1;

scanf("%d",&n);

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

t/=i;

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

return0;

}

二十.

题目标题:

整数的分解(胡宁静)

题目描述:

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

例如:

输入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