C语言程序设计经典100题_第1页
C语言程序设计经典100题_第2页
C语言程序设计经典100题_第3页
C语言程序设计经典100题_第4页
C语言程序设计经典100题_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include<stdio.h>#include<string.h>main(){ints(chara[20]);chara[20];intt;gets(a);t=s(a);if(t==l)printf("yes");printf("no");ints(chara[20])intm,n,i;n=strlen(a);return0;return1;abcd"#144%"dcba"ncludencludestring.httinclude"stdio.h"〖程序囗题目;有1、2、3、4个数字,能纟且成多少个互不相同且无重复数字的三位数?都是多少?1程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再.去掉不满足条件的排列。2程序源代的;mti,jk;for(i—l5;i++) /*以下为三重循环*/for(i—lforO=l;j<5;j+) /*确保这、k三位互不相同*/printf("%d,%d%d山",1,〕k);题目;企业发放的奖金根据利润提成。利润〔;)低于或等于10万元时,奖金可提[0%;利润高于10万元,低于20万元时,低于用万元的部分按10%提成,高于用万元的部分,可可提成巧‰;20万到40丿j之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100丿j之间时,高于60万元的部分,可提成1.5%,高于《00丿j元时,超过1開万元的部分按]%提成,从键盘输入当月利润1,求应发放奖金总数?1程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2程序源代码;mam()longint耳mtbonuslbonus2bonus4bonus6bonus10bonus , bonu蚓一]00000*0彐.bonus2一bonu蚓十100000*005.bonu$4一bonus2+200000*0巧bonus6一bonus4十2000000.3.bonu蚓0一bom巧6+400000*巧.]f〔i<一《0佣00)bonus=i*O.l,else1f0<200000)bonus一bonu蚓十0一0000广0.075.elseIf@<:4佣開0)bonu$一bonus2+0一20開00广05el]f〔1<一60佣0帥bonu$一bonus4+@400000广03.elsefl(i<一10佣000)bonus=bonus6+(i-600000)*O.015,elsebonus一bonu蚓0十(i一10000000.0十pnntf("bonus=%d"bonus〖程序3]题目:一个整数,它加上用0后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1程序分析:在10万以内判断,先将该数加上《00后再开方,再将该数加上268后再开方,如果廾方后的结果满足如下条件,即是结果。请看具体分析:2程序源代码;#mclude"math.h"mam()longlilt1,x,y,z:for(i一十i<100m0i十十〕 {x=sqrt(i+100), /*x为加上100后廾方后的结果*/、一sq[t(i十268);0,为再加上168后开方后的结果*7If(x*x:+100&&尹厂:i+268)。如果一个数的平方根的平方等于该数,这说明此数是完全平方数吖printf("ül%ld\n",刂;程程序题目:输入某年某月某日,判断这一大是这一年的第几大?1程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5大即本年的第丿L天,特殊情况,闰年且输人月份大于3时需考虑多加一天。2程序源代码;mam()mtday,month,year,sum,leap•pnn忏0旧卪Inputyear,month,day\n"),scanf("%d,%d,%d",&year,&month,&day)艹h(m。n啕/*先计算某月以前月份的总大数郅caseIzum0-breakcase2:sum31•break;case3:sum59-break;case4:sum90•break;case5:sum=120-breakcase6.sum巧I-breakcaseTsum181•breakcase8:sum=212-breakcase9《sum—243-break-2005一I一22Il.29回复zhleiS12位粉丝2楼case10:sum273break;caseIlun304·b酞.case12:sum334break;default:prmtf("dataerror");breaksum—sum十day;再加上某大的大数]f〔y“1%4開一Oll(yea%4一0&&al%用伊:0龙*判断是不是闰年leap—Ielse暉ea&mont2严如果是闰年且月份人于2,总大数应该师一大郅In("It山e0'山day",sum);}〖程序题目:输人三个整数x半z,请把这三个数山小到大输出。1程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再压x与z进行比较,如果x”则将x与z的值进行交换,这样能使x最2程序源代的;mtx,y,z,t;If(x>Y){t=x;x=y;y=t.}芦交换x,y的值if(x>z){-z-xx一t,尸交换x,z的值,if(y>z){t-y•y-z•z-t;}/*交换z,y的值,pnntf("smalltobig-%d%d%dhn",x,y,z);〖程序6〗题目;用*号输出字母c的图案。1程序分析:可先用'号在纸上写出字母0再分行输出。2程序源代码;#mclude忆旧.hprmtf("He110prmtf("№0pnntf(")*矸)〖程序月题目:输出特殊图案,请在c坏境中运行,看一看VenyBeaut1ful!1程序分析:字符共有256个。不同字符,图形不一样。2程序源代的;#include"std10.hchara:176b:219;puntf("%c%c%c%c%c\n",ba,a,a,b),prmtf("%c%c%c%c%c\n",a,b,ab,的;prmtf("%c%c%c%c%c\n",a,b,ab,的;pnntf("%c%c%c%c%c\n"〖程序题目;输出9*9口诀。1程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2程序源代码;#mclude忆旧.h№0№0{for(j一墻<10;j十十)謝It一1勹·prmtf("%d*%d—%-3d",i,j,resuIt),/*-3d表示左对齐,占3位*/pnn氓№"〕尹每一行后换行,〖程序9]题目:要求输出国际象棋棋盘。1程序分析:用i控制行,j来控制列,根据1+j的和的变化来控制输出黑方格,还是白方格。2程序源代码;#mclude忆旧.hfor(i—08;i++)fo:O;j<8;j+到吣〕%2一printf("%c%c"21乳219〗elseprintf(0pnntf("hn");〖程序1的题目:打印楼梯,同时在楼梯上方打印两个笑脸。1程序分析;用《控制行,j来控制列,j根据i的变化来控制输屮黑方格的个数。2程序源代的;#include"std10.hprm呶"山")尹输出两个笑脸for(i—li<ll+〕forå=l;j<=i;j-*)p[正("%c%c",219,219〕;2005一I一22Il.29回复zhleiS12位粉丝3楼〖程序11〗题目;古典问题.有一对兔子,从出生后第3个月起每个月都生一对奂子,小兔子长到第三个月后每个月又生一对兔了,假如兔子都不死,问每个月的兔子总数为多少?1程序分析;兔了的规律为数列凵,20j,8,13,2上2程序源代的;longfl,f2,for(i=l<:20一i{prmtf()%12尾%121d",f《视),1f0%2一0)pnntf("〕尹控制输出,每行四个fl=f1+f2;前两个月加起来赋值给第三个月十.三郅十.三郅〖程序121题目;判断1.200之间有多少个素数,并输出所有素数。1程序分析:判断素数的方法.用一个数分别去除2到sqlt(这个数),如果能被整除,则表明此数不是素数,反之是素数:2程序源代的;#include"math.h"坦tm坦tmi,h0leap—I,{卜呷1(m十以for(i=2i<=k-i*)《m%传一0{leap—O•break;}If(leap){printf("%-4d",m);h++暉1%1删)pnntf("\n");leap—I;printf("\uThetois%d",h);〖程序巧〕题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:巧3是一个“水仙花数",因为巧3一1的三次方+5的三次方+3的三次方。1程序分析;利用循环控制100一999个数,每个数分解出个位,十位,百位。2程序源代的;mti,jk,npuntf("'waterflowerhumbelis、"):for(n一100;n<1000.n十十〕佣严分解出百位*/j一n/用%10尹分解出十位,k一n%10。产分解出个位if(i叫00到*[0十k一一i每十了j*j十kk*k〕pnntf("%-5d",n〕;〖程序凵〕题目:将一个正整数分解质因数。例如.输入90。打印出佣:2*3*3*的程序分析·对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个数恰等于n,则说明分解质因数的过程己经结束,打印出即可。如果n<>思但n能被整除,则应打印出k的值,并用n除以k的商,作为新的整数你重复执行第一步。)如果n不能被k整除,则用k+l作为k的值,重复执行第一步。2程序源代的;产zhengmtisdividedyinshu*/pmpm叶0旧puntf("%d",n),for(i一2.往一n。1十十)while(n!—a)if(n%i—0){prmtf("%d*"河n=n/i;elsebreak.〖程序巧]题目;利用条件运算符的嵌套来完成此题:学习成绩>一90分的同学用A表示,60一89分之间的用B表示,60分以下的用c表示。1程序分析:(a>b)?a:b这是条件运算符的基本例子。2程序源代码;Intchargmde;printf('pleaseInputascore\n"〕;scanf("%d"&scue);grade—score>—90?'A':(score>—60?'B'•℃)printf("%dbelongs%c",score,grade)-〖程序16〕题目:输入两个止整数m和求其最大公约数和最小公倍数。2005一I一221七30回《复zhlei812位粉丝4楼1程序分析;利用辗除法。2程序源代码;mta,b,numl,uum2,temppnntf("pleaseInputtwonumbers.\n"〕;scanf("%d,%d'T&numl&num2);If(numl{temp-numlnuml—num2num2=temp辗除法,直到b为0为止temp=a%bb—temp;puntf("gongyueshu:%dln",a),pnntf(gongbelshu%dW,numI*num2/a);〖程序171题目;输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数:1程序分析:利用while语句涤件为输人的字符不为.2程序源代码;#mclude忆旧.h{charc•mt怜t巧:0space=Odlgit=Oothers¯Opnntf("pleasemputsomecharactusln");while((c—getchar())!-nn')lettas++else1一'〕else山《0一0&&c<一'9)else0th吓++puntf("allmallchar—%dspace—%d山git一%do山e巧一,血"letters,space,digit,others),〖程序10题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相师),几个数相加有键盘控制“1程序分析;关键是计算出每一项的值:2程序源代的;mta,n,count—llong111tsn=Otn=O-aaandnin")prmtf('pleaseInputwhile(count<—n)忸心1+asn—sn+tn.十十coun《puntf("a+aa+...—%ldln"sn);〖程序1叼题目:一个数如果恰好等于它的因子之和,这个数就稔为“完数"。例如6一1+2+3编程找出佣以内的所有完数。1.程序分析:请参照程序<一上贞程序且2程序源代码;static血tk卩0]mt埽,n,s。foi一20<1開0-,j++〕for(i一1.1 if(0%i)=0)邮一0)printf("%disawanshu",j);printf("%dW,k[n]);〖〖2程序题目:一球从用0米高度自山落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?1程序分析:见下面注释2程序源代码;mam()floatsn一[00.0,一1/2;mtn;for(n=2;n<=lO-n+snsn+2*hnJ*第n次落地时共经过的米数*/№一№0;产第n次反跳高度*/pnntf("thetotalofroadis%fln",sn);puntf("thetenthl.s%fmetel\n",]诅);2005一I一22Il:30回复zhleiS12位粉丝5楼〖程序2囗题目:猴子屹桃问题猴子第一大摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二大早上又将剩下的桃子屹掉一半,又多吃了一个“以后每大早上都吃了前一大剩下的一半零一个。到第用大早上想再屹时,见只藴下一个桃子了。求第一大共摘了多少。1程序分析;采取逆向思维的方法,从后往前推断。2程序源代的:mtday,xl,x2,wh11e(day>O){xl一〔x2+1广2尹第一天的桃子数是第2天桃子数加1后的2倍*/pnntf("thetotalis%dln",xl).〖程序22]题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。己抽签决比赛名单:有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单“1.程序分析;判断素数的方法;用一个数分别去除2到$q这个数),如果能被整除,则表明此数不是素数,反之是素数。2程序源代码;mam()chali,j,k/*i是a的对手,」是b的对手,k是c的对手吖for(i—*'•ic=z十)fo山:父;j<:0为斗+)puntf("orderlsa-、tb一.%etc一%c№"4k)一〖程序23]题目;打印出如下图案(菱形〕1.程序分析:先把图形分成两部分来看待,前四行一个规律,。后三行一个规律,利用双重fol一循环,第一层控制行,第二层控制列“2程序源代码;mti,jk;for(i=ffi<=3-i*)fo咱一0;j<一2一i;j十十)for(i=ffi<=2-i*)fo咱一0;j<一《j十十〕fi。r〔k一0;k<一4一2*i;k十十〕〖程序24)题目;有一分数序列;2山3/厶58巧,巧熠,21/巧.“求出这个数列的前20项之和。1.程序分析:请抓住分子与分母的变化规律。2程序源代码;liltn,t,number20floata—2b—ls—0for(n—l;n<—number,-n++)s=s+a/bt一a,a一a+bb一《0这部分是程序的关键,请读者猜猜t的作用,pnntf("sumis%96f'。〖程序2题目:求1十2!十3土十20,的和1程序分析:此程序只是把累加变成了累乘。2程序源代码;mam()floatn,s—01一for(n=l;n<—20-n+prm叶("I十2,十3'.十2伊一%e№",s〗〖程序26]题目;利用递归方法求5以1程序分析:递归公式:一加一04,2程序源代码;#mclude"std10.hmam()mtfacto,for(i—05;i++)printf("\40‰d!一%d血"i,fact(i))•mtfactomtm,If《J一0)elsesum—J*fact(J-1),retumsum•〖程序2月题目;利用递归函数调用方式1将所输入的5个字符,以相反顺序打印出来。1程序分析:2程序源代到;#mclude"std10.hmam()mt1一5.艹记palin(intn);2005一I一221七30回《复z111ei812位粉丝6楼In悯0:孥palm(i);艹记palin(n)liltn;charnext;next=getcha()putchar(next);elsenext—getchu()palm(n-l〕;putchar(next);〖程序28)题目;有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人丿《两岁。最后问第一个人,他说是10岁。请问第五个人多大?1程序分析;利用递归的方法,递归分为回推和递推两个阶段。要想知道第亓个人岁数,需知道第四人的岁数,依次类推,推到第一人00岁》,再往回推。2程序源代码;age(n)liltn;mtcmtc[e加工no@皿輒"%d",age(S庄〖程序2叼题目:给一个不多于5位的止整数,要求·一、求它是丿L位数,二、逆序打印出各位数字。1.程序分析!学会分解出每一位数,如下解释:(这里是一种同单的算法,师专数002班赵鑫提供〕2程序源代到;longab,cde;x;a一x00佣严分解屮万位,b:x%用開0/用佣产分解出千位c一x‰101佣产分解出百位,d:x%100,黼丿*分解出十位e一x%用严分解出个位*/If(a,一0)prmtf("thereare%尾%ld%旧%ld%尾",ed,c,b,a);elseif(b!=O)pnntf("thereare4:%ld%ld%ld%IdW,ed,c,b);elseif(c!—O)pnntf("thereue3,%Id%尾%Id\n",e,d,,else1f(d!—O)prmtf(thereare2,%尾%Id"砌;ee(e!删〕prmtf("山以eare1,%尾血",e);〖程序3的题目:一个5位数,判断它是不是回文数。412321是回文数,个位与力位相同,十位与千位相同。1程序分析:同29例2程序源代码;main()longge,slll,qmn,wan,xscanf("%ld",&对wan=WlOOOOClian一x%100001000一sht—x%100/lO个位等于万位并且十位等于千位郅sht—x%100/lOprintf("thlsnumberisnotahmweni.n");程序3囗题目:请输人星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母“1程序分析;用情况语句比较好,如果第一个字母一样,则判断用情况语句或语句判断第二个字母。2程序源代到;#mclude<std10.h>艹记main()charletterpnntf('pleasemputthefirstletterofsomedayln");while@巛e[一getch())!一Y严当所按字母为Y时才结束*/{switch0“er){case'S'prmtf("pleasemputsecond1紺t貊")0一gch仞一'a')prmtf("saturday\n");else气le[一gh仞prmtf('sunday\n")7elseprintf("dataenorln")break,case下:prmtf("frlday\n');breakcaseM'printf("mondayhn"〕,-breakcase'T':prmtf("pleaseinputsecondrin孥ilet:g№h仞一prantf("tuesdayW),elseif((letter—getch())—ff)elseprintf("dataerronn");break,casedefault:printf("dataerrorln");#includevoidmain(void)mtcolor;for(color0;color<8,color*)*includecconio.h>voidmain(void)clrscr()textbackground(2);gotoxy(l,atrow5columnIIn"),textbackground(3);gotoxy(20,10);#include#includevoidhello_world(void)world!ln")-,world!ln")-,mtcounter;for(counterfor(counterI;counter*includevoidmain(void)mtcolor;for(color—l;color<16;c0101++)color);color);textc0101C128+15);#include#include#mclude"math.h"#defineN101mam()lilti,jIme,皚N」.fi。r(i一2N.i十十)a[il—lfor(i—2“$叫(N);宀〕fo咱一1十墻<NZi十十〕ifi(a[1]!一0&&吨刂!)ifi(哋]%币]一a里;}for(i—2Ime—O•i<Ni十十)2005一I一221七30回《复zhlei812位粉丝8楼If(a[i]!一0)If(lme—10){prmtf("ln"),line-0;}〖程序3刀题目;对10个数进行排序1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。2程序源代的;#defineN10{mt1,J,mm,tem,a[N]•产inputdata*/puntf('pleaseunputtennum:ln");for(i—0N.i十十)prmtf('at%d]—"璞/*SOLttennum*"'for(i—0N一I,1十十)for(n+I;j<Nkj+)If(aftmn]>aü]〕mm—I,tem=a[l]a[l]—a[nun]a[mm]—tem;/*outputdata*/pnntf("Afters01ted\n"),for(i—0N;1++)p工m呶'%Sd",a[引;〖程序38〗題目;求一个3*3矩阵对角线元素之和1.程序分析:利用双重f。r循环控制输入二维数组,再将a[il[i]累加后输出。源代到;2、程序floata[3]C3],sum=O-pnntf('pleaseInputrectangleelement-\n");for(i—03;i++)fo咱一0;j<3《j十十〕scanf("%P',&aCi]O]);for(i—03;i++)mum十a[刂[刂.〖程序3叼题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。1.程序分析:首先判断此数是否大于最后一个数,然后再考虑插人中间的数的情况,插入后此元素之后的数,依次后移一个位置。2程序源代码;mam()lilta111]—{14,6,9,巧,[6,19,28,40,100},mttempl,temp2,number,endi,j,number:number:");end—a[9];if(number>end)allelse{temp{tempa[i]—number;{temp2=aLi],tempI=temp2break;#defineN5mam(){inta[N]onginalarray:ln"),ali]-aCN-i-1],sortedan-ayhl");2005-1-2211•301@lązhleiSl10E0&0-o;O&l-o;1&0-o;1&1-1#include"std10.h"mamoa=077,#include"stdio.h”mamointa,b,a—077;b=ap;Thea&b(decimal)is%dbl-7•rb(decimal)b(decimal)is%d\n”,b);#include"stdło.h”liltaba一077;In('气4Thea&b(deczmal)9 ",b);pnntf("\40:Thea&b(decimal)is%dkn",b);〖程序5的题目:取一个整数a从右端廾始的4一7位。程序分村0可以这样考虑:山先使a右移4位。o设置一个低4位全为1,其余全为0的数。可用、<<4〕0)将上面过者进行&运算。2程序源代码;unsigneda,bcd、b—a>>4d=b&cprm叶('%0、n‰0、n",a,d美b—a>>4〖程序55)题目:学习使用按位取反~1程序分析;一1;一1,2程序源代的;#include"std10.hmam()liltaba一234;In廿('气40:Thea's1complement(decunal)is%d血》切,InIn('气40:Thea'sis1complement(hexldecamal)%x\n",a),〖程序56〕题目:画图,学用“Cle画圆形。*include'graphics.h"main(){mtsetcolor(S);k—k+j;#include"graphics-Il"mam(){intsetcolu(5);xO=xO-5y0—y0-5,xl—xl+5;yl—yl+5;j-j+10;setcolor(5);xo—x0+5;yl—yl-5,#include'lgmplucs.h"mam(){intxO,yO,yl,dliver-VGAß110de-VGAH1-,&mode,);setbkc0101(YELLOW),setcolor(l);x0—x0-5;y0=yO-5xl—xl+5,yl—yl+5;DIR,2);2005-1-2211•31zhleiSIbeautifulitis!")•setcolor(2);#3.1415926define3.1415926#defineB0.S09#include"graphics.h"#include"math.h"mam()floata;setcolor(3);setbkc010r(GREEN)xo-ISO-yo-IOO,circle(xOcircle(xOIO)y—ceil(yO+48*sm(a)*B);/*Make0tunenormalsizeletters*fsettextsty1e(DEFAULTFONT,HORIZDIR,O);akey");getch();setfi11sty1e(HATCHFILL,YELLOW);floodf111(202,1OOWHITEgetch()getch()setc0101(3);y=cei1(y0+48+sin(a)*B);setc0101(2), forO—l 50;j++)x—cei1(xO+48*cos(a));restorecrtmode();#include"graphics-Il"LEFTO*defineTOPO*defineRIGHT639*defineBOTTOM479*defineLINES400*defineMAXCOLOR15mam()intmtxlmtx2,y2,mtmtdxl,dyl;mtcount=0;mtcolor0,driver—VGAmode=VGAH1;&mode,)while(!kbhit())line(xlxl+—dxl,-yl4—dyl,dxl—-dxl,dyl—dyl;-LEFTllx2>-RIGHT)dx2—dx2,-TOPlly2>-BOTTOM)dy2dy2dy2setcoloł(color);closegraph();2005-1-2211•311@lązhleiSl12E21#include"stdio.h"#include"graphics.h"mam()setbkc010r(YELLOW);#include"std10.h"*include"graphics.h"#include"conio.h"mam()mtnum—20,i;inttop,bottom;&mode,top—y-30;bottom=y-30;top-—5;bottom-+5;getch();*include"std10.h"#include"graphics-Il"#include"conio.h"mam()mtdriver-VGA,mode-VGAH1;rectangle(20-2mti,numright+=57left+5,mti,numgetch();#include"graphics.h"#mclude"math.h"#include"dos.ll"#include"conio.h"#mclude"stdlib.h"#include"stdio.h"#include"stdug.h"*defineMAXPTS15PI3.1415926stmctPTS{mtx,y;doubleAspectRano—0.85;voidLmeToDemo(void)stmctviewporttypevp;PTSpomtsCMAXPTS);mti,j,h,w,xcenter,ycentelmtmdius,angle,step;doublerads;pnntf("MoveTo/LineToDemonstration"getuewsettmgs(&vp);h—vp.bottom-vp.top;w—vp.light-vp.left,xcenter—w/2'l*Determinethecenterofcircle*fycenter11/2;radius—(h-30)/(AspectRatio*2);step—360/MAXPTS•Determine#ofincrementsangle=O;Begmatzerodegreesfor(;i<MAXPTS;){/*Determmecawleintercepts*/mds(double)angle*PI/180.0;Convertaugletoradianspomtsli].x—xcentel+cos(rads)*ladius);pomts[il.y—ycenter-(int)(sm(rads)*radius*AspectRatio);angle-estep;/*Movetonextincrement*/circle(xcenter,ycenter,radius);Drawboundingcircle*/2005-1-2211-32zhlei8113Efor( i<MAXPTS++if*Drawthecordstothecircle*/;j<MAXPTS++3){l*ForeachremamingIntersect*fmoveto(points[i].x,points[i].y);f*Movetobeginningofcord*/pomtsLj].y);Drawthecordmain(){mtdliver,mode;driver-CGA'Jnode-CGACO;&mode,setcolor(3);setbkc010r(GREEN)LineToDemo();}'*pointer*'mam()intnl mt*pomtecmt*pomtecl,*pomte12,*puntedpointer2&u2,swap(pointerl,pointer2);if(nl>n3)swap(pointerl,pointe13);,n2,n3);swap(pI,p2)int*pl,*p2;{mtp,p—*pl;*pl—*p2;*p2—p;mam()mtnumber[lO]mput(number);maxmin(number);output(number),input(number)mtnumber[10]{mti;max_mm(array)mtan-ay110];{mt*max,arr_end—array+10max=mmarray;return.output(array)mtarrayClO];for(pfor(p=array;p+)mam()scanf("%d",&n);move(number,n,m);lilt*p,uray—endarray—end—*(array十11-1),for(p-muay+n-l;p>array,p--)array—arrayend]f〔m>0〕move(armyn,m〕;〖程序69)题目;有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数〕,凡报到3的人退出圈子,问最后留下的是原来第几号的那位。1.程序分析·2程序源代的;#definenmax50mti,k,些n,num[皿]皿prmtf(pleaseInputthetotalOfnun止e巧:"〕;P¯num,for(i一0往n;i十十)報i)一1+1。while(mcn-l)斑k一3〕whl一0〕p十十puntf("%d讨left血",*p〕,〖程序7的题目:写一个函数,求一个字符串的长度,在函数中输人字符串,并输出其长度。1程序分析;2程序源代的;mtlenchal*st[[20],prmtf(pleaseInputamg.scanf("%s",str);leu-length(stl);prmtf('thestrmghas%dcharacters.",k啕《length(p)mtn;whi蜮*到0〕retumn2005一I一22Il:32回复zhleiS12位粉丝14楼〖程序7门题目:编写mput()和叩ut()函数输入,输出5个学生的数据记录,,1程序分析:2程序源代码;#defineN5stmctstudent{charnum[6],charnameLSJ;mt可e[4];}stuLNJ,mput(stu)stmctstudentstu[]{mti.j,for(i一0i<N•i十刁{pleaseInput%dof%düi',i+l,N);prmtf("num:");scanf("%s",stu[i].name);scoreli]);print(stu)stmctstudentStull,NameScolSc02Sc031n");main()input()print(),'*creatalist*/#include"stdlib.h"*include"std10.h"stmctlist{mtdata,stmctlist*next;typedefsnuctlistnode;typedefnode*linkvoidmain(){Imkptr,head;mtnum,r,pü—head;prmtf("pleaseInput5scanf("%d",&num);pti>data=num;ptr->next—NULLelseptFhead;'*reverseoutputalist*/#mclude"stdlib.h"#include"stdio.h"stmctlist{mtdata;stmctlist*next;typedefsnuctlistnode;typedefnode*linkvoidmain(){linkmtnum,itml—(link)malloc(sizeof(node));ptrtail;heaptFhead;pte-ptr->next;*include"stdlib.h"*include"std10.h"stmctlist{mtdata,stmctlist*next,typedefsnuctlistnode;typedefnode*linklinkdelete_node(lmkpointer,luuktmp){If(tmp—NULL)'*deletefirstnode*/returnpointer>next;else{if(tmp->next->next=NULL)/*deletelastnode*/tmp->next-NIJLL;else'*deletetheothernode*'retumpointer;voidpointer,mtnum){linktmp,btmp,mti,min,ump—pointer;mm—tmp>data;btmp-NULL,while(tmp->next){if(min>tmp->next->data)ta,btmp—tmp;tmp),2005-1-2211:32zhlei8115Enum)linkcreatelinkcreatetmpI=pointer;tmpl—tmpI->next;returnpointerlinkconcatenate(linkpomterI,linkpomter2){linktmp,tmp—pomterIwhile(tmp->next)tmp—tmp->next,tmp->next—pointer2;returnpointerIvoidmain(void)Imkptr;〖程序75)题目;放松一下,算一道简单的题目1程序分析:2程序源代到;mtn〕for(i—l5;i++)n—n十十暉一匀暉!一4)斑n一一匀prmtf("zhuhaoshideshr%c"64十1);〖程序76]题目:编写一个函数,输人n为偶数时,调用函数求1/2十1/4十“十,当输人n为奇数时,调用函数旧+1/3+一+1回利用指针函数)1程序分析:2程序源代到;#mclude忆旧.hfloatpeven(),podd(),dcall(),floatsum,mtn;willie山scanf("%d"&可斑n>1)break;if(n%2一删)elsefloatpeven(L11tn)floats,for(i=2for(i=2retum(s);floatpodd(n)mtn;floats;mti;for(i=lfor(i=lretum(s);floatdcall(fpfloatmtn;floats,retum(s);mam(){charsister"};chalmtk;#defineN4#include"std10.h"staticstmctman{charname[20],mtage;}"11",18,"wang",19,"sun",22};mam(){stmctman*q,*p;mtp—person,forformq->age;}main()char*stripm,charswap(),unputthreestrings\n");scanf("%s",str3);puntf("aftelbemgsonedln");prm叶("%巛n%山1‰sln"酊s舡2,str3),charswap()l,p2〕char*pl,*p2;char*p卩叶叩y(p,p以st[叩y@卿2〕;s恤py巾2〖程序8的题目:海滩上有一堆桃子,五只猴子来分。第一只猴了把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成亓份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三,第四`第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1程序分析;2程序源代的;{mti,m,],k,count;for(i—4彐m00.i十一4){{count=Oelsebreak;If(count—4){prmtf("%d\u",count),bleak;}2005一I一221于32回《复zhlei812位粉丝16楼〖程序8门题目:809”?:8開*”+9*??+1其中”代表的两位数:80?的结果为两位数,9*”的结果为3位数。求??代表的两位数及809凹?后的结果。1程序分析:2、程序源代码;output(longb,long0{rm呶"貊%1%尾一809孬%尾十%囝",b,1,1,b‰0;mam(){long前ab《a一809;for(i—10;i<100i十十〕{b=i*a+Iif(b>一10開&&b<一100佣&&8<《00&&9*i>一100〕output(b}〖程序82]题目;八进制转换为十进制1程序分析:2、程序源代码;mam(){char*p,耳6]intngets(p);while()(勇!一〕{n一n孬8十加一'0"prmtf('%d",n);〖程序83〕题目:求0一7所能组成的奇数个数“1程序分析;2程序源代的;longsum=4s=4-for(i一2;j<一8力十十)严jIsplaceofnumber*/elsesum+—s;}#include"std10.h"#mclude"math.h"main(){mta,b,c,d;for(bfor(bif(b%c=O)break;d—a-b;elsebreak;main(){longantmtscanf("%d",&zi);whlle(nl{if(!(sum%zi))else10,sum—sum+m9;#include"stdio.h"mam()mam(){charelsep-b+J,elsep=a+i,putsC;#include"std10.h"stmctstudent{111tx;charc;mam(){ax—3;puntf("%d,%c"ax,aec),f(stmctstudentb)〖程序8对题目:读取7个数0一50)的整数值,每读取一个值,程序打印出该值个数的*。1程序分析:2程序源代码;mam(){mti,a,n=1。while(n<—7){do{}可〔a<刂汇巧for(i=li<=a徉到getch()•〖程序89)题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,密规则如下:每位数字都加上5,然后用和除以的余数代替该数字,再将第一位和第些位交换,第二位和第三位交换。1程序分析:2程序源代码;{mta,i,aa[4],t;aaLOJ—a%10一aa卩]一a%10000aaL2J—a%100100.aa[3]—a/10佣;for(i=ffi<=3-i*){t—aali],aa[3-i]=t;*include"std10.h"#defineM5mam(){intmti,j,t;i-O-j-M-1;while(i{t=*(a+i);printf("%d",*(a+i));2005-1-2211:33zhlei8117E*include"std10.h"#include"Ume.h"voidmain(){timetIt;/*definealonginttimevarible*/tameanddate*'prmtf(ctime(<));/*englishformatoutput*/puntf(asctune(localüme(<)));/*tranfeltotm*'prmtf(asctmr(gmtme(<)));/*tranfertoGreenwchtime*/〖程序92]题目;时间函数举例21程序分析:2程序源代码;/*calculatetime*/#mclude"tlme.h#mclude"std10.hmam(){time-tstart,end;start—time(NULL);fOl.(i:O-i<3000,i斗+)end-tune(NULL);In(,上Thedifferentis%6.30虻,山憤]melidt“0),〖程序93〕题目:时间函数举例31程序分析:2程序源代的;'*calculatetime*/#mclude"Ume.h#mclude忆旧.h{clocktsta.ltend-doublevarstart—clock()·for(i=O•i<IOOOO;i+)end—clock()•pnntf("\l-Thedifferentis%6.3fln",(doubIe)(end-stmt)),〖程序94〕题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。(版主初学时编的)1程序分析:2程序源代码;#mclude"tlme.h#include"stdlib.h"*include"std10.h"mam(){charc;clocktstart,end;timeta,b;doublevar;mti,guess;scand(UmeCNULL));youwanttoplayit.Cy'or'n')W);loop.mputnumberyouguess:ln");start=clockOa-time(NULL);scanf("%d",&guess);{printf("pleaseinputalittlesmaller.In");scanf("%d",&guess);}else{printf("pleaseinputalittlebigger.ln");scanf("%d",&guess);}b-tme(NULL);printf("IIttookyou0/06.3f 18.2);puntf("l.ittookyouYouarevelYclever!Il\lhnln");youarenormal!elsegotoloop;'*moneymanagementsystem*I#include"std10.h"*include"dos.h"main()FILE stmctdated;.0;charch[41—"-",chl[16]-"pp.cllscr(),sum—O.0,gotoxy(l,I2005-1-2211:33z111

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论