100套上机题.docx

上传人:b****6 文档编号:15445536 上传时间:2023-07-04 格式:DOCX 页数:41 大小:29.80KB
下载 相关 举报
100套上机题.docx_第1页
第1页 / 共41页
100套上机题.docx_第2页
第2页 / 共41页
100套上机题.docx_第3页
第3页 / 共41页
100套上机题.docx_第4页
第4页 / 共41页
100套上机题.docx_第5页
第5页 / 共41页
100套上机题.docx_第6页
第6页 / 共41页
100套上机题.docx_第7页
第7页 / 共41页
100套上机题.docx_第8页
第8页 / 共41页
100套上机题.docx_第9页
第9页 / 共41页
100套上机题.docx_第10页
第10页 / 共41页
100套上机题.docx_第11页
第11页 / 共41页
100套上机题.docx_第12页
第12页 / 共41页
100套上机题.docx_第13页
第13页 / 共41页
100套上机题.docx_第14页
第14页 / 共41页
100套上机题.docx_第15页
第15页 / 共41页
100套上机题.docx_第16页
第16页 / 共41页
100套上机题.docx_第17页
第17页 / 共41页
100套上机题.docx_第18页
第18页 / 共41页
100套上机题.docx_第19页
第19页 / 共41页
100套上机题.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

100套上机题.docx

《100套上机题.docx》由会员分享,可在线阅读,更多相关《100套上机题.docx(41页珍藏版)》请在冰点文库上搜索。

100套上机题.docx

100套上机题

2011年计算机二级C语言上机操作题及答案汇总

第1套

填空题

请补充FUN函数,FUN函数的功能是求10的阶乘。

注意:

部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,

仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include

longfun(int n)

{

   if(___1___)

      return(n*fun(___2___));

   return___3___;

}

main()

{

   printf("10!

=%ld\n",fun(10));

}

第1处填空:

n>1或1

第2处填空:

n-1

第3处填空:

1或11或1L

改错题

下列给定程序的功能是:

读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:

2、3、5、7、11。

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

注意:

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

试题程序:

 #include

#include

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

IsPrime(int n);

{

   int i,m;

   m=1;

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

   for(i=2;i

      if!

(n%i)

      {

          m=0;

          break;

      }

   return(m);

}

main()

{

   int j,k;

   printf("\npleaseenteranintegernumberbetween2and10000:

");

   scanf("%d",&k);

   printf("\n\nTheprimefactor(s)of%dis(are):

",k);

   for(j=2;j

      if((!

(k%j))&&(IsPrime(j)))

          printf("M,",j);

   printf("\n");

}

第1处:

Isprime(intn);应改为Isprime(intn)

第2处:

if!

(n%i)应该为if(!

(n%i))

编程题

M个人的成绩存放在score数组中,请编写函数fun,它的功能是:

返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。

例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的认输应该是4,below中的数据应我10、20、30、40。

注意:

部分源程序给出如下。

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

试题程序:

 #include

#include

#include

intfun(intscore[],intm,intbelow[])

{  

   

}

main()

{

   inti,n,below[9];

   intscore[9]={10,20,30,40,50,60,70,80,90};

   FILE*out;

   n=fun(score,9,below);

   printf("\nBelowtheaveragescoreare:

");

   out=fopen("out.dat","w");

   for(i=0;i

   {

      printf("%d",below[i]);

      fprintf(out,"%d\n",below[i]);

   }

   fclose(out);

}

答案是:

  intfun(intscore[],int m,int below[])

{

  intI,k=0,aver=0;

 for(i=0;i

 aver+=score[i];

aver/=m;

for(i=0;i

if(score[i]

{

 below[k]=score[i];

 k++;

}

returnk;

}

第2套

填空题

请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。

斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:

0 1 1 2 3 5 8 13…..

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

试题程序:

#include 

int fun(int  n);

main()

{

    int  i, n = 0;

    scanf("%d", &n);

    for (i=0; i

       printf("%d  ", fun(i));

}

int fun(int  n)

{

    if (___1___)

       return 0;

    else if (___2___)

       return 1;

    else

       return ___3___;

}

第1处填空:

n==0或0==n或!

n

第2处填空:

n==1或1==n

第3处填空:

fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1)

改错题

下列给定程序中,函数FUN的功能是:

逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。

例如,若a中的字符串为aBCDeFgH,b中的字符串为:

ABcd,则c中的字符串应为:

aBcdeFgH。

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

注意:

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

试题程序:

  #include 

#include 

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

{

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

    int  k = 1;

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

    while (*p !

= *q)

    {

       if (*p < *q)

           c[k] = *q;

       else

           c[k] = *p;

       if (*p)

           p++;

       if (*q)

           q++;

       k++;

    }

}

main()

{

    char  a[10] = "aBCDeFgH", b[10] = "ABcd", c[80] = {’\0’};

    fun(a, b, c);

    printf("The string a:

");

    puts(a);

    printf("The string b:

");

    puts(b);

    printf("The result:

");

    put s(c);

}

第1处:

int k=1应改为int k=0;

第2处:

while(*p!

=*q)应改为while(*p||*q)

编程题

请编写函数fun,它的功能是:

求出1到1000之内能被7或11整除、但不能同时被7或11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。

注意:

部分源程序给出如下。

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

试题程序:

#include 

#include 

void fun(int *a,int *n)

{

main()

{  

    int aa[1000],n,k;

    FILE *out;

    fun(aa,&n);

    out=fopen("out.dat", "w");

    for(k=0;k

       if((k+1)_==0)

       {

           printf("]\n",aa[k]);

           fprintf(out, "%d\n", aa[k]);

       }

       else

       {

           printf("],",aa[k]);

           fprintf(out, "%d,", aa[k]);

       }

    fclose(out);

}

答案是:

void fun(int *a,int *n)

{

  int i,j=0;

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

if( (i%7==0||i_==0)&&iw!

=0)

a[j++]=i;

*n=j;

}

第3套

填空题

请补充函数FUN(CHAR *S),该函数的功能是把字符串中的内容逆置.

例如:

字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.

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

试题程序:

#include 

#include 

#include 

#define  N 81

void fun(char  *s)

{

    int  i, n = strlen(s)-1;

    char t;

    for (i=0; i

    {

       t = s[i];

       ___2___;

       ___3___;

    }

}

main()

{

    char  a[N];

    printf("Enter a string:

");

    gets(a);

    printf("The original string is:

");

    puts(a);

    fun(a);

    printf("\n");

    printf("The string after modified:

");

    puts(a);

}

第1处填空:

n--或--n或n-=1或n=n-1

第2处填空:

s[i]=s[n]或*(s+i)=*(s+n)

第3处填空:

s[n]=t或*(s+n)=t

改错题

下列给定的程序中,函数fun的功能是:

依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。

请改正函数fun中的错误,使程序能得出正确的结果。

注意:

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

试题程序:

#include 

#include 

void fun(char  *s)

{

    int  i, j;

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

    for (i=0, j=0; s[i]!

=’\0’; i++)

       if (s[j]>=’0’ && s[i]<=’9’)

           s[j] = s[i];

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

    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);

}

第1处:

s[j]=s[i];应改为s[j++]=s[i]

第2处:

s[j]=”/0”;应改为s[j]=’\0’;

编程题

请编写函数void fun(int x,int pp[],int *n),它的功能是:

求出能整除x且不是偶数的各整数,并按从小到大的顺序放在 pp所指的数组中,这些除数的个数通过形参 n返回.

例如,若x中的值为 30,则有 4个数符合要求,它们是 1,3,5,15.

注意:

部分源程序给出如下。

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

试题程序:

#include 

#include 

void fun(int x, int pp[], int *n)

{

}

main()

{  

    int x, aa[1000], n, i;

    FILE *out;

    printf("\nPlease enter an integer number:

\n"); 

    scanf("%d",&x);

    fun(x,aa,&n);

    for(i=0;i

       printf("%d ", aa[i]);

    printf("\n");

    fun(730, aa, &n);

    out = fopen("out.dat", "w");

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

       fprintf(out, "%d\n", aa[i]);

    fclose(out);

}

答案是:

void fun(int x,int pp[],int *n)

{

   int i=1,j=0,k=0,*t=pp;

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

if(i%2!

=0)

{

  t[j]=i;

 j++;

}

for(i=0;i

if(x%t[i]==0)

{

   pp[k]=t[i];

k++;

}

*n=k;

}

第4套

填空题

请补充函数FUN,它的功能是:

计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。

例如,在主函数中从键盘给N输入30后,输出为:

S=1.226323。

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

试题程序:

  #include 

double fun(int  n)

{

    int  i;

    double  sum = 0.0;

    for (i=1; ___1___; i++)

       if (i%3==0 ___2___ i%7==0)

           sum += ___3___/i;

    return sum;

}

main()

{

    int  n;

    double  s;

    printf("\nInput n:

 ");

    scanf("%d", &n);

    s = fun(n);

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

}

第1处填空:

i<=n或n>=i

第2处填空:

||

第3处填空:

1.0或(double)1

改错题

下列给定程序中,fun函数的功能是:

分别统计字符串中大写字母和小写字母的个数。

例如,给字符串s输入:

AaaaBBb123CCccccd,则应输出结果:

upper=6,lower=8

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

注意:

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

试题程序:

  #include 

#include 

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

void fun(char  *s, int  a, int  b)

{

    while (*s)

    {

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

       if (*s>=’A’ && *s<=’Z’)

           a++;

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

       if (*s>=’a’ && *s<=’z’)

           b++;

       s++;

    }

}

main()

{

    char  s[100]; 

    int  upper = 0, lower = 0;

    printf("\nPlease a string :

 ");

    gets(s);

    fun(s, &upper, &lower);

    printf("\n upper=%d lower=%d\n", upper, lower);

}

第1处:

void fun (char *s,int a,int b)应改为void fun(char *s,int *a,int *b)

第2处:

a++;应改为(*a)++;

第3处:

b++;应改为(*b)++;

编程题

请编写一个函数void fun(char*tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次存放在pp所指数组中。

例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:

33322110000000000000000000

注意:

部分源程序给出如下。

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

试题程序:

# include 

# include 

void fun(char *tt, int pp[])

{

}

main()

{

    char aa[1000];

    int bb[26], k;    

    FILE *out;

    printf("\nPlease enter a char string:

");

    scanf("%s",aa);

    fun(aa,bb);

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

       printf("%d",bb[k]);

    printf("\n");

    fun("a bosom friend afar brings a distant land near", bb);

    out = fopen("out.dat", "w");

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

       fprintf(out, "%d\n", bb[k]);

    fclose(out);

}

答案是:

void fun(char *tt,int pp[])

{

  int  I;

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

pp[i]=0;

while(*tt)

{switch(*tt)

  {

   case ’a’:

pp[0]++;break;

   case ’b’:

pp[1]++;break;

   case ’c’:

pp[2]++;break;

   case ’d’:

pp[3]++;break;

   case ’e’:

pp[4]++;break;

   case ’f’:

pp[5]++;break;

   case ’g’:

pp[6]++;break;

   case ’h’:

pp[7]++;break;

   case ’i’:

pp[8]++;break;

   case ’j’:

pp[9]++;break;

   case ’k’:

pp[10]++;break;

   case ’l’:

pp[11]++;break;

   case ’m’:

pp[12]++;break;

   case ’n’:

pp[13]++;break;

   case ’o’:

pp[14]++;break;

   case ’p’:

pp[15]++;break;

   case ’q’:

pp[16]++;break;

   case ’r’:

pp[17]++;break;

   case ’s’:

pp[18]++;break;

   case ’t’:

pp[19]++;break;

   case ’u’:

pp[20]++;break;

   case ’v’:

pp[21]++;break;

   case ’w’:

pp[22]++;break;

   case ’x’:

pp[23]++;break;

   case ’y’:

pp[24]++;break;

   case ’z’:

pp[25]++;break;

}

tt++;

}

}

第5套

填空题

给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:

圆面积公式为:

S=πR,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的半径值:

19.527,输出为:

S=598.950017。

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

试题程序:

#include

doublefun(doubler)

{

   return3.14159*___1___/2.0;

}

main()

{

   double x;

   printf("Enter x:

 ");

   scanf("%lf",___2___);

   printf("s=%lf\n",fun(___3___));

}

第1处填空:

r*r

第2处填空:

&x

第3处填空:

x

改错题

假定整数数列中的数不重复,并存放在数组中。

下列给顶程序中,函数fun的功能是删除数列中值为x的元素,同时将其他元素前移。

N中存放的是数列中元素的个数。

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

      注意:

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

   试题程序:

#

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2