程序题.docx
- 文档编号:26151487
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:42
- 大小:21.05KB
程序题.docx
《程序题.docx》由会员分享,可在线阅读,更多相关《程序题.docx(42页珍藏版)》请在冰豆网上搜索。
程序题
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
输入n个数,并求出小于平均值的数的个数。
------------------------------------------------*/
#include"stdio.h"
intaverage_num(inta[],intn)
{
/*********Begin**********/
/**********End**********/
}
main()
{
intn,a[100],i,num;
voidTestFunc();
scanf("%d",&n);
for(i=0;i scanf("%d",&a[i]); num=average_num(a,n); printf("thenumis: %d\n",num); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<5;n++) { fscanf(IN,"%d",&i[n]); } o=average_num(i,5); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 【参考代码】 inti,sum=0,k=0; doubleaverage; for(i=0;i sum=sum+a[i]; average=sum*1.0/n; for(i=0;i if(average>a[i])k++; return(k); =============== /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 从字符串中删除指定的字符。 同一字母的大、小写 按不同字符处理。 例如: 若程序执行时输入字符串为: turbocandborlandc++ 从键盘上输入字符: n,则输出后变为: turbocadbo rladc++,如果输入的字符在字符串中不存在,则字 符串照原样输出。 ------------------------------------------------*/ #include"stdio.h" voidfun(chars[],charc) { /*********Begin**********/ /**********End**********/ } voidTestFunc() { FILE*IN,*OUT; chari[200]; /*charo[200];*/ IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } fscanf(IN,"%s",i); fun(i,'n'); fprintf(OUT,"%s",i); fclose(IN); fclose(OUT); } main() { staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str); TestFunc(); } 【参考代码】 char*q=s; for(;*q;q++) if(*q! =c)*(s++)=*q; *s=0; =============== /*-------------------------------------------------------- 【程序改错】 -------------------------------------------------------- 功能: 依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 例如: 输入ab12c3d,则输出123。 注意: 不得增行或删行,也不得更改程序的结构! ------------------------------------------------------*/ #include"stdio.h" /**********ERROR**********/ voidfun(chars) { inti,j; for(i=0,j=0;s[i]! ='\0';i++) if(s[i]>='0'&&s[i]<='9') /**********ERROR**********/ s[j]=s[i]; /**********ERROR**********/ s[j]="\0"; } main() { charitem[80]; printf("\nEnterastring: "); gets(item); printf("\n\nThestringis: \"%s\"\n",item); fun(item); printf("\n\nThestringofchangingis: \"%s\"\n",item); } 【参考答案】 voidfun(char*s) voidfun(chars[]) voidfun(chars[80]) 【参考答案】 s[j++]=s[i]; {s[j]=s[i];j++;} 【参考答案】 s[j]='\0'; /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 读入一个整数m(5≤m≤20),函数rnd获得m个随机整数, 函数sortpb将这m个随机整数从小到大排序。 例如: 若输入整数7,则应输出: 3101728323647。 ------------------------------------------------------*/ #include"conio.h" #include"stdio.h" sortpb(intn,inta[]) { /**********ERROR**********/ inti,j,p; for(j=0;j { p=j; for(i=j+1;i /**********ERROR**********/ if(a[p]>a[j])p=i; /**********ERROR**********/ if(p==j) { t=a[j]; a[j]=a[p]; a[p]=t; } } } doublernd() { statict=29,c=217,m=1024,r=0; r=(r*t+c)%m;return((double)r/m); } getarr(intn,int*x) { inti; for(i=1;i<=n;i++,x++)*x=(int)(50*rnd()); } putarr(intn,int*z) { inti; for(i=1;i<=n;i++,z++) { printf("%4d",*z); if(! (i%10))printf("\n"); } printf("\n"); } main() { intaa[20],n; printf("\nPleaseenteranintegernumberbetween5and20: "); scanf("%d",&n); getarr(n,aa); printf("\n\nBeforesorting%dnumbers: \n",n);putarr(n,aa); sortpb(n,aa); printf("\nAftersorting%dnumbers: \n",n);putarr(n,aa); } 【参考答案】 inti,j,p,t; 【参考答案】 if(a[p]>a[i])p=i; 【参考答案】 if(p! =j) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 计算矩阵a的下三角(包含主对角线)元素之积,矩阵的 行、列数和元素值均由键盘输入。 -------------------------------------------------------*/ #defineM10 #include"stdio.h" intmain() { inti,j,n,a[M][M]; longs=1; scanf("%d",&n); /***********FILL***********/ for(_________) for(j=0;j scanf("%d",&a[i][j]); for(i=0;i /***********FILL***********/ for(j=0;_______;j++) /***********FILL***********/ s=_________; printf("%ld\n",s); return0; } 【参考答案】 i=0;i i=0;i 【参考答案】 j<=i i>=j 【参考答案】 s*a[i][j] a[i][j]*s /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目: 本程序的功能是从10个数中找出其中的最大值,完善程序。 -------------------------------------------------------*/ #include"stdio.h" main() { inta[10],i,*pmax; for(i=0;i<10;i++) scanf("%d",&a[i]); /***********FILL***********/ pmax=_____; for(i=1;i<10;i++) if(a[i]>*pmax)pmax=&a[i]; /***********FILL***********/ printf("%d",_____); } 【参考答案】 pmax=&a[0] pmax=a 【参考答案】 *pmax /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 计算并输出给定整数n的所有因子之和(不包括1与 自身)。 注意: n的值不大于1000。 例如: n的值为855时,应输出704。 ------------------------------------------------*/ #include"stdio.h" intfun(intn) { /*********Begin**********/ /**********End**********/ } voidTestFunc() { FILE*IN,*OUT; intiIN,iOUT,i; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } main() { printf("s=%d\n",fun(855)); TestFunc(); } 【参考代码】 ints=0,i; for(i=2;i if(n%i==0)s=s+i; returns; /*------------------------------------------------------ 【程序设计】 -------------------------------------------------------- 功能: 删去一维数组中所有重复的数,只保留不同的数。 数组中的数已按由小到大的顺序排列, 函数返回删除后数组中数据的个数。 例如: 一维数组中的数据是: 2223445666677899101010。 删除后,数组中的内容应该是: 2345678910。 注意: 请勿改动主函数main和其它函数中的任何内容。 ------------------------------------------------------*/ #include"stdio.h" #defineN80 intfun(inta[],intn) { /*********Begin**********/ /**********End**********/ } main() { voidTestFunc(); inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf("Theoriginaldata: \n"); for(i=0;i n=fun(a,n); printf("\n\nThedataafterdeleted: \n"); for(i=0;i printf("\n\n"); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; inta[N]; intn; inti; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } fscanf(IN,"%d",&n); for(i=0;i n=fun(a,n); for(i=0;i fclose(IN); fclose(OUT); } 【参考代码】 inti,j=1,k=a[0]; for(i=1;i if(k! =a[i]) { a[j++]=a[i]; k=a[i]; } a[j]=0; /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 函数fun的功能是: 求1到20的阶乘的和。 --------------------------------------*/ #include"stdio.h" main() { intn,j; floats=0.0,t=1.0; for(n=1;n<=20;n++) { /**********ERROR**********/ s=1; for(j=1;j<=n;j++) /**********ERROR**********/ t=t*n; /**********ERROR**********/ s+t=s; } printf("jiecheng=%f\n",s); } 【参考答案】 t=1; t=1.0; 【参考答案】 t=t*j; t*=j; t=j*t; 【参考答案】 s=s+t; s+=t; s=t+s; /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 实现两个字符串的连接。 例如: 输入dfdfqe和12345时,则输出dfdfqe12345. ------------------------------------------------------*/ #include"stdio.h" main() { chars1[80],s2[80]; voidscat(chars1[],chars2[]); gets(s1); gets(s2); scat(s1,s2); puts(s1); } voidscat(chars1[],chars2[]) { inti=0,j=0; /**********ERROR**********/ while(s1[i]=='\0')i++; /**********ERROR**********/ while(s2[j]=='\0') { /**********ERROR**********/ s2[j]=s1[i]; i++; j++; } /**********ERROR**********/ s2[j]='\0'; } 【参考答案】 while(s1[i]! ='\0')i++; while(s1[i])i++; while(s1[i]! =NULL)i++; while(s1[i]! =0)i++; 【参考答案】 while(s2[j]! ='\0') while(s2[j]) while(s2[j]! =NULL) while(s2[j]! =0) 【参考答案】 s1[i]=s2[j];【参考答案】 s1[i]='\0'; s1[i]=NULL; *(s1+i)='\0'; s1[i]=0; /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 打印以下图形。 ***** ***** ***** ***** ***** -------------------------------------------------------*/ #include"stdio.h" main() { chara[5][9]={""}; inti,j; for(i=0;i<5;i++) /***********FILL***********/ for(j=i;_____;j++) a[i][j]='*'; /***********FILL***********/ for(_____;i<5;i++) { for(j=0;j<9;j++) /***********FILL***********/ printf("%c",_____); /***********FILL***********/ _____; } } 【参考答案】 j i+5>j j<=i+4 i+4>j 【参考答案】 i=0 【参考答案】 a[i][j] 【参考答案】 printf("\n") /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 计算n门课程的平均分。 例如: 若有5门课程的成绩是: 90.5,72,80,61.5,55 则函数的值为: 71.80。 -------------------------------------------------------*/ #include floatfun(float*a,intn) { inti; floatave=0.0; /***********FILL***********/ for(i=0;________;i++) ave=ave+a[i]; ave=ave/n; /***********FILL***********/ _________; } intmain() { floatscore[30]={90.5,72,80,61.5,55},aver; /***********FILL***********/ aver=fun(_______,5); printf("\nAvera
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)