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

上传人:tireattitude366 文档编号:498660 上传时间:2018-11-29 格式:DOC 页数:5 大小:28.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷683及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷683及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷683及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷683及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷683及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 683及答案与解析 一、程序填空题 1 给定程序的主函数中,已给出由结构体构成的链表结点 a、 b、 c,各结点的数据域中均存入字符,函数 fun()的作用是:将 a、 b、 c三个结点链接成一个单向链表,并输出链表结点中的数据。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h typedef struer list char data; struet list*next; Q; void fun(Q*pa, Q*pb, Q*pc) Q*

2、p; *found* pa- next=_1_; pb- next=pc; p=pa; while(p) *found* pfinff(“ c“, _2_); *found* p=_3_; pfinff(“ n“); main() Q a, b, c; a data=E; b data=F; c data=G; c next=NULL; fun(&a, &b, &c); 二、程序修改题 2 下列给定程序中,函数 fun的功能是:计算整数 n的阶乘。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include

3、stdlib h #include stdio h double fun(int n) double result=1 0; while(n 1&n 170) *found* result*=-n: *found* return; void main() int n; printf(“Enterallinteger: “); scanf(“ d“, &n); printf(“ n d!= lg n“, n, fun(n); 三、程序设计题 3 编写函数 fun,其功能是:将两个两位数的正整数 a、 b合并成一个整数放在 c中。合并的方式是:将 a数的十位和个位数依次放在 e数的十位和千位上,

4、b数的十位和个位数依次放在 c数的百位和个位上。 例如,当 a=45, b=12时,调用该函数后 , e=5142。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h void fun(int a, int b, long*c) main() int a, b; long c; void NONO(); printf(“Input a, b: “); scanf(“ d d“, &a, &b); fun(a, b, &c); printf(“The result is: d n“, c); NO

5、NO(); void NONO() *本函数用于打开文件,输入数据, 调用函数,输出数据,关闭文件。 * FILE*rf, *wf; int i, a, b; long c; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i 10; i+) fscanf(rf, “ d, d“, &a, &b); fun(a, b, &c); fprintf(wf, “a= d, b= d, c= ld n“, a, b, c); fclose(rf); felose(wf); 国家二级 C语言机试(操作题)模拟试卷 683答案与解析

6、一、程序填空题 1 【正确答案】 (1)pb (2)p- data (3)p- next 【试题解析】 填空 1:将三个结点连接起来,即将 pa的指针域指向 pb, pb的指针域指向 pc。 填空 2:输出链表结点中的数据,表示为 p- data。 填空 3:指针后移,指向下一个结点,即 p=p- next。 二、程序修改题 2 【正确答案】 (1)result*=n-; (2)return result; 【试题解析】 本题考查:复合赋值运算;通 过 return语句完成函数值的返回。 该题采用循环语句计算 n的阶乘。当 n大于 1且小于 170时,令 result与 n相乘,同时 n自动减

7、 1,循环至 n=2(n=1时无须相乘 )。最后将阶乘的积 result返回给主函数。 三、程序设计题 3 【正确答案】 void fun(int a, int b, long*c) *c=b 10+(a 10)*10+(b 10)*100+(a 10)*1000; 【试题解析】 本题考查:如何取出数值 n的各个位;知道数值 n的各个位,又如何表示该数值;指针型变量的使用。 本题中主要的问题是如何取出 a和 b的个位数和十位数,取出后如何表示成 c中相应的位数。由于 a和 b都是只有两位的整数,所以分别对它们除 10可得到它们的十位数,分别用 10对它们求余可得到它们的个位数。得到后对应乘以 1000、100、 10、 1就可得到 c的千位数、百位数、十位数和个位数。 注意:使用 c时要进行指针运算。知道两位数数值 n,需要表示个位和十位,采用求余和除法操作,如 n 10(取个位 )、 n 10(取十位 )。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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