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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:找出100~ 999之间(含100和999)所有整数中各位上数字之和为x(x为正整数)的整数,并输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之 间各位上数字之和为5的整数有: 104、113、 122、 131、 140、 203、 212、 221、 230、302、311、320、401、 410、 500,共有15个。当x值为27时,各位数字之和为27的整数是: 999,只有1个。

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

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

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

#include

int fun(int x)

{ int n, s1, s2, s3, t;

n=0;

t=100;

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

while(t<=__1__){

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

s1=t%10; s2=(__2__)%10; s3=t/100;

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

if(s1+s2+s3==__3__)

{ printf(\\

(1)999 (2)t/10 (3)x

解析:while循环语句; 数值n各个位的表示方法; if语句条件表达式。

填空1:题目要求找出100~999之间符合要求的数,所以while语句的循环条件是t<= 999。

填空2:变量s2存放三位数的十位,取出三位数十位数值的方法为s2= (t/10)%10。

填空3:题目需要判断各位上数字之和是否为x,所以if语句条件表达式是s1+s2+s3==x。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为7654321时,t中的数为642。

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

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

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

#include

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

void fun (long s, long t)

{ long sl=10;

s /= 10;

*t = s % 10;

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

while (s < 0)

{ s = s/100;

*t = s%10*sl+*t;

sl = sl * 10;

}

}

void main( )

{ long s, t;

printf(\\

(1)void fun(long s;long *t)

(2)while(s>0)

解析:函数定义,指针型变量作函数参数; while循环语句。

函数的形参类型应与实参类型相同,主函数中函数fun( )的调用方式说明其参数应为指针类型,所以形参应定义为long *t。while循环的功能是,每循环一次就从s中的数上取出一位进行运算,直到取完为止,所以循环条件为s>0。

程序设计题

3.使VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。

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

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

#include

#define N 16

typedef struct

{ char num[10];

int s;

} STREC;

void fun(STREC a[])

{

}

void main( )

{ STREC s[N]={{\\

void fun(STREC a[])

{

int i;j;

STREC t

for(i=1;i<N;i++) /*用冒泡法进行排序,进行N-1次比较*/

for(j=0;j<N-1;j++) /*在每一次比较中要进行N-1次两两比较*/

if(a[j].s<a[j+1].s)

{t=a[j];a[j]=a[i+1];a[j+1]=t;} /*按分数的高低排列学生的记录,高分在前*/

}

解析:排序算法;结构体类型。

对N个数进行排序的算法很多,其中最简单的排序算法是冒泡算法。利用双层for循环嵌套和一个if判断语句来实现,外层循环用来控制需比较的轮数,内层循环用来控制两两比较。

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号