计算机程序设计员题库(共8篇)
一、选择题
1.假定p所指对象的值为5,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()
A.5 B.9 C.6 D.8
2.下面关于对象的描述中,不正确的是()
A.对象是一种数据类型 B.对象可大可小
C.对象具有属性和行为两个要素 D.对象是一种客观存在3.面向对象的程序是()的组合.A.数据结构+算法 B.对象+方法
C.对象+消息 D.对象+算法
4.以下不属于面向对象的程序设计语言的是()
A.C# B.C++ C.Java D.C
5.下面关于构造函数的说法,不正确的是()
A.构造函数没有返回值 B.构造函数不能重载
C.构造函数名称一定要和类名一致 D.构造函数的参数可以缺省
6.下面有关内置函数说法不正确的是()
A.提高执行效率 B.增加目标代码长度
C.与带参宏定义效果一样 D.用于规模小且使用频繁场合7.以下不属于C++关键字的是()
A.mutable B.class C.endl D.static
8.下列关于类和对象的叙述中,错误的是()
A.可以用一个类定义多个对象 B.类比对象大,包含对象
C.类是对某一类对象的抽象 D.对象是类的具体实例
9.下面关于常变量的描述中,不正确的是()
A.用const定义常变量 B.指向常变量的指针即是常指针
C.常变量是不能改变值的变量 D.常成员函数不能修改数据成员
10.假定A为一个类,a为该类私有的数据成员,Get()为该类公有的函数成员,它返回a的值。现有如下语句A t,*p=&t;,则得到t对象中数据成员a的语句为()
A.p.Get();B.t.a;C.p->Get();D.t->a;
11.自减运算符的重载中,函数形参是int,意味着()
A.编译不通过 B.后置自减 C.前置自减 D.2个参数
12.下列语句中,不能定义一个常量的是()
A.#define double PI=3.1414926 B.const double PI=3.1415926;
C.#define PI 3.1415926 D.const static double PI=3.1415926;
13.如果一个类没有定义任何构造函数,下列描述正确的是()
A.该类也就不定义析构函数 B.编译器创建一个不带参数的构造函数
C.该类不能通过编译 D.编译器创建一个带参数的构造函数
14.对于语句 cout << a;,下列描述中不正确的是()
A.“cout”是一个输出流对象 B.该语句输出了a的值
C.“<< ”称作提取运算符 D.该语句需要头文件iostream
15.C++中,下面对结构体和类之间关系的描述中,正确的是()
A.类中的默认权限是私有的,而结构体中默认权限是公有的B.类有函数成员,而结构体没有
C.类有构造函数,而结构体没有
D.类的成员可以定义为私有权限,而结构体成员不能定义为私有权限
16.下面关于友元的说法,不正确的是()
A.友元函数可以是成员函数 B.友元类的函数均是友元函数
C.友元不具备传递性 D.友元的关系是双向的17.下面有关内置函数说法不正确的是()
A.提高执行效率 B.增加目标代码长度
C.与带参宏定义效果一样 D.用于规模小且使用频繁场合18.下面那个描述常成员函数的定义是正确的()
A.const int show()B.int const show()C.int show()const D.int show(const)
19.已有定义virtual int area()=0;下面关于该函数的解释中正确的是()
A.该函数是纯虚函数 B.该函数返回值为0
C.该函数通常在派生函数中声明 D.该函数的入口地址为0
20.下面哪个特性是C++相对于C所特有的()
A.使用了引用的定义 B.使用static关键字
C.使用const关键字 D.使用了指针的定义
21.下列关于C++中运算符重载的描述中,错误的是()
A.运算符重载可以对所有的运算符进行重载
B.重载的运算符,其运算对象可以是自定义的数据类型
C.运算符重载不能改变运算符的优先级
D.运算符的重载实质上是函数的重载
22.通过()方法可以在现有类基础上得到新的类。
A.引用 B.继承 C.包含 D.封装
23.关于赋值运算符,下面哪个说法不成立()
A.必须是类成员函数 B.不能被派生类继承;
C.不能进行运算符重载 D.编译器可以自动生成;
24.下面关于构造函数的说法,不正确的是()
A.构造函数不能重载 B.构造函数没有返回值
C.构造函数名称一定要和类名一致 D.构造函数不能做虚函数
25.下面属于一个C++程序头文件部分的是()
A.类的声明 B.类的实现 C.类的使用 D.类的编译
26.下面关于cin的说明中,不正确的是()
A.是一个对象 B.是一个关键字 C.用于输入 D.配合提取运算符使用
27.下面有关类的静态成员函数说法正确的是()
A.可以访问非静态成员;B.只能访问静态成员;
C.可以是对象的一部分;D.在定义时也要加上static;
28.自减运算符的重载中,函数形参是int,意味着()
A.编译不通过 B.后置自减
C.前置自减 D.2个参数
29.下面有关常成员函数不正确的说法是()
A.只能访问常数据成员 B.不能修改任何数据成员
C.可以访问任何数据成员 D.可以修改一般数据成员
30.对类的常数据成员进行初始化,正确的是()
A.在构造函数中赋值;B.利用公有接口函数对其赋值;
C.利用成员初始化表;D.无法初始化,默认为0;
31.派生类的私有函数成员不可以访问基类的()成员。
A.私有成员 B.公用成员 C.保护成员 D.任何成员
32.作为类的成员函数重载一个运算符时,如果参数表中有一个参数,通常情况下,说明该运算符有()个操作数
A.0 B.1 C.2 D.3
33.C++代码源文件的扩展名应为()
A.c B.cpp C.obj D.exe
34.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()
A.私有继承的公用成员 B.公有继承的公用成员
C.保护继承的公用成员 D.公有继承的保护成员
35.C++语言相对于C语言的最根本的变化是()
A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数
C.引进了类和对象的概念 D.输入输出使用流对象
36.下面属于一个C++程序头文件部分的是()
A.类的实现 B.类的声明 C.类的对象实例 D.类的编译
37.设置虚基类的目的是()
A.消除二义性 B.方便程序书写
C.减少目标代码体积 D.提高运行效率
38.静态成员函数一定没有()
A.返回值 B.返回类型 C.指针参数 D.*this
39.下面关于友元的说法,不正确的是()
A.友元函数可以是成员函数 B.友元类的函数均是友元函数
C.友元的关系是双向的 D.友元不具备传递性
40.下面有关类的静态成员函数说法正确的是()
A.可以访问非静态成员;B.只能访问静态成员;
C.可以是对象的一部分;D.在定义时也要加上static;
41.以下运算符不能进行运算符重载的是()
A.*= B.sizeof C.= D.&
42.在编译时,将所调用的函数代码嵌入到主调函数中,这种函数称为()
A.内置函数 B.子函数 C.成员函数 D.宏函数
43.下面有关常成员函数不正确的说法是()
A.只能访问常数据成员 B.不能修改任何数据成员
C.可以访问任何数据成员 D.不能访问一般数据成员
44.派生类的私有函数成员不可以访问基类的()成员。
A.私有成员 B.公用成员
C.保护成员 D.任何成员
45.下列关于函数模板与类模板的描述中,不正确的是()
A.函数模板的实例化是由编译程序在处理函数调用时自动完成B.类模板的实例化必须由程序员在程序中显式的指定
C.函数模板与类模板均可以显式调用
D.定义函数模板时可以使用多个类型参数,而类模板不可以
46.下列不属于类定义中的访问限定符的是()
A.private B.public
C.const D.protocted
47.以下说法中,不正确的是()
A.基类的析构函数不能被继承 B.基类的构造函数可以被继承;
C.静态成员函数只能访问静态数据成员;D.静态函数不能声明为虚函数;
48.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()
A.私有继承的公用成员 B.公有继承的保护成员
C.保护继承的公用成员 D.公有继承的公用成员
49.下面与实现多态性无关的概念是()
A.虚基类 B.虚函数 C.抽象类 D.纯虚函数
50.假定p所指对象的值为6,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()
A.6 B.9 C.7 D.8
二、填空题
1.C++中,专门用于定义重载运算符的关键字是。
2.假定用户没有给一个名为BASE的类定义析构函数,则系统为其定义的默认析构函数写法为。
3.在C++中,继承间接共同基类时只保留一份成员的方法是。
4.继承关系可以是public、和。
5.常数据成员只能通过构造函数的 初始化。
6.派生类与其基类均有定义int b;则派生类中访问的b是在 中的定义。
7.常对象中的数据成员必须通过_________函数才可以访问。
8.对象将其大部分实现细节隐藏起来,这种机制称为。
9.通常可将含有纯虚函数的类称为,可用该类作为基类去建立派生类。
10.如果希望类的成员为该类所有对象所共享,可以使用关键字________来修饰。
11.在C++中,由继承而产生的新类,它的对象对同一个消息会作出不同的响应,这种特性被称为。
12.从系统实现角度看,C++中的动态多态性是通过 来实现的。
13.在C++中,用于动态分配内存的运算符是。
14.C++支持友元的目的是提高。
15.在类的定义中,如果定义为 函数要求派生类必须实现同名函数。
16.在类的定义中,通常用 函数对类的数据成员进行初始化。
17.如果希望类的成员为该类所有对象所共享,可以使用关键字__ __来修饰。
18.在C++中,用struct定义一个类时,数据成员和成员函数的默认访问权限是。
19.常对象中的私有数据成员必须通过 才可以访问。
20.重载函数在参数类型或 上不同,但函数名相同。派生类与其基类均有定义int b;则派生类中对b的使用是以 的定义为准。
21.已有定义const int a=5;定义一个常指针p指向该变量a的语句是:。
22.语句 cin >> x;中“>>”称为 运算符
23.一般的,系统提供的头文件只包括对成员函数的,而不包括对成员函数的定义。
24.要用对象名访问类成员,类成员的权限必须是 对象的概念中,有静态和动态两种特征,其中静态特征称为,可由数据表示,而动态特征称为行为,可由 表示。
25.在C++中,用 定义一个类型时,数据成员和成员函数的默认访问权限是公有的。
26.重载函数在参数个数或 上不同,但 相同。
27.语句 cin>>x;中“>>”称为 运算符。
28.只能通过构造函数的初始化表初始化。
29.在类定义时,如果在其某个成员后面加上const关键字,则这个成员称为。
30.假定有一个类B,是由类A保护继承而来,有一个类C由A类公开继承而来,根据基类成员在派生类中的访问属性,填写下表。
在A类的访问属性 | 在B类的访问属性 | 在C类的访问属性 |
私有 | ||
公有 | ||
保护 |
三、判断题
1.类模版是类的抽象,类是类模版的实例。
2.类的析构函数在删除对象时调用,并可以重载。
3.类中需要共享或共用的数据成员和成员函数均需要用关键字const声明。
4.常数据成员只能通过构造函数的初始化表初始化。
5.基类声明的虚函数再派生类不用再声明。
6.成员函数在类内定义会占用对象的存储空间。
7.面向对象程序设计通过类的继承机制解决了软件重用问题。;
8.抽象类定义的目的是用它作为基类去建立派生类。
9.构造函数有返回值,而析构函数没有返回值。
10.不出现类名,也可以直接定义对象。
11.面向对象的程序是对象和消息的组合,因此就不需要过程设计了。
12.对象的赋值和复制是同一个含义,均是由对象1得到对象2。
13.一般而言,先构造的先析构,后构造的后析构。
14.静态数据成员可以被一般成员函数访问。
15.静态成员函数可以直接访问其他成员函数。
16.指向对象的常指针变量就是指向常对象的指针变量。
17.构造函数不能声明为虚函数,而析构函数可以声明为虚函数。
18.C++允许这样定义函数int Init(int x=5, int y)。
19.多重继承出现的二义性可以用作用域限定的方法消除。
20.基类的构造函数和析构函数是不能被派生类继承的。
21.类所占空间为数据成员和成员函数所占空间之和。
22.类的析构函数可以是虚函数,也可以重载。
23.类是对象的抽象,对象是类的具体实例。
24.类的成员函数不能访问类的私有成员。
25.无论何种继承形式,派生类均不能直接访问基类的私有成员。
26.友元函数必须是一个类成员函数。
27.友元机制破坏了类的信息封装性。
28.实现流插入运算符重载可以使用类成员函数方式。
29.重载运算符函数不能有默认参数。
30.重载多态是一种运行时多态。
31.通过关键字friend可以声明友元。
32.理论上可以将一个运算符重载为执行任意操作。
33.抽象类一定含有至少一个纯虚函数。
四、简答题
1、如果一个派生类包含有成员对象,其构造函数执行顺序是怎样的?
2、什么是虚函数?如何定义虚函数。
3、什么是对象的赋值,它与对象的复制有什么不同?
4、什么叫虚基类,它的主要作用是什么?
5、什么是抽象类,它有什么特点。
6、什么是纯虚函数?应该如何声明?有什么意义?
7、派生类的成员函数如何访问基类的私有成员?
8、为什么要进行运算符重载?
9、面向对象程序设计有哪些基本特征?
10、已知有类Test,公用成员函数display();简要解释语句Test stu1;stu1.display();并指出语句中的“对象”、“方法”和“消息”。
11、什么是面向对象的程序设计?
12、什么是常对象,如何定义常对象,对其访问有什么规定?
13、构造一个派生类需要做哪些工作?
14、什么是对象的复制,它与对象的赋值有什么不同?
15、类模板有什么作用?如何声明一个类模板。
16、类的静态成员具有什么特点和作用?
17、什么是参数初始化表,有什么作用?
18、类的封装性表现在什么地方?
19、什么是内联函数,一般要求内联函数满足哪些条件?
20、什么是友元函数,它有什么优点和不足?
向对象程序设计》练习题库-2010版
一、选择题
1.假定p所指对象的值为5,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()
A.5 B.9 C.6 D.8
2.下面关于对象的描述中,不正确的是()
A.对象是一种数据类型 B.对象可大可小
C.对象具有属性和行为两个要素 D.对象是一种客观存在3.面向对象的程序是()的组合.A.数据结构+算法 B.对象+方法
C.对象+消息 D.对象+算法
4.以下不属于面向对象的程序设计语言的是()
A.C# B.C++ C.Java D.C
5.下面关于构造函数的说法,不正确的是()
A.构造函数没有返回值 B.构造函数不能重载
C.构造函数名称一定要和类名一致 D.构造函数的参数可以缺省
6.下面有关内置函数说法不正确的是()
A.提高执行效率 B.增加目标代码长度
C.与带参宏定义效果一样 D.用于规模小且使用频繁场合7.以下不属于C++关键字的是()
A.mutable B.class C.endl D.static
8.下列关于类和对象的叙述中,错误的是()
A.可以用一个类定义多个对象 B.类比对象大,包含对象
C.类是对某一类对象的抽象 D.对象是类的具体实例
9.下面关于常变量的描述中,不正确的是()
A.用const定义常变量 B.指向常变量的指针即是常指针
C.常变量是不能改变值的变量 D.常成员函数不能修改数据成员
10.假定A为一个类,a为该类私有的数据成员,Get()为该类公有的函数成员,它返回a的值。现有如下语句A t,*p=&t;,则得到t对象中数据成员a的语句为()
A.p.Get();B.t.a;C.p->Get();D.t->a;
11.自减运算符的重载中,函数形参是int,意味着()
A.编译不通过 B.后置自减 C.前置自减 D.2个参数
12.下列语句中,不能定义一个常量的是()
A.#define double PI=3.1414926 B.const double PI=3.1415926;
C.#define PI 3.1415926 D.const static double PI=3.1415926;
13.如果一个类没有定义任何构造函数,下列描述正确的是()
A.该类也就不定义析构函数 B.编译器创建一个不带参数的构造函数
C.该类不能通过编译 D.编译器创建一个带参数的构造函数
14.对于语句 cout << a;,下列描述中不正确的是()
A.“cout”是一个输出流对象 B.该语句输出了a的值
C.“<< ”称作提取运算符 D.该语句需要头文件iostream
15.C++中,下面对结构体和类之间关系的描述中,正确的是()
A.类中的默认权限是私有的,而结构体中默认权限是公有的B.类有函数成员,而结构体没有
C.类有构造函数,而结构体没有
D.类的成员可以定义为私有权限,而结构体成员不能定义为私有权限
16.下面关于友元的说法,不正确的是()
A.友元函数可以是成员函数 B.友元类的函数均是友元函数
C.友元不具备传递性 D.友元的关系是双向的17.下面有关内置函数说法不正确的是()
A.提高执行效率 B.增加目标代码长度
C.与带参宏定义效果一样 D.用于规模小且使用频繁场合18.下面那个描述常成员函数的定义是正确的()
A.const int show()B.int const show()C.int show()const D.int show(const)
19.已有定义virtual int area()=0;下面关于该函数的解释中正确的是()
A.该函数是纯虚函数 B.该函数返回值为0
C.该函数通常在派生函数中声明 D.该函数的入口地址为0
20.下面哪个特性是C++相对于C所特有的()
A.使用了引用的定义 B.使用static关键字
C.使用const关键字 D.使用了指针的定义
21.下列关于C++中运算符重载的描述中,错误的是()
A.运算符重载可以对所有的运算符进行重载
B.重载的运算符,其运算对象可以是自定义的数据类型
C.运算符重载不能改变运算符的优先级
D.运算符的重载实质上是函数的重载
22.通过()方法可以在现有类基础上得到新的类。
A.引用 B.继承 C.包含 D.封装
23.关于赋值运算符,下面哪个说法不成立()
A.必须是类成员函数 B.不能被派生类继承;
C.不能进行运算符重载 D.编译器可以自动生成;
24.下面关于构造函数的说法,不正确的是()
A.构造函数不能重载 B.构造函数没有返回值
C.构造函数名称一定要和类名一致 D.构造函数不能做虚函数
25.下面属于一个C++程序头文件部分的是()
A.类的声明 B.类的实现 C.类的使用 D.类的编译
26.下面关于cin的说明中,不正确的是()
A.是一个对象 B.是一个关键字 C.用于输入 D.配合提取运算符使用
27.下面有关类的静态成员函数说法正确的是()
A.可以访问非静态成员;B.只能访问静态成员;
C.可以是对象的一部分;D.在定义时也要加上static;
28.自减运算符的重载中,函数形参是int,意味着()
A.编译不通过 B.后置自减
C.前置自减 D.2个参数
29.下面有关常成员函数不正确的说法是()
A.只能访问常数据成员 B.不能修改任何数据成员
C.可以访问任何数据成员 D.可以修改一般数据成员
30.对类的常数据成员进行初始化,正确的是()
A.在构造函数中赋值;B.利用公有接口函数对其赋值;
C.利用成员初始化表;D.无法初始化,默认为0;
31.派生类的私有函数成员不可以访问基类的()成员。
A.私有成员 B.公用成员 C.保护成员 D.任何成员
32.作为类的成员函数重载一个运算符时,如果参数表中有一个参数,通常情况下,说明该运算符有()个操作数
A.0 B.1 C.2 D.3
33.C++代码源文件的扩展名应为()
A.c B.cpp C.obj D.exe
34.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()
A.私有继承的公用成员 B.公有继承的公用成员
C.保护继承的公用成员 D.公有继承的保护成员
35.C++语言相对于C语言的最根本的变化是()
A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数
C.引进了类和对象的概念 D.输入输出使用流对象
36.下面属于一个C++程序头文件部分的是()
A.类的实现 B.类的声明 C.类的对象实例 D.类的编译
37.设置虚基类的目的是()
A.消除二义性 B.方便程序书写
C.减少目标代码体积 D.提高运行效率
38.静态成员函数一定没有()
A.返回值 B.返回类型 C.指针参数 D.*this
39.下面关于友元的说法,不正确的是()
A.友元函数可以是成员函数 B.友元类的函数均是友元函数
C.友元的关系是双向的 D.友元不具备传递性
40.下面有关类的静态成员函数说法正确的是()
A.可以访问非静态成员;B.只能访问静态成员;
C.可以是对象的一部分;D.在定义时也要加上static;
41.以下运算符不能进行运算符重载的是()
A.*= B.sizeof C.= D.&
42.在编译时,将所调用的函数代码嵌入到主调函数中,这种函数称为()
A.内置函数 B.子函数 C.成员函数 D.宏函数
43.下面有关常成员函数不正确的说法是()
A.只能访问常数据成员 B.不能修改任何数据成员
C.可以访问任何数据成员 D.不能访问一般数据成员
44.派生类的私有函数成员不可以访问基类的()成员。
A.私有成员 B.公用成员
C.保护成员 D.任何成员
45.下列关于函数模板与类模板的描述中,不正确的是()
A.函数模板的实例化是由编译程序在处理函数调用时自动完成B.类模板的实例化必须由程序员在程序中显式的指定
C.函数模板与类模板均可以显式调用
D.定义函数模板时可以使用多个类型参数,而类模板不可以
46.下列不属于类定义中的访问限定符的是()
A.private B.public
C.const D.protocted
47.以下说法中,不正确的是()
A.基类的析构函数不能被继承 B.基类的构造函数可以被继承;
C.静态成员函数只能访问静态数据成员;D.静态函数不能声明为虚函数;
48.若在类外可用x.p的形式访问派生类对象x的基类成员p,则p一定是()
A.私有继承的公用成员 B.公有继承的保护成员
C.保护继承的公用成员 D.公有继承的公用成员
49.下面与实现多态性无关的概念是()
A.虚基类 B.虚函数 C.抽象类 D.纯虚函数
50.假定p所指对象的值为6,p+1所指对象的值为8,则执行“(*p)++;”语句后,p所指对象的值为()
A.6 B.9 C.7 D.8
二、填空题
1.C++中,专门用于定义重载运算符的关键字是。
2.假定用户没有给一个名为BASE的类定义析构函数,则系统为其定义的默认析构函数写法为。
3.在C++中,继承间接共同基类时只保留一份成员的方法是。
4.继承关系可以是public、和。
5.常数据成员只能通过构造函数的 初始化。
6.派生类与其基类均有定义int b;则派生类中访问的b是在 中的定义。
7.常对象中的数据成员必须通过_________函数才可以访问。
8.对象将其大部分实现细节隐藏起来,这种机制称为。
9.通常可将含有纯虚函数的类称为,可用该类作为基类去建立派生类。
10.如果希望类的成员为该类所有对象所共享,可以使用关键字________来修饰。
11.在C++中,由继承而产生的新类,它的对象对同一个消息会作出不同的响应,这种特性被称为。
12.从系统实现角度看,C++中的动态多态性是通过 来实现的。
13.在C++中,用于动态分配内存的运算符是。
14.C++支持友元的目的是提高。
15.在类的定义中,如果定义为 函数要求派生类必须实现同名函数。
16.在类的定义中,通常用 函数对类的数据成员进行初始化。
17.如果希望类的成员为该类所有对象所共享,可以使用关键字__ __来修饰。
18.在C++中,用struct定义一个类时,数据成员和成员函数的默认访问权限是。
19.常对象中的私有数据成员必须通过 才可以访问。
20.重载函数在参数类型或 上不同,但函数名相同。派生类与其基类均有定义int b;则派生类中对b的使用是以 的定义为准。
21.已有定义const int a=5;定义一个常指针p指向该变量a的语句是:。
22.语句 cin >> x;中“>>”称为 运算符
23.一般的,系统提供的头文件只包括对成员函数的,而不包括对成员函数的定义。
24.要用对象名访问类成员,类成员的权限必须是 对象的概念中,有静态和动态两种特征,其中静态特征称为,可由数据表示,而动态特征称为行为,可由 表示。
25.在C++中,用 定义一个类型时,数据成员和成员函数的默认访问权限是公有的。
26.重载函数在参数个数或 上不同,但 相同。
27.语句 cin>>x;中“>>”称为 运算符。
28.只能通过构造函数的初始化表初始化。
29.在类定义时,如果在其某个成员后面加上const关键字,则这个成员称为。
30.假定有一个类B,是由类A保护继承而来,有一个类C由A类公开继承而来,根据基类成员在派生类中的访问属性,填写下表。
在A类的访问属性 | 在B类的访问属性 | 在C类的访问属性 |
私有 | ||
公有 | ||
保护 |
三、判断题
1.类模版是类的抽象,类是类模版的实例。
2.类的析构函数在删除对象时调用,并可以重载。
3.类中需要共享或共用的数据成员和成员函数均需要用关键字const声明。
4.常数据成员只能通过构造函数的初始化表初始化。
5.基类声明的虚函数再派生类不用再声明。
6.成员函数在类内定义会占用对象的存储空间。
7.面向对象程序设计通过类的继承机制解决了软件重用问题。;
8.抽象类定义的目的是用它作为基类去建立派生类。
9.构造函数有返回值,而析构函数没有返回值。
10.不出现类名,也可以直接定义对象。
11.面向对象的程序是对象和消息的组合,因此就不需要过程设计了。
12.对象的赋值和复制是同一个含义,均是由对象1得到对象2。
13.一般而言,先构造的先析构,后构造的后析构。
14.静态数据成员可以被一般成员函数访问。
15.静态成员函数可以直接访问其他成员函数。
16.指向对象的常指针变量就是指向常对象的指针变量。
17.构造函数不能声明为虚函数,而析构函数可以声明为虚函数。
18.C++允许这样定义函数int Init(int x=5, int y)。
19.多重继承出现的二义性可以用作用域限定的方法消除。
20.基类的构造函数和析构函数是不能被派生类继承的。
21.类所占空间为数据成员和成员函数所占空间之和。
22.类的析构函数可以是虚函数,也可以重载。
23.类是对象的抽象,对象是类的具体实例。
24.类的成员函数不能访问类的私有成员。
25.无论何种继承形式,派生类均不能直接访问基类的私有成员。
26.友元函数必须是一个类成员函数。
27.友元机制破坏了类的信息封装性。
28.实现流插入运算符重载可以使用类成员函数方式。
29.重载运算符函数不能有默认参数。
30.重载多态是一种运行时多态。
31.通过关键字friend可以声明友元。
32.理论上可以将一个运算符重载为执行任意操作。
33.抽象类一定含有至少一个纯虚函数。
四、简答题
1、如果一个派生类包含有成员对象,其构造函数执行顺序是怎样的?
2、什么是虚函数?如何定义虚函数。
3、什么是对象的赋值,它与对象的复制有什么不同?
4、什么叫虚基类,它的主要作用是什么?
5、什么是抽象类,它有什么特点。
6、什么是纯虚函数?应该如何声明?有什么意义?
7、派生类的成员函数如何访问基类的私有成员?
8、为什么要进行运算符重载?
9、面向对象程序设计有哪些基本特征?
10、已知有类Test,公用成员函数display();简要解释语句Test stu1;stu1.display();并指出语句中的“对象”、“方法”和“消息”。
11、什么是面向对象的程序设计?
12、什么是常对象,如何定义常对象,对其访问有什么规定?
13、构造一个派生类需要做哪些工作?
14、什么是对象的复制,它与对象的赋值有什么不同?
15、类模板有什么作用?如何声明一个类模板。
16、类的静态成员具有什么特点和作用?
17、什么是参数初始化表,有什么作用?
18、类的封装性表现在什么地方?
19、什么是内联函数,一般要求内联函数满足哪些条件?
随着计算机技术的不断发展与普及, 应用计算机技术开发能客观地、公平地考察教学质量的课程试题库势在必然。《工程制图》课程的特点是“图”, 《工程制图》课的试题当然也是以“图”为主, 而且图形还必须严格按照国家机械制图的标准规定绘制。因而选择一个合适的绘图软件做平台来设计《工程制图》试题库尤为关键。Auto CAD是功能强大、应用较广的绘图软件。Auto CAD VBA是嵌入到Auto CAD环境中的VB子集, 承袭了VB的所有语法规则, 具有面向对象的编程方式、模块化的设计方法、可视化界面、易于编程调试的特点, 且有着比Auto Lisp代码快得多的执行速度。因此在Auto CAD环境下开发工程制图试题库系统, 使用VBA要较Auto Lisp和其它语言更方便简捷。
1 试题库总体设计
1.1 设计试题库管理系统流程
为了组卷的方便性和灵活性, 组卷方式设计成自动组卷和交互组卷两种。其管理系统的流程图如图1。
1.2 工程的创建
首先创建一个VBA工程, 并以独立的文件保存。我们可以在任何一个Auto CAD图形文件中加载运行该工程。
1.3 设计窗体
窗体是构成Auto CAD VBA工程的基本模块, 即为应用程序创建的可视化界面。根据设计的试题库管理系统流程图, 设计如图2和图3所示的欢迎进入试题库的窗体和生成试卷的主窗体。
2 设计VBA程序实现工程制图试卷的生成
生成试卷的主要设计思想是:通过“生成卷面”首先将试卷卷面插入到当前CAD文件, 使用“自动选题”将以图形文件保存在某路径下的试题随机地插入到试卷卷面相应的位置来实现自动组卷;通过“互动选题”选中列表框中的试题并将选中试题插入到试卷卷面相应的位置来实现互动组卷。
2.1 标准模块代码设计
通过标准模块可以完成特定功能, 是在应用程序内可以被其它模块访问的过程。
创建“Get File Name”子过程, 功能是:使用列表框的Add Item方法, 将“*.dwg”为后缀的文件 (试题名) 添加到列表框中。它是实现自动选题和互动选题功能的基础。其代码如下:
创建“Insert B”子过程, 其功能是通过调用“Getdata”函数, 将实参 (即试题地址) 传递到数组Name F (8) 的元素单元中去。当调用“Insert B”子过程时, 对数组形参的任何操作都变成了对相应实参 (试题地址) 的操作。另外, 试题已被定义为块, 并以“*.dwg”的图形文件存放在一定的路径下, 所以可以通过使用VBA中的Insert Block方法来实现试题的插入功能。代码如下:
2.2 自动选题代码设计
在生成试卷窗体中, “自动选题”命令按钮为一个对象, 选择与它相对应的click () 事件构成一个对象事件过程, 通过编写相关代码, 来实现系统自动选题功能。其代码如下:
2.3 生成卷面的代码设计
根据教学大纲基本要求, 设计如图4所示的卷面版式以及试题类型。无试题的试卷卷面也已被定义为块并以“*.dwg”的图形文件存放在一定的路径下, 所以可以通过使用VBA中的Insert Block方法来实现插入功能。
代码如下:
2.4 生成试题的代码设计
试题为“*.dwg”的图块文件, 类型不同, 数目较多, 因此在模块中调用“Insert B”子过程来实现将选中的试题插入到当前图形中去。
经过对程序的整体设计和调试, 运行结果会形成一套预期效果的工程制图试卷, 如图5所示。
3 结束语
本设计运用面向对象的程序设计技术, 采用模块化的设计方法和可视化界面, 使得程序的编写和调试变得简单化, 并较好地保证了系统的有效性和扩展性。本设计实现了工程制图课程考试试卷的自动组卷和互动组卷功能, 组题速度快, 方便试题的修改, 并能严格保证试卷的图形标准化要求, 因而具有较好的使用价值。
摘要:运用Auto CAD内嵌的面向对象的VBA语言设计了工程制图试题库模块程序, 实现了试卷的自动组卷和互动组卷功能。设计的试题库系统组题速度快, 修改方便, 具备良好的互动性和扩展性, 并能严格保证试卷的图形标准化要求。
关键词:VBA,试题库,程序设计
参考文献
[1]张帆.AutoCAD VBA精彩实例开发[M].北京:清华大学出版社, 2000.
[2]李凤华.AutoCAD2002/2000VBA开发指南[M].北京:清华大学出版社, 2001.
[3]徐源, 荆冰彬, 贺利乐.AutoCAD2000二次开发技术[M].北京:人民交通出版社, 2000.
[4]SHAM TICKOO.AutoCAD2000高级定制[M].北京:机械工业出版社, 1999.
[5]SHAM TICKOO.AutoCAD2000命令参考手册[M].北京:机械工业出版社, 2000.
[6]张国宝.AutoCAD2000VBA开发技术[M].北京:清华大学出版社, 2000.
[7]胡荣, 喻宁.AutoCAD2000开发工具[M].北京:人民邮电出版社, 1999.
【关键词】 题库 网络 计算机基础 教学
1. 引言
计算机技术的高速发展,人们的生产及生活已然离不开计算机,国家对信息化的教育越来越重视。在这一信息化的现代社中,学生信息技术应用的深度和广度逐渐的成为一个国家判断人才是否适用于现代社会发展的重要标志。[1]学校的计算机基础教育肩负着培养学生掌握计算机基本操作技能及信息获取的能力。因此,各高校纷纷进行教学改革,构建基于网络的教学平台,笔者在此基础上提出题库系统的设计思路。
2. “THEOL”网络教学平台应用现状
网络教学平台又称在线教学平台、网络教学管理系统、数字化教学系统等,是根据实际需求构建的基于互联网的教学管理与沟通平台,包括课程制作、教学材料建设、网上教学、在线交流、课程作业、网上学习、在线测试等多种服务的综合教学支撑平台,全面支持教学的各个环节。[2]目前许多高校引进了清华大学的“THEOL”网络教学平台,该平台的“课程作业”及“在线测试”的应用颇受教师的喜爱,也取得了一定的成效,但是对于计算机基础教学而言,其效果并不是那么完善,体现在:一方面,教学平台的作业不能实现自动改卷,教师要掌握好学生的作业,必须得手动批改,每节课的作业都进行批改,再加上课外作业,对于教师而言压力是巨大的。另一方面,在线测试虽然能进行自动改卷,学生点提交作业后马上能看到成绩及查看错题,但能实现的只是理论题目的测试。这对于理论性的课程的应用还是比较广泛,但计算机基础教育要求的是学生的动手能力,掌握一定的理论知识那是必段,但技能操作的培养尤为重要,明显这一块的功能不能满足需求。
3. 题库系统的构建
本系统的设计采用B/S结构模式,系统以访问Web数据库为中心,采用Internet/Intranet技术,HTTP传输协议,客户端通过浏览器访问服务器和与其相连的后台数据库,实现数据服务器、网络服务器以及网页浏览器的三层体系结构,称之为Browse/Server模式。本系统与网络教学平台相结合,目的是利用优越的数字化校园条件,使课堂从封闭走向开放,为大学生营造了一个理想的个性化学习环境。只要在校园网内,学生可通过网络登录,选适合自己的,进行随时随地的练习。与此同时,为教师对教学管理创设了更好的平台。通过调研分析,确实本系统的主要功能模块构架分为章节选择、综合练习、教学视频、考试四个模块,各功能模块说明如下:
(1)章节选择模块。主要分为打字测试及Office办公软件中的各个模块部分。打字测试类似于金山打字通,学生在打字练习后点提交,系统会根据学生的速度及准确率评出成绩,评出英雄榜,以激发学生的学习兴趣及竞争力。操作性的课程步骤比较多,传统的上机教学为老师全程演示一遍后再让学生练习,最后发现步骤太多,学生不好掌握。该系统中将Office办公软件各个模块部分又细分为知识点的练习,这样教师每讲完一个知识点即可让学生进行练习,且是多次练习,提交后教师立马可知学生的掌握情况。在学生练习的环境中做对时系统会给出成功提示,而错误时学生可选择“手把手”视频教学,练习完后还可以选择错题练习,如此便可得到巩固。另外,各模块练习中又有难度分层,分为基本练习、中高级练习两个部分,便于教师对班级学生进行分层教学。
(2)综合练习模块。主要分为章节综合及课程综合两个部分,功能如上部分所述,主要为了掌握学生整体把握的情况。
(3)教学视频模块。分为计算机组装与基本维护、优秀案例两个部分。像是手机的普及,现在计算机普及为人手一台已不是新鲜事,它已成为我们日常生活中不可或缺的必备品,这就使得计算机的基础装机及维修维护已不只是专业人员做的事情,我们每一个人都要懂得一些基本的常识。因此,本系统第一部分提供的是计算机组装及日常问题处理的教学视频,免去看文字的枯燥。第二部分为优秀案例,主要是放一些优秀的作品,附有相应的作品说明、素材及制作视频,来提高学生的素养及创造力。
(4)考试模块。传统的期末考试大都为教师统一出一份卷,学生考完上交后教师逐一改卷评分。一来教师改卷时间长,工作量大,且在改善过程中难免会出现错改或漏改的现象,这样对考生不公平;二来学生可以通过单机查找或邮件发送等形式来进行考试作弊,不利于教学评价。利用本系统来进行考试,由于题库量非常大,系统可以随机出题,从避免作弊现象的发生。同时,只要学生点击提交,系统则会立刻进行评分,学生即可查看到自己的考试成绩,体现了公平公正。
4. 结束语
熟练掌握计算机应用技能是对新时代大学生的要求,所以高校学生基本都要求进行全国高校计算机等级考试,以是否过级来检测是否掌握计算机技术的基本应用,本系统的应用对于学生更好更快地通过等级考试无非是一个利器。但与此同时,笔者不希望本系统成为学生过级的“佛祖”,以通过等级考试作为唯一目的来进行题海战术来训练学生过级,这样则违背了我们素质化教育的初衷了。本系统的设计与开发,旨在方便教师的教学安排,从繁冗的改题中解脱出来,有更多的时间来进行教学设计;旨在提高学生的学习兴趣,激发学生的动力;旨在进一步完善考试的格局。
【参考文献】
[1]陈晓瑜.利用Blackboard构建“信息检索课”远程教学平台开展在线信息素质教育的实践与体会[J].图书与情报,2009(05):67-68.
[2]孙开岩.计算机基础网络教学平台的应用研究[J].产业与科技论坛,2012(10):94-95.
(考试时间120分钟,总分100分)
说明:
1、比赛使用语言:C、C++、VB2、题目完成后,存放在D:Test下以题号名单的文件夹当中
班别:姓名:机号:成绩:
1、输入一个摄氏温度,要求输出华氏温度,公式为F=
C代表华氏温度,结果取两位小数。(10分)
2、输入整数a、b、c,由小到大输出。(10分)
3、计算74和68公约数的和。(15分)
4、一电文(由字母和数字组成)字母按以下规则加密:(20分)
A->Za->z
B->Yb->y
C->Xc->x
。。
即第一个字母变成第26个字母,第i个字母编程第(26-i+1)个字母。
而数字变化规则如下:
0->9
1->8
2->7
。。
即第一个数字0变成9,第数字i变成(9-i)
求编写程序将电文加密
5、接上题,求解密程序。(20分)
6、魔方方阵是指方阵的每一行、每一列、对角线之和均相等,例如三阶的魔方方阵为:816
357
492
魔方方阵数字排列规则如下:
(1)、将“1”放在第一行中间的一列。
(2)、从“2”开始直到N×N(N为阶数)止各数按以下规则存放:每一个数存放行比
前一个数的行数减
1、列数加1
(3)、如果目前该数的行数为1,则下一个数的行数为N(最下面行)
(4)、如果目前该数的烈数为N,则下一个数的列数为1
(5)、按以上规则:如果当要存放数的位置已经有数存在、或者要存放的数是在第一行
时,则把要存放的数放在前一个数的下面。
实验一熟悉C程序的运行环境和运行一个C程序的方法
一、实验目的1.熟悉C语言编程环境创天中文版VC++6.0,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
1.建立自己的文件夹
在磁盘上新建一个文件夹,用于存放C程序,如C:liming
2.调用编辑程序
在屏幕上显示一个短句“Hello World!”。输入以下程序,并进行编译和运行。源程序
#include
int main(void)
{
printf(“Hello World!n”);
return 0;
}
运行结果
Hello World!
具体操作步骤见《C语言程序设计实验指导》第1页-第4页。
3.编程题1
在屏幕上显示一个短句“What is a computer?”
4.编程题2
改写下列程序,求1-100中能被6整除的所有整数的和,并在编程环境中验证该程序的运行结果。
#include
int main(void)
{
int i, sum=0;
for(i=1;i<=100;i++)
if(i%2= = 0)sum=sum+i;
printf(“%d”, sum);
return 0;
}
1.一维数组的定义方式为:
类型说明符数组名[常量表达式]
(1)数组名的命名方法与变量名相同,遵循标识符命名规则;
(2)数组是用方括号括起来的常量表达式,不能用圆括号;
(3)常量表达式表示数组元素的个数,即数组的长度,数组的下标从0开始,下标的最大值为:常量表达式-1;
(4)常量表达式中可以包括常量和符号常量,不能包括变量。
可以用赋值语句或输入语句使数组中的元素得到值,但要占用运行时间。可以使数组在运行之前初始化,即在编译阶段使之得到初值。
2.对数组初始化可以用以下方法实现:
(1)在定义数组时对数组元素赋以初值。如:
staticinta[10]={0,1,2,3,4,5,6,7,8,9};
经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。
(2)初始化时可以只对一部分元素赋初值。例如:
staticinta[10]={0,1,2,3,4};
定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。
(3)如果想使一个数组的元素值全部为0,可以用下面的方法:
staticinta[10]={0,0,0,0,0,0,0,0,0,0};
不能用:
staticinta[10]={0*10};
如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。
(4)在对全部数组元素赋初值时,可以不指定数组长度。
3.一维数组的引用方法是:
C语言规定不能一次引用整个数组,引用时只能逐个元素引用,数组元素的表示形式为:
数组名[下标]
下标可以是整型常量或整型表达式。如:
a[0]=a[5]+a[7]-a[2*3];
二维数组的定义、初始化和引用
1.二维数组定义的一般形式为
类型说明符数组名[常量表达式][常量表达式]
C语言采用上述定义方法,我们可以把二维数组看做是一种特殊的一维数组:它的元素又是一维数组。在C语言中,二维数组中元素的排列顺序是:先按行存放,再按列存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。
2.二维数组的初始化:二维数组可以用下面的方法初始化:
(1)分行给二维数组赋初值。如:
staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
以上赋值把第一个花括号内的数据赋给第一行元素,第二个花括号内数据赋给第二元素…,即按行赋值。
(2)可以将所有的数据写在一个花括号内,按数组排列的顺序对各元素赋值。
(3)可以对数组的部分元素赋初值。如:
staticinta[3][4]={{1},{5},{9}};
以上赋值的结果是:数组第一列的元素分别赋了初值1,5,9,其余元素的值都是0。
(4)如果对二维数组的全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
3.二维数组的引用:二维数组的元素可以表示为:
数组[下标][下标]
在引用二维数组时,必须是单个元素,不能是整个数组名。下标可以是一个表达式,但不能是变量。如果下标是一个表达式,注意表达式的值不能超出数组定义的上、下限。
1.计算机二级C语言程序设计考点:函数
2.计算机二级C语言程序设计考点:指针
3.计算机二级C语言考点:字符型数据
4.计算机二级c语言试题
5.计算机二级office考点
6.计算机考试二级C++语言程序设计考试大纲
7.全国计算机二级考试C++语言程序设计大纲
8.计算机等级考试二级C语言程序设计考试大纲
9.2017计算机考试二级C语言程序设计考试大纲
关键词:教学内容,课堂设计,教育教学
学生掌握编制计算机程序解决问题的知识与技能的过程, 能在V B工作环境中编写简单的计算机程序解决实际问题。体验程序设计的独特魅力。在分析问题的基础上, 感受算法的设计思想和算法描述。在完成算法设计的基础上, 体会编写程序、调试、运行和检测结果各环节的作用。
一、创设课堂情境, 引入新知课程
引入本节课的学习任务, 让学生通过的士费用计算器实例的学习, 了解程序设计的过程。从身边生活中常见的实例出发, 来引出需要解决的问题, 激发学生对程序设计的兴趣, 调动学生的主动性和积极性。
二、讲解传授新课, 生活案例分析
案例:设计一款出租车计价器。市内出租车收费标准如下:2公里以内, 收人民币6元;超出2公里后, 每公里1.8元。
(一) 界面设计
V B是一种可视化的编程工具, 其整个用户界面的设计都是基于“可视化操作”的, 这对于有一定的W indows操作基础的高一学生来说并不是一件难事。界面设计在V B程序设计中占有重要地位, 一个好的界面, 不但要令人感觉良好, 还要使程序方便易用。让学生熟练掌握V B界面的设计是进行V B程序设计的前提。V B界面的设计主要包括控件的绘制及各控件属性的设置两种工作。
任务:让学生设计的士费用计算器”的主界面。
目的:让学生了解掌握V B界面设计的方法。
“的士费用计算器”的主界面所用到的2个标签、2个命令按钮及2个文本框对应的属性如左下表所示。
(二) 编写事件代码
这是V B程序教学的重难点, 也是本节课教学的重难点之所在。教学中应把程序代码的编写重点放在算法 (解决问题的方法和步骤) 上面。为提高学生分析问题的能力, 我为学生总结出了一条V B编程的思路:根据题目要求, 先分析需要几个控件 (界面设计) , 接着分析要创建什么事件, 在每个事件中涉及到哪些控件的属性的变化, 还要考虑发生该事件前可能出现的情况 (编写代码) , 那么通过分析, V B代码的编写问题就能迎刃而解了。
提高中学生分析问题的能力是在中学开展程序设计课程的重要原因之一。因此, 让学生按照某种可行的思路来分析、解决问题, 无疑对提高他们分析问题的能力有很大帮助。
1. 编写代码前的分析 (以提问的方式让学生思考) 。
提问:根据案例的要求, 的士费用的计算按里程分为几段?
回答:3段。
依据数学知识, 建立数学模型, 分析每段的士费用的计算方法。设里程数为x, 的士费为Y。
提问:根据题目要求, 哪个对象作用能够计算出的士费?
回答:确定按钮 (Com m and1) 。
提问:确定按钮 (Com m and1) 的什么动作触发了计算?
回答:单击 (Click) 。
提问:Com m and1的Click事件涉及到什么的什么属性的变化?
回答:涉及到Text2控件的text属性变化。
总结:我们要创建com m and1的事件代码, 里面涉及到了text2的text属性的变化, 并应从text1的text属性中取得所输入的值, 还应考虑三种情况。
2. 编写代码。
让学生根据前面分析的结果编写代码。可以让每四个学生一组, 每位同学负责三种情况中任一种的代码编写, 最后再合起来成为完整的一部分。这样可以培养学生自主完成任务的能力, 初步培养学生分工合作完成一项任务的团队精神, 从而增加学生在解决问题的学习态度上的严谨客观性, 学生在课堂上的学习成就感也会油然而生。
(三) 清除按钮的代码编写
分析:清除按钮实际上是将程序恢复到初始化 (刚开始时) 的状态, 故只需将text1及text2的text属性改为原来的状态即可。
三、分析了解问题, 师生交流总结
对本节课所学内容进行简单总结, 对学生上机时出现的问题进行归纳、点评。通过让学生自主编制程序解决实际问题, 了解编制计算机程序解决实际问题的一般过程和方法。理解算法设计的思想, 初步掌握在V B环境中编写简单程序。激发学生的成就感, 培养学生的创新能力。
关键词 计算机;程序设计;课程;教学方法
中图分类号 G4 文献标识码 A 文章编号 1673-9671-(2010)082-0176-01
计算机程序就像人的大脑一样,起着总指挥的作用,如果计算机没有程序,将不会发出任何指令,什么也做不成,只是成为一个摆设。所以开展计算机程序设计课程的教学,是开发好计算机资源的关键点。对于我们目前接触的计算机程序设计课程是非常广泛的,有《VisualC++程序设计》、《C语言程序设计》、《VisualFoxpro程序设计》、《Java》、《PowerBuilder》等等方面。而目前学生对于学习计算机的程序设计总感到枯燥难学,学习显得很被动、机械,没有学习兴趣,甚至是畏惧。教师在计算机程序教学中,也感到难于教学,上课时往往采取填鸭式的教学方式,其结果是收效甚微。而对于职业学院的要求是培养应用性,市场性的综合性的人才是相违背的,教师只有在教学上不断改变教学方法,来培养学生更好的学习计算机程序设计的教学方式方法。
1 以“教师为主导、学生为主体”的计算机实际操作方式
以“教师为主导、学生为主体”的计算机实际操作教学,其一是让学生有更多自我学习的时间,让他们主动探索其知识的深奥点,从认识问题开始,到独立解决问题的过程,让学生感悟到理论知识的指导与实际操作的区别。其二是教师应该发挥主导作用的地位,教师在计算机程序设计方面的认识先于学生,并且高于学生。而很多学生在学习时是没有目标的学习,对于没有目标的学习是盲目的学习,所以教师应明确教学目标上起主导作用。在每一节课上,教师要根据教材和学生的实际制订合适的教学目标。并巧设训练题,和对重点、难点、疑点的知识进行主导作用的教学。如生产程序是用COBOL、BASIC這样的POL编制的,而在POL中一个指令序列是采用一条接着一条执行的,其中就会涉及到一组指令集。包括计算指令,数据传送指令,输入/输出指令,控制[判定和(或)转移]指令,格式语句等。学生在这些方面认识上就显得很肤浅,教师这时就要起到主导作用,引导学生在计算机上进行实际操作,并发现问题解决问题。让他们真正在学习东西,并且跟着自己的思维方式和爱好在进行。同时还能加深对一些指令的认识作用,例如记住“IF”语句来表示条件转移指令,“GOTO”语句来表示无条件转移指令,“END”语句终止程序的执行。
2 计算机实例教学方法
教师在进行计算机程序设计教学时,一定要注重实例的教学方法。如教师在教学《VisualFoxpro程序设计》时,首先面对的是课本中一系列的在程序设计中比较抽象难懂的概念,包括对象、对象的属性、方法和事件及VisualFoxpro语言基础等等知识。在把这一系列的概念让学生学习后,才进行程序的建立和运行的学习。这样学习不仅显得枯燥,而且学习吸收效果差,根本引不起学生的注意,培养不起学生的兴趣爱好。教师在引入这些知识时,应该是伴随着实例的教学进行,让学生看见通过一些程序的设计就会发现一些神奇的变化现象,让学生有想更深入的了解的欲望。例如设计一个为打开证券客户关系表,让其输入一个控制口令控制程序的执行,当其口令为1时,那么需要把“银行代码”为“001”的所有记录加上删除标记;当其口令为2时,那么需要把“银行代码”为“002”的所有记录加上删除标记;当其口令为3时,那么需要把“银行代码”为“003”的所有记录加上删除标记,也就是以此类推。这程序是:CLEAR,USE银行客户关系表BROWSELAST和EXCLUSIVE等。对于TOyhdm,DOCASE,yhdm=“1”,DELETEALLFOR证券代码=“001”,BROWSEALLFOR证券代码=“001”,RECALL,CASE,yhdm=“2”,DELETEALLFOR证券代码=“002”,BROWSEALLFOR证券代码=“002”,RECALL,CASE,yhdm=“3”,DELETEALLFOR证券代码=“003”,BROWSEALLFOR证券代码=“003”,RECALL,ENDCASE,BROWSE,USE。在这样操作后,让后再看这个程序设计的结果,同学就会发现在这样的代码和符号下,就会发现惊奇的变化是多么的欣喜若狂。会更加喜欢这样的程序设计教学课。
3 计算机程序设计的问题讨论教学
问题讨论教学更体现了一种发散思维的教学,在教师提出一个问题,让学生进行自由的讨论学习,学生可以根据自己的想法思维进行对问题的解决,并且全班同学在一起进行讨论学生,互相能够学习别的同学另类的思想和自己的不足,从而把教学推向了更深次的教学,把实践性学生融于到了教学中,使学生能够很好的融入到以后的学习工作中,更好的进行计算机程序设计的意义。如C语言中有这样一个题,让学生学习。其程序是#include
总而言之,教师的教学方法好坏,直接影响到学生学习的好坏,教师应该在工作中不断总结经验,不断创新其教学方法,让学生在计算机程序设计中能够学到东西,而且是愉快的学习。但是教师在创新教育教学的同时,还需要同学的配合,因为教学必定是双边过程,教师教学生一定要学,才能把教学开展好。
参考文献
[1]苗,金炳尧.支架式教学方法在计算机程序设计课中的应用研究[J].实验室研究与探索,2007,04.
[2]张冬云.程序设计语言.教学与专业课结合,培养学生计算机应用能力[J].广西大学学报(哲学社会科学版),2001,S1.
[3]肖潇.对普通高校计算机程序设计教学的思考与实践[J].电脑知识与技术(学术交流),2007,1.
[4]杨春.初学C语言程序设计的基本方法和技巧[J].人力资源管理,2010,01.
【计算机程序设计员题库】推荐阅读:
可编程计算器测绘程序设计探讨论文11-04
计算机基础题库10-29
计算机基础题库判断07-19
计算机上机考试题库09-25
用VB编写定时关闭计算机的程序VB10-19
电大计算机网考选择题库09-29
用计算器计算教学设计10-05
计算机辅助设计绘图员简历06-02
二、计算机的组成 教学设计06-11