C题库.docx

上传人:b****1 文档编号:3244415 上传时间:2023-05-05 格式:DOCX 页数:41 大小:32.86KB
下载 相关 举报
C题库.docx_第1页
第1页 / 共41页
C题库.docx_第2页
第2页 / 共41页
C题库.docx_第3页
第3页 / 共41页
C题库.docx_第4页
第4页 / 共41页
C题库.docx_第5页
第5页 / 共41页
C题库.docx_第6页
第6页 / 共41页
C题库.docx_第7页
第7页 / 共41页
C题库.docx_第8页
第8页 / 共41页
C题库.docx_第9页
第9页 / 共41页
C题库.docx_第10页
第10页 / 共41页
C题库.docx_第11页
第11页 / 共41页
C题库.docx_第12页
第12页 / 共41页
C题库.docx_第13页
第13页 / 共41页
C题库.docx_第14页
第14页 / 共41页
C题库.docx_第15页
第15页 / 共41页
C题库.docx_第16页
第16页 / 共41页
C题库.docx_第17页
第17页 / 共41页
C题库.docx_第18页
第18页 / 共41页
C题库.docx_第19页
第19页 / 共41页
C题库.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C题库.docx

《C题库.docx》由会员分享,可在线阅读,更多相关《C题库.docx(41页珍藏版)》请在冰点文库上搜索。

C题库.docx

C题库

C语言程序设计题库

1.根据圆柱体的半径和高,计算圆柱体的表面积和体积(结果精确到小数点后3位)。

程序要求:

(1)圆柱体的半径和高要求从键盘输入,数据输入时,应当显示提示字符串;

(2)输出时要求有文字说明。

#definepi3.1415926

#include

main()

{

floatr,h;//定义r为底面半径h为圆柱体高

floats,v;//定义s为圆柱表面积,v为圆柱体体积

printf("请输入底面半径和高(米),中间以逗号分隔:

");

scanf("%f,%f",&r,&h);

s=2*pi*r*h+2*pi*r*r;//计算表面积

v=pi*r*r*h;//计算体积

printf("表面积为%.3f(m2)\n体积为%.3f(m3)\n",s,v);

}

2.从键盘分别输入两个复数的实部和虚部,求它们的和、差、积、商并将结果在屏幕上输出。

#include"stdio.h"

main()

{

floata,b,c,d,resultr,resulti;

printf("请输入第一个复数:

");

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

printf("请输入第二个复数:

");

scanf("%f%f",&c,&d);

printf("两复数之和为%.2f+%.2fi\n",a+c,b+d);//求和并输出

printf("两复数之差为%.2f+%.2fi\n",a-c,b-d);//求差并输出

resultr=a*c-b*d;

resulti=a*d+b*c;

printf("两复数之积为%.2f+%.2fi\n",resultr,resulti);//求积并输出

resultr=(a*c+b*d)/(c*c+d*d);

resulti=(b*c-a*d)/(c*c+d*d);

printf("两复数之商为%.2f+%.2fi\n",resultr,resulti);//求商并输出

}

3.输入一个实数,输出它的平方根值,如果输入数小于0,输出“输入数据错误”的提示。

#include"stdio.h"

#include"math.h"

main()

{

floata,b,c;

printf("请输入任意正实数:

");

scanf("%f",&a);

if(a<0)

printf("输入数据错误\n");

else

{

b=sqrt(a);

c=-b;

printf("%.2f的平方根是%.2f和%.2f\n",a,b,c);

}

}

4.输入三个字符后,请按各字符ASCII码从大到小的顺序输出这些字符。

#include"stdio.h"

main()

{

chara,b,c,t;

printf("请输入三个字符");

a=getchar();//输入字符串

b=getchar();

c=getchar();

//比较第一个和第二个

if(a

{

t=a;a=b;b=t;//完成交换,

}

//比较第一个和第三个

if(a

{

t=a;a=c;c=t;//完成交换,

}

//比较第二个和第三个

if(b

{

t=b;b=c;c=t;//完成交换,

}

printf("字符由大到小顺序是%c,%c,%c",a,b,c);

}

5.任意输入三条边的长度,判断能否构成三角形?

若能构成三角形,是等边三角形、等腰三角形还是其它三角形?

#include"stdio.h"

main()

{

floata,b,c,t;

printf("请输入三个数:

\n");

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

//将边按从大到小顺序存放在a,b,c变量中

if(a

{

t=a;a=b;b=t;

}

if(a

{

t=a;a=c;c=t;

}

if(b

{

t=b;b=c;c=t;

}

if(a

{

printf("能构成三角形\n");//两边之和大于第三边

if(a==b||b==c||a==c)//有两边相等的情况

{

if(a==b&&b==c)//三边全等

printf("是等边三角形\n");

else

printf("是等腰三角形\n");

}

else

printf("是其它三角形\n");

}

else

printf("不能构成三角形\n");

}

6.假设用1,2,……7分别表示星期一、星期二、……星期日。

现输入一个数字,输出对应的星期几的英文单词。

main()

{

intweek;

printf("请输入任意数值(1-7):

");

scanf("%d",&week);

switch(week)

{

case1:

printf("Mon.\n");break;

case2:

printf("Tue.\n");break;

case3:

printf("Wed.\n");break;

case4:

printf("Tur.\n");break;

case5:

printf("Fri.\n");break;

case6:

printf("Sat.\n");break;

case7:

printf("Sun.\n");break;

default:

printf("输入错误!

\n");

}

}

7.判断输入字符的类型

#include"stdio.h"

main()

{

charc;

printf("inputacharacter:

");

c=getchar();

if(c<32)

printf("Thisisacontrolcharacter\n");

elseif(c>='0'&&c<='9')

printf("Thisisadigit\n");

elseif(c>='A'&&c<='Z')

printf("Thisisacapitalletter\n");

elseif(c>='a'&&c<='z')

printf("Thisisasmallletter\n");

else

printf("Thisisanothercharacter\n");

}

8.1862年,英国的天文学家哈雷发现一颗大慧星描绘的曲线和1531年,1607年的慧星惊人地相似,便大胆断定,这是同一天体的三次出现,并预言它将于76年后再度回归。

这就是著名的哈雷慧星,它的回归周期大约是76年。

请你编制程序,列出哈雷慧星在1607~3000年的回归时间表。

#include"stdio.h"

main()

{

intyear;

for(year=1607;year<3000;year=year+76)

{

if(year<3000)

printf("%5d",year);

}

printf("\n");

}

9.根据第五次全国人口普查的结果,截至2000年11月1日,北京市的常住人口总数为1381.9万。

如果从2001年初开始,北京市把全市人中的年增长率控制在0.13%以内,到2008年举办奥运会时(按到年底计算),北京市最多有多少常住人口?

同时请你按年输出每年的常住人口数。

#include"stdio.h"

main()

{

floatpeople;

intyear;

people=1381.9;

for(year=2001;year<2009;year++)

{

people*=1+0.0013;

printf("%d年,人口%.3f\n",year,people);

}

}

10.若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,问从中任取8个共有多少种不同的颜色搭配?

#include

main()

{

inti,j,count=0;

printf("红球白球黑球\n");

printf("...................\n");

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

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

if((8-j-i)<=6)

printf("%2d:

%3d%3d%3d\n",++count,i,j,8-i-j);

}

11.在一次演讲比赛中,有10个评委为参赛的选手打分,按百分制计分,选手最后得分为10个分数的平均分。

/*Example36.c演讲比赛计分器*/

#include

main()

{

inti=1;//循环计数器

floatsum,score;//sum为总分,score为评委的评分

sum=0;

while(i<=10)

{

printf("请输入第%d个评委的评分",i);

scanf("%f",&score);//输入每个评委的评分

sum=sum+score;//累加求和

i++;

}

printf("该选手的平均分为%.2f\n",sum/10);//计算并输出平均值

}

12.在一次歌星大奖赛中,有10个评委为参赛的选手打分,选手最后得分为去掉一个最高分和一个最低分后的平均分。

#include

main()

{

intscore,i,max,min,sum;

max=0;

min=100;

sum=0;

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

{

printf("Inputnumber%d--",i);

scanf("%d",&score);

sum+=score;

if(score>max)max=score;

if(score

}

printf("Canceledmaxscore:

%d\n",max);

printf("Canceledminscore:

%d\n",min);

printf("Averagescore:

%d\n",(sum-max-min)/8);

}

13.如果能将一张厚度为0.05mm的报纸对折,再对折,再对折……对折50次后,报纸的厚度是多少?

/*Example38.c纸的对折问题*/

#include"stdio.h"

main()

{

doublea=0.0005;//a表示纸的厚度,初始为0.0005米

inti;

for(i=1;i<=50;i++)//对折50次

{

a=a*2;//每对折一次厚度是原来的2倍

}

printf("这张纸对折50次后厚度为%.2f米\n",a);//保留两位小数输出

}

14.求具有

性质的四位数。

#include

main()

{

intn,ab,cd;

printf("下面是满足条件的四位数:

\n");

for(n=1000;n<10000;n++)//四位数n的取值范围1000~9999

{

ab=n/100;//截取n的前两位数存于ab

cd=n%100;//截取n的后两位存于cd

if((ab+cd)*(ab+cd)==n)//判断n是否为所求的四位数

printf("%d",n);

}

printf("\n");

}

15.输入一个自然数,判断该数是否为素数,如果是素数,输出“YES”,否则输出“NO”。

#include

#include

main()

{

intn,i,flag=1;//flag为标记变量

printf("请输入任意一个数:

\n");

scanf("%d",&n);

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

if(n%i==0)

{

flag=0;

break;//跳出循环

}

if(flag==1)printf("YES\n");

elseprintf("NO\n");

}

16.输出100以内能被9整除的数,按照每行5个数的格式输出。

#include

main()

{

intn,count=0;//count为输出计数器

for(n=9;n<=100;n++)

{

if(n%9!

=0)

continue;//能被9整除则跳出本次循环检查下一个数

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

count++;

if(count%5==0)//每输出5个数就输出回车

printf("\n");

}

printf("\n");

}

17.编程列出100~400之间所有的素数,按每行10个数的格式输出。

#include

#include

main()

{

intn,i,count=0;//count为输出计数器

for(n=100;n<=400;n++)

{

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

if(n%i==0)//如果n能被i整除,则不是素数,

{

break;//跳出内嵌的循环,检查外循环的下一个数

}

if(i>sqrt(n))//如果i>sqrt(n),即为素数

{

printf("%5d",n);//按5位宽度的格式输出

count++;

if(count%10==0)printf("\n");//按每行10个数的格式输出

}

}

printf("\n");

}

18.马克思手稿中的趣味数学问题:

有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?

#include

main()

{

intx,y,z;

printf("MenWomenChildren\n");

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

{

y=20-2*x;

z=30-x-y;

if(3*x+2*y+z==50)

printf("%-8d%-8d%-8d\n",x,y,z);//按宽度间隔左对齐输出

}

}

19.某单位要进行工资改革,增加金额取决于工龄和现工资两个因素:

对于工龄大于等于20年的,如果现工资高于2000,加400元,否则加280元;对于工龄小于20年的,如果现工资高于1500,加350元,否则加220元。

工龄和现工资从键盘输入,编程求加工资后的员工工资。

#include

main()

{

floats1,s;

inty;

printf("请输入原工资s1,工龄y:

");

scanf("%f,%d",&s1,&y);

if(y>=20)

{

if(s1>=2000)s=s1+400;

elses=s1+280;

}

else

{

if(s1>=1500)s=s1+350;

elses=s1+220;

}

printf("现工资s=%.2f\n",s);

}

20.利用辗转相除法求两个正整数的最大公因子。

#include

main()

{

intm,n,r;

printf("请任意输入两个正整数:

");

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

while(n!

=0)

{

r=m%n;//求余数

m=n;

n=r;

}

printf("最大公约数是%d\n",m);

}

21.一个三位的自然数的七进制表示是一个三位数,九进制表示也是一个三位数,且这两种表示的数码顺序正好相反,求这个自然数。

#include

main()

{

inti,j,k;

for(i=1;i<7;i++)//穷举九进制的第一位数

for(j=0;j<7;j++)//中间一位可以是零

for(k=1;k<7;k++)

if(i*9*9+j*9+k==i+j*7+k*7*7)//判断是否满足题意

{

printf("这个三位数是:

");

printf("%d%d%d(7)=%d%d%d(9)=%d(10)\n",k,j,i,i,j,k,i*9*9+j*9+k);

}

}

22.在举办校园演讲比赛的时候要计算选手的最后得分,比赛得分计算规则为:

去掉一个最高分和一个最低分,然后求剩余得分的平均分,设计程序来实现这样的功能。

#include

#defineN12//定义符号常量

voidmain()

{

floatscore[N],min,max,sum,avg;

inti;

printf("请输入12位评委给出的分数:

\n");

for(i=0;i

scanf("%f",&score[i]);//输入选手成绩

min=max=sum=score[0];//将score[0]值作为max,min,sum的初始值

for(i=1;i

{

if(max

if(min>score[i])min=score[i];//查找最低分

sum=sum+score[i];//求总分

}

avg=(sum-max-min)/(N-2);//求去掉最高最低分后的平均分

printf("最高分:

%6.2f,最低分:

%6.2f\n",max,min);

printf("选手的最后得分是:

%6.2f\n",avg);

}

23.随机产生两个矩阵,矩阵A4×3与矩阵B3×5,输出两个矩阵,计算A×B,并输出结果矩阵。

#include

#include

#include

#defineM14

#defineN13

#defineM23

#defineN25

voidmain()

{

intA[M1][N1],B[M2][N2];

longintC[M1][N2];

inti,j,k;

srand(time(0));//用一个随机值初始化随机数发生器

for(i=0;i

for(j=0;j

A[i][j]=rand()%20;//返回一个0-20之间的随机数赋值给A[i][j]

for(i=0;i

for(j=0;j

B[i][j]=rand()%30;//返回一个0-30之间的随机数赋值给B[i][j]

printf("矩阵A:

\n");//输出矩阵A

for(i=0;i

for(j=0;j

printf("%8d",A[i][j]);

printf("\n");

}

printf("矩阵B:

\n");//输出矩阵B

for(i=0;i

for(j=0;j

printf("%8d",B[i][j]);

printf("\n");

}

for(i=0;i

for(j=0;j

C[i][j]=0;

for(k=0;k

C[i][j]+=A[i][k]*B[k][j];

}

printf("矩阵C:

\n");//输出矩阵C

for(i=0;i

for(j=0;j

printf("%10d",C[i][j]);

printf("\n");

}

}

24.将给定字符串“Cprogram”逆序存储并输出。

#include

voidmain()

{

charstr[]=”Youarethebest!

”;//字符数组初始化

charch;

inti,n;

n=sizeof(str)-1;//sizeof(str)用来求字符串长度

for(i=0;i

{

ch=str[i];//ch作为中间变量,临时存储字符

str[i]=str[n-i-1];

str[n-i-1]=ch;

}

printf(“%s\n”,str);

}

25.求逆序

#include"stdio.h"

voidmain()

{

inta[7]={32,43,3,9,12,87,99},i,temp;

printf("Theoriginalarrayis:

\n");

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

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

for(i=0;i<7/2;i++)

{

temp=a[i];

a[i]=a[7-i-1];

a[7-i-1]=temp;

}

printf("\nThereversedarrayis:

\n");

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

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

printf("\n");

}

26.数据加密

#include"stdio.h"

voidmain()

{

intd,sd[4],i,t;

printf("请输入传输数据:

");

scanf("%d",&d);

sd[0]=d%10;

sd[1]=d%100/10;

sd[2]=d%1000/100;

sd[3]=d/1000;

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

{

sd[i]+=5;

sd[i]%=10;

}

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

{

t=sd[i];

sd[i]=sd[3-i];

sd[3-i]=t;

}

d=sd[0]+sd[1]*10+sd[2]*100+sd[3]*1000;

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

}

27.输入一串字符,计算其中空格的个数,请编写程序实现。

#include

#include

voidmain(

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2