【考试题目】
程序填空题
请补充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小时内删除。
发表评论