当前位置:文档之家› 面向对象程序设计题库(C++)

面向对象程序设计题库(C++)

面向对象程序设计题库(C++)
面向对象程序设计题库(C++)

一、单项选择题

1. 在C++语言中,对函数参数默认值描述正确的是:( D )

A) 函数参数的默认值只能设定一个

B) 一个函数的参数若有多个,则参数默认值的设定可以不连续

C) 函数参数必须设定默认值

D) 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值

2. 假定AB 为一个类,则执行AB x ;语句时将自动调用该类的( B )。

A) 有参构造函数B) 无参构造函数

C) 拷贝构造函数D) 赋值构造函数

3. 下述关于开关语句的描述中,()是正确的。

A) 开关语句中default子句可以没有,也可以有一个;

B) 开关语句中每个语句序列中必须有break语句;

C) 开关语句中default子句只能放在最后;

D) 开关语句中case子句后面的表达式可以是整形表达式。

4. 关于对象概念的描述中,()是错误的。

A) 对象就是C语言中的结构变量;

B) 对象代表着正在创建的系统中的一个实体;

C) 对象是一个状态和操作(或方法)的封装体;

D) 对象之间的信息传递是通过消息进行的;

5. 下列给字符数组进行初始化中,()是正确的。

A) char s1[ ]="12345abcd"; B) char s2[3]="xyz";

C) char s3[][3]={ 'a', 'x', 'y'}; D) char s4[2[3]={"xyz","mnp"};

6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是()。

A) 3 B) 2 C) 6 D) 4

7. 声明类test的拷贝构造函数的正确形式是( D )。

A) int test B) void test C) test(void) D) test(test&)

8. 关于new运算符的下列描述中,()是错的。

A) 它可以用来动态创建对象和对象数组;

B) 使用它创建的对象或对象数组可以使用运算符delete删除;

C) 使用它创建对象时要调用构造函数;

D) 使用它创建对象数组时必须指定初始值。

9. 在C++ 中有以下4 条语句:static int hot=200;int &rad=hot;

hot=hot+100;cout<

A) 0 B) 100

C) 300 D) 200

10. 下列关于构造函数的描述中,错误的是( B )。

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

B) 构造函数在声明对象时自动执行;

C) 构造函数可以对静态数据成员进行初始化;

D) 构造函数可以重载;

11. 下面关于重载函数的说明中正确的是( )。

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

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

C) 重载函数必须具有不同的形式参数表

D) 重载函数名可以不同

12. 下列关于C++函数的说明中,正确的是( )。

A) 内联函数就是定义在另一个函数体内部的函数

B) 函数体的最后一条语句必须是return 语句

C) C++要求在调用一个函数前必须先声明其原型

D) 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

13. 已知函数原型为:

void foo(int*, long &b);

实参定义为:

int i;

long f;

则正确的调用语句是( ).

A) foo(i, &f); B) foo(i, f); C) foo(&i, f); D) foo(&i, &f);

14. C++中对于结构中定义的成员,其默认的访问权限为( )。

A) public B) protected C) private D) static

15. 下列关于类与对象的说法中,不正确的是( )。

A) 对象是类的一个实例

B) 任何对象只能属于一个具体的类

C) 一个类只能有一个对象

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

16. 下列关于构造函数的描述中错误的是( )

A) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行

C) 构造函数可以对静态数据成员进行初始化D) 构造函数不可以重载

17. 类的析构函数的作用是( )。

A) 作为类的一般成员函数B) 类的初始化C) 对象的初始化D) 对象的删除

18. 以下关于静态数据成员的描述正确的是( )。

A) 静态数据成员可以在类体中进行初始化B) 静态数据成员不可以被类的实例调用

C) 静态数据成员不能受protected控制符的作用D) 静态数据成员可以直接用类名调用

19. 下面关于友元函数的描述中正确的是( )。

A) 友元函数的实现必须在类的内部定义B) 友元函数是类的成员函数

C) 友元函数破坏了类的封装性和隐藏性C) 友元函数不能访问类的私有成员

20. 下面关于友元函数的描述中错误的是( )。

A) 如果类A是类B的友元,那么类B也是类A的友元

B) 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C) 友元关系不能被继承

D) 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数

21. 下列属于C++语句的是。

A) ; B) a=17 C) a+5 D) cout<<’\n’

22. 执行语句k=30;j=k++;后k和j的值分别为。

A) k=30,j=30 B) k=30,j=31

C) k=31,j=30 D) k=31,j=31

23. 若X是一个bool型变量,则X && 5<3的值。

A) 为true B) 为false

C) 与X的值相同 D) 与X的值相反

24. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c

A) 3 B) 2 C) 1 D) 4

25. 执行下列语句后的输出结果是。

int hot=100;

int &rad=hot;

hot+=100;

cout<

A) 0 B) 100

C) 200 D) 300

26. 下列关于break语句的叙述不正确的是。

A) break语句可用于循环体中,它将使执行流程跳出本层循环体;

break语句可用于switch语句中,它将使执行流程跳出当前的switch语句;break语句可用于if语句中,它将使执行流程跳出当前if语句;

break语句在一层循环体中可以出现多次。

27. 下面关于类的对象性质的描述,正确的是。

A) 对象之间不可以相互赋值B) 不可以说明指向对象的指针

C) 对象不能用作数组元素D) 一个对象能用作另一个对象的成员

28. 在C++ 中实现封装是借助于。

A) 枚举 B) 类

C) 数组D) 函数

29. 下列不是描述类的成员函数的是。

A) 构造函数B) 析构函数

C) 友元函数D) 拷贝构造函数

30. 不能作为函数重载判断依据的是。

A) 参数个数B) 参数类型

C) 函数名称D)返回值类型

31. 假定一个类的构造函数为A(int aa,int bb){a=aa++;b=a*bb++;} ,则执行

A X(4,5); 语句后,X.a 和X.b 的值分别为。

A) 4 和5 B)5 和30

C) 4 和20 D)20 和5

32. 对于double (*p)[10];的描述,是正确的。

A) p是一个指向数组的指针,所指向的数组是10个double型元素;

B) p是一个指向某个数组中第10个元素的指针,该元素是double型变量;

C) p[5]表示某个数组的第10个元素的值;

D) p是一个具有10个元素的指针数组,每个元素是一个double型指针;

33. 下面的函数声明中, 哪一个是”void BC(int a, int b);”的重载函数?

A) int BC(int a, int b) B) void BC(int a, char b)

C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0)

34. 已知char c; char * const pc="asdf",是正确的。

A) pc="dfgh"B) *pc=‘b’

C) *pc++=‘y’D) pc=&c

35. 下列关于构造函数的叙述,错误的是。

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

B)构造函数在说明类变量时自动调用;

C)构造函数可以对静态数据成员进行初始化;

D)构造函数可以重载;

36. 下列关于构造函数的描述中错误的是( )

A) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行

C) 构造函数可以对静态数据成员进行初始化D) 构造函数不可以重载

37. 类的析构函数的作用是( )。

A) 作为类的一般成员函数B) 类的初始化C) 对象的初始化D) 对象的删除

38. 以下关于静态数据成员的描述正确的是( )。

A) 静态数据成员可以在类体中进行初始化B) 静态数据成员不可以被类的实例调用

C) 静态数据成员不能受protected控制符的作用D) 静态数据成员可以直接用类名调用

39. 下面关于友元函数的描述中正确的是( )。

A) 友元函数的实现必须在类的内部定义B) 友元函数是类的成员函数

C) 友元函数破坏了类的封装性和隐藏性C) 友元函数不能访问类的私有成员

40. 下面关于友元函数的描述中错误的是( )。

A) 如果类A是类B的友元,那么类B也是类A的友元

B) 如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C) 友元关系不能被继承

D) 如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数

41. 重载函数在调用时选择的依据中,错误的是( )

A. 函数的参数

B. 参数的类型

C. 函数的名字

D. 函数的类型

42. 一个函数功能不太复杂,但要求被频繁调用,选用( . )

A. 内联函数

B. 重载函数

C. 递归函数

D. 嵌套函数

43. 下列不是描述类的成员函数的是( )

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

44. 构造函数不具备的特征的是( )

A. 构造函数的函数名与类名相同

B. 构造函数可以重载

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

D. 构造函数可以指定返回类型

45. 通常,拷贝构造函数的参数是( )

A. 某个对象名

B. 某个对象的成员名

C. 某个对象的引用名

D. 某个对象的指针名

46. 继承机制的作用是( )

A. 信息隐藏

B. 数据封装

C. 代码重用

D. 数据抽象

47. 类的析构函数的作用是( )

A.一般成员函数

B.类的初始化

C.对象的初始化

D.删除对象创建的所有对象

48. 类的析构函数是在( ) 调用的。

A. 类创建时

B. 创建对象时

C. 删除对象时

D. 不自动调用

49. 已知print ()函数是一个类无返回值的常成员函数,下列表示中正确的是( )。

A.void print()const

B.const void print()

C.void const print ;

D.void print (const );

50. 如果类A 被说明成类B 的友元,则( )

A. 类A 的成员即类B 的成员

B. 类B 的成员即类A 的成员

C. 类A 的成员函数不得访问类B 的成员

D. 类B 不一定是类A 的友元

51. 通过一个对象调用虚函数时,C++系统对该调用采用( )。

A.动态联编

B.静态联编

C.不确定是哪种联编

D.函数重载

52. 在公有继承的情况下,基类成员在派生类中的访问权限( )

A. 受限制

B. 保持不变

C. 受保护

D. 不受保护

53. 在C++中,当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含的指针,称之为( )指针。

A.对象

B.派生C基类 D.this

54. 假定AB 为一个类,则执行AB x ;语句时将自动调用该类的( )

A. 有参构造函数

B. 无参构造函数

C. 拷贝构造函数

D. 赋值构造函数

55. C++ 语言建立类族是通过( )

A. 类的嵌套

B. 类的继承

C. 虚函数

D. 抽象类

二、判断题

1、C++中,数组下标从1开始。( 错)

2、C++允许对字符串进行整体操作。( )

3、break语句也可以用于if体内,它可退出if语句。()

4、在说明语句char a(‘A’),&b=a,*pa=&a;中,b的值与*pa的值相等。( )

5、对象数组的元素可以是不同类的对象。()

6、私有继承中,基类中所有成员对派生类的对象都是不可见的。()

7、类中所提供的成员函数可以直接访问私有成员。()

8、按照标识符的要求,下划线是不能组成正确标识符的。()

9、函数的默认参数没有顺序要求,可以随意定义。()

10、在C++ 语言中,”A”占两个字节,而’A’占一个字节。()

11、C++语言支持封装性和继承性,不支持多态性。[ 错]

12、关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。)[ ]

13、字符串"sdfgh"的长度是5。[ ]

14、引用和指针都可作函数参数。[ ]

15、友元函数说明在类体内,它是一种成员函数。[ ]

16、友元类必须被说明为公有成员。[ ]

17、纯虚函数是在基类中说明的虚函数,它在该基类中没有定义具体的操作内容。[ ]

18、析构函数不能被继承。[ ]

19、运算符重载以后,其优先级和结合性都不能改变。[ ]

20、在C++中,函数名实际上是一个指针,它指向函数的入口。[ ]

21、构造函数可以被继承。( )

22、析构函数不能被继承。( )

23、多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。( )

24、解决多继承情况下出现的二义性的方法之一是使用成员名限定法。( )

25、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。( )

26、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。( )

27、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数,还可以重载为非成员函数。( )

28、对单目运算符重载为友元函数时,说明一个形参;重载为成员函数时,不能显式说明形参。( )

29、重载运算符保持原运算符的优先级和结合性不变。( )

30、构造函数说明为纯虚函数是没有意义的。( )

三、简答题

1. 简述C++的异常处理机制?

2.C++的预定义的流对象有哪些?

3. 试以客观世界为例,说明抽象、封装、继承性和多态性等概念。

4. 多继承的情况下为什么会产生二义性?如何消除二义性?

5. 试说明void F(const T &t); 和inf f() const; 中关键字const 作用。

6.有如下程序

#include

#include

using namespace std;

class B;

class A{

friend B;

public:

A(){

cout<<"in A()"<

}

A(const A &a){

cout<<"in A(const A &a)<

}

~A(){

cout<<"In ~A()"<

}

};

class B: public A{

public:

B(){

cout<<"In B()"<

}

B(const A a){

cout<<"In B(const A a)"<

}

};

void f(A &a){

cout<<"In f(A &a)"<

}

void ff(const B &b){

cout<<"In ff(B &b)"<

}

void ff(A a){}

int main()

{

A a;

B bb=a;

}

程序运行的结果是_________________________

7.有如下程序

#include

using namespace std;

template

class HisClass

{

Type data;

public:

HisClass(Type a, Type b, Type c);

Type getData();

};

template

HisClass::HisClass(Type a, Type b, Type c){

if(a>b&&a>c)

data=a;

else

if(b>c)

data=b;

else

data=c;

}

template

Type HisClass::getData()

{

return data;

}

int main()

{

HisClass x1(3,4,5), x2(5,3,4),

x3(4,5,3), x4(7,8,9),

x5(8,7,9);

cout<

<

system("pause");

return 0;

}

程序运行的结果是_________________________

8. 以下程序在运行中出现致命错误,找出错误原因并修正。

#include

#include

class sample{

private:

char *string;

public:

sample(const char *s){

string = new char[strlen(s)+1];

strcpy(string s);

}

~sample(){

delete string;

};

};

sample f(char *arg){

sample tmp(arg);

return tmp;

}

int main()

{

sample local=f("abcd");

return 0;

}

9.有如下程序

#include

using namespace std;

class P

{

char *name;

int age;

char *add;

public:

P(){

cout<<"P";

}

~P(){

cout<<"!P";

}

};

class S:public P

{

char *department;

int level;

cout<<"S";

}

~S(){

cout<<"!S";

}

};

class T: public P

{

char *major;

float s;

public:

T(){

cout<<"T";

}

~T(){

cout<<"!T";

}

};

int main()

{

S s;

T t;

system("pause");

return 0;

}

程序运行的结果是_________________________

10.有如下程序

#include

using namespace std;

class B {

public:

B( ) {

cout << "B::B( )" << endl; num++;

}

virtual void f( ) = 0;

virtual void g( ) = 0;

cout << "B::k( )" << endl; g( ); }

virtual ~B( ){

cout << "B::~B( )" << endl;

num--;

}

static int getNum( ){

return num;

}

private:

static int num;

};

class D1: public B {

public:

D1( ) {

cout << "D1::D1( )" << endl; }

void f( ) {

cout << "D1::f( )" << endl;

}

void g( ){

cout << "D1::g( )" << endl;

}

~D1( ) {

cout << "D1::~D1( )" << endl; }

};

class D2: public B {

public:

D2( ) {

cout << "D2::D2( )" << endl; }

void f( ){

cout << "D2::f( )" << endl;

}

void g( ){

cout << "D2::g( )" << endl;

}

cout << "D2::~D2( )" << endl;

}

};

int B::num = 0;

int main( )

{

B* buf[3];

buf[0] = new D1;

buf[1] = new D2;

buf[2] = new D1;

int i;

cout << B::getNum( ) << endl;

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

buf[i]->k( );

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

delete buf[i];

cout << B::getNum( ) << endl;

system("pause");

return 0;

}

程序运行的结果是_________________________

11.有如下程序

#include

using namespace std;

class R

{

public:

R(int r1, int r2): R1(r1), R2(r2){};

void print();

void print() const;

private:

int R1, R2;

};

void R::print(){

cout<

};

void R::print()const{

cout<

}

R a(5,4);

const R b(20,52);

b.print();

system("pause");

return 1;

}

程序运行的结果是_________________________

12.有如下程序

#include

using namespace std;

class demo{

public:

static int constructor, copy_constructor;

demo(){

cout<<"default constructor"<

constructor++;

}

demo(const demo& x){

cout<<"copy constructor"<

copy_constructor++;

}

};

int demo::constructor=0;

int demo::copy_constructor=0;

demo usercode(demo b){

demo c(b);

return c;

}

int main()

{

demo a, d;

cout<<"calling usercode"<

d=usercode(a);

cout<

system("pause");

程序运行的结果是_________________________

13.有如下程序

#include

using namespace std;

class A{

static int m;

int n;

public:

A(int m, int n){

m=this->m;

n=this->n;

}

Show(){

cout<

}

}

int A::m;

int main()

{

A a1(3,4);

A a2(5,6);

a1.Show();

a2.Show();

}

程序运行的结果是_________________________ 14.有如下程序

#include

using namespace std;

class P

{

char *name;

int age;

char *add;

public:

cout<<"P";

}

~P(){

cout<<"!P";

}

};

class S:public P

{

char *department; int level;

public:

S(){

cout<<"S";

}

~S(){

cout<<"!S";

}

};

class T: public P

{

char *major;

float s;

public:

T(){

cout<<"T";

}

~T(){

cout<<"!T";

}

};

int main()

{

S s;

T t;

system("pause"); return 0;

}

程序运行的结果是:

15. 为什么要定义虚析构函数?

16.有如下程序

#include

using namespace std;

class B {

public:

B( ) {

cout << "B::B( )" << endl; num++;

}

virtual void f( ) = 0;

virtual void g( ) = 0;

void k( ){

f( );

cout << "B::k( )" << endl; g( );

}

virtual ~B( ){

cout << "B::~B( )" << endl;

num--;

}

static int getNum( ){

return num;

}

private:

static int num;

};

class D1: public B {

public:

D1( ) {

cout << "D1::D1( )" << endl;

}

void f( ) {

cout << "D1::f( )" << endl;

}

void g( ){

cout << "D1::g( )" << endl;

}

~D1( ) {

cout << "D1::~D1( )" << endl;

}

};

class D2: public B {

public:

D2( ) {

cout << "D2::D2( )" << endl;

}

void f( ){

cout << "D2::f( )" << endl;

}

void g( ){

cout << "D2::g( )" << endl;

}

~D2( ){

cout << "D2::~D2( )" << endl;

}

};

int B::num = 0;

int main( )

{

B* buf[3];

buf[0] = new D1;

buf[1] = new D2;

buf[2] = new D1;

int i;

cout << B::getNum( ) << endl;

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

buf[i]->k( );

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

delete buf[i];

cout << B::getNum( ) << endl;

system("pause");

return 0;

}

程序运行的结果是_________________________ 17.有如下程序

#include

using namespace std;

class R

{

public:

R(int r1, int r2): R1(r1), R2(r2){};

void print();

void print() const;

private:

int R1, R2;

};

void R::print(){

cout<

};

void R::print()const{

cout<

}

int main()

{

R a(5,4);

const R b(20,52);

b.print();

system("pause");

return 1;

}

程序运行的结果是:

18.有如下程序

#include

using namespace std;

class B;

class A{

friend B;

public:

A(){

cout<<"in A()"<

}

A(const A &a){

cout<<"in A(const A &a)<

}

~A(){

cout<<"In ~A()"<

}

};

class B: public A{

public:

B(){

cout<<"In B()"<

}

B(const A a){

cout<<"In B(const A a)"<

}

};

void f(A &a){

cout<<"In f(A &a)"<

}

void ff(const B &b){

cout<<"In ff(B &b)"<

}

void ff(A a){}

int main()

{

A a;

B bb=a;

}

19.有如下程序

#include

using namespace std;

class demo{

public:

static int constructor, copy_constructor;

demo(){

cout<<"default constructor"<

constructor++;

}

demo(const demo& x){

cout<<"copy constructor"<

copy_constructor++;

}

};

int demo::constructor=0;

int demo::copy_constructor=0;

demo usercode(demo b){

demo c(b);

return c;

}

int main()

{

demo a, d;

cout<<"calling usercode"<

d=usercode(a);

cout<

system("pause");

return 0;

}

程序运行的结果是:

20. 请分析下面的程序并给出该程序的执行结果。

#include

class AA{

int a;

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

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);

程序设计基础C-题库-1

程序设计基础C-题库 1、计算机语言按照高低级别可分为机器语言、 、 三大类。 答案: 汇编语言 ; 高级语言 ; 2、C语言中源文件的后缀名为 。 答案: *.c;.c ; 解析: 3、在程序中,如果使用printf()函数,应该包含 头文件。 答案: stdio.h ; 解析: 4、在main()函数中,用于返回函数执行结果的是 语句。 答案: return ; 5、C语言程序在Windows平台下经过编译、连接后生成的可执行文件后缀是 。答案: .exe ;

6、C语言并不属于高级语言。 答案:错误 7、计算机语言(Computer Language)是人与计算机之间通信的语言。 答案:正确 8、C语言并不能实现汇编语言的大部分功能。 答案:错误 9、Eclipse工具和Visual Studio工具都可以开发C语言。 答案:正确 10、C语言是UNIX和其衍生版本的主要开发语言。 答案:正确 11、请简述printf()函数的作用。 答案: printf()printf()“Hello, world\n”“\n” 12、请简述C语言中main()函数的作用。 答案: main函数是C程序的入口函数,即程序的执行是从main函数开始 解析: 13、使用DEV-C++开发工具编写一个控制台程序,要求在控制台上输出一句话:“我喜欢C语言”。 答案输入: #include int main() { printf("C");

return 0; } 答案输出: C 14、C语言属于下列哪类计算机语言? A、汇编语言 B、高级语言 C、机器语言 D、以上均不是 答案:B 15、下列关于主函数说法错误的是( ) A、一个C程序中只能包含一个主函数 B、主函数是C程序的入口 C、C程序中可以包含多个主函数 D、主函数只能包含输出语句 答案:CD 16、下列选项中,不属于C语言优点的是 A、不依赖计算机硬件 B、简洁、高效 C、可移植 D、面向对象 答案:D 17、下列选项中,哪一个是多行注释? A、// B、/**/ C、\\ D、以上均不属于 答案:B 18、C语言是一种()的编程语言 A、面向对象 B、面向过程 C、可视化 D、组件导向 答案:B

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

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++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

C语言程序设计-----阅读程序题库及答案

C语言程序设计-----阅读程序题库及答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

阅读程序题 【】以下程序的输出结果是。 main(D ) { float a; printf("%g",a); } A) +00 B) C) D) 0 【】下面程序的输出结果是B____。 #include <> main( ) { int x=10; { int x=20; printf ("%d,", x);

} printf("%d\n", x); } A) 10,20 B) 20,10 C) 10,10 D) 20,20 【】以下程序的输出结果是___B_。 main() { unsigned int n; int i=-521; n=i; printf("n=%u\n",n); }s",s); } A) a book! B) a book!<四个空格》 C) a bo D) 格式描述错误,输出不确定

【】下面程序的输出结果是____。 main() { int a,b; scanf("%2d%3d",&a,&b); printf("a=%d b=%d\n",a,b); } A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误 【】以下程序段的输出结果是。 int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 【】以下程序的输出结果是。 main() { int a=0,b=1,c=0,d=20; if(a) d=d-10; else if(!b) if(!c) d=15; else d=25; printf("d=%d\n",d); } A) d=10 B) d=15 C) d=20 D) d=25 【】下面程序的输出结果为。 main()

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

C面向对象程序设计知识点汇集

C#面向对象程序设计知识点汇集 第一章:C#入门 1.namespace关键字 namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace 命名空间名 { …//类的定义 } 2.using关键字 using关键字用于导入命名空间 using命名空间名; 3.class关键字 class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。 4.Main()方法 C#程序必须且只能包含一个Main()方法,它是程序的入口点。 static void Main(string[] args){} static void Main(){} static int Main(string[] args){} static int Main(){} 5.行输出方法 语句“Console.WriteLine("Hello .NET!");”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串 6.C#程序结构 C#程序的组成要素如下: 1) 命名空间:命名空间包含一个或多个类。 2) 类。 3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。 4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。 5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。 6) 大括号:在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。7.C#程序书写格式 1)缩进 2) 字母大小写 C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。 3) 程序注释 (1) 单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。 (2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。 (3) 文档注释,使用“///”,若有多行文档注释,每一行都用“///”开头。 8.Console类 Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

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