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

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

1、国家二级 C语言机试(操作题)模拟试卷 31及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:计算出形参 S所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。 例如,形参 S所指的字符串为: This is a C languageprogram,函数的返回值为6。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include int fun(char *s) int n=0, flag=0; while(*s!= 0)

2、 if(*s!= flag=0) /*found*/ _1_; flag=1; /*found*/ if(*s=)flag=_2_; /*found*/ _3_ ; return n; main() char str81; int n; printf(“ nEnter a line text: n”); gets(str); n=fun(str); printf(“ nThere are d words in this text n n”, n); 二、程序修改题 2 给定程序 MODII C中函数 fun的功能是:应用递归算法求形参 a的平方根。求平方根的迭代公式如下: 例如, a为 2时,

3、平方根值为:1 414214。 请改正程序中的错误,使它 能得出正确结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。#include#include/*found*/double fun(double a, dounle x0)double x1, y; x1=(x0+a x0) 2 0; /*found*/ if(fabs(x1-xo)0 00001) y=fun(a, x1); else y=x1; return Y; main()double x; printf(“Enter x: ”); scanf(“ 1f”, x); printf (“The squar

4、e root of 1fis 1fn”,x, fun(x, 1 0); 三、程序设计题 3 请编写函数 fun,函数的功能是:将 M行 N列的二维数组中的数据,按列的顺序依次放到一维数组中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include void fun(int s10, int b,

5、 int *n, int mm, int nn) msin() int w1010=33, 33, 33, 33, 4 4, 44, 44, 44), 55, 55, 55, 55), i, j; int a100=0), n=0; void NONO(); printf(“The matrix: n”); for(i=0; i0 00001) 【试题解析】 函数的功能是应用递归算法求某数 a的平方根。 (1)主函数中 “fun(x, 1 0)”, x是 double型变量, 1 0是浮点数,可知 fun有两个 double型参数,而第一标识下 “dounle”不是 C语言关键字,所以应将 “

6、double fun(doublea, dounle x0)”改为 “double fun(double a,double x0)”。 (2)第二个标识下的 if语句是判断进行递归运算的条件,第二标识下变量 x0没有定义,根据题意,这里是判断 x1和 x0的差值的绝对值是否比 0 00001大,所以第二个标识下 “if(fabs(x1-xo)0 00001)”改为 “if(Ihbs(x1一 x0)0 00001)”。 三、程序设计题 3 【正确答案】 int i, j ; for(j=0; jnn; j+) for(i=0; imm; i+) b*n=*(*(s+i)+j); *n=*n+1; 【试题解析】 该程序功能是将 M行、 N列的二维数组中的数据,按列的顺序依次放到一维数组中。本题中首先要清楚数组元素在通常情况下是按行存放的,而如果要实现按列存放,其对应关系应为: s00, s10, s20, , sM一10, s01, s11, , sM1N一 1。 解题思路 (1)利用两重循环,依次取矩阵中的元素。 (2)其中 注意指针数组与数组指针的区别,其中数组指针 s,它指向包含 4个元素的一维数组。其数据元素的表示方式为: “*(*(s+i)+i)”。

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

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

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