计算机等级 > 二级考试 > C语言程序设计 > C语言模拟试题 > 文章内容

全国计算机二级考试C语言试题与答案精选第三套(程序改错题)

2016-6-13编辑:ljnbset

程序改错

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

【程序改错】

--------------------------------------------------------

功能:依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。

例如:输入ab12c3d,则输出123。

注意:不得增行或删行,也不得更改程序的结构!

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

#include "stdio.h"

 

/**********ERROR**********/

void fun(char s)  

{

    int i,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()

{

    char item[80];

    printf("\nEnter a string: ");

    gets(item);

    printf("\n\nThe string is: \"%s\"\n",item);

    fun(item);

    printf("\n\nThe string of changing is: \"%s\"\n",item);

}

 

【改错1】

【参考答案】

void fun(char *s)

void fun(char s[])

void fun(char s[80])

 

 

============================================================

 

【改错2】

【参考答案】

s[j++]=s[i];

 { s[j]=s[i];  j++; }

 

 

============================================================

 

【改错3】

【参考答案】

s[j]='\0';

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

【程序改错】

--------------------------------------------------------

 

功能:读入一个整数m( 5≤m≤20 ),函数rnd获得m个随机整数,

函数sortpb将这m个随机整数从小到大排序。

例如:若输入整数7,则应输出:3 10 17 28 32 36 47。

 

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

 

#include "conio.h"

#include "stdio.h"

 

sortpb ( int n, int a[] )

{

  /**********ERROR**********/

  int i, j, p;

  for ( j = 0; j < n-1 ; j++ )

  {

    p = j;

    for ( i = j + 1; i < n ; i ++ )

    /**********ERROR**********/

    if ( a[p] > a[j] ) p = i;

    /**********ERROR**********/

    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( "M", *z );

    if ( !( i ) ) printf( "\n" );

  }

  printf("\n");

}

 

main()

{

  int aa[20], n;

 

  printf( "\nPlease enter an integer number between 5 and 20: " );

  scanf( "%d", &n );

  getarr( n, aa );

  printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa );

  sortpb( n, aa );

  printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );

 

}

 

【改错1】      

【参考答案】

int i, j, p, t;

 

 

============================================================

 

【改错2】

【参考答案】

if ( a[p] > a[i] ) p = i;

if ( a[i] < a[p] ) p = i;

 

 

============================================================

 

【改错3】      

【参考答案】

if ( p != j )

全国计算机等级考试C语言考试程序设计题(14)

热点推荐

登录注册
触屏版电脑版网站地图