1、国家二级 C+机试(操作题)模拟试卷 379及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错误,请改正程序中的错误。 本题的功能是:从键盘输入字符串 S,然后输出字符串 S中的字符个数。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include int main() *error* cout #define MAXLEN 1 02 4 bool IsPalindromes(char*string) void main() char strMAXLEN; cout c
2、lass CMyTime private: *1* public: CMyTime(int year, int month) *2* void di splay() char yearChar3; char monthChar3; yearChar0=(m year 1 0 0) 1 0+0; yearChar1=(m year 10)+0; monthChar0=(m month 1 0 0) 1 0+0; monthChar1 j=(m month 1 0)+0; *3* cout“Current Time ” year: “yearChar” month: ”monthCharend1;
3、 void AddMonth(int m) m month=m month一 1+m; *4* m month=m month 12+1; void AddYear(int n) m_year=m year+n: ; int main() CMyTime myTime(200 6, 11); myTime AddMonth(5); myTime display(); myTime AddYear(1); myTime di splay(); return 0; 国家二级 C+机试(操作题)模拟试卷 379答案与解析 一、基本操作题 1 【正确答案】 (1)std: cout“please in
4、put a string: ”Std: endl; (2)using namespace std; 【试 题解析】 程序要求从键盘输入字符串 S,然后输出字符串 S中字符的个数。从己给定源程序的 main主函数开始入手,程序通过 cin输入标准类型的成员函数getline读入一行字符,然后通过 strlen0函数求得字符串长度。 二、简单应用题 2 【正确答案】 Int len=0; for(; Stringfen!=NULL; len+) 获取字符串的长度 ; len一一; 下标从 0开始到 len一 1 for(int i=0; ilen; i+, len一一 ) 第一个和最后一个比较。第
5、二个和倒 数第二个比较 if( stringi != String len)不等说明不同,返回 0 return 0; return 1; 【试题解析】 函数 IsPalindromes(cha*string)实现的功能是判定给定的字符串是否构成回文字符串,如果是则返回 1,否则返回 0。回文是指前后对称的字符串,因此可比较对称位置的字符是否一样来判断是否是回文,如果每个对称位置的元素均相同则是回文,返回 1,否则返回 0。 三、综合应用题 3 【正确答案】 (1)添加语句: int m year, m month; (2)添加语句: m_year=year; mmonth=month; (3)添加语句: yearChar2=0; monthChar2=0; (4)添加语句: m veam+=m month 12;或 m year=m year+ m month 12; 【试题解析】 程序中定义了类 CMyTime,含有 m_year和 m_month两个成员变量,成员函数 display()显示成员变量的值, AddMonth(int m)和 AddYear(int n)函数 分别改变 m_month和 m_year两个成员变量的值。