发布时间 : 星期一 文章C语言程序改错题更新完毕开始阅读
实用文档
第1题 【程序改错】
功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。
例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。
------------------------------------------------------*/
#include
void fun (char *s, char *t) {
/**********FOUND**********/ int i;
sl = strlen(s); for (i=0; i /**********FOUND**********/ t[i] = s[sl-i]; for (i=0; i /**********FOUND**********/ t[2*sl] = \} main() { char s[100], t[100]; printf(\ fun(s, t); printf(\} 答案: 1). int i,sl; 2). t[i] = s[sl-i-1]; 3). t[2*sl] = '\\0'; 或 t[2*sl] = 0; 第2题 【程序改错】 功能:求出以下分数序列的前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 实用文档 例如:若n = 5,则应输出:8.391667。 ------------------------------------------------------*/ #include /**********FOUND**********/ fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /**********FOUND**********/ s = (double)a / b; c = a; a = a + b; b = c; } /**********FOUND**********/ return c; } main( ) { int n = 5; printf( \} 答案: 1). double fun(int n) 2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或 s=s+a/(double)b; 3). return s; 第3题 【程序改错】 功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获 得m个随机整数,函数sortpb将这m个随机整数从小到大排序。 例如:若输入整数7,则应输出:3 10 17 28 32 36 47。 ------------------------------------------------------*/ #include \#include 实用文档 sortpb ( int n, int *a ) { /**********FOUND**********/ int i, j, p, t for ( j = 0; j < n-1 ; j++ ) { p = j; for ( i = j + 1; i < n ; i ++ ) /**********FOUND**********/ if ( a[p] > a[j] ) p = i; /**********FOUND**********/ if ( p == j ) { t = a[j]; a[j] = a[p]; a[p] = t; } } } double rnd ( ) { static t = 29, c = 217, m = 1024, r = 0; r =( r*t + c )%m; return( ( double )r/m ); } getarr( int n, int *x ) { int i; for( i = 1; i <= n; i++, x++ ) *x = ( int )( 50*rnd() ); } putarr( int n, int *z ) { int i; for( i = 1; i <= n; i++, z++ ) { printf( \ if ( !( i ) ) printf( \ } printf(\} 实用文档 main() { int aa[20], n; printf( \ scanf( \ getarr( n, aa ); printf( \ sortpb( n, aa ); printf( \} 答案: 1). int i, j, p, t; 2). if ( a[p] > a[i] ) p = i; 3). if ( p != j ) 第4题 【程序改错】 -------------------------------------------------------- 功能:以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的 最大的n。 ------------------------------------------------------*/ #include int n,s; /**********FOUND**********/ s==n=0; /**********FOUND**********/ while(s>1000) { ++n; s+=n*n; } /**********FOUND**********/ printf(\} 答案: 1). s=n=0; 2). while(s<=1000) 3). printf(\