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