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

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

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

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

程序填空题

1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student. dat文件中。函数fun的功能是:从文件中找出指定学号的学生数据,读入此学生数据,对该学生的分数进行修改,使每门课的分数加3分,修改后重写文件中学生的数据,即用该学生的新数据覆盖原数据,其它学生数据指定不变;若找不到,则不做任何操作。

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

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

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

#include

#define N 5

typedef struct student {

long sno;

char name[10];

float score[3];

} STU;

void fun(char *filename, long sno)

{ FILE *fp;

STU n; int i;

fp = fopen(filename,\\

(1)fp (2)== (3)fp

解析:文件结束检测函数feof; if语句条件表达式: fseek函数 。

填空1:while循环语句的循环条件是判断文件是否结束,配合feof函数来完成,其一般形式为: feof(文件指针)。

填空2:根据题目要求确定if语句条件表达式的内容,满足条件后跳出循环。

填空3:文件定位函数fseek( ),调用形式; fseek(文件指针,位移量,起始点);,此处文件指针是fp。

程序修改题

2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:用插入排序法对字符串中的字符进行升序排列。插入法的基本算法是:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,….。待排序的字符串已在主函数中赋予。

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

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

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

#include

#include

#define N 80

void insert(char *aa)

{ int i,j,n; char ch;

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

n=strlen[ aa ];

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

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

c=aa[i];

j=i-1;

while ((j>=0) && ( ch<aa[j] ))

{ aa[j+1]=aa[j];

j–;

}

aa[j+1]=ch;

}

}

void main( )

{ char a[N]=\\

(1)n=strlen(aa);

(2)ch=aa[i];

解析:插入排序法; strlen函数的使用。

插入排序算法:先对字符串中的前两个元素进行排序,然后第三个元素插入到前两个元素中,三个元素依然有序,依次类推,完成排序。

(1)此处考查strlen函数的格式,应改为strlen(aa)。

(2)程序中并没有定义变量c,该语句的作用是将元素a[i]的值赋给中间变量ch,以与其他元素进行比较并交换,所以应改为ch= a[i]。

程序设计题

3.使VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,N名学生的成绩已在主函数中放入一个带有头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:找出学生的最高分,并由函数值返回。

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

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

#include

#include

#define N 8

struct slist

{ double s;

struct slist *next;

};

typedef struct slist STREC;

double fun( STREC *h )

{

}

STREC * creat( double *s)

{ STREC *h,*p,*q; int i=0;

h=p=(STREC*)malloc(sizeof(STREC));p->s=0;

while(i<N)

{ q=(STREC*)malloc(sizeof(STREC));

q->s=s[i]; i++; p->next=q; p=q;

}

p->next=0;

return h;

}

void outlist( STREC *h)

{ STREC *p;

p=h->next; printf(\\

double fun(STREC *h)

{

double max =h->s;

while(h!=NULL) /*通过循环找到最高分数*/

{

if(max<h->s) max=h->s;

h=h->next;

}

return max;

}

解析:本题考查:结构体类型;指针型变量;链表的相关知识。本题使用循环语句遍历链表中的每个结点,用判断语句比较结点数据的域大小。注意,h是一个指向结构体类型的指针变量,若要引用它所指向的结构体中的某一成员时,要用指向运算符\\

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号