当前位置:文档之家› C++测试题

C++测试题

C++测试题
C++测试题

C++测试题

一、填空题(30空* 1分)

1.在C++中,函数的参数有两种传递方式,它们是值传递和________。

2.当一个成员函数被调用时,该成员函数的__this对象指针_____指向调用它的对象。

3.在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对两个有相同名字的数据成员进行访问时,如果没有____________,对此数据成员的访问将出现歧义。

4.拷贝构造函数使用___引用_____作为参数初始化创建中的对象。

5.在公有继承的情况下,基类数据成员在派生类中的访问权限_不变_________。

6. 建立一个有成员对象的多态派生类对象时,各构造函数体的执行顺序为_先基类按继承顺序,再成员对象按声明顺序,最后派生类本身_________________

7.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到_____默认___________构造函数,否则应用程序会产生一个编译错误。

8.静态数据成员在类外进行初始化,且静态数据成员被类的所有对象__共享______。

9.为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是___与之前最近的if_____________配对。

10.设"int a=3,b=4,c=5;",表达式"(a+b)>c&&b==c"的值是_0___。

11.面向对象的程序设计有四大特征,它们是抽象、封装、_继承_____ 、_多态_______。

12.定义重载函数时,应至少使重载函数的参数个数或参数类型__不同_____;在基类和派生类中,成员函数的覆盖是指__________________________________________________。

13.构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与类名相同,而析构函数名是在类名前加一个~、但析构函数没有__重载___________, 但可以定义为_____虚函数____________

14.动态联编要满足两个条件,它们是____多态_________________,____赋值兼容原则______________ 。

15.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为_抽象类________,定义该类至少具有一个___纯虚函数__________。

16.在C++类中,const关键字可以修饰对象和函数,const可以保护对象不被____修改__________,const函数不能_____________。

17.任意一个类,构造函数的个数最多是__无限_______,析构函数的个数最多是____1______ 18.C语言中没有字符串类型,字符串是通过字符数组来表示的,每一个字符串都有一个结尾字符_\0____,C++中字符串类型是__string_____

19.C++中没有输入输出语句,输入输出是通过___________ 实现的,写出一条打印整型变量n 的输出语句:__cout<

20.C++中比C语言更高级的两种代码复用的方式:_继承_________, __模板________。

二,单项选择题(12题* 1.5分)

1. 已定义了一个类A并有语句A* pa=new A(5); 那么以下说法正确的是:

A.该语句会创建A类的一个对象,并将此对象的地址赋给指针pa;

B. 该语句会创建A类的5个对象,且它们的地址是连续的;

C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;

D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;

2. 定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:

A.类A中类型为A的静态数据成员

B. f中用语句A a = one; 定义的量a

C. one

D. *this

3. 在一个类中,下列哪些成员可以是多个?

A. 无参构造函数

B. 虚析构函数

C.原型相同的非静态成员函数

D. 静态成员函数

4. 对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是:

A. 公有或私有

B. 私有

C. 保护或私有

D. 公有或保护

5. 在下列关键字中,不能用来表示继承方式的是:

A. private

B. static

C. public

D. protected

6. 下列有关运算符重载的叙述中,正确的是:

A. 运算符重载是多态的一种表现

B. C++中可以通过运算符重载创造新的运算符

C. C++中所有运算符都可以作为非成员函数重载

D. 重载运算符时可以改变其结合性

7. 下列关于类定义的说法中,正确的是:

A. 类定义中包括数据成员与函数成员的声明

B. 类成员的缺省访问权限是保护的

C. 数据成员必须被声明为私有的

D. 成员函数只能在类体外进行定义

8. 建立一个有成员对象的派生类对象时,各构造函数体的执行顺序为:

A. 派生类成员对象类基类

B. 成员对象类基类派生类

C. 基类成员对象类派生类

D. 基类派生类成员对象类

9. C++中解决命名冲突的机制是:

A. 虚基类

B. 虚函数

C. 函数重载

D.名字空间

10. 任意一个类,析构函数的个数最多是:

A. 不限个数

B. 1

C. 2

D. 3

11. 在类定义中,为说明成员的访问权限,private, protected, public 可以出现次数为:

A. 次数没有具体限定

B. 每种至多一次

C. public 至少一次

D. 每种至少一次

12. 下面关于访问类A的私有数据成员的说法,错误的是:

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

B.类A的友元类中的非静态成员函数可以访问类A的私有成员。

C.类A的嵌套类中的非静态成员函数可以访问类A的私有成员。

D.类A中的非静态成员函数可以访问类A的私有成员。

三.代码阅读(7题* 4分)

1.下面程序的运行结果是。

#include

void main()

{

char a='a',b='j';

float x;

x=(b-a)/('F'-'A');

printf("%d/n",(int)(3.14*x));

}

2.下面程序的运行结果是________。

#include

void main( )

{

Int j = 0;

For(unsigned char I = 0 ; I < 255; i++)

{

J+=i&3;

}

Cout<

}

3.下面程序的运行结果是________。

#include

class test

{

private:

int num;

float fl;

public:

test( );

int getint( ){return num;}

float getfloat( ){return fl;}

~test( );

};

test::test( ):num(1),fl = 2.3

{

cout << "test()" << endl;

num=0;fl=0.0;

}

test::~test( )

{

cout << "~test()" << endl;

}

void main( )

{

test array[2];

cout << array[1].getint( )<< " " << array[1].getfloat( ) <

4.下面程序的运行结果是________。

#include

class A

{

public:

A(){cout<<"A::A() called./n";}

virtual ~A(){cout<<"A::~A() called./n";}

};

class B:public A

{

public:

B(int i){

cout<<"B::B() called./n";

buf=new char[i];}

virtual ~B()

{

delete []buf;

cout<<"B::~B() called./n";

}

private:

char *buf;

};

void fun(A *a)

{

delete a;

}

void main()

{

A *a=new B(2);

fun(a);

}

5.下面程序的运行结果是________。

#include

int a[ ]={1,3,5,7,9};

int *p[ ]={a,a+1,a+2,a+3,a+4};

void main( )

{

printf("%d/t%d/t%d/n",a[4],*(a+2),*p[1]);

printf("%d/t%d/t%d/n",**(p+1)+a[2],*(p+4)-*(p+0),*(a+3)%a[4]);

}

6.下面程序的运行结果是________。

#include

class A

{

public:

A( ) { cout<<"<1> A::A( ) "<

virtual ~A( ) { cout<<"<2> A::~A( )"<

virtual void g( ) { cout<<"<3> A::g( )"<

void h( ) { cout<<"<4> A::h( )"<

virtual void f( ) { g( ); h( ); }

};

class B:public A

{

public:

B( ) {cout<<"<5> B::B( ) "<

virtual ~B( ) {cout<<"<6> B::~B( )"<

virtual void g( ) {cout<<"<7> B::g( )"<

void h( ) {cout<<"<8> B::h( )"<

virtual void k( ) { f( ); g( ); h( ); }

};

void main( )

{

B b;

b.k( );

}

7.下面程序的运行结果是________。

#include

class A

{

public:

A( ) {cout<<1<

virtual ~A( ) {cout<<2<

virtual int Add(int n) {return 0;}

};

class B : public A

{

public:

B(int n):num(n) { }

virtual ~B( ) {}

virtual int Add(int n) {num+=n; return num;}

private:

int num;

};

class C : public A

{

public:

C(A& obj,int n) : a(obj), num(n) { cout<<3<

virtual ~C( ) { cout<<4<

virtual int Add(int n) { return a.Add(n+num); }

private:

A& a;

int num;

};

void main ( )

{

B b(100);

C c1(b,1), c2(c1,2);

cout<

}

四.问答题(5题* 6分)

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

拷贝构造函数简单的制作了一个资源的拷贝,而不对本身分配,则两个对象用有同一个资源,当对象析构时,该资源将经历两次资源返还。

2.简述成员函数、全局函数和友元函数的差别。

成员函数只在本类有用,而全局函数对于其它都可用,类里的友元函数能访问该类成员。

友元函数不是类成员,在类外定义。

3.简述结构化的程序设计、面向对象的程序设计的基本思想。

结构化程序设计:

将该问题按功能分解,然后按必要的顺序实现,功能的划分并不严格,可按复杂程度分,对有些简单的功能不必划分出去。

面向对象:将一个复杂的系统分解为一些合适实体(对象),由这些实体共同提供系统的功能。

4.C++中的结构struct和类class有什么异同?

内部实现与效率相同,但是默认情况下,struct的成员是公有的,而class成员是私有的

5. 简述vector, list, queue, stack, set , map, multimap的特点(优点/缺点)

vector:从后面快速的插入与删除,直接访问任何元素,相当于数组,但其大小可以不预先指定,并且自动扩展。

List:相当于数组,但其大小可以不预先指定,并且自动扩展。不能进行内部的随机即不支持[ ] 操作符和vector.at()

Queue:

五.编程题(2题* 12分)

1. 已知某程序中类MyString是自定义的一个用来描述字符串的类,它在main函数中使用情况如下:

void main( )

{

MyString *s1 = new MyString("Hello");

MyString s2(" World! ");

cout << *s1 << s2 << endl;

MyString s3 =* s1;

Delete s1;

cout << s3 << endl;

s3 = “abc” + s2;

cout << s3 << endl;

}

程序执行时,输出结果如下:

Hello World!

Hello

abc Hello

本题目要求:根据上述已知条件,完成MyString类的定义和实现。

2. 环形缓冲区的C++实现(申请一些内存,作为缓冲区)

有点类似先进先出队列, 但队列会频繁申请和删除空间,但环形缓存只会重复利用已有的空间;

提供写接口, 和读接口,2个接口;

当读取速度过慢,写入速度过快时, 属于缓冲区空间不够, 空间则会自动增加。

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语言试题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期末考试试卷及复习资料

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. 用来说明类中公有成员的关键字是________ A. public B. private C. protected D. friend 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. 动态分配的堆内存在程序退出后始终被占用 13. 从程序片断:student zhangsan("张三","M",22); zhangsan.id("2005131000");可判断id是一个________ A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数 14. 友元函数_______ A. 可以被声明为const B. 没有this指针 C. 可以用类名或对象名来调用 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语言期末考试试题

一、单项选择题。(每题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期末考试试卷及答案

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语言期末考试题(含答案)

《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语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

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;elsek=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=''、D p=NULL 15. 对于以下的变量定义,表达式()不符合C语言语法。 struct node { int len;

C期末考试试题

一、单项选择题(12题,每题5分) 1.已定义了一个类A并有语句 A* pa=new A(5); 那么以下说法正确 的是:D 2.A. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa; 3.B. 该语句会创建A类的5个对象,且它们的地址是连续的; 4.C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将 被自动释放; 5.D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析 构函数; 6.定义类A的非静态成员函数A& f(A& one)时,需有语句return exp; 则exp不能是:D 7.A.类A中类型为A的静态数据成员 B. f中用语句 A a = one; 定义的量a 8.C. one D. *this 9.在一个类中,下列哪些成员可以是多个D 10. A. 无参构造函数 B. 析构函数 11.C. 原型相同的非静态成员函数 D. 静态成员函数 12.对于通过公有继承定义的派生类,若其成员函数可以直接访问基 类的某个成员,说明该基类成员的访问权限是:D A. 公有或私有 B. 私有 C. 保护或私有 D. 公 有或保护 13.在下列关键字中,不能用来表示继承方式的是:B

A. private B. static C. public D. protected 14.下列有关运算符重载的叙述中,正确的是:A 15. A. 运算符重载是多态的一种表现 16. B. C++中可以通过运算符重载创造新的运算符 17. C. C++中所有运算符都可以作为非成员函数重载 18.D. 重载运算符时可以改变其结合性A 19.下列关于类定义的说法中,正确的是: 20. A. 类定义中包括数据成员与函数成员的声明 21. B. 类成员的缺省访问权限是保护的 22. C. 数据成员必须被声明为私有的 23.D. 成员函数只能在类体外进行定义 24.建立一个有成员对象的派生类对象时,各构造函数体的执行顺 序为:C 25. A. 派生类成员对象类基类 B. 成员对象类基类派 生类 26.C. 基类成员对象类派生类 D. 基类派生类成员对象 类 27.C++中解决命名冲突的机制是:A 28.A. 虚基类 B. 虚函数 C. 函数重载 D. 名字空间 29.任意一个类,析构函数的个数最多是:B A. 不限个数 B. 1 C. 2 D. 3

C期末考试试卷及参考答案

读书破万卷 下笔如有神 的正确性,在下面表格中号—对应的题号下填入是非选择, 学—若正确,则打钩(√);否则,打叉(×)。 —线 题 号 1 2 3 4 5 6 7 8 9 10 —是/否 ——1. 说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和 —返回值类型就可以了。 —2. 函数定义中的形参的作用域是该函数的函数体。 — __—3. 用 new 动态申请的内存空间,必须用 delete 来释放。 __—_4. 构造函数和析构函数都可以声明为虚函数。 _—_5. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。 _—__—6. 类的静态数据成员需要在定义每个类的对象时进行初始化。 _名—7. 使用关键字 class 定义的类中缺省的访问权限是私有(private )的。 姓—8. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才 能具有——多态的特征。 订9. C++程序中,程序将流对象看作是文件的化身。 —10.如果程序中有多处要抛掷异常,应该用不同的操作数类型来相互区别,操作数 的值不—能用来区别不同的异常。 —— __—_二、填空题(每小题 1. 5 分,共 15 分) _—__1 . 变 量 名是 变 量的 标识 , 由 组 成 , 而 且必 须 以 —_ _—开头。 __—_2.有了函数原型,函数的作用域 就不是从 开始,而是从 开始。 级— 3.获取一个变量的地址所采用的操作符是 。 班装 —4.使用 const 语句定义一个标识符常量时,则必 须对它同时进行 。 —5.假定类 AB 中有一个公用属性的静态数据成员 bb ,在类外不通过对象名访问该成 —员 bb 的写法为 。 — 6.typedef 语句的作用为 。 — __— 7 .平时所提到的使用 MFC 编程,这里的 MFC 是 的缩写。 __— _8.若要在程 序文件中进行标准输入输出操作,则必须在开始的 # include 命令中 _—__—使用 头文件。 _ _—9. C++中,若将 操作符插入到输出流中,则以十六进制格式输出。 院— 10.C++程序中,异常处理程序的主要任务是 。 —学 ——三、单选题(在备选答案中选出一个正确答 案填入括号内,每小题 2 分,共 20 分) 1.C++对 C 语言作了很多改进,下列描述中使得 C 语言发生质变,从面向过程变成 了面向对象的是( 。) 读书破万卷 下笔如有神

c语言期末测试题附答案)

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第 一、 单项选择题(本大题共 15 小题,每题只有一个正确答案,答对 一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k ); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】

C期末考试试卷A及答案

C期末考试试卷A及答 案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

C A D考试试卷 一、单选题(每题1分,共20分) 1.AutoCAD的出品公司是()。 A.Microsoft公司B.Autodesk公司 C.Macromedia公司D.Adobe公司 2.AutoCAD的坐标体系,包括世界坐标系和()坐标系。 A.绝对坐标B.平面坐标C.相对坐标D.用户坐标 3.OFFSET(偏移)命令前,必须先设置()。 A.比例B.圆C.距离D.角度 4.AutoCAD中的图层数最多可设置为()。 A.10层B.没有限制C.5层D.256层 5.在AutoCAD2004中,打开或关闭正交捕捉的快捷键是()。 A.F2键B.F5键C.F7键D.F8键 6.DRA命令是()。 A.半径标注B.直径标注C.对齐标注D.角度标注 7.在图案填充中,关于比例的说法正确的是()。 A.比例越大,填充图案越疏B.比例越小,填充图案越疏 C.比例越大,填充图案越密D.比例与图案疏密无关。 8.只能看到某个图形对象的局部,要想选中整个图形对象需使用()。 A.右键框选B.双击选择C.左框选D.右框选 9.阵列的快捷命令是()。

A.ALB.ARC.SCD.DT 10.命令行输入A是执行()。 A.绘圆弧B.定义块C.画圆D.标注样式管理器 11.命令行输入B是执行()。 A.绘圆弧B.定义块C.画圆D.标注样式管理器 12.命令行输入C是执行()。 A.绘圆弧B.定义块C.画圆D.标注样式管理器 13.命令行输入D是执行()。 A.绘圆弧B.定义块C.画圆D.标注样式管理器 14.绘制一个三角形的外接圆使用()法。 A.三点法B.相切相切半径法C.两点法D.相切相切相切15.AutoCAD中CAD图形文件后缀名为:()。 A.dwgB.dxfC.dwtD.dws 16.AutoCAD2004默认的图限为()。 A.100×100B.800×600 C.420×297D.1024×768 17.在直角坐标系中“50,80”与“150,80”之间的距离是()。 A.80B.100 C.150D.200 18.不是环形阵列定义阵列对象数目和分布方法的是()。 A.项目总数和填充角度B.项目总数和项目间的角度 C.项目总数和基点位置D.填充角度和项目间的角度19.多次复制“copy”对象的选项为:()。 A.mB.dC.pD.c

C期末考试试题

C#期末考试题 、单项选择题(每小题 2 分,共20分) 1.在类作用域中能够通过直接使用该类的( d )成员名进行访问 A.私有 B.公用 C. 保护 D. 任何 答案: D 2.小 数类型( decimal )和浮点类型都可以表示小数,正确说法:( A.两者没有任何区别 B.小数类型比浮点类型取值范围大 C.小数类型比浮点类型精度高 D.小数类型比浮点类型精度低答案:C 3.能作为C# 程序的基本单位是( b )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 答案: B 4. 可用作C# 程序用户标识符的一组标识符是 b )。 A. void define +WORD B. a3_b3 123 YN C. for -abc Case D. 2a DO sizeof 答案: B 5.引用类型主要有 4 种:类类型、数组类型、接口类型和( A.对象类型 B.字符串类型 C.委托类型 D. 整数类型 答案: C 6 .加载窗体时触发的事件是( b )。 A.Click 答案:B 7 .改变窗体的标题,需修改的窗体属性是( a )。 A. Text(即内容) B. Name D. Index 答案:A

8.在C# 中定义接口时,使用的关键字是( a )。 B.: 答案:A 9.在类的成员中,用于存储属性值的是( d )。 A.属性 B.方法 C.事件 D.成员变量 答案:成员变量 10.在C# 中,定义派生类时,指定其基类应使用的语句是( b )。 B.: 答案: B 11.类的以下特性中,可以用于方便地重用已有的代码和数据的是( c ). A.多态 B.封装 C.继承 D.抽象 答案: C 12.在Array 类中,可以对一维数组中的元素进行排序的方法是( a )。 () () () () 答案: A 13.将变量从字符串类型转换为数值类型可以使用的类型转换方法是( d ) 。答案: D 14.数据类型转换的类是( b ) 。 C.Const D. Single 答案: B 15.字符串连接运算符包括&和( a )。 A.+ B. - C. * D. / 答案 A 16.先判断条件的当循环语句是( b ) 。 A.do...while B. while C. while...do D. do ...loop 答案: B 17.C# 是一种面向( c ) 的语言。 A.机器 B.过程 C.对象(同C++ —样) D.事物 答案: C 18.假定一个10 行20 列的二维整型数组,下列哪个定义语句是正确的 ( C ) A.int[]arr = new int[10,20] B.int[]arr = int new[10,20]

C语言期末考试试题及详细答案

选择练习题 1、C 语言中最简单的数据类型包括( B )。 A 、整型,实型,逻辑型 B 、整型,实型,字符型 C 、整型,字符型,逻辑型 D 、整型,实型,逻辑型,字符型 2、C 语言中,运算对象必须是整型数的运算符是(A )。 A 、% B 、/ C 、%和/ D 、* 3、为表示关系x <y <z ,应使用C 语言表达式( A )。 A 、(x <y)&&(y <z ) B 、(x <y)AND (y <z) C 、(x <y <z) D 、(x <y) &(y <z) 4、C 语言程序的基本单位是( C )。 A 、程序行 B 、语句 C 、函数 D 、字符 5、C 语言的程序一行写不下时,可以( D )。 A 、用逗号换行 B 、用分号换行 C 、用回车符换行 D 、在任意一空格处换行 6、下述标识符中,( C )是合法的用户标识符。 A 、A& B B 、void C 、_student D 、 7、在C 语言中,字符型数据在内存中以( B A 、补码 B 、ASCII 码 C 、反码 D 、原码 8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B )。 A 、auto B 、extern C 、static D 、Register 9、以下关于switch 语句和break 语句的描述中,只有(B A 、在switch 语句中必须使用break 语句 B 、在switch 语句中,可以根据需要使用或不使用break 语句 C 、break 语句只能用于switch 语句中 D 、break 语句是switch 语句的一部分 10、C 语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。 A 、地址传递 B 、值传递 C 、由实参传给形参,并由形参传回给实参 D 、由用户指定传递方式 11、下述C 语言转义符中( D )是非法的。 A 、'\b' B 、'\037' C 、'\0xf ' D 、'\'' 12、为了要计算s=10!(10的阶乘),则以下对s 的定义正确的是( D )。

C语言期末考试试卷及答案

C语言期末考试试卷(A) 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( A ) A、 C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、 C语言可以直接对硬件进行操作 D、 C语言移植性好 2、以下不正确的C语言标识符是( D ) A、 ABC B、 abc C、 a_bc D、 ab.c 3、一个C语言程序是由( B ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的 是( A ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( C ) A、 int B、 float C、 double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( C )

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

C语言程序设计期末考试试题及答案

装订线

装订线

装订线

线

庄子云:“人生天地之间,若白驹过隙,忽然而已。”是呀,春秋置换,日月交替,这从指尖悄然划过的时光,没有一点声响,没有一刻停留,仿佛眨眼的功夫,半生已过。 人活在世上,就像暂时寄宿于尘世,当生命的列车驶到终点,情愿也罢,不情愿也罢,微笑也罢,苦笑也罢,都不得不向生命挥手作别。 我们无法挽住时光的脚步,无法改变人生的宿命。但我们可以拿起生活的画笔,把自己的人生涂抹成色彩靓丽的颜色。 生命如此短暂,岂容随意挥霍!只有在该辛勤耕耘的时候播洒汗水,一程风雨后,人生的筐篓里才能装满硕果。 就算是烟花划过天空,也要留下短暂的绚烂。只有让这仅有一次的生命丰盈充实,才不枉来尘世走一遭。雁过留声,人过留名,这一趟人生旅程,总该留下点儿什么! 生活是柴米油盐的平淡,也是行色匆匆的奔波。一粥一饭来之不易,一丝一缕物力维艰。 前行的路上,有风也有雨。有时候,风雨扑面而来,打在脸上,很疼,可是,我们不能向生活低头认输,咬牙抹去脸上的雨水,还有泪水,甩开脚步,接着向前。 我们需要呈现最好的自己给世界,需要许诺最好的生活给家人。所以,生活再累,不能后退。即使生活赐予我们一杯不加糖的苦咖啡,皱一皱眉头,也要饮下。 人生是一场跋涉,也是一场选择。我们能抵达哪里,能看到什么样的风景,能成为什么样的人,都在于我们的选择。 如果我们选择面朝大海,朝着阳光的方向挥手微笑,我们的世界必会收获一片春暖花开。如果我们选择小桥流水,在不动声色的日子里种篱修菊,我们的世界必会收获一隅静谧恬淡。 选择临风起舞,我们就是岁月的勇者;选择临阵脱逃,我们就是生活的懦夫。 没有淌不过去的河,就看我们如何摆渡。没有爬不过去的山,就看我们何时启程。 德国哲学家尼采说:“每一个不曾起舞的日子,都是对生命的辜负。”让我们打开朝着晨光的那扇窗,迎阳光进来,在每一个日出东海的日子,无论是鲜衣怒马少年时,还是宠辱不惊中年时,都活出自己的明媚和精彩。 时间会带来惊喜,只要我们不忘记为什么出发,不忘记以梦为马,岁月一定会对我们和颜悦色,前方也一定会有意想不到的惊喜。 人生忽如寄,生活多苦辛。 短暂的生命旅程, 别辜负时光,别辜负自己。 愿我们每一个人自律、阳光、勤奋,

C语言程序设计期末考试试题及答案

. C语言程序设计试题 (2008 /2009 学年第二学期) 一.选择题(满分30分,每题2分) 1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C语言中函数返回值的类型由 D 决定的。 A. return语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。A.char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

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