关闭

关闭

关闭

封号提示

内容

首页 C语言编程题精选.doc

C语言编程题精选.doc

C语言编程题精选.doc

上传者: 麦家小兜zZ 2012-09-26 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《C语言编程题精选doc》,可适用于IT/计算机领域,主题内容包含C语言编程题精选、编程实现对键盘输入的英文名句子进行加密。用加密方法为当内容为英文字母时其在字母中的其后三个字母代替该字母若为其它字符时不变。、编程符等。

C语言编程题精选、编程实现对键盘输入的英文名句子进行加密。用加密方法为当内容为英文字母时其在字母中的其后三个字母代替该字母若为其它字符时不变。、编程实现将任意的十进制整数转换成R进制数(R在之间)。、从键盘输入一指定金额(以元为单位如)然后显示支付该金额的各种面额人民币数量要求显示元、元、元、元、元、元、角、角、分、分各多少张。(输出面额最大值:比如=******)、随机产生个的正整数存放到数组中并求数组中的所有元素最大值、最小值、平均值及各元素之和。、编程在一个已知的字符串中查找最长单词假定字符串中只含字母和空格空格用来分隔不同单词。、模拟n个人参加选举的过程并输出选举结果:假设候选人有四人分别用A、B、C、D表示当选某候选人时直接输入其编号(编号由计算机随机产生)若输入的不是A、B、C、D则视为无效票选举结束后按得票数从高到低输出候选人编号和所得票数。、任何一个自然数m的立方均可写成m个连续奇数之和。例如: ^= ^= ^= ^=编程实现:输入一自然数n求组成n的n个连续奇数。、知abccba=其中a,b,c均为一位数编程求出满足条件的a,b,c所有组合。、编制一个完成两个数的四则运算程序。如:用户输入则输出结果。要求运算结果保留两位小数用户输入时一次将两个数和操作符输入。、输入一个五位以内的正整数()判断它是一个几位数()请按序输出其各位数字()逆序输出其各位数字。如输入:输出:位数          、编写子函数:()用冒泡法将一个数组排成升序的函数SUB()在升序数组中插入一个数并且保持该数组仍为升序数组的函数SUB。主函数:输入任意个正整数给数组调用SUB对数组进行排序从键盘输入一个正整数调用SUB将其插入该数组。、编写函数:()用选择法将数组排成降序的函数SUB()用折半查找法查找某数是否在给定的数组当中的函数SUB。主函数:输入任意个正整数给数组调用SUB对数组进行排序从键盘输入一个正整数调用SUB在数组中进行查找找到后输出“OK”没有找到则输出“NOFOUND!”。、编写一个程序输入两个包含个元素的数组先将两个数组升序排列然后将这两个数组合并成一个升序数组。、耶稣有个门徒其中有一个就是出卖耶稣的叛徒请用排除法找出这位叛徒:人围坐一圈从第一个开始报号:……凡是报到“”就退出圈子最后留在圈内的人就是出卖耶稣的叛徒请找出它原来的序号。、按如下图形打印杨辉三角形的前行。其特点是两个腰上的数都为其它位置上的每一个数是它上一行相邻两个整数之和。……、某班有个学生三门课。分别编写个函数实现以下要求:()求各门课的平均分()找出有两门以上不及格的学生并输出其学号和不及格课程的成绩()找出三门课平均成绩在分的学生并输出其学号和姓名主程序输入个学生的成绩然后调用上述函数输出结果。、编写一人个求X的Y次幂的递归函数X为double型y为int型要求从主函数输入xy的值调用函数求其幂。、打印魔方阵。所谓魔方阵是指这样的的方阵:它的每一行、每一列和对角线之和均相等。输入n要求打印由自然数到n的自然数构成的魔方阵(n为奇数)。例如当n=时魔方阵为:   魔方阵中各数排列规律为:将“”放在第一行的中间一列从“”开始直到nn为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减列数同样加如果上一数的行数为则下一个数的行数为n(最下一行)如在方阵中在第行则应放在第行第列。当上一个数的列数为n时下一个数的列数应为行数减。如在第行第列应在第行第列。如果按上面规则确定的位置上已有数或上一个数是第行第n列时则把下一个数放在上一个数的下面。如按上面的规定应放在第行第列但该位置已被占据所以就放在的下面。由于是第行第列(即最后一列)故放在下面。、找出一个二维数组中的“鞍点”即该位置上的元素在该行中最大在该列中最小(也可能没有“鞍点”)打印出有关信息。、马克思在《数学手稿》中提出如下问题:有个人(包括男人、女人和小孩)在一家饭店吃饭共花先令其中每个男人花先令每个女人花先令每个小孩花先令问男人、女人、小孩各有多少人?、定义一个结构体变量(包括年、月、日)计算该日在本年中为第几天?(注意考虑闰年问题)要求写一个函数days实现上面的计算。由主函数将年月日传递给days函数计算后将日子传递回主函数输出。、建立一个链表每个结点包括:学号、姓名、性别、年龄输入一个学号如果链表中的结点包括该学号则输出该结点内容后并将其结点删去。、给定一个日期求出该日为星期几(已知为星期四)。、用递归法将一个整数n转换成字符串(例如输入应输出字符串“”)n为不确定数可以是位数不超过且数值在~之间和任意整数。、有一个字符串包括n个字符。写一个函数将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。、在主函数中输入个字符串用另一个函数对他们按从小到大的顺序然后在主函数中输出这个已经排好序的字符串。要求使用指针数组进行处理。、编写一个函数实现对两个字符串的比较。不用使用C语言提供的标准函数strcmp。要求在主函数中输入两个字符串并输出比较的结果(相等的结果为不等时结果为第一个不相等字符的ASCII差值)。、有一个unsignedlong型整数先要分别将其前个字节和后个字节用为两个unsignedint型整数输出(设一个int型数据占个字节)试编写一函数partition实现上述要求。要求在主函数输入该long型整数在函数partition中输出结果。、编一程序能把从终端读入的一个字符中的小写字母全部转换成大写字母然后输出到一个磁盘文件“test”中保存(用字符!表示输入字符串的结束)。、有五个人坐在一起问第个人多少岁?他说比第个人大岁。问第个人多少岁?他说比第个人大岁。问第个人多少岁?他说比第个人大岁。问第个人多少岁?他说比第个人大岁。最后问第个人多少岁?他说是岁。请问第个人多大?(这是一个递归问题)参考答案、编程实现对键盘输入的英文名句子进行加密。用加密方法为当内容为英文字母时其在字母中的其后三个字母代替该字母若为其它字符时不变。#include<stdioh>main(){charcprintf("pleaseinputastring:")while((c=getchar())!='n'){if(c>='A'c<='W'||c>='a'c<='w')c=celseif(c>='X'c<='Z'||c>='x'c<='z')c=(c)printf("c",c)}printf("n")return}、编程实现将任意的十进制整数转换成R进制数(R在之间)。#include<stdioh>#include<conioh>voidmain(){intn,R,i=,a={}charstr="ABCDEF"clrscr()printf("pleaseinputanintegernumber:n")scanf("d",n)printf("pleaseinputR:n")scanf("d",R)if(n<){printf("c",'')n=n}while(n!=){ai=nRn=nR}while(i>)printf("c",strai)getche()}、从键盘输入一指定金额(以元为单位如)然后显示支付该金额的各种面额人民币数量要求显示元、元、元、元、元、元、角、分、分各多少张。#include<stdioh>main(){inta,a,a,a,a,a,a,a,afloatfa=a=a=a=a=a=a=a=a=printf("pleaseinputafloatnumber:")scanf("f",f)while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}while(f>){f=fa}printf("a=d,a=d,a=d,a=d,a=d,a=d,a=d,a=d,a=dn",a,a,a,a,a,a,a,a,a)return}、随机产生个的正整数存放到数组中并求数组中的所有元素最大值、最小值、平均值及各元素之和。#include<stdlibh>#include<conioh>voidmain(){inta,i,ran,max,min,sum,averageclrscr()for(i=i<=i){while((ran=random())==)ensureranbetweenandai=ran}max=min=ainitializeheresum=for(i=i<=i){printf("ad=dn",i,ai)sum=aiif(max<ai)max=aielseif(min>ai)min=ai}average=sumprintf("nsum=d,max=d,min=d,average=dn",sum,max,min,average)puts("nanykeytoexit!")getche()}、编程在一个已知的字符串中查找最长单词假定字符串中只含字母和空格空格用来分隔不同单词。#include<stdioh>#include<conioh>voidmain(){charstring,*pinti=,max=clrscr()printf("pleaseinputastring:n")gets(string)printf("nsn",string)p=stringwhile(*p!=''){if(*p==''){if(max<=i)max=ii=}elseip}if(max<=i)max=iprintf("nmaxlengthofthestringis:dn",max)getche()}、模拟n个人参加选举的过程并输出选举结果:假设候选人有四人分别用A、B、C、D表示当选某候选人时直接输入其编号(编号由计算机随机产生)若输入的不是A、B、C、D则视为无效票选举结束后按得票数从高到低输出候选人编号和所得票数。#include<stdioh>#include<conioh>#include<stdlibh>#include<timeh>voidmain(){inti,n,A,B,C,D,abandon,ranabandonstandfortheoneswhoabandonclrscr()A=B=C=D=abandon=printf("Enterthenumberofpersons:")scanf("d",n)npersonstoselectfromcandidatea,b,canddrandomize()for(i=i<=ni){ran=random()A,B,C,Dandtheoneswhoabandonswitch(ran){case'A':Abreakcase'B':Bbreakcase'C':Cbreakcase'D':Dbreakdefault:abandon}}printf("nA=d,B=d,C=d,D=d,abandon=dnn",A,B,C,D,abandon)i=while(i!=){if(A>=BA>=CA>=DA!=){printf("A=d,",A)A=}if(B>=AB>=CB>=DB!=){printf("B=d,",B)B=}if(C>=AC>=BC>=DC!=){printf("C=d,",C)C=}if(D>=AD>=BD>=CD!=){printf("D=d,",D)D=}}printf("abandon=d,nn",abandon)getch()}任何一个自然数m的立方均可写成m个连续奇数之和。例如:^=^=^=^=编程实现:输入一自然数n求组成n的n个连续奇数。#include<conioh>#include<stdioh>#include<mathh>voidmain(){inti,j,n,sum,countclrscr()printf("nanintegerhereplease:")scanf("d",n)printf("n")i=(int)floor(sqrt((float)n))if(i==)ii=for(i<=n*n*ni=){sum=count=for(j=ij<=n*n*nj=){sum=sumjcountif((n*n*n==sum)(count==n))break}if((sum==n*n*n)(count==n))break}printf("i=d,j=dnn",i,j)printf("d*d*d=",n,n,n)while(n>){printf("d",i)i=}for(i<ji=)printf("d",i)printf("d",i)getch()}、已知abccba=其中a,b,c均为一位数编程求出满足条件的a,b,c所有组合。#include<stdioh>#include<conioh>voidmain(){intnum,a,b,cclrscr()printf("Pressanykeytocalculate!nn")getch()for(num=num<num){a=numb=numc=numif(numc*b*a==)printf("ndd=n",num,c*b*a)}while(!kbhit())}、编制一个完成两个数的四则运算程序。如:用户输入则输出结果。要求运算结果保留两位小数用户输入时一次将两个数和操作符输入。#include<stdioh>#include<conioh>voidmain(){floatnum,numcharsclrscr()printf("Enterastatementplease:")scanf("fcf",num,s,num)switch(s){case'':printf("fcf=f",num,s,num,numnum)breakcase'':printf("fcf=f",num,s,num,numnum)breakcase'*':printf("fcf=f",num,s,num,num*num)breakcase'':printf("fcf=f",num,s,num,numnum)breakdefault:printf("InputError!")}getch()、}、输入一个五位以内的正整数()判断它是一个几位数()请按序输出其各位数字()逆序输出其各位数字。如输入:输出:位数                    #include<conioh>#include<stdioh>longpower(intn){intilongresult=for(i=i<=ni)result=*resultreturnresult}voidmain(){longnum,n,jintcount=,tmpcountclrscr()printf("Pleaseinputanumber():")scanf("ld",num)n=numwhile((n=n)!=)countprintf("nldisaddigitsnn",num,count)tmpcount=counttemporarytmpcountforlateruseinstatementAn=numwhile(count>){j=power(count)printf("d,",nj)n=nj}printf("dn",n)n=numwhile(tmpcount>)statementA{printf("d,",n)n=n}printf("dn",n)getch()、}、编写子函数:()用冒泡法将一个数组排成升序的函数SUB()在升序数组中插入一个数并且保持该数组仍为升序数组的函数SUB。主函数:输入任意个正整数给数组调用SUB对数组进行排序从键盘输入一个正整数调用SUB将其插入该数组。#include<conioh>#include<stdioh>voidmain(){inti,k,a={}afornousevoidsub(intb),sub(intb,intk)clrscr()printf("Pleaseinputnumbers:")for(i=i<=i)scanf("d",ai)getchar()sub(a)for(i=i<=i)printf("nad=dn",i,ai)printf("nnpleaseinputanumbertobeinsertedintothearray:")scanf("d",k)sub(a,k)for(i=i<=i)printf("nad=dn",i,ai)puts("nAnykeytoexit!")getch()}voidsub(b)intb{inti,j,tfor(i=i<i)thefirstoneisalwaysthesmallestfor(j=ij<=j)if(bi>bj){t=bibi=bjbj=t}}voidsub(intb,intk){intifor(i=i>=i){if(k<bi)bi=bielse{bi=kbreak}}}、编写函数:()用选择法将数组排成降序的函数SUB()用折半查找法查找某数是否在给定的数组当中的函数SUB。主函数:输入任意个正整数给数组调用SUB对数组进行排序从键盘输入一个正整数调用SUB在数组中进行查找找到后输出“OK”没有找到则输出“NOFOUND!”。#include<conioh>#include<stdioh>voidmain(){inti,key,a={},sub(),sub()printf("pleaseinputnumber:")for(i=i<=i)scanf("d",ai)getchar()sub(a)for(i=i<=i)printf("ad=d,",i,ai)printf("npleaseinputakeynumber:")scanf("d",key)sub(a,key,,)getch()}intsub(intb){intt,i,j,postfor(i=i<i){post=ifor(j=ij<=j)if(bpost>bj)post=jif(post!=i){t=bibi=bpostbpost=t}}return}intsub(intc,intk,intn,intn){inti=n,j=n,mm=(ij)while(i<=j){if(k<cm)j=mif(k>cm)i=mif(k==cm)breakm=(ij)}if(k==cm)printf("OK!n")elseprintf("NOFOUND!n")return}、编写一个程序输入两个包含个元素的数组先将两个数组升序排列然后将这两个数组合并成一个升序数组。#include<stdioh>#include<conioh>voidmain(){inti,j,k,a={},b={},c={},sub()clrscr()printf("npleaseinputintnumberstoarray:")for(i=i<=i)afornousescanf("d",ai)getchar()sub(a,)printf("npleaseinputintnumberstoarray:")for(i=i<=i)bfornousescanf("d",bi)getchar()sub(b,)printf("nthesortedarrayais:nn")for(i=i<=i)printf("ad=d",i,ai)printf("n")printf("nthesortedarraybis:nn")for(i=i<=i)printf("bd=d",i,bi)k=i=j=while(i<=j<=)if(ai<bj)ck=aicfornouseelseck=bjif(i<j)appendingtherestonesinarrayafor(i<=i)ck=aielseappendingtherestonesinarraybfor(j<=j)ck=bjprintf("nn")printf("nthemergedarraycis:nn")for(k=k<=k){if(k==)printf("n")printf("cd=d",k,ck)}while(!kbhit())}intsub(intb,intn){intt,i,j,postfor(i=i<ni){post=ifor(j=ij<=nj)if(bpost>bj)post=jif(post!=i)j{jt=bibi=bpostbpost=t}}return、}、耶稣有个门徒其中有一个就是出卖耶稣的叛徒请用排除法找出这位叛徒:人围坐一圈从第一个开始报号:……凡是报到“”就退出圈子最后留在圈内的人就是出卖耶稣的叛徒请找出它原来的序号。*approachone#defineN#include<stdioh>#include<conioh>structperson{intnumberitsorderintheoriginalcircleintnextprecorditsnextperson}structpersonlinkNlinkfornousevoidmain(){inti,count,nextcountforpersons,andnextforthepersonnotoutofcircleyetclrscr()for(i=i<=Ni){linkinumber=inumberingeachpersonif(i==N)linkinextp=elselinkinextp=inumberingeachnextperson}printf("nThesequenceoutofthecircleis:n")for(next=,count=count<Ncount)countuntilpersons{i=while(i!=)icounts,,{doskiptheoneswhosenumbersarezeronext=linknextnextpwhile(linknextnumber==)endofdoi}printf("d",linknextnumber)linknextnumber=indicateoutofcirclealreadydostartfromtheoneswhosenumbersarenotzeronexttimenext=linknextnextpwhile(linknextnumber==)}printf("nnThebetrayerofthemis:")for(i=i<=Ni)if(linkinumber)printf("dn",linkinumber)getch()}*approachtwousingcycliclist#defineN#defineLENsizeof(structperson)#include<stdioh>#include<conioh>#include<alloch>#include<stdlibh>structpersonpermitstructplacedhere{intnumberstructperson*next}voidmain(){inti,countstructpersonorpermitstructplacedherealso{intnumberstructperson*next}structperson*head,*p,*pclrscr()head=p=for(i=i<=Ni){p=(structperson*)malloc(LEN)p>number=iif(head==)head=pelsep>next=pp=p}p>next=headprintf("nthesequenceoutofthecircleis:n")for(count=count<Ncount){i=while(i!=){p=headhead=head>nexti}p=headprintf("d",p>number)p>next=head=p>nextfree(p)}printf("nThebetrayerofthemis:nd",head>number)getch()}、按如下图形打印杨辉三角形的前行。其特点是两个腰上的数都为其它位置上的每一个数是它上一行相邻两个整数之和。……#include<stdioh>#include<conioh>#defineNvoidmain(){inti,j,k,aNNclrscr()for(i=i<Ni)initializeaNN{ai=aii=}for(i=i<Ni)calculatefor(j=j<ij)aij=aijaijfor(i=i<Ni)output{for(k=k<=*(Ni)k)printf("")for(j=j<=ij)printf("d",aij)printf("nn")}getch()}、某班有个学生三门课。分别编写个函数实现以下要求:()求各门课的平均分()找出有两门以上不及格的学生并输出其学号和不及格课程的成绩()找出三门课平均成绩在分的学生并输出其学号和姓名主程序输入个学生的成绩然后调用上述函数输出结果。#defineSNUM*studentnumber*#defineCNUM*coursenumber*#include<stdioh>#include<conioh>*dispstudentinfo*voidDispScore(charnum,charname,floatscoreCNUM){inti,jprintf("nnStudentInfoandScore:n")for(i=i<SNUMi){printf("s",numi)printf("s",namei)for(j=j<CNUMj)printf("f",scoreij)printf("nn")}}*calculateallstudentaveragescore*voidCalAver(floatscoreCNUM){floatsum,averinti,jfor(i=i<CNUMi){sum=for(j=j<SNUMj)sum=sumscorejiaver=sumSNUMprintf("Averagescoreofcoursedisfn",i,aver)}}*Findstudent:twocoursesnopass*voidFindNoPass(charnum,floatscoreCNUM){inti,j,nprintf("nTwoCourseNoPassStudents:n")for(i=i<SNUMi){n=for(j=j<CNUMj)if(scoreij<)nif(n>=){printf("s",numi)for(j=j<CNUMj)if(scoreij<)printf("f",scoreij)printf("n")}}}*Findstudent:threecourses*voidFindGoodStud(charnum,charname,floatscoreCNUM){inti,j,nprintf("nScoreofthreecoursesbetweenand:n")for(i=i<SNUMi){n=for(j=j<CNUMj)if(scoreij>=scoreij<=)nif(n==)printf("ssn",numi,namei)}}*inputstudentinfo*voidmain(){charnumSNUM,nameSNUMarraynumreferstostudentnumberfloatscoreSNUMCNUManditslengthisinti,jclrscr()printf("nPleaseinputstudentnumandscore:n")for(i=i<SNUMi){printf("nnStudentdnumber:",i)scanf("s",numi)printf("nStudentdname:",i)scanf("s",namei)printf("nStudentdthreescores:",i)for(j=j<CNUMj)scanf("f",scoreij)}DispScore(num,name,score)CalAver(score)FindNoPass(num,score)FindGoodStud(num,name,score)getch()}、编写一人个求X的Y次幂的递归函数X为double型y为int型要求从主函数输入xy的值调用函数求其幂。#include<stdioh>#include<conioh>doublefact(doublex,inty){if(y==)returnxelsereturnx*fact(x,y)}voidmain(){doublexintyclrscr()printf("nPleasex,y:")scanf("lfd",x,y)printf("nx^y=lf",fact(x,y))getch()}、打印魔方阵。所谓魔方阵是指这样的的方阵:它的每一行、每一列和对角线之和均相等。输入n要求打印由自然数到n的自然数构成的魔方阵(n为奇数)。例如当n=时魔方阵为:   魔方阵中各数排列规律为:将“”放在第一行的中间一列从“”开始直到nn为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减列数同样加如果上一数的行数为则下一个数的行数为n(最下一行)如在方阵中在第行则应放在第行第列。当上一个数的列数为n时下一个数的列数应为行数减。如在第行第列应在第行第列。如果按上面规则确定的位置上已有数或上一个数是第行第n列时则把下一个数放在上一个数的下面。如按上面的规定应放在第行第列但该位置已被占据所以就放在的下面。由于是第行第列(即最后一列)故放在下面。#include<stdioh>#include<conioh>#defineMaxvoidmain(){inti,row,col,oddintmMaxMaxclrscr()printf("nPleaseinputanodd:")scanf("d",odd)if(odd<=||odd==){printf("nInputError!n")getch()return}printf("nodd=dnn",odd)row=col=oddplacedinthemiddleofthefirstrowfor(i=i<=odd*oddi){mrowcol=iif(iodd==)tothelastcolif(row==odd)tothelastrowrow=elserowelseoutmostelse{if(row==)row=oddelserowif(col==odd)col=elsecol}endofoutmostelse}endofforfor(row=row<oddrow){for(col=col<oddcol)printf("d",mrowcol)printf("nn")}getch()return}、找出一个二维数组中的“鞍点”即该位置上的元素在该行中最大在该列中最小(也可能没有“鞍点”)打印出有关信息。#defineN#defineM#include<stdioh>#include<conioh>voidmain(){intaNMintanotallowedhereinti,j,k,row,col,n,m,find=clrscr()printf("nEnternm:nn")scanf("dd",n,m)printf("nEnteraaddnn",n,m)for(i=i<ni)for(j=j<mj)scanf("d",aij)printf("nnThearrayyouhavejustenteredis:n")for(i=i<ni){for(j=j<mj)printf("d",aij)printf("nn")}findthepointfor(i=i<ni){for(col=,j=j<mj)if(aicol<aij)findcol,selectsortaccordingtocolcol=jfor(row=,k=k<nk)if(arowcol>akcol)findrow,selectsortaccordingtorowrow=kif(i==row){find=printf("Thepointisaddn",row,col)}}if(!find)printf("nNosolutionn")getch()}、马克思在《数学手稿》中提出如下问题:有个人(包括男人、女人和小孩)在一家饭店吃饭共花先令其中每个男人花先令每个女人花先令每个小孩花先令问男人、女人、小孩各有多少人?#include<stdioh>#include<conioh>voidmain(){intman,woman,child,money=,count=inti,j,kclrscr()

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/32
1下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部