一、单项选择题(每小题1分,共20分) 题号 答案 题号 答案
1 11 D
2 B 12 A
3 B 13 B
4 A 14 C
5 D 15 B
6 A 16 C
7 A 17 B
8 D 18 C
9 B 19 C
10 B 20 A
二、填空题(每空1分,共25分)
1、 2、 4 2、 9 3、 相同,不同 4、 ch=d 5、 引用 6、 虚函数 ,函数重载 7、 const 、 inline 8、 25
9、 Cdocument、 CView 10、 虚基类 11、 UpdateData 12、 AddString、ResetContent 13、 串行化 14、 控件通知
15、数组、列表(链表)、映射(顺序可变) 16、画刷、画笔
三 选择填空题(每空1分,共15分) 题号 答案
⑴ ⑵ ⑶ ⑷ ⑸ A C B D B
⑹ ⑺ ⑻ ⑼ ⑽
C A B
E
A
⑾ ⑿ ⒀ ⒁ ⒂
D C C
E
F
四 写出下列程序的运行结果(每小题5分,共15分) 1、 *a = 3
*a = 5
2、 Exiting main
Destructor is active Destructor is active Destructor is active 3、
六、程序设计题(1题4 分,2题9 分,共13分) 1、 UpdateDate(TRUE); 1分
m_result = m_op1 + m_op2; 2分 UpdateDate(FALSE); 1分
2、 //CStudent.h
class CStudent :public CObject { 1分 public:
CString Num; CString Name;
CTime Birth; CString Address;
CString Grade; 2分
DECLARE_SERIAL(CStudent) // 使对象可串行化 1分 virtual void Serialize( CArchive & ar ); //重载串行化函数 1分
};
CStudent.cppIMPLEMENT_SERIAL(CStudent ,CObject, 0) 1分 void CStudent:Serialize(CArchive & ar)
{ CObject::Serialize(ar); 1分 if ( ar.IsStoring() )
{ ar< } 试题2答案及评分标准 一、单项选择题(每小题1分,共20分) 题号 答案 题号 答案 1 11 B 2 C 12 A 3 C 13 B 4 A 14 A 5 A 15 B 6 A 16 C 7 B 17 B 8 D 18 C 9 A 19 B 10 B 20 D 二、填空题(每空1分,共25分) 1、 1、 4 、8 2、 9 3、 函数重载 4、 ch=D 5、列表框、编辑框 6、DC(设备上下文) 7、抽象基类 8、 静态成员 9、 私有、公有(或者private 、public) 10、虚基类 11、窗口消息、命令消息、控件通知消息(顺序可变) 12、WM_KEYDOWN,WM_CHAR,WM_KEYUP 13、从IDC_RADIO1到IDC_RADIOn,中设置IDC_RADIOm为默认 14、单选列表框、多选列表框、单选列表框、多选列表框 三 选择填空题(每空1分,共15分) 题号 答案 ⑴ ⑵ ⑶ ⑷ ⑸ A C B D C ⑹ ⑺ ⑻ ⑼ ⑽ A C D B A ⑾ ⑿ ⒀ ⒁ ⒂ D C C E F 四 写出下列程序的运行结果(每小题5分,共20分) 3、 Initalizing default Initalizing default 0 0 Desdtructor is active Desdtructor is active 五、程序设计题(每题10 分,共20分) 1、 2、 //Addrlist.h文件内容: class CAddrlist : public CObject { 1分 public: CString Name; CString Address; CString Tel; CTime Birth; CAddrlist(); 3分 DECLARE_SERIAL(CAddrlist) // 使对象可串行化 1分 virtual void Serialize( CArchive & ar ); //重载串行化函数 1分 }; Addrlist.cpp文件内容:IMPLEMENT_SERIAL(CAddrlist,CObject, 0) 1分 void CAddrlist::Serialize(CArchive & ar) { CObject::Serialize(ar); 1分 if ( ar.IsStoring() ) { ar< 试题3答案及评分标准 一、单项选择题(每小题1分,共20分) 题号 答案 题号 答案 1 11 D 2 B 12 D 3 B 13 B 4 A 14 B 5 A 15 B 6 A 16 C 7 A 17 C 8 D 18 C 9 B 19 C 10 B 20 C 二、选择填空题(每空1分,共20分) 题号 答案 题号 答案 ⑴ A ⑾ D ⑵ C ⑿ C ⑶ B ⒀ C ⑷ D ⒁ E ⑸ B ⒂ F ⑹ C ⑺ A ⑻ B ⑼ E ⑽ A [16] [17] [18] [19] [20] A B A C F 三、程序设计题(共60分) 1、(10分) 3、 void CExDlg::OnButtonMul() (5分) { UpdateDate(TRUE); m_z = m_x * m_y; UpdateDate(FALSE); } void CExDlg::OnButtonDiv() (5分) { UpdateDate(TRUE); if ( m_y == 0 ) { MessageBox( “除数不能为0!”); return; } m_z = m_x / m_y; UpdateDate(FALSE); 5、 //CStudent.h class CStudent :public CObject { 1分 public: CString Num; CString Name; CTime Birth; CString Address; CString Grade; 2分 DECLARE_SERIAL(CStudent) // 使对象可串行化 1分 virtual void Serialize( CArchive & ar ); //重载串行化函数 1分 }; CStudent.cppIMPLEMENT_SERIAL(CStudent ,CObject, 0) 1分 void CStudent:Serialize(CArchive & ar) { CObject::Serialize(ar); 1分 if ( ar.IsStoring() ) 1分 { ar< 试题4答案及评分标准 一、单项选择题(每小题1分,共20分) 题号 答案 题号 答案 1 11 B 2 C 12 A 3 C 13 B 4 A 14 A 5 A 15 B 6 A 16 C 7 B 17 B 8 D 18 C 9 A 19 B 10 B 20 D 二、 选择填空题(每空1分,共20分) 题号 答案 题号 答案 ⑴ A ⑾ D ⑵ C ⑿ C ⑶ B ⒀ C ⑷ D ⒁ E ⑸ C ⒂ F ⑹ A ⑺ C ⑻ D ⑼ B ⑽ A [16] [17] [18] [18] [20] B C B C B 三、程序设计题(每题10 分,共60分) 2、 //Addrlist.h文件内容: 5分 class CAddrlist : public CObject { public: CString Name; CString Address; CString Tel; CTime Birth; CAddrlist(); DECLARE_SERIAL(CAddrlist) // 使对象可串行化 virtual void Serialize( CArchive & ar ); //重载串行化函数 }; Addrlist.cpp文件内容: 5分IMPLEMENT_SERIAL(CAddrlist,CObject, 0) void CAddrlist::Serialize(CArchive & ar) { CObject::Serialize(ar); if ( ar.IsStoring() ) { ar< 3、第一个函数5分,第二个函数8分,第三个函数7分, (1) BOOL CEx6_3Dlg::OnInitDialog( ) { m_List1.AddString(\"China\"); m_List1.AddString(\"Germany\"); UpdateData(FALSE); return TRUE; } (2) void CEx6_3Dlg::OnAdd() { if ( m_Name.IsEmpty() ) { MessageBox(\"项目名不能为空!\"); return; } m_Name.TrimLeft(); m_Name.TrimRight(); if ( m_List1.FindString(-1,m_Name)!=LB_ERR ) { MessageBox(\"列表框中已有相同的项目名,不能添加!\"); return; } m_List1.AddString(m_Name); UpdateData(FALSE); } (3) void CEx6_3Dlg::OnDel( ) { int nIndex=m_List1.GetCurSel(); if(nIndex!=LB_ERR) { m_List1.DeleteString(nIndex); } else MessageBox(\"当前没有选择项或列表框操作失败\"); UpdateData(FALSE); } 4、 void CEx6_1Dlg::OnButton1() { UpdateData(); double disc; disc=(double)(m_b*m_b-4*m_a*m_c); if ( fabs(disc)<=1e-6 ) //如果disc等于0 { m_x1.Format(\"x1=%6.2f \ m_x2.Format(\"x2=%6.2f \ } else if ( disc>1e-6 ) //如果disc大于0 { double x1,x2; x1=(-m_b-sqrt(disc))/(2*m_a); x2=(-m_b+sqrt(disc))/(2*m_a); m_x1.Format(\"x1=%6.2f\ m_x2.Format(\"x2=%6.2f\} else //如果disc小于0 { double realpart,imagpart; realpart=-m_b/(2*m_a); imagpart=sqrt(-disc)/(2*m_a); m_x1.Format(\"x1=%6.2f+%6.2fi\ m_x2.Format(\"x2=%6.2f-%6.2fi\ } UpdateData(FALSE); } 因篇幅问题不能全部显示,请点此查看更多更全内容