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

    11、给定程序MODI1.CJ是建立一个带头结点的单向链表,并用随机函数为各结点赋值。给定程序中fun函数的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。
    #include <stdio.h>
    #include <stdlib.h>
    typedef  struct  aa
    {  int  data;  struct  aa  *next; }NODE;
    int  fun(NODE  *h)
    { int   sum = 0 ;
    NODE  *p;
    /***********found**********/
    p=h; 改为:p=h->next;
    /***********found**********/
    while(p->next) 改为:while(p)
    {  if(p->data%2==0)  sum  =p->data;
    /***********found**********/
    p=h->next; 改为:p=p->next;
    }
    return  sum;
    }
    NODE  *creatlink(int  n)
    {  NODE  *h, *p, *s, *q;
    int  i, x;
    h=p=(NODE *)malloc(sizeof(NODE));
    for(i=1; i<=n; i )
    {  s=(NODE *)malloc(sizeof(NODE));
    s->data=rand()%16;   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 ,"\n\nTHE  LIST :\n\n  HEAD " );
    while(p)
    {  fprintf(pf ,"->%d ",p->data ); p=p->next; }
    fprintf (pf,"\n");
    }
    outresult(int  s, FILE *pf)
    {  fprintf(pf,"\nThe sum of even numbers  :  %d\n",s);}
    main( )
    {  NODE  *head;    int  even;
    head=creatlink(12); 
    head->data=9000;
    outlink(head , stdout);
    even=fun(head);
    printf("\nThe  result  :\n"); outresult(even, stdout); 
    }
    
    12、给定程序中fun函数的功能是:求三个数的最小公倍数。例如,给主函数中的变量x1,x2,x3分别输入15 11 2,则输出结果应当是:330。
    #include <stdio.h>
    /************found************/
    fun(int  x, y, z ) 改为:fun(int  x, int  y, int  z )
    {  int  j,t ,n ,m;
    /************found************/
    j = 1 ; 改为:j = x;
    t=j%x;  m=j%y ;   n=j%z;
    /************found************/
    while(t!=0&&m!=0&&n!=0)               改为:while(t!=0||m!=0||n!=0)
    {  j = j 1; t=j%x;  m=j%y; n=j%z;  }
    /************found************/
    return i; 改为:return j;
    }
    main( )
    {  int   x1,x2,x3,j ;
    printf("Input x1  x2  x3:  ");  scanf("%d%d%d",&x1,&x2,&x3);
    printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);
    j=fun(x1,x2,x3);
    printf("The minimal common multiple is : %d\n",j);  }
    
    13、给定程序中fun函数的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s听字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。
    #include <stdio.h>
    #include <string.h>
    void fun (char  *s, char  *t)
    {   int i, sl;
    sl = strlen(s);
    /************found************/
    for( i=0; i<=s1; i  ) 改为:for( i=0; i< sl; i  )
    t[i] = s[i];
    for (i=0; i<sl; i )
    t[sl i] = s[sl-i-1];
    /************found************/
    t[sl] = '\0'; 改为: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);  
    }
    
    14、给定程序中fun函数的功能是:从s所指字符串中删除所有小写字母c。
    #include <stdio.h>
    void  fun( char  *s )
    {   int  i,j;
    for(i=j=0; s[i]!='\0'; i )
    if(s[i]!='c')
    /************found************/
    s[j]=s[i]; 改为:s[j ]=s[i];
    /************found************/
    s[i]='\0'; 改为:s[j]='\0';
    }
    main()
    {  char  s[80];
    printf("Enter a string:       "); gets(s);
    printf("The original string:  "); puts(s);
    fun(s);
    printf("The string after deleted :  "); puts(s);printf("\n\n");  
    }
    
    15、给定程序中fun函数的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。
    #include <stdio.h>
    /************found************/
    fun( int  *b )   改为:int fun( int  *b )            
    {  int   k,a1,a2,i=0;
    /************found************/
    for(k=10; k<=55; k ) { 改为:for(k=10; k<55; k ) {
    /************found************/
    a2=k/1O; 改为:a2=k/10;
    a1=k-a2*10;
    if((k%3==0 && a2==5)||(k%3==0 && a1==5))
    {  b[i]=k; i ; }
    }
    /************found************/
    return  k; 改为:return  i;
    }
    main( )
    {  int  a[100],k,m;
    m=fun( a );
    printf("The result is :\n");
    for(k=0; k<m; k ) printf("%4d",a[k]);  printf("\n");  
    }
    
    16、给定程序中fun函数的功能是:求S的值。
    
    例如,当k为10时,函数值应为:1.533852。
    #include <stdio.h> 
    #include <math.h>
    
    /************found************/
    void fun( int  k ) 改为:float fun( int  k )
    {  int n; float 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;
    }
    
    main ( )
    {  printf("%f\n", fun (10));  }
    
    17、给定程序中fun函数的功能是:将十进制正整数m转换成k(2<=k<=9)进制数,并按高位到低位顺序输出。
    例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
    #include <conio.h>
    #include <stdio.h>
    /**********found**********/
    fun( int m, int k ) 改为:void fun( int m, int k )
    {  int aa[20], i;
    for( i = 0; m; i  )
    {
    /**********found**********/
    aa[i] =  m/k; 改为:aa[i] =  m% k;
    m /= k;
    }
    for( ; i; i-- )
    /**********found**********/
    printf( "%d", aa[ i ] ); 改为:printf( "%d", aa[ i-1] );
    }
    
    main( )
    {  int b, n;
    printf( "\nPlease enter a number and a base:\n" );  scanf(  "%d %d", &n, &b );
    fun( n, b );   printf("\n");  }
    
    18、给定程序中fun函数的功能是:根据整型形参n,计算如下公式的值。
    
    例如:若n=10,则应输出0.617977.
    #include <stdio.h>
    /************found************/
    int  fun ( int n ) 改为:float  fun ( int n )
    {  float  A=1; int i;
    /************found************/
    for (i=2; i<n; i ) 改为:for (i=2; i<=n; i )
    A = 1.0/(1 A);
    return A ;  }
    
    main( )
    {  int  n ;
    printf("\nPlease enter n: ") ; 
    scanf("%d", &n ) ;   printf("A%d=%f\n", n, fun(n) ) ;  }
    
    19、给定程序中fun函数的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
    #include <stdio.h>
    #define  M   5
    /************found************/
    int  fun(int  n, int  xx[][]) 改为:int  fun(int n, int xx[M][M])
    {  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 ", xx[i][j] ); 改为:printf( "%4d ", xx[i][j] );
    printf("\n");  }
    for( i = 0 ; i < n ; i  )
    sum  = xx[i][i] xx[i][ n-i-1 ];
    return( sum );
    }
    main( )
    {  int  aa[M][M]={{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 ));  }
    
    20、给定程序中fun函数的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中从此地址开始的字符串;若未打到,则函数值为NULL。
    例如:当字符串中的内容为:“abcdabfabcdx”,t中的内容为“ab”时,输出结果为:abcdx。当字符串中的内容为:“abcdabfabcdx”,t中的内容为“abd”时,则程序输出未打到住处:not be found!
    #include  <stdio.h>
    #include  <string.h>
    
    char * fun (char  *s,  char *t )
    {  char   *p , *r, *a;
    /************found************/
    a = Null; 改为:a = NULL;
    while ( *s )
    {   p = s;   r = t;
    while ( *r )
    /************found************/
    if ( r == p ) 改为:if ( r* ==* p )
    { r ;  p ; }
    else  break;
    if ( *r == '\0' ) a = s;
    s ;  }
    return  a ;
    }
    
    main()
    {  char   s[100], t[100], *p;
    printf("\nPlease enter string S :"); scanf("%s", s );
    printf("\nPlease enter substring t :"); scanf("%s", t );
    p = fun( s, t );
    if ( p )  printf("\nThe result is :  %s\n", p);
    else    printf("\nNot found !\n" );
    }
    
    21、给定程序中fun函数的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
    #include <stdio.h>
    int  fun(unsigned  n, int  *zero)
    {  int  count=0,max=0,t;
    do
    {  t=n%10;
    /**************found**************/
    if(t=0) 改为:if(t==0)
    count ;
    if(max<t)  max=t;
    n=n/10;
    }while(n);
    /**************found**************/
    zero=count; 改为:* zero=count;
    return  max;
    }
    main( )
    {  unsigned  n;    int  zero,max;
    printf("\nInput n(unsigned):  ");  scanf("%d",&n);
    max = fun( n,&zero );
    printf("\nThe result:  max=%d    zero=%d\n",max,zero);
    }
    
    22、给定程序中fun函数的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。
    #include <stdio.h>
    long  fun(int  x, int  y, long  *p )
    {  int  i;
    long  t=1;
    /**************found**************/
    for(i=1; i<y; i ) 改为:for(i=1; i<=y; i )
    t=t*x;
    *p=t;
    /**************found**************/
    t=t/1000; 改为:t=t%1000;
    return  t;
    }
    main( )
    {  long   t,r;    int  x,y;
    printf("\nInput x and y: ");  scanf("%ld%ld",&x,&y);
    t=fun(x,y,&r);
    printf("\n\nx=%d, y=%d, r=%ld, last=%ld\n\n",x, y,r,t );
    
    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

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

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

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