首页 > 其他分享 >计算机等级考试二级C语言上机题集(第76~80套)

计算机等级考试二级C语言上机题集(第76~80套)

时间:2022-11-07 07:44:37浏览次数:154  
标签:10 函数 int void 题集 C语言 76 fun include

第76套

1.程序填空题

给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,若x=5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、230、302、311、320、401、410、500。共有15个。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

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

#include  <stdio.h>
int fun(int x)
{ 
    int  n, s1, s2, s3, t;
    n=0;
    t=100;
    /**********found**********/
    while (t<=__1__)
    {
    /**********found**********/
        s1=t%10;  s2=(__2__)%10;  s3=t/100;
    /**********found**********/
        if(s1+s2+s3==__3__)
        {  
            printf("%d ",t);
            n++;
        }
        t++;
    }
    return  n;
}
int main()
{ 
    int x=-1;
    while(x<0)
    { 
        printf("Please input(x>0): ");  
        scanf("%d",&x);  
    }
    printf("\nThe result is: %d\n",fun(x));
    return 0;
}

2.程序修改题

给定程序中,函数fun的功能是:从整数10至55之间,选出能被3整除且有一个位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1存放个位数,a2存放十位数。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
int fun (int *b)
{   
    int k,a1,a2,i=0;
    for (k=10;k<=55;k++)
    {
    /************found************/
        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;
}
int 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");
    return 0;
}

3.程序设计题

假定输入的字符串中只包含字母和*号。编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。

例如,字符串中的内容为:*****A*BC*DEF*G***,删除后,字符串的内容应当为:*****A*BC*DEF*G。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include <stdio.h>
#include <string.h>
void NONO(void);
void  fun( char *a )
{

}
int main()
{
    char  s[81];
    printf("Enter a string:\n");
    gets(s);
    fun( s );
    printf("The string after deleted:\n");
    puts(s);
    NONO();
    return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    FILE *in, *out ;
    int i ;
    char s[81] ;
    in = fopen("in.dat","r") ;
    out = fopen("out.dat","w") ;
    for(i = 0 ; i < 10 ; i++)
    {
       fscanf(in, "%s", s) ;
       fun(s) ;
       fprintf(out, "%s\n", s) ;
    }
    fclose(in) ;
    fclose(out) ;
}
1.(1)999   (2)t/10   (3)x
2. a2=k/10;
    return i;
3. void  fun( char *a )
    {
         int i,j;
         for (i=0,j=0;a[i]!='\0';i++)
              if (a[i]!='*') j=0;
             else  j++;
        a[i-j]='\0';
    }
第76套参考答案

第77套

1.程序填空题

给定程序中,函数fun的功能是:计算

  

直到||<=10-3,并把计算结果作为函数值返回。

例如,若形参e的值为1e-3,函数的返回值为2.985678。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

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

#include  <stdio.h>
double fun(double  e)
{ 
    int  i;    
    double  s, x;
    /**********found**********/
    s=0;  i=__1__;
    x=1.0;
    while(x>e)
    {
    /**********found**********/
        __2__;
    /**********found**********/
        x=(2.0*i-1)/((__3__)*(2.0*i));
        s=s+x;
    }
    return  s;
}
int main()
{ 
    double  e=1e-3;
    printf("\nThe result is: %f\n",fun(e));
}

2.程序修改题

给定程序中,函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

例如,当s所指字符串为“ABCD”时,则t所指字符串中的内容应为“ABCDDCBA”。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
#include <string.h>
/************found************/
void fun (char  s, char  t)
{
   int   i, d;
   d = strlen(s);
   for (i = 0; i<d; i++)  t[i] = s[i];
   for (i = 0; i<d; i++)  t[d+i] = s[d-1-i];
   /************found************/
   t[2*d-1] = '\0';
}
int main()
{
   char   s[100], t[100];
   printf("\nPlease enter string S:"); 
   scanf("%s", s);
   fun(s, t);
   printf("\nThe result is: %s\n", t);
   return 0;
}

3.程序设计题

编写函数fun,它的功能是:将s所指字符串中除了下标为奇数,同时ASCII码值也为奇数的字符外,其余的字符全部删除;串中剩余字符所形成的一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:ABCDEFG12345,则t所指数组中的内容应为:135。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include <stdio.h>
#include <string.h>
void NONO(void);
void fun(char *s, char t[])
{

}
int main()
{
   char   s[100], t[100];
   printf("\nPlease enter string S:");
   scanf("%s", s);
   fun(s, t);
   printf("\nThe result is: %s\n", t);
   NONO();
   return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
   char s[100], t[100] ;
   FILE *rf, *wf ;
   int i ;
   rf = fopen("in.dat","r") ;
   wf = fopen("out.dat","w") ;
   for(i = 0 ; i < 10 ; i++)
   {
     fscanf(rf, "%s", s) ;
     fun(s, t) ;
     fprintf(wf, "%s\n", t) ;
   }
   fclose(rf) ;
   fclose(wf) ;
}
1.(1)0   (2)i++   (3)2.0*i
2. void fun (char  *s, char  *t)
    t[2*d] = '\0';
3. void fun(char *s, char t[])
    {
         int i,j=0;
         for (i=0;s[i]!='\0';i++)
             if (i%2==1 && s[i]%2==1)
                  t[j++]=s[i];
         t[j]='\0';
    }
第77套参考答案

第78套

1.程序填空题

给定程序中,函数fun的功能是:逆置数组元素中的值。

例如,若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

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

#include <stdio.h>
void fun(int a[], int n)
{  
    int  i,t;
    /**********found**********/
    for (i=0; i<___1___; i++)
    {
      t=a[i];
    /**********found**********/
      a[i] = a[n-1-___2___];
    /**********found**********/
      ___3___ = t;
    }
}
int main()
{  
    int  b[9]={1,2,3,4,5,6,7,8,9}, i;
    printf("\nThe original data  :\n");
    for (i=0; i<9; i++)
       printf("%4d ", b[i]);
    printf("\n");
    fun(b, 9);
    printf("\nThe data after invert  :\n");
    for (i=0; i<9; i++)
      printf("%4d ", b[i]);
    printf("\n");
}

2.程序修改题

给定程序中,函数fun的功能是:计算num的各位上的数字之积。

例如,若输入252,则输出应为20;若输入202,则输出应为0。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
long fun(long num)
{ 
   /************found************/ 
   long k;
   do 
   {  
       k*=num%10;
   /************found************/
       num\=10;
   } while(num);
   return (k);
}
int main()
{  
   long n;
   printf("Please enter a number:");
   scanf("%ld",&n);
   printf("\n%ld\n",fun(n));
   return 0;
}

3.程序设计题

编写函数fun,它的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标分别通过形参max和index传回。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include <stdio.h>
#include <stdlib.h>
void NONO(void);
void fun(int a[], int n, int *max, int *d)
{

}
int main()
{
    int i,  x[20],  max , index, n = 10;
    for (i=0;i < n;i++)
    {
        x[i] = rand()%50;
        printf("%4d", x[i]) ;
    }
    printf("\n");
    fun( x, n , &max, &index);
    printf("Max =%5d ,  Index =%4d\n",max, index );
    NONO();
    return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    FILE *fp, *wf ;
    int i, x[20], max,index,n=10,j;
    fp = fopen("in.dat","r") ;
    wf = fopen("out.dat","w") ;
    for(i = 0 ; i < 10 ; i++)
    {
       for(j = 0 ; j < n ; j++)
          fscanf(fp, "%d,", &x[j]) ;
       fun( x, n , &max, &index);
       fprintf(wf, "Max=%d,Index=%d\n",max,index);
    }
    fclose(fp) ;
    fclose(wf) ;
}
1.(1)n/2   (2)i   (3)a[n-1-i]
2. long k=1;
    num/=10;
3. void fun(int a[], int n, int *max, int *d)
    {
         int i;
         *d=0;
         *max=a[0];
         for (i=1;i<n;i++)
             if (*max<a[i])
             {
                  *max=a[i];  *d=i;
             }
    }
第78套参考答案

第79套

1.程序填空题

给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。

例如,有10个正数:40 30 32 40 6 17 45 15 48 26,平均值为:35.500000,主函数中输出m=30.0。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

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

#include <stdio.h>
#include <stdlib.h>
#define  N 10
double fun(double x[],double  *av)
{ 
    int  i,j;    
    double  d,s;
    s=0;
    for(i=0; i<N; i++)  s = s +x[i];
    /**********found**********/
    __1__=s/N;
    d=32767;
    for(i=0; i<N; i++)
      if(x[i]<*av && *av - x[i]<=d)
      {
    /**********found**********/
          d=*av-x[i];  j=__2__;
      }
    /**********found**********/
    return  __3__;
}
int main()
{ 
    int  i;    
    double  x[N],av,m;
    for(i=0; i<N; i++)
    { 
        x[i]=rand()%50; 
        printf("%4.0f ",x[i]);
    }
    printf("\n");
    m=fun(x,&av);
    printf("\nThe average is: %f\n",av);
    printf("m=%5.1f ",m);
    printf("\n");
    return 0;
}

2.程序修改题

给定程序中,函数fun的功能是:求s=aa..aa-…aaa-aa-a(此处aa..aa表示n个a,a和n的值在1至9之间)。

例如,a=3,n=6,则以上表达式为:s=333333-33333-3333-333-33-3,其值是:296298。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
long fun (int a, int n)
{  
    int  j ;
    /**************found**************/
    long  s = 0,  t = 1 ;
    for ( j = 0 ; j < n ; j++)
      t = t * 10 + a ;
    s = t ;
    for ( j = 1 ; j < n ; j++) 
    {
    /**************found**************/
       t = t % 10 ;
       s = s - t ;
    }
    return(s) ;
}
int main( )
{  
    int  a, n ;
    printf( "\nPlease enter a and n:") ;
    scanf(  "%d%d", &a, &n ) ;
    printf( "The value of function is: %ld\n", fun(a, n));
    return 0;
}

3.程序设计题

编写函数fun,它的功能是:统计tt字符串中’a’到’z’26个小写字母各自出现的次数,并依此放在pp所指数组中。

例如,输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include <stdio.h>
#include <string.h>
void NONO(void);
void fun(char *tt, int pp[])
{

}
int main()
{
    char aa[1000] ;
    int  bb[26], k;
    printf( "\nPlease enter  a char string:" );
    scanf("%s", aa) ;
    fun(aa, bb ) ;
    for ( k = 0 ; k < 26 ; k++ )
        printf ("%d ", bb[k]) ;
    printf( "\n" ) ;
    NONO();
    return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
    char aa[1000] ;
    int bb[26], k, i ;
    FILE *rf, *wf ;
    rf = fopen("in.dat","r") ;
    wf = fopen("out.dat","w") ;
    for(i = 0 ; i < 10 ; i++)
    {
       fscanf(rf, "%s", aa) ;
       fun(aa, bb) ;
       for ( k = 0 ; k < 26 ; k++ )
          fprintf (wf, "%d ", bb[k]) ;
       fprintf(wf, "\n" ) ;
    }
    fclose(rf) ;
    fclose(wf) ;
}
1.(1)*av   (2)i   (3)x[j]
2. long  s = 0,  t = 0 ;
    t = t / 10 ;
3. void fun(char *tt, int pp[])
    {
         int i;
         for (i=0;i<26;i++) pp[i]=0;
         for (i=0;tt[i]!='\0';i++)
               if (tt[i]>='a' && tt[i]<='z')
                   pp[tt[i]-'a']++;
    }
第79套参考答案

第80套

1.程序填空题

给定程序中,通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是:从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖该学生原来的数据,其他学生的数据不变;若找不到,则什么都不做。

请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

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

#include  <stdio.h>
#define    N  5
typedef struct  student 
{
    long  sno;
    char  name[10];
    float  score[3];
} STU;
void fun(char *filename, long  sno)
{ 
    FILE  *fp;
    STU  n;      
    int  i;
    fp = fopen(filename,"rb+");
    /**********found**********/
    while (!__1__)
    {  
        fread(&n, sizeof(STU), 1, fp);
    /**********found**********/
        if (n.sno__2__)  break;
    }
    if (!feof(fp))
    {  
        for (i=0; i<3; i++)  n.score[i] += 3;
    /**********found**********/
        fseek(fp, -1L*__3__, SEEK_CUR);
        fwrite(&n, sizeof(STU), 1, fp);
    }
    fclose(fp);
}
int main()
{ 
    STU  t[N]={{10001,"MaChao", 91, 92, 77}, 
               {10002,"CaoKai", 75, 60, 88},
               {10003,"LiSi", 85, 70, 78},  
               {10004,"FangFang", 90, 82, 87},
               {10005,"ZhangSan", 95, 80, 88}}, ss[N];
    int  i,j;      
    FILE  *fp;
    fp = fopen("student.dat", "wb");
    fwrite(t, sizeof(STU), N, fp);
    fclose(fp);
    printf("\nThe original data :\n");
    fp = fopen("student.dat", "rb");
    fread(ss, sizeof(STU), N, fp);
    fclose(fp);
    for (j=0; j<N; j++)
    {  
        printf("\nNo: %ld  Name: %-8s      Scores:  ",ss[j].sno, ss[j].name);
        for (i=0; i<3; i++) 
            printf("%6.2f ", ss[j].score[i]);
        printf("\n");
    }
    fun("student.dat", 10003);
    fp = fopen("student.dat", "rb");
    fread(ss, sizeof(STU), N, fp);
    fclose(fp);
    printf("\nThe data after modifing :\n");
    for (j=0; j<N; j++)
    {  
        printf("\nNo: %ld  Name: %-8s      Scores:  ",ss[j].sno, ss[j].name);
        for (i=0; i<3; i++)  
            printf("%6.2f ", ss[j].score[i]);
        printf("\n");
    }
    return 0;
}

2.程序修改题

给定程序中,函数fun的功能是:求S的值。

例如,当k=10时,函数值应为:1.533852。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>
/************found************/
void 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
}
int main()
{
   printf("%f\n", fun (10));
   return 0;
}

3.程序设计题

编写函数fun,它的功能是:计算下列级数和

 

例如,当n=10时,函数值为 0.909091。

注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include <stdio.h>
void NONO(void);
double  fun(int  n)
{

}
int main()
{
   printf("%f\n", fun(10));
   NONO();
   return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
   FILE *fp, *wf ;
   int i, n ;
   double s ;
   fp = fopen("in.dat","r") ;
   wf = fopen("out.dat","w") ;
   for(i = 0 ; i < 10 ; i++)
   {
      fscanf(fp, "%d", &n) ;
      s = fun(n) ;
      fprintf(wf, "%f\n", s) ;
   }
   fclose(fp) ;
   fclose(wf) ;
}
1.(1)feof(fp)   (2)==sno   (3)sizeof(STU)
2. float fun(int k)
    return  s;
3. double  fun(int  n)
    {
         double s=0;
         int i;
         for (i=1;i<=n;i++)
             s+=1.0/(i*(i+1));
        return s;
    }
第80套参考答案

标签:10,函数,int,void,题集,C语言,76,fun,include
From: https://www.cnblogs.com/cs-whut/p/16864801.html

相关文章

  • 计算机等级考试二级C语言上机题集(第71~75套)
    第71套1.程序填空题给定程序中,函数fun的功能是:将参数给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中读入,并调用库函数atoi和atof将字符串转换成相......
  • 计算机等级考试二级C语言上机题集(第66~70套)
    第66套1.程序填空题给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符。若找不到相同的字符则函数不做任何处理。例如......
  • 计算机等级考试二级C语言上机题集(第61~65套)
    第61套1.程序填空题给定程序中,函数fun的功能是:找出100~x(x<=999)之间所有整数中各位上数字之和为15的整数,然后输出;符合条件的整数个数作为函数值返回。例如,若x=500时,100~50......
  • 计算机等级考试二级C语言上机题集(第56~60套)
    第56套1.程序填空题给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,......
  • 计算机等级考试二级C语言上机题集(第51~55套)
    第51套1.程序填空题给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6......
  • 初学C语言(3)
    由于疫情原因在学校无法更新。常量:1.字面常量:直接输入即可。如图:2.const修饰的常量:intmain(){constintnum=3;//语法形式为const+数据类型+变量名+=+变......
  • 嵌入式-C语言基础:联合体和共用体的概念
    有时候同一块内存空间存放类型不同,不同类型的变量共享一块空间。结构体和共用体的区别:(1)结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定。(2)结构体元......
  • c语言学习--静态函数
    静态函数 #include<stdio.h>//这是静态函数,静态函数只能在当前文件调用,其他文件下面的函数是没法调用到这个函数的staticvoidfun1(){printf("helloworld"......
  • C语言学习---星花与取地址&----以及多级指针
    #include<stdio.h>intmain{//对一个表达式加*,就会对表达式减一级星花*,//如果对表达式取&,就会加一级*int*p;int**q;q......
  • pat春季模拟考试+acwing第76周赛+AT276
    pat:模考58分,相较夏季赛差了不少1.模拟给定一个字符串,要求按照得分点和失分点进行模拟,求最后得分即可模拟比较难写参考小柳学渣大神的代码,大神码风和思路都很好1#i......