版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C補強階段作業(yè)C補強階段作業(yè)C補強階段作業(yè)資料僅供參考文件編號:2022年4月C補強階段作業(yè)版本號:A修改號:1頁次:1.0審核:批準(zhǔn):發(fā)布日期:編寫一個函數(shù)。函數(shù)的三個參數(shù)是一個字符和兩個整數(shù)。字符參數(shù)是需要輸出的字符。第1個整數(shù)說明了在每行中該字符輸出的個數(shù),而第二個整數(shù)指的是需要輸出的行數(shù)。編寫一個調(diào)用該函數(shù)的程序。要求:輸入字符為回車時,作為未輸入字符處理;輸入行列值時若不是數(shù)字,直接結(jié)束程序。編程考點:循環(huán)基本語法;break和continue#include<>voidchLineRow(charch,intc,intr);intmain(void){ charch; intcol,row; printf("Enteracharacter(#toquit):"); while((ch=getchar())!='#'){ if(ch=='\n') continue; printf("Enternumberofcolumnsandnumberofrows:"); if(scanf("%d%d",&col,&row)!=2) break; chLineRow(ch,col,row); printf("\nEnternextcharacter(#toquit):"); } printf("Bye!\n"); return0;}voidchLineRow(charch,intc,intr){ intcol,row; for(row=0;row<r;row++){ for(col=0;col<c;col++) putchar(ch); putchar('\n'); } return;}編寫一個函數(shù)計算double類型數(shù)的某個整數(shù)次冪(不得調(diào)用系統(tǒng)的函數(shù)pow),注意0的任何次冪和任何數(shù)值的0次冪以及負(fù)數(shù)次冪并編寫測試程序編程考點:if-else的嵌套#include<>doublepower(doublea,intb);/*ANSIprototype*/intmain(void){ doublex,xpow; intn; printf("Enteranumberandtheintegerpower"); printf("towhich\nthenumberwillberaised.Enterq"); printf("toquit.\n"); while(scanf("%lf%d",&x,&n)==2){ xpow=power(x,n);/*functioncall*/ printf("%.3gtothepower%dis%.5g\n",x,n,xpow); printf("Enternextpairofnumbersorqtoquit.\n"); } printf("Hopeyouenjoyedthispowertrip--bye!\n"); return0;}doublepower(doublea,intb)/*functiondefinition*/{ doublepow=1; inti; if(b==0){finches.\n\n",total/YRS); printf("MONTHLYAVERAGES:\n\n"); printf("JanFebMarAprMayJunJulAugSepOct"); printf("NovDec\n"); for(month=0;month<MONTHS;month++){/*foreachmonth,sumrainfalloveryears*/ for(year=0,subtot=0;year<YRS;year++) subtot+=*(*(rain+year)+month); printf("%",subtot/YRS); } printf("\n"); return0;}編寫一個程序,提示用戶輸入3個數(shù)據(jù)集,每個數(shù)據(jù)集包括5個double值。程序應(yīng)當(dāng)實現(xiàn)下列所有功能:把輸入信息存儲到一個3*5的數(shù)組中計算出每個數(shù)集(包含5個值)的平均值計算所有數(shù)值的平均數(shù)找出這15個數(shù)中的最大值打印出結(jié)果每個任務(wù)需要用一個單獨的函數(shù)來實現(xiàn)。對于任務(wù)B需要編寫計算并返回一維數(shù)組平均值的函數(shù),循環(huán)三次調(diào)用該函數(shù)來實現(xiàn)任務(wù)B。對于任務(wù)C、D,函數(shù)應(yīng)當(dāng)把整個數(shù)組做為參數(shù),并卻完成任務(wù)B、C和D的函數(shù)應(yīng)該向他的調(diào)用函數(shù)返回答案(推薦使用變長數(shù)組,參考程序為變長數(shù)組實現(xiàn))編程考點:循環(huán)和二維數(shù)組的熟練應(yīng)用,以及數(shù)組作為參數(shù)的傳遞#include<>#defineROWS3#defineCOLS5voidstore(doublear[],intn);doubleaverage2d(introws,intcols,doublear[rows][cols]);doublemax2d(introws,intcols,doublear[rows][cols]);voidshowarr2(introws,intcols,doublear[rows][cols]);doubleaverage(constdoublear[],intn);intmain(void){ doublestuff[ROWS][COLS]; introw; for(row=0;row<ROWS;row++){ printf("Enter%dnumbersforrow%d\n",COLS,row+1); store(stuff[row],COLS); } printf("arraycontents:\n"); showarr2(ROWS,COLS,stuff); for(row=0;row<ROWS;row++) printf("averagevalueofrow%d=%g\n",row+1,average(stuff[row], COLS)); printf("averagevalueofallrows=%g\n",average2d(ROWS,COLS,stuff)); printf("largestvalue=%g\n",max2d(ROWS,COLS,stuff)); printf("Bye!\n"); return0;}voidstore(doublear[],intn){ inti; for(i=0;i<n;i++){ printf("Entervalue#%d:",i+1); scanf("%lf",&ar[i]); }}doubleaverage2d(introws,intcols,doublear[rows][cols]){ intr,c; doublesum=; for(r=0;r<rows;r++) for(c=0;c<cols;c++) sum+=ar[r][c]; if(rows*cols>0) returnsum/(rows*cols); else return;}doublemax2d(introws,intcols,doublear[rows][cols]){ intr,c; doublemax=ar[0][0]; for(r=0;r<rows;r++) for(c=0;c<cols;c++) if(max<ar[r][c]) max=ar[r][c]; returnmax;}voidshowarr2(introws,intcols,doublear[rows][cols]){ introw,col; for(row=0;row<rows;row++){ for(col=0;col<cols;col++) printf("%g",ar[row][col]); putchar('\n'); }}doubleaverage(constdoublear[],intn){ inti; doublesum=; for(i=0;i<n;i++) sum+=ar[i]; if(n>0) returnsum/n; else return;}編寫產(chǎn)生100個1-10的隨機(jī)數(shù)的程序,并以降序排列rand()為C的標(biāo)準(zhǔn)隨機(jī)數(shù)產(chǎn)生函數(shù)編程考點:一維數(shù)組實現(xiàn)選擇排序,嵌套循環(huán)的基本使用#include<>#include<>voidprint(constintarray[],intlimit);voidsort(intarray[],intlimit);#defineSIZE100intmain(void){ inti; intarr[SIZE]; for(i=0;i<SIZE;i++) arr[i]=rand()%10+1; puts("initialarray"); print(arr,SIZE); sort(arr,SIZE); puts("\nsortedarray"); print(arr,SIZE); return0;}/*--sortsanintegerarrayindecreasingorder*/voidsort(intarray[],intlimit){ inttop,search,temp; for(top=0;top<limit-1;top++) for(search=top+1;search<limit;search++) if(array[search]>array[top]){ temp=array[search]; array[search]=array[top]; array[top]=temp; }}/*--printsanarray*/voidprint(constintarray[],intlimit){ intindex; for(index=0;index<limit;index++){ printf("%2d",array[index]); if(index%10==9) putchar('\n'); } if(index%10!=0) putchar('\n');}設(shè)計一個簡單的結(jié)構(gòu)用來存儲月份的全稱、縮寫、月號(1-12)、天數(shù)寫一個簡單的程序輸出從一月開始到用戶選擇的月份的總天數(shù)(2月假設(shè)28天)注意,用戶輸入不區(qū)分大小寫編程考點:C庫字符及字符串函數(shù)的初步使用;結(jié)構(gòu)的初步使用#include<>#include<>#include<>structmonth{ charname[10]; charabbrev[4]; intdays; intmonumb;};conststructmonthmonths[12]={{"January","Jan",31,1},{"February", "Feb",28,2},{"March","Mar",31,3},{"April","Apr",30,4},{ "May","May",31,5},{"June","Jun",30,6}, {"July","Jul",31,7},{"August","Aug",31,8},{"September", "Sep",30,9},{"October","Oct",31,10},{"November", "Nov",30,11},{"December","Dec",31,12}};intdays(char*m);intmain(void){ charinput[20]; intdaytotal; printf("Enterthenameofamonth:"); while(gets(input)!=NULL&&input[0]!='\0'){ daytotal=days(input); if(daytotal>0) printf("Thereare%ddaysthrough%s.\n",daytotal,input); else printf("%sisnotvalidinput.\n",input); printf("Nextmonth(emptylinetoquit):"); } puts("bye"); return0;}intdays(char*m){ inttotal=0; intmon_num=0; inti; if(m[0]=='\0') total=-1; else{ m[0]=toupper(m[0]); for(i=1;m[i]!='\0';i++) m[i]=tolower(m[i]); for(i=0;i<12;i++) if(strcmp(m,months[i].name)==0){ mon_num=months[i].monumb; break; } if(mon_num==0) total=-1; else for(i=0;i<mon_num;i++) total+=months[i].days; } returntotal;}修改下面的代碼使他首先按照輸入的順序輸出圖書的信息,然后按照書名的字母升序輸出圖書的信息,就后按照value的值升序輸出圖書的信息,排序的工作由子函數(shù)完成。注意,移動數(shù)據(jù)量很大的單元來實現(xiàn)數(shù)組的排序,不可取??刹捎幂o助的指針數(shù)組來實現(xiàn)編程考點:指針數(shù)組;結(jié)構(gòu)成員的兩種引用方法(->.)#include<>#defineMAXTITL40#defineMAXAUTL40#defineMAXBKS100/*maximumnumberofbooks*/structbook{/*setupbooktemplate*/chartitle[MAXTITL];charauthor[MAXAUTL];floatvalue;};intmain(void){structbooklibrary[MAXBKS];/*arrayofbookstructures*/intcount=0;intindex;printf("Pleaseenterthebooktitle.\n");printf("Press[enter]atthestartofalinetostop.\n");while(count<MAXBKS&&gets(library[count].title)!=NULL&&library[count].title[0]!='\0'){printf("Nowentertheauthor.\n");gets(library[count].author);printf("Nowenterthevalue.\n");scanf("%f",&library[count++].value);while(getchar()!='\n')continue;/*clearinputline*/if(count<MAXBKS)printf("Enterthenexttitle.\n");}if(count>0){printf("Hereisthelistofyourbooks:\n");for(index=0;index<count;index++)printf("%sby%s:$%.2f\n",library[index].title,library[index].author,library[index].value);}else printf("Nobooks
Toobad.\n");return0;}參考答案代碼#include<>#include<>#defineMAXTITL40#defineMAXAUTL40#defineMAXBKS100/*maximumnumberofbooks*/structbook{/*setupbooktemplate*/ chartitle[MAXTITL]; charauthor[MAXAUTL]; floatvalue;};voidsortt(structbook*pb[],intn);voidsortv(structbook*pb[],intn);intmain(void){ structbooklibrary[MAXBKS];/*arrayofbookstructures*/ structbook*pbk[MAXBKS];/*pointersforsorting*/ intcount=0; intindex; printf("Pleaseenterthebooktitle.\n"); printf("Press[enter]atthestartofalinetostop.\n"); while(count<MAXBKS&&gets(library[count].title)!=NULL &&library[count].title[0]!='\0'){ printf("Nowentertheauthor.\n"); gets(library[count].author); printf("Nowenterthevalue.\n"); scanf("%f",&library[count].value); pbk[count]=&library[count]; count++; while(getchar()!='\n') continue;/*clearinputline*/ if(count<MAXBKS) printf("Enterthenexttitle.\n"); } printf("Hereisthelistofyourbooks:\n"); for(index=0;index<count;index++) printf("%sby%s:$%.2f\n",library[index].title, library[index].author,library[index].value); printf("Hereisthelistofyourbookssortedbytitle:\n"); sortt(pbk,count); for(index=0;index<count;index++) printf("%sby%s:$%.2f\n",pbk[index]->title,pbk[index]->author, pbk[index]->value); sortv(pbk,count); printf("Hereisthelistofyourbookssortedbyvalue:\n"); for(index=0;index<count;index++) printf("%sby%s:$%.2f\n",pbk[index]->title,pbk[index]->author, pbk[index]->value); return0;}voidsortt(structbook*pb[],intn){ inttop,search; structbook*temp; for(top=0;top<n-1;top++) for(search=top+1;search<n;search++) if(strcmp(pb[search]->title,pb[top]->title)<0){ temp=pb[search]; pb[search]=pb[top]; pb[top]=temp; }}voidsortv(structbook*pb[],intn){ inttop,search; structbook*temp; for(top=0;top<n-1;top++) for(search=top+1;search<n;search++) if(pb[search]->value<pb[top]->value){ temp=pb[search]; pb[search]=pb[top]; pb[top]=temp; }}編寫程序滿足下列要求定義一個name結(jié)構(gòu),它含有兩個成員:一個字符串用于存放名字,另一個字符串用于存放姓氏定義一個student結(jié)構(gòu),它含有3個成員:name結(jié)構(gòu),一個存放3個浮點數(shù)的grade數(shù)組,以及一個存放這3個數(shù)平均值的變量使用main()函數(shù)聲明一個具有CSIZE(CSIZE=4)個student結(jié)構(gòu)的數(shù)組,用來作為一個班級的數(shù)組,并隨意初始化這些結(jié)構(gòu)的名字部分,即:初始化一個班級數(shù)組里面學(xué)生的姓名。使用函數(shù)來執(zhí)行d,e,f,g所描述的任務(wù)請求輸入學(xué)生的分?jǐn)?shù),以交互地獲取每個學(xué)生的成績。將分?jǐn)?shù)放到相應(yīng)結(jié)構(gòu)的grade數(shù)組成員中。可以自主選擇在main()或一個函數(shù)中實現(xiàn)這個循環(huán)為每個結(jié)構(gòu)計算平均分,并把平均值賦給合適的成員輸出每個結(jié)構(gòu)的信息輸出每門課程的班級平均分編程考點:結(jié)構(gòu)數(shù)組的使用#include<>#include<>#defineLEN14#defineCSIZE4#defineSCORES3structname{ charfirst[LEN]; charlast[LEN];};structstudent{ structnameperson; floatscores[SCORES]; floatmean;};voidget_scores(structstudentar[],intlim);voidfind_means(structstudentar[],intlim);voidshow_class(conststructstudentar[],intlim);voidshow_ave(conststructstudentar[],intlim);intmain(void){ structstudentclass[CSIZE]={{"Flip","Snide"},{"Clare","Voyans"}, {"Bingo","Higgs"},{"Fawn","Hunter"}}; get_scores(class,CSIZE); find_means(class,CSIZE); show_class(class,CSIZE); show_ave(class,CSIZE); return0;}voidget_scores(structstudentar[],intlim){ inti,j; for(i=0;i<lim;i++){ printf("Pleaseenter%dscoresfor%s%s:\n",SCORES, ar[i].,ar[i].; for(j=0;j<SCORES;j++){ while(scanf("%f",&ar[i].scores[j])!=1){ scanf("%*s"); puts("Pleaseusenumericinput."); } } }}voidfind_means(structstudentar[],intlim){ inti,j; floatsum; for(i=0;i<lim;i++){ for(sum=0,j=0;j<SCORES;j++) sum+=ar[i].scores[j]; ar[i].mean=sum/SCORES; }}voidshow_class(conststructstudentar[],intlim){ inti,j; charwholename[2*LEN]; for(i=0;i<lim;i++){ strcpy(wholename,ar[i].; strcat(wholename,""); strcat(wholename,ar[i].; printf("%27s:",wholename); for(j=0;j<SCORE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖畫和相片用框產(chǎn)品供應(yīng)鏈分析
- 照相制版機(jī)產(chǎn)品供應(yīng)鏈分析
- 色拉脫水器市場發(fā)展前景分析及供需格局研究預(yù)測報告
- 紅外線衣項目運營指導(dǎo)方案
- 夜燈產(chǎn)品供應(yīng)鏈分析
- 建筑光伏遮陽行業(yè)市場調(diào)研分析報告
- AI輔助精神健康護(hù)理行業(yè)營銷策略方案
- 男用美發(fā)劑細(xì)分市場深度研究報告
- 蠟像項目營銷計劃書
- 商業(yè)櫥窗布置行業(yè)營銷策略方案
- 期中試卷(試題)-2024-2025學(xué)年三年級上冊數(shù)學(xué)青島版
- 期中押題卷(試題)-2024-2025學(xué)年數(shù)學(xué)六年級上冊北師大版
- 期中模擬(1-3單元)(試題)-2024-2025學(xué)年六年級上冊數(shù)學(xué)蘇教版
- 點亮文明 課件 2024-2025學(xué)年蘇少版(2024)初中美術(shù)七年級上冊
- 廉政法規(guī)知識測試及答案
- 少兒美術(shù)課件國家寶藏系列《云肩》
- 教師業(yè)務(wù)考試試題
- 2024內(nèi)蒙古農(nóng)牧業(yè)融資擔(dān)保限公司招聘28人高頻難、易錯點500題模擬試題附帶答案詳解
- 5.1 延續(xù)文化血脈 課件-2024-2025學(xué)年統(tǒng)編版道德與法治九年級上冊-2
- 2024年環(huán)磷酰胺原料藥項目發(fā)展計劃
- 2024-2030年中國CCUS技術(shù)行業(yè)現(xiàn)狀調(diào)查與前景策略分析研究報告
評論
0/150
提交評論