C语言程序改错题

发布时间 : 星期一 文章C语言程序改错题更新完毕开始阅读

实用文档

第1题 【程序改错】

功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的 字符按正序连接到t串的后面。

例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为: “EDCBAABCDE”。

------------------------------------------------------*/

#include #include #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 #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 #include \main() {

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(\

联系合同范文客服:xxxxx#qq.com(#替换为@)