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

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

1、国家二级 C语言机试(操作题)模拟试卷 573及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:将形参 n所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针 n传回所指变量。 例如,若输入一个数 27638496,则新数为 739。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h void fun(unsigned long*n) unsigned long x=0, i; int t; i

2、=1; while(*n) *found* t=*n 【 1】 ; *found* if(t 2 1=【 2】 ) x=x+t*i; i=i*10; ) *n=*n 10; *found* *n=【 3】 ; main() unsigned long n=一 1; while(n 99999 999|n 0) printf(“Please input(0 n 100000 000): “); scanf(“ ld“, n); fun(&n); printf(“nThe result is: ldn“, n); 二、程序修改题 2 下列给定程序中函数 fun的功能是:计算 n!。 例如,给 n输

3、入 5,则输出 120 000000。 请改正程序中 的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include conio h double fun(int 13) double result=1 0; *found* if n=0 return 1 0; while(n 1 & n 170) *found* result=n一一; return result; main() int n; printf(“Input N: “); scanf(“ d“, &n); printf(“n

4、n dt: lf n n“, n, fun(n); 三、程序设计题 3 请编写函数 fun,其功能是:将一个数字字符串转换为一个整数 (不得调用 C语言提供的将字符串转换为整数的函数 )。例如,若输入字符串 “一 1234”,则函数把它转换为整数值一 1234。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #include string h long fun(char*p) void main() char s6; long n; printf(“Enter a st

5、ring: n“); gets(s); n=fun(s); printf(“ ld n“, n); 国家二级 C语言机试(操作题)模拟试卷 573答案 与解析 一、程序填空题 1 【正确答案】 (1)10 (2)0 (3)x 【试题解析】 填空 1:通过 t对 10求余,取出该数值的各个位。 填空 2:通过 if条件语句实现奇偶数的判定。如果条件表达式对 2求余为 O即为偶数,反之则为奇数。 填空 3:最后将剩余的数赋给 n所指向的元素。 二、程序修改题 2 【正确答案】 (1)if(n=0) (2)result*=n一一;或 result*=n; n一一; 【试题解析】 (1)这里是一个简单

6、的格式错误, if条件判断语句应该加括号。 (2)根据阶乘的概念,从 n开始, n!=n*(n一 1)!,直到 1,所以应该为 result*=n一一;。 三、程序设计题 3 【正确答案】 long fun(char*p) 10ng n=0; int flag=1; if(*p=一 ) *负数时置 flag为一 1* p+; flag=一 1; ) else if(*p=+) *正数时置 flag为 1* p+; while(*p!= 0) n=n*10+*p一 0; *将字符串转成相应的整数 * p+; return n* flag; 【试题解析】 if语句的作用是判断该字符串为正数还是负数, while循环的作用是将字符串转成相应的整数。 注意: *p是一个字符 (例如 9、 4),并不是一个数,要将其转成相应的数字需令其减去 0(不是 0),即 *p一 0就得到 *p这个字符的相应数字,例如 0一 0=0、8一 0=8等。必须在程序的前面加 #include stdlib h,函数 awl的作用是将字符串转换成长整型数,它是一个库函数。

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

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

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