【考试题目】
程序填空题
请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字
符及其后面的所有字符全部删除。结果仍然保存在原串中。
例如,输入“abcdef”,指定字符为‘e’,则输出“abcd”。
    注意:部分源程序已给出,并保存在考生文件夹下的 blank1.c 文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表
达式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。
#include <stdio.h>
#define N 80
main()
{
  int i=0;
  char str[N];
  char ch;
  printf("\n Input a string:\n");
  gets(str);
  printf("\n Input a charator;\n");
  scanf("%c", &ch);
  while(str[i]!='\0')
  {
    if(str[i]==ch)
    ______ 
  ______  ;
  }
  str[i]=  ______  ;
  printf("\n*** display string ***\n");
  puts(str);
}
程序修改题
    已知一个数列从0项开始的前3项:0,0,1,以后的各项都是其相邻的前3项之和。下列给定的
程序中,函数fun()的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。
请改正程序中的错误,使它能得出正确的结果。
注意:源程序保存在考生文件夹下的 modi1.c 文件中。
    不要改动main函数,不得增行或删行,也不得更改程序的结构,注释语句(/**found**/)下
方的第一条语句有错误。
#include  <conio.h>
#include  <stdio.h>
#include  <math.h>
/
**********************found***********************/
fun(int n) 
{double sum, s0, s1, s2, s; int k;
sum=1.0;
if (n<=2) sum=0.0;
s0=0.0; s1=0.0; s2=1.0;
for (k=4;k<=n;k++)
    { s=s0+s1+s2;
      sum+=sqrt(s);
      s0=s1;s1=s2;s2=s;
    }
/**********************found***********************/
return sum
}
main()
{int n;
printf("Input  N=");
scanf("%d",&n);
printf("%f\n",fun(n));
}
程序设计题
编写函数fun(),它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正数且
要求m>n。P=m!/(n!(m-n)!),例如:m=12,n=8时,运行结果为495.000000。
注意:部分源程序已给出,并保存在考生文件夹下的 prog1.c 文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。
#include <conio.h>
#include <stdio.h>
float fun (int m, int n)
{
  int i;
  double p=1.0;
  for(i=1;i<=m;i++)
    p=p*i; 
  for(i=1;i<=n;i++)
  ______
  ______
  ______
  ______     
}
main ()
{
  printf ("p=%f\n",fun (12,8) ) ;
}
【参考答案】
程序填空题:第15行  break;  第16行  i++【 ++i  i+=1  i=i+1 】  第18行  '\0'【 0 】 
程序修改题:第5行  double  第16行  sum; 
程序设计题:第10行  p=p/i;【 p/=i; 】  第11行  for(i=1;i<=m-n;i++)  第12行  p=p/i;【 p/=i; 】  第13行  return  第13行  p; 
【考试题目】
程序填空题
请补充函数fun(),该函数的功能是:把ASCII码为奇数的字符从字符串str中删除,结果仍然
保存在字符串str中。字符串str从键盘输入,其长度作为参数传入函数fun()。
例如,输入“abcdef”,输出“bdf”。
注意:部分源程序已给出,并保存在考生文件夹下的 blank1.c 文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达
式或语句,并将横线去掉,同时确保答案与前后字符之间至少保留一个空格。
#include <stdio.h>
#define N 80
void fun(char s[],int n)
{
  int i, j;
  j=0;
  for(i=0;  ______  ;i++)
  {
    if(  ______  )
      s[j++]=s[i];
  }
  ______  ;
}
main()
{
    int i=0, strlen=0;
    char str[N];
    printf("\nInput a string:\n");
    gets(str);
    while(str[i]!='\0')
    {
          strlen++;
          i++;
    }
    fun(str, strlen);
    printf("\n*** display string ***\n");
    puts(str);
}
程序修改题
下列给定程序中,函数fun()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平
均值)的实数个数。例如,n=8时,输入193.199,195.673,195.757,196.051,196.092,196.596,
196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。
请改正程序中的错误,使它能得出正确的结果。
    注意:源程序保存在考生文件夹下的 modi1.c 文件中。
    不要改动main函数,不得增行或删行,也不得更改程序的结构,注释语句(/**found**/)下
方的第一条语句有错误。
#include  <conio.h>
#include  <stdio.h>
int fun(float x[], int n)
/**********************found***********************/
  ;
  int j, c=0;float  xa=0.0;
  for (j=0; j<n; j++)
    xa+=x[j]/n;
  printf("ave=%f\n",xa);   
  for (j=0; j<n;j++)  float up
    if(x[j]>=xa)
        c++;
/**********************found***********************/
  return xa;
}
main()
{float x[100]={ 193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};
printf("%d\n",fun(x,8));
}
程序设计题
m个人的成绩存放在score数组中,请编写函数fun(),它的功能是:将低于平均分的人数作为
函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为10,20,30,40,50,60,70,80,90时,函数返回的人数应该是
4,below中的数据应为10,20,30,40。
    注意:部分源程序已给出,并保存在考生文件夹下的 prog1.c 文件中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语
句,并将横线去掉。
#include <conio.h>   
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int below[])
{
  int i,j=0;
  float av=0.0;
  for(i=0;i<m;i++)
    av=av+score[i]/m;   
  for(i=0;i<m;i++)
  ______
  ______
  ______
}
main()
{
  int i, n, below[9];
  int score[9]={10,20,30,40,50,60,70,80,90};
  n=fun(score, 9, below);
  printf("\nBelow the average score are: ");
  for(i=0;i<n;i++) 
    printf("%d",below[i]);
}
【参考答案】
程序填空题:第7行  i<n【 n>i  s[i] 】  第9行  s[i]%2==0  第12行  s[j]='\0'【 s[j]=0 】 
程序修改题:第5行  {  第14行  c; 
程序设计题:第11行  if(score[i]<av)【 if(av>score[i]) 】  第12行  below[j++]=score[i];  第13行  return  第13行  j; 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。