C++语言程序设计基础知识

C++语言程序设计基础知识
C++语言程序设计基础知识

第12章 面向对象程序设计与C++基础

程序设计语言是编写程序的工具,程序设计语言的发展反映了程序设计方法的演变过程。随着计算机技术的日新月异,要求软件具有良好的可重用性和可扩展性,这就导致程序设计方法从结构化程序设计方式转变到面向对象程序设计方式。C 语言能够很好地支持结构化程序设计,C++不仅兼容C ,同时具有面向对象的特征,因此充分支持面向对象程序设计。 面向对象程序设计的基本概念

面向对象技术变革了软件设计的传统方法。解决结构化程序设计不足的方法就是限制数据的存取权限,面向对象程序设计把数据和使用此数据的过程封装成一个类(类可看成是一个基本数据类型)。数据的封装和隐藏一方面使得内部数据不被破坏,另一方面程序具有良好的可读性和相对独立性。类的继承机制不仅提高了代码的可重用性,降低了软件开发难度和开发周期,同时程序的修改变得容易,软件结构更加稳定,软件的可维护性大大提高。

面向对象软件系统由类的层次结构组成,类的具体实例叫做对象,对象之间通过彼此的联系,共同实现程序的功能。如图12-1所示。

面向对象程序设计方法提出一些全新的概念:对象、类、封装、数据隐藏、继承和多态性等。多态性、数据封装和继承共同构筑了面向对象程序设计的三大机制。 1. 类与对象

面向对象的方法学认为,客观世界由对象组成,对象有自己独特的特征和行为,两者密不可分。

面向对象的软件技术中,类是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。对象可看成类的具体实例。图12-2描述了洗衣机类。

【例12-1】 在现实世界中,钢笔具有笔帽、笔体、笔

尖、颜色、形状等属性特征,钢笔具有的行为是书写、灌钢笔水。钢笔作为一个整体,具有独特的属性和行为,它们将被抽象成一个钢笔类。这种自成一体性称为封装性。而你正在使用的钢笔,可以看成钢笔类中的一个具体实例。我们不必关心钢笔的内部结构及实现细节,仅利用钢笔对外提供的操作,即外部接口,就可以方便地使用钢笔。

【例12-2】 对于整型类型的数据,可以定义对它的四则运算,这是整型数据具有的行为,四则运算与整型数据封装成一体,命名为“int 类”。字符型运算和逻辑运算不可以访问、修改int 类中的数据,只有int 类中定义的四则运算才能对其进行操作。显然,我们也无需知道四则运算是如何定义的,int 类对外界提供的操作接口是“+”、“-”、“*”、“/”,可以直接利用这些接口实现整数的四则运算,这叫做数据的隐藏性。 2. 数据的封装和隐藏

封装强调的是数据和行为的自成一体性,也就是将数据和操作数据的函数代码进行有机的结合,

类的层次结构

图12-1 面向对象软件系统

图12-2 洗衣机类示意图

形成“类”。封装具有如下意义:

1) 面向对象的程序表现出强烈的可读性和独立性。

2) 程序不依赖数据结构的改变,具有良好的可维护性。当数据结构改变时,只有类中对数据进行操作的函数需要修改,程序的其他部分不受影响。

3) 对数据起到一定的保护作用。只有类中的函数才可以修改类中的私有数据。

隐藏是指类把对数据的操作信息隐藏在内部,只提供对象对外的操作接口,用户只能看见对象封装接口上的信息,这样可以保护内部数据不被破坏,同时使用者使用起来非常方便,并可以容易地将其扩展成新的产品。 3. 类的继承

类的继承是指新的派生类可以继承原有父类的全部数据和操作的机制,并可以在派生类中添加新的数据和操作方法。新的派生类又叫子类,原有父类又叫基类或超类。例如,想生产敞篷汽车不用从草图开始,只需要对原有的产品添加新的敞篷功能,这样就会快速开发出一种新的产品。利用类的继承特性,可以非常方便地产生一系列具有相似特征的对象。

再看一个类继承的例子。在小学,我们学过数的四则运算,到中学会进一步学到对数、指数等运算,到大学将学到微积分等内容。我们每一次的进步都将继承已学过的知识,在已有的基础上不断扩充新的知识。 4. 消息

对象之间通过消息相互联系,也是通过消息让某一个对象完成一定的功能。例如,给洗衣机对象发洗涤的操作信号,洗衣机就会执行洗涤的功能。

在面向对象的程序设计中,消息名就是在对象中定义的操作(或称方法),给对象发消息,就是让对象执行某一操作,使对象具有行为的能力。如图12-3所示。

5. 多态性

多态性表示同一种东西有多种形态。例如,与对方通信,这个动作将有多种表现形态,如采用写信的方式、打电话、发电报、发电子邮件等。

在面向对象的程序设计中,多态性是指同一个(或相似的)操作作用于不同的对象上可以有不同的独特行为,比如add 操作,作用在实数对象上,表现为两个实数相加,作用在虚数对象上,表现为两个虚数相加。

面向对象的C++语言允许程序员给不同的对象发同一消息,软件系统会做出决策,即到底执行什么动作。在静态(编译或连接)时就可以分辨的,可通过函数重载实现;在运行时才能分辨的,可通过虚函数实现。

利用多态性,用户能够发送一般形式的消息,而将所有的实现细节留给接收消息的对象。这种高层次的抽象, 使得多态性、数据封装和继承共同构筑了面向对象程序设计的三大机制。 面向对象程序设计语言C++简介

C 语言是一种受到广泛重视和应用的面向过程编程的语言,它采用结构化程序设计技术,即把复杂的模块层层分解为一系列简单模块。人们侧重于开发具有特定功能的函数,而有些数据(特别是全局数据)在函数间可随意传递。

求面积

在C++中的表示:

A 求面积(边长,顶点坐标)

图12-3 消息机制

结构化程序设计语言无法处理高度复杂的程序,为了弥补结构化C 语言的不足,支持面向对象的程序设计的C++语言应运而生。C++语言是一种混合性语言,保留了C 语言的全部内容,同时扩展了C 语言所不具有的面向对象编程的机制。

C++在技术上与C 完全兼容,但它具有与C 语言完全不同的思维方式,即支持面向对象的程序设计思想,强调对数据进行封装、保护等深入的维护,强调软件的可扩展性、可修改性和可维护性。 利用C++语言可以进行结构化编程, 更重要的功能是进行面向对象的编程。 C++程序结构

本小节主要介绍两个程序, 一个是面向过程的C++程序,见例12-3; 一个是面向对象的C++程序,见例12-4。通过这两个实例,读者可以对C++程序结构有个初步认识。 【例12-3】 以下程序实现输入一个整数,求平方根并打印出来。

注释行 C++的注释有两种类型:一种是沿用C 语言的方法,采用“/*”和

“*/”括起来进

行注释,另一种方法是只能用于C++的单行注释,即从“C++的cin 与cout

cout 、cin 是C++语言中增加的用来输出和输入的函数,分别代表输出设备对象和输入设备对象。cout 和cin 函数的使用方式不随变量的类型变化,这正是面向对象语言所追求的。

cout 是代表标准输出的流设备,如显示屏。输出操作必须配合操作符“〈〈”,表示把该操作符右边的数据输出到显示屏上。cin 是代表标准输入的流设备,如输入设备键盘。输入操作必须配合操作符“〉〉”,代表从标准输入设备读取数据到内存。 cin 与cout 定义在输入输出流头文件中。 3. 关键字const 定义符号常量

C++中的符号常量使用关键字const 来说明,其一般形式: const 类型说明符 常量名=常量值 或

类型说明符

const 常量名=常量值

例如:定义一个buf 的常量。 const int buf=512 或

int const buf=512 4. new 和delete 运算符

C++新增new 和delete 作为动态内存分配和释放的操作符,用来增强C 语言中原有的函数malloc 和free ,提高了内存管理的灵活性。例如: int *p; 引用作为函数参数

C++新增了引用,它使函数调用变得清晰、简单,参数传递效率更高。同时,将引用作为函数参数给编程带来了很大的灵活性。

引用可看成某个目标变量的别名,对引用的操作,实际上就是对目标变量的操作,引用与目标变量完全对应。一旦用目标变量给引用赋初值,引用就被维系在该目标变量上,即引用不会再与其他目标变量建立联系。引用不能是空,与此相反,指针变量可以为空。 声明并初始化引用的一般格式: 数据类型& 引用名=目标变量;

其中,“数据类型”是定义目标变量的类型,而“数据类型&”是用来声明引用的。例如:

对象A

i

图12-4 定义类的对象A

对象A

i

图12-5对象A 初始化

int m;

int& kk=m; 函数返回类型是引用

当函数返回类型不是引用时,实际上是在内存中开辟临时空间存放函数返回的值,而函数返回类型是引用时,不需要这样一个中间过程,即不需要产生临时变量以存放返回值,而直接把返回值传回到主函数中,从而大大提高程序执行的效率,同样也节省了空间。

注意不要返回不在主函数作用域内的变量或对象的引用。

【例12-7】返回引用类型的应用。

#include

using namespace std;

int large;

int& max(x,y)

{

large=(x>y)x:y;

return large; 内联函数

为了减少函数调用的开销,C++引入了内联函数。内联函数的功能是强迫C++编译程序直接使用函数体代码替换调用语句,以提高程序的运行速度。

内联函数定义的一般形式:

inline 函数类型函数名(形参表)

{

函数体

}

如果在类的声明中直接给出成员函数的定义,该成员函数默认为内联函数。通常只将规模较小又使用频繁的函数设计为内联函数。

8. 带默认形参值的函数

C++允许定义带多个默认形参值的函数。例如,设函数原型声明情况如下:

int change(int x=10, int y=20);

则函数调用情况如下:

change(40); 类的定义

类是由成员组成的,包括一组数据成员和成员函数,其定义的一般形式:

class 类名

{

private:

私有数据和成员函数

public:

公有数据和成员函数

protected:

保护数据和成员函数

};

类的名称由关键字class开始,类的定义体夹在一对花括号{}中,后面可以跟分号,或一组属于该类的对象。

类内的一组成员变量和成员函数可以有以下三种类型:私有数据类型(private)、保护数据类型(protected)、公有数据类型(public)。

如果用private来说明类的数据和成员函数,则意味着它们只能被该类中定义的成员函数和友元函数访问。通常数据默认为私有类型,私有类型的保留字private可以省略。

如果用protected来说明类的数据和成员函数,则意味着它们只能被该类中的成员函数、友元函数、该类的派生类中的成员函数所访问。

如果用public来说明类的数据和成员函数,意味着可以在类的外部(不通过类的成员函数,如主函数)存取数据。类中的公有成员函数提供了该类对外的接口,即通过公有成员函数,才可以访问类的私有数据。

2. 类的成员

类的数据成员不仅包含普通的数据变量,而且还可以包含其他类的对象。类是一种新的数据类型,而对象可看成是由类定义的变量。类的成员函数对类内的数据成员施加操作,实现类的特定功能。若成员函数很小,可以在类内定义,反之,一般在类外定义。

数据成员通常定义为私有或保护类型,以便隐藏和保护数据。成员函数通常定义为公有类型,目的是提供对外的接口,以便能够对类访问。

为了在类外定义成员函数,必须指出该成员函数是属于哪个类的,C++中引入了一个符号“::”,称为作用域运算符。

在类外定义成员函数的一般形式:

函数返回类型类名::成员函数名(形参表)

{

函数体

}

3. 对象的定义

类是对具有相同属性和行为的一组相似对象的抽象,而对象是类的具体实例。类可看成是一个抽象的数据类型,而类的对象就是属于类的一个具体变量。

类不是一个占有内存的实体,但对象却是。创建类中的对象,就是在内存中创建具体的对象,其含义就是在内存中为类中的数据分配存储空间,它们是对象的具体体现。

通常在子函数中、主函数中以及函数的前面采用如下方式定义对象:

类名对象名;

这种方式使得对象如普通变量一样,具有一定的作用域(生存期)。

4. 类成员的使用

类中的成员,包括数据成员和成员函数。有了对象,若想使用类中的公有成员,可采用以下形式:对象名. 公有数据成员

对象名. 公有成员函数

例如,(); 是指给对象m发消息input(),对象m执行input()函数。

注意类中的私有数据只能通过该类的成员函数进行访问,类中的保护数据可被该类的成员函数以及该类的派生类的成员函数或友元函数所访问。

5. 类成员的初始化

(1) 数据成员初始化

类中公有数据成员可像普通变量一样使用,可在定义对象后,在需要时赋初值。假设有一公有数据num,对象名为A,则用如下方式初始化:

=10; 构造函数

在C++中通常自动初始化对象的数据。为了做到这一点,可以定义一个特殊的成员函数,它的名字与类名相同,称为构造函数。构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。当我们定义属于类的对象时,系统就自动执行构造函数,初始化具体的对象。

如果程序没有声明构造函数,系统会自动地为程序设置一个,此构造函数什么也不做。对象在创建时只是被分配空间,具体的初值只能由用户定义的初始化函数来实现。

关于构造函数,给出以下几点说明: 1) 构造函数与类名相同。

2) 构造函数没有返回类型,也不能是void 类型。 3) 构造函数不能被随意调用,由系统自动调用。

4) 构造函数可以重载,可以带默认形参,可以是内联函数。

5) 构造函数可以带参数也可不带参数,不带参数的构造函数称为默认的构造函数。 2. 析构函数

此外,C++还提供了一种特殊的成员函数,叫做析构函数。当对象被取消时,系统首先会自动调用类的析构函数,然后撤销对象(释放对象所占用的存储空间)。如果程序中没有声明析构函数,则系统会自动为程序设置一个析构函数。如果用new()函数动态分配对象,当动态对象被取消时,系统会调用析构函数。因此,通常在析构函数中设置delete()函数就会自动撤销动态对象。 关于析构函数,给出以下几点说明:

1) 析构函数的名称与类名相同,但前面加符号“~”。 2) 析构函数没有返回类型,也不能是void 类型,没有参数。 3) 析构函数由系统自动调用,不能随意调用,不能重载。 4) 一个类中只能有一个析构函数。

5) 基类的析构函数可以是虚函数,以便系统调用派生类析构函数,撤销其对象。

【例12-8】 编写一个日期类DATE ,对年、月、日进行管理,能响应询问日期及判断是否闰年。

#include using namespace std; class DATE{

派生类

在C++中,派生类从一个基类继承的一般形式: class 派生类名:public 基类名 {

成员变量和成员函数声明; }

其中,派生类名是新类名,public 是最常用的继承方式,本章主要介绍public 继承方式。此外,还有private 、protected 继承方式,其特殊性可参考其他C++教材。

注意 1) 自动从基类继承下来的所有成员变量和成员函数不在派生类的定义中出现,但若需要在派生类中重新定义基类的成员函数,就必须在派生类的声明中列出来,并为其赋予一个新定义,这如同在派生类中新增一个成员函数。

2) 任何其他类(包括派生类)的成员函数定义中,不能直接根据名称访问继承下来的基类私有成员变量,但可以使用基类中定义的成员函数间接访问基类的私有成员变量。 3) 私有成员函数根本不会被继承。

【例12-10】 派生类程序示例(基类是例12-8中定义的DATE 类)。

基类的protected 成员

不能在派生类的定义或实现中直接用名称访问基类的私有成员变量。但如果在基类中把成员变量和成员函数标记为protected 性质,则在其派生类(以及派生类的派生类)中不仅能继承下来,且可以用名称直接访问,其性质保持为protected 。而在其他任何类或函数中,等同于用private 来标记。

year month day

对象A

图12-6 实例化类中的对象

图12-7 派生类对象实体

C++中的多态性、函数重载和虚函数

多态性是面向对象程序设计的重要特征之一。继承重点研究类与类的层次,多态则研究在不同层次的类中,同名成员函数的关系。所谓多态性就是同样的接口有不同的功能,同样的消息被不同的对象接收时产生不同的行为。C++获得多态性的方式是函数重载、运算符重载和利用虚函数来实现。

1. 函数重载

普通函数、类的成员函数和友元函数都可以重载。函数重载是指函数名相同,但参数的类型和数量可以不同。系统根据其参数个数、参数类型,调用相应的函数,执行特定的功能。函数重载的意义在于能使用户为某类操作起一个通用的名字,由编译器在编译时来确定选择哪个函数来执行某一操作,从而降低了程序的复杂性。

【例12-11】编写两个函数,分别求整型数和浮点型数的最大值。

#include

using namespace std;

int max(int a,int b);

double max(double a, double b);

int max(int a, int b)

{ return (a>b a:b);}

double max(double a, double b)

{ return (a>b a:b);}

void main()

{ cout<

运行结果:

5

2. 虚函数与纯虚函数

虚函数可以使程序在运行过程中动态地确定操作所针对的具体对象,从而实现运行时的多态性。声明虚函数的方法是在基类中的成员函数原型前加上virtual。虚函数可以在一个或多个派生类中重复定义,但要求必须与基类中的函数原型完全相同。这时,无论在派生类的相应成员函数前是否加上关键字virtual,都将视其为虚函数。

在实际应用中,通常把基类中的虚函数定义为纯虚函数,即只在基类中声明虚函数,而不定义其函数体,将它的具体定义放到各个派生类中。通过该基类指针或引用,就可以在运行时调用所有派生类的虚函数。

纯虚函数的声明的语法形式如下:

virtual 函数类型函数名(形参表)=0;

【例12-12】设计一个图形类,利用纯虚函数实现运行时的多态性。

要求:计算矩形和三角形的面积。

分析:首先定义一个抽象的图形类Shape,在类Shape下可以派生出多种具体的形状。为了求这些图形的面积,只需在类Shape中声明一个纯虚函数getArea(),而将计算具体形状面积的定义放在其派生类中。

#include

using namespace std;

class Shape

{

protected:

double x,y;

public:

void set(double a, double b)

{ x=a;

y=b;}

virtual void getArea()=0;

};

class Triangle:public Shape

{

public:

void getArea()

{ cout<<"Triangle S=1/2*"<

};

class Rectangle:public Shape

{

public:

void getArea()

{ cout<<"Rectangle S="<

};

void main()

{

Shape *p; //声明抽象类Shape的指针p

Triangle t; //定义派生类对象

Rectangle r;

p=&t; //p指向Triangle对象t

p->set,; //给对象t赋值

p->getArea(); //此时p->getArea()就调用Triangle的函数getArea()

p=&r; //p指向Rectangle对象r

p->set,; //给对象r赋值

p->getArea(); //此时p->getArea()就调用Rectangle的函数getArea()

}

运行结果:

Triangle S=1/2**=

Rectangle S=*=

小结

C语言能够很好地支持结构化程序设计,C++不仅兼容C,同时具有面向对象的特征,因此充分支持面向对象程序设计。

结构化程序设计解决问题时,常常把复杂的问题分解为一系列数据和对数据进行处理的过程(或函数),因为数据没有被“隐藏”在对它进行处理的过程中,这导致结构化程序设计存在着巨大的隐患。

面向对象技术变革了软件设计的传统方法。面向对象程序设计把数据和使用此数据的过程封装成一个类。数据的封装和隐藏一方面使得内部数据不被破坏,另一方面使程序具有良好的可读性和相对独立性。类的继承机制不仅提高了代码的可重用性,降低了软件开发难度和开发周期,同时程序的修改变得容易,软件结构更加稳定,软件的可维护性大大提高。

面向对象软件系统由类的层次结构组成,类的具体实例叫做对象,对象之间通过彼此的联系,共

同实现程序的功能。面向对象程序设计方法提出一些全新的概念:对象、类、封装、数据隐藏、继承和多态性等。多态性、数据封装和继承共同构筑了面向对象程序设计的三大机制。

封装强调的是数据和行为的自成一体性,也就是将数据和操作数据的函数代码进行有机的结合,形成“类”。类把对数据的操作信息隐藏在内部,只提供对象对外的操作接口,用户只能看见对象封装接口上的信息,这样可以保护内部数据不被破坏,同时使用者使用起来非常方便。

继承是C++语言的一种重要机制,该机制实现了对原有类进行扩充,在此基础上进行更具体、更详细的定义。通过继承,新的派生类不仅可以自动获得基类的所有成员变量和成员函数(构造函数和私有函数除外),同时可定义新的成员变量和成员函数,来满足新的软件需求,进一步完善程序设计,提高软件的重用性。

多态性是面向对象程序设计的重要特征之一。继承重点研究类与类的层次,多态则研究在不同层次的类中,同名成员函数的关系。所谓多态性就是同样的接口有不同的功能,同样的消息被不同的对象接收时产生不同的行为。C++获得多态性的方式是函数重载、运算符重载和利用虚函数来实现。利用多态性,用户能够发送一般形式的消息,而将所有的实现细节留给接收消息的对象。习题

一、阅读程序题

写出下面程序的运行结果。

#include

using namespace std;

class Clock

{

public:

void SetTime(int NewH=0, int NewM=0, int NewS=0);

void ShowTime();

private:

int Hour,Minute,Second;

};

void Clock::SetTime(int NewH, int NewM, int NewS)

{

Hour=NewH;

Minute=NewM;

Second=NewS;

}

void Clock::ShowTime()

{

cout<

}

void main()

{

Clock myClock;

cout<<"First time set and output:"<

();

();

cout<<"Second time set and output:"<

(8,30,30);

();

}

运行结果:_____________。

#include

using namespace std;

class CPU

{

private:

int frequency;

float voltage;

public:

CPU (int f, float v)

{

frequency = f;

voltage = v;

cout << "构造了一个CPU!" << endl;

}

~CPU () { cout << "析构了一个CPU!" << endl; }

int GetFrequency() const { return frequency; }

float GetVoltage() const { return voltage; }

void Run() {cout << "CPU开始运行!" << endl; }

void Stop() {cout << "CPU停止运行!" << endl; } };

void main()

{

CPU a(400,;

cout<<"frequency="<<()<<" voltage="<<()<

();

();

}

运行结果:______________。

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

文学概论doc

文学理论基础 一、名词解释 1.话语:话语是特定社会语境中人与人之间从事沟通的具体言语行为,即一定的说话人与受话人之间在特定社会语境中通过文本而展开的沟通活动。 2.话语蕴藉:话语蕴藉是指文学话语包含了丰富的意义生成可能性。 3.文学:文学概念源于文学观念,文学观念指关于文学现象的认识和觉悟;文学概念是对文学本质属性进行抽象概括而形成的、具有一定的内涵和外延的词语形式。广义文学泛指一切口头或书面作品,包括政治、哲学、历史、宗教等一般文化形态;狭义文学即情感的、虚构的或想象的作品,如诗、小说、散文等;折中义文学指介于广义文学和狭义文学之间难以归类的口头或书面作品,如诸子散文、史传文学、纪实文学。 4.巫术说:所谓巫术,就是一套约定俗成的有目的和意义的行为方式系统,也可以说是一套前文明的世界观。艺术起源于“巫术”的观点,是西方人类学家在研究原始习俗、原始艺术作品、原始宗教和巫术信仰活动之间的关系的基础上提出来的,该观点认为文学艺术起源于原始巫术的思维和仪式活动之中。 5.游戏说:这是一种有较大影响的文学起源理论。此说源于德国哲学家康德。康德把诗歌看成是“想象力的自由游戏”。德国剧作家、诗人席勒继承和发挥康德的“想象力的自由游戏”的观点,提出了文学艺术起源于“游戏冲动”说。 6.直觉:所谓直觉,就是省略了推理过程而对事物的底蕴和本质作出的直接了解和揭示。 7.陌生化:陌生化是指在艺术构思中,创作主体将人们习见的事物,用一种人们从未见过的形式,即陌生的形象显现出来,以获取最佳艺术效果的方法。 8.艺术真实:所谓艺术真实是作家在假定性的艺术情境中,以主观性感知和诗艺性创造的,既能达到对社会生活的内蕴的把握,又能体现作家的认知和感悟的真实。 9.艺术概括:所谓艺术概括是在文学创作活动中,作家依照自己的体验和认识,通过对个别或特殊的事物的加工,创造出既具有鲜明的独特个性又具有普遍性的艺术形象的方法。10.“诗意的裁判”:所谓“诗意的裁判”是指在文学创作活动中,作家通过文学形象所体现的对社会生活的情感性判断和评价。它是文学创作中创作主体把握社会生活的特点和原则,也是文学创作活动的基本规律。 11.形式:形式是文学作品的存在方式与形态,是语言材料及各种艺术手段的有机组合。 12.叙事类文学:叙事类文学是以客观世界和虚拟世界的事件、人物和环境景物为题材内容,以模仿、虚构为构思方式,以具体生动的叙述为主要艺术表现手法,反映和表现创作主体对社会人生的审美把握的文学作品。 二、简答 1、文学活动与其他精神活动的区别和联系? 文学活动是精神生产的一部分,具有一般精神生产的共性。但是,文学生产又是不同于其他精神生产的一种特殊的精神生产。文学生产不同于其他精神生产的特殊性表现在: (1)文学活动是一种以文学语言为原料的话语活动 (2)文学活动与其他精神活动的区别还在于文学活动是一种话语活动 (3)文学活动是满足人审美需要的精神活动。 2、文学的双重性质是如何显现在话语蕴藉中的? 文学具有双重性质,即意识形态性质和审美性质。文学通过话语蕴藉表现其双重性质。

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

Java语言程序设计基础篇前三章课后习题要点

第1章计算机、程序和Java概述 1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。 程序: 显示: 1.2(显示五条消息)编写程序,显示Welcome to Java五次 程序: 显示: 1.3(显示图案)编写一个程序,显示下面的图案:

程序: 显示: 1.4(打印表格)编写程序,显示以下表格: 程序: 显示:

1.5(计算表达式)编写程序,显示(9.5x4.5- 2.5x3)/(45.5- 3.5)的结果 程序: 显示: 1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果 程序: 显示: 1.7(近似求π)可以使用以下公式计算π: Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...) 编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。在程序中用1.0代替1 程序: 显示:

第2章基本程序设计 2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。转换公式如下所示: Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32) 程序: 显示: 2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积 面积=半径x半径xπ 体积=面积x高 程序: 显示:

2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。一英尺等于0.305米。 程序: 显示: 2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换成千克并显示结果。1磅等于0.454千克。 程序: 显示: 2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5. 程序:

C语言程序设计基础试题及答案

第一部分C语言基础 一、选择题 1、以下正确得C语言标识符就是() A。%X B。a+b?C.a123 D.test! 2、已定义int a,b;则以下不正确得C语句就是() A.a*=5;??B。b/=2;? C.a+=1、75;?D.b&&=a; 3、若x、i、j与k都就是整型变量,则执行下面表达式后x得值为( ) x=(i=4,j=16,k=32) A.4?B.16 ?C.32 D.52 4、C语言中得标识符只能由字母、数字与下划线三种字符组成,且第一个字符( ) A.必须就是字母???B.必须为下划线? C.必须为字母或下划线D.可以就是字母、数字、下划线中得任一字符 5、下面正确得字符常量就是( ) A.“c”? B。’\\”? C.‘w’??D.” 6、设int a=2,b=0,c;则执行语句c+=b&&a--后, c得结果为( )。 A.0,1B.1,0 ?C.2,0 D.不确定 7、以下不正确得C语言标识符就是()?A) int B)a_1_2?C)ab1exe D)_x 8、以下就是正确得C语言标识符就是( )。?A)#define?B)_123 C) %d D) \n 9、下列四组字符串中都可以用作C语言程序标识符得一组就是() 。?A) prin tB)i\am C)Pxq D)str_l ???oodbs tart$it line# _3d one_half My-〉bookCpp ? pow 10、下面各选项组中,均就是C语言关键字得组就是()。?A)auto,enu

m,include B)switch,typedef,continue?C)signed,union,scanf?D)if,s truct,type 11、下列不属于C语言关键字得就是( ) 。 A)default?B)register C)enum ?D)external 12、C语言程序从main()函数开始执行,所以这个函数要写在( )。?A) 程序文件得开始?B)程序文件得最后?C)它所调用得函数得前面 D) 程序文件得任何位置 13、下列关于C语言得叙述错误得就是( ) A)大写字母与小写字母得意义相同?B) 不同类型得变量可以在一个表达式中 C)在赋值表达式中等号(=)左边得变量与右边得值可以就是不同类型?D) 同一个运算符号在不同得场合可以有不同得含义 14、在C语言中,错误得int类型得常数就是( ) 。?A)32768?B)0 C)037?D) 0xAF 15、将字符g赋给字符变量c,正确得表达式就是( )。 A) c=\147 ?B)c="\147" ?C)c='\147' 16、下列转义字符中错误得一个就是( )。 A) ’\000’ B)'\0014' ?C) ’\x111’ D) ’\2’ 17、将空格符赋给字符变量c,正确得赋值语句就是( )。 A) c=’\0’ B) c=NULL C)c=0 D)c=32 18、已知:char a=’\70’;则变量a中()。 A)包含1个字符?B)包含2个字符?C) 包含3个字符?D) 说明非法 19、字符串"\”EOF\n=-\61\””得长度就是( )。 A)8 ?B) 9?C)14?D)非法字符串

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

程序设计基础(知识点)

第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。

它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,

年C语言程序设计基础期末考试试卷‘B’及答案

年C语言程序设计基础期 末考试试卷‘B’及答案 The following text is amended on 12 November 2020.

一、单项选择题 1. 在C语言中,下面字符串能用作变量名的是( )。 A、a+b B、auto C、2-and D、a2 2. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A、 B. C. D. 3 3. 下列关于C语言中字符常量与字符串常量的叙述中,错 误的是( )。 A、字符常量是用单撇号括起来的一个字符 B、空格字符也可用作字符常量 C、字符串常量是用单撇号括起来的一个字符序列 D、字符串常量是用双撇号括起来的一个字符序列 4. 若有以下变量说明和数据的输入方式,则正确的输入语 句为( )。

变量说明:float x1,x2; 数据的输入方式:<回车> <回车> A、scanf(“%f,%f”,&x1,&x2); B、scanf(“%f%f”,&x1,&x2); C、scanf(“%,%”,&x1,&x2); D、scanf(“%%”,&x1,&x2); 6. 在一个源文件中定义的全局变量的作用域为()。 A. 本文件的全部范围 B. 从定义该变量开始至本文件结束 C. 本函数的全部范围 D. 本程序的全部范围

7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。 A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 8.若j为整型变量,则下面while循环( )。 j=10; while(j!=0) j=j-1; A、执行0次 B、执行1次 C、执行10次 D、执行无限次 9. 在while(x)语句中的x与下面条件表达式等价的 是:( )。 A、x!=0 B、 x==1 C、x!=1 D、x==0 10. 以下对C语言函数的描述中,正确的是( )。 A、调用函数时,参数可以是表达式

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

C语言程序设计基础

题型及分数: 单选题:25分 判断题:10分 填空题:15分 程序分析题:20分 编程题:30分 其中:课后习题及复习大纲中相类似题所占比例在70%-80%。 带*号的内容和复习题为较难部分,为非重点考察内容。 第一章C语言程序设计基础(出题比例4-6%) 1.程序设计语言的基本概念 ?程序 ?程序设计语言 ?常用程序设计语言及其类型 ?源程序、编译、目标文件、连接、可执行程序 ?编程的步骤 2.C语言程序的基本结构 (1) C源程序的框架 C源程序的框架,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 (2) C语言源程序的书写规则: ?C源程序是由一个主函数和若干个其它函数组成的; ?函数名后必须有小括号,函数体放在大括号内; ?C程序对大、小写字母书写敏感; ?每句的末尾加分号; ?可以一行多句; ?可以一句多行; ?可以在程序的任何位置加注释,注释的方式。 3.C语言程序设计的的基本步骤和调试过程 复习题:/***** 1. 每个C语言程序中有且仅有一个函数,它是程序的入口和出口。 2. 引用C语言标准库函数,一般要用预处理命令将其头文件包含进来。 3. C语言属于() A.高级语言 B. 低级语言 C.中级语言 D. 机器语言 4. C语言规定了若干有特定意义、为C语言专用的单词,称为关键字。 5. C语言的语句以结尾。 6. C语言源程序经过编译以后生成文件,生成的文件名后缀为,经过连接后生成文件,后缀为 7.C语言中不能使用关键字作为标识符。(√)

第二章基本数据类型,运算符与表达式(出题比例20-30%) 关键知识点: 1.常量,变量: a)标识符的命名规则 b)常量,变量的概念:直接常量,符号常量,变量必须先定义后使用 c)变量名和变量值的区别。 2.C语言中的基本数据类型 a)各种数据类型的数据在内存中的存放方式 b)掌握各种数据类型数据的常量使用方法,特别注意字符常量和字符串常量的区别使 用 c)整型,字符型,浮点型变量的定义和引用方法 d)数据的数据类型,数据的取值范围,数据在内存中存放方式三者之间的联系 3.运算符和表达式的使用方法 a)自增、自减运算符 b)赋值运算符 c)算术运算符及表达式 d)逗号运算符及表达式 e)*位运算符及表达式 f)sizeof运算符及表达式 g)*强制数据类型转换符及表达式 4.运算符的优先级和结合性 本章复习题: 课后习题:一、单选题,二、填空题 1. C语言的标识符命名规则中,第一个字符可以为字符‘#’或‘&’ .(×)。 2.下列全部属于合法的用户标识符的是() A.A1 P_0 dS B. float 2la _A C. *a hy kk D. _123 temp main 3. C语言对字母的大小写不敏感。(×) 4. C语言中,符号常量由宏定义命令#define来定义。(√) 5. 在VC 6.0中,数据类型int,char,float和double所占的内存字节数分别是、、和。 6.下列四个选项中,均是合法的整型常量的选项是A A.160 –0XFFFF 011 B。-0XCDF 01A 0XE C.-01 986,012 0688 D。-0X48a 2e5 0x

文学理论基础

文学理论基础 1.创作的准备:它包括作家的生活积累、人生感受和体验、艺术价值观、艺术修养和才能的磨砺等。 2.直接经验:作为创作的准备,作家要具备广泛的人世阅历,丰富的生活积累,深刻的人生体验。这是“行万里路”,故社会生活是文学作品的唯一源泉。 3.间接经验:作家受各种条件(时间、空间、精力、环境等)的限制,不可能事事都亲身体验和经历。因而,他还需要有间接的生活经验来补充直接经验的不足,为创作想像提供空间。这是“读万卷书”。所谓间接经验,是指作家从过去的著作中、从他人的生活经历中间接获得的生活经验。这是文学的“流”。 4.创作的过程:这是作家在创作欲望的推动下,将自己体验、感受过和积累起来的丰富生活素材通过创造性的艺术加工,转化为具体、生动、可感的艺术形象的过程,是把心灵的酝酿转变为物质实在的时间历程,是对生活进行深入思考和再认识,是对作家自身的情感态度、哲学思想、道德观念和审美理想进行反思自省的过程,是对生活进行艺术开掘和表现的过程。 5.人类掌握世界有四种主要的方式:哲学的,艺术的,宗教的,实践—精神的。(1)“哲学方式”是凭借理性和逻辑思维来把握客观世界的本质、规律和真理。如康德哲学。 (2)“艺术方式”是以生动、具体可感的方式(形象)来把握世界,即鲍姆加登《理论美学》谈及的“诗意的思维方式”。 (3)“宗教方式”是凭借信仰和虚构的世界的方式来把握世界。如佛教。 (4)“实践—精神方式”是凭借道德理性、通过具体的行为来把握世界的方式。 6.从人类思维的角度看,一般认为,人们把握世界的思维方式有两种:抽象思维和形象思维(艺术思维)。 (1)抽象思维通常也叫逻辑思维,其理论基础是相信人类天生具有“理性”,人类凭借理性可以认识和把握客观世界的“真理”,本形式是概念、判断、推理等,表达方式是语言,特点是客观、中立、没有倾向性,目的是为了“认识真理”。这就是西方哲学传统中的“逻各斯中心主义”。 (2)形象思维即所谓“用形象来思考”,作家在创作构思中运用的不是概念、判断、推理等逻辑思维方法,而是运用生动、具体的活生生的生活图画。它始终不脱离具体生动的形象,艺术思维始终伴随着想像和联想,具有自由性,还始终伴随着强烈的情感活动。 7.灵感最初由古希腊哲学家柏拉图提出,他提出的“迷狂”状态;到后来18、19世纪的浪漫主义文艺运动时期,一些文学家和理论家用它来说明作家在创作中受到某一事物的激发,突然得到具有创造性的构思,创作即刻出现新的突破的思维现象和状态。现代的一些文学理论把“灵感”理解为作家的艺术思维在某个阶段或时刻变得特别活跃而敏锐,想象力蓬勃腾飞,在一刹那间捕捉到了平时艰苦构思不能获得的形象和妙句,编织出了出人意料的精彩情节和画面。它是在作家长期积累和经过构思等条件下产生的,具有突发性、短暂性、亢奋型和创造性。 8.文学风格:作家艺术家在文学艺术作品中所表现出来的创作个性,是作家创作的独特标志。它从文学作品的内容与形式、思想与艺术的统一中显现出来,并贯穿在他的一系列作品中,是作家创作成熟的标志,具有不可重复性。在文学理论和批评中,“风格”这一概念也被用来指文学流派的风格、文学的民族风格、文学的时代风格等。这些不同“风格”的基础和核心,是作家及其作品的风格。中国古代也有“文气”、“体性”等类似的词。

C语言程序设计基础测试题-答案

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2] 下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4] 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6] C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8] 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

《C语言程序设计基础》 试卷A及参考答案

《c语言程序设计基础》试卷 (A卷) 考试时间:90分钟闭卷任课老师: 班级:学号:姓名:成绩: (每小题2分,共30分) 、由C++源文件编译生成的目标文件的缺省扩展名为() A、cpp B、exe C、obj D、lik 2、下列中,不是C++合法的标识符() A、2mn B、m123 C、kk D、a_1 3、C++中,基本数据类型不包括() A、int B、float C、char D、class 4、x和y均为bool量,则x| |y为真的条件是() A、它们均为真 B、其中一个为真 C、它们均为假 D、其中一个为 5、C++中,一个字符型数据在内存中占()字节。 A、4 B、2 C、1 D、8 6、字符串常量”hello”的长度是() A、5 B、6 C、7 D、8 7、以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为() A、2,3,2,2 B、2,3,3,3 C、2,2,3,3 D、3,3,2,2 8、假定a为一个整型数组名,则元素a[4]的字节地址为()

A、a+4 B、a+8 C、a+16 D、a+32 9、 x>0 || y==5的相反表达式为()。 A、 x<=0 || y!=5 B、 x<=0 && y!=5 C、 x>0 || y!=5 D、 x>0 && y==5 10、在下面的函数声明中,存在着语法错误的是() A、void BC(int a , int) B、void BD(int , int) C、void BE(int , int=5) D、int BF(int x ; int y) 11、循环体至少被执行一次的语句为()。 A、for循环 B、while循环 C、do循环 D、任一种循环 12、已知一函数中有下列变量定义,其中属于静态变量的是() A、int a=5; B、static double b; C、register char c; D、auto short d; 13、do语句能够改写为()语句。 A、复合 B、if C、switch D、 while 14、要使语句: p=new int[10]; 能够正常执行,p应定义为() A、int p; B、int p[10]; C、int *p; D、int (*p)[10]; 15、编写C++程序一般需经过的几个步骤依次是( )。 A、编译、编辑、连接、调试 B、编辑、编译、连接、调试 C、编译、调试、编辑、连接 D、编辑、调试、编辑、连接 二、填空题(每小题1分,共10分) 1、使用const 语句定义一个标识符常量时,则必须对它同时进行。 2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

相关文档
最新文档