上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
c语言 改错上机题库(23-39)
作者:未知 申领版权
2010年12月12日 共有 1397 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    23、给定程序中fun函数的功能是:给一维数组a输入任意4个整数,并按下列的规律输出。例如输入1,2,3,4,程序运行后输出以下方阵。
    4 1 2 3
    3 4 1 2
    2 3 4 1
    1 2 3 4
    #include <stdio.h>
    #define    M    4
    /**************found**************/
    void fun(int  a) 改为:void fun(int  a[M])
    {  int  i,j,k,m;
    printf("Enter 4 number :  ");
    for(i=0; i<M; i )  scanf("%d",&a[i]);
    printf("\n\nThe result  :\n\n");
    for(i=M;i>0;i--)
    {  k=a[M-1];
    for(j=M-1;j>0;j--)
    /**************found**************/
    aa[j]=a[j-1]; 改为:a[j]=a[j-1];
    a[0]=k;
    for(m=0; m<M; m )  printf("%d  ",a[m]);
    printf("\n");
    }
    }
    main()
    {  int  a[M];
    fun(a); printf("\n\n");   }
    
    24、在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。给定程序中fun函数的功能是:计算数组元素中值为正数的平均值(不包括0)。例如,数组中元素中值依次为:39,-47,21,2,-8,15,0,则程序运行结果为19.250000。
    #include <stdio.h>
    double fun ( int x[])
    {
    /************found************/
    int sum = 0.0; 改为:double sum = 0.0;
    int c=0, i=0;
    while (x[i] != 0)
    {   if (x[i] > 0) { sum  = x[i]; c ; }
    i ;   }
    /************found************/
    sum \= c; 改为:sum /= c;
    return sum;
    }
    
    main( )
    {  int x[1000];  int i=0;
    printf( "\nPlease enter some data (end with 0): " );
    do {  scanf("%d", &x[i]);  } while (x[i ] != 0);
    printf("%f\n", fun ( x ));
    }
    
    25、给定程序中fun函数的功能是:根据整形形参m,计算如下公式的值:
    
    例如,若m中的值为5,则应输出1.463611。
    #include <stdio.h>
    double  fun ( int   m )
    {  double  y = 1.0 ;
    int i;
    /**************found**************/
    for(i = 2 ; i < m ; i ) 改为:for(i = 2 ; i <= m ; i )
    /**************found**************/
    y  = 1 / (i * i) ; 改为:y  = 1.0 / (i * i) ;
    return( y ) ;
    }
    
    main( )
    {  int n = 5 ;
    printf( "\nThe result is %lf\n", fun ( n ) ) ;  }
    
    26、给定程序中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。例如,若输入“I am a student to take the examination.”,则应输出“I aM A studenT tO takE thE examinatioN.”。
    #include <ctype.h>
    #include <stdio.h>
    void fun( char *p )
    {  int k = 0;
    for( ; *p; p  )
    if( k )
    {
    /**********found***********/
    if( p == ' ' ) 改为:if(* p == ' ' )
    {  k  = 0;
    /**********found***********/
    * (p-1) = toupper( *( p - 1 ) ) 改为:* (p-1) = toupper( *( p - 1 ) );
    }
    }
    else  k = 1;
    }
    
    main( )
    { char chrstr[64];
    int d ;
    printf( "\nPlease enter an English sentence within 63 letters: ");
    gets(chrstr);    d=strlen(chrstr) ;
    chrstr[d] = ' ' ;    chrstr[d 1] = 0 ;
    printf("\n\nBefore changing:\n  %s", chrstr);
    fun(chrstr);
    printf("\nAfter changing:\n  %s", chrstr);
    }
    
    27、给定程序中fun函数的功能是:将n个无序整数从小到大排序。
    #include <stdio.h>
    #include <stdlib.h>
    fun ( int  n, int  *a )
    {  int  i, j, p, t;
    for ( j = 0; j<n-1 ; j  )
    {  p = j;
    /************found************/
    for ( i=j 1; i<n-1 ; i  ) 改为:for ( i=j 1; i<n ; i  )
    if ( a[p]>a[i] )
    /************found************/
    t=i; 改为:p=i;
    if ( p!=j ) { t = a[j]; a[j] = a[p]; a[p] = t; }
    }
    }
    
    putarr( int  n,  int  *z )
    { int  i;
    for ( i = 1; i <=  n; i , z  )
    {  printf( "%4d", *z );
    if ( !( i%10 ) )  printf( "\n" ); }
    printf("\n");
    }
    main( )
    {  int  aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
    printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa );
    fun( n, aa );
    printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );  }
    
    28、给定程序中fun函数的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其它字符不变。
    #include <stdio.h>
    #include <ctype.h>
    void  fun (char  *s)
    {
    /**********found***********/
    while(*s!='@') 改为:while(*s!='\0')
    {  if(*s>='A' & *s<='Z' || *s>='a' && *s<='z')
    {  if(*s=='Z')     *s='A';
    else if(*s=='z')  *s='a';
    else           *s  = 1;
    }
    /**********found***********/
    (*s) ; 改为:s ;
    }
    }
    main( )
    {  char  s[80];
    printf("\n  Enter a string with length < 80.  :\n\n  "); gets(s);
    printf("\n  The  string :  \n\n  ");  puts(s);
    fun ( s );
    printf ("\n\n  The  Cords :\n\n  ");  puts(s);
    }
    
    29、给定程序中fun函数的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。(注意:字符串的长度最长允许为79)。
    #include <stdio.h>
    #include <string.h>
    /**********found***********/
    void  fun (  char  s[], int  n ) 改为:void  fun ( char *s, int  n )
    {  char  a[80] , *p;
    int  i;
    /**********found***********/
    s=p; 改为:p=s;
    for(i=0; i<n; i )  a[i]='*';
    do
    {  a[i]=*p;
    i ; }
    /**********found***********/
    while(*p); 改为:while(*p );
    a[i]=0;
    strcpy(s,a);
    }
    main( )
    {  int  n;        char  s[80];
    printf("\nEnter a string  :  "); gets(s);
    printf("\nThe string \"%s\"\n",s);
    printf("\nEnter n ( number of * )  :  ");  scanf("%d",&n);
    fun(s,n);
    printf("\nThe string after inster : \"%s\" \n" ,s);
    }
    
    30、给定程序中fun函数的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出结果为a=65  b=60。
    #include <stdio.h>
    /**********found**********/
    void  fun ( int  a, b ) 改为:void  fun ( int  * a, int  * b )
    { int   t;
    /**********found**********/
    t = b;  b = a ;   a = t; 改为:t = *b;  *b = *a ;   *a = t;
    }
    
    main ( )
    {  int    a, b;
    printf ( "Enter  a , b :  "); scanf ( "%d%d", &a, &b );
    fun ( &a , &b ) ;
    printf (" a = %d   b = %d\n ", a, b );
    }
    
    31、给定程序中fun函数的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应该为“a4b3c2d1efg”;而当a所指字符串中的内容为“1234”,b所指字符串中的内容为时“abcdefg”,c所指数组中的内容应该为“1g2f3e4dcba”。
    #include <stdio.h>
    #include <string.h>
    void fun( char  *a, char  *b, char  *c )
    { int   i , j;     char   ch;
    i = 0;    j = strlen(b)-1;
    /************found************/
    while ( i > j ) 改为:while ( i < j )
    {   ch = b[i]; b[i] = b[j]; b[j] = ch;
    i ;    j--;  }
    while ( *a || *b ) {
    if ( *a ) { *c = *a;  c ; a ; }
    if ( *b )   { *c = *b;  c ; b ; }
    }
    /************found************/
    c = 0; 改为:*c = ‘\0'
    }
    
    main( )
    {  char   s1[100],s2[100],t[200];
    printf("\nEnter s1 string : ");scanf("%s",s1);
    printf("\nEnter s2 string : ");scanf("%s",s2);
    fun( s1, s2, t );
    printf("\nThe result is : %s\n", t );
    }
    
    32、给定程序中fun函数的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如:若输入edcba,则应输出abcde。
    #include <stdio.h>
    void fun( char t[] )
    {  char c;
    int  i, j;
    /**********found***********/
    for( i = strlen( t ); i; i-- ) 改为:for( i = strlen( t ); i>0; i-- )
    for( j = 0; j < i; j  )
    /**********found***********/
    if( t[j] < t[ j   1 ] ) 改为:if( t[j] > t[ j   1 ] )
    {  c = t[j]; t[j] = t[ j   1 ]; t[j   1 ] = c;  }
    }
    
    main( )
    {  char s[81];
    printf( "\nPlease enter a character string: " );
    gets( s );
    printf( "\n\nBefore sorting:\n  \"%s\"", s );
    fun( s );
    printf( "\nAfter sorting decendingly:\n  \"%s\"", s );
    }
    
    33、给定程序中fun函数的功能是:将一个八进制数字字符组成的字符串转换为其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。例如,若输入77777,则输出将是32767。
    #include <stdio.h>
    int  fun( char *p )
    {   int   n;
    /**********found**********/
    n= *P-'o'; 改为:n= *p-'0';
    p ;
    while( *p!=0 ) {
    /**********found**********/
    n=n*7 *P-'o'; 改为:n=n*8 *p-'0';
    p ;  }
    return  n;
    }
    main()
    {   char   s[6];     int  i;   int   n;
    printf("Enter a string (Ocatal digits):  "); gets(s);
    if(strlen(s)>5){ printf("Error: String too longer !\n\n");exit(0); }
    for(i=0; s[i]; i )
    if(s[i]<'0'||s[i]>'7')
    {  printf("Error: %c not is ocatal digits!\n\n",s[i]);exit(0); }
    printf("The original string:  "); puts(s);
    n=fun(s);
    printf("\n%s is convered to integer number: %d\n\n",s,n);
    }
    
    34、给定程序中fun函数的功能是:求出以下分数序列的前n项之和。
    
    和的值通过函数值返回main函数。
    #include <stdio.h>
    
    /**************found**************/
    fun (int n ) 改为:double fun (int n )
    {   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;
    }
    return(s) ;
    }
    main( )
    {   int   n = 5 ;
    printf( "\nThe value of  function is: %lf\n",  fun (  n ) ) ;  }
    
    35、给定程序中fun函数的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3.
    #include  <stdio.h>
    #include  <string.h>
    int fun (char  *s,  char *t)
    {  int   n;  char  *p , *r;
    n = 0;
    while ( *s )
    {   p = s;   r = t;
    while ( *r )
    /************found************/
    if ( r == p )  { 改为:if ( *r == *p )  {
    /************found************/
    r ;  p 改为:r ;  p ;
    }
    else  break;
    /************found************/
    if ( r == '\0' ) 改为:if ( *r == '\0' )
    n ;
    s ;
    }
    return  n;
    }
    
    main()
    {  char   s[100],  t[100];     int   m;
    printf("\nPlease enter string S:"); scanf("%s", s);
    printf("\nPlease enter substring t:"); scanf("%s", t);
    m = fun( s,  t);
    printf("\nThe result is:  m = %d\n", m);  }
    
    36、给定程序中fun函数的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。例如,当s所指的字符串为“ABCDE”时,则t所指的字符串应为“EDCBAABCDE”
    #include <stdio.h>
    #include <string.h>
    void fun (char  *s, char  *t)
    {
    /************found************/
    int   i; 改为:int   i, s1;
    sl = strlen(s);
    for (i=0; i<sl; i )
    /************found************/
    t[i] = s[sl-i]; 改为:t[i] = s[sl-i-1];
    for (i=0; i<sl; i )
    t[sl i] = s[i];
    t[2*sl] = '\0';
    }
    main( )
    {  char s[100], t[100];
    printf("\nPlease enter string s:"); scanf("%s", s);
    fun(s, t);
    printf("The result is: %s\n", t);  }
    
    37、给定程序中fun函数的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
    #include <stdio.h>
    void  fun(char  *s)
    {  int  i,j;
    for(i=0,j=0; s[i]!='\0'; i )
    if(s[i]>='0' && s[i]<='9')
    /**********found**********/
    s[j]=s[i]; 改为:s[j ]=s[i];
    /**********found**********/
    s[j]="\0"; 改为: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 );  }
    
    38、给定程序中fun函数的功能是:统计字符串中各元音字母(即A,E,I,O,U)的个数。注意,字母不分大小写。例如输入:THIs is a boot,则输出应该是:1、0、2、2、0。
    #include <stdio.h>
    /**********found**********/
    fun ( char   *s,  int   num[5] )  改为:void fun(char *s, int num[5] )
    {  int  k, i=5;
    for ( k = 0; k<i; k  )
    /**********found**********/
    num[i]=0; 改为:num[k]=0;
    for (; *s; s )
    {  i = -1;
    /**********found**********/
    switch ( s ) 改为:switch ( *s )
    {  case 'a': case 'A': {i=0; break;}
    case 'e': case 'E': {i=1; break;}
    case 'i': case 'I': {i=2; break;}
    case 'o': case 'O': {i=3; break;}
    case 'u': case 'U': {i=4; break;} }
    if (i >= 0) num[i] ; }
    }
    main( )
    {  char  s1[81];    int  num1[5], i;
    printf( "\nPlease enter a string: " );  gets( s1 );
    fun ( s1, num1 );
    for ( i=0; i < 5; i   ) printf ("%d ",num1[i]); printf ("\n");  }
    
    39、给定程序中fun函数的功能是:计算正整数num的各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。
    #include <stdio.h>
    long  fun (long num)
    {
    /************found************/
    long k; 改为:long k=1;
    do
    {  k*=num%10 ;
    /************found************/
    num\=10 ; 改为:num/=10 ;
    } while(num) ;
    return  (k) ;
    }
    main( )
    {  long n ;
    printf("\Please enter a number:") ;  scanf("%ld",&n) ;
    printf("\n%ld\n",fun(n)) ;  }
    

 

相关新闻

C语言复习习题-程序改错
C语言复习习题--循环结构
C语言复习习题-选择结构
2006年广西区计算机等级考试二级C语言笔试试题及答案
C语言复习习题--结构体与共用体
C语言复习习题--编译预处理
c语言 上机编程题库(16)
c语言 上机编程题库(15)
c语言 上机编程题库(14)
c语言 上机编程题库(13)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》