C语言上机操作题及答案
第一题
请补充fun函数的功能是:把字符下标能被2或3整除的字符串str中删除,把剩余的字符重新保存在字符串str中。字符串str从键盘输入,其长度作为参数传入fun函数。
例如,输入“abcdefghijk”,输出“bfh”。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include
#define N 80
void fun(char s[], int n)
{
int i, k;
___1___;
for (i=0; i {
s[k++] = s[i];
if ((i%2==0) ___2___ (i%3==0))
k--;
}
___3___;
}
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);
}
答案:
第1处填空:k=0;
第2处填空:||
第3处填空:s[k]=’\0’或s[k]=0 2011年计算机二级C语言上机操作题及答案(99)来源:考试大 【相信自己,掌握未来,考试大值得信赖!】 2011年7月27日第二题
下列给定程序中,函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(unsigned n, int *zero)
{
int count = 0, max = 0, t;
do
{
t = n;
/********found********/
if (t = 0)
count++;
if (max < t)
max = t;
n = n/10;
} while (n);
/********found********/
zero = count;
return max;
}
main()
{
unsigned n;
int zero, max;
printf("\nInput n(unsigned): ");
scanf("%d", &n);
max = fun(n, &zero);
printf("\nThe result: max=%d zero=%d\n", max, zero);
}
答案:
第1处:if(t=0)应改为if(t==0)
第2处:zero=count; 应改为*zero=count; 2011年计算机二级C语言上机操作题及答案(99)来源:考试大 【相信自己,掌握未来,考试大值得信赖!】 2011年7月27日第三题
请编写函数fun,其功能是:计算并输出
例如,若主函数从键盘给n输入20后,则输出为s=534.188884。
注意:n的值要求大于1但不大于100。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的花括号中填入所编写的若干语句。
#include
#include
double fun(int n)
{
}
main()
{
int n;
double s;
FILE *out;
printf("\n\nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n\n",s);
out=fopen("out.dat","w");
for (n = 0; n < 10; n++)
fprintf(out, "%f\n", fun(n+20));
fclose(out);
}
答案
double fun(int n)
{
int i;
double s=1.0;p=1.0;
for(i=2;i<=n;i++)
{
p+pow(i,0.5);
s+=p;
}
ret