欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    经典c语言编程.docx

    • 资源ID:68388546       资源大小:54.65KB        全文页数:93页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    经典c语言编程.docx

    【程序16题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1 .程序分析:利用辗除法。2 .程序源代码:main()(int a,b,numl,num2,temp;printf("please input two numbers:n");scanf("%d,%d",&numl,&num2);if(numl temp=numl;numl=num2;num2=temp;a=numl;b=num2;while(b!=0)/*利用辗除法,直到b为0为止*/(temp=a%b;a=b;b=temp;)printf("gongyueshu:%dn",a);printf("gongbeishu:%dn",numl*num2/a);【程序19题目:一个数如果恰好等于它的因子之和,这个数就称为“完数二例如6=1+2+3.编程找出1000以内的所有完数。1 .程序分析:请参照程序(-上页程序14.2 .程序源代码:main()(static int k10;int ij,n,s;for(j=2;j<1000;j+)(n=-l;s=j;for(i=l;i if(j%i)=0)n+;s=s-i;kn=i;if(s=O)(printf("%d is a wanshu"J);for(i=0;i printf("%d,",k。);printf("%dn",kn);【程序20题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?1 .程序分析:见下面注释2 .程序源代码:main()(float sn=100.0,hn=sn/2;int n;for(n=2;n<=10;n+) sn=sn+2*hn;/*第n次落地时共经过的米数*/hn=hn/2;/*第n次反跳高度*/)printf("the total of road is %fn",sn);printf("the tenth is %f metern",hn);【程序21题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1 .程序分析:采取逆向思维的方法,从后往前推断。2 .程序源代码:main()(int day,xl,x2;day=9;x2=l;while(day>0)仅l=(x2+l)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2=xl;day-;)printf("the total is %dn",xl);【程序22题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。1 .程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2 .程序源代码:main()char是a的对手,j是b的对手,k是c的对手*/for(i='x,;i<='z'i+) for(j='x'j<='z,;j+)(if(i!=j)for(k='x'k<=,z'k+)if(i!=k&&j!=k)if(i!='x,&&k!='x,&&k!=,z,)printf("order is a-%ctb-%ctc-%cn",i,j,k);【程序23题目:打印出如下图案(菱形)*1 .程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。2 .程序源代码: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("*");printf("n");for(i=0;i<=2;i+)(for(j=0;j<=i;j+)printf("");for(k=0;k<=4-2*i;k+)【程序24题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13求出这个数列的前20项之和。1 .程序分析:请抓住分子与分母的变化规律。2 .程序源代码:main()(int n,t,number=20;float a=2,b=l,s=0;for(n=l;n<=number;n+)(s=s+a/b;t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/printf("sum is %9.6fn",s);【程序25题目:求1+2!+3!+.+20!的和1 .程序分析:此程序只是把累加变成了累乘。2 .程序源代码:main()(float n,s=0,t=l;for(n=l;n<=20;n+)t*=n;s+=t;printf("l+2!+3!.+20!=%en"/s);【程序26题目:利用递归方法求5!。1 .程序分析:递归公式:fn=fn_l*4!2 .程序源代码:#include "stdio.h"main() int i;int fact();for(i=0;i<5;i+)printf("40:%d!=%dn",i/fact(i);int fact(j)intj;int sum;if(j=O)sum=l;elsesum=j*fact(j-l);return sum;【程序27题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1 .程序分析:2 .程序源代码:include "stdio.h" main()(int i=5;void palin(int n);printf("40:");palin(i);printf("n");void palin(n)int n;(char next;if(n<=l)(next=getchar();printf("n0:"); putchar(next);elsenext=getchar();palin(n-l);putchar(next);)【程序28题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1 .程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2 .程序源代码:age(n)int n;int c;if(n=l) c=10;else c=age(n-l)+2;return(c);main()printf("%d”,age(5);【程序29题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1 .程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)2 .程序源代码:main()(long a,b,c,d,e,x;scanf("%lcT,&x);a=x/10000;/*分解出万位*/b=x000/1000;/*分解出千位*/c=x00/100;/*分解出百位*/d=x0/10;/*分解出十位*/e=x;/*分解出个位*/if (a!=0) printf("there are 5,%ld %ld %ld %ld %ldn"e,d,c,b,a);else if (b!=0) printf("there are 4,%ld %ld %ld %ldn"e,d,c;b);else if (c!=0) printf(" there are 3,%ld %ld %ldn",e,d,c);else if (d!=0) printf("there are 2,%ld %ldn",e,d);else if (e!=0) printf(" there are l;%ldn",e);【程序30题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。1 .程序分析:同29例2 .程序源代码:main()(long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x000/1000;shi=x0/10;ge=x;if (ge=wan&&shi=qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwenn");elseprintf("this number is not a huiwenn");【程序31题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。1 .程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。2 .程序源代码:#includevoid main()(char letter;printf("please input the first letter of somedayn");while (letter=getch()!=Y)/*当所按字母为 Y 时才结束*/switch (letter)case 'S':printf("please input second lettern");if(letter=getch()='a')printf("saturdayn");else if (letter=getch()='u')printf("sundayn");else printf("data errorn");break;case 'F':printf("fridayn");break;case ,M,:printf("mondayn");break;case 'TiprintfC'please input second lettern");if(letter=getch()='u,)printf("tuesdayn");else if (letter=getch()='h')printf("thursdayn");else printf("data errorn");break;case ,W,:printf("wednesdayn");break;default: printf("data errorn");【程序32题目:Press any key to change color, do you want to try it. Please hurry up!1 .程序分析:2 .程序源代码:#includevoid main(void)(int color;for (color =0; color <8; color+)textbackground(color);/*设置文本的背景颜色*/cprintf("This is color %drn", color);cprintf("Press any key to continuern");getch();/*输入字符看不见*/【程序33题目:学习gotoxy()与drscr()函数1 .程序分析:2 .程序源代码:#include void main(void)(drscr。;/*清屏函数*/textbackground(2);gotoxy(l,5);/*定位函数*/cprintf("Output at row 5 column ln");textbackground(3);gotoxy(20,10);cprintf("Output at row 10 column 20n");【程序34题目:练习函数调用1 .程序分析:2 .程序源代码:#includevoid hello_world(void)(printfC'Hello, world!n");void three_hellos(void) int counter;for (counter =1; counter <=3; counter+)hello_world();/*调用此函数*/void main(void)three_hellos();/*调用此函数*/【程序35题目:文本颜色设置1 .程序分析:2 .程序源代码:#includevoid main(void)(int color;for (color =1; color <16; color+)textcolor(color);/*设置文本颜色*/ cprintf("This is color %drn", color); textcolor(128+15);cprintf("This is blinkingrn");【程序36题目:求100之内的素数1 .程序分析:2 .程序源代码:#include/include "math.h"#define N 101main()(int i,j,line,aN;for(i=2;ifor(i=2;i for(j=i+l;j if(ai!=O&&aj!=O)if(aj%ai=O)aj=O; printf("n"); for(i=2,line=0;i if(ai!=O)printf("",ai); line+; if(line=10)printf("n");line=O;【程序37题目:对10个数进行排序1 .程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。2 .程序源代码:#define N 10main()int i,j;min,tem,aN;/*input data*/printf("please input ten num:n");for(i=0;iprintf("a%d=",i);scanf("%d",&ai); printf("n");for(i=0;iprintf("",ai);printf("n");/*sort ten num*/for(i=0;imin=i;for(j=i+l;jif(amin>aj) min=j;tem=ai;ai=amin;amin=tem;/*output data*/printf("After sorted n");for(i=0;iprintf("'',ai);【程序38题目:求一个3*3矩阵对角线元素之和1 .程序分析:利用双重for循环控制输入二维数组,再将aii累加后输出。2 .程序源代码:main()(float a33,sum=0;int ij;printf("please input rectangle element:n");for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%f",&aiD);for(i=0;i<3;i+)sum=sum+aii;printf("duijiaoxian he is %6.2f",sum);【程序39题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。1 .程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。2 .程序源代码:main()(int a口1=1,4,6,9,13,16,19,28,40,100;int tempi,temp2,number,end,i,j;printf("original array is:n");for(i=0;i<10;i+)printf(""zai);printf("n");printf("insert a new number:");scanf("%d",&number);end=a9;if(number>end)a10=number;elsefor(i=0;i<10;i+)if(ai>number)templ=ai;ai=number;for(j=i+l;j<ll;j+)temp2=aj;aj=templ;templ=temp2;break;)for(i=0;i<ll;i+)printf("m",ai);【程序41题目:学习static定义静态变量的用法1 .程序分析:2 .程序源代码:include "stdio.h"varfunc()(int var=0;static int static_var=O;printf("40:var equal %d n",var);printf("40:static var equal %d n",static_var);printf("n");var+;static_var+;)void main()int i;for(i=0;i<3;i+)varfunc();【程序42题目:学习使用auto定义变量的用法1 .程序分析:2 .程序源代码:include "stdio.h"main()int i,num;num=2;for (i=0;i<3;i+) printf("40: The num equal %d n",num);num+;auto int num=l;printf("40: The internal block num equal %d n",num);num+;【程序43题目:学习使用static的另一用法。1 .程序分析:2 .程序源代码:#include "stdio.h"main()(int i,num;num=2;for(i=0;i<3;i+) printf("40: The num equal %d n",num);num+;static int num=l;printf("40:The internal block num equal %dn",num);num+;【程序44题目:学习使用external的用法。1 .程序分析:2 .程序源代码:#include "stdio.h"int a,b,c;void add()int a;a=3;c=a+b;void main()a=b=4;add();printf("The value of c is equal to %dn",c);【程序45题目:学习使用register定义变量的方法。1 .程序分析:2 .程序源代码:void main()(register int i;int tmp=0;for(i=l;i<=100;i+)tmp+=i;printf("The sum is %dn",tmp);【程序46题目:宏#define命令练习1 .程序分析:2 .程序源代码:include "stdio.h"#defineTRUE 1#define FALSE 0#define SQ(x)(x)*(x)void main()int num;int again=l;printf("40: Program will stop if input value less than 5O.n");while(again)(printf("40:Please input number=>");scanf("%d",&num);printf("40:The square for this number is %d n"zSQ(num);if(num>=50)again=TRUE;elseagain=FALSE;【程序47题目:宏#define命令练习(2)1 .程序分析:2 .程序源代码:#include "stdio.h"#define exchange(a,b)/*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上int t;t=a;a=b;b=t;void main(void)(int x=10;int y=20;printf("x=%d; y=%dn"zx,y);exchange(x,y);printf("x=%d; y=%dn"zx,y);【程序48题目:宏#define命令练习1 .程序分析:2 .程序源代码:#define LAG >#define SMA <#define EQ=/include "stdio.h"void main()int i=10;int j=20;if(i LAG j)printf("40:%d larger than %d n",i,j);else if(i EQj)printf("40:%d equal to %d n",ij);else if(i SMA j)printf("40:%d smaller than %d n",i,j);elseprintf("40: No such value.n");【程序49题目:#if #ifdef和#ifndef的综合应用。1 .程序分析:2 .程序源代码:#include "stdio.h"#define MAX#define MAXIMUM(x,y)(x>y)?x:y#define MINIMUM(x,y)(x>y)?y:xvoid main()int a=10,b=20;#ifdef MAXprintf("40: The larger one is %dn",MAXIMUM(a,b);#elseprintf("40: The lower one is %dn",MINIMUM(a,b);#endif#ifndef MINprintf("40: The lower one is %dn",MINIMUM(a,b);#elseprintf("40: The larger one is %dn",MAXIMUM(a,b);#endif#undef MAX #ifdef MAXprintf("40: The larger one is %dn",MAXIMUM(a,b);#elseprintf("40: The lower one is %dn",MINIMUM(a,b);#endif#define MIN#ifndef MINprintf("40: The lower one is %dn",MINIMUM(a,b);#elseprintf("40: The larger one is %dn",MAXIMUM(a,b);#endif【程序50题目:#include的应用练习1 .程序分析:2 .程序源代码:test.h文件如下:#define LAG >#define EQ =include "test.h"/*一个新文件50.c,包含 test.h*/include "stdio.h"void main()int i=10;int j=20;if(i LAG j)printf("40:%d larger than %delse if(i EQ j)printf("40:%d equal to %d n",ij);else if(i SMA j)printf("40:%d smaller than %d n",i,j);elseprintf("40: No such value.n");【程序51题目:学习使用按位与& o1 .程序分析:0&0=0;0&1=0;1&0=0;1&1=12 .程序源代码:include "stdio.h" main()int a,b;a=077;b=a&3;printf("40: The a & b(decimal) is %d n",b);b&=7;printf("40: The a & b(decimal) is %d n",b);【程序52题目:学习使用按位或|。1 .程序分析:0|0=0;0|1=1;1|1=12 .程序源代码:include "stdio.h"main()(int a,b;a=077;b=a|3;printf("40: The a & b(decimal) is %d n",b);b|=7;printf("40: The a & b(decimal) is %d n",b);【程序53题目:学习使用按位异或八o1 .程序分析:0Ao=0;0Al=l; lA0=l; lAl=02 .程序源代码:include "stdio.h"main()int a,b;a=077;b=aA3;printf("40: The a & b(decimal) is %d n",b);bA=7;printf("40: The a & b(decimal) is %d n",b);【程序54题目:取一个整数a从右端开始的47位。程序分析:可以这样考虑:先使a右移4位。(2)设置一个低4位全为1,其余全为0的数。可用(0<<4)将上面二者进行&运算。2.程序源代码:main()(unsigned a,b,c,d;scanf("%o",&a);b=a»4;c=(0«4);d=b&c;printf("%on%on",a,d);【程序55题目:学习使用按位取反。L程序分析:0=1;1=0;2.程序源代码:include "stdio.h" main() int a,b;a=234;b=a;printf("40: The a's 1 complement(decimal) is %d n",b);a=a;printf("40: The a's 1 complement(hexidecimal) is %x n",a);【程序56题目:画图,学用circle画圆形。1 .程序分析:2 .程序源代码:"circle*/include "graphics.h"main()int driver,mode,i;float j=l,k=l;driver=VGA;mode=VGAHI;initgrapht&driveG&mode,"");setbkcolor(YELLOW);for(i=0;i<=25;i+)setcolor(8);circle(310,250,k);k=k+j;j=j+0.3;【程序57题目:画图,学用line画直线。1 .程序分析:2 .程序源代码:#include "graphics.h"main()int driver,modej;float xO,yO,yl,xl;float j=12,k;driver=VGA;mode=VGAHI;initgrapht&driveG&mode,"");setbkcolor(GREEN);x0=263;y0=263;yl=275;xl=275;for(i=0;i<=18;i+) setcolor(5);line(xO,yO,xO,yl);x0=x0-5;y0=y0-5;xl=xl+5;yl=yl+5;j=j+10;x0=263;yl=275;y0=263;for(i=0;i<=20;i+)(setcolor(5);line(xO,yO,xO,yl);x0=x0+5;yO=yO+5;yl=yl-5;【程序58题目:画图,学用rectangle画方形。1 .程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2 .程序源代码:#include "graphics.h"main()int xO,y0,yl,xl,driver,mode,i;driver=VGA;mode=VGAHI;initgraph(&driver/&mode,"");setbkcolor(YELLOW);x0=263;y0=263;yl=275;xl=275;for(i=0;i<=18;i+)(setcolor(l);rectangle(xO,yO,xl,yl);x0=x0-5;y0=y0-5;xl=xl+5;yl=yl+5;settextstyle(DEFAULT_FONT,HORIZ_DIR/2);outtextxy(150,40,"How beautiful it is!");line(130,60,480,60);setcolor(2);circle(269,269,137);)【程序59题目:画图,综合例子。1 .程序分析:2 .程序源代码:# define PAI 3.1415926# define B 0.809# include "graphics.h"#include "math.h"main()(int i,j,k,x0,y0,x,y,driver,mode;float a;driver=CGA;mode=CGACO;initgraph(&driver,&mode;"");setcolor(3);setbkcolor(GREEN);x0=150;y0=100;circle(x0,y0,10);circle(x0,y0,20);circle(x0,y0,50);for(i=0;i<16;i+)(a=(2*PAI/16)*i;x=ceil(x0+48*cos(a);y=ceil(yO+48*sin(a)*B);setcolor(2); line(xO,yO,x,Y); setcolor(3);circle(x0,y0,60);/* Make 0 time normal size letters */settextstyle(DEFAULT_FONT,HORIZ_DIR,0);outtextxy(10,170,"press a key");getch();setfillstyle(HATCH_FILL,YELLOW);floodfill(202,100,WHITE);getch();for(k=0;k<=500;k+) setcolor(3);for(i=0;i<=16;i+) a=(2*PAI/16)*i+(2*PAI/180)*k;x=ceil(x0+48*cos(a);y=ceil(yO+48+sin(a)*B);setcolor(2); line(xO,yO,x,y);for(j=l;j<=50;j+)(a=(2*PAI/16)*i+(2*PAI/180)*k-l;x=ceil(x0+48*cos(a);y=ceil(yO+48*sin(a)*B);line(xO,yO,x,y);restorecrtmode();【程序60题目:画图,综合例子。1 .程序分析:2 .程序源代码:#include "graphics.h"#define LEFT 0#define TOP 0#define RIGHT 639#define BOTTOM 479#define LINES 400#define MAXCOLOR 15main()int driver,mode,error;int xl,yl;int x2,y2;int dxl,dyl,dx2,dy2,i=l;int count=0;int color=0;driver=VGA;mode=VGAHI;initgraph(&driver,&mode;"");xl=x2=yl=y2=10;dxl=dyl=2;dx2=dy2=3;while(!kbhit()Iine(xlzyl,x2,y2);xl+=d

    注意事项

    本文(经典c语言编程.docx)为本站会员(无***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开