程序设计编程样例.docx
- 文档编号:26875979
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:16
- 大小:24.03KB
程序设计编程样例.docx
《程序设计编程样例.docx》由会员分享,可在线阅读,更多相关《程序设计编程样例.docx(16页珍藏版)》请在冰豆网上搜索。
程序设计编程样例
C语言程序设计编程题样例
一.数字应用
1.请编写一个函数voidfun(int*a,int*n),它的功能是:
求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数放在数组a中,通过n返回这些数的个数。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
voidfun(int*a,int*n)
{
}
main()
{intaa[1000],n,k;
fun(aa,&n);
for(k=0;k if((k+1)%10==0)printf("\n"); elseprintf("%5d",aa[k]); } 二.计算多项式应用 2.编写函数fun,函数的功能是: 根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 例如: 若n的值为11时,函数的值为: 1.833333 请勿改动主函数main任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include floatfun(intn) { } main() {intn;floats; printf("\nPleaseenterN: ");scanf("%d",&n); s=fun(n); printf("theresultis: %f\n",s); NONO(); } 三.一维数组应用 3.请编写函数fun,其功能是: 计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为: s=35.951014。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include doublefun(doublex[9]) { } main() {doubles,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0}; inti; printf("\nTheoriginaldatais: \n"); for(i=0;i<9;i++)printf("%6.1f",a[i]);printf("\n\n"); s=fun(a); printf("s=%f\n\n",s); } 4.函数fun的功能是: 把a数组中的n个数的平方值、与b数组中逆序的n个数的平方值一一对应相加,结果存在c数组中。 例如: 当a数组中的值是: 1、3、5、7、8。 b数组中的值是: 2、3、4、5、8。 调用该函数后,c中存放的数据是: 65、34、41、58、68。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include voidfun(inta[],intb[],intc[],intn) { } main() {inti,a[100]={1,3,5,7,8},b[100]={2,3,4,5,8},c[100]; fun(a,b,c,5); printf("Theresultis: "); for(i=0;i<5;i++)printf("%d",c[i]); printf("\n"); } 四.二维数组应用 5.程序定义了N×N的二维数组,并在主函数中自动赋值。 请编写函数fun,函数的功能是: 使数组右上三角元素中的值乘以m。 例如: 若m的值为2,a数组中的值为 请勿改动主函数main中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #defineN5 intfun(inta[][N],intm) { } main() {inta[N][N],m,i,j; printf("*****Thearray*****\n"); for(i=0;i {for(j=0;j {a[i][j]=rand()%20;printf("%4d",a[i][j]);} printf("\n"); } dom=rand()%10;while(m>=3); printf("m=%4d\n",m); fun(a,m); printf("THERESULT\n"); for(i=0;i {for(j=0;j printf("\n"); } } 6. 请编写函数intfun(inta[M][N]),a是一个M行N列的二维数组,函数的功能是求出二维数组周边元素之和,作为函数值返回。 二维数组中的值由主函数传入。 例如: 二维数组中的值为右图,则函数返回值为61。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #defineM4 #defineN5 intfun(inta[M][N]) { } main() {intaa[M][N]={{1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0}}; inti,j,y; printf("Theoriginaldatais: \n"); for(i=0;i {for(j=0;j printf("\n"); } y=fun(aa); printf("\nThesum: %d\n",y); printf("\n"); NONO(); } 五.字符串处理 7.函数fun的功能是: 将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 例如,若s所指字符串中的内容为"ABCDEFG12345",其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。 最后t所指的数组中的内容应是"BDF12345"。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #include voidfun(char*s,chart[]) { } main() {chars[100],t[100]; printf("\nPleaseenterstringS: ");scanf("%s",s); fun(s,t); printf("\nTheresultis: %s\n",t); } 8.请编写一个函数voidfun(char*s),函数的功能是把字符串s中的所有字符前移一个位置,串中的第一个字符移到最后。 例如: s串中原来的字符串为: "Mn.123xyZ",则调用该函数后,s串中的内容为: "n.123xyZM"。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #defineN81 voidfun(char*s) { } main() {chara[N]; printf("Enterastring: ");gets(a); printf("Theoriginalstringis: ");puts(a); fun(a); printf("Thestringaftermodified: "); puts(a); } 六.学生成绩应用 9.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是6069,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。 主函数中将把60放在low中,把69放在heigh中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #defineN16 typedefstruct {charnum[10]; ints; }STREC; intfun(STREC*a,STREC*b,intl,inth) { } main() {STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85}, {"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87}, {"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91}, {"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}}; STRECh[N],tt;FILE*out; inti,j,n,low,heigh,t; printf("Enter2integernumberlow&heigh: "); scanf("%d%d",&low,&heigh); if(heigh n=fun(s,h,low,heigh); printf("Thestudent'sdatabetween%d--%d: \n",low,heigh); for(i=0;i printf("\n"); out=fopen("out18.dat","w"); n=fun(s,h,80,98); fprintf(out,"%d\n",n); for(i=0;i for(j=i+1;j if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;} for(i=0;i fprintf(out,"\n"); fclose(out); } 10.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,它的功能是: 求出平均分,由函数值返回。 例如,若学生的成绩是: 85,76,69,85,91,72,64,87,则平均分应当是: 78.625。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #defineN8 structslist {doubles; structslist*next; }; typedefstructslistSTREC; doublefun(STREC*h) { } STREC*creat(double*s) {STREC*h,*p,*q;inti=0; h=p=(STREC*)malloc(sizeof(STREC));p->s=0; while(i {q=(STREC*)malloc(sizeof(STREC)); q->s=s[i];i++;p->next=q;p=q; } p->next=0; returnh; } outlist(STREC*h) {STREC*p; p=h->next;printf("head"); do {printf("->%4.1f",p->s);p=p->next;} while(p! =0); printf("\n\n"); } main() {doubles[N]={85,76,69,85,91,72,64,87},ave; STREC*h; h=creat(s);outlist(h); ave=fun(h); printf("ave=%6.3f\n",ave); } 七.分段汇总统计 11.函数fun的功能是: 对指定字符在字符串a中出现的次数进行统计,统计的数据存到b数组中。 其中: 字符'a'出现的次数存放到b[0]中,字符'b'出现的次数存放到b[1]中,字符'c'出现的次数存放到b[2]中,字符'd'出现的次数存放到b[3]中,字符'e'出现的次数存放到b[4]中,其它字符出现的次数存到b[5]中。 例如,当a中的字符串为: "bacd1b+ddep",调用该函数后,b中存放数据应是: 1、2、1、3、1、3。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include voidfun(char*a,intb[]) { } main() {inti,b[6];chara[100]="bacd1b+ddep"; fun(a,b); printf("Theresultis: "); for(i=0;i<6;i++)printf("%d",b[i]); printf("\n"); } 12.函数fun的功能是: 对a数组中n个人员的工资进行分段统计,各段的人数存到b数组中;工资为1000元以下的人数存到b[0]中,工资为1000元到1999元的人数存到b[1],工资为2000元到2999元的人数存到b[2],工资为3000元到3999元的人数存到b[3],工资为4000元到4999元的人数存到b[4],工资为5000元以上的人数存到b[5]中。 例如,当a数组中的数据为: 900、1800、2700、3800、5900、3300、2400、7500、3800,调用该函数后,b中存放的数据应是: 1、1、2、3、0、2。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include voidfun(inta[],intb[],intn) { } main() {inti,a[100]={900,1800,2700,3800,5900,3300,2400,7500,3800},b[6]; fun(a,b,9); printf("Theresultis: "); for(i=0;i<6;i++)printf("%d",b[i]); printf("\n"); NONO(); } 九.素数应用 13.88.(266)编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中(并按从大到小的顺序排列),该函数返回所求出素数的个数。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 (参36.c)】 #include #defineMAX100 intfun(intlim,intaa[MAX]) { } main() {intlimit,i,sum; intaa[MAX]; printf("输入一个整数"); scanf("%d",&limit); sum=fun(limit,aa); for(i=0;i { if(i%10==0&&i! =0) printf("\n"); printf("%5d",aa[i]); } } C程序设计编程题样例参考代码 题号 参考答案 1 voidfun(int*a,int*n) {inti;*n=0; for(i=7;i<1000;i++) if(((i%7)==0||(i%11)==0)&&(i%77)! =0)a[(*n)++]=i; } 2 floatfun(intn) {floata=0.0;inti;floatsum=0.0; for(i=1;i<=n;i++) {a+=i;sum+=1/a;} returnsum; } 3 doublefun(doublex[9]) {doublesum=0.0;inti; for(i=0;i<8;i++)sum+=sqrt((x[i]+x[i+1])/2.0); returnsum; } 4 voidfun(inta[],intb[],intc[],intn) {inti,j; for(i=0,j=n-1;i } 5 intfun(inta[][N],intm) {inti,j; for(j=0;j for(i=0;i<=j;i++)a[i][j]=a[i][j]*m; } 6 intfun(inta[M][N]) {inti,j,s=0; for(i=0;i for(j=0;j if(i==0||j==0||i==M-1||j==N-1)s+=a[i][j]; returns; } 7 voidfun(char*s,chart[]) {inti,j=0,n=strlen(s); for(i=0;i if(i%2==0&&s[i]%2! =0); elset[j++]=s[i]; t[j]='\0'; } 8 voidfun(char*s) {inti;char ch;ch=s[0]; for(i=0;i s[i]=ch; } 9 intfun(STREC*a,STREC*b,intl,inth) {inti,j=0; for(i=0;i if(a[i].s>=l&&a[i].s<=h){b[j]=a[i];j++;} returnj; } 10 doublefun(STREC*h) {doubleave=0.0; inti; for(i=0;i return(ave/N); } 11 voidfun(char*a,intb[]) {intj,st;st=strlen(a)-1; for(i=0;i<6;i++)b[i]=0; for(j=0;j<=st;j++) {switch(a[j]) {case'a': b[0]++;break;case'b': b[1]++;break; case'c': b[2]++;break;case'd': b[3]++;break; case'e': b[4]++;break;default: b[5]++;break; } } } 12 voidfun(inta[],intb[],intn) {intst,j;st=n-1; for(i=0;i<6;i++)b[i]=0; for(j=0;j<=st;j++) {if(a[j]<1000)b[0]++; if(a[j]>=1000&&a[j]<=1999)b[1]++; if(a[j]>=2000&&a[j]<=2999)b[2]++; if(a[j]>=3000&&a[j]<=3999)b[3]++; if(a[j]>=4000&&a[j]<=4999)b[4]++; if(a[j]>5000)b[5]++; } } 13 intfun(intlim,intaa[MAX]) {inti,j,n=0,yes; for(i=2;i<=lim;i++) {yes=1; for(j=2;j if(yes)aa[n++]=i; } returnn; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 编程