设为首页 加入收藏

TOP

计算机等级考试二级C语言程序设计专项训练题——程序修改题(三)(一)
2023-07-23 13:32:22 】 浏览:257
Tags:计算机 程序设 计专项 程序修

21、下列给定程序中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。例如:把三个串"abc"、"CD"、"EF"连接起来,结果是"abcCDEF"。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>
#include <string.h>
void  fun ( char  str[][10], int  m, char  *pt )
{
/************found************/
    Int  k, q, i ;
    for ( k = 0; k < m; k++ )
    {  q = strlen ( str [k] );
       for (i=0; i<q; i++)
/************found************/
       pt[i] = str[k,i] ;
       pt += q ;
       pt[0] = 0 ;
    }
}
int main( )
{   
     int  m, h ;
     char s[10][10], p[120] ;
     printf( "\nPlease enter  m:" ) ;
     scanf("%d", &m) ;  gets(s[0]) ;
     printf( "\nPlease enter  %d string:\n", m ) ;
     for ( h = 0; h < m; h++ ) gets( s[h]) ;
     fun(s, m, p) ;
     printf( "\nThe result  is :  %s\n", p) ;
     return 0;
}

22、下列给定程序中,函数fun的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。
请改正函数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];
/*************found**************/
     s[j]=”\0”;
}
int void main()
{
    char item[80];
    printf("\nEnter a string: ");gets(item);
    printf("\nThe string is:%s\n",item);
    fun(item);
    printf("\nThe string of changing is :%s\n",item);
    return 0;
}

23、由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
#define  N  10
/************found************/
void fun(int  a[], int  m )
{  int  low=0,high=N-1,mid;
   while(low<=high)
   {  mid=(low+high)/2;
      if(m<a[mid])
        high=mid-1;
/************found************/
      else If(m > a[mid])
        low=mid+1;
      else  return(mid);
   }
   return(-1);
}
int main()
{   
int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m; printf("a数组中的数据如下:"); for(i=0;i<N;i++) printf("%d ", a[i]); printf("Enter m: "); scanf("%d",&m); k=fun(a,m); if(k>=0) printf("m=%d,index=%d\n",m,k); else printf("Not be found!\n"); return 0; }

24、下列给定程序中,函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构。

#include  <stdlib.h>
#include  <string.h>
#include  <stdio.h>
#include  <malloc.h>
#define N 10
typedef struct ss
   { char num[10];
     int s;
   } STU;
STU *fun(STU a[], int m)
{ STU b[N],*t;
  int i, j,k;
/*************found**************/
  *t=calloc(m,sizeof(STU));
  for(i=0;i<N;i++) b[i]=a[i];
  for(k=0;k<m;k++)
     { for (i=j=0;i<N;i++)
          if(b[i].s>b[j].s) j=i;
/*************found**************/
      t[k].num=b[j].num;
      t[k].s=b[j].s;
      b[j].s=0;
     }
   return t;
}
outresult(STU a[],FILE *pf)
{ int i;
  for(i=0;i<N;i++)
     fprintf(pf, "No=%s Mark=%d\n ",a[i].num, a[i].s);
  fprintf(pf, "\n\n ");
}
int main()
{ STU a[N]={{ "A01 ",81},{ "A02 ",89},{ "A03 ",66},{ "A04 ",87},{ "A05 ",77},
            { "A06 ",90},{ "A07 ",79},{ "A08
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机等级考试二级C语言程序设计.. 下一篇计算机等级考试二级C语言程序设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目