当前位置:文档之家› 台州学院面向对象程序设计C++复习题(历年考试题)含答案

台州学院面向对象程序设计C++复习题(历年考试题)含答案

台州学院面向对象程序设计C++复习题(历年考试题)含答案
台州学院面向对象程序设计C++复习题(历年考试题)含答案

台州学院面向对象程序设计C++复习题(历年考试题)含答案一、判断题:(10分)(共10小题,每小题1分)

2010A

T 1. 构造函数可以重载。

F 2. 可以将基类对象直接赋值给派生类对象。

T 3. 一个类中若存在一个成员函数为纯虚函数,则这个类一定是抽象类。

F 4. 友元函数因为定义在类的内部,因此也属于类的成员函数。

F 5. 派生类对象的构造过程是先构造自身,再构造对象成员,最后构造基类。

F 6. 重载函数必须具有不同的返回值类型。

T 7. 定义int *pa[10]; 表示pa是具有10个元素的指针数组,每个元素是一个int型指针。T 8. STL中的list不支持随机访问迭代器。

T 9. 全局对象在main函数执行完毕后调用析构函数释放。

F 10. VC和VC++是一回事,而VC++是一种比C++更难一些的语言。

2010B

F 1. 析构函数可以重载。

F 2. 只要一个类没有定义默认构造函数,编译器都能够为你合成一个。

F 3. 若定义类X的构造函数为X(int a=0, int b),则在构造对象时只需再指定b的值即可。T 4. 可以将派生类对象直接赋值给基类对象。

T 5. 构造函数和析构函数一定是类的成员函数。

T 6. 定义int *pa[10]; 表示pa是指向数组的指针,所指向的数组是10个int型元素。

T 7. 派生类对象的构造过程是先构造基类,再构造对象成员,最后构造自身。

F 8. STL中的vector的效率比list高。

T 9. 重载函数必须有不同的形参列表。

T 10. const成员函数对于任何本类的数据成员都不能进行写操作。

2010C

T 1. 构造函数和析构函数都没有返回类型。

T 2. 构造函数可以设置默认参数。

F 3. 可以让派生类指针直接指向基类对象。

F 4. 面向对象中的类与对象之间是一对一的关系。

T 5. 若一个类为抽象类,则不能实例化该类。

T 6. 函数内的局部对象在退出函数后将调用析构函数释放。

T 7. 定义int (*pa)(int); 表示pa是指向具有一个int形参、返回类型为int的函数指针。

F 8. STL中的stack支持迭代器访问。

F 9. 重载函数形参个数必须不同。

F 10. 派生类对象的构造过程是先构造对象成员,再构造自身,最后构造基类。

2011

T 1. 重载函数必须有不同的参数列表。

F 2. 私有继承中,基类中所有成员在派生类成员函数中都不可以访问。

T 3. 动态绑定的多态性必须通过虚函数实现。

F 4. 友元函数的声明在类体内,它是一种成员函数。

F 5. 在类CDate中的析构函数可以声明为:void ~CDate();

T 6. 在C++中,只能重载已有的运算符。

T 7. 引用和指针都可作为函数参数。

F 8. 可以在类的构造函数中对静态成员进行初始化。

F 9. 可以用delete释放不是用new运算符分配的内存。

T 10. 内联函数相比普通函数的优点是直接将函数体展开,因此省去函数调用栈的开销。

2012

T 1. 封装性、继承性和多态性是面向对象的三大特性。

F 2. 在私有继承的情况下,基类中的所有数据都不可以在派生类成员函数中访问。

T 3. 与普通函数相比,内联函数在编译阶段展开函数体,因此运行效率更高。

F 4. 静态数据成员必须在构造函数中进行初始化。

F 5. 初始化列表可以用于类中的任何一个成员函数中。

F 6. 在C++类的定义中,构造函数有且仅有一个。

T 7. 析构函数可以定义为虚函数。

T 8.友元函数可以访问类中的私有数据成员。

F 9. 任何对象的内存空间都可以使用delete运算符来释放。

F 10.动态绑定的多态性是通过函数的重载来实现的。

二、单选题:(20分)(共10小题,每小题2分)

2008A

1、有关以下程序说法正确的是____D____。

void test()

{

char string[10];

char* str1 = "0123456789";

strcpy( string, str1 );

}

A. 程序完全正确

B. 数组string定义语法不对

C. str1赋值错误

D. string数组不够大,strcpy会导致数组越界

2、有关以下程序说法正确的是____C____。

void GetMemory( char *p )

{

p = (char *) malloc( 100 );

}

void Test( void )

{

char *str = NULL;

GetMemory( str );

strcpy( str, "hello world" );

printf( str );

}

A. 语句GetMemory( str ); 使str指针指向新分配内存起始处

B. 程序最后输出hello world

C. str没有分配空间,因此strcpy出错

D. 程序没有任何问题

3、以下叙述中正确的是_____A_____。

A. 在类中,不作特别说明的数据成员均为私有类型

B. 在类中,不作特别说明的数据成员均为公有类型

C. 类成员的定义必须是成员变量在前、成员函数在后

D. 类成员的定义必须放在类定义体内部

4、以下属于析构函数特征的是_____D_____。

A. 析构函数名与类名不能相同

B. 析构函数的定义必须在类体内

C. 析构函数可以带或不带参数

D. 在一个类中析构函数有且仅有一个

5、以下关于友元函数的叙述不正确的是_____B____。

A.友元函数提供了类之间数据共享的一个途径

B.一个友元函数可以访问任何类的任何成员

C.友元函数破坏了数据的封装

D. 友元函数增加了程序设计的灵活性

6、当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的____A_____。

A. public 成员

B. private 成员

C. protected 成员

D. 友员

7、创建派生类对象时,构造函数的执行顺序正确的是_____D_____。

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

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

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

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

8、有关以下程序说法正确的是____B____。

int a = 5;

int& ra = a;

ra = 8;

A. a的结果为5,ra的结果为8

B. a和ra的结果均为8

C. 该程序段语法有问题

D. a和ra的结果均为5

9、声明一个类的对象时,系统自动调用____B_____。

A. 成员函数

B. 构造函数

C. 析构函数

D. 拷贝构造函数

10、下列有关类A和类B的说法正确的是_____B______。

class A{

friend class B;

};

class B{

};

A. 类A的成员函数可以访问类B的私有成员。

B. 类B的成员函数可以访问类A的私有成员。

C. 类A中定义的友元函数可以访问类B的私有成员。

D. 类B中定义的友元函数可以访问类A的私有成员。

11、有关以下程序说法正确的是____B____。

class Date{

int y, m, d;

public:

Date(int _y=0, int _m=0, int _d=0){y=_y; m=_m; d=_d;}

};

int main(){

Date d;

}

A. 类Date由于没有定义默认构造函数导致编译错误。

B. 对象date1可以成功构造,其所有数据成员被初始化为0。

C. 编译器将合成默认构造函数,但仅能满足编译需要,数据成员无法初始化。

D. 语句Date date1; 不会调用任何构造函数,因此程序能够正确编译。

12、用new运算符创建一个含10个元素的一维整型数组的正确语句是____C____。

A. int *p=new a[10];

B. int *p=new float[10];

C. int *p=new int[10];

D. int *p=new int[10]={1,2,3,4,5}

13、假定有定义:“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句___A____。

A. delete p;

B. delete *p;

C. delete &p;

D. delete []p;

14、为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择____A___。

A. 内联函数

B.重载函数

C.递归函数

D.函数模板

15、假定A为一个类,则执行“A r1=r2;”语句时将自动调用该类的____D_____。

A. 无参构造函数

B. 带参构造函数

C. 赋值重载函数

D. 拷贝构造函数

2008B

1、有关以下程序说法正确的是____D____。

void test()

{

char string[10], str1[10];

int i;

for(i=0; i<10; i++)

{

str1[i] = 'a';

}

strcpy( string, str1 );

}

A. string的结果为"aaaaaaaaaa"

B. str1未分配空间,无法进行赋值

C. string未分配空间,无法调用strcpy

D. strcpy在将str1拷贝到string的过程中导致数组越界

2、有关以下程序说法正确的是____C____。

char *GetMemory( void )

{

char p[] = "hello world";

return p;

}

void Test( void )

{

char *str = NULL;

str = GetMemory();

printf( str );

}

A. str = GetMemory(); 使str指针指向新分配内存起始处

B. 程序最后输出hello world

C. str指针指向一块已被释放的内存区域,成为野指针

D. 程序没有任何问题

3、以下有关构造函数的叙述不正确的是_____D____。

A. 构造函数名必须和类名一致

B. 构造函数在定义对象时自动执行

C.构造函数无任何返回类型

D. 在一个类中构造函数有且仅有一个

4、以下叙述中不正确的是____B____。

A.构造函数和析构函数都是成员函数

B. 构造函数和析构函数都可以带参数

C. 程序中不能直接调用构造函数,但可以调用析构函数

D. 构造函数可以重载但析构函数不可以

5、友元函数的作用是____A____。

A.提高程序的效率

B.加强类的封装性

C.实现数据的隐蔽性

D.增加成员函数的种类

6、下列函数中,能重载运算符的函数是____A_____。

A. 成员函数

B.构造函数

C. 析构函数

D. 友员函数

7、当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的___C__。

A. public 成员

B. private 成员

C. protected 成员

D. 友员

8、有关以下程序说法正确的是____C____。

int a = 5;

int& ra;

ra = a;

a = 8;

A. a的结果为8,ra的结果为5

B. a和ra的结果均为8

C. 该程序段语法有问题

D. a和ra的结果均为5

9、有关以下程序说法正确的是____B____。

bool Date::comp(const Date& a)const{

year = 2005; //语句(1),其中year为Date类的私有数据成员

a.year = 2005; //语句(2)

return year==a.year &&

month==a.month &&

day==a.day;

}

A. 语句(1)执行错误,因为year是私有成员。

B. 语句(1)执行错误,因为comp函数是常成员函数。

C. 语句(2)执行错误,因为comp函数是常成员函数。

D. 语句(2)执行错误,因为year是私有成员。

10、有关以下程序说法正确的是____C____。

class Date{

int y, m, d;

};

int main(){

Date date1;

}

A. 类Date由于没有定义默认构造函数导致编译错误。

B. 对象date1可以成功构造,其所有数据成员被初始化为0。

C. 编译器将合成默认构造函数,但仅能满足编译需要,数据成员无法初始化。

D. 语句Date date1; 不会调用任何构造函数,因此程序能够正确编译。

11、下列程序的错误之处在于______D______。

class Student{

private:

char *name;

public:

Student(){name=new char[10];}

Student(char* n){name=new char[10];strcpy(name,n);}

};

int main(){

Student s1;

Student s2("carter");

return 0;

}

A. 对象s1无法构造成功。

B. 对象s2无法构造成功。

C. 由于没有调用类Student的析构函数,对象s1和s2所占的空间没有释放,造成内存泄露。

D. 系统自动调用编译器合成的析构函数,但没有释放name指针指向的空间,造成内存泄露。

12、定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为_____A_____。

A. int *p=new int[30];

B. int *p=new int(30);

C. int *p=new [30];

D. *p=new int[30];

13、假定p是具有int**类型的指针变量,则给p赋值的正确语句为_____B______。

A. p=new int;

B. p=new int*;

C. p=new int**;

D. p=new int[10];

14、假定A为一个类,则执行“A x;”语句时将自动调用该类的_____B____。

A. 带参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值重载函数

15、下列叙述中,不正确的是____C____。

A. 含纯虚函数的类为抽象类

B. 不能直接由抽象类建立对象

C. 抽象类不能作为派生类的基类

D. 纯虚函数不能定义其实现部分

2008C

1、有关以下程序说法正确的是____D____。

void test(char* str1)

{

char string[10], str1[10];

int i;

for(i=0; i<10; i++)

{

str1[i] = 'a';

}

if( strlen( str1 ) == 10 )

{

strcpy( string, str1 );

}

}

A. string的结果为"aaaaaaaaaa"

B. str1未分配空间,无法进行赋值

C. string未分配空间,无法调用strcpy

D. 根本没有调用strcpy函数,因此string不确定

2、有关以下程序说法正确的是____A____。

void GetMemory( char **p, int num )

{

*p = (char *) malloc( num );

}

void Test( void )

{

char *str = NULL;

GetMemory( &str, 100 );

strcpy( str, "hello world" );

printf( str );

}

A. 程序没有对分配的内存进行释放,导致内存泄漏

B. 程序没有输出任何内容

C. GetMemory函数调用的第一个参数不匹配

D. str指针为NULL,strcpy出错。

3、以下叙述中不正确的是_____B____。

A.在类定义中,通常使用成员变量描述对象的属性,用成员函数描述对象的行为

B.当使用公有继承时,派生类可以访问基类的所有成员

C.构造函数和析构函数是特殊的成员函数,因此不允许重载

D.通过对象只能访问类的公有成员

4、以下不属于类成员函数的是_____C_____。

A.构造函数

B.析构函数

C.友员函数

D.虚函数

5、以下有关成员函数特征的叙述不正确的是____A____。

A.成员函数一定是内联函数

B.成员函数可以重载

C.成员函数可以设置缺省数值

D.成员函数可以是静态的

6、当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的___B__。

A. public 成员

B. private 成员

C. protected 成员

D. 友员

7、撤销对象时,系统自动调用_____C____。

A. 成员函数

B. 构造函数

C. 析构函数

D. 拷贝构造函数

8、有关以下程序说法正确的是____B____。

int a = 5;

int* ra = &a;

*ra = 8;

A. a的结果为5,*ra的结果为8

B. a和*ra的结果均为8

C. 该程序段语法有问题

D. a和*ra的结果均为5

9、定义下述时钟类Clock以及其对象myClock,下列_____B____选项中的语句能够正确执行。class Clock

{

void set(int h){hour = h;}

void set(int h, int m){set(h); minute = m;}

public:

void set (int h, int m, int s){set(h, m); second = s;}

private:

int hour, minute, second;

protected:

void display(){cout<

};

A. myClock.set(1);

B. myClock.set(1, 1, 1);

C. myClock.display();

D. myClock.hour = 1;

10、以下有关叙述正确的是______A_____。

class Date{

int y, m, d;

public:

Date(int _y, int _m, int _d){y=_y; m=_m; d=_d;}

};

int main(){

Date d;

}

A. 类Date由于没有定义默认构造函数导致编译错误。

B. 对象date1可以成功构造,其所有数据成员被初始化为0。

C. 编译器将合成默认构造函数,但仅能满足编译需要,数据成员无法初始化。

D. 语句Date date1; 不会调用任何构造函数,因此程序能够正确编译。

11、以下叙述不正确的是_____D_____。

A. 宏替换不占用运行时间

B. 宏名无类型

C. 宏替换只是字符替换

D. 宏名必须用大写字母表示

12、要使语句“p=new int[10][20];”能够正常执行,p应被事先定义为____D____。

A. int *p;

B. int **p;

C. int *p[20];

D. int(*p)[20];

13、假定有定义:“int *p=new int[30];”,要释放p所指向的动态内存,应使用语句____D___。

A. delete p;

B. delete *p;

C. delete &p;

D. delete []p;

14、假定A为一个类,则执行“A x(a,5);”语句时将自动调用该类的_____A____。

A. 带参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值重载函数

15、下列叙述中,不正确的是____D____。

A. 含纯虚函数的类为抽象类

B. 不能直接由抽象类建立对象

C. 纯虚函数不能定义其实现部分

D. 不能定义抽象类类型的指针

2009A

1、执行以下程序段后s的值是____C____。

string s = "1";

A. 3

B. 21

C. 12

D. 1

2、有关以下程序说法最贴切的是____D____。

void test()

{

char string[10];

char* str1 = "0123456789";

strcpy( string, str1 );

}

A. 程序完全正确

B. 数组string定义语法不对

C. str1赋值错误

D. 程序存在潜在的问题,string数组不够大,strcpy会导致数组越界

3、有以下程序段:

class A{

public:

A() { data=0;}

~ A() {}

int GetData() const { return data;}

void SetData(int n) { data=n;}

private:

int data;

};

const A a;

A b;

下列函数调用中错误的是_____B_____

A. a.GetData();

B. a.SetData(10);

C. b.GetData();

D. b.SetData(10);

4、友元函数的作用是_______A______。

A. 提高程序的效率

B. 加强类的封装性

C. 实现数据的隐蔽性

D. 增加成员函数的种类

5、以下叙述中不正确的是_____C____。

A. 在类的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为

B. 类的不同成员可以有不同的访问控制属性

C. 构造函数和析构函数是特殊的成员函数,因此不允许重载

D. 通过对象只能访问类的公有成员

6、一个抽象类必须含有____B____。

A.析构函数

B. 纯虚函数

C. 构造函数

D. 拷贝构造函数

7、创建派生类对象时,构造函数的执行顺序正确的是_____C_____。

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

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

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

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

8、有关以下程序说法正确的是____B____。

int a=10;

int &ra=a;

cout<

A. a的结果为10,ra的结果为11

B. a和ra的结果均为11

C. a的结果为11,ra的结果为10

D. a和ra的结果均为10

9、有关析构函数的说法中错误的是______C______。

A. 析构函数有且只有一个

B. 析构函数无任何函数类型

C. 析构函数和构造函数一样可以有形参

D. 析构函数的作用是在对象被撤销时做清理工作

10、已有如下程序段:

#include

using namespace std;

class A{

public:

A() { data=0;}

~ A() {}

virtual void f(){ cout<<"A::f"<

void f(char i){cout<<"A::f"<

private:

int data;

};

class B: public A{

public:

virtual void f(){cout<<"B::f"<

virtual void f(int i){cout<<"B::f"<

void f(char i){cout<<"B::f"<

};

int main()

{

B b;

A *p = &b, a;

//……

return 0;

}

以下哪个语句输出与另外三项执行的结果不同______A_______。

A. p->f();

B. p->f('1');

C. p->f(1);

D. a.f(1);

11、实现运行时的多态性用_____D____。

A. 重载函数

B. 构造函数

C. 析构函数

D. 虚函数

12、对于int *pa[5]的描述,______D____是正确的。

A. pa是一个指向数组的指针,所指向的数组是5个int型元素

B. pa是一个指向某数组中的第5个元素的指针,该元素是int型变量

C. pa[5]表示某个数组的第5个元素的值

D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针

13、假定有定义:“int *p=new int[100];”,要释放p所指向的动态内存,应使用语句____D___。

A. delete p;

B. delete *p;

C. delete &p;

D. delete []p;

14、为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择____A___。

A. 内联函数

B.重载函数

C.递归函数

D.函数模板

15、建立一个类对象时,系统自动调用____B____。

A. 析构函数

B. 构造函数

C. 拷贝构造函数

D. 友元函数

2009B

1、有关以下程序说法正确的是_____C___。

char *GetMemory( void )

{

char p[] = "hello world";

return p;

}

void Test( void )

{

char *str = NULL;

str = GetMemory();

printf( str );

}

A. str = GetMemory(); 使str指针指向新分配内存起始处

B. 程序最后输出hello world

C. str指针指向一块已被释放的内存区域,成为野指针

D. 程序没有任何问题

2、假定AB为一个类,则该类的拷贝构造函数的声明语句为____C____。

A. AB & (AB x)

B. AB (AB x)

C. AB (AB &x)

D. AB (AB *x)

3、一下属于析构函数特征的是____A_____。

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

B. 析构函数名与类名无关

C. 析构函数的定义只能在类体内

D. 析构函数可以有一个或多个参数

4、在C++中,关于下列设置参数默认值的描述中,正确的是____B_____。

A. 程序中有函数重载,就不能设置参数默认值

B. 设置参数默认值,只能在函数定义时进行

C. 设置参数默认值时,应该是先设置右边的再设置左边的

D. 设置参数默认值时,应该全部参数都设置

5、以下叙述中不正确的是____B____。

A.构造函数和析构函数都是成员函数

B. 构造函数和析构函数都可以带参数

C. 程序中不能直接调用构造函数,但可以调用析构函数

D. 构造函数可以重载但析构函数不可以

6、当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的_C___。

A. public 成员

B. private 成员

C. protected 成员

D. 友员

7、创建派生类对象时,构造函数的执行顺序正确的是_____C_____。

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

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

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

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

8、有关以下程序说法正确的是_____B___。

int& ra = a;

a++, ra++;

A. a的结果为6,ra的结果为7

B. a和ra的结果均为7

C. 该程序段语法有问题

D. a和ra的结果均为6

9、设px是指向一个类动态对象的指针变量,则执行“delete px;”时,将自动调用该类的__B__。

A. 构造函数

B. 析构函数

C. 拷贝构造函数

D. 不调用任何函数

10、有关以下程序说法正确的是_____C___。

class Date{

int y, m, d;

};

int main(){

Date date1;

}

A. 类Date由于没有定义默认构造函数导致编译错误。

B. 对象date1可以成功构造,其所有数据成员被初始化为0。

C. 编译器将合成默认构造函数,但仅能满足编译需要,数据成员无法初始化。

D. 语句Date date1; 不会调用任何构造函数,因此程序能够正确编译。

11、下列关于构造函数的描述中,错误的是______D____。

A. 构造函数可以设置默认参数

B. 构造函数在定义类对象时自动执行

C. 构造函数可以是内联函数

D. 构造函数不可以重载

12、定义p并使p指向的变量初始化为30,以下____B____语句能够实现。

A. int *p=new int[30];

B. int *p=new int(30);

C. int *p=new int*[30];

D. int *p=new int*(30);

13、以下程序的运行结果为_____D_____。

int main(){

int sum;

for(int i=0; i<6; i+=3){

sum=i;

for(int j = i; j<6; j++)sum+=j;

}

cout<

return 0;

}

A. 3

B. 10

C. 12

D. 15

14、下面关于继承和派生的叙述中,正确的是___A______。

A. 抽象类不能被实例化

B. 派生类不能访问基类中的保护成员

C. 虚函数必须在派生类中重新实现

D. 派生类必须向基类的构造函数传递参数

15、下列关于函数模板的定义中,合法的是____B____。

A)template class T abs(T z) {return z<0 ? -z:z;}

B)template T abs(T z) {return z<0 ? -z:z;}

C)template T abs(T z){ return z<0 ? -z:z;}

D)template T abs(T z) { return z<0 ? -z:z;}

1、执行以下程序段后s的值是____B____。

string s = "1";

s += "2a";

A. 3

B. 12a

C. 21

D. 2a1

2、应在下列程序划线处填入的正确语句是______C______。

class Base

{

public:

void fun(){cout<<"Base::fun"<

};

class Derived: public Base

{

public:

void fun()

{

_____________ //显式调用基类的函数fun()

cout<<"Derived::fun"<

}

};

A. fun();

B. Base.fun();

C. Base::fun();

D. Base->fun();

3、以下叙述中正确的是______C____。

A. 使用struct定义结构体时,不作特别说明的数据成员均为私有类型

B. 使用class定义类时,不作特别说明的数据成员均为公有类型

C. 构造函数和析构函数都是类的成员函数

D. 类成员的定义必须放在类定义体内部

4、下列叙述中,正确的是____B____。

A. 抽象类的所有函数均为纯虚函数

B. 可以定义抽象类指针指向其派生类对象

C. 可以定义抽象类的对象

D. 基类的纯虚函数必须在派生类中得以实现

5、下面有关重载函数的说法中正确的是_______C________。

A. 重载函数必须具有不同的返回值类型

B. 重载函数形参个数必须不同

C. 重载函数必须有不同的形参列表

D. 重载函数名可以不同

6、下面描述中,表达错误的是________B________。

A. 公有继承时基类中的public成员可以通过派生类对象访问

B. 公有继承时基类中的private成员可以在派生类的成员函数中访问

C. 公有继承时基类中的protected成员可以在派生类的成员函数中访问

D. 私有继承时基类中的public成员可以在派生类的成员函数中访问

7、创建派生类对象时,构造函数的执行顺序正确的是_____C_____。

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

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

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

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

8、有关以下程序说法正确的是___D_____。

int& ra = a;

a++;

ra++;

A. a的结果为11,ra的结果为12

B. a和ra的结果均为11

C. a的结果为12,ra的结果为11

D. a和ra的结果均为12

9、若B为一个自定义的类,当执行语句B b;时,系统自动调用了B的_____A____。

A. 构造函数

B. 析构函数

C. 拷贝构造函数

D. 不调用任何函数

10、有如下程序段:

class BASE{

char c;

public:

BASE(char n):c(n){}

virtual~ BASE(){cout<

};

class DERIVED: public BASE{

char c;

public:

DERIVED(char n):BASE(n+1),c(n){}

~DERIVED(){cout<

};

int main() {

DERIVED('X');

return 0;

}

执行上面的程序将输出_______A______。

A. XY

B. YX

C. X

D. Y

11、C++中,虚拟函数主要用于支持_______A______的实现。

A. 多态性

B. 继承

C. 多继承

D. 封装

12、对于int *pa[5]的描述,_____D_____是正确的。

A. pa是一个指向数组的指针,所指向的数组是5个int型元素

B. pa是一个指向某数组中的第5个元素的指针,该元素是int型变量

C. pa[5]表示某个数组的第5个元素的值

D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针

13、假定有定义:“int *p=new int[100];”,要释放p所指向的动态内存,应使用语句___D____。

A. delete p;

B. delete *p;

C. delete &p;

D. delete []p;

14、为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择____A___。

A. 内联函数

B.重载函数

C.递归函数

D.函数模板

15、假定A为一个类并已经定义了其对象r1,则执行“A r2=r1;”语句时将自动调用该类的_____D____。

A. 无参构造函数

B. 带参构造函数

C. 赋值重载函数

D. 拷贝构造函数

2010A

1. 假设X为一个自定义类,则语句X a; 将自动调用____A_____。

A. 构造函数

B. 析构函数

C. 拷贝构造函数

D. 以上答案都不对

2. 以下什么情况下一定会出现二义性?____A___。

A. 多个直接基类有共同的基类

B. 有多个直接基类

C. 两个不同的直接基类中有同名成员

D. 有多级基类

3. 以下关于虚函数的叙述中错误的是_____D_____。

A. 一个类的虚函数可以在该类的派生类中被重写

B. 虚函数只能通过指针或者引用来调用才能体现运行时的多态性

C. 析构函数也可以定义成虚函数

D. 基类的成员函数通过虚继承后均成为虚函数

4. 在C++类的头文件中经常有#ifndef / #define / #endif的预处理代码,它们的作用是____B___。

A. 定义变量

B. 防止头文件被重复包含

C.注释代码

D. 在运行中判断是否执行类中相应函数

5. 有关以下代码的说法正确的是_________A_______。

char *GetMemory(int n){

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

return p;

}

void main(){

char *str = NULL;

str = GetMemory(15);

strcpy(str,"Hello, World!");

cout<

delete [] str;

}

A. 程序正常输出Hello, World!

B. p是局部变量,因此其指向的空间会自动释放

C. delete的语法不对,程序编译错误

D. str指针仍然为NULL,无法执行strcpy

6. 下列代码中的哪个语句有语法错误_____C_____。

class B{

protected:

int x;

public:

void f(){}

};

class D: private B{

int y;

public:

void g(){

x = 1; //语句1

f(); //语句2

}

};

void main(){

D d;

d.f(); //语句3

d.g(); //语句4

}

A. 语句1

B. 语句2

C. 语句3

D. 语句4

7. 若数组名作实参,指针变量作形参,函数调用时实参传递给形参的是____D___。

A. 数组长度

B. 数组第一个元素的值

C. 数组的所有元素的值

D. 数组第一个元素的地址

8. 假设a是X类的私有静态成员,那么以下语句可以完成a的初始化的是_____D___。

A. static int a=0;

B. X x; x.a = 0;

C. X::a = 0;

D. int X::a = 0;

9. 以下程序的输出结果是_______C_____。

#define max(a,b) ((a) > (b) ? (a) : (b))

int main() {

int i = 5, j = 6;

printf("%d\n", max(i++,++j));

}

A. 6

B. 7

C. 8

D. 程序语法错误

10. 设px是指向一个类对象的指针变量,则执行“delete px;”时,将自动调用该类的__B__。

A. 构造函数

B. 析构函数

C. 拷贝构造函数

D. 不调用任何函数

2010B

1. 假设X为一个自定义类,则语句X a(1, 2); 将自动调用_____A____函数。

A. 构造函数

B. 析构函数

C. 拷贝构造函数

D. 以上答案都不对

2. 为解决二义性问题,应该采用的方法是_______B_____。

A. 更改类成员变量的名字

B. 采用虚继承

C. 改用单继承

D. 引入虚函数

3. 在C++中,用于实现运行时多态性的是_____D_____。

A. 重载函数

B. 函数模板

C. 内联函数

D. 虚函数

4. 关于带参数的宏定义与内联函数,以下说法错误的是____C_____。

A. 宏定义相比内联函数缺乏数据类型检查

B. 内联函数不适合复杂的函数体,因为多处调用会增加目标代码量

C. 内联函数需要维护函数调用的开销,因此效率较低

D. 宏定义由于定义比较困难,不适合于定义过于复杂的功能

5. 以下哪个代码的编写语法是正确的_______C_____。

A. const int a;

B. int& a;

C. const X a;//X为事先定义的类

D. int& a=1;

6. 有关以下代码的说法正确的是_____D______。

void GetMemory(char **p, int num){

*p = new char[num];

}

void main(){

char *str = NULL;

GetMemory(&str, 15);

strcpy(str, "Hello, World!");

cout<

delete [] str;

}

A. str指针仍然为NULL,无法执行strcpy

B. delete的语法不对,程序编译错误

C. GetMemory函数调用的参数类型不匹配

D. 程序正常输出Hello, World!

7. 下列代码中的哪个语句有语法错误_____D______。

class B{

protected:

int x;

public:

void f(){}

};

class D: private B{

int y;

public:

void g(){

x = 1; //语句1

f(); //语句2

}

};

void main(){

B b;

D d;

b.f(); //语句3

b.g(); //语句4

}

A. 语句1

B. 语句2

C. 语句3

D. 语句4

8. 若已经完整的定义类Id,下列哪个选项中的语句将返回无效值_______C_______。

A. Id fun(Id p) {return p ;}

B. Id fun(Id&p) {return p ;}

C. Id &fun(Id p) {return p ;}

D. Id &fun(Id&p) {return p ;}

9. 以下程序的输出结果是______B______。

#define max(a,b) ((a) > (b) ? (a) : (b))

int main() {

int i = 5, j = 6;

printf("%d\n", max(i++,j++));

}

A. 6

B. 7

C. 8

D. 程序语法错误

10. 若数组名作实参,形参也定义为数组,函数调用时实参传递给形参的是___D___。

A. 数组长度

B. 数组第一个元素的值

C. 数组的所有元素的值

D. 数组首地址

2010C

1. 假设X为一个自定义类且定义其对象a,则语句X b=a; 将调用_____C____函数。

A. 析构函数

B. 赋值运算符函数

C. 拷贝构造函数

D. 以上答案都不对

2. 下列关于虚继承的说法错误的是_______B______。

A. 采用虚继承的目的是为了消除多重继承带来的二义性问题

B. 虚基类成员的构造只需在其直接派生类的构造函数初始化列表中进行初始化

C. 在同一层次中,虚基类的构造函数在非虚基类之前调用

D. 在同一层次中包含多个虚基类,这些虚基类的构造函数按照说明的先后次序调用。

3. 有关以下代码的说法正确的是______B_____。

string& GetString(){

string s = "Hello, World!";

return s;

}

void main(){

cout<

}

A. cout无法输出引用类型的数据

B. GetString函数返回局部对象的引用将导致错误

C. return s;语句将调用拷贝构造函数并返回

D. 程序正常输出Hello, World!

4. 下列代码中的哪个语句有语法错误_____C______。

class B{

protected:

int x;

public:

void f(){}

};

class D: private B{

int y;

public:

void g(){

x = 1; //语句1

f(); //语句2

}

};

void main(){

B b;

D d;

b.x=1; //语句3

d.g(); //语句4

}

A. 语句1

B. 语句2

C. 语句3

D. 语句4

5. 以下代码将调用拷贝构造函数的次数是____A____。

Id f1(Id param) { return param; }

Id f2(Id& param) { return param; }

Id &f3(Id& param) { return param; }

int main() {

Id id0;

f1(id0);

f2(id0);

f3(id0);

}

A. 3次

B. 4次

C. 5次

D. 6次

6. 以下程序的输出结果是______B______。

#define max(a,b) ((a) > (b) ? (a) : (b))

int main() {

int i = 5, j = 6;

printf("%d\n", max(i--,j--));

}

A. 4

B. 5

C. 6

D. 程序语法错误

7. 关于以下程序块的说法正确的选项是_____C_____。

int a[5] = {1,2,3}, b[3]={1,2,3}, c[3]={1, 3, 4};

if(a==b)

cout<<"Equal"<

if(a>b)

cout<<"Larger"<

A. 因为a和b数组元素完全一样,因此能输出语句1

B. 因为a在b之前定义,因此一定能输出语句2

C. 因为a和b的对应不同的内存单元,因此一定不能输出语句1

D. 因为b的分配一定在a之后,因此一定不能输出语句2

8. 关于以下程序块的说法错误的选项是_____C_____。

char* str;

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

str[i] = i+'A';

cout<

A. str指针是一个野指针,需要分配内存方可使用

B. str是一个指针,无法通过下标形式str[i]来访问

C. str需要在末尾加上结束符才可以正常输出

D. 对str分配内存的方式可以使用str = new char[100];

9. 若指针作实参,形参定义为数组,函数调用时实参传递给形参的是___B___。

A. 指针所指向的数组长度

B. 指针变量中的地址值

C. 指针所指向的数组所有元素的值

D. 指针变量所在的内存空间

10. 执行以下程序段后s的值是____B____。

string s = "1";

s += "23";

A. 1

B. 123

C. 24

D. 231

2011

1. 关键字_______C_____ 说明对象或变量初始化后不会被修改。

A. static

B. public

C. const

D. inline

2. C++中,用于解决二义性问题的技术是___D____。

A. 虚函数

B. 函数重载

C. 静态函数

D. 虚继承

3. 如果调用带有默认参数的函数时缺少一个参数,则_______B_______的默认值就作为这一参数值。

A. 第一个

B. 最后一个

C. 中间一个

D. 以上都不是

4. 要让一个类的所有对象具有共同的数据,要使用_________A_________。

A. 静态数据成员

B. 私有数据成员

C. 公有数据成员

D. 保护数据成员

5. 已知A是一个自定义的类,请问以下代码调用拷贝构造函数的次数是_____B_____。

A& f(A* pa){

pa = new A();

return *pa;

}

int main()

{

A a = f(NULL);

return 0;

}

A. 0次

B. 1次

c语言期末复习试题(附答案)

试卷编号:11201 所属语言:C语言 试卷方案:C语言期末考试 试卷总分:100分 共有题型:4种 一、单项选择共30题(共计60分) 第1题(2.0分) 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 第2题(2.0分) 已知int i=5,执行语句i+=++i后, i的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(2.0分) 以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A:注释语句书写位置错误 B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法 D:计算圆面积的赋值语句中使用了非法变量 第4题(2.0分) "\\\″ABC\″\\″的长度是( B ). A:11 B:7 C:5 D:3 第5题(2.0分) 已知int j,i=1;,执行语句j=–i++;后,j的值是( C ). A:1 B:2 C:-1 D:-2 第6题(2.0分) 有以下程序: #include void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a–2; }while(a!=n); printf("%d\n", s); } 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1 B:-3

江苏大学大一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期末考试试题及答案完整版

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语言版期末考试复习试题

《数据结构与算法》复习题 一、选择题。 1在数据结构中,从逻辑上可以把数据结构分为 C 。 A ?动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2?数据结构在计算机内存中的表示是指_A_。 A .数据的存储结构B.数据结构 C .数据的逻辑结构 D .数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A .逻辑 B .存储C.逻辑和存储 D .物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_C A .数据的处理方法 B .数据元素的类型 C.数据元素之间的关系 D .数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A A .各结点的值如何C.对数据有哪些运算 B .结点个数的多少 D .所用的编程语言实现这种结构是否方 6.以下说法正确的是D A .数据项是数据的基本单位 B .数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D .一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1) A .找出数据结构的合理性B.研究算法中的输入和输出的关系 C .分析算法的效率以求改进C.分析算法的易读性和文档性 (2) A .空间复杂度和时间复杂度B.正确性和简明性 &下面程序段的时间复杂度是0( n2) s =0; for( I =0; i

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

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期末考试复习题理工

一、单项选择题 ( 本大题共 10 小题,每小题 2 分,共 20 分) 1. 在C++中,函数原型不能标识(D ) A. 函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 2. 在C++程序中,对象之间的相互通信通过(B ) A. 继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3. 对于任意一个类,析构函数的个数最多为 (B ) 5. 友元关系不能 (A ) A. 继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率 6.语句ofstream f ’,ios::a pp | ios::b in ary) ?的功能是建立流对象f,试图打开文件 并 与 之连接,并且 (A ) 将文件写指针定位于文件尾;若文件不存在,建立一个新文件 7.下面说法正确的是 (B ) A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C. 类的内联函数必须在类体内定义 D. 类的内联函数必须在类体外通过加关键字 inline 定义 以用 的形式访问派生类对象P 的基类成员a ,其中a 是(D ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成 公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( C) A. 派生类的对象可以赋给基类的对象 B. 派生类的对象可以初始化基类的引用 的指针 A.若文件存在, B. 若文件存在, 将其置为空文件;若文件不存在,打开失败 C. 若文件存在, 将文件写指针定位于文件首;若文件不存在,建立一个新文件 D. 若文件存在, 打开失败;若文件不存在,建立一个新文件 C. 派生类的对象可以直接访问基类中的成员 D. 派生类的对象的地址可以赋给指向基类

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了____15_________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; ___i<100____________; i++) if (___i/3_=__=0__i_______) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是_________7 ______ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

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语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

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++是用_______实现接口重用的

C期末考试复习题理工

一、单项选择题(本大题共10 小题,每小题2 分,共20 分) 1.在C++中,函数原型不能标识(D ) A.函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 2.在C++程序中,对象之间的相互通信通过(B ) A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为(B ) A.0 B.1 C.2 D.3 5.友元关系不能(A ) A.继承 B.是类与类的关系 C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率 6.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary)?的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且(A ) A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是(B ) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline 定义 //当程序使用内敛函数时,编译器将每个函数调用都用函数内的语句代替,这样就省去了函数调用地开销 8.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是(D ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员

精选-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语言期末复习题汇总

选择题 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语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

大学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语言期末考试复习题及答案

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语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

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 {

相关主题
文本预览
相关文档 最新文档