国家二级C语言机试(操作题)模拟试卷544
程序填空题
1.给定程序中,函数fhn的功能是:判断形参s所指字符串是否是\\
(1)s
(2)–
(3)return 0
解析:填空1:根据函数体fun中,对变量lp和rp的使用可知,lp应指向形参s的起始地址,rp指向s的结尾地址,所以应填s。
填空2:rp是指向字符串的尾指针,当每做一次循环rp向前移动一个位置,所以应填:–。
填空3:当lp和rp相等时,表示字符串是回文并返回1,否则就返回0,所以应填return 0。
程序修改题
2.下列给定程序中,函数fun的功能是:求出如下分数列的前n项之和。
(1)double fun(int n)
(2)s=s+(double)a/b;
解析:(1)由于返回值s是double型的,所以函数要定义为double型。
(2)C语言规定所有关键字都必须用小写英文字母表示,所以s=s+(Double)a/b;应改为s=s+ (double)a/b;。
程序设计题
3.请编写一个函数void fun(int m,intk,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。
例如,若输入17,5,则应输出19、23、29、31、37。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<Stdlib.h>
void fun(int m,int k,int xx[])
{
}
void main()
{
FILE*wf;
int m,n,zz[1000];
system(\\
void fun(int m,int k,int xx[])
{
int i,j,n;
for(i=m+1,n=0;n<k;i++)/*
找大于m的素数,循环k次,即找出紧靠m的k个素数*/
{for(j=2;j<i;j++)/*判断——
个数是否为素数,如果不是,跳出此循环,判断下一个数*/
if(i%j==0)break;
if(j>=i)/*如果是素数,放入数组xx中*/
xx[n++]=i;
}
}
解析:本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx中。
本文档预览:3600字符,共1570字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载