C++考试精彩试题重点

C++考试精彩试题重点
C++考试精彩试题重点

一、概念题

1.类和对象有什么区别和联系?

类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。类是对某一类对象的抽象,而对象是某一种类的实例。

2.什么是类的实现?

将类所有未编写函数体的成员函数在类体外全部编写出来。

3.this指针的概念是什么?

类中所有的成员函数(静态成员函数除外)都隐含了第一个参数,这个隐含的第一个参数就是this指针,在成员函数的实现代码中,所有涉及对类的数据成员的操作都隐含为对this 指针所指对象的操作。

4.为什么要引入构造函数和析构函数?

构造函数的作用是为类对象的数据成员赋初值,构造函数在定义类对象时由系统自动调用;在一个对象死亡或者说退出生存期时,系统会自动调用析构函数,因此可以在析构函数定义中,设置语句释放该对象所占用的一些资源。

5.什么时候需要自定义拷贝构造函数?若程序员没有定义拷贝构造函数,则编译器自动生成一个缺省的拷贝构造函数,它可能会产生什么问题?

当有用一个已经存在对象创建一个同类型的新对象的需求时。当对象含有指针数据成员,并用它初始化同类型的另一个对象时,默认的拷贝构造函数只能将该对象的数据成员复制给另一个对象,而不能将该对象中指针所指向的内存单元也复制过去。这样,就可能出现同一内存单元释放两次,导致程序运行出错。

6.什么是堆对象?创建和回收堆对象的方法是什么?

堆区用来存放在程序运行期间,根据需要随时建立的变量(对象),建立在堆区的对象称为堆对象,当堆对象不再使用时,应予以删除,回收所占用的动态内存。创建和回收堆对象的方法是使用new和delete运算符。

7.为什么需要静态数据成员?静态数据成员的定义和初始化方法是什么?

定义静态数据成员是为了同一个类的不同对象之间共享公共数据成员;用关键字static 可以把数据成员定义成静态数据成员;在定义的类被使用前,要对其中的静态数据成员进行初始化,初始化时不必添加关键字static。

8.什么是静态成员函数?静态成员函数和非静态成员函数有什么区别?

用关键字static可以把这成员函数定义成静态成员函数。

⑴静态成员函数只能访问类的静态数据成员,不能访问类的非静态数据成员。因为静态成

员函数是类的成员,不涉及具体的对象,访问静态成员函数常用类名引导。

⑵非静态成员函数可以访问类的静态数据成员,也可以访问非静态数据成员。因为类的静

态成员总是存在的。

⑶静态成员函数和非静态成员函数,最主要的差别是非静态成员函数隐含了第一个参数

this指针,静态成员函数不含this指针。

9.结构struct和类class有什么异同?

struct和class都可以定义类,但是缺省访问权限说明时,struct的成员是公有的,而class 的成员是私有的。在C++中,struct可被class代替。

10.比较类的三种继承方式public、protected、private之间的区别。

⑴采用public公有派生,基类成员的访问权限在派生类中保持不变,即基类所有

的公有或保护成员在派生类中仍为公有或保护成员。public派生最常用,可以在派生类的成员函数中访问基类的非私有成员,可通过派生类的对象直接访问基类的公有成员。

⑵采用private私有派生,基类所有的公有和保护成员在派生类中都成为私有成员,只允许

在派生类的成员函数中访问基类的非私有成员。private派生很少使用。

⑶采用protected保护派生,基类所有的公有和保护成员在派生类中都成为保护成员,只允许在派生类的成员函数和该派生类的派生类的成员函数中访问基类的非私有成员。

11.派生类构造函数和析构函数执行的次序是怎样的?

派生类构造函数的执行次序:首先,调用基类构造函数,调用顺序按照它们被继承时声明的基类名顺序执行;其次,调用内嵌对象构造函数,调用次序为各个对象在派生类内声明的顺序;最后,执行派生类构造函数体中的内容。

派生类析构函数执行过程与构造函数执行过程相反。即当派生类对象的生存期结束时,首先调用派生类的析构函数,然后调用内嵌对象的析构函数,再调用基类的析构函数。

12.什么叫虚基类?有什么作用?

在多重继承中,如果多条继承路径上有一个公共的基类,则在这些路径的汇合点上的派生类会产生来自不同路径的公共基类的多个拷贝,如果用virtual把公共基类定义成虚基类,则只会保留公共基类的一个拷贝。引进虚基类的目的是为了解决二义性问题,使得公共基类在它的派生类对象中只产生一个基类子对象。

13.什么是多态性,在C++中是如何实现多态的?

多态是指同样的消息被不同类型的对象接收时导致完全不同的行为,是对类的特定成员函数的再抽象。C++支持的多态有多种类型,重载(包括函数重载和运算符重载)和虚函数是其中主要的方式。

14.什么是抽象类,其有何作用?抽象类的派生类是否一定要给出纯虚函数的实现?

含有纯虚函数的类称为抽象类。抽象类的主要作用是通过它为一个类族建立一个公共的接口,使它们能够更有效地发挥多态特性。抽象类声明了一组派生类共同操作接口的通用语义,而接口的完整实现,即纯虚函数的函数体,要由派生类自己给出,抽象类只能作为基类被继承使用。抽象类的派生类不一定要给出纯虚函数的实现,没有给出纯虚函数的实现的派生类仍然还是抽象类。

15.在C++中能否声明虚构造函数,为什么?能否声明虚析构函数,有什么作用?

在C++中不能声明虚构造函数。多态是不同的对象对同一消息有不同的行为特性,虚函数作为运行过程中多态的基础,主要是针对对象的,而构造函数是在对象产生之前运行的,因此虚构造函数是没有童义的。

在C++中可以声明虚析构函数。析构函数的功能是在该类对象消亡之前进行一些必要的清理工作,如果一个类的析构函数是虚函数,那么,由它派生而来的所有子类的析构函数也是虚函数。析构函数设置为虚函数之后,在使用指针引用时可以动态联编,实现运行时的多态,保证使用基类的指针就能够调用适当的析构函数对不同的对象进行清理工作。

二、填空题

1.拷贝构造函数使用______作为参数初始化创建中的对象。

2.在C++中,对于构造函数和析构函数来说,______是可以重载的,而______是不可以重载的。

3.B类中包含一个A类的成员a,则生成B类的对象时构造函数的调用顺序为______。

4.类的每一个成员函数(静态成员函数除外)都有一个隐含的参数,叫做______。假设类名为A,则该参数的类型为______。

5.类的静态成员分为______和______。

6.声明友元的关键字是______。

7.如果类A继承了B,则类A称为______,类B称为______。

8.派生类对基类的继承有三种方式:______、______和______。

9.如果只想保留公共基类的一个拷贝,就必须使用关键字________把这个公共基类定义为虚基类。

10.派生类的成员有两种来源,即______和______。

11.要想访问基类的private成员变量,只能通过基类提供的______进行间接访问。

12.重载运算符应仍保持其原有的操作数个数、结合性和______。

13.对于双目运算符,若重载为类的成员函数,有______个参数;若重载为友元函数,则有

______个参数。

14.后缀"++"重载为类的成员函数(设类名为A)的形式为______,重载为类的友元函数(设

类名为A)的形式为______。

15.设有一时间类Time,现欲用成员函数方法重载运算符+,实现一个时间与一个整数的相

加运算,所得结果为一个新时间,则成员函数的声明语句为______。

16.C++语言支持的两种多态性分别是编译时的多态性和______的多态性。

17.联编有两种方式,即______和______。

18.抽象类必须至少包含一个______。

21.Windows系统中消息的主要类型有______、______和______。

22.当用户在窗口中按下鼠标左键时,Windows系统就会自动发送______消息给该窗口,如果程序要对此消息作出反应,则程序中应包含类似______函数。

23.OnDraw()函数有一个指向______类的指针参数,通过该参数可以直接向视图输出。24.应用程序将任何东西画到设备中之前,必须明确索取一个______。

25.对话框分为______和______两种。

26.对话框的初始化工作一般在______和______中完成。

27.MFC中公用对话框有______、______、______、______和______。

28.视图派生类可以选择______类作其基类,可以实现文本编辑功能。

29.对于文档类,数据成员的初始化工作是在______函数中完成的。

30.如果修改了文档类中的数据,并要求重新显示,要用______或______发出重画消息,引

起对OnDraw()的调用。

31.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到______的开始位置。

32.假定x和y为整型,其值分别为16和5,则a/y和double(x)/y的值分别为______和______。

33.strlen(“apple”)的值为______。

34.C++程序运行时的内在空间可以分为全局数据区,堆区,栈区和______区。

35.假定a是一个一维指针数组,则a+i所指对象的地址比a大______字节。

36.如果一个派生类只有一个唯一的基类,则这样的继承称为______。

37.假定AA是一个类,“AA * abc()const;”是该类中的一个成员函数的原型,在该函数体中______向*this或其成员赋值。

38.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为______。

39.假定用户为类AB定义了一个构造函数“AB(int aa){a=aa;}”,该构造函数实现对数据

______的初始化。

40.作为类的成员函数重载地个运算符时,参数表中只有一个参数,说明该运算符有______个操作数。

41.C++有两种联编方式,其中在程序编译时的联编叫做______联编

42.虚函数可以是另一类的______函数

43.定义虚函数需要用______关键字

44.将函数“void vf()”定义为纯虚数的格式是virtual void vf()______

45.拥有纯虚函数的类就是______,该类不能产生类的实例

46.派生类没有重载基类的纯虚函数,则此派生类也是______

47.有如下程序

#include

class CSAI_A

{

public:

virtual void fun(){cout<<"A";}

};

class CSAI_B:public CSAI_A

{

public:

virtual void fun(){CSAI_A::fun();cout<<"B";}

};

void main()

{ CSAI_A *p=new CSAI_B;

p->fun();

delete p;

}

执行这个程序的输出结果是()答案:______

48. 有如下程序

#include

const int T=8;

void main()

{

int i,s=0;

for(i=1;i<=T;i++){

s+=i*i;

cout<

}

cout<

}

运行结果:______

49. 有如下程序

int ff(int x,int y){

int z;

cout<

cin>>z;

if(x+y==z) return 1;

else return 0;

}

函数功能:______

50. 有如下程序

char *f(char *s){

int n=strlen(s);

char * r=new char[n+1];

for(int i=0;i

if(s[i]>='a' && s[i]<='z')r[i]=s[i]-'a'+'A';

else r[i]=s[i];

r[n]='\0';

return r;

}

函数功能:______

51.C++虚函数有两种调用方式,分别是______和多态调用方式

52.当运算符重载为成员函数时,对象本身就是______,不在参数表中显示地出现。

53.若以成员函数形式,为类CSAI重载“double”运算符,则该运算符重载函数的原则是______

54.在表达式“x+=y”中,“+=”是作为非成员函数重载的运算符,若是使用显式的函数调用代替直接使用运算符“+=”,这个表达式还可以表示为______

55.将运算符“>>”重载为类CSAI的友元函数的格式是:friend instream& operator >>______

56.this指针______破坏类的封装性。

57.通过指向基类的指针调用派生类对象的函数时,采用______调用。

58.下面是对按从小到大排列的有序数组a[n]中进行二分查找x的算法,若查找成功返回该元素的下标,否则返回-1。

int BinnarySearch(int a[],int n,int x)

{

int low=0,high=n-1; //定义并初始化区间下界和上界变量

int mid; //定义保存中点元素下标的变量

while(low<=high){

mid=(low+high)/2;

if(x==a[mid]) ______

else if(x

else ______

}

return -1;

}

59.请补充完整如下的类定义:

#include

class A{

char *a;

public:

A(){a=0;} //定义无参构造函数,使A的值为空

A(char *aa){

a= ______;//进行动态存储分配

strcpy(a,aa); //用aa所指字符串初始化a所指向的动态存储空间}

______;//定义析构函数,删除a所指向的动态存储空间

};

三、编程题

1.创建一个Employee类,该类中有字符数组表示姓名、街道地址、市、省和邮政编码。把表示构造函数、ChangeName函数、Display函数的函数原型放在类定义中,构造函数初始化每个成员,Display函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。

2.设计并测试类Point,其数据成员是直角坐标系的点坐标。友元函数distance用来计算两点间的距离。

3.定义一个Rectangle类,有宽width、长length等属性,重载其构造函数Rectangle、Rectangle(int width , int length)。

4.编写一个程序,设计一个Cdate类,它应该满足下面的条件。

⑴用这样的格式输出日期:日-月-年。

⑵输出在当前日期上加两天后的日期。

⑶设置日期。

5.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。

int f(int a[],int n)

6.根据下面类中Sum函数成员的原型和注释写出它的类外定义。

class AA{

int *a;

int n;

int MS;

public:

void InitAA(int aa[],int nn,int ms) {

if(nn>ms){cout<<"Error!"<

MS=ms;

a=new int[MS];

for(int i=0;i

}

int Sum();//求出并返回数组a中前n个元素之和

};

7.定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。

8.下列Shape类是一个表示形状的抽象类,area()为求图形面积的函数,total()则是一个通用的用以求不同形状的图形面积总和的函数。请从Shape类派生三角形类(Triangle)、矩形类(Rectangle),并给出具体的求面积函数。

class Shape{

public:

virtual float area()=0;

};

float total(Shape *s[],int n)

{

float sum=0.0;

for(int i=0;i

sum+=s[i]->area();

return sum;

}

9.声明一个Shape类(形状)基类,它有两个派生类:Circle(圆)和Square(正方形),要求如下。

⑴根据给出的圆心坐标计算圆的面积。

⑵根据给出的正方形中心坐标和一个顶点坐标计算该正方形的面积。

提示:Shape类的数据成员包括中心的坐标,Circle类和Square类由Shape类派生,Circle类新增一个数据成员,即圆的半径,Square类新增两个数据成员,即顶点

坐标。

明该对话框对象已不存在了。

1.引用

2.构造函数析构函数

3.A(),B()

4.this, A *

5.静态数据成员静态成员函数

6.friend

7.派生类基类

8.public、protected、private

9.virtual

10.基类派生类自身

11.成员函数

12. 运行时

13. 静态联编,动态联编

14. public vehicle ,public vehicle

15. 基类A中的成员函数.

派生类B中的成员函数.

16. C类B类

17.抽象函数

18. 优先级 2. 1 2

19. A operator ++(int) friend A operator ++(A &,int)

20. Time Time::operator +(int)

21.输入消息、控制消息、系统消息、用户消息

22.WM_LBOTTONDOWN OnLButtonDown

23.CDC

24.设备环境

25.模态对话框非模态对话框

26.构造函数OnInitDialog()函数

27.CColorDialog、CFileDialog、CFindReplaceDialog、CFontDialog、CPrintDialog 28.CeditView

29.OnNewDocument()

30.Invalidate()或InvalidateRect()

31.下一行

32.3 和 3.2

33.5

34.代码

35.4×i

36.单继承

37.不能够

38.AB( )

39.a

40.2

41.静态

43.virtual

44.=0

45.抽象类

46.抽象类

47.AB

48.1 5 14 30 55 91 140 204

49.输入2个整数相加的结果,结果正确返回1,否则返回0

50.将字符串中的小写字母转换为大写

51.非多态调用

52.第一操作数

53.operatro double()

54.operator +=(x,y)

55.(istream &,CSAI &)

56. 不能

57. 多态

58. return mid low=mid+1

59. new char[strlen(aa)+1] ~A(){delete []a;}

三、编程题

1.

#include

#include

class Employee

{

protected:

char name[20];

char address[100];

char city[20];

char province[20];

char zipcode[10];

public:

Employee(char *nm,char *addr,char *city, char *prov, char *zip);

void ChangeName(char * newName);

char * Display(char * buffer);

};

Employee::Employee(char *nm, char *adr, char *cit, char *prov, char *zip) {

strcpy(name,nm);

strcpy(address,adr);

strcpy(city,cit);

strcpy(province,prov);

strcpy(zipcode,zip);

}

void Employee::ChangeName(char * newName)

{

strcpy(name, newName);

}

char * Employee::Display(char *buffer)

{

strcpy(buffer, name);

strcat(buffer, address);

return buffer;

}

2.

#include

#include

class Point

{

private:

float x, y;

public:

Point(float xx, float yy)

{ x=xx; y=yy; }

float GetX(){ return x; }

float GetY(){ return y; }

friend float distance(Point&, Point&);

};

float distance(Point& a, Point& b)

{

float dx = a.x - b.x;

float dy = a.y - b.y;

cout<<" 用友元函数distance(). 显示两点的坐标: \n ";

cout<

return sqrt(dx*dx+dy*dy);

}

void main()

{

float d;

Point p1(10.5, 20.5), p2(2.5, 6.5);

d=distance(p1, p2);

cout<<" 两点的距离: d = "<

}

3.

#include

class Rectangle

{

public:

Rectangle();

Rectangle(int width,int length);

~Rectangle(){}

int GetWidth()const{return m_width;}

int GetLength(){return m_length;}

private:

int m_width;

int m_length;

};

Rectangle::Rectangle()

{

m_width=5;

m_length=10;

}

Rectangle::Rectangle(int width,int length)

{

m_width=width;

m_length=length;

}

int main()

{

Rectangle rect1;

cout<<"rect1 width:"<

cout<<"rect1 length:"<

int a,b;

cout<<"Enter a width:";

cin>>a;

cout<<"\nEnter a length:";

cin>>b;

Rectangle rect2(a,b);

cout<<"\nrect2 width:"<

cout<<"rect2 length:"<

return 0;

}

4.

#include

class Cdate

{

int year,month,day;

int y1,m1,d1;

public:

void setdate(int y,int m,int d){year=y;month=m;day=d;}

void show()

{cout<<"当前日期:"<

cout<<"两天后日期:"<

}

void datetwo() //加一天后的年月日

{

d1=day;y1=year;m1=month;

for(int i=0;i<2;i++)

{ d1++;

switch(d1)

{case 29:if(!(month==2 &&(year%400==0||year%4==0&&year%100!=0)))

{m1=3;d1=1;};break;

case 30:if(month==2 &&(year%400==0||year%4==0&&year%100!=0))

{m1=3;d1=1;};break;

case 31:if(month==4||month==6||month==9||month==11)

{m1=m1+1;d1=1;};break;

case 32: m1=m1+1;d1=1;if(month==12){y1=y1+1;m1=1;};break;

}

}

}

};

void main()

{

Cdate d;

int y,m,d1;

cout<<"请输入年月日: ";

cin>>y>>m>>d1;

d.setdate(y,m,d1); //加一天

d.setdate(y,m,d1); //再加一天

d.datetwo();

d.show();

}

5.程序如下:

int f(int a[],int n){

if(n==1)return a[0]*a[0];

else return a[n-1]*a[n-1]+f(a,n-1);

}

6.程序如下:

int AA::Sum(){

int sum=0;

for(int i=0;i

sum+=a[i];

return sum ;

}

7.

#include

#include

#include

class base //定义一个基类

{protected:

char name[20]; //姓名

char sex[3]; //性别

int age; //年龄

};

class teacher:public base //基类派生出教师类

{ int sno; //工号char zc[20]; //职称

double wages; //工资

};

class student :public base //基类派生出学生类{ int sno; //学号char bj[10]; //班级

char zy[10]; //专业

double score; //入学成绩

};

8.

class Shape{

public:

virtual float area()=0;

};

float total(Shape *s[],int n)

{

float sum=0.0;

for(int i=0;i

sum+=s[i]->area();

return sum;

}

class Triangle:public Shape

{

public:

Triangle(double h,double w){H=h;W=w;}

double area() const{return H*W*0.5;} private:

double H,W;

};

class Rectangle:public Shape

{

public:

Rectangle(double h,double w){H=h;W=w;}

double area()const{return H*W;}

private:

double H,W;

};

9.

#include

class Shape

{

public:

virtual double GetArea()=0;

};

class Circle:public Shape

{

double radius;

public:

Circle(double r):radius(r){}

double GetArea(){return 3.1416*radius*radius;} };

class Square:public Rectangle

{

public:

Square(double l):Rectangle(l,l){}

};

int main()

{

Rectangle r(3.5,4.0);

Circle c(2.0);

Square s(5.0);

cout<

cout<

cout<

return 0;

}

一、选择题

1、类的实例化是指(C)。

A、定义类

B、指明具体类

C、创建类的对象

D、调用类的成员

2、关于类和对象的说法不正确的是(B )。

A、对象是类的一个实例

B、一个类只能有一个对象

C、一个对象只属于一个具体类

D、类与对象的关系和数据类型与变量的关系相似

3、下面说法正确的是(B)。

A、内置函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B、内置函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C、类的内置函数必须在类体内定义

D、类的内置函数必须在类体外通过加关键字inline定义

4、对于任意一个类,析构函数的个数最多为(A)。

A、1

B、2

C、和构造函数个数一样

D、任意多个

5、在下面的类定义中,错误的语句是(D)。

class sample

{public:

sample(int val);//(1)

~sample( ); //(2)

private:

int a=2.5;//(3)

sample();//(4)

};

A、(1)(2)(3)(4)

B、(1)(2)(3)

C、(2)

D、(3)

6、有关构造函数的说法不正确的是(D)。

A、构造函数名字和类的名字一样

B、构造函数在定义类变量时自动执行

C、构造函数无任何函数类型

D、构造函数有且只有一个

7、不属于成员函数的是(B)。

A、静态成员函数

B、友元函数

C、构造函数

D、析构函数

8、已知类A是类B的友元,类B是类C的友元,则(D)。

A、类A一定是类C的友元

B、类C一定是类A的友元

C、类C的成员函数可以访问类B的对象的任何成员

D、类A的成员函数可以访问类B 的对象的任何成员

9、在建立类对象时(A)。

A、只为每个对象分配用于保存数据成员的内存

B、只为每个对象分配用于保存函数员的内存

C、为所有对象的数据成员和函数成员分配一个共享的内存

D、为每个对象的数据成员和函数成员同时分配不同的内存

10、下列说法错误的是(B)。

A、封装是将一组数据和这组数据有关的操作组装在一起

B、封装使对象之间不需要确定接口

C、封装要求对象应具有明确的功能

D、封装使得一个对象可以像一个部件一样用在各种程序中

11、要禁止修改指针p本身,也要禁止修改p所指向的数据,这样的指针应定义为(D)。

A、const char *p=”abcd”;

B、char const *p=”abcd”;

C、char *const p=”abcd”;

D、

const char *const p=”abcd”;

12、下面有关析构函数正确的是(A)。

A、一个类只能定义一个析构函数

B、析构函数的名字与类名可以不同

C、析构函数只能定义在类内

D、析构函数至少包含一个参数

13、下列运算符中,不能重载的是(B)。

A、!

B、sizeof()

C、new

D、<=

14、下列关于运算符重载的说法,正确的是(D)。

A、可以改变参与运算的操作数个数

B、可以改变运算符原来的优先级

C、可以改变运算符原来的结合性

D、不能改变原运算符的语义

15、下列运算符中,必须重载为友元函数的是(D)。

A、+

B、--

C、<<

D、=

16、下列关于运算符重载的叙述中,正确的是(B)。

A、通过运算符重载,可以定义新的运算符

B、有的运算符只能作为成员函数重载

C、若重载运算符“+”,则相应的运算符函数名是“+”

D、重载一个二元运算符时,必须声明两个形参

17、在表达式++y*z中,“++”是作为成员函数重载的运算符,“*”是作为友元函数重载的运算符。下列叙述中正确的是(B)。

A、operator++有一个参数,operator*有一个参数

B、operator++有一个参数,operator*有两个参数

C、operator++有零个参数,operator*有一个参数

D、operator++有零个参数,operator*有两个参数

18、在一个类中可以对一个操作符进行(D)重载。

A、1种

B、2种以下

C、3种以下

D、多种

19、下面对派生类的描述中,正确的是(C)。

A、一个派生类不可以作为另外一个派生类的基类

B、派生类只能有一个基类

C、派生类的成员除了它自己的成员外,还包括了它的基类的成员

D、派生类中继承的基类成员的访问权限

20、下面叙述正确的是(B)。

A、基类的公有成员在派生类仍然是公有的

B、基类的公有成员在公有派生类中仍然是公有的

C、基类的公有成员在私有派生类中是公有的

D、基类的公有成员在保护派生类中是公有的

21、当保护继承时,基类的(A)在派生中成为保护成员,不能通过派生类的对象来直接访问。

A、任何成员

B、公有成员和保护成有

C、公有成员和私有成员

D、私有成员、

22、公有派生类中的成员函数不能直接访问的是基类中的(D)。

A、私有成员

B、公有成员

C、保护成员

D、保护成员或私有成员

23、在派生类构造函数的初始化列表中不能包含(B)。

A、基类的构造函数

B、基类的对象成员的初始化

C、派生类对象成员的初始化

D、派生类中一般数据成员的初始化

24、在C++中类与类之间的关系具有(B)。

A、自反性

B、对称性

C、传递性

D、反对称性

25、在创建派生类对象时,构造函数的执行顺序是(B )。

A、对象成员构造函数、基类构造函数、派生类本身的构造函数

B、派生类本身的构造函数、基类构造函数、对象成员构造函数

C、基类构造函数、派生类本身的构造函数、对象成员构造函数

D、基类构造函数、对象成员构造函数、派生类本身的构造函数

26、在C++中,要实现动态绑定,必须使用(D)调用基函数。

A、类名

B、基类对象

C、派生类对象

D、基类指针或引用

27、下列函数中,可以定义为虚函数的是(D)。

A、全局函数

B、构造函数

C、友元函数

D、成员函数

28、若一个类中含有纯虚函数,则该类称为(D )。

A、基类

B、纯基类

C、派生类

D、抽象类

29、如果函数在基类中被声明为virtual,则函数在其派生类中(A)。

A、都是虚函数

B、只有被重新声明时才是虚函数

C、只有被重新声明为virtual时才是虚函数

D、都不是虚函数

30、在派生类中重载一个虚函数时,要求函数名、参数个数、参数类型、参数顺序和参数返回值(B)。

A、不同

B、相同

C、相容

D、部分相同

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

C语言期末考试题目

指针 一、单项选择题 1. 已知:int a, *y=&a;则下列函数调用中错误的是。 A) scanf("%d", &a);B) scanf("%d", y); C) printf("%d", a);D) printf("%d", y); 2. 说明语句"int (*p)( );"的含义是。 A) p是一个指向一维数组的指针变量 B) p是指针变量,指向一个整型数据 C) p是一个指向函数的指针,该函数的返回值是一个整型 D) 以上都不对 3. 设有说明int (*p)[4];其中的标识符p是。 A) 4个指向整型变量的指针变量 B) 指向4个整型变量的函数指针 C) 一个指向具有4个整型元素的一维数组的指针 D) 具有4个指向整型变量的指针元素的一维指针数组 4. 已知:char s[10], *p=s,则在下列语句中,错误的语句是。 A) p=s+5;B) s=p+s;C) s[2]=p[4];D) *p=s[0]; 5. 已知:char s[100];int i;则引用数组元素的错误的形式是。

A) s[i+10] B) *(s+i) C) *(i+s) D) *((s++)+i) 6. 已知:char s[6], *ps=s;则正确的赋值语句是。 A) s="12345";B) *s="12345";C) ps="12345";D) *ps="12345"; 7. 已知:char a[3][10]={"BeiJing","ShangHai","TianJin"}, *pa=a;不能正确显示字符串"ShangHai"的语句是。 A) printf("%s",a+1);B) printf("%s",*(a+1)); C) printf("%s",*a+1);D) printf("%s",&a[1][0]); 8. 已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a,*p=a[0]; 则以下能够正确表示数组元素a[1][2]的表达式是。 A) *(*(a+1)+2) B) *(*(p+5)) C) (*ptr+1)+2 D) *((ptr+1)[2]) 9. 已知:int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;则值为3的表达式是。 A) p+=2,*(p++) B) p+=2,*++p C) p+=2,*p++ D) p+=2,++*p 10. 已知:int a[]={1,2,3,4}, y, *p=a;则执行语句y = (*++p)--;之后, 数组a各元素的值变为。 A) 0,1,3,4 B) 1,1,3,4 C) 1,2,2,4 D) 1,2,3,3 变量y的值是。 A) 1 B) 2 C) 3 D) 4

c期末考试试题及答案完整版

c期末考试试题及答案 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

AutoCAD 试卷 一、 单项选择 1、AutoCAD 默认扩展名是 A 、dwt B 、dwg C 、bak D 、dxf 答案:B 2、在CAD 中,以下哪个命令可用来绘制横 平竖直的直线 A 、栅格 B 、捕捉 C 、正交 D 、对象捕捉答案:C 3、按哪个键可切换文本窗口和绘图窗口 A 、F2 B 、F8 C 、F3 D 、F5答案:A 4、默认情况下,命令提示行显示为几行 A 、3 B 、5 C 、2 D 、8答案:A 5、在CAD 中为一条直线制作平行线用什么命令 A 、移动 B 、镜像 C 、偏移 D 、旋转答案:C 6、在图层特性管理器中不可以设定哪项 A 、颜色 B 、页面设置 C 、线 宽 D 、是否打印答案:B 7、绘制建筑图步骤为 A 、墙线、轴线、门窗 B 、墙线、 门窗、轴线 C 、轴线、门窗、墙线 D 、轴线、 墙线、门窗答案:D 8、哪个命令可用于绘制直线与圆弧的复合 体 A 、圆弧 B 、构造线 C 、多段线 D 、样条曲线答案:C 9、如何在图中输入“直径”符号 A 、%%P B 、%%C C 、%%D D 、%%U 答案:B

10、如果要在一个圆的圆心写一个“A”字,应使用以下哪种对正方式 A、中间 B、对齐 C、中心 D、调整答案:A 11、在哪个层创建的块可在插入时与当前层特性一致 A、0层 B、在所有自动产生的层 C、所有图层 D、新建的图层答案:A 12、一个完整的尺寸由几部分组成 A、尺寸线、文本、箭头 B、尺寸线、尺寸界线、文本、标记 C、基线、尺寸界线、文本、箭头 D、尺寸线、尺寸界线、文本、箭头 答案:D 13、要将图形中的所有尺寸都为原有尺寸的2倍,应设定以下哪项A、文字高度 B、使用全局比例 C、测量单位比例 D、换算单位 答案:B 14、三维模型中哪种模型可以进行布尔运算 A、线框模型 B、实心体模型 C、表面体模型答案:B 15、渲染三维模型时,哪种类型可以渲染出物体的所有效果 A、一般渲染 B、普通渲染 C、照片级真实感渲染 D、照片级光线跟踪渲染答案:D 16、样板文件的括展名是 A、BAK B、SVS C、DWT D、DWG 答案:C 17、以下哪种相对坐标的输入方法是画8个单位的线长 A.8, 0 B.@0,8 C.@0<8

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C期末考试题及答案

C期末考试题及答案 Revised at 2 pm on December 25, 2020.

一、填空题(每空0.5分,共30分) 1、世界坐标系简称__WCS_用户自定义坐标系简称__UCS_。 2、工作空间的切换:“工具”/“工作空间”或“工作空间”工具栏。 3、工具栏包括30种,系统默认的显示工具栏包括:“标准”、“属性”、“绘图”和“修改”等工具栏。 4、多线的对正方式有_上(T)_、_无(Z)_和_下(B)_。 5、文字标注包括标注单行文字和标注多行文字。 6、渲染环境是指在渲染对象时进行的雾化和深度设置。 7、漫游和飞行用户可以通过键盘和鼠标来控制视图显示,并创建导航动画。 8、编辑实体的边的种类:压印边、复制边、着色边。 9、动态块是通过自定义夹点或自定义特性定义的块。在图形中使用动态块,用户可以随时对组成块的对象进行修改。 10、三维实体是具有体积、质量、重心、回转半径、惯性距等特征的三维对象。 11、在AutoCAD 2007中,用户可以创建的光源有电光源、聚光灯光源和平行光光源。 12、相切、相切、半径法是指:通过指定圆的两个切点和半径来绘制圆。 13、绘制圆环的步骤中,先输入圆环的内径和外径,后确定圆环的中心点。 14、计算机辅助设计是:工程技术人员在CAD系统的辅助下,根据产品的设计程序进行设计的一项新技术。 15、菜单栏包括11种,每一种菜单中都含有四种显示情况:命令后跟右三角 、后跟省略号、后跟快捷键或功能键或命令呈灰色。 16、要对图形对象进行编辑就必须选中图形对象,在AutoCAD 2007中,选择对象的方法很多,常用的有_直接拾取_、矩形框选择_、_不规则区域选择_和快速选择。 17、在设置显示精度时,如果设置的精度越高,即分辨率就越高,计算机计算的时间 也越长,显示图形的速度也就越慢。 18、三维基本实体的种类包括:多段体、长方体、楔体、圆柱体、圆锥体、球体、圆环体、棱锥面。 19、布尔运算中只留重复的一部分的运算是交集运算。从一个图形中去掉与另一个图形重复部分的运算是差集运算。

C语言期末考试试题

C语言试题1 一填空题(15分) 1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。 2.设int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是()。 3.下面程序段的输出结果是()。 int a=1234; a=a&0377; printf(“%d %o\n”,a,a); 4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。 char a[3]; 5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。 #define PR 80 #define PP PR+403 6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。 8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。 9.若有int a[3]={10,12,30};则a+1是()的地址,*(a+2)=()。 二判断对错(5分,对的划“√”,错的划“×” 1.在Turbo C中,整型数据在内存中占2个字节。() 2.表达式1/4+2.75的值是3。() 3.结构体类型只有一种。() 4.函数若无返回值,则它一定无形参。() 5.C语言只能处理文本文件和二进制文件。() 三选择题(20分) 1.设int a=12; 表达式a+=a-=a*=a的值是()。 A 12 B 144 C 0 D 132 2.以下程序的输出结果是()。 main( ) { int a=011; printf(“%d\n”,++a); } A 12 B 11 C 10 D 9 3.以下程序的输出结果是()。 #define ADD(x) (x)+(x) main() { int a=4,b=6,c=7,d=ADD(a+b)*c; printf(“d=%d”,d); } A d=70 B d=140 C d=280 D d=80 4.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。 A p=“abcd”; B a=“abcd”; C *p=“abcd”; D *a=“abcd”; 5.若k为整形,则while循环执行()次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); A 10 B 9 C 0 D 1

C期末考试题及答案

一、选择填空题(共20小题,每小题2分,共40分)。 1. 关于C++与C语言关系的描述中,(D)是错误的。 语言是C++语言的一个子集 语言与C++语言是兼容的 ++语言对C语言进行了一些改进 ++语言和C语言都是面向对象的 2.按照标识符的要求,(A)符号不能组成标识符。 a.连接符 b.下划线 c.大小写字母 d.数字字符 3. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。 a.缩排位置相同的if b.在其之前未配对的if c.在其之前未配对的最近的if d.同一行上的if 4. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是(C)。 5. 设"char **s;",以下正确的表达式是(B)。 ="computer"; b.*s="computer"; c.**s="computer"; d.*s='c'; 6. 对于"int *pa[5];"的描述中,(D)是正确的。 是一个指向数组的指针,所指向的数组是5个int型元素 是一个指向某数组中第5个元素的指针,该元素是int型变量

[5]表示某个元素的第5个元素的值 是一个具有5个元素的指针数组,每个元素是一个int型指针 7. 在下列表示引用的方法中,(A)是正确的。 已知:int m=10; &x=m; &y=10; &z; &t=&m; 8. 下列for循环的次数为(B)。 for(i=0, x=0; !x&&i<=5; i++) d.无限 9. 对于C/C++语言的函数,下列叙述中正确的是(A)。 a.函数的定义不能嵌套,但函数调用可以嵌套 b.函数的定义可以嵌套,但函数调用不能嵌套 c.函数的定义和调用都不能嵌套 d.函数的定义和调用都可以嵌套 10. 在一个被调用函数中,关于return语句使用的描述,(D)是错误的。 a.被调用函数中可以不用return语句 b.被调用函数中可以使用多个return语句 c.被调用函数中,如果有返回值,就一定要有return语句 d.被调用函数中,一个return语句可以返回多个值给调用函数 11. 在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A)。 a.内联函数 b.重载函数

大学C语言期末考试练习题(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C期末考试试卷及答案

C++期末考试试卷及答案1 一、单项选择题(每题2分,共40分) 1. ______不是属于面向对象程序设计的特性 A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性 2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的______ A. 类 B. 虚函数 C. 运算符重载 D. 模板 3. C++与C语言最根本的不同之处在于_______ A. 使用了类 B. 能够实现变量自动初始化 C. 支持软件重用 D. 支持接口重用 4. 动态内存分配的主要目的是_______ A. 使程序按动态联编方式运行 B. 正确合理的使用内存 C. 提高程序的运行速度 D. 提高程序的可维护性 5. 在C++函数的形参前加const关键字,是为了提高函数的_______ A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性 6. 函数重载的目的是________ A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间 7. 从程序片断:char name[] = "C++"; course(name);可判断函数course的调用采用的是_______ A. 传值调用 B. 带缺省参数值的函数调用 C. 引用调用 D. 传址调用 8. 用来说明类中公有成员的关键字是________

9. 如果一个类的成员函数print()不修改类的数据成员值,则应将其声明为 A. void print() const; B. const void print(); C. void const print(); D. void print(const); 10. 下列关于构造函数的论述中,不正确的是_______ A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数 C. 构造函数的返回类型缺省为int型 D. 构造函数可以重载 11. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是______ A. int B. int * C. A D. A * 12. 内存泄漏是指_______ A. 内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存 C. 函数中局部变量所占的栈内存没有及时回收 D. 动态分配的堆内存在程序退出后始终被占用 A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数 14. 友元函数_______ A. 可以被声明为const B. 没有this指针 C. 可以用类名或对象名来调用 D. 只能用对象名来调用 15. 若一个类的成员函数前用static关键字修饰,则该成员函数________ A. 可以被声明为const B. 没有this指针 C. 可以访问该类的所有成员 D. 只能用对象名来调用 16. C++是用_______实现接口重用的

2013年c语言期末考试题

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 最大值 第三行i<=n 五行k+1 2、编写程序求无理数e 的值 并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。

c期末考试试题及答案

c期末考试试题及答案 TTA standardization office【TTA 5AB- TTAK 08- TTA 2C】

A u t o C A D试卷 一、单项选择 1、AutoCAD默认扩展名是 A、dwt B、dwg C、bak D、dxf 答案:B 2、在CAD中,以下哪个命令可用来绘制横平竖直的直线 A、栅格 B、捕捉 C、正交 D、对象捕捉答案:C 3、按哪个键可切换文本窗口和绘图窗口 A、F2 B、F8 C、F3 D、F5答案:A 4、默认情况下,命令提示行显示为几行 A、3 B、5 C、2 D、8答案:A 5、在CAD中为一条直线制作平行线用什么命令 A、移动 B、镜像 C、偏移 D、旋转答案:C 6、在图层特性管理器中不可以设定哪项 A、颜色 B、页面设置 C、线宽 D、是否打印答案:B 7、绘制建筑图步骤为 A、墙线、轴线、门窗 B、墙线、门窗、轴线 C、轴线、门窗、墙线 D、轴线、墙线、门窗答案:D 8、哪个命令可用于绘制直线与圆弧的复合体 A、圆弧 B、构造线 C、多段线 D、样条曲线答案:C 9、如何在图中输入“直径”符号 A、%%P B、%%C C、%%D D、%%U答案:B 10、如果要在一个圆的圆心写一个“A”字,应使用以下哪种对正方式 A、中间 B、对齐 C、中心 D、调整答案:A 11、在哪个层创建的块可在插入时与当前层特性一致 A、0层 B、在所有自动产生的层

C、所有图层 D、新建的图层 答案:A 12、一个完整的尺寸由几部分组成 A、尺寸线、文本、箭头 B、尺寸线、尺寸界线、文本、标记 C、基线、尺寸界线、文本、箭头 D、尺寸线、尺寸界线、文本、箭头答案:D 13、要将图形中的所有尺寸都为原有尺寸的2倍,应设定以下哪项 A、文字高度 B、使用全局比例 C、测量单位比例 D、换算单位 答案:B 14、三维模型中哪种模型可以进行布尔运算 A、线框模型 B、实心体模型 C、表面体模型答案:B 15、渲染三维模型时,哪种类型可以渲染出物体的所有效果 A、一般渲染 B、普通渲染 C、照片级真实感渲染 D、照片级光线跟踪渲染答案:D 16、样板文件的括展名是 A、BAK B、SVS C、DWT D、DWG答案:C 17、以下哪种相对坐标的输入方法是画8个单位的线长 A.8, 0 B.@0,8 C.@0<8 答案:B 18、哪种坐标输入法需要用@符号?A.极坐标 B.绝对坐标 C.相对坐标答案:C 19.在命令行中输入“Z”后,再输入选项“A”,什么作用 A.在图形窗口显示所有的图形对象和绘图界限范围。 B.恢复前一个视图 C.显示所有在绘图界限范围内的图形对象 D.显示绘图界限范围答案:A 20.下面哪个命令可将块打散生成图形文件

精选-C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

C语言期末考试复习题及答案

C语言期末考试复习题及答案 一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正 确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。 (1)C语言规定:在一个源程序中,main函数的位置 D 。 A)必须在最后B)必须在系统调用的库函数的后面。 C)必须在最开始。。D)可以任意 (2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。 A)必须为字母或下划线。。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 (3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa (4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。 A)0 ~ 65535 B)0 ~ 32767 C)-32767 ~ 32768 D)-32768 ~ 327687 (5) 若有定义:int a = 7; floa x = , y = ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 D 。 A) B) 0.00000 C) D) (6)已知ch是字符型变量,下面不正确的赋值语句是 B 。 A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ; (7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的

江苏大学大一c语言期末复习题汇总

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D.A.dat 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

南昌大学C期末考试试卷(答案全)

南昌大学2003 ~2004 学年第二学期期末考试试卷A卷 一单项选择题 1.‘A’的ASCII码为65,n为int型,执行n =‘A’+‘6’-‘3’;后,n的值为B。 A)‘D’ B) 68 C) 不确定的值D) 编译出错 2.下列变量名中, A 是合法的。 A)CHINA B) byte-size C) double D) A+a 3.在static int B[3][3]={{1},{3,2},{4,5,6}};中, a[2][2]的值是C。 A)0 B) 5 C)6 D)2 4.若有定义int a=3, *p=&a ;则*p的值是 B 。 A)常量a的地址值B)3 C)变量p的地址值D)无意义 5.下列关于指针运算的各叙述中,不正确的叙述是 D 。 A)指向同一数组的两个指针,可以进行相等或不等的比较运算; B)可以用一个空指针赋值给某个指针; C)指向数组的指针,可以和整数进行加减运算; D)指向同一数组的两个指针,可以进行有意义的相加运算。 6. 已知x、y、z是int型变量,且x=3,y=4,z=5;则下面各表达式中,值为0的是 D 。 A)‘x’&&‘y’ B)x<=y C)x || y+z && y-z D) !((x

大学C期末考试试卷(含答案)

一、单项选择题(每题2分,共40分)1-5. BDABC 6-10. BDAAC 11-15. CADBB 16-20. CADDA B 1. ______不是属于面向对象程序设计的特性 A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性 D 2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的______ A. 类 B. 虚函数 C. 运算符重载 D. 模板 A 3. C++与C语言最根本的不同之处在于_______ A. 使用了类 B. 能够实现变量自动初始化 C. 支持软件重用 D. 支持接口重用 B 4. 动态内存分配的主要目的是_______ A. 使程序按动态联编方式运行 B. 正确合理的使用内存 C. 提高程序的运行速度 D. 提高程序的可维护性 C 5. 在C++函数的形参前加const关键字,是为了提高函数的_______ A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性 B 6. 函数重载的目的是________ A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间 D 7. 从程序片断:char name[] = "C++"; course(name);可判断函数course的调用采用的是_______ A. 传值调用 B. 带缺省参数值的函数调用 C. 引用调用 D. 传址调用 A 8. 用来说明类中公有成员的关键字是________ A. public B. private C. protected D. friend A 9. 如果一个类的成员函数print()不修改类的数据成员值,则应将其声明为 A. void print() const; B. const void print(); C. void const print(); D. void print(const); C 10. 下列关于构造函数的论述中,不正确的是_______ A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数 C. 构造函数的返回类型缺省为int型 D. 构造函数可以重载 C 11. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是______ A. int B. int * C. A D. A * A 12. 内存泄漏是指_______ A. 内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存 C. 函数中局部变量所占的栈内存没有及时回收 D. 动态分配的堆内存在程序退出后始终被占用 D 13. 从程序片断:student zhangsan("张三","M",22); zhangsan.id("2005131000");可判断id 是一个________ A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数

C语言期末考试_试题及答案_201

C语言期末考试试题及答案最新2012年 一、单项选择题 1. ()是合法的用户自定义标识符。 A、b-b B、float C、 D、_isw 2. 若变量已正确定义并赋值,表达式()不符合C 语言语法。 A、a*b/c; B、3.14%2 C、2, b D、a/b/c 3. ()是不正确的字符常量。 A、“ n“、B“ 1“、C“ a“、D“ 101 “ 4. 在C 程序中,用()表示逻辑值“真”。 A、1 B、非0的数 C、非1的数 D、大于0的数 5. ()把x、y 定义成float 类型变量,并赋同一初值3.14。 A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14; 6. 若变量已正确定义,表达式()的值不是2。 A、2&3 B、1?1G a==2D 1八3 7?若变量已正确定义,语句“if(a>b)k=0;else k=1和()等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 8?设变量定义为“int a, b;,执行下列语句时,输入(),则a和b的值都是10。 scanf(“ a=%d, b=%d“ ,&;a, &b) A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10

9. 下列程序的输出结果是()。fun(int a, int b, int c) { c =a*b; } void main () { int c; fun(2,3,c); printf(” %dn” ,c); } A、0 B、1 C 6 D、无法确定 10. 在C 程序中,若对函数类型未加说明,则函数的隐含类型为()。 A、int B、double C、void D、char 11. 表达式strlen(” he的0值是)()。 A、4 B、5 C、6 D、7 12. 设变量定义为“ int a[4];,则表达式()不符合C语言语法。 A、*a B、a[0] C、a D、a++ 13. 设变量定义为“int x, *p=&x;,则&*p相当于()。 A、p B、*p C、x D、*&x 14. 若变量已正确定义,()不能使指针p成为空指针。 A、p=EOF B、p=0 C、p=''、pD=NULL 15. 对于以下的变量定义,表达式()不符合C语言语法。struct node {

相关文档
最新文档