1、国家二级 C+机试(操作题)模拟试卷 378及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 100 37 32 注意:错误的语句在 *error*的下面,修改该语句即可。 #include *error* void main( *error* int m=0142; *error* int n=0X27; int q=32; cout int fun(char*data) Void msin() char str1024; cout Class CHumanInfo private:
2、int height; int weight; *1* public: *2* : height(ht), weight(wt), bloodType(bt); CHumanlnfo(CHumanInfo&hi): height(h1 height), weight(h1 weight), bloodType(h1 bloodType); int GetHeight() return height; int GetWeight() return welght; int GetBloodType() return bloodType; void SetInfo(int ht, int wt, c
3、har bt); void Di splay(); ; *3* height=ht; weight=wt; bloodType=bt; void CHumanInfo: Display() cout“HumanInfo: ”; coutheight“cm, ” weight“Kg, BloodType” bloodTypeendl ; void main() CHumanInfo h1(169, 61, A); CHumanInfo h2; CHumanInfo h3(h1); CHumanInfo h4(h2); *4* h1 Display(); h2 misplay(); h3 Disp
4、lay(); h4 Display(); 国家二级 C+机试(操作题)模拟试卷 378答案与解析 一、基本操作题 1 【正确答案】 (1)void msin() (2)int m=0144; (3)int n=025; 或 int n=025; 【试题解析】 主函数 main()中,定义了三个变量,分别赋初值为八进制、十六进制和十进制数,并利用 cout输出。 二、简单应用题 2 【正确答案】 int MinPos=0; 初始化最小 值位置 if(data=NULL) 判断输入字 符串是否为空 return一 1; char MinData=data0;设置字符 串第一个字符为最小值 if(M
5、inData=0) 判断第一个 字符是否存在 return一 1; for(int i=1; datai!=0; i+) if(datai=MinData) MinData=datai; 逐个判断每个字母是否小于标记字符 MinPos=i; 最小值 位置 ) return MinPos; 【试题解析】 (1)该程序功能是找出字符串数组中最小的 ASC 值。它的解题思路,用最小值变量标记第一个待找字符,把所有待找字符和标记字符逐个进行比较,并标记其当前最小值及其所在位置,从而找出最小值。 (2)从己给部分源程序的 main主函数开始入手,核心函数 int fun(char*data)中的data
6、参数为输入的字符串数组,其中 MinPos为最小值位置。 三、综合应用题 3 【正确答案】 (1)添加语句: char bloodType; (2)添加语句: CHumanInfo(int ht=175, int wt=7 0, char bt: A) (3)添加语句: void CHumanInfo: SetInfo(int ht, int wt, char bt) (4)添加语句: h2 SetInfo(170, 64, B); 【试题解析】 类 CHumanlnfo有 3个成员变量:用于表 示血型的 bloodType、表示身高的 height和表体重的 weight,成员函数 GetHeight()返回 height值,GetWeight()返回 weight值, GetBloodType()返回 bllodType值, Setlnfo(int ht,int wt, char bt)可改变 bloodType、 height和 weight值,成员函数 Display()在屏幕上打印三个成员变量值。