资源描述
2013年计算机二级考试:《C语言》上机试题及答案二
填空题
请补充函数FUN,它的功能是:计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。
例如,在主函数中从键盘给N输入30后,输出为:S=1.226323。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序: #include <stdio.h>
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(“ Input n: “);
scanf(”%d“, &n);
s = fun(n);
printf(” s=%f “, s);
}
第1处填空:i<=n或n>=i
第2处填空:||
第3处填空:1.0或(double)1
改错题
下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=6,lower=8
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <conio.h>
#include <stdio.h>
/********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(” Please a string : “);
gets(s);
fun(s, &upper, &lower);
printf(” upper=%d lower=%d “, 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 <conio.h>
# include <stdio.h>
void fun(char *tt, int pp[])
{
}
main()
{
char aa[1000];
int bb[26], k;
FILE *out;
printf(“ Please enter a char string:“);
scanf(”%s“,aa);
fun(aa,bb);
for(k=0;k<26 ; k++)
printf(”%d“,bb[k]);
printf(” “);
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 “, 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++;
}
}
展开阅读全文