ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:33.50KB ,
资源ID:498321      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-498321.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言机试(操作题)模拟试卷378及答案与解析.doc)为本站会员(dealItalian200)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C语言机试(操作题)模拟试卷378及答案与解析.doc

1、国家二级 C语言机试(操作题)模拟试卷 378及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为: 10、 4、 2、 8、 6,排序后链表结点数据域从头至尾的数据为: 2、 4、 6、 8、 10。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include stdlib h 3 #define N 6 4 typedef

2、 struct node 5 int data; 6 struct node *next; 7 NODE; 8 void fun(NODE *h) 9 NODE *p, *q; int t; 10 *found* 11 p=_1_; 12 while(p) 13 *found* 14 q=_2_; 15 while(q) 16 *found* 17 if(p- data_3_q- data) 18 t=p- data; p- data=q- data; q- data=t; 19 q=q- next; 20 21 p=p- next; 22 23 24 NODE *creatlist(int

3、a) 25 NODE *h, *p, *q; int i; 26 h=(NODE *)malloc(sizeof(NODE); 27 h- next=NULL; 28 for(i=0; i N; i+) 29 q=(NODE *)malloc(sizeof(NODE); 30 q- data=ai; 31 q- next=NULL; 32 if(h- next=NULL)h- next=p=q; 33 elsep- next=q; p=q; 34 35 return h; 36 37 void outlist(NODE *h) 38 NODE *p; 39 p=h- next; 40 if(p

4、=NULL)printf(The list is NULL! n); 41 else 42 printf( nHead); 43 do 44 printf(- d, p- data); p=p- next; 45 while(p!=NULL); 46 printf(- End n); 47 48 49 main() 50 NODE *head; 51 int aN=0, 10, 4, 2, 8, 6; 52 head=creatlist(a); 53 printf( nThe original list: n); 54 outlist(head); 55 fun(head); 56 print

5、f( nThe list after sorting: n); 57 outlist(head); 58 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:为一个偶数寻 找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 ! 1 #include stdio h 2 #include math h 3 void fun(int a, int *b, int *c) 4 int i, j, d, y; 5 for(i=3; i =

6、a 2; i=i+2) 6 *found* 7 y=1; 8 for(j=2; j =sqrt(double)i); j+) 9 if(i j=0)y=0; 10 if(y=1) 11 *found* 12 d=a-i; 13 for(j=2; j =sqrt(double)d); j+) 14 if(d j=0)y=0; 15 if(y=1) 16 *b=i; *c=d; 17 18 19 20 main() 21 int a, b, c; 22 do 23 printf( nInput a: ); scanf( d, a); 24 while(a 2); 25 fun(a, b, c);

7、26 printf( n n d= d+ d n, a, b, c); 27 三、程序设计题 3 学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组 s中,请编写函数 fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置 -1,作为函数值返回。 (用于字符串比较的函数是 strcmp)。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #include string

8、 h 3 #define N 16 4 typedef struct 5 char num10; 6 int s; 7 STREC; 8 STREC fun(STREC *a, char *b) 9 10 11 12 main() 13 STREC sN=GA005, 85, GA003, 76, GA002, 69, A004,85, GA001, 91, GA007, 72, GA008, 64, GA006, 87,GA015, 85, GA013, 91, GA012, 64, GA014, 91, GA011,77, GA017, 64, (GA018, 64, GA016, 72;

9、 14 STREC h; 15 char m10; 16 int i; FILE *out; 17 printf(The original data: n); 18 for(2=0; i N; i+) 19 if(i 4=0) printf( n); 20 printf( s 3d, si num, si s); 21 22 printf( n nEnter the number: ); gets(m); 23 h=fun(s, m); 24 printf(The data: ); 25 printf( n s 4d n, h num, h s); 26 printf( n); 27 out=

10、fopen(out dat, w); 28 h=funs, GA013; 29 fprintf(out, 4d n, h num, h s); 30 fclose(out); 31 国家二级 C语言机试(操作题)模拟试卷 378答案与解析 一、程序填空题 1 【正确答案】 (1)h- next (2)p- next (3) = 【试题解析】 函数 fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序,在 fun函数内采用的是选择法排序。 第一空: 由审题分析可知, q从 h的下一个元素开始寻找最小值,故第一空为“h- next”。 第二空:由审题分析可知, while循环是在剩下的

11、元素当中找最小值,剩下的结点是由 q指向的链表, q从 p的后一个结点开始,故第二空处应为 “p- next”。 第三空: “if(p- data_3_q- data)”是比较 p结点和 q结点数据的大小,如果p结点的数据比 q结点的数据大,那么应该将 p结点和 q结点的数据进行交换,故第三空处应为 “ =”。 二、程序修改题 2 【正确答案】 (1)y=1; (2)d=a-i; 【试题解析】 函数的功能是为一个偶数查找两个素数,这两个素数之和等于该偶数。 (1)第一标识下 “Y=1; ”变量 Y没有定义,编译时会提示出错。题中用标志 y区别 i是否是素数, y=1是素数, y=0不是素数。第

12、一个标识下当 i是素数时, y最后的值就是进入循环结构前的初始化值 0,标识该值不是素数,所以 “Y=1; ”应该改为 “y=1; ”。 (2)在语句 “if(v=1)”中,应该是判断 (a-i)是否是素数,即 d应赋值 “a-i”而不是“d=a-i; ”,所以第二个标识下 “d=a-i; ”,改为 “d=a-i; ”。 三、程序设计题 3 【正确答案】 1 STREC c; 2 int i; 3 c num0= 0; *置初始空串 * 4 c s=-1; *置成绩为 -1* 5 for(i=0; i N; i+) 6 if(strcmp(ai num, b)=0) *判断学号是否相等 * 7 strcpy(c num, ai num); *相等,则对学号进行赋值 * 8 c s=ai s; *相等,则对成绩进行赋值 * 9 break; *退出循环体 * 10 11 return c; *返回结构体变量 * 【试题解析】 该程序功能是函数返回指定学号的学生数据,指定的学号在主函数中输入。解题思路是在循环过程中,使用 if判断表达式,将输入的学号与所有的学号进行比较,如果找到该学号,将其赋值到指定变量,否则将空格赋值到指定变量,表明没有查找到该学号。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1