【计算机类职业资格】二级C语言机试303及答案解析.doc

上传人:outsidejudge265 文档编号:1325826 上传时间:2019-10-17 格式:DOC 页数:3 大小:32KB
下载 相关 举报
【计算机类职业资格】二级C语言机试303及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】二级C语言机试303及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】二级C语言机试303及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C 语言机试 303 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:先以只写方式打开文件“out99.dat”,再把字符串 str 中的字符保存到这个磁盘文件中。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: #include “stdio. h“ #include “conio.h“ #define N 80 main () FILE *fp; int i=0; char ch; ch

2、ar strN=“Im a student!“; clrscr(); if ( (fp=fopen (U 【1】 /U) ) =NULL) printf(“cannot open out99. dat/n“); exit(0); while (stri) ch=stri; U【2】 /U; putchar(ch); i+; U 【3】 /U; (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是;计算函数 F(x, y ,z)=(x+ y)/(x-y)+(z+ y)/(z-y)的值。其中 x 和 y 不相等,z 和 y

3、不等。例如,当 x 的值为 9,y 的值为 11,2 的值为 15 时,函数值为-3.50。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdio. h #include math. h /*found*/ #define FU(m, n) (m/n) float fun(float a, float b, float c) float value; value=FU(a+ b, a-b)+FU(c+ b, c-b); /*found*/ return(Value); main() floa

4、t x, y, z, sum; printf (“Input x y z: “); scanf(“%f%f%f“, printf(“x=%f, y=%f, z=%f/n “,x, y, z); if (x=yy=z) printf (“Data error! /n “); exit (0); sum=fun (x, y, z); printf(“The result is:%5. 2f/n “,sum); (分数:30.00)填空项 1:_三、B编程题/B(总题数:1,分数:40.00)3.请编写一个函数 unsigned fun (unsigned w),w 是一个大于 10 的无符号整数,

5、若 w 是 n(n2)位的整数,则函数求出 w 的后 n-1 位的数作为函数值返回。 例如:w 值为 5923,则函数返回 923;若 w 值为923,则函数返回 23。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includeconio. h #includestdio. h unsigned fun(unsigned w) main() unsigned x; clrscr (); printf(“Enter a unsigned integer number: “); scanf (“%

6、u“, printf(“The original data is:%u/n“,x); if (x10) printf (“Data error! “); else printf (“The result :%u/n“, fun(x) ); (分数:40.00)_二级 C 语言机试 303 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:先以只写方式打开文件“out99.dat”,再把字符串 str 中的字符保存到这个磁盘文件中。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任

7、何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: #include “stdio. h“ #include “conio.h“ #define N 80 main () FILE *fp; int i=0; char ch; char strN=“Im a student!“; clrscr(); if ( (fp=fopen (U 【1】 /U) ) =NULL) printf(“cannot open out99. dat/n“); exit(0); while (stri) ch=stri; U【2】 /U; putchar(ch); i+; U 【3】 /

8、U; (分数:30.00)填空项 1:_ (正确答案:1“out99.dat”,“w” 2 fpnte (ch,fp) 3 fclose (fp))解析:解析 填空 1:本题考查对文件操作的掌握。打开一个文件的调用方式是,fp=fopen (文件名,使用文件方式);,题目要求以只写的方式打开文件“out 99.dat”,所以文件使用方式为“w”。填空2;fputc ()函数用于将一个字符写到磁盘文件上去,调用形式为:fputc (要输出的字符,文件指针)。填空 3:对一个文件进行操作后,应该关闭它,以防它再被误用。调用形式为:fclose (文件指针);。二、B改错题/B(总题数:1,分数:3

9、0.00)2.下列给定程序中,函数 fun()的功能是;计算函数 F(x, y ,z)=(x+ y)/(x-y)+(z+ y)/(z-y)的值。其中 x 和 y 不相等,z 和 y 不等。例如,当 x 的值为 9,y 的值为 11,2 的值为 15 时,函数值为-3.50。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdio. h #include math. h /*found*/ #define FU(m, n) (m/n) float fun(float a, float b, fl

10、oat c) float value; value=FU(a+ b, a-b)+FU(c+ b, c-b); /*found*/ return(Value); main() float x, y, z, sum; printf (“Input x y z: “); scanf(“%f%f%f“, printf(“x=%f, y=%f, z=%f/n “,x, y, z); if (x=yy=z) printf (“Data error! /n “); exit (0); sum=fun (x, y, z); printf(“The result is:%5. 2f/n “,sum); (分数:

11、30.00)填空项 1:_ (正确答案:(1)错误;#define FU(m, n) (m/n) 正确:#define FU(m,n) (m)/(n))解析:(2)错误:return (Value); 正确:return (value); 解析 如果从数学思想来说,这是一道简单的小学数学题,当然,用 C 语言的别的办法实现的话,也用不了三两句的程序,但是,这道题的考查点在 C 语言的宏定义上(这样的问题比较隐蔽),它的格式为#define 标识符 字符串,中间要用空格分开,在该题中,标识符为 FU (m, n),而字符串则是(m/n),由题干信息易知,应该是# define FU(m,n) (

12、m)/(n)。三、B编程题/B(总题数:1,分数:40.00)3.请编写一个函数 unsigned fun (unsigned w),w 是一个大于 10 的无符号整数,若 w 是 n(n2)位的整数,则函数求出 w 的后 n-1 位的数作为函数值返回。 例如:w 值为 5923,则函数返回 923;若 w 值为923,则函数返回 23。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includeconio. h #includestdio. h unsigned fun(unsigned w)

13、 main() unsigned x; clrscr (); printf(“Enter a unsigned integer number: “); scanf (“%u“, printf(“The original data is:%u/n“,x); if (x10) printf (“Data error! “); else printf (“The result :%u/n“, fun(x) ); (分数:40.00)_正确答案:()解析:unsigned fun (unsigned w) if(w=10000) return w%10000; /*求出 n 位整数 w 的后 n-1 位的数*/ if(w=1000) return w%1000; if(w=100) return w%100; if(w=10) return w%10; 解析 我们首先应该明白无符号整数的定义形式,若它大于 10000(5 位)时,将 10000 对它求余则结果为后 4 位;当它大于 1000(4 位)时,将 1000 对它求余则结果为后 3 位,花此类推。特别注意这里所有 if()的顺序不能颠倒。

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

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

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