版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C补强阶段作业C补强阶段作业C补强阶段作业资料仅供参考文件编号:2022年4月C补强阶段作业版本号:A修改号:1页次:1.0审核:批准:发布日期:编写一个函数。函数的三个参数是一个字符和两个整数。字符参数是需要输出的字符。第1个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。要求:输入字符为回车时,作为未输入字符处理;输入行列值时若不是数字,直接结束程序。编程考点:循环基本语法;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;}编写一个函数计算double类型数的某个整数次幂(不得调用系统的函数pow),注意0的任何次幂和任何数值的0次幂以及负数次幂并编写测试程序编程考点: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个数据集,每个数据集包括5个double值。程序应当实现下列所有功能:把输入信息存储到一个3*5的数组中计算出每个数集(包含5个值)的平均值计算所有数值的平均数找出这15个数中的最大值打印出结果每个任务需要用一个单独的函数来实现。对于任务B需要编写计算并返回一维数组平均值的函数,循环三次调用该函数来实现任务B。对于任务C、D,函数应当把整个数组做为参数,并却完成任务B、C和D的函数应该向他的调用函数返回答案(推荐使用变长数组,参考程序为变长数组实现)编程考点:循环和二维数组的熟练应用,以及数组作为参数的传递#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;}编写产生100个1-10的随机数的程序,并以降序排列rand()为C的标准随机数产生函数编程考点:一维数组实现选择排序,嵌套循环的基本使用#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');}设计一个简单的结构用来存储月份的全称、缩写、月号(1-12)、天数写一个简单的程序输出从一月开始到用户选择的月份的总天数(2月假设28天)注意,用户输入不区分大小写编程考点:C库字符及字符串函数的初步使用;结构的初步使用#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的值升序输出图书的信息,排序的工作由子函数完成。注意,移动数据量很大的单元来实现数组的排序,不可取。可采用辅助的指针数组来实现编程考点:指针数组;结构成员的两种引用方法(->.)#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结构,它含有两个成员:一个字符串用于存放名字,另一个字符串用于存放姓氏定义一个student结构,它含有3个成员:name结构,一个存放3个浮点数的grade数组,以及一个存放这3个数平均值的变量使用main()函数声明一个具有CSIZE(CSIZE=4)个student结构的数组,用来作为一个班级的数组,并随意初始化这些结构的名字部分,即:初始化一个班级数组里面学生的姓名。使用函数来执行d,e,f,g所描述的任务请求输入学生的分数,以交互地获取每个学生的成绩。将分数放到相应结构的grade数组成员中。可以自主选择在main()或一个函数中实现这个循环为每个结构计算平均分,并把平均值赋给合适的成员输出每个结构的信息输出每门课程的班级平均分编程考点:结构数组的使用#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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 莱芜市重点中学2025届高考考前提分语文仿真卷含解析
- 11.2《五代史伶官传序》课件 2024-2025学年统编版高中语文选择性必修中册-3
- 河北景县梁集中学2025届高考英语一模试卷含解析
- 浙江省浙东北联盟2025届高考数学全真模拟密押卷含解析
- 衡中同卷2025届高三下学期第五次调研考试英语试题含解析
- 山西省大同一中等2025届高三第二次调研英语试卷含解析
- 2025届江西省赣州市于都二中高三第一次调研测试英语试卷含解析
- 江苏省苏州外国语学校2025届高考全国统考预测密卷语文试卷含解析
- 广东省揭阳市揭西河婆中学2025届高三3月份模拟考试数学试题含解析
- 2025届广东梅州第一中学高三下第一次测试英语试题含解析
- 看汉字写拼音(声母+单韵母、复韵母)直接打印
- 剪映专业版画中画与蒙版使用方法教程
- 《小学生数学计算能力培养策略研究》中期总结
- 教科版四年级上册科学实验报告全 册
- 中职班级建设方案
- “三防”行动(防冻防凝防静电)专项检查表
- 高层住宅项目四优化创效经验交流PPT
- 2023年10月自考00087英语翻译试题及答案含评分标准
- IT行业模板:设备验收单
- 《莎士比亚简介》课件
- 安全生产规章制度和岗位操作规程的目录清单及内容(无仓储经营单位)
评论
0/150
提交评论