计算机可视化编程复习题答案
计算机可视化编程复习题
一、填空
1VC++开发环境中,int占4 字节,short int占2 字节 long int占4 字节。
2for循环:for(i=1;i<5;i++),且在循环体中不会修改i的值,重复执行4次后结束。3Windows下的对话框分为模态对话框和非模态对话框。
4数组赋值:int a[2][3]={{1},{5}};则该数组的全部元素为:a[3][4]= 1 0 0
5 0 0
5类的成员分为两大类,数据成员和成员函数(函数成员)。
6插入的对话框中,系统会自动添加两个按钮,其中OK按钮的ID为ID_OK。
7在VC++ 6.0环境下调试运行时,在当前光标所在的行下断点,如果当前行已经有断点,则取消断点按F9 ,按F5 开始调试运行,程序执行到有断点的地方停止。
8常用Windows控件类型有:静态控件、编辑框、按钮、列表框、组合框和滚动条。9列表框分两种,单选列表框任一时刻只能选择一项,复选列表框则可以选取多项。10在Windows操作系统中预定义了几种光标,IDC-ARROW表示箭头光标。
11在C++程序中包含一个头文件或程序文件的预编译命令为___#include___。
12程序中的预处理命令是指以__#_字符开头的命令,一条表达式语句必须以分号作为结束符,行尾使用注释的开始标记符为__//__。
13用于输出表达式值的标准输出流对象是__cout__,用于从键盘上为变量输入值的标准输入流对象是_cin__。
14已知:int d=5, *pd=&d, b=3,则++(*pd)= 6 ;*pd++= 5 。
15三种流程控制结构分别是:顺序结构、分支结构、循环结构。
16程序中使用的数据分为常量和变量两种形式。
17C++中常用的数据类型有:bool(布尔型)、char(字符型)、int(整型)、float(浮点型)、double(双精度浮点型)。除bool(布尔型)外,这些数据类型可分为两大类:整型与浮点型。
18在字体句柄被创建后,应用程序通过调用函数SetTextColor(),设置字体颜色,通过调用函数SetBkColor()设置背景颜色。
19所有的数据类型基本都可以定义为指针类型,指针的定义是:在声明变量时在变量名前加*,那么,定义一个指向整型数的指针变量nNhao的形式为int *nNhao;而& 是指针的取地址运算符。
20在MFC应用程序中可以有多个工具栏,但只可以有一个状态栏。
21使用Visual C++6.0可以创建扩展名为.cpp C源程序文件;而双击工作区文件,就能打开该工作区及其包含的工程,其后缀是:.dsw 。
22每次只支持打开一个文档的应用程序称为SDI(单文档应用程序) ,MDI(多文档应用程序)用户一次可以打开多个文档,且支持各个字框架窗口以层叠、平铺等方式显示。
23如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行基类的对象成员的构造函数,接着执行基类的构造函数,然后执行派生类的对象成员的构造函数,最后才执行派生类的构造函数。
24类的对象不能访问类的保护数据成员(成员函数)。(子类的对象不能访问其父类的保护
数据成员(成员函数)。)
二、选择(60*3)
1下列类中不属于MFC框架基本类的是( D )
A. CWinApp
B. CFrameWnd
C. CView
D. CObject
2程序中要使用printf语句输出,必须在程序的开头添加下面语句( A )。
A.#include"stdio.h" B.#include"string.h"
C.#include"iostream.h" D.#include"stdlib.h"
3下面哪个说法是不正确的( D )。
A、API是指应用程序编程接口(Application Programming Interface)
B、MFC是指微软基础类库(Microsoft Foundation Class)
C、C++语言是一门高级编程语言,能支持面向对象编程
D、VC是一门编程语言,能开发Windows程序
4栈具有( B )的操作特性。
A.先进先出
B.先进后出
C.进出无序
D.进出任意
5下列函数原型语句正确的是( B )。
A、int Function(void a);
B、void Function (int);
C、int Function(a);
D、void enum(double a,int b=1);
6资源描述文件中DIALOG定义的是( C )。
A. 菜单
B. 弹出式菜单
C. 对话框资源
D. 加速键资源
7编写一个单文档序时,文档类可以从以下哪个基类派生( A )
A、CDocument
B、CView
C、 CDialog
D、CFrameWnd
8若有定义:int a=100,*p=&a;则*p的值是( C )。
A.变量p的地址 B.变量a的地址值 C.变量a的值 D.无意义
9选择正确的说明语句为( B )。
A. int N['b'];
B. int N[4,9];
C. int N[][];
D. int *N[10]; 10设x、y、z均为已声明的整型变量,以下运算表达式,错误的是( B )。
A、x += y;
B、 x = (z > y)
C、x + y = z;
D、x = (z + y);
11以下变量定义,不符合“匈牙利表示法则”的是( B )
A、int nX;
B、int i;
C、int nMyWeight; D int nZ;
12用于定义一个结构体的关键字是( A )。
A、struct
B、class
C、 private
D、extern
13printf()函数是格式输出函数,请求printf()打印变量的指令取决于变量的类型.如%d 表示输出字符的类型是( A )。
A.十进制有符号整数
B.十进制无符号整数
C.浮点数
D.字符串
14VC中的输出函数printf,常会出现一些特殊规定字符,其中“\n”表示( B )。
A.回车
B.换行
C.清屏并换页
D.Tab符
15下列不属于面向对象程序设计的3大机制的是( C )
A.多态
B.封装
C.重载
D.继承
16关于对象,下列说法中不正确的是( C )
A.对象是类的一个实例
B.任何一个对象只能属于一个类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量间的关系类似
三、简答(18*6)
1MFC的AppWizard(exe)提供了哪几种类型的应用程序?
答案: (1)单文档界面的应用程序(SDI,single document interface);
(2)多文档界面的应用程序(MDI,multiple documents interface);
(3)基于对话框的应用程序(dialog based)。
2MFC编程中,通过建立类向导中的操作可以将窗口控件和对应变量绑定,但是代码操作的是变量,当程序代码中操作变量改变,如果想在控件上表示出来,哪个函数可以实现这种同步要求,并说明该函数作用?
答案:UpdateData();
当调用UpdateData(TRUE)时,(MFC通过调用DDX函数)将数据从控件传递到关联的成员变量;
当调用UpdateData(FALSE)时,(MFC通过调用DDX函数)将数据从成员变量传递到关联的的控件。
3类与结构体有什么区别?
答案:类中可以包含两类成员――数据成员和成员函数;而标准C语言中的结构体只能包含数据成员;但是C++中的结构体对C语言中的结构体有扩展,C++中的结构体也可以两类成员――数据成员和成员函数;因此C++中的类和C++中的结构体出来在定义方式上不一样之外(class,struct ),还有就是它们的缺省封装字是不一样的,一个是private,一个是public。
4sprintf函数的有哪些应用?
答案:①printf最常见的应用是吧整数打印到字符串中。
②浮点数的打印和格式控制。
③printf打印字符或是BYTE型数据。
④printf连接字符串。
5在VC++6.0中,如果想要改变按钮上显示的名称,应该如何操作?
答案:①在资源编辑器中,选择该按钮;
②在右键菜单中选择属性(Properties),改变属性框的标题(Caption)字段的值
6简述类与对象的区别。
答案:①类是抽象的,对象是具体的;
②类是类型,对象是变量;
③类是模型,对象是实例。
7SetTimer()函数的作用是什么?有哪些形式参数,有什么含义?
答案:SetTimer()函数用于起动定时器,定义为SetTimer(int ,int ,callback functiom) 参数1,定时器号,
参数2,定时间隔,单位mS
参数3,回调函数名,通常NULL,这时执行默认回调函数OnTimer()
8简述什么是工程(Project)
答案:工程(Project): 工程又称项目,是为达到某一目标所做的一系列工作的总称,是一种管理模式或组织形式。在VC6中,工程用于管理应用程序的源程序(比如*.ccp和
*.h)与资源文件(比如*.rc)。工作区(Workspace)显示当前各工程(或项目)的类、资源和文件信息
9什么是编辑框控件?它有哪些功能?属于MFC的什么类?
答案:编辑框(Edit Box)是一个允许用户从键盘输入数据和编辑文本的矩形窗口。
可以方便地输入各种文本,数字或者口令,也可以用它编辑和修改文本的容。
编辑框属于CEdit类的“窗口控件”,可以获得输入焦点。
四、编程
(一)程序读写(6*10)
1#include
class B{
public:
static int num;
};
int B:: num=100;
void main()
{ B b1, b2;
cout < b1.num+=25; cout< } 程序的运行结果:100 125 2#include class A{ public: virtual void fun() {cout<<"I'm class A"< }; class B: public A{ public: void fun() {cout<<"I'm class B"< }; class C: public B{ public: void fun() {cout<<"I'm class C"< }; void main(){ A a,*pA=&a; pA->fun(); B b; pA=&b; pA->fun(); C c; a=c; a.fun(); A&aRef=c; aRef.fun(); } 程序的运行结果:I'm class A _I'm class B _I'm class A _I'm class C 3void main() { int a[3][3]={{1,2},{3,4},{5,6}},sum=0; for(int i=1;i<3;i++) { for(int j=0;j<=i;j++) { sum+=a[i][j]; } } printf("%dn",sum); } 程序的运行结果:18 4int fun(int x,int y) { return ((y-x)*x); } void main() { int a=2,b=3,c=5,d; d = fun(fun(a,b),fun(a,c)); printf("%dn",d); } 程序的运行结果: 8;其中fun(a,b)= 2 ;fun(a,c)= 6。5#include “iostream.h” class A1 { public: A1(int i) { cout<<”A1的构造函数!”< }; class A2 { public: A2(int i) { cout<<”A2的构造函数!”< class C: public A1,public A2 { public: C(int i,int j):A2(j),A1(i) { cout<<”C的构造函数!”< void main() { C c(1,2); } 程序的运行结果:_A1的构造函数_ _A2的构造函数 _C的构造函数