C语言上机题.doc_第1页
C语言上机题.doc_第2页
C语言上机题.doc_第3页
C语言上机题.doc_第4页
C语言上机题.doc_第5页
已阅读5页,还剩214页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计:- 请编写一个函数fun,它的功能是:求出一个2M整型二维数组中最大元素的值,并将此值返回调用函数。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。-*/#define M 4#include fun (int aM) /*Begin*/ /*End*/【参考代码】int i,j;int max=a00;for(i=0;i2;i+) for(j=0;jmax) max=aij;return max; /*给定程序modi.c中函数fun的功能是:按以下递归公式求函数值。 10 (n=1) fun(n)= fun(n-1)+2 (n1) 例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。 请改正程序中的错误,使它能得出正确结果。*/ #include /*Error*/void fun(n) int c;/*Error*/ if (n=1) c=10; else c=fun(n-1)+2; return(c);main() int n; printf(Enter n: );scanf(%d,&n); printf(The result:%dnn,fun(n);【参考答案】int fun(n)int fun(int n)fun (int n)fun (n)【参考答案】if (n=1)if (1=n)if (!(n!=1)程序填空:- 给定程序中,函数fun的功能是:将自然数110以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!-*/#include #include int fun(char *fname ) FILE *fp; int i,n; float x; if(fp=fopen(fname, w)=NULL) return 0; for(i=1;i=10;i+)/*fill*/ fprintf(_,%d %fn,i,sqrt(double)i); printf(nSucceed!n);/*fill*/ _; printf(nThe data in file :n);/*fill*/ if(fp=fopen(_,r)=NULL) return 0; fscanf(fp,%d%f,&n,&x); while(!feof(fp) printf(%d %fn,n,x); fscanf(fp,%d%f,&n,&x); fclose(fp); return 1;main() char fname=myfile3.txt; fun(fname);【参考答案】fprintf(fp,%d %fn,i,sqrt(double)i);【参考答案】fclose(fp);【参考答案】if(fp=fopen(fname,r)=NULL)=/*-程序设计:- 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun, 它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。-*/#include #define N 8typedef struct char num10; double s; STREC;double fun(STREC *a,STREC *b,int *n) /*Begin*/ /*End*/main() STREC sN=GA05,85,GA03,76,GA02,69,GA04,85,GA01,91,GA07,72,GA08,64,GA06,87; STREC hN;FILE *out; int i,n;double ave; ave=fun(s,h,&n); printf(The %d student data which is lower than %7.3f:n,n,ave); for(i=0;in;i+) printf(%s %4.1fn,hi.num,hi.s); printf(n); out=fopen(out13.dat,w); fprintf(out,%dn%7.3fn,n,ave); for (i=0;in;i+) fprintf(out,%s %4.1fn,hi.num,hi.s); fclose(out);【参考代码】int i,j=0;double sum=0,ave;for(i=0;iN;i+) sum=sum+ai.s;ave=sum/N;for(i=0;iN;i+) if(ai.save) bj+=ai; *n=j;return ave;=【考生代码】 /*给定程序MODI1.C中fun函数的功能是:根据整型形参m,计算如下公式的值。 1 1 1 1 t = 1 - - - - - 2 3 4 m 例如,若主函数中输入5,则应输出 -0.283333。 请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。*/ #include double fun( int m ) double t = 1.0; int i; for( i = 2; i = m; i+ )/*Error*/ t = 1.0-1 /i;/*Error*/ _;main() int m ; printf( nPlease enter 1 integer numbers:n ); scanf( %d, &m); printf( nnThe result is %lfn, fun( m ) );【改错1】错误【学生答案】t = 1.0-1 /i;【参考答案】t-=1.0/i;t=t-1.0/i;t-=1./i;t=t-1./i;t-=(double)1/i;t=t-(double)1/i;t-=(float)1/i;t=t-(float)1/i;=【改错2】错误【学生答案】_;【参考答案】return t;return(t);=/*-程序填空:- 给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!-*/#include typedef struct char name10; int age;STD;STD fun(STD std, int n) STD max; int i;/*fill*/ max= _; for(i=1; in; i+)/*fill*/ if(max.age_) max=stdi; return max;main( ) STD std5=aaa,17,bbb,16,ccc,18,ddd,17,eee,15 ; STD max; max=fun(std,5); printf(nThe result: n);/*fill*/ printf(nName : %s, Age : %dn, _,max.age);【空 1 】错误【学生答案】max=_;【参考答案】max= *std;max= std0;=【空 2 】错误【学生答案】if(max.age_)max=stdi;【参考答案】if(max.agestdi.age) max=stdi;if(max.age(*(std+i).age) max=stdi;if(max.ageage) max=stdi;if(max.age(std+i)0.age) max=stdi;=【空 3 】错误【学生答案】printf(nName:%s,Age:%dn,_,max.age);【参考答案】printf(nName : %s, Age : %dn, ,max.age);=/*-程序设计:-请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为:71.80。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include float fun(float *a,int n) /*Begin*/ /*End*/void NONO ( )/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, j ; float aver, score5 ; fp = fopen(bc01.in,r) ; if(fp = NULL) printf(数据文件bc01.in不存在!) ; return ; wf = fopen(bc01.out,w) ; for(i = 0 ; i 10 ; i+) for(j = 0 ; j 5 ; j+) fscanf(fp,%f,&scorej) ; aver = fun(score, 5) ; fprintf(wf, %5.2fn, aver) ; fclose(fp) ; fclose(wf) ;main() float score30=90.5,72,80,61.5,55,aver; aver=fun(score,5); printf(nAverage score is: %5.2fn,aver); NONO ( );【参考代码】int i;float s=0;for(i=0;in;i+) s+=ai;return s/n;=【考生代码】 /*给定程序modi.c中,函数fun的功能是:应用递归算法求形参a的平方根,求平方根的迭代公式如下: 例如,2的平方根值为:1.414214。 请改正程序中的错误,使它能得出正确结果。*/ #include #include /*Error*/fun(double a,double x0) double x1,y; x1=(x0+a/x0)/2.0;/*Error*/ if(fabs(x1-x0)0.00001) y=fun(a,x1); else y=x1; return y;main() double x; printf(Enter x:);scanf(%lf,&x); printf(The square root of %lf is %lfn,x,fun(x,1.0);【改错1】错误【学生答案】fun(double a,double x0)【参考答案】double fun(double a,double x0)float fun(double a,double x0)=【改错2】错误【学生答案】if(fabs(x1-x0)0.00001)if(0.000010.00001)if(0.00001fabs(x0-x1)=/*-1.程序填空:- 函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!-*/#include void fun(int a, int n) int i,t;/*fill*/ for (i=0; i_; i+) t=ai;/*fill*/ ai = an-1-_;/*fill*/ _ = t; main() int b9=1,2,3,4,5,6,7,8,9, i; printf(nThe original data :n); for (i=0; i9; i+) printf(%4d , bi); printf(n); fun(b, 9); printf(nThe data after invert :n); for (i=0; i9; i+) printf(%4d , bi); printf(n);【空 1 】错误【学生答案】for(i=0;i_;i+)【参考答案】for (i=0; in/2; i+)=【空 2 】错误【学生答案】ai=an-1-_;【参考答案】ai = an-1-i;=【空 3 】错误【学生答案】_=t;【参考答案】an-i-1 = t;an-1-i = t;a-1+n-i = t;a-1-i+n = t;a-i+n-1 = t;a-i-1+n= t;an-(i+1) = t;an-(1+i) = t;a-(i+1)+n = t;a-(1+i)+n = t;=/*-程序设计:- 请编写函数fun,函数的功能是:将M行N列的二维数组中的数据按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 33 33 33 44 44 44 44 55 55 55 55。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。-*/#include void fun(int (*s)10, int *b, int *n, int mm, int nn) /*Begin*/ /*End*/NONO()/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/ FILE *rf, *wf ; int i, j, k ; int w1010, a100, n = 0, mm, nn ; rf = fopen(bc.in, r) ; wf = fopen(bc.out, w) ; for(k = 0 ; k 5 ; k+) fscanf(rf, %d %d, &mm, &nn) ; for(i = 0 ; i mm ; i+) for(j = 0 ; j nn ; j+) fscanf(rf, %d, &wij) ; n=0; fun(w, a, &n, mm, nn) ; for(i = 0 ; i n ; i+) fprintf(wf, %3d, ai) ; fprintf(wf, n) ; fclose(rf) ; fclose(wf) ;main() int w1010 = 33,33,33,33,44,44,44,44,55,55,55,55,i,j ; int a100 = 0, n = 0 ; printf(The matrix:n) ; for(i = 0 ; i 3 ; i+) for(j = 0 ; j 4 ; j+) printf(%3d,wij) ; printf(n) ; fun(w, a, &n, 3, 4) ; printf(The A array:n) ; for(i = 0 ; i n ; i+) printf(%3d,ai);printf(nn) ; NONO() ;【参考代码】int i,j,k=0;*n=mm*nn;for(i=0;imm;i+)for(j=0;jnn;j+)bk+=sij;=【考生代码】 /*给定程序modi.c中,函数fun的功能是:计算正整数num的各位上的数字之积,例如,若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 请改正程序中的错误,使它能得出正确结果。*/ #include #include #include long fun(long num) /*Error*/ long k; do k*=num%10;/*Error*/ num=10; while(num); return (k);main() long n; system(cls); printf(Please enter a number:);scanf(%ld,&n); printf(n%ldn,fun(n);【改错1】错误【学生答案】long k;【参考答案】long k=1 ;long k;k=1;=【改错2】错误【学生答案】num=10;【参考答案】num/=10;num=num/10;=/*-程序填空:- 给定程序blank1.c中,函数fun的功能是:计算 的前n项。若x=2.5,n=12时,函数值为:12.182340。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!-*/#include double fun(double x, int n) double f, t; int i; f = 1.0;/*fill*/ t = _;/*fill*/ for (i=_; in; i+) /*fill*/ t *= x/_; f += t; return f;main() double x, y; x=2.5; y = fun(x, 12); printf(nThe result is :n); printf(x=%-12.6f y=%-12.6fn, x, y);【空 1 】错误【学生答案】t=_;【参考答案】t = 1;=【空 2 】错误【学生答案】for(i=_;in;i+)【参考答案】for (i=1; in; i+)=【空 3 】错误【学生答案】t*=x/_;【参考答案】t *= x/i;=/*-程序设计:- 请编写函数fun,函数的功能是:统计一行字符串中单词的个数作为函数值返回。 一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。-*/#include #include #define N 80int fun( char *s) /*Begin*/ /*End*/NONO()/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, num ; char lineN, *p ; rf = fopen(bc.in, r) ; wf = fopen(bc.out, w) ; for(i = 0 ; i 10 ; i+) fgets(line, N, rf) ; p = strchr(line, n) ; if(p != NULL) *p = 0 ; num = fun(line) ; fprintf(wf, %dn, num) ; fclose(rf) ; fclose(wf) ;main() char lineN; int num=0; printf(Enter a string :n); gets(line); num=fun( line ); printf(The number of word is : %dnn,num); NONO();【参考代码】int i,n=0; for(i=0;i=a&si=A&si=Z)&si+1= |si+1=0)n+; return n;=【考生代码】 /*给定程序modi.c中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 请改正函数fun中指定部位的错误,使它能得出正确的结果。*/ #include #include #include void fun(char *s) int i,j; for(i=0,j=0; si!=0; i+) if(si=0 & si=9)/*Error*/ sj=si;/*Error*/ sj=0;main() char item80; system(cls); printf(nEnter a string : );gets(item); printf(nnThe string is : %sn,item); fun(item); printf(nnThe string of changing is : %sn,item );【改错1】错误【学生答案】sj=si;【参考答案】sj+=si;sj=si;j+;sj=si;j+=1;sj=si;j=j+1;sj=si;+j;sj=si;j=1+j;*(s+j+)=*(s+i);*(s+j)=*(s+i);j+;*(s+j)=*(s+i);j+=1;*(s+j)=*(s+i);j=j+1;*(s+j)=*(s+i);+j;*(s+j)=*(s+i);j=1+j;sj=si,j+;sj=si,j+=1;sj=si,j=j+1;sj=si,+j;sj=si,j=1+j;*(s+j)=*(s+i),j+;*(s+j)=*(s+i),j+=1;*(s+j)=*(s+i),j=j+1;*(s+j)=*(s+i),+j;*(s+j)=*(s+i),j=1+j;=【改错2】错误【学生答案】sj=0;【参考答案】sj=0;sj=0;=/*-程序填空:- 甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第0秒。 例如,若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!-*/#include /*fill*/#define OK(i, t, n) (_%t=0) & (i/tn)int fun(int t1, int t2, int t3, int t4, int n) int count, t , maxt=t1; if (maxt t2) maxt = t2; if (maxt t3) maxt = t3; if (maxt t4) maxt = t4; count=1; /* 给count赋初值 */*fill*/ for(t=1; t maxt*(n-1); _) if(OK(t, t1, n) | OK(t, t2, n)| OK(t, t3, n) | OK(t, t4, n) ) count+; /*fill*/ return _;main() int t1=7, t2=5, t3=6, t4=4, n=10, r; r = fun(t1, t2, t3, t4, n); printf(The sound : %dn, r);【空 1 】错误【学生答案】#defineOK(i,t,n)(_%t=0)&(i/tn)【参考答案】#define OK(i, t, n) (i%t=0) & (i/tn)=【空 2 】错误【学生答案】for(t=1;tmaxt*(n-1);_)【参考答案】for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论