【计算机类职业资格】二级C++分类模拟90及答案解析.doc

上传人:wealthynice100 文档编号:1324288 上传时间:2019-10-17 格式:DOC 页数:7 大小:77KB
下载 相关 举报
【计算机类职业资格】二级C++分类模拟90及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】二级C++分类模拟90及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】二级C++分类模拟90及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】二级C++分类模拟90及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】二级C++分类模拟90及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二级 C+分类模拟 90 及答案解析(总分:100.00,做题时间:90 分钟)一、程序改错题(总题数:1,分数:30.00)1.使用 VC6 打开 下的源程序文件 modi1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字 x1,x2(例如 x1=4,x2=2): (2)输出两个中较小的一个(例如输出 2); (3)计算 x1/x2 如果 x2 等于 0,返回-1(输出结果 2); (4)输出 x1+x2 的结果(输出结果 6); (5)输出 x1+1 的结果(输出结果 5); (6)输出

2、x2-1 的结果(输出结果 1)。 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语句在/*error*的下面。 #include iostream.h void main 1 int x1; int x2; int x3; /*error* x3 = (x1x2) ?x1 : x2; /计算 x1/x2 如果 x2 等于 0, 返回-1 /*error* x3 = (x2)? x1/x2 : -1; ; /*error* x3 = (-x1) + (x2+); ; ; (分数:30.00)二、程序填空题(总题数:1,分数:30.00)2.使用 VC6 打开 下的

3、源程序文件 modi2.cpp。请完成函数 fun(int n),求出 nn 矩阵的对角线数字的平方和。如果 n 为奇数,则对角线交叉部位数字只参与一次计算。 注意:请勿改动主函数 main 与其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。#include iostream.h #define MAX_N 10 int XXMAX_N MAX_N; int fun(int n) void main() int n; do if(n10 for(int i=0; in;i+) for(int j=0; jn;j+) (分数:30.00)_三、程序设计题(总题数:1,分数

4、:40.00)3.使用 VC6 打开 源程序文件 modi3.cpp。此程序的功能是将 out1.txt 文件中的内容输出到屏幕与文件中。输出如下: 李一 1.78m 21 王一 1.65m 23 out2.txt 文件的内容如下: 李一 1.78m 21 王一 1.65m 23 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)以输入方式打开文件 out1.txt,请在注释/*1*后添加适当的语句。 (2)以输出方式打开文件 out2.txt,请在注释/*2*后添加适当的语句。 (3)从文件中获得一个字符,判断是否结束,如果结束则退出输出。请在注释/*3*后添加适当的语句

5、。 (4)把获得的字符输出到文件中,请在注释/*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main 与其他函数中的任何内容。 #includeiostream.h #includefstream.h #includestdlib.h void main() char ch; fstream infile,outfile; /*1* infile.open(“out1.txt“); if (!infile) cout “out1. txt 文件不能打开“ endl; abort(); /*2* outfile.open(“out2.txt“); if(!outfil

6、e) cout “out2.txt 文件不能打开“ endl; abort ( ); /*3* while() cout ch; /*4* cout (分数:40.00)_二级 C+分类模拟 90 答案解析(总分:100.00,做题时间:90 分钟)一、程序改错题(总题数:1,分数:30.00)1.使用 VC6 打开 下的源程序文件 modi1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。 本程序完成以下功能: (1)获得输入的两个数字 x1,x2(例如 x1=4,x2=2): (2)输出两个中较小的一个(例如输出 2); (3)计算 x

7、1/x2 如果 x2 等于 0,返回-1(输出结果 2); (4)输出 x1+x2 的结果(输出结果 6); (5)输出 x1+1 的结果(输出结果 5); (6)输出 x2-1 的结果(输出结果 1)。 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语句在/*error*的下面。 #include iostream.h void main 1 int x1; int x2; int x3; /*error* x3 = (x1x2) ?x1 : x2; /计算 x1/x2 如果 x2 等于 0, 返回-1 /*error* x3 = (x2)? x1/x2 : -

8、1; ; /*error* x3 = (-x1) + (x2+); ; ; (分数:30.00)解析:(1)x3=(x1x2)?x1:x2; (2)x3=(x2)?x1/x2:-1; (3)x3=(x1+)+(x2-); 答案考生文件夹 解析 本题首先求输出两个数字中的最小值,然后计算两个数相除的值,然后求得第一个数与第二个数的和,最后输出“x1+1”和“x2-1”的值。解题思路主要是要从 main -|_|-主函数入手,依次完成题干中要求的各个要求。 (1)第 1 个标识下“x3=(x1x2)?x1:x2;”语句是判断 x1 与 x2 其中哪个相对较小,并将其赋值给 x3。条件运算符的格式:

9、表达式 1?表达式 2:表达式 3。执行顺序是先求解表达式 1,若非则求解表达式 3,此时表达式 3 的值就作为整个条件表达式值。所以求 x1 和 x2 中较小的一个,如果 x1x2 为真,那么 x1的值赋给 x3,否则 x2 的值赋给 x3,即第 1 个标识下为“x3=(x1x2)?x1:x2;”。 (2)同理,第 2 个标识下计算 x1/x2 如果 x2 等于 0,返回-1。即“x3=(x2)?x1/x2:-1;”。 (3)题干中求 x1+1,而-x1 是 x1-1,所以改为 x1+。同理 x2+改为 x2-。即“x3=(x1+)+(x2-);”。二、程序填空题(总题数:1,分数:30.0

10、0)2.使用 VC6 打开 下的源程序文件 modi2.cpp。请完成函数 fun(int n),求出 nn 矩阵的对角线数字的平方和。如果 n 为奇数,则对角线交叉部位数字只参与一次计算。 注意:请勿改动主函数 main 与其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。#include iostream.h #define MAX_N 10 int XXMAX_N MAX_N; int fun(int n) void main() int n; do if(n10 for(int i=0; in;i+) for(int j=0; jn;j+) (分数:30.00)_

11、正确答案:()解析:int data=0;/初始化求平方和变量 for(int i=0; in;i+) data+=XXii*XXii;/求正对角线平方和 if(i!=n-i-1) data+=XXin-i-1*XXin-i-1;/求逆对角线平方和 return data; 答案考生文件夹 解析 本题函数中的功能是输出 N 行 N 列正方阵,然后求两条对角线上各元素之平方和。其中,假设矩阵行、列分别为 i、j,那么对角线上的元素特点是主对角线上 i=j,以及逆对角线 j=n-i-1。 (1)首先初始化求平方和变量,设置求平方和的变量为 0。 (2)然后利用 for 循环求得矩阵正对角线平方和。

12、 (3)最后求得逆对角线平方和,返回平方和变量。三、程序设计题(总题数:1,分数:40.00)3.使用 VC6 打开 源程序文件 modi3.cpp。此程序的功能是将 out1.txt 文件中的内容输出到屏幕与文件中。输出如下: 李一 1.78m 21 王一 1.65m 23 out2.txt 文件的内容如下: 李一 1.78m 21 王一 1.65m 23 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)以输入方式打开文件 out1.txt,请在注释/*1*后添加适当的语句。 (2)以输出方式打开文件 out2.txt,请在注释/*2*后添加适当的语句。 (3)从文件中

13、获得一个字符,判断是否结束,如果结束则退出输出。请在注释/*3*后添加适当的语句。 (4)把获得的字符输出到文件中,请在注释/*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main 与其他函数中的任何内容。 #includeiostream.h #includefstream.h #includestdlib.h void main() char ch; fstream infile,outfile; /*1* infile.open(“out1.txt“); if (!infile) cout “out1. txt 文件不能打开“ endl; abort(); /

14、*2* outfile.open(“out2.txt“); if(!outfile) cout “out2.txt 文件不能打开“ endl; abort ( ); /*3* while() cout ch; /*4* cout (分数:40.00)_正确答案:()解析:(1)将“infile.open(“out1.txt“);”补充完整为:infile.open(“out1.txt“,ios:in); (2)将“outfile.open(“out2.txt“);” 补充完整为:outfile.open(“out2.txt“,ios:out); (3)将“while()”补充完整为:while

15、(infile.get(ch) (4)添加语句:outfile ch; 答案考生文件夹 解析 本题的功能是将 out1.txt 文件中的内容输出到屏幕与文件中。解题思路为在 VC 环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main 主函数开始入手,可以看出程序是对文件的操作。 (1)题目 1 要求“以输入方式打开文件 out1.txt”。在 C+中调用文件流的成员函数 open 的格式为,文件流类.open(“文件名“,ios:in),所以第 1 个标识下语句就该为“infile.open(“out1.txt“,ios:in);”。(2)题目 2 要求“以输出方式打开文件 out2.txt”。同理第 2 个标识下修改为“outfile.open(“out2.txt“,ios:out);”。 (3)题目 3 要求“从文件中获得一个字符,判断是否结束”。程序中的“while()”循环判断语句中缺少从文件中获得的字符,所以这里补全 while 循环判断条件,即“while(infile.get(ch)”。 (4)题目 4 要求“把获得的字符输出到文件中”。在 C+中,用流插入运算符为“ ”,所以根据题干中的要求在第四个标识下补全写入文件的流操作语句,即“outfile

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

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

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