} main() {
char str[80]; printf(\a string: \ gets(str);
printf(\\
puts(str); fun(str);
printf(\\ puts(str);
printf(\ }
第 1 处:void fun(char *p);应改为 void fun(char *p) 第 2 处:p=q+I;应改为 q=p+i;
编程题
编写函数 fun,函数功能是:根据以下公式计算 s,计算结果作 为函数值返回;n 通过型参传入。
1 1 1 ??..... ??S=1+ ?
1??2 1??2 ??3 1??2 ??3 ??....n
例如:若 n 的值为 11 时,函数的值为 1.833333。 注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序:#include
#include
#include
printf(\ scanf(\ s=fun(n);
printf(\result is: %f\\n\ s = fun(28);
out = fopen(\ fprintf(out, \s); fclose(out); }
答案是: float fun(int n) {
int i;
float s=1.0,t=1.0;
for(i=2;i<=n;i++) { t=t+i; s=s+1/t; } return s; }
第 9 套
填空题 给定程序的功能是分别统计字符串中大写字母和小写字母的个 数。
例如,给字符串 SS 输入:AaaaBBb123CCccccd,则输出结果应 为:upper=5, lower=9。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数 的横线上填入所编写的若干表达式或语句。 试题程序:#include
void fun(char *s, int *a, int *b) {
while (*s) {
if (*s>='A' && *s<='Z') 1 ;
if (*s>='a' && *s<='z') 2 s++; } } main() {
char s[100];
int upper = 0, lower = 0; printf(\\ gets(s);
fun(s, &upper, &lower);
printf(\lower = %d\\n\}
3 );
;
第 1 处填空:(*a)++或++(*a)或*a=*a+1 或*a+=1 第 2 处填空:(*b)++或++(*b)或*b=*b+1 或*b+=1 第 3 处填空:upper,lower
改错题
下列给定程序中,函数 fun 的功能是:从 n 个学生的成绩中统 计出低于平均分的学生人数,此人数由函数值返回,平均分存放 在行参 aver 所指的存储单元中。例如,若输入 8 名学生的成绩:
80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为 4(平均分为:75.5625). 请改正程序中的错误,使程序能统计出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改 程序的结构!
试题程序:#include
#include
int fun(float *s, int n, float *aver) {
float ave, t = 0.0; int count = 0, k, i; /********found********/ for (k=0; k if (s[i] < ave) count++; /********found********/ *aver = &ave; return count; } main() { float s[30], aver; int m, i; printf(\ scanf(\&m); printf(\