1、C 程序设计考试题库精简版剖析【章节】第1章 C+基础知识【知识点】1、 C+程序的构成与书写形式;2、 基本数据类型,常量、变量和表达式3、 C+的标准输入输出【单选题】 1、在C+中,源程序变为可执行程序的正确顺序应该是( ) 。 A. 编辑、链接、编译、执行 B. 编辑、编译、链接、执行 C. 编译、编辑、链接、执行 D. 编译、链接、编辑、执行答案:B2、 要把高级语言编写的源程序转换为目标程序,需要使用( ) 。 A. 编辑程序 B. 驱动程序 C. 调试程序 D. 编译程序答案:D3、下列关于C+与C语言的关系描述中,错误的是( ) 。 A. C语言是C+语言的一个子集 B. C+
2、与C语言是兼容的 C. C+对C语言进行了一些改进 D. C+和C语言都是面向对象的答案:D4、下面为使用面向对象语言的正确理由是( ) 。 A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构 B. 程序语句比面向过程语言简单 C. 面向对象程序设计可以设计为自行修改错误 D. 面向对象程序很容易概念化答案:D5、以下选项中,合法的用户标识符是( ) 。 A. long B. _2Test C. 3Dmax D. A.dat答案:B6、下列描述中正确的是( ) 。 A. 不是每个C+程序都必须包含预处理命令#include B. C+程序必须有return 语句 C. C
3、+程序中的变量必须定义在主程序内部 D. C+程序中所使用的符号常量可以不进行定义答案:A7、C+源程序文件的扩展名为( ) 。 A. .CPP B. .C C. .DLL D. .EXE答案:A8、cout是I0流库预定义的( ) 。 A. 类 B. 对象 C. 包含文件 D. 常量答案:B9、 C+对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。 A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数 C. 规定函数说明符必须用原型 D. 引进了类和对象的概念答案:D10、下列选项中,( ) 是不合法的标识符. A. Program B. Obj23 C.
4、 double D. B_C_D答案:C11、下列标识符中,不合法的用户标识符为( ) 。 A. a! B. _int C. a_10 D. PAd答案:A12、只能向终端输出一个字符的函数是( ) 。 A. pringf函数 B. putchar函数 C. getchar函数 D. scanf函数答案:B13、如果有整型量 int x = 5,执行情况x += 1.9 后x的值为( ) 。 A. 6 B. 7 C. 结果不确定 D. 表达式非法答案:A14、已知a=5,b=3,表达式 a+=a*=+b*3的值为( ) 。 A. 40 B. 80 C. 100 D. 120答案:D20、在C+
5、语言中,自定义的标识符( ) 。 A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写答案:D32、C+语言程序的基本单位是( ) 。 A. 程序行 B. 语句 C. 函数 D. 字符答案:B37、C+ 对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是( ) A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数 C. 规定函数说明符必须用原型 D. 引进了类和对象的概念答案:D38、下列符号属于c+语言用户标识符的是( )。A. DO B. if C. void D. switc
6、h答案:A39、任意一个类,析构函数的个数最多是( )。A. 不限个数 B. 1 C. 2 D. 3答案:B【章节】 第3章 函数【知识点】1、C+函数的相关知识2、函数定义与函数的调用3、内联函数与函数重载【单选题】1、若有以下函数调用语句,在此函数调用语句中实参的个数是( ) 。fun(a+b,(y=10,y),fun(n,k,d); A. 3 B. 4 C. 5 D. 6答案:A2、以下程序的运行结果是( ) 。int main() int k=4,m=1,p;p=func(k,m);coutpendl;p=func(k,m);coutpendl;func(int a,int b) st
7、atic int m,i=2;i+=m+1;m=i+a+b;return(m); A. 8,17 B. 8,16 C. 8,20D. 8,8答案:A3.以下函数调用语句中,含有的实参个数是( ).func(rec1,rec2 +1,(rec3,rec4); A. 3 B. 4 C. 5 D. 有语法错误答案 A4.分析如下程序:#include int f(int b,int n)int i,r=1;for(i=0;i=n;i+)r=r*bi;return r;void main()int x,a=2,3,4,5,6,7,8,9;x=f(a,3);coutxendl;上面程序的输出结果是( )
8、 。 A. 720 B. 120 C. 24 D. 6答案:B5、下列函数参数默认值定义错误的是( ) 。 A. Fun(int x, int y=0) B. Fun(int x = 100) C. Fun(int x = 0, int y) D. Fun(int x = f( ) (假定函数f()已经定义)答案:C6、在函数定义前加上关键字“inline”表示该函数被定义为( ) 。 A. 重载函数 B. 内联函数 C. 成员函数 D. 普通函数答案:B7、一个函数功能不太复杂,但要求被频繁调用,选用( ) 。 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数答案:A8、下面有
9、关重载函数的说法中正确的是( ) 。 A. 重载函数必须具有不同的返回值类型 B. 重载函数形参个数必须不同 C. 重载函数必须有不同的形参列表 D. 重载函数名可以不同答案:C9、在C+语言中,对函数参数默认值描述正确的是( ) 。 A. 函数参数的默认值只能设定一个 B. 一个函数的参数若有多个,则参数默认值的设定可以不连续 C. 函数必须设定默认值 D. 在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值答案:D10、考虑函数原型 void test(int a,int b=7,char z=*),下面的函数调用中,属于不合法调用的是 A. test(5); B. test(
10、5,8); C. test(6,#); D. test(0,0,*);答案:C11、以下对C+ 函数的有关描述中,正确的是( ) 。 A. C 调用函数时,只能把实参的值传给形参,形参的值不能传递给实参 B. C+函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C+程序中有调用关系的所有函数必须放在同一源程序文件中答案:A12、在C+语言中函数返回值的类型是由( )决定的。 A. 调用该函数时系统临时 B. return语句中的表达式类型 C. 定义该函数时所指定的函数类型 D. 调用该函数时的主调函数类型答案:C13、以下程序的输出结果是( ) 。int f
11、unc(int a,int b) return a+b;int main() int x=6,y=7,z=8,r;r=func(func(x,y),z-);coutrendl; A. 15 B. 20 C. 21 D. 31答案:C14、以下程序的输出结果是( ) 。void fun(int a,int b,int c) a=456;b=567;c=678;int main( ) int x=10,y=20,z=30;fun(x,y,z);coutz”,”y”,”xendl; A. 30,20,10 B. 10,20,30 C. 456,567,678 D. 678,567,456答案:A15
12、、C+语言中,形参与实参之间的数据传递方式是( ) 。 A. 只能按值传递 B. 只能按地址传递 C. 既可以按值传递也可以按地址传递 D. 以上说法都不对答案:C16、分析以下程序:#include void fun(int num)coutnumendl;void fun(char ch)cout(ch+1)endl;int main()fun(A);return 0;以上程序的输出结果是( ) 。 A. 65 B. 66 C. A D. B答案:B17、一个函数为void f(int x, char y = a),另一个函数为void f(int),则它们( ) 。 A. 不能在同一程序
13、块中定义 B. 可以在同一个程序块中定义并可重载 C. 可以在同一个程序块中定义,但不可以重载 D. 以上说法均不正确答案:A18、函数定义为Fun(int &i),变量定义n = 100,则下面调用正确的是( ) 。 A. Fun(20) B. Fun(20 + n) C. Fun(n) D. Fun(&n)答案:C19、当一个函数无返回值时,函数的类型应为( ) 。 A. 任意 B. void C. int D. char答案:B20、下列带缺省值参数的函数说明中,正确的说明是( ) 。 A. int Fun(int x,int y=2,int z=3); B. int Fun(int x
14、=1,int y,int z=3); C. int Fun(int x,int y=2,int z); D. int Fun(int x=1,int y,int z=3);答案:A21、下列函数参数默认值定义错误的是( ) 。 A. Fun(int x, int y=0) B. Fun(int x = 100) C. Fun(int x = 0, int y) D. Fun(int x = f( ) (假定函数f( )已经定义)答案:C22、在函数定义前加上关键字“inline”表示该函数被定义为( ) 。 A. 重载函数 B. 内联函数 C. 成员函数 D. 普通函数答案:B23、一个函数功
15、能不太复杂,但要求被频繁调用,选用( ) 。 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数答案:A24、下面有关重载函数的说法中正确的是( ) 。 A. 重载函数必须具有不同的返回值类型 B. 重载函数形参个数必须不同 C. 重载函数必须有不同的形参列表 D. 重载函数名可以不同答案:C25、在C+语言中,对函数参数默认值描述正确的是( ) 。 A. 函数参数的默认值只能设定一个 B. 一个函数的参数若有多个,则参数默认值的设定可以不连续 C. 函数必须设定默认值 D. 在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值答案:D26、考虑函数原型 void tes
16、t(int a,int b=7,char z=*),下面的函数调用中,属于不合法调用的是( ) 。 A. test(5); B. test(5,8); C. test(6,#); D. test(0,0,*);答案:C27、以下对C+ 函数的有关描述中,正确的是( ) 。 A. C 调用函数时,只能把实参的值传给形参,形参的值不能传递给实参 B. C+函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C+程序中有调用关系的所有函数必须放在同一源程序文件中答案:A28、在C+语言中函数返回值的类型是由( )决定的。 A. 调用该函数时系统临时 B. return语
17、句中的表达式类型 C. 定义该函数时所指定的函数类型 D. 调用该函数时的主调函数类型答案:C29、以下程序的输出结果是( ) 。int func(int a,int b) return a+b;int main( ) int x=6,y=7,z=8,r;r=func(func(x,y),z-);coutrendl; A. 15 B. 20 C. 21 D. 31答案:C30、以下程序的输出结果是( ) 。void fun(int a,int b,int c) a=456;b=567;c=678;int main() int x=10,y=20,z=30;fun(x,y,z);coutz”,”
18、y”,”x SetValue(50) D. ptr - n=50答案:C分值:2难度:1知识点:评析:2、类MyClass的定义如下: class MyClasspublic:MyClass()value=0;setVariable(int i)value=i;private:int value;则以下各项对如下语句序列的描述中,正确的是( ) 。MyClass *p , my; p = &my; A. 语句”p = &my;”是把对象my赋值给指针变量p B. 语句”MyClass *p , my;”会调用两次类MyClass的构造函数 C. 对语句”*p.SetVariable(5)”的调
19、用是正确的 D. 语句”p - SetVariable(5)”与语句”my.SetVariable(5)”等价答案:D分值:2难度:1知识点:评析:3、 下面类的定义,有( )错误 。class MyClassint i=0; public: void MyClass(); MyClass(int Value); A. 1 B. 2 C. 3 D. 4答案:C分值:2难度:1知识点:评析:4、 定义析构函数时,应该注意( )。 A. 其名与类名完全相同 B. 返回类型是void类型 C. 无形参,也不可重载 D. 函数体中必须有delete语句。答案:C分值:2难度:1知识点:评析:5、 构造
20、函数不具备的特征的是( )。 A. 构造函数的函数名与类名相同 B. 构造函数可以重载 C. 构造函数可以设置默认参数 D. 构造函数必须指定返回类型答案:D分值:2难度:1知识点:评析:6、 类的析构函数是在( )被自动调用的。 A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用答案:C分值:2难度:1知识点:评析:7、 对于任何一个类,析构函数最多有( ) 个。 A. 0 B. 1 C. 2 D. 4答案:B分值:2难度:2知识点:评析:8、通常,拷贝构造函数的参数是( )。 A. 某个对象名 B. 某个对象的引用名 C. 某个对象的成员名 D. 某个对象的指针名答案:B
21、分值:2难度:1知识点:评析:9、 面向对象程序设计中的数据隐藏指的是( )。 A. 输入数据必须输入保密口令 B. 数据经过加密处理 C. 对象内部数据结构上建有防火墙 D. 对象内部数据结构的不可访问性答案:D分值:2难度:1知识点:评析:10、下列关于类的访问权限的描述中,错误的是( ).。 A. 说明为公有的成员可以被程序中的任何代码访问 B. 说明为私有的成员只能被类的成员和说明为友元类的成员函数访问 C. 说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问 D. 类的所有成员都可以被程序中的任何代码访问答案:D分值:2难度:1知识点
22、:评析:11、一个类的友元函数或友元类可以访问该类的( )。 A. 私有成员 B. 保护成员 C. 公有成员 D. 所有成员答案:D分值:2难度:1知识点:评析:12、下列关于成员函数特征的描述中,错误的是( )。 A. 成员函数一定是内联函数 B. 成员函数可以重载 C. 成员函数可以设置参数的默认值 D. 成员函数可以是静态的答案:A分值:2难度:1知识点:评析:13、下面对类中静态数据成员的描述中,正确的是( )。 A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员 D. 静态数据成员不能通过类的对象调用答案:A分
23、值:2难度:1知识点:评析:14、C 中对于类中定义的成员,其默认的访问权限为( )。 A. public B. protected C. private D. static答案:C分值:2难度:1知识点:评析:15、类的析构函数的作用是( )。 A. 作为类的一般成员函数 B. 类的初始化 C. 对象的初始化 D. 对象扫尾处理答案:D分值:2难度:1知识点:评析:16、若有一个MyClass类,则执行语句”MyClass,a,b(2),*p;”后,自动调用该类的构造函数( )次。 A. 2 B. 3 C. 4 D. 5答案:A分值:2难度:1知识点:评析:17、C+ 对C语言作了很多改进,
24、即从面向过程变成为面向对象的主要改进是( ) A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数 C. 规定函数说明符必须用原型 D. 引进了类和对象的概念答案:D分值:2难度:1知识点:评析:18、类MyClass的定义如下:class MyClasspublic:Myclass() MyClass(int i) value=new int (i);int* value; 若要对value赋值,则下面语句正确的是( )。 A. MyClass my; my.value=10; B. MyClass my; *my.value=10; C. MyClass my; my.*va
25、lue=10; D. MyClass my(10);答案:D分值:2难度:1知识点:评析:19、下面是对类MyClass的定义,对定义中语句描述正确的是( )。class MyClasspublic:void MyClass(int a) X=a; /int f(int a,int b) /X=a;Y=b;int f(int a,int b,int c=0) /X=a;Y=b;Z=c;static void g() X=10; /private:int X,Y,Z; A. 语句是类MyClass的构造函数定义 B. 语句是类和语句实现类成员函数的重载 C. 语句实现对类成员变量X的更新操作 D. 语句、和都不正确答案:D分值:2难度:1知识点:评析:20、类aClass的定义如下:class aClasspublic:aClass()aClass(int i)value=new int(i);int *value;若要对类中的valu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1