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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blankl.c。在此程序中,函数fun()的功能是根据形参i的值返回某个函数的值。当调用正确时,程序执行后的输出结果为

x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。

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

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

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

试题程序:

#include <stdio.h>

double f1(double x)

{return x*x;}

double f2(double x,double y)

{return x*y;}

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

【1】 fun(int i,double x,double y)

{if(i==1)

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

return 【2】 (x);

else

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

return 【3】 (x,y);

}

main()

{double x1=5,x2=3,r;

r=fun(1,x1,x2);

r+=fun(2,x1,x2);

printf(\\

(1)double (2)f1 (3)f2

解析:填空1:根据return可知,函数fun()的返回值无论返回的是f1()还是f2(),它们的返回值均为double型的,故空1处应该填double。

填空2:函数fun()的功能是根据形参i的值返回某个函数的值。当i等于1时,应该返回函数f1()。

填空3:如果不满足if条件语句,应该返回的是函数f2()。

程序修改题

2.使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是比较两个字符串,将长的字符串的首地址作为函数值返回。

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

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

试题程序:

#include <conio.h>

#include <stdio.h>

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

double fun(char *s,char *t)

{

int s1=0,t1=0;

char *ss,*tt;

ss=s;

tt=t;

while(*ss)

{

s1++;

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

(*ss)++;

}

while(*tt)

{

t1++;

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

(*tt)++;

}

if(t1>s1)

return t;

else

return s;

}

void main()

{

char a[80],b[80];

printf(\\

(1)char *fun(char *s,char *t)

(2)ss++;

(3)tt++;

解析:(1)在主函数的输出语句中,函数fun()以字符串格式%s输出。所以定义函数时应为char *fun(char *s,char *t)。

(2)和(3)这里是地址加1,而不是内容加1,所以应改为ss++;和tt++;。

程序设计题

3.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,请编写函数fun(),其功能是移动字符串中的内容,移动的规则是把第1~m个字符,移动到字符串的最后,把第m+1到最后的字符移动到字符串的前面。

例如,字符串中原有的内容为“ABCDEFGHIJK”,m的值为3,移动后,字符串中的内容应该是“DEFGHIJKABC”。

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

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

试题程序:

#include <stdio.h>

#include <string.h>

#define N 80

void fun(char *w,int m)

{

}

void main()

{

FILE *wf;

char a[N]=\\

void fun(char *w,int m)

{

int i,j;

char t;

for(i=1;i<=m;i++)/*进行m次的循环左移*/

{t=w[0];

for(j=1;w[j]!=’\0’;j++)

/*从第2个字符开始以后的每个字符都依次前移一个字符*/

w[j-1]=w[j];

w[j-1]=t;/*将第1个字符放到最后一个字符中*/

}

解析:本题应采用“循环左移”的算法。外层循环用于控制移动的字符的个数,即需进行多少次循环。内层循环的作用是将第2个字符以后的每个字符依次前移一个位置,最后将第1个字符放到最后一个字符中。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号