国家二级(C语言)机试模拟试卷985
程序填空题
1.使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blankl.c。在此程序中,函数fun()的功能是找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
例如,形参s所指的字符串为abcAbsmaxless,程序执行后的输出结果为
letter’a’:3times
letter’s’:3times
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序在文件blankl.c中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void fun(char *s)
{int k[26]={0),n,i,max=0;
char ch;
while(*s)
(if(isalpha(*s)){
/*********found*********/
ch=tolower(【1】);
n=ch-’a’;
/*********found*********/
k[n]+=【2】;
s++:
/*********found*********/
if(max(k[n])max=【3】;
}
printf(\\
(1)*s (2)1 (3)k[n]
解析:本题统计字符串中各字母的个数,建立了一个包括26个整型变量的数组,用来存储每个字母的个数。
填空1:isalpha()函数的作用是判断当前字符是否为字母,tolower()函数的作用是将当前字母转换为小写字母,故空2处应该填*s。
填空2:把该字母出现的个数累加到指定的数组中,故空2处应该填1。
填空3:变量max用来记录出现频率最高的字母的出现次数。如果当前该字母出现次数大于最大次数max,那么把该次数赋给max,故空3处应该填k[n]。
程序修改题
2.使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是求s的值。
(1)float fun(int k)
(2)return s;
解析:(1)此处为函数定义错误,根据返回值的类型可知函数类型标识符应为float。
(2)语法错误,return语句后缺少分号。
程序设计题
3.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),其功能是计算并输出下列多项式的值。
double fun(int n)
{
int i;
doulole s=0.0;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));/*求公式的和*/
return s;
}
解析:本题要求公式的和。由多项式的形式可知,应使用循环语句实现,循环的通项为1/n(n+1)。本程序首先定义了和变量s和循环变量i,然后运用一个for语句求出多项式的和,最后将s的值返回。
本文档预览:3600字符,共1997字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载