国家二级C++机试(操作题)模拟试卷565
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为:
Hello
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构, 错误的语句在//******error********的下面。
1 #include<iostream.h>
2 void main()
3 {
4 //********error********
5 typedef BOOL bool;
6 //********error********
7 BOOL a=FALSE;
8 int i=0X80000000;
9 //********error********
10 a=!i;
11 if(a)
12 {
13 cout<<’’Hello’’<<end1;
14 }
15 return;
16 }
(1)typedef bool BOOL;
(2)BOOL a=false;
(3)a=(i!=0);
解析:程序要求输出Hello。本题程序中不存在复杂的结构,从已定源程序的main主函数依次处理错误提示下的语句即可。
(1)第1个标识下的“typedef BOOLbool:”。typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。一般形式应该是:typedef标准数据类型新的数据类型名,所以第1个标识下应该是“typedef bool BOOL;”。
(2)C++中逻辑假的值应该是false而不是FALSE,所以这里修改为“BOOL a=false;”。
(3)题目要求输出Hello,它要在“if(a)”为真的时候输出“Hello”。i的值为0X80000000,第3个标识下a=!i;语句中a的值为假。i!=0为真,所以修改为“a=(i!=0);”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.qpp。阅读下列函数说明和C代码,完成空出部分的程序,实现函数fun(char*s1,char*s2)将字符串s2连接在字符串s1之后,构成一个首指针为s1的字符串。
注意:不能修改函数的其他部分。
1 #include<iostream.h>
2 #define MAXLINE 1000
3 void fun(char *s1,char *s2)
4 {
5
6 }
7 void main()
8 {
9 char s1[MAXLINE];
10 char s2[256];
11 cout<<’’please input a string:’’<<end1;
12 cin.getline(s1,MAXLINE);
13 cout<<’’please input other string:’’<<end1;
14 cin.getline(s2,256);
15 fun(s1,s2),
16 cout<<s1<<end1;
17 return;
18 }
1 int i=0;
2 for(i=0;s1[i]!=0;i++);//指向第一个串尾
3 for(int j=0;s2[j]!=0; j++) //利用循环将第二个串拷贝到第一个串尾
4 {
5 s1[i++]=s2[j];
6 }
7 s1[i]=0; //加尾符
解析:(1)该程序功能是将字符串s2连接在字符串s1之后。它的解题思路,首先指向字符串s1的尾,然后将第二个字符串s2的内容依次拷贝到第一个串的尾。
(2)从已给部分源程序的main主函数开始入手,核心函数void fun(char*s1,char*s2)中的s1和s2为要连接的字符串。
(3)首先利用循环指向第一个串尾。
(4)然后利用for循环将第二个串连接到第一个串尾。
(5)最后在新生成的串尾加尾符号。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数的定义,请在注释//********1********后添加适当的语句。
(2)定义类的友元函数fun(),请在注释//********2********后添加适当的语句。
(3)定义类的友元函数main(),请在注释//********3********后添加适当的语句。
(4)补充语句,释放内存。请在注释//********4********后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1 #include<iostream.h>
2 class TestClass
3 {
4 public:
5 //********1********
6
7 {
8 data=d;
9 next=NULL;
10 }
11 void SetNext(TestClass* p)
12 {
13 next=p;
14 }
15 private:
16 int data;
17 TestClass* next;
18 //********2********
19
20 //********3********
21
22 };
23 TestClass* fun(TestClass* h)
24 {
25 TestClass *t,*s,*u,*v;
26 s=h一>next;
27 h->next=NULL;
28 while(s!=NULL)
29 {
30 for(t=s,v=h;v!=NULL&&v->data<t->data;u=v,v=v一>next);
31 s=s一>next;
32 if(v==h)
33 h=t;
34 else
35 u->next=v;
36 t一>next=v;
37 }
38 return h;
39 }
40 void main()
41 {
42 TestClass* h=NULL;
43 TestClass* q=NULL,
本文档预览:3600字符,共5080字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载