




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2011年9月上机改错题1、#include #include typedef struct aa int data; struct aa *next; NODE;int fun ( NODE *h ) int max=-1; NODE *p;/*found*/ p=h ; p=h-next; /*h指向的是头节点,题目要求不要头节点,那么我们从第2个结点开始*/ while(p) if(p-datamax ) max=p-data;/*found*/ p=h-next ; p=p-next; /*链表中的指针后移*/ return max;outresult(int s, FILE *pf) fprintf(pf,nThe max in link : %dn,s);NODE *creatlink(int n, int m) NODE *h, *p, *s; int i; h=p=(NODE *)malloc(sizeof(NODE);h-data=9999; for(i=1; idata=rand()%m; s-next=p-next; p-next=s; p=p-next; p-next=NULL; return h;outlink(NODE *h, FILE *pf) NODE *p; p=h-next; fprintf(pf,nTHE LIST :nn HEAD ); while(p) fprintf(pf,-%d ,p-data); p=p-next; fprintf(pf,n); main() NODE *head; int m; head=creatlink(12, 100); outlink(head , stdout); m=fun(head); printf(nTHE RESULT :n); outresult(m, stdout);2、#include double fun ( int m ) double y = 1.0 ; int i ;/*found*/ for(i = 2 ; i m ; i+) for(i = 2 ; i =m ; i+) /*根据题意循环条件是i=m*/*found*/ y -= 1 /(i * i) ; y -= 1.0 /(i * i) ; /*i 是整型 等号右边都是整型,得到结果也是整型,我们想要的是实型所以,要求 1改成 1.0*/ return( y ) ;main( ) int n = 5 ; printf( nThe result is %lfn, fun ( n ) ) ;3#include #include char* fun( char tt ) int i; for( i = 0; tti; i+ )/*found*/ if( a = tti )|( tti = z ) ) if( a = tti )&( tti = z ) ) /*很明显,这个地方是并且,用 &*/*found*/ tti += 32; tti -= 32; /*小写变大写是减去32*/ return( tt );main( ) char tt81; printf( nPlease enter a string: ); gets( tt ); printf( nThe result string is:n%s, fun( tt ) );4#include #include float fun ( float num ) int s ; float n, t, pi ; t = 1 ; pi = 0 ; n = 1 ; s = 1 ;/*found*/ while(t = num) while(fabs(t) = num) /*这里的t可能会是负数,所以要取绝对值 用函数 fabs() 来实现*/ pi = pi + t ; n = n + 2 ; s = -s ;/*found*/ t = s % n ; t = s / n ; /*这里对应题目是除法*/ pi = pi * 4 ; return pi ;main( ) float n1, n2 ; printf(Enter a float number: ) ; scanf(%f, &n1) ; n2 = fun(n1) ; printf(%6.4fn, n2) ;5#include int fun(int *x,int y) int t ;/*found*/ t = x ; x = y ; t=*x; *x=y; /*这里的x是指针变量,可以通过 间址运算符 * 来运算 , *x 就是 变量 a */ /*found*/ return(y) ; return t; /*返回的值给变量 b ,应是原来 a 的内容 ,也就是 *x 的内容*/main() int a = 3, b = 8 ; printf(%d %dn, a, b) ; b = fun(&a, b) ; printf(%d %dn, a, b) ;6#include void fun (long s, long *t) int d; long sl=1;/*found*/ t = 0; *t=0; /* t 是指针变量 */ while ( s 0) d = s%10;/*found*/ if (d%2 = 0) if (d%2 != 0) /*这里应该是留下奇数*/ *t = d * sl + *t;sl *= 10; s /= 10; main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);7#include int fun(int a,int b) int r,t; if(ab) /*found*/ t=a; b=a; a=t; r=a%b; while(r!=0) a=b; b=r; r=a%b; /*found*/ return(a); return (b); /*这里b 存放的最大公约数*/main() int num1, num2,a; printf(Input num1 num2: ); scanf(%d%d,&num1,&num2); printf(num1= %d num2= %dnn,num1,num2); a=fun(num1,num2); printf(The maximun common divisor is %dnn,a);8#include /*found*/fun (int n ) double fun (int n ) /*根据函数被使用的类型,或者返回值得到 函数类型是 double */ int a = 2, b = 1, c, k ; double s=0.0 ; for ( k = 1; k = n; k+ ) s = s + 1.0 * a / b ;/*found*/ c = a; a += b; b += c; c = a; a += b; b = c; /*根据题目要求来,看出来b =c*/ return(s) ;main( ) int n = 5 ; printf( nThe value of function is: %lfn, fun ( n ) ) ;9#include #define N 10int findmid(int a, int b, int c) int t; t = (ab)?(bc?b:(ac?c:a):(ac)?a:(bc)?c:b);/*found*/ return b; retrun t; /*算了好久,算出来的t ,当然是返回t 啦*/void fun(int x) int i,a,b,c,tN;/*found*/ for(i=0;iN;i+) ti=xi for(i=0;iN;i+) ti=xi; /*C语言语句最后要分号结束*/ for(i=0;iN-2;i+) a=ti;b=ti+1;c=ti+2;/*found*/ ti+1=findmid(a,b,c); xi+1=findmid(a,b,c); /*最终结果要放在x 数组中*/ main() int i, xN=6,5,7,23,18,5,8,21,45,38; for(i=0; iN; i+) printf(%d ,xi); printf(n); fun(x); for(i=0; iN; i+) printf(%d ,xi); printf(n);10#include /*found*/void fun (long s, long t) void fun (long s, long * t) /*这里的t是指针变量,应该定义的时候有 * */ long sl=10; s /= 10; *t = s % 10;/*found*/ while ( s 0) /*很明显,这里的条件不对嘛*/ s = s/100; *t = s%10*sl + *t; sl = sl * 10; main() long s, t; printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);11#include int fun ( int m ) int k = 2; while ( k = m & (m%k)/*found*/ k+ k+; /*语句少了 分号*/*found*/ if (m = k ) if (m = k ) /*这里是比较,不是赋值,要用= 是两个等号*/ return 1; else return 0;main( ) int n; printf( nPlease enter n: ); scanf( %d, &n ); if ( fun ( n ) ) printf( YESn ); else printf( NO!n );12 #include int fun(int m) int i, k ; for (i = m + 1 ; ; i+) for (k = 2 ; k i ; k+)/*found*/ if (i % k != 0) if (i % k = 0) /*这里是能被整除的时候 break*/ break ;/*found*/ if (k = i) /*内层的for循环的条件不是 break 结束 也就是从来没有被整除过,最后得到的是素数*/ return(i); void main() int n ; n = fun(20) ; printf(n=%dn, n) ;13#include int fun(double x, int n)/*found*/ int j, c=0, double xa=0.0; int j, c=0; double xa=0.0; /*定义完一种类型之后,应该以分号结束 */ for (j=0; jn; j+ ) xa += xj/n; printf(ave =%fn,xa); for (j=0; j xa) if (xj = xa) /*大于等于 的符号怎么写,一定看清楚了哦*/ c+; return c;main ( ) double x100 = 193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763; printf(%dn, fun (x, 8);14#include void fun(char *s) int i,j; for(i=0,j=0; si!=0; i+) if(si=0 & si=9)/*found*/ sj=si; sj+=si; /*sj 被赋值了之后,j 要+运算,以便sj是下一个元素*/*found*/ sj=0; sj=0; /*这里是字符0 不是字符串0*/main() char item80; printf(nEnter a string : );gets(item); printf(nnThe string is : %sn,item); fun(item); printf(nnThe string of changing is : %sn,item );15#include #include #define M 10int aMM = 0 ;/*found*/void fun(int *a, int m) void fun(int aMM, int m) /*这里定义变量能够接受具体二维数组 aMM ,如果不知道怎么定义,直接照抄数组原来的定义都可以*/ int j, k ; for (j = 0 ; j m ; j+ ) for (k = 0 ; k m ; k+ )/*found*/ ajk = k * j ; ajk = (k +1)* (j+1) ; /*这里是根据题目要求,大家可以算出来第一个数字应该怎么得到*/main ( ) int i, j, n ; printf ( Enter n : ) ; scanf (%d, &n ) ; fun ( a, n ) ; for ( i = 0 ; i n ; i+) for (j = 0 ; j n ; j+) printf ( %4d, aij ) ; printf ( n ) ; 16 #include long fun(int g)/*found*/ switch(g); switch(g) /*switch() 后面没有分号*/ case 0: return 0;/*found*/ case 1 ;case 2 : return 1 ; case 1 : case 2 : return 1 ; /*case 1 后面应该冒号 case 之后必须有冒号 */ return( fun(g-1)+fun(g-2) );main() long fib; int n; printf(Input n: ); scanf(%d,&n); printf(n = %dn,n); fib=fun(n); printf(fib = %dnn,fib);17#include double fun( double q ) int n; double s,t; n = 2; s = 2.0; while (s=q) t=s;/*found*/ s=s+(n+1)/n; s=s+(n+1.0)/n; /*这里的n 是整形,(n+1)/n 得到的结果也肯定是整形,而我们要得到实型/ n+; printf(n=%dn,n);/*found*/ return s; return t ; /*如果是return s 根据循环条件会多加了一项 所以返回时加最后之前的 t */main ( ) printf(%fn, fun(50);18#include int fun( int k ) int m=0, mc=0 ; while (k = 2) & (mc 10) /*found*/ if (k%13 = 0) | (k%17 = 0) if (k%13 = 0) | (k%17 = =0) /*这里是比较不是赋值,所以用两个连续的等号 =*/ m = m+ k; mc+; k-; return m;/*found*/_ /*函数体结束的时候用 结束*/main ( ) printf(%dn, fun (500);19#include #define N 10/*found*/void fun(int a, int m ) int fun(int a, int m ) /* 根据主函数调用fun函数的,可以看到要求fun 函数返回的是个int 型*/ int low=0,high=N-1,mid; while(low=high) mid=(low+high)/2; if(m amid) else if(m amid) /*这里的if 是关键字 ,关键字必须全部小写*/ low=mid+1; else return(mid); return(-1);main() int i,aN=-3,4,7,9,13,45,67,89,100,180 ,k,m; printf(a数组中的数据如下:); for(i=0;i=0) printf(m=%d,index=%dn,m,k); else printf(Not be found!n);20#include #include #define MAXLINE 20fun ( char *pstr6) int i, j ; char *p ; for (i = 0 ; i 5 ; i+ ) /*found*/ for (j = i + 1, j 6, j+) for (j = i + 1;j 0) p = *(pstr + i) ;/*found*/ *(pstr + i) = pstr + j ; *(pstr + i) = *(pstr + j) /* pstr + j 是地址,要通过* 运算符 取得这个地址对应的内容*/ *(pstr + j) = p ; main( ) int i ; char *pstr6, str6MAXLINE ; for(i = 0; i 6 ; i+) pstri = stri ; printf( nEnter 6 string(1 string at each line): n ) ; for(i = 0 ; i 6 ; i+) scanf(%s, pstri) ; fun(pstr) ; printf(The strings after sorting:n) ; for(i = 0 ; i 6 ; i+) printf(%sn, pstri) ;21#include void fun(char *p, char *b) int i, k=0; while(*p) i=1; while( i=3 & *p ) /*found*/ bk=p; bk=p; /* p是指针变量 ,要取得内容,要使用 * 运算符*/ k+; p+; i+; if(*p) /*found*/ bk+= ; bk+= ; /*空格字符就是单引号里面的一个空格*/ bk=0;main() char a80,b80; printf(Enter a string: ); gets(a); printf(The original string: ); puts(a); fun(a,b); printf(nThe string after insert space: ); puts(b); printf(nn);22 #include #include /*found*/f( double x) double f( double x) /*根据函数被调用地方决定函数的类型 这里是double */ if (x = 0.0 | x = 2.0) return 0.0; else if (x 0.0) return (x -1)/(x-2); else return (x +1)/(x-2);double fun( int n ) int i; double s=0.0, y; for (i= -n; i=n; i+) y=f(1.0*i); s += y;/*found*/ return s return s ; /*return 语句后面必须有分号 (少了分号了,看到没有啊)*/ main ( ) printf(%fn, fun(5) );23#include #include int fun( int high ) int sum = 0, n=0, j, yes;/*found*/ while (high = 2) & (n = 2) & (n 10) /*while 最后少了个 ) 有没有注意到。*/ yes = 1; for (j=2; j=high/2; j+ ) if (high % j =0 )/*found*/ yes=0; break yes=0; break ; /*break 后面少个分号,应该注意到了吧*/ if (yes) sum +=high; n+; high-; return sum ;main ( ) printf(%dn, fun (100);24#include #include /*found*/void fun( int k ) double fun( int k ) /*说到不想说了,函数的类型就是被调用处的类型*/ int n; double s, w, p, q; n = 1; s = 1.0; while ( n = k ) w = 2.0 * n; p = w - 1.0; q = w + 1.0; s = s * w *w/p/q; n+; /*found*/ return s return s ; /*return 语句后面又少了分号*/main ( ) printf(%fn, fun (10);25#include int fun (char *str,char *substr) int i,j,k,num=0;/*found*/ for(i = 0, stri, i+) for(i = 0;stri;i+) /*for 语句中有2个分号,一定记住,格式背下来*/ for(j=i,k=0;substrk=strj;k+,j+)/*found*/ If(substrk+1=0) if(substrk+1=0) /*if 是关键字,关键字必须都是小写字母*/ num+; break; return num;main() char str80,substr80; printf(Input a string:) ; gets(str); printf(Input a substring:) ; gets(substr); printf(%dn,fun(str,substr);26#include #define SIZE 20fun(double *s, double *w) int k,i; double sum; for(k=2,i=0;iSIZE;i+) si=k; k+=2; /*found*/ sun=0.0; sum=0.0; /* sum 不是sun ,看清变量的名字 (纯粹是陷阱啊。 )*/ for(k=0,i=0;iSIZE;i+) sum+=si;/*found*/ if(i+1%5=0) if(i+1)%5=0) /*这里要加个括号,因为(i+1)%5求余才是每5个求平均数操作*/ wk=sum/5; sum=0; k+; return k;main( ) double aSIZE,bSIZE/5; int i, k; k = fun(a,b); printf(The original data:n); for(i=0; iSIZE; i+) if(i%5=0) printf(n); printf(%4.0f, ai); printf(nnThe result :n); for(i=0; ik; i+) printf(%6.2f ,bi); printf(nn);27 #include #define M 5/*found*/int fun(int n, int xx) int fun(int n, int xxM) /*对具体二维数组引用的时候的定义的方法之一,后面中括号中的数字不能省略*/ int i, j, sum=0; printf( nThe %d x %d matrix:n, M, M ); for( i = 0; i M; i+ ) for( j = 0; j M; j+ )/*found*/ printf( %f , xxij ); printf( %d , xxij ); /*看清楚输出格式要对应好,xx数组是int 型的*/ printf(n); for( i = 0 ; i n ; i+ ) sum += xxii+xxi n-i-1 ; return( sum );main( ) int aaMM=1,2,3,4,5,4,3,2,1,0, 6,7,8,9,0,9,8,7,6,5,3,4,5,6,7; printf ( nThe sum of all elements on 2 diagnals is %d.,fun( M, aa );28#include #include /*found*/void fun (char s, char t) void fun (char *s, char *t) /*形参接收一维数组时,可以用指针变量接收*/ int i, d; d = strlen(s); for (i = 0; id; i+) ti = si; for (i = 0; id; i+) td+i = sd-1-i;/*found*/ t2*d-1 = 0; t2*d = 0; /*最后加0的位置要算清楚*/main() char s100, t100; printf(nPlease enter string S:); scanf(%s, s); fun(s, t); printf(nThe result is: %sn, t);29#include #include typedef struct aa int data; struct aa *next; NODE;int fun(NODE *h) int sum = 0 ; NODE *p;/*found*/ p=h; p=h-next ; /*根据题目要求,不包含头结点,也就是说 我们要从第二个结点开始*/ while(p) if(p-data%2=0) sum +=p-data;/*found*/ p=h-next; p=p-next; /*这里的p=p-next是指针后移,相当于数组里的p+,不过这里是非线性的存储结构,所以只能这么用,背下来吧,抽到链表一定考的地方*/ return sum;NODE *creatlink(int n) NODE *h, *p, *s; int i; h=p=(NODE *)malloc(sizeof(NODE); for(i=1; idat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中英语教学与艺术展览文化语境探究论文
- 艺术生体重管理制度
- 茶坊专用杯管理制度
- 驻外维修工管理制度
- 一年级《夜色》课件
- 财务会计-处理会计信息
- 经典案例-鼠标移过放大
- 大学生恋爱问题调查报告
- 高等教学系列 管理学教学 第三章 计划 内有超多案例分析
- 计算机信息处理技术理论题
- 办公区安全隐患检查
- 低压电工作业复审培训
- 严寒和寒冷地区居住建筑节能设计标准JGJ26-2010
- 科技助力植树节:无人机、机器人种树新趋势
- 冲刺高考英语词性转换(易错)背诵版默写版(各版本通用)
- 《Python语言程序设计》课程标准
- 电大国开专科(附答案)《办公室管理》形考在线(形考任务五)试题
- 砖混厂房改钢结构施工方案
- 团体保险投保单
- 2022年失业保险基金绩效评价报告(最终稿)
- 闻诊问诊切诊
评论
0/150
提交评论