首页 > 全部 > 二级C语言 > 国家二级(C语言)机试模拟试卷859

国家二级(C语言)机试模拟试卷859

本单篇文档共3099字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 模拟试卷 1503人下载
价格: 1.10 原价:¥8.80
收藏

国家二级(C语言)机试模拟试卷859

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun( )的功能是判断形参s所指字符串是否是回文(palindrome),若是,函数返回值为1;若不是,函数返回值为0。回文是正读和反读都一样的字符串(不区分大小写字母)。

例如,LEVEL和Level是回文,而LEVLEV不是回文。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:部分源程序在文件blank1.c中。

不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

#include

int fun(char*s)

{char*lp,*rp;

/*********found*********/

1p=【1】

rp=s+strlen(s)-1;

while((toupper(*1p)==toupper(*rp))&&(1p<rp)){

/*********found*********/

1p++; rp【2】;)

/*********found*********/

if(ip<rp)【3】

else return 1;

}

main( )

{ char s[81];

printf(\\

(1)s(2)–(3)return 0

解析:填空1:本题判断字符串是否是回文,需要比较字符串的首尾字符是否相等,若相等再比较第2个字符与倒数第2个字符是否相等。以此类推,直到前后字符都相等,则为回文。指针变量1p指向字符串s的首字符,指针变量rp指向字符串s的最后一个字符。故空1处应该填s。

填空2:while循环中需要比较字符串前半部分和后半部分的每个字符,这时需要移动指针变量,1p++,rp–。故空2处应该填–。

填空3:循环结束,如果指针1p大于等于指针rp,则表示字符串是回文,否则不是。如果字符串是回文,函数返回1,否则返回0。故空3处应该填0。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun( )的功能是求出如下分数数列的前n项之和。

2/1,3/2,5/3,8/5,13/8,21/13,…和值通过函数值返回main( )函数。例如,若n=5,则应输出8.391667。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件modi1.c中,不要改动main( )函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

#include

/*********found*********/

fun(int n)

{int a,b,C,k;

double s;

s=0.0;a=2;b=1;

for(k=1; k<=n;k++)

{

/*********found*********/

s=s+(Double)a/b;

c=a;a=a+b;b=c;

}

return s;

}

main( )

{ int n=5;

system(\\

(1)double fun(int n)(2)s=s+(double)a/b;

解析:(1)由函数fun( )的返回值s可知:因为变量s为double型,所以函数fun( )类型定义为double。(2)C语言规定所有关键字都必须用小写英文字母表示,所以s=s+(Double)a/b;应改为s=s+(double)a/b;。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun( ),该函数的功能是将大于整数m且紧靠m的k个素数存入所指的数组中。

例如,若输入17、5,则应输出19、23、29、31、37。

注意:部分源程序在文件prog1.c中。

请勿改动主函数main( )和其他函数中的任何内容,仅在函数fun( )的花括号中填入你编写的若干语句。

试题程序:

#include

#include

#include

void fun(int m,int k,int xx[])

{

}

void main( )

{

FILE*wf;

int m,n,zz[i000];

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中。当数组xx的素数个数为k个时,退出循环。

本文档预览:3600字符,共3099字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级(C语言)机试模拟试卷859

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号