国家二级C++机试(操作题)模拟试卷582
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
150
200
注意:错误的语句在//******error******的下面,修改该语句即可。提示:定义Number1为一个整型数据位长的变量。
1 #include<iostream.h>
2 //******error******
3 struct
4 {
5 //******error******
6 int Number1:1;
7 int Number2;
8 } MyStruct;
9 void main()
10 {
11 MyStruct mstr;
12 mstr.Number1=150;
13 mstr.Number2=15;
14 //******error******
15 int *ptr=&mstr.Number1;
16 cout<<*ptr<<end1;
17 *ptr=200;
18 cout<<*ptr<<end1;
19 }
(1)typedef struct
(2)int Number1:32;或int Number1;
(3)int*ptr=(int*)& mstr;
解析:结构体MyStruct有两个成员变量Number1和Number2,主函数中定义结构变量mstr,并通过指针改变变量mstr内Number1的值。
(1)第1标识下是定义结构体,结构体定义的一般形式为:
struct<结构体名>
{
<成员列表>
}<变量名列表>:
程序当中定义结构体名放在后面,MyStruct为结构体变量类型,相当于typedef为已有的类型定义一个新的类型,第1个标识下应改为“typedefstruct”。
(2)第2标识下是定义Number1为一个整型数据变量,整型数据位数为32(4字节),因此第2个标识下应改成“int Number1:32;”或“int Number1:”。
(3)ptr为整型数据指针,mstr为MyStruct类型结构变量,两者类型不一致应该做强制类型转换,第3个标识下应改成“int*ptr=(int*)&mstr;”,表示将mstr的地址给ptr,ptr指向MyStruct的第一个域Number1,Number1也是整形,类型一致,故可通过ptr指针来改变Number1的值。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.epp。阅读下列函数说明和代码,补充空出的代码。函数IsPalindromes(cha*string)实现的功能是判定给定的字符串是否构成回文字符串,如果是则返回1,否则返回0。
如:1234554321或者1234321都认为是回文字符串。
如果串为空或一个字母时,均认为是回文字符串。
注意:不能修改程序的其他部分,只能补充IsPalindromes()函数。
1 #include<iostream.h>
2 #define MAXLEN 1024
3 bool IsPalindromes(char*string)
4 {
5
6 }
7 void main()
8 {
9 char str[MAXLEN];
10 cout<<’’请输入一行文字’’<<end1;
11 cin.getline(str,MAXLEN);
12 cout<<ISPalindromes(str)<<end1;
13 return;
14 }
1 int len=0;
2 for(;string[len]!=NULL;len++)//获取字符串的长度
3 ;
4 len–; //下标从0开始到len-1
5 for(int i=0;i<len;i++,fen–)//第一个和最后一个比较,第二个和倒数第二个比较
6 {
7 if( string[i] != string[len])//不等说明不同,返回0
8 return 0;
9 }
10 return 1;
解析:函数IsPalindromes(cha*string)实现的功能是判定给定的字符串是否构成回文字符串,如果是则返回1,否则返回0。回文是指前后对称的字符串,因此可比较对称位置的字符是否一样来判断是否是回文,如果每个对称位置的元素均相同则是回文,返回1,否则返回0。
(1)由于字符串的长度是未知的,先利用循环求出字符串的长度,循环变量从0开始,直到数组的结束,string[len]=NUL为循环结束条件,如此便得到了数组的长度len。
(2)知道长度后就可以判断对称位置的元素是否相同,比如第一个元素和最后一个元素,第二个元素和倒数第二个元素,如此比较下去直到到了最中间的元素为止。
(3)可以利用循环来比较是否对称,设置另一个循环变量i,i从0开始表示从数组的头开始读数,len从数组的尾部开始读数,如果string[i]!=string[len],则跳出循环返回0,如果循环结束还没发现不同则返回1。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示人基本信息的类CHumanInfo,但类CHumanInfo的定义并不完整。请按要求完成下列操作,将类CHunmnInfo的定义补充完成:
(1)定义私有数据成员bloodType用于表示血型, 型为char型的数据。请在注释“//********1********之后添加适当的语句。
(2)完成构造函数的定义,要求具有缺省值,缺省值为身高175,体重70,血型A。请在注释“//********2********之后添加适当的语句。
(3)完成类外CHumanlnfo成员函数Setlnfo的定义。请在注释“//********3********”之后添加适当的语句。
(4)在主函数中调用成员函数Setlnfo,把对象d2的三个私有数据成员分别设定为身高170,体重64,血型为B。请在注释“//********4********”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1 #include<iostream.h>
2 class CHumanInfo
3 {
4 private:
5 int height;
6 int weight;
7 //********1********
8
9 public:
10 //********2********
11
12 :
本文档预览:3600字符,共5714字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载