c語(yǔ)言編程題復(fù)習(xí)_第1頁(yè)
c語(yǔ)言編程題復(fù)習(xí)_第2頁(yè)
c語(yǔ)言編程題復(fù)習(xí)_第3頁(yè)
c語(yǔ)言編程題復(fù)習(xí)_第4頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

勿/7ー勿72-7龍恐程本錢(qián)計(jì)復(fù)司司您(初為ノ第一部分:網(wǎng)上編程作業(yè)(2I題)編程題1:sizeof測(cè)試字節(jié)數(shù)要求:編寫(xiě)程序,測(cè)試以下類(lèi)型在內(nèi)存中所占空間大小:char、intヽshortヽlong、unsignedintヽfloatヽdouble,輸出時(shí)給出較清晰的提示信息。要求輸出格式(GCC):sizeof(char)=lsizeof(int)=4sizeof(short)=2sizeof(long)=4sizeof(unsignedint)=4sizeof(float)=4sizeof(double)=8參考代碼:#include<stdio.h>intmain()(printf("sizeof(char)=%d\n"/sizeof(char));printf("sizeof(int)=%d\n",sizeof(int));printf("sizeof(short)=%d\n",sizeof(short));printf("sizeof(long)=%d\n",sizeof(long));printf("sizeof(unsignedint)=%d\n",sizeof(unsignedint));printf("sizeof(float)=%d\n",sizeof(float));printf("sizeof(double)=%d\n",sizeof(double));return0;}編程題2:輸入輸出練習(xí)要求:編寫(xiě)程序,定義ー個(gè)int型變量a,ー個(gè)float型變量b,ー個(gè)double型變量c〇a變量初始化,值為20;b變量賦值,值為3.1415f,c變量的值從鍵盤(pán)輸入,調(diào)用printf函數(shù)輸出三個(gè)變量的值,輸出時(shí)給出較清晰的提示信息。如輸入:123.4V回車(chē)〉則輸出:valueofais:20valueofbis:3.141500valueofcis:123.400000參考代碼:#include<stdio.h>intmain()(inta=20;floatb;doublec;b=3.1415f;scanf("%lf",&c);printf("valueofais:%d\n",a);printf("valueofbis:%f\n",b);printf("valueofcis:%f\n",c);return0;}編程題3:用if語(yǔ)句求解分段函數(shù)要求:分段函數(shù)求解:輸入x.計(jì)算并輸出y的值:y=x+100(當(dāng)xV20)y=x(當(dāng)20WXW100)y=x-100(當(dāng)x>100)測(cè)試用例的輸入及輸出結(jié)果如下:測(cè)試用例:輸入測(cè)試用例:輸出-9<回車(chē)>x=-9.000000,y=91.00000078.97<回車(chē)>|x=78.970000,y=78.970000|235.98V回車(chē)〉|x=235.980000,y=135.980000參考代碼:#include<stdio.h>intmain()(doublex,y;scanf("%lf",&x);if(x<20)y=x+100;elseif(x<=100)y=x;elsey=x-100;printf("x=%f,y=%f\n",x,y);return0;}編程題4:打印每月有幾天要求:讀入??個(gè)年份和月份,打印出該月有多少天(考慮閏年),用switch語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)。說(shuō)明:(1)scanf之前無(wú)需用printf給提示信息。測(cè)試用例的輸入及輸出結(jié)果如下:測(cè)試用例:輸入測(cè)試用例:輸出200910<回車(chē)>2009-10-3120092<回車(chē)>2009-2-2820082V回車(chē)〉2008-2-29參考代碼:#include<stdio.h>voidmain()inti,j;(scanf("%d%d",&i,&j);switch(j){case1:case3:case5:case10:case12:printf("%d-%d-31\n",i,j);break;case2:if(i%400==0||(i%4==0&&i%100!=0))printf("%d-%d-29\n",i,j);elseprintf("%d-%d-28\n"/i,j);break;case4:case6:case9:casell:printf("%d-%d-30\n",i,j);break;default:printf("您的輸入有誤,請(qǐng)重新1-12之間的月份:\n");break;}))編程題5:輸出所有的3位數(shù)字的質(zhì)數(shù)要求:以每行5個(gè)的形式輸出所有的3位數(shù)字的質(zhì)數(shù)。說(shuō)明:(1)每個(gè)質(zhì)數(shù)按"%6d”格式輸出。(2)最后一個(gè)質(zhì)數(shù)后面要輸出一個(gè)換行符。參考代碼:#include<stdio.h>#include<math.h>intmain()(intx,y,n=O;doublek;for(x=100;x<1000;x++){k=sqrt(x);for(y=2;y<=k;y++)(if(x%y==0)break;)if(y>k)(n++;printf("%6d",x);if(n%5==0)printf("\n");)}printf("\n");return0;編程題6:數(shù)列求和要求:輸入一個(gè)雙精度實(shí)數(shù)x,計(jì)算并輸出下式的值,直到最后ー項(xiàng)的絕對(duì)值小于KIR保留兩位小數(shù)),s=x-x2/2!+x3/3!-x4/4!+-說(shuō)明:(1)scanf之前無(wú)需用printf給提示信息。(2)求和結(jié)果用"%.2ド控制輸出格式。測(cè)試用例的輸入及輸出結(jié)果如下:測(cè)試用例:輸入測(cè)試用例:輸出1<回車(chē)>sum=0.633.5<回車(chē)>sum=0.975.0<回車(chē)>sum=0.99參考代碼:#include<stdio.h>#include<math.h>intmain()(doublex,t=l,i=l,sum=0;intsign=l;scanf("%lf",&x);do(t=t*x/i;sum+=sign*t;sign="sign;i++;}while(fabs(t>=le-5));printf("sum=%.2f\n",sum);return0;編程題7:求平均值要求:編程從鍵盤(pán)上輸入20個(gè)整數(shù),求去掉最大值和最小值以后那些元素的平均值。說(shuō)明:(1)scanf之前無(wú)需用printf給提示信息。測(cè)試用例的輸入及輸出結(jié)果如下:測(cè)試用例:輸入測(cè)試用例:輸出1234567891011121314151617181920<回車(chē)>count=18,average=10.500000908070100506070100758585908070655060708090<回車(chē)>count=16,average=76.250000參考代碼:#include<stdio.h>intmain()(inti,a[20],max,min,sum=0,count=0;for(i=0;i<20;i++)scanf("%d",&a[i]);max=min=a[0];for(i=0;i<20;i++)if(a[i]>max)max=a[i];elseif(a[i]<min)min=a[i];for(i=0;i<20;i++)if(a[i]!=max&&a[i]!=min)sum+=a[i];count++;)printf("count=%d,average=%f\n",count,sum*1.0/count);return0;}編程題8:用數(shù)組實(shí)現(xiàn)Fibonacci數(shù)列要求:編程首先計(jì)算Fibonacci數(shù)列1,1,2,3,5,8,13,21,……的前n項(xiàng)(n不超過(guò)40)存入ー維整型數(shù)組f中,再按%12d的格式輸出每項(xiàng)的值,每6項(xiàng)換一行。說(shuō)明:(1)輸入數(shù)列項(xiàng)n,在scanf前不能用printf輸出提示信息。測(cè)試用例:輸入測(cè)試用例:輸出5〈回車(chē)〉112 3 510<回車(chē)>1 1 2 3 5 813 21 34 55參考代碼:#include<stdio.h>intmain()(inti,n,f[39],count=0;scanf("%d",&n);f[O]=l;f[l]=l;for(i=2;i<n;i++)f[i]=f[i-l]+f[i-2];for(i=0;i<n;i++)(printf("%12d"/f[i]);count++;if(count%6==0)printf("\n");)printf("\n");return0;編程題9:刪除所有相同值的元素要求:從鍵盤(pán)輸入整型ー維數(shù)組中a中的各元素(以元素。結(jié)束,〇是最后一個(gè)有效果元素,元素個(gè)數(shù)不超過(guò)20個(gè)),再輸入一個(gè)待刪除的整數(shù)。先輸出刪除前的所有數(shù)組元素。從數(shù)組中刪除所有的元素值等于該整數(shù)的元素,如果元素不存在,則輸出提示信息:doesnotexist,nooperating!否則輸出刪除后的所有數(shù)組元素說(shuō)明:(1)數(shù)組的定義:inta[20];(2)應(yīng)該用ー個(gè)變量存儲(chǔ)實(shí)際有效果的元素個(gè)數(shù)(含〇)(3)元素的輸出用%5d的格式控制(4)scanf之前不能用printf輸出提示信息1測(cè)試用例:輸入測(cè)試用例:輸出 1廣;2345320<回車(chē)〉|4<回車(chē)>ゝg—二—一3-3——1Beforedelete,elementsare:2345320 |に…皿宀”,-皿-”皿3———3:渦 1Afterdelete,elementsare:235320 |€[|23420<回車(chē)>I鼠<回車(chē)> IE f1 11 1Beforedelete,elementsare: キサj23420 1Jdoesnotexist,nooperating!?233435370<回車(chē)>]r>1E JBeforedelete,elementsare:233435370"「delete,elementsare:24570 ;參考代碼:intmain()(inta[20],b[20];inti,k=O,x,j,m=O,h=O;for(i=0;i<20;i++){scanf("%d",&a[i]);k++;if(a[i]==o)break;}printf("Beforedelete,elementsare:\n");for(i=0;i<k;i++)printf("%5d",a[i]);printf("\n");scanf("%d",&x);for(i=0;i<k&&a[i]!=x;i++);if(i==k){printf("doesnotexist,nooperating!\n");return0;}for(i=0;i<k;i++){if(a[i]==x)(h++;b[m]=i;m++;)}for(m=0;m<h;m++){for(j=b[m];j<k;j++)a[j-m]=a[j-m+l];}printf("Afterdelete,elementsare:\n");for(i=0;i<k-h;i++)printf("%5d",a[i]);printf("\n");return0;)編程題10:動(dòng)態(tài)ー維數(shù)組的定義與實(shí)現(xiàn)要求:在main()函數(shù)中定義指針變量int*array用來(lái)實(shí)現(xiàn)動(dòng)態(tài)ー維數(shù)組,數(shù)組的元素個(gè)數(shù)由從鍵盤(pán)輸入的整數(shù)n決定;分別用兩個(gè)函數(shù)實(shí)現(xiàn)產(chǎn)生數(shù)組的元素及輸出元素,最后釋放動(dòng)態(tài)數(shù)組空間說(shuō)明:①定義函數(shù)voidcreate(inta[],intn)?生成數(shù)組a中n個(gè)元素,元素值依次為l,2,3...n②定義函數(shù)voidprint(inta[],intn),輸出元素的語(yǔ)句為:printf("%d,",a[i]);?輸出所有的元素結(jié)束后用printf("\n");換行。1測(cè)試用例:輸入測(cè)試用例:輸出|5<回車(chē)>1123,4,5,B<回車(chē)>1,2,3,4,5,6,7,8,參考代碼:#include<stdio.h>#include<math.h>#include<stdlib.h>voidcreate(inta[],intn);voidprint(inta[],intn);intmain()int*array,n;scanf("%d",&n);array=(int*)malloc(n*4);create(array,n);print(array,n);printf("\n");return0;voidcreate(inta[],intn)inti,j=l;for(i=0;i<n;i++,j++)a[i]=j;)voidprint(inta[],intn)(inti;for(i=0;i<n;i++)printf("%d,",a[i]);#include<stdio.h>#include<stdlib.h>voidFind(int*a,int*max,int*maxPos,int*min,int*minPos);main()(intarrayn〇]={23,45,90,-9,43,90,4,2,-9};int*a=array;intmax,min,maxPos,minPos;Find(array,&max,&maxPos,&min,&minPos);printf("max=%d,maxPos=%d,min=%d,minPos=%d\n",max,maxPos,minzminPos);return0;}voidFind(int*a,int*max,int*maxPos,int*min,int*minPos)inti;*max=*min=a[0];*maxPos=*minPos=0;for(i=l;i<=9;i++)if(a[i]>*max)<*max=a[i];*maxPos=i;}elseif(a[i]<*min){*min=a[i];*minPos=i;}編程題12:ハ進(jìn)制轉(zhuǎn)換為二進(jìn)制要求:用函數(shù)實(shí)現(xiàn)將一個(gè)ハ進(jìn)制數(shù)轉(zhuǎn)換為ー個(gè)二進(jìn)制數(shù)。說(shuō)明:(1)從鍵盤(pán)輸入ハ進(jìn)制數(shù),輸入格式控制使用%。;(2)輸出有效數(shù)字位對(duì)應(yīng)的二進(jìn)制編碼,如:045->100101;1測(cè)試用例:輸入測(cè)試用例:輸出 1045<回車(chē)>100101145<回車(chē)>1100101|1017<回車(chē)>1000001111 1參考代碼:#include<stdio.h>intocttobin(intn,int*p)(inti,r,k=O;while(n)(r=n%8;for(i=l;i<=3;i++){p[k++]=r%2;r=r/2;n=n/8;}returnk;}intmain()(inti,n,array[30],k;scanf("%o",&n);k=octtobin(n,array);i=k-l;while(!array[i]){i-;?for(;i>=0;i—)printf("%d",array[i]);printf("\n");return0;編程題13:最大公約數(shù)。要求:實(shí)現(xiàn)求兩個(gè)正整數(shù)的最大公約數(shù)。說(shuō)明:(1)從鍵盤(pán)輸入兩個(gè)正整數(shù);(2)輸出這兩個(gè)正整數(shù)的最大公約數(shù);1測(cè)試用例:輸入測(cè)試用例:輸出345258<回車(chē)>gcd=33333<回車(chē)>gcd=33|2472<回車(chē)> gcd=24參考代碼:#include<stdio.h>intmain()(inta,b,c;scanf("%d%d",&a,&b);if(a<=0||b<=0)(printf("errorinput!\n");return0;>c=a%b;while(c)(a=b;b=c;c=a%b;}printf("gcd=%d\n",b);return0;)編程題14:三角形面積。要求:任意三角形的面積求解公式為:Area=sqrt(s(s-a)(s-b)(s-c))(sqrt()是求根公式),其中s=(a+b+c)/2〇寫(xiě)程序,在程序中用帶實(shí)參的宏名來(lái)求面積area〇說(shuō)明:(1)從鍵盤(pán)輸入三角形的三條邊;(2)輸出保留小數(shù)點(diǎn)后三位;測(cè)試用例:輸入測(cè)試用例:輸出345<回車(chē)>Area=6.000145<回車(chē)>Error!Pleaseinputagain.5.56.49<回車(chē)>Area=17,429-102<回車(chē)>Error!Pleaseinputagain.參考代碼:#include<stdio.h>#include<math.h>intmain()(doublea,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);if(a+b>c&&a-b<c){p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("Area=%.3f\n",s);}elseprintf("Error!Pleaseinputagain.\n");return0;編程題15:帶參宏定義。要求:給年份year定義?個(gè)宏,以判別該年份是否閏年。提示:宏名可以定義為L(zhǎng)EAP_YEAR,形參為y。說(shuō)明:(1)從鍵盤(pán)輸入四位數(shù)的年份;(2)輸出該年份是否是閏年;帆試用例:輸入測(cè)試用例:輸出 12005<回車(chē)>2005isnotaleapyear!2008<回車(chē)>12008isaleapyear!158<回車(chē)>Inputerror!11159<回車(chē)>Inputerror! ||1900<回車(chē)>1900isnotaleapyear! |參考代碼:#include<stdio.h>#defineLEAP_YEAR(y)(y)%400==0||(y)%4==0&a(y)%100!=0intmain()(intyear;scanf("%d",&year);if(year>=1000&&year<=3000){if(LEAP_YEAR(year))printf("%disaleapyear!\n",year);elseprintf("%disnotaleapyear!\n",year);}elseprintf("Inputerror!\n");return0;編程題16:求平均值和最大值要求:某學(xué)習(xí)小組有3個(gè)人,每個(gè)人的信息包括:學(xué)號(hào)、姓名和成績(jī)。要求從鍵盤(pán)上輸入他們的信息,并求出平均成績(jī)以及最高成績(jī)者的信息。說(shuō)明:.學(xué)生結(jié)構(gòu)體類(lèi)型typedefstructStudent{intnum;charname[20];intscore;)STU;.平均值保留2位小數(shù);.輸出最高成績(jī)者信息時(shí)各項(xiàng)之間用“、ビ隔開(kāi)。測(cè)試用例:輸入測(cè)試用例:輸出1<回車(chē)>hangsan<回車(chē)>86<回車(chē)>2(回車(chē)>lisi<回車(chē)>84<回車(chē)>3<回車(chē)>wanger<回車(chē)>93<回車(chē)>Theaveragescore=87.67Thestudentwhohasthehighestscoreis:3wanger93參考代碼:#include<stdio.h>typedefstructstudentintnum;charname[10];intscore;}st;voidinput(st*t,intn)inti;for(i=0;i<n;i++)(scanf("%d",&t[i].num);getchar();scanf("%s",t[i].name);scanf("%d",&t[i].score);}}st*average(st*t,intn,double*av){inti,sum=0;st*best;for(i=0;i<n;i++)sum+=t[i].score;best=t;for(i=0;i<n;i++)if(t[i].score>best->score)best=t+i;*av=sum*1.0/n;returnbest;}intmain(){stteam[3],*best=NULL;doubleav;input(team,3);best=average(team,3,&av);printf("Theaveragescore=%.2f\n",av);printf("Thestudentwhohasthehighestscoreis:\n");printf("%d\t%s\t%d\n"zbest->num,best->name,best->score);return0;}編程題17:根據(jù)輸入日期輸出對(duì)應(yīng)季節(jié)要求:定義ー個(gè)表示一年四季的枚舉類(lèi)型,然后從鍵盤(pán)上輸入一年中的日期(包括年、月、日信息),輸出對(duì)應(yīng)的季節(jié)。說(shuō)明:.季節(jié)枚舉類(lèi)型enumSeasons{Spring,Summer,Autumn,Winter};.日期結(jié)構(gòu)體structDateintyear,month,day;);.根據(jù)月份信息判斷相應(yīng)季節(jié)。測(cè)試用例:輸入測(cè)試用例:輸出20091028NowitisAutumn參考代碼:#include<stdio.h>enumseason{Spring,Summer,Autumn,Winter};structDateintyear,month,day;);intmain()structDated;enumseasons;scanf("%d%d%d",&d.year,&d.month,&d.day);if(d.month>=3&&d.month<=5)s=Spring;elseif(d.month>=6&&d.month<=8)s=Summer;elseif(d.month>=9&&d.month<=11)s=Autumn;elseif(d.month==12||d.month==l||d.month==2)s=Winter;switch(s)(caseSpring:printf("NowitisSpring\n");break;caseSummer:printf("NowitisSummer\n");break;caseAutumn:printf("NowitisAutumn\n");break;caseWinter:printf("NowitisWinter\n");break;return0;編程題18:進(jìn)制轉(zhuǎn)換要求:編寫(xiě)程序,以字符形式輸入ー個(gè)四位十六進(jìn)制數(shù),將其變換為ー?個(gè)十進(jìn)制整數(shù)后輸出。說(shuō)明:1.以字符串方式存儲(chǔ)ー個(gè)四位十六進(jìn)制數(shù),其中的每ー個(gè)字符都必須是十六進(jìn)制數(shù)中合法的字符,應(yīng)有相應(yīng)語(yǔ)句做出判斷;2.十六進(jìn)制轉(zhuǎn)換為十進(jìn)制,要考慮0-9,A-F,a-f之間相應(yīng)的表示和轉(zhuǎn)換;卜則試用例:輸入測(cè)試用例:輸出 16D3fThedecdatais:27967 i卜5fsOriginaldataerror |參考代碼:#include<stdio.h>intinput(char*s)inti=0;charc;do{c=getchar();if(c>='0'&&c<='9'||c>='A'&&c<=F||c>='a'&&c<=f)s[i++]=c;elsereturn0;}}while(i<4);sロ]ゴ、?!?return1;}intchange(char*s)intn=0,i=0;while(s[i])if(s[i]>=,0'&&s[i]<=,9,)n=n*16+(s[i]-48);elseif(s[i]>='A'&&s[i]<='F')n=n*16+(s[i]-55);elseif(s[i]>=,a'&&s[i]<=T)n=n*16+(s[i]-87);i++;}returnn;}intmain()(chars[5];if(input(s))printf("Thedecdatais:%d\n",change(s));elseprintf("Originaldataerror\n");return0;編程題19:字符串逆置要求:編程實(shí)現(xiàn)字符串的逆置。輸出逆置前、后的字符串。說(shuō)明:定義函數(shù)reverse實(shí)現(xiàn)對(duì)串的逆置,在該函數(shù)中通過(guò)指針p和q指向串是需要交換的兩個(gè)字符處,然后互換*p和?q的內(nèi)容,p指針的值由小變大,而q指針的值由大變小,當(dāng)p>=q時(shí)表明交換結(jié)束。1測(cè)試用例:輸入測(cè)試用例:輸出 |jabcdefggfedcba參考代碼:#include<stdio.h>#include<string.h>voidreverse(char*s)char*p=s,*q,t;intlen=strlen(s);q=p+len-l;while(p<q)t=*p;*p=*q;*q=t;P++;q一;intmain()chars[100];gets(s);reverse(s);puts(s);return0;編程題20:字符串轉(zhuǎn)換要求:輸入一個(gè)字符串(長(zhǎng)度小于50),然后過(guò)濾掉所有的非數(shù)字字符,得到由數(shù)字字符組成的字符串,將其轉(zhuǎn)化為double型結(jié)果輸出。測(cè)試用例:輸入測(cè)試用例:輸出!1@2#3$4%5A6&7*8(9)01234567890.0000abcdEFGHthedigitalstringisempty!987aaa654bbb321ccc987654321.0000OOOaallbb11,0000J參考代碼:#include<stdio.h>intchange(char*source,char*des)(inti=0;while(*source)(if(*source>='0'&&*source<='9')des[i++]=*source;source++;)des[i]=>\0";returni;}doublecalcu(char*s)(doubleresult=0;while(*s)result=result*10+(*s-48);S++;returnresult;)intmain()(charstr[50],strdes[50];gets(str);if(change(str,strdes))printf("%.4f\n",calcu(strdes));elseprintf("thedigitalstringisempty!\n");return0;}編程題21:打印楊輝三角形要求:編程打印如下形式的楊輝三角形,(輸出整數(shù)時(shí)以%5d作為格式控制),行數(shù)由鍵盤(pán)讀入,少于10行。11112113311464115101051測(cè)試用例:輸入測(cè)試用例:輸出112111]5111121133114641911112113311464115101051161520156117213535217118285670562881參考代碼:#include<stdio.h>voidmain()(intn;scanf("%d",&n);ints[10][10]={0); 〃數(shù)組定義時(shí)最好賦初值inti,j;for(i=0;i<n;i++)s[i][0]=l;for(i=l;i<n;i++)s[i][i]=l;for(i=2;i<n;i++)for(j=l;j<=i-l;j++)s[i][j]=s[i-l][j-l]+s[i-l][j];for(i=0;i<n;i++)for(j=0;j<=i;j++)〃只輸出有內(nèi)容的數(shù)組值printf("%5d",s[i][j]); 〃按行輸出printf("\n");}return;〃主函數(shù)為void類(lèi)型,不需要返冋值}編程題22:判斷矩陣是否對(duì)稱要求:編寫(xiě)函數(shù)判斷4階矩陣是否對(duì)稱,對(duì)稱時(shí)返回1,不對(duì)稱時(shí)返回〇。主函數(shù)中由鍵盤(pán)讀入4階矩陣,并調(diào)用函數(shù)進(jìn)行判斷,如果對(duì)稱輸出“Yes”,否則輸出“No”。(編程提示:函數(shù)的形參可以是行指針或列指針)。測(cè)試用例:輸入測(cè)試用例:輸出0000Yes0000000000001000Yes0100001000011234No010000104321 1參考代碼:#include<stdio.h>intsy(int(*p)[4])inti,j;for(i=0;i<4;i++)for(j=0;j<=i;j++)if(p[i][j]!=p[j][i])return0;return1;}intmain()(intarr[4][4],i,j;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&arr[i][j]);if(sy(arr))printf("Yes\n");elseprintf("No\n");return0;)編程題23:字符串大小比較要求:從鍵盤(pán)讀入六個(gè)字符串(字符串長(zhǎng)度<20),排序后并輸出。輸出時(shí),每輸出ー個(gè)字符串后,輸出兩個(gè)空格。輸出與排序要求采用函數(shù)來(lái)完成。測(cè)試用例:輸入測(cè)試用例:輸出abeABCpppABDD0987,,/;L0987ABCpppABDDabeabd,./;LabdabcabcABBABCabcDDDabbabcabeABCabcABBabbDDD參考代碼:#include<stdio.h>#include<string.h>#definemax10000voidInput(charStudName[6][max])(for(inti=0;i<6;i++){gets(StudName[i]);}}voidMZ(charch[6][max])(for(inti=0;i<6;i++)for(intj=0;j<6;j++)if(strcmp(ch[i],ch[j])<0){chartemp[1314];strcpy(temp,ch[i]);strcpy(ch[i],ch[j]);strcpy(ch[j],temp);voidOutput(charch[6][max]){for(inti=0;i<6;i++){printf("%s",ch[i]);}printf("\n");}voidmain()(charch[6][max];Input(ch);MZ(ch);Output(ch);}第二部分:模擬機(jī)考前題。扁程部分).水仙花數(shù)(L)題目:從鍵盤(pán)讀入[100,999]范圍內(nèi)的兩個(gè)整數(shù)a,b(a<=b),計(jì)算[a,b]范圍內(nèi)的所有水仙花數(shù),以%5d的格式輸出這些水仙花數(shù)后換行。說(shuō)明:(1)水仙數(shù)符合下列條件:三位數(shù)的各位數(shù)字的立方和等于該數(shù)本身例如:153=1*1*1+5*5*5+3*3*3(2)如果輸入的a,b不符合要求,則用printf("Errorinput!\n");給出提示信息,不再求解。(3)用語(yǔ)句scanf("%d%d",&a,&b);輸入,前面不用加提示信息。測(cè)試用例及輸出結(jié)果:測(cè)試用例及結(jié)果:輸入輸出100400<回車(chē)>1533703711290〈回車(chē)〉Errorinput!參考代碼:#include<stdio.h>#include<math.h>intmain()(inta,b,x;intpl,p2,p3;scanf("%d%d",&a,&b);if(a>=100&&b<=999&&a<=b)for(x=a;x<=b;x++)(pl=a/100;p2=x%100/10;p3=x%10;if(x==pow(pl,3)+pow(p2,3)+pow(p3,3))printf(''%5d,z,x);}elseprintf("Errorinput!\n");return0;).求8因子數(shù)(L)題目:從鍵盤(pán)上輸入兩個(gè)正整數(shù)a,b,,找出[a,b]范圍內(nèi)所有具有8個(gè)不同因子的整數(shù)并輸出.說(shuō)明:(1)主函數(shù)已經(jīng)給定,請(qǐng)不要作修改(2)需要定義的函數(shù)原型為:intIsEight(intx);作用:判斷參數(shù)x是否含有8個(gè)因子,如果是,則返回1Z否則返回〇(3)例如:24的8個(gè)因子為:1,24,2,12,3,8,4,6而20就不符合要求,因?yàn)槠湟蜃又挥?個(gè):1,20,2,10,4,5參考代碼:#include<stdio.h>intIsEight(intx)(intcount=0,i;for(i=l;i<=x;i++)(if(x%i==O)count++;}if(count==8)return1;elsereturn0;}intmain()(intx,a,b;scanf("%d%d",&a,&b);if(a<O||b<O||a>b)(printf("Errorinput!\n");return0;}for(x=a;x<=b;x++)if(IsEight(x))printf("%4d",x);printf("\n");return0;}.分段函數(shù)求解(L)題目:分段函數(shù)求解:輸入x,計(jì)算并輸出y的值:y=-x+10(當(dāng)xV10)y=x+20(當(dāng)10WxW20)y=x-20(當(dāng)x>20)說(shuō)明:(1)定義變量doublex,y;(2)用語(yǔ)句scanf("%lf",&x);輸入x的值,前面不要加輸入提示(3)用語(yǔ)句printf("y=%lf\n",y);輸入計(jì)算后的y值.#include<stdio.h>intmain()doublex,y;scanf("%lf",&x);if(x<10)y=10-x;elseif(x<=20)y=x+20;elsey=x-20;printf("x=%f",y=%f\n",x,y);return0;.尋找數(shù)組中最大元素(H)題目:在主函數(shù)中定義數(shù)組intarray口〇];從鍵盤(pán)上輸入十個(gè)元素的值,調(diào)用函數(shù)Find,在該函數(shù)中通過(guò)ー趟循環(huán),找到數(shù)組中的第1個(gè)最大元素及對(duì)應(yīng)下標(biāo),最后輸出這兩個(gè)信息.說(shuō)明:(1)輸入數(shù)組元素的語(yǔ)句為scanf("%d",&array[i]);(2)主函數(shù)中另外定義兩個(gè)變量:intmax,maxPos;分別用來(lái)存儲(chǔ)第一個(gè)最大元素值及對(duì)應(yīng)下標(biāo),這兩個(gè)變量需要通過(guò)調(diào)用Find函數(shù)求得,注意正確的調(diào)用形式.其他需要的變量根據(jù)需要自己定義.(3)查找函數(shù)的原型為:intFind(int*a,intn,int*maxPos);形參a用來(lái)接受主函數(shù)中的數(shù)組名,n表示數(shù)組中元素的個(gè)數(shù),指針形參maxPos用來(lái)記錄第一個(gè)最大元素的下標(biāo),函數(shù)返回最大元素值.(4)主函數(shù)中的輸出語(yǔ)句為:printf("max=%d,maxPos=%d\n",max,maxPos);#include<stdio.h>find(int*a,intn,int*maxpos);intmain()(intmax,maxpos;intarray[10],i;for(i=0;i<10;i++)scanf("%d",&array[i]);max=find(array,n,&maxpos);printf("max=%d,maxpos=%d\n",max,maxpos);return0;}find(int*a,intn,int*maxpos);{inti=0;max=*(p+i);for(;i<9;i++)if(*(p+i+l)>*(p+i))max=*(p+i);*maxpos=i;returnmax;).數(shù)組中求平均值(M)題目:編程從鍵盤(pán)上輸入ー維整型數(shù)組a的10個(gè)元素,求去掉所有最大元素值和最小元素值以后那些元素的平均值.說(shuō)明:(1)需要定義ー個(gè)double型ave存放平均值,定義ー個(gè)有10個(gè)元素的整型數(shù)組a,程序中需要的其他變量自行定義.(2)用語(yǔ)句scanf("%d",&a[i]);輸入a的元素值,scanf之前不能用printf給輸入提示。(3)用printf("average=%lf\n",ave);輸出平均值ave.(4)所有功能可以在main中實(shí)現(xiàn),也可以自定義函數(shù)再調(diào)用實(shí)現(xiàn).#include<stdio.h>intmain()(inti,inta[10];intmin,max;doubleave;intsum;for(i=0;i<10;i++)scanf("%d",&a[i])max=min=a[0];for(i=l;i<n;i++){if(a[i]>max)max=a[i];elseif(a[i]<min)min=a[i];}i=0;sum+=a[i++];ave=(sum-max-min)/8.0;printf("average=%lf\n",ave)return0;}.求二維數(shù)組元素平均值(L)成績(jī):30Z折扣:0.8題目:編程求二維數(shù)組所有元素的平均值,二維數(shù)組為3行3列的整型數(shù)組,元素讀入。說(shuō)明:(1)主函數(shù)中定義inta[3][3];和doubleave;其余變量根據(jù)需要自己定義。(2)用語(yǔ)句printf("ave=%lf\n",ave);輸出平均值#include<stdio.h>intmain()(inta[3][3]={0};doubleave;intij;intsum;for(i=0,i<3zi++)?for(j=0,j<3,j++)scanf("%d”,&a[i][j]);for(i=0;i<9;i++){sum+=a[0][i];}ave=sum/9.0;printf("ave=%lf\n",ave)return0;}.刪除相同數(shù)成績(jī):30Z折扣:0.8〃請(qǐng)編寫(xiě)函數(shù)fun,該函數(shù)的功能是:刪去ーー維數(shù)組中所有相同的數(shù),使之只剩下??個(gè)。函數(shù)返回刪除后數(shù)組中元素的個(gè)數(shù)。#include<stdio.h>intfun(inta[],intn){intizj,t;for(i=0;i<n;i++)for(j=l;j<n;j++)if(a[i]==a[j])for(t=j,t<n-l,t++)a[t]=a[t+l];j-;intmain()(inta[100],i,n,num;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);num=fun(a,n);for(i=0;i<num;i++)printf("%5d",a[i]);.數(shù)列求和(L)成績(jī):30Z折扣:0.8求前n(n由輸入確定)項(xiàng)的和,公式為:sum=l-2/3+3/5-4/7+5/9-...+i/(2i-l)說(shuō)明:(1)設(shè)doublesum;用來(lái)存放累加和,設(shè)intn;用n來(lái)存要計(jì)算的項(xiàng)數(shù),其余變量根據(jù)編程需要自己定義(2)程序中所用的輸入語(yǔ)句為:scanf("%d",&n);此語(yǔ)句前不加輸出語(yǔ)句進(jìn)行提示(3)程序中所用的輸出語(yǔ)句為:printf("sum=%lf\n,',sum);#include<stdio.h>intmain()(doublesum;intn,sum;intp,i;scanf("%d",&n);for(i=l;i<n;i++)sum+=i*1.0/(2i-l)*p;P=-P;printf("sum=%lf\n",sum);return0;}注:該部分還有兩題與第?部分的20,23題重復(fù),故不列出。第三部分:模擬機(jī)考前題(改諾部分).部分元素求和成績(jī):10/折扣:0.8/?改錯(cuò)題:從鍵盤(pán)輸入數(shù)組的4個(gè)元素,并將其中的所有偶數(shù)求和并輸出和值測(cè)試用例:輸入輸出1357〈回車(chē)〉sum=02468<回車(chē)>sum=20源程序代碼如下:*/#include<stdio.h>intmain()(intarr[4];inti,sum=0;for(i=0;i<4;i++)scanf("%d",&arr[i]);/***********found***for(i=0;i<4;i++)if(arr[i]%2)sum+=arr[i];/***********found**printf("sum=%d\n",sum);return0;.函數(shù)實(shí)現(xiàn)分?jǐn)?shù)求和成績(jī):10Z折扣:0.86.題目:函數(shù)fun的功能是,根據(jù)形參m,計(jì)算t=l+l/2+l/3+l/4+……+l/m,主函數(shù)中讀入ー個(gè)整數(shù)作為實(shí)參調(diào)用fun函數(shù),輸出相應(yīng)的和值。待修改的源程序:#include<stdio.h>doublefun(intm)(doublet=1.0;inti;I***********found*********for(i=2;i<=m;i++)/***********f〇und**********!returnt;)intmain()(intm;scanf("%d",&m);printf("%lf\n",fun(m));測(cè)試用例及結(jié)果:輸入輸出100<回車(chē)>5.1873781000<回車(chē)>7.4854713.交換兩個(gè)數(shù)的值成績(jī):10/折扣:0.8題目:程序的功能是:讀入兩個(gè)整數(shù)a,b,通過(guò)調(diào)用函數(shù)fun,實(shí)現(xiàn)a,b值的互換并輸出交換后的值。待修改的源程序:#include<stdio.h>voidfun(int*a,int*b)intt;t=*a;*a=*b;*b=t;}intmain()inta,b;/***********found**********Iscanf("%d%d",&a,&b);fun(a,b);/***********f〇und**********jprintf("%d,%d\n",a,b);return0;}測(cè)試用例及結(jié)果:輸入輸出35<回車(chē)>5,312<回車(chē)>2,1.用指針訪問(wèn)一維數(shù)組元素(1)成績(jī):10/折扣:0.8題目:用指針訪問(wèn)數(shù)組的所有有效元素,數(shù)組的的元素由鍵盤(pán)輸入。待修改的源程序:#include<stdio.h>intmain()intarr[5],*p;inti;for(i=0;i<5;i++)scanf("%d",&arr[i]);/***********f〇und**********!for(p=arr;p<=arr+5;p++)printf("%d,",*p);/***********f〇und*********printf("\n");return0;測(cè)試用例及結(jié)果:輸入輸出12358V回車(chē)〉1,2,3,5,8,246810V回車(chē)〉2,4,6,8,10,.矩陣轉(zhuǎn)置(1)成績(jī):10/折扣:0.8題目:用二層循環(huán)實(shí)現(xiàn)矩陣的轉(zhuǎn)置,將矩陣A(已初始化)轉(zhuǎn)置到矩陣B,輸出轉(zhuǎn)置后的B矩陣.待修改的源程序:#include<stdio.h>intmain()(intA[3][3];intB[3][3];inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&A[i][j]);I***********found*********for(i=0;i<3;i++)for(j=0;j<i;j++)I***********found*********printf("Thereversedmatrixis:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%4d",B[i][j]);printf("\n");}return0;測(cè)試用例:此題無(wú)輸入輸出Thereversedmatrixis:147258.字符串連接(2)成績(jī):10/折扣:0.8題目:讀入兩個(gè)字符串sl,s2,將串值小的接在串值大的串后組成一個(gè)新串輸出.待修改的源程序:#include<stdio.h>#include<string.h>intmain(void)charsl[50],s2[50];gets(sl);gets(s2);I***********found**********Iif(sl>s2){strcat(sl,s2);puts(sl);}I***********found**********Ielse{strcat(s2,sl);puts(s2);}return0;測(cè)試輸入⑦ 期待的輸出電)時(shí)間限制⑦內(nèi)存限制⑦測(cè)試用例〇以文本方式顯示以文本方式顯示無(wú)限制 64M

ASDZXCASDASDZXCASDZXC64M以文本方式顯示 無(wú)限制64M以文本方式顯示測(cè)試用例1VVVVWQQQQQQ.求最大公約數(shù)(1)成績(jī):10/折扣:0.8題目:求兩個(gè)整數(shù)的最大公約數(shù).要求:不得增行或減行,在標(biāo)記范圍內(nèi)找錯(cuò)待修改的源程序:#include<stdio.h>intgcd(intm,intn){intr;/************found****************/do{r=m%n;m=n;n=r;}while(r);returnn;/*****

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論