关键词不能为空

当前您在: 主页 > 英语 >

C语言100个经典题目

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 08:51
tags:

-

2021年2月10日发(作者:evite)



C


语言程序设计习题



授课对象:信息奥赛辅导成员



授课时间:



题目:古典问题:有一对 兔子,从出生后第


3


个月起每个月都生一对兔子,小兔



子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的 兔子总数



为多少?



______________________________________________ ____________________


程序分析:兔子的规律为数列

< p>
1,1,2,3,5,8,13,21….



__ __________________________________________________ _______________


程序源代码:



main()


{


long


f1,f2;


int


i;


f1=f2=1;


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


{


printf(“%12ld


%12ld”,f1,f2);



if(i%2==0)


printf(“


n”);/*


控制输出,每行四个


*/


f1=f1+f2;/*


前两个月加起来赋值给第三个月


*/


f2=f1+f2;/*


前两个 月加起来赋值给第三个月


*/


}


}


上题还可用一维数组处理,


you


try!


题目:判断


101-200


之间有多少个素数,并输出所有素数。



_________________________________________________ _________________


程序分析:判断素数的方法:用一个数分别去除


2



sqrt(


这个数


)


,如果能被整



除,则表明此数不是素数,反之是素数。


________________________________________________ ___________________


程序源代码:



#include


“math.h”



main()


{


int


m,i,k,h=0,leap=1;


p


rintf(“



n”);



for(m=101;m<=200;m++)


{


k=sqrt(m+1);


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


if(m%i==0)


{leap=0;break;}


if(leap)


{printf(“%


-


4d”,m);h+ +;



if(h%10==0)


pr intf(“



n”);



}


leap=1;


}


printf(“



nThe


total


is


%d”,h);



}


题目:打印出所有的



水仙花数



,所谓



水仙花数



是指一个三位数,其各位



数字立方和等于该数本身。例如:


153


是一个



水仙花数



,因为


153=1


的三次方




5


的三次方+


3

的三次方。



____________________ ______________________________________________


程序分析:利用


for


循环控制


100-999


个数,每个数分解出个位,十位,百位。


____________________________________ _______________________________


程序源代码:



main()


{


int


i,j,k,n;


printf(“‘water


flower’number


is:”);



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


{


i=n/100;/*


分解出百位


*/


j=n/10%10;/*


分解出十位


*/


k=n%10;/*


分解出个位


*/


if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)


{


printf(“%


-

< p>
5d”,n);



}


}


printf(“



n”);

< p>


}


题目:将一个正整数分解质因数。例如:输 入


90,


打印出


90=2*3*3*5




_______________ __________________________________________________ _



程序分析:对


n


进行分解质因数,应先找到一个最小的质数


k


,然后按 下述步骤完



成:


< br>(1)


如果这个质数恰等于


n


, 则说明分解质因数的过程已经结束,打印出即可。



(2)


如果


n<>k


,但


n


能被


k


整除,则应打印出

< p>
k


的值,并用


n


除以


k


的商


,


作为新的 正



整数你


n,


重复执行第一步。



(3)


如果


n


不能被


k


整除, 则用


k+1


作为


k

的值


,


重复执行第一步。



__________________________________________ _________________________


程序源代码:



/*


zheng


int


is


divided


yinshu*/


main()


{


int


n,i;


printf(“


nplease


input


a


number:


n”);



scanf(“%d”,&n);



printf(“%d=”,n);



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


{


while(n!=i)


{


if(n%i==0)


{


printf(“%d*”,i);



n=n/i;


}


else


break;


}


}


printf(“%d”,n);



}


题目:利用条件运算符的嵌套来完成此题:学习成绩


>=90< /p>


分的同学用


A


表示,

60


-89


分之间的用


B


表示,


60


分以下的用


C


表示。



___________ __________________________________________________ _____


程序分析:


(a>b)?a:b

< br>这是条件运算符的基本例子。



___________ __________________________________________________ ______


程序源代码:



main()


{


int


score;



char


grade;


printf(“pleas


e


input


a


score


n”);



scanf(“%d”,&score);


< br>grade=score>=90?’A’score>=60?’B':’C');


printf(“%d


belongs


to


%c”,score,grade);



}


题目:输入两个正整数


m



n


,求其最大公约数和最小公倍数。



_______________________________ ___________________________________


程序分析:利用辗除法。



_____ __________________________________________________ ____________


程序源代码:



main()


{


int


a,b,num1,num2,temp;


printf(“please


input


two


numbers:


< p>
n”);



scanf(“%d,%d”,&num1,&num2);



if(num1



{


temp=num1;


num1=num2;


num2=temp;


}


a=num1;b=num2;


while(b!=0)/*


利用辗除法,直到


b



0


为止


*/


{


temp=a%b;


a=b;


b=temp;


}


printf( “gongyueshu:%d



n”,a);

< br>


printf(“gongbeishu:%d



n”,num1*num2/a);



} < /p>


题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

< p>




________ __________________________________________________ ________


程序分析:利用


while


语句


,


条件为输入的字符不为




n’.



_ __________________________________________________ ________________


程序源代码:



#include


“stdio.h”



main()



{char


c;


int


letters=0,space=0,digit=0,others=0;


printf(“please


input


some


characters



n”);



while((c=getch ar())!=’



n’)



{


if(c>=’a'&&c<=’z'||c>=’A'& &c<=’Z')



letters++;


else


if(c==’


‘)



space++;


else


if(c>=’0′&&c<=’9′)



digit++;


else


others++;


}


printf(“all


in


all:char=%d


space=%d


digit=%d


others=%



d


n”,letters,space,digit,othe rs);



}


题目:求


s=a+aa+aaa+aaaa+aa…a


的值,其中

a


是一个数字。例如



2+22+ 222+2222+22222(


此时共有


5

< br>个数相加


)


,几个数相加有键盘控制。

< br>


___________________________________ _______________________________


程序分析:关键是计算出每一项的值。



_________________________________________________ __________________


程序源代码:



main()


{


int


a,n,count=1;


long


int


sn=0,tn=0;


printf(“please


input


a


and


n



n”);



scanf(“%d,%d”,&a,&n);



printf(“a=%d,n=%d



n”,a,n );



while(count<=n)


{


tn=tn+a;


sn=sn+tn;


a=a*10;


++count;


}


printf (“a+aa+…=%ld



n”,sn);


}



题目:一个数如果恰好等 于它的因子之和,这个数就称为



完数



。例如


6=1


2



3.


编程找出


1000


以内的所有完数。



_________________________________________________ __________________


程序源代码:



main()


{


static


int


k[10];


int


i,j,n,s;


for(j=2;j<1000;j++)


{


n=-1;


s=j;


for(i=1;i




{


if((j%i)==0)


{



n++;


s=s-i;


k[n]=i;


}


}


if(s==0)


{


printf(“%d


is


a


wanshu”,j);



for(i=0;i



printf(“%d,”,k);



printf(“%d



n”,k[n]);


}


}


}

< br>题目:一球从


100


米高度自由落下,每次落地后反跳回 原高度的一半;再落下,



求它在第


1 0


次落地时,共经过多少米?第


10


次 反弹多高?



______________________ _____________________________________________


程序源代码:



main()


{


float


sn=100.0,hn=sn/2;


int


n;


for(n=2;n<=10;n++)


{


sn=sn+2*hn;/*


第< /p>


n


次落地时共经过的米数


*/


hn=hn/2;


/*


< p>
n


次反跳高度


*/


}



printf(“the


total


of


road


is


%f



n ”,sn);



printf(“the


tenth


is


%f

< p>
meter



n”,hn);



}


题目:一只猴子摘了


N


个桃子第一天吃了一半又多吃了一个


,


第二天 又吃了余下的



一半又多吃了一个


,< /p>


到第十天的时候发现还有一个


.


___ __________________________________________________ ______________


程序源代码:



/*


猴子吃桃问题



*/


main()


{


int


i,s,n=1;


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


{


s=(n+1)*2


n=s;


}


printf(“


第一天共摘了


%d< /p>


个桃



n”,s);



}


迭代法求方程根


< p>
____________________________________________ _______________________


/*


迭代法求一个数的平方根



*/


#define


Epsilon


1.0E-6


/*


控制解的精度


*/


#include


main()


{


float


a,x0,x1;


printf(“


请输入要求的数


:” );



scanf(“%f”,&a);



x0=a/2;


x1=(x0+a/x0)/2;


while(fabs(x1-x0)>=Epsilon)


{


x0=x1;


x1=(x0+a/x0)/2;


}


printf(“%f


的平方根:


%f.5

< br>n”,x1);



}


/*


上题的另一种算法



*/


#define


Epsilon


1.0E-6


/*


控制解的精度


*/



#include



#include



main()


{


float


num,pre,this;


do


{


scanf(“%f”,& num);/*


输入要求平方根的数


*/


}while(num<0);


if


(num==0)


printf(“the


root


is


0″);



else


{


this=1;


do


{


pre=this;


this=(pre+num/pre)/2;


}while(fabs(pre-this)>Epsilon);/*


用解的精度,控制循环次数


*/


}


printf(“the


root


is


%f”,this);



}


用牛顿迭代法



求方程



2*x*x*x-4*x*x+3*x-6


的根



/*


牛顿迭代法



*/


#define


Epsilon


1.0E-6


/*


控制解的精度


*/


#include


main()


{


float


x1,x0=1.5;


x1=x0-(2*x0*x0*x0 -4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3);


while(fabs(x1-x0>=Epsilon)


{


x0=x1;


x1=x0-(2*x0*x0*x0-4*x 0*x0+3*x0-6)/(6*x0*x0-8*x0+3);


}


printf(“


方程的根为


%f

< br>n”,x1);



}


用二分法求上题



/*


二分法



*/


#define


Epsilon


1.0E-5


/*


控制解的精度


*/


#include



main()


{


folat


x1,x2,x0,f1,f2,f0;


x0=(x1+x2)/2;


f0=2*x0*x0*x0- 4*x0*x0+3*x0-6;





/*


求中点的函数值



*/


while(fabs(f0)>=Epsilon)


{


if(f0*f1<0)


{


x2=x0;


f2=2*x2*x2*x2-4*x2*x2+3*x2-6;


}


if(f0*f2<0)


{


x1=x0;


f1=2*x1*x1*x1-4*x1*x1+3*x1-6;


}


x0=(x1+x2)/2;


f0=2*x0*x0*x0-4*x0*x0+3*x0-6;


}


printf(“


用二分法求得方 程的根:


%f


n”,x0);



}


题目:打印出如下图案(菱形)



*


***


******


********


******


***


*


___________ __________________________________________________ ______


程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规 律,利



用双重


for


循环,第一层控制行,第二层控制列。



______ __________________________________________________ ___________


程序源代码:



main()


{


int


i,j,k;


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


{


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


printf(”


“);




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


printf(“*”);



prin tf(“



n”);



}


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


{


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


printf(”


“);



for(k=0;k<=4-2*i;k++)


printf(“*”);



prin tf(“



n”);



}


}


题目:一个

< br>5


位数,判断它是不是回文数。即


12321

< p>
是回文数,个位与万位相同,



十位与千位相同。



________ __________________________________________________ _________


程序分析:同


29




_________________________ __________________________________________


程序源代码:



main(


)


{


long


ge,shi,qian,wan,x;


scanf(“%ld”,&x);



wan=x/10000;


qian=x%10000/1000;


shi=x%100/10;


ge=x%10;


if


(ge==wan&&shi==qian)/*


个位等于万位并且十位等于千位


*/


printf(“this


number


is


a


huiwen



n”);



else


printf(“this


number


is


not


a

< br>huiwen



n”);



}


题目:请输入星期几的第一个字母来判断一下是星期几,如 果第一个字母一样,



则继续判断第二个字母。



_____ __________________________________________________ ____________


程序分析:用情况语句比较好,如果第一个字母一样,则判 断用情况语句或


if




句判断第二个字母。




_____________________________________________ ______________________


程序源代码:



#include



void


main()


{


char


letter;


printf(“please


input


the


first


letter


of


someday



n”);



while


((letter=


getch())!=’Y')


/*


当所按字母为


Y


时 才结束


*/


{


switch


(letter)


{case


‘S’:printf(“please


input


second


letter



n”);



if((letter=getch())==’a')



printf(“saturday



n”) ;



else


if


((letter=getch())==’u')



printf(“sunday



n”);



else


printf(“data < /p>


error



n”);


break;


case


‘F ’:printf(“frid


ay


n”);break;



case


‘M’:printf(“m onday



n”);break;



case


‘T’:printf(“please


input


second


lett er



n”);



if((letter=getch())==’u')



printf(“tuesday



n”);



else


if


((letter=getch())==’h')



printf(“thursday



n”);< /p>



else


printf(“data


error



n”);

< br>


break;


case


‘ W’:printf(“wedn


esday


n”);brea k;



default:


printf(“data


error



n”);



}


}


}


题目:


Press


any


key


to


change


color,


do


you


want


to


try


it.


Please


hurry


up!


________________________ ___________________________________________


程序源代码:



#include



void


main(void)


{


int


color;


for


(color


=


0;


color


<


8;


color++)


{


textbackground(color);


/*


设置文本的背景颜色


*/



cprintf(“This


is


color


%d


r


n”,


color);



cprintf(“ress


any


key


to


continue


r


n”);



getch();


/*


输入字符看不见


*/


}


}


题目:学习

< br>gotoxy()



clrscr()

< br>函数



______________________ _____________________________________________


程序源代码:



#include



void


main(void)


{


clrscr();


/*


清屏函数


*/


textbackground(2);


gotoxy(1,


5);


/*


定位函数


*/


cprintf(“Output


at


row


5


column


1



n”);



textbackground(3);


gotoxy(20,


10);


cprintf(“Output


at


row


10


column


20



n”);



}


题目:练习函数调用


< p>
____________________________________________ _______________________


程序源代码:



#include



void


hello_world(void)


{


printf(“Hello,


world!



n”);



}


void


three_hellos(void)


{


int


counter;


for


(counter


=


1;


counter


<=


3;


counter++)


hel lo_world();/*


调用此函数


*/


}


void


main(void)


{


three_hellos();/*

调用此函数


*/


}


题目:文本颜色设置



_______ __________________________________________________ __________

-


-


-


-


-


-


-


-



本文更新与2021-02-10 08:51,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/627826.html

C语言100个经典题目的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文