计算机二级c语言上机题库_大学生必备网

时间:2014-7-25 9:53:45    作者:admin    来源:大学生必备网

计算机二级c语言上机题库

以下是计算机二级c语言上机题库100道,只要做完了其中的题目,上机考试基本是稳稳地过,当然很多都是考试原题。

1.填空题

请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。

例如:当str[N]="123abcdef ABCDEF!",结果输出:"123 ABCDEF ABCDEF!"。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#define N 80

void main()

{

        int j;

        char str[N]=" 123abcdef ABCDEF!";

        char *pf=str;

        system("CLS");

        printf("***original string ***\n");

        puts(str);

        【1】;

        while(*(pf+j))

        {

              if(*(pf+j)>='a'&&*(pf+j)<='z')

              {

                     *(pf+j)=【2】;

                     j++;

              }

              else

                     【3】;

        }

        printf("******new string******\n");

        puts(str);

        system("pause");

}

1. 改错题

下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。

例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。

请改正程序中的错误,使它能得到正确结果。

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

试题程序:

#include <stdio.h>

#include <string.h>

void fun(char *p,char *q,char *c)

{ int k=0;

 while(*p||*q)

/**********************found***********************/

      { if (*p<=*q) 

           c[k]=*q;

        else c[k]=*p;

        if(*p)  p++;

        if(*q)  q++ ;

/**********************found***********************/

        k++

      }

}

 

void main()

{ chara[10]="fshADfg",b[10]="sdAEdi",c[80]={'\0'};

 fun(a,b,c);

 printf("The string a:"); puts(a);

 printf("The string b:"); puts(b);

 printf("The result :"); puts(c);

}

 

1. 编程题

请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。

例如,当a=16,b=35,调用该函数后,c=5361。

注意:部分源程序给出如下。

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

试题程序:

#include<stdlid.h>

#include<stdio.h>

void fun(int a ,int b,long *c)

{

 

 

}

void main()

{

  inta,b;

 long  c;

 system("CLS");

 printf("Input a,b;");

 scanf("%d%d",&a, &b);

 fun(a,b,&c);

 printf("The result is:%ld\n",c);

}

 

2.填空题

请补充main函数,该函数的功能是求方程ax2+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b2-4ac)小于0,则要求重新输入a、b、c的值。

例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

#include <math.h>

#include <stdio.h>

#include <stdlib.h>

void main()

{

        float a,b,c, disc,x1,x2;

        system("CLS");

        do

        {

              printf("Inputa,b,c:");

              scanf("%f,%f,%f",&a,&b,&c);

              disc=b*b-4*a*c;

              if(disc<0)

                     printf("disc=%f\nInput again!

\n",disc);

        }while(【1】);

        printf("*******theresult*******\n");

        x1=【2】;

        x2=【3】;

        printf("\nx1=%6.2f\nx2=%6.2f\n",x1,x2);

}

 

2. 改错题

下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。

y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)

例如:m中的值为5,则应输出0.838611。

请改正程序中的错误,使它能得到正确结果。

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

试题程序:

#include <stdlib.h>

#include <conio.h>

#include <stdio.h>

double fun(int  m)

{ double y=1.0;

/**********************found***********************/

  intj=1;

 int  i;

 for(i=2; i<=m; i++)

    {

     j=-1*j;

/**********************found***********************/

     y+=1/(i * i);

    }

 return(y);

}

 

void main()

{

 int  n=5;

 system("CLS");

 printf("\nThe result is %lf\n" ,fun(n));

}

 

2. 编程题

请编一个函数voidfun(int  tt[M][N], int  pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

注意:部分源程序给出如下。

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

试题程序:

#include   <stdlib.h>

#include   <conio.h>

#include   <stdio.h>

#define    M  3

#define    N  4

void fun(int tt[M][N],int pp[N])

{

 

 

}

void main()

{

 intt[M][N]={{68, 32, 54, 12},{14, 24, 88, 58},{42, 22, 44, 56}};

 intp[N],i,j,k;

 system("CLS");

 printf("The riginal data is:\n");

 for(i=0;i<M;i++)

   {

   for(j=0;j<N;j++)

        printf("%6d",t[i][j]);

   printf("\n");

   }

 fun(t,p);

 printf("\nThe result  is:\n");

 for(k=0;k<N;k++)

  printf("%4d",p[k]);

 printf("\n");

}

 

3.填空题

请补充函数fun(),该函数的功能是:把一个整数转换成字符串,并倒序保存在字符数组str中。例如:当n=13572468时,str="86427531"。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

#define N 80

char str[N];

void fun(long int n)

{

        int i=0;

        while(【1】)

        {

              str[i]=【2】;

              n/=10;

              i++;

        }

        【3】;

}

void main()

{

        long int n=13572468;

        system("CLS");

        printf("*** the origial data***\n");

        printf("n=%ld",n);

        fun(n);

        printf("\n%s",str);

}

3. 改错题

下列给定程序中,函数fun的功能是按以下递归公式求函数值。

 

例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

请改正程序中的错误,使它能得到正确结果。

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

试题程序:

#include   <stdio.h>

/**********************found***********************/

fun(int n);

{

 int  c;

/**********************found***********************/

 

 if(n=1)

   c=15;

 else

   c=fun(n-1)*2;

 return(c);

}

 

void main()

{

 int   n;

 printf("Enter   n:");

 scanf("%d",&n);

 printf("The  result :%d\n\n",fun(n));

}

3. 编程题

请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。

编写完程序,运行程序后输入:字符串为Bdsihad,则排序后输出为应为Badhisd。

注意:部分源程序给出如下。

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

试题程序:

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <ctype.h>

#include <conio.h>

void fun(char *s, int num)

{

 

 

 

}

void main()

{

 chars[10];

 system("CLS");

 printf("输入7个字符的字符串:");

 gets(s);

 fun(s,7);

 printf("\n%s",s);

}

 

4.填空题

数组xx[N]保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。

例如:当xx[8]={135,787,232,222,424,333,141,541}时,bb[6]={787,232,222,424,333,141}。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#define N 1000

int fun(int xx[],int bb[],int num)

{

        int i,n=0;

        int g,b;

        for(i=0;i<num;i++)

        {

              g=【1】;

              b=xx[i]/100;

              if(g==b)

                     【2】;

        }

        return【3】;

}

void main()

{

        int xx[8]={135,787,232,222,424,333,

141,541};

        int yy[N];

        int num=0,n=0,i=0;

        num=8;

        system("CLS");

        printf("***original data ***\n");

        for(i=0;i<num;i++)

              printf("%u",xx[i]);

        printf("\n\n\n");

        n=fun(xx,yy,num);

        printf("\nyy= ");

        for(i=0;i<n;i++)

              printf("%u",yy[i]);

}

4. 改错题

下列给定程序中函数fun()的功能是计算1/n!的值。

例如:给n输入5,则输出0.008333。

请改正程序中的错误,使它能得到正确结果。

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

试题程序:

#include <stdio.h>

#include <conio.h>

/**********************found***********************/

int fun(int  n)

{ double result =1.0;

 if(n==0)

    return 1.0;

 while(n>1  && n<170)

/**********************found***********************/

    result *=n++ ;

 result=1/result;

 return result;

}

 

void main()

{

 int  n;

 printf("Input  N:");

 scanf("%d",&n);

 printf("\n1/%d!=%lf\n",n,fun(n));

}

4. 编程题

编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

例如:n为1000时,函数值应为s=96.979379。

注意:部分源程序给出如下。

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

试题程序:

#include   <stdlib.h>

#include   <conio.h>

#include   <math.h>

#include   <stdio.h>

double fun(int n)

 

 

}

 

void main()

{

system("CLS");

printf("s=%f\n", fun(1000));

}

5.填空题

请补充main函数,该函数的功能是求方程ax2+bx+c=0的根(方程的系数a,b,c从键盘输入)。

例如,当a=1,b=2,c=1时,方程的两个根分别是:x1=-1.00,x2=-1.00。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

#include<math.h>

void main()

{

        float a,b,c,disc,x1,x2,p,q;

        scanf("%f,%f,%f",&a,&b,&c);

        disc=b*b-4*a*c;

        system("CLS");

        printf("*******the result*******\n");

        if(disc>=0)

        {

              x1=【1】;

              x2=(-b-sqrt(disc))/(2*a);

              printf("x1=%6.2f,x2=%6.2f\n",x1,x2);

        }

        else

        {

              p=【2】;

              q=【3】;

              printf("x1=%6.2f+%6.2fi\n",p,q);

              printf("x2=%6.2f-%6.2fi\n",p,q);

        }

}

5. 改错题

下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

例如:输入352,则输出应该是38;若输入328,则输出应该是77。

请改正程序中的错误,使它能得到正确结果。

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

试题程序:

#include  <stdlib.h>

#include  <stdio.h>

#include  <conio.h>

long fun(long  num)

{

/**********************found***********************/

 

 long  k=1;

  do

{

k+=(num%10)*(num%10);

     num/=10;

/**********************found***********************/

   }while(num)

 return (k);

}

 

void main()

{

 long  n;

 system("CLS");

 printf("Please enter a number:");

 scanf("%ld",&n);

 printf("\n%ld\n",fun(n));

}

5. 编程题

请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为

F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

例如:t=1000时 ,函数值为987。

注意:部分源程序给出如下。

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

试题程序:

#include   <stdlib.h>

#include   <conio.h>

#include   <math.h>

#include   <stdio.h>

int fun(int t)

{

 

 

}

void main()

{

 int  n;

 system("CLS"); 

 n=1000;

 printf("n=%d,  f=%d\n",n, fun(n));

}

 

查看全文请点击下方的附件下载(word格式)

欢迎您来到大学生必备网,希望《计算机二级c语言上机题库_大学生必备网》对您有所帮助!

Copyright © 2012-2019    大学生必备网    联系我们