首页 > 全部 > 二级C语言 > 国家二级C语言机试(操作题)模拟试卷671

国家二级C语言机试(操作题)模拟试卷671

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

国家二级C语言机试(操作题)模拟试卷671

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。

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

注意:部分源程序给出如下。

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

试题程序:

#inclucle<stdio.h>

#include<string.h>

struct student{

longsno;

char flame[10];

float score[3];

};

void fun(struct student a[],int n)

{

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

【1】t;

int i,j;

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

for(i=0;i<【2】;i++)

for(j=i+1;j<n;j++)

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

if(strcrnp(【3】)>0)

{t=a[i];a[i]=a[j];

a[j]=t;

}

}

main()

{struct student s[4]={{10001,\\

(1)struct student

(2)n-1

(3)a[i].name,a[i].name

解析:填空1:变量t是中间变量,用来存放结构体数组中的元素,因此应定义为结构体类型。

填空2:for循环语句用来遍历结构体数组,n是数组的长度,因此循环变量的取值范围是0~n-1。

填空3:字符串比较函数strcmp的一般格式为“strcmp(字符串1,字符串2)”。

功能:按照ASCII码顺序比较两个字符数组中的字符串,并由函数返回值返回比较结果。

字符串1=字符串2,返回值=0;

字符串1>字符串2,返回值>0;

字符串1<字符串2,返回值<0。

程序修改题

2.使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun和funx的功能是:用二分法求方程23-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。

例如,若给m输入-100,给n输入90,则函数求得的一个根为2.000。

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

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#include<math.h>

double funx(double x)

{

return(2*x*x*x-4*x*x+3*x-6);

}

double fun(double m,double n)

{

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

int r;

r=(m+n)/2;

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

while(fabs(n-m)<0.001)

{

if(funx(r)*funx(n)<0)

m=r;

elSe

n=r;

r=(m+n)/2;

}

return r;

}

main()

{

double m,n,root;

printf(\\

(1)double r;

(2)while(fabs(n-m)>0.001)

解析:(1)程序中会发现r=(m+n)/2,而m和n都是double型的,并且根据题意可知,变量r需要定义为double型。

(2)绝对误差不超过0.001,所以循环条件应为fabs(n-m)>0.001。

程序设计题

3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的木号不多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做任何操作,字符串中间和前面的*号不删除。

例如,字符串中的内容为“****A*BC*DEF*G*******”,若n的值为4,删除后,字符串中的内容应为“****A*BC*DEF*G****”;若n的值为7,则字符串中的内容扔为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序给出如下。

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

试题程序:

#include<stdio.h>

void fun(char*a,int n)

{

}

main()

{char s[81];int n;

printf(\\

void fun(char*a,int n)

{

int i=0,k=0;

char*p,*t;

p=t=a;

/*将指针移动到字符串末尾*/

while(*t)

t++;

t–;

/*从后往前如果是‘*’则使k++,找到最后一个*所在的位置,并记录‘*’的个数*/

while(*t==’*’)

/*指针t指向前一个,同时标量k增加一*/

{k++,t–;}

/*如果最后*的个数大于允许的个数*/

if(k>n)

/*循环次数不大于前面的字符与最大允许*的个数之和*/

{while(*p&&p<t+n

解析:字符串中尾部*号不能多于n个,多余的要删除。首先需要通过while循环统计字符串尾部*号,然后通过if条件语句完成尾部木号数和n的比较,若尾部木号数多于n个,则需要把n个*号和其余字符重新保留。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号