C 程序设计考试题库(精简版)剖析
更新时间:2023-09-02 19:27:01 阅读量: 教育文库 文档下载
- c罗推荐度:
- 相关推荐
C
【章节】第1章C++基础知识
【知识点】
1、C++程序的构成与书写形式;
2、基本数据类型,常量、变量和表达式
3、C++的标准输入输出
【单选题】
1、在C++中,源程序变为可执行程序的正确顺序应该是( ) 。
A. 编辑、链接、编译、执行
B. 编辑、编译、链接、执行
C. 编译、编辑、链接、执行
D. 编译、链接、编辑、执行
答案:B
2、要把高级语言编写的源程序转换为目标程序,需要使用( ) 。
A. 编辑程序
B. 驱动程序
C. 调试程序
D. 编译程序
答案:D
3、下列关于C++与C语言的关系描述中,错误的是( ) 。
A. C语言是C++语言的一个子集
B. C++与C语言是兼容的
C. C++对C语言进行了一些改进
D. C++和C语言都是面向对象的
答案:D
4、下面为使用面向对象语言的正确理由是( ) 。
A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构
B. 程序语句比面向过程语言简单
C. 面向对象程序设计可以设计为自行修改错误
D. 面向对象程序很容易概念化
答案:D
5、以下选项中,合法的用户标识符是( ) 。
A. long
B. _2Test
C. 3Dmax
D. A.dat
答案:B
6、下列描述中正确的是( ) 。
A. 不是每个C++程序都必须包含预处理命令#include
B. C++程序必须有return 语句
C. C++程序中的变量必须定义在主程序内部
D. C++程序中所使用的符号常量可以不进行定义
答案:A
7、C++源程序文件的扩展名为( ) 。
C
A. .CPP
B. .C
C. .DLL
D. .EXE
答案:A
8、cout是I0流库预定义的( ) 。
A. 类
B. 对象
C. 包含文件
D. 常量
答案:B
9、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
答案:D
10、下列选项中,( ) 是不合法的标识符.
A. Program
B. Obj23
C. double
D. B_C_D
答案:C
11、下列标识符中,不合法的用户标识符为( ) 。
A. a~!
B. _int
C. a_10
D. PAd
答案:A
12、只能向终端输出一个字符的函数是( ) 。
A. pringf函数
B. putchar函数
C. getchar函数
D. scanf函数
答案:B
13、如果有整型量int x = 5,执行情况x += 1.9 后x的值为( ) 。
A. 6
B. 7
C. 结果不确定
D. 表达式非法
答案:A
14、已知a=5,b=3,表达式a+=a*=++b*3的值为( ) 。
A. 40
B. 80
C
C. 100
D. 120
答案:D
20、在C++语言中,自定义的标识符( ) 。
A. 能使用关键字并且不区分大小写
B. 不能使用关键字并且不区分大小写
C. 能使用关键字并且区分大小写
D. 不能使用关键字并且区分大小写
答案:D
32、C++语言程序的基本单位是( ) 。
A. 程序行
B. 语句
C. 函数
D. 字符
答案:B
37、C++ 对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是( )
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
答案:D
38、下列符号属于c++语言用户标识符的是()。
A. DO
B. if
C. void
D. switch
答案:A
39、任意一个类,析构函数的个数最多是( )。
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
C. 5
D. 6
答案:A
2、以下程序的运行结果是( ) 。
int main()
{ int k=4,m=1,p;
p=func(k,m);
cout<<p<<endl;
p=func(k,m);
cout<<p<<endl;
}
func(int a,int b)
{ static int m,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A. 8,17
B. 8,16
C. 8,20
D. 8,8
答案:A
3.以下函数调用语句中,含有的实参个数是( ). func(rec1,rec2 +1,(rec3,rec4));
A. 3
B. 4
C. 5
D. 有语法错误
[答案] A
4.分析如下程序:
#include <iostream>
int f(int b[],int n)
{int i,r=1;
for(i=0;i<=n;i++)
r=r*b[i];
return r;
}
void main(){
int x,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
cout<<x<<endl;
}
上面程序的输出结果是( ) 。
A. 720
C
B. 120
C. 24
D. 6
答案:B
5、下列函数参数默认值定义错误的是( ) 。
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()已经定义)
答案:C
6、在函数定义前加上关键字“inline”表示该函数被定义为( ) 。
A. 重载函数
B. 内联函数
C. 成员函数
D. 普通函数
答案:B
7、一个函数功能不太复杂,但要求被频繁调用,选用( ) 。
A. 内联函数
B. 重载函数
C. 递归函数
D. 嵌套函数
答案:A
8、下面有关重载函数的说法中正确的是( ) 。
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数必须有不同的形参列表
D. 重载函数名可以不同
答案:C
9、在C++语言中,对函数参数默认值描述正确的是( ) 。
A. 函数参数的默认值只能设定一个
B. 一个函数的参数若有多个,则参数默认值的设定可以不连续
C. 函数必须设定默认值
D. 在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值
答案:D
10、考虑函数原型void test(int a,int b=7,char z='*'),下面的函数调用中,属于不合法调用的是
A. test(5);
B. test(5,8);
C. test(6,'#');
D. test(0,0,'*');
答案:C
11、以下对C++ 函数的有关描述中,正确的是( ) 。
A. C 调用函数时,只能把实参的值传给形参,形参的值不能传递给实参
B. C++函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
C
D. C++程序中有调用关系的所有函数必须放在同一源程序文件中答案:A
12、在C++语言中函数返回值的类型是由( )决定的。
A. 调用该函数时系统临时
B. return语句中的表达式类型
C. 定义该函数时所指定的函数类型
D. 调用该函数时的主调函数类型
答案:C
13、以下程序的输出结果是( ) 。
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--);
cout<<r<<endl;
}
A. 15
B. 20
C. 21
D. 31
答案:C
14、以下程序的输出结果是( ) 。
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);
cout<<z<<”,”<<y<<”,”<<x<<endl;
}
A. 30,20,10
B. 10,20,30
C. 456,567,678
D. 678,567,456
答案:A
15、C++语言中,形参与实参之间的数据传递方式是( ) 。
A. 只能按值传递
B. 只能按地址传递
C. 既可以按值传递也可以按地址传递
D. 以上说法都不对
答案:C
16、分析以下程序:
#include <iostream>
void fun(int num){cout<<num<<endl;}
void fun(char ch){cout<<(ch+1)<<endl;}
C
int main(){
fun('A');
return 0;
}
以上程序的输出结果是( ) 。
A. 65
B. 66
C. A
D. B
答案:B
17、一个函数为void f(int x, char y = ‘a’),另一个函数为void f(int),则它们( ) 。
A. 不能在同一程序块中定义
B. 可以在同一个程序块中定义并可重载
C. 可以在同一个程序块中定义,但不可以重载
D. 以上说法均不正确
答案:A
18、函数定义为Fun(int &i),变量定义n = 100,则下面调用正确的是( ) 。
A. Fun(20)
B. Fun(20 + n)
C. Fun(n)
D. Fun(&n)
答案:C
19、当一个函数无返回值时,函数的类型应为( ) 。
A. 任意
B. void
C. int
D. char
答案:B
20、下列带缺省值参数的函数说明中,正确的说明是( ) 。
A. int Fun(int x,int y=2,int z=3);
B. int Fun(int x=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);
答案:A
21、下列函数参数默认值定义错误的是( ) 。
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( )已经定义)
答案:C
22、在函数定义前加上关键字“inline”表示该函数被定义为( ) 。
A. 重载函数
B. 内联函数
C. 成员函数
C
D. 普通函数
答案:B
23、一个函数功能不太复杂,但要求被频繁调用,选用( ) 。
A. 内联函数
B. 重载函数
C. 递归函数
D. 嵌套函数
答案:A
24、下面有关重载函数的说法中正确的是( ) 。
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数必须有不同的形参列表
D. 重载函数名可以不同
答案:C
25、在C++语言中,对函数参数默认值描述正确的是( ) 。
A. 函数参数的默认值只能设定一个
B. 一个函数的参数若有多个,则参数默认值的设定可以不连续
C. 函数必须设定默认值
D. 在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值
答案:D
26、考虑函数原型void test(int a,int b=7,char z='*'),下面的函数调用中,属于不合法调用的是( ) 。
A. test(5);
B. test(5,8);
C. test(6,'#');
D. test(0,0,'*');
答案:C
27、以下对C++ 函数的有关描述中,正确的是( ) 。
A. C 调用函数时,只能把实参的值传给形参,形参的值不能传递给实参
B. C++函数既可以嵌套定义又可以递归调用
C. 函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一源程序文件中
答案:A
28、在C++语言中函数返回值的类型是由( )决定的。
A. 调用该函数时系统临时
B. return语句中的表达式类型
C. 定义该函数时所指定的函数类型
D. 调用该函数时的主调函数类型
答案:C
29、以下程序的输出结果是( ) 。
int func(int a,int b)
{ return a+b;}
int main( )
{ int x=6,y=7,z=8,r;
C
r=func(func(x,y),z--);
cout<<r<<endl;
}
A. 15
B. 20
C. 21
D. 31
答案:C
30、以下程序的输出结果是( ) 。
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);
cout<<z<<”,”<<y<<”,”<<x<<endl;
}
A. 30,20,10
B. 10,20,30
C. 456,567,678
D. 678,567,456
答案:A
【章节】第7章类与对象
【知识点】
1、面向对象程序设计的基本概念
2、类定义、属性与行为、访问权限控制,对象的定义、使用
3、构造函数与析构函数
4、函数重载技术与运算符重载技术
5、友元
【单选题】
1、对于下面定义的类MyClass, 在函数f( )中将对象成员n的值修改为50的语句(划线处)应该是( ) 。
class MyClass
{
public:
MyClass(int x)
{
n=x;
}
void SetValue(int n1)
{
n=n1;
}
private:
C
int n;
};
int f( )
{
MyClass *ptr=new MyClass(45);
__________;
}
A. MyClass(50)
B. SetValue(50)
C. ptr - > SetValue(50)
D. ptr - > n=50
答案:C
分值:2
难度:1
知识点:
评析:
2、类MyClass的定义如下:
class MyClass
{
public:
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)”的调用是正确的
D. 语句”p - > SetVariable(5)”与语句”my.SetVariable(5)”等价答案:D
分值:2
难度:1
知识点:
评析:
3、下面类的定义,有( )错误。
class MyClass{
C
int 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、构造函数不具备的特征的是( )。
A. 构造函数的函数名与类名相同
B. 构造函数可以重载
C. 构造函数可以设置默认参数
D. 构造函数必须指定返回类型
答案:D
分值:2
难度:1
知识点:
评析:
6、类的析构函数是在()被自动调用的。
A. 类创建时
B. 创建对象时
C. 删除对象时
D. 不自动调用
答案:C
分值:2
难度:1
知识点:
评析:
7、对于任何一个类,析构函数最多有( ) 个。
A. 0
B. 1
C
C. 2
D. 4
答案:B
分值:2
难度:2
知识点:
评析:
8、通常,拷贝构造函数的参数是( )。
A. 某个对象名
B. 某个对象的引用名
C. 某个对象的成员名
D. 某个对象的指针名
答案:B
分值:2
难度:1
知识点:
评析:
9、面向对象程序设计中的数据隐藏指的是( )。
A. 输入数据必须输入保密口令
B. 数据经过加密处理
C. 对象内部数据结构上建有防火墙
D. 对象内部数据结构的不可访问性
答案:D
分值:2
难度:1
知识点:
评析:
10、下列关于类的访问权限的描述中,错误的是( ).。
A. 说明为公有的成员可以被程序中的任何代码访问
B. 说明为私有的成员只能被类的成员和说明为友元类的成员函数访问
C. 说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问
D. 类的所有成员都可以被程序中的任何代码访问
答案:D
分值:2
难度:1
知识点:
评析:
11、一个类的友元函数或友元类可以访问该类的( )。
A. 私有成员
B. 保护成员
C. 公有成员
D. 所有成员
答案:D
C
分值:2
难度:1
知识点:
评析:
12、下列关于成员函数特征的描述中,错误的是( )。
A. 成员函数一定是内联函数
B. 成员函数可以重载
C. 成员函数可以设置参数的默认值
D. 成员函数可以是静态的
答案:A
分值:2
难度:1
知识点:
评析:
13、下面对类中静态数据成员的描述中,正确的是( )。
A. 静态数据成员是类的所有对象共享的数据
B. 类的每个对象都有自己的静态数据成员
C. 类的不同对象有不同的静态数据成员
D. 静态数据成员不能通过类的对象调用
答案:A
分值:2
难度:1
知识点:
评析:
14、C 中对于类中定义的成员,其默认的访问权限为( )。
A. public
B. protected
C. private
D. static
答案:C
分值:2
难度:1
知识点:
评析:
15、类的析构函数的作用是( )。
A. 作为类的一般成员函数
B. 类的初始化
C. 对象的初始化
D. 对象扫尾处理
答案:D
分值:2
难度:1
知识点:
评析:
C
16、若有一个MyClass类,则执行语句”MyClass,a,b(2),*p;”后,自动调用该类的构造函数( )次。
A. 2
B. 3
C. 4
D. 5
答案:A
分值:2
难度:1
知识点:
评析:
17、C++ 对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是( )
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
答案:D
分值:2
难度:1
知识点:
评析:
18、类MyClass的定义如下:
class MyClass
{
public:
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.*value=10;
D. MyClass my(10);
答案:D
分值:2
难度:1
知识点:
评析:
19、下面是对类MyClass的定义,对定义中语句描述正确的是()。
class MyClass
{
public:
void MyClass(int a) {X=a;} //①
C
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 aClass{public:aClass(){}aClass(int i){value=new int(i);}int *value;}若要对类中的value赋值,则下面的语句中,正确的是( )。
A. aClass my;my.value = 10;
B. aClass my;*my.value = 10;
C. aClass my;my.*value = 10;
D. aClass my(10);
答案:D
分值:2
难度:1
知识点:
评析:
21、对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句(划线处)应该是( )。
class MyClass
{
public:
MyClass(int x)
{
n=x;
}
C
void SetValue(int n1)
{
n=n1;
}
private:
int n;
};
int f()
{
MyClass *ptr=new MyClass(45);
__________;
}
A. MyClass(50)
B. SetValue(50)
C. ptr - > SetValue(50)
D. ptr - > n=50
答案:C
分值:2
难度:1
知识点:
评析:
22、类MyClass的定义如下:
class MyClass
{
public:
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)”的调用是正确的
D. 语句”p - > SetVariable(5)”与语句”my.SetVariable(5)”等价答案:D
分值:2
C
难度:1
知识点:
评析:
23、类的析构函数是在()被自动调用的?
A. 类创建时
B. 创建对象时
C. 删除对象时
D. 不自动调用
答案:C
分值:2
难度:1
知识点:
评析:
24、对于任何一个类,析构函数最多有( ) 个。
A. 0
B. 1
C. 2
D. 3
答案:B
分值:2
难度:1
知识点:
评析:
25、通常,拷贝构造函数的参数是( )。
A. 某个对象名
B. 某个对象的成员名
C. 某个对象的引用名
D. 某个对象的指针名
答案:C
分值:2
难度:3
知识点:
评析:
26、下列关于类的访问权限的描述中,错误的是( ).。
A. 说明为公有的成员可以被程序中的任何代码访问
B. 说明为私有的成员只能被类的成员和说明为友元类的成员函数访问
C. 说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问
D. 类的所有成员都可以被程序中的任何代码访问
答案:D
分值:2
难度:1
知识点:
评析:
C
27、一个类的友元函数或友元类可以访问该类的( )。
A. 私有成员
B. 保护成员
C. 公有成员
D. 所有成员
答案:D
分值:2
难度:1
知识点:
评析:
28、下列关于成员函数特征的描述中,错误的是( )。
A. 成员函数一定是内联函数
B. 成员函数可以重载
C. 成员函数可以设置参数的默认值
D. 成员函数可以是静态的
答案:A
分值:2
难度:1
知识点:
评析:
29、下面对类中静态数据成员的描述中,正确的是( )。
A. 静态数据成员是类的所有对象共享的数据
B. 类的每个对象都有自己的静态数据成员
C. 类的不同对象有不同的静态数据成员
D. 静态数据成员不能通过类的对象调用
答案:A
分值:2
难度:1
知识点:
评析:
30、C++中对于类中定义的成员,其默认的访问权限为( )。
A. public
B. protected
C. private
D. static
答案:C
分值:2
难度:1
知识点:
评析:
31、类的析构函数的作用是( )。
A. 作为类的一般成员函数
B. 类的初始化
C. 对象的初始化
C
D. 对象扫尾处理
答案:D
分值:2
难度:2
知识点:
评析:
32、若有一个MyClass类,则执行语句”MyClass,a,b(2), *p ;”后,自动调用该类的构造函数( )次。
A. 2
B. 3
C. 4
D. 5
答案: A
分值:2
难度:1
知识点:
评析:
33、类MyClass的定义如下:
class MyClass
{
public:
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.*value=10;
D. MyClass my(10);
答案:D
分值:2
难度:1
知识点:
评析:
34、下面是对类MyClass的定义,对定义中语句描述正确的是()。
class MyClass
{
public:
void MyClass(int a) {X=a;} // ①
int f(int a,int b) // ②
{
X=a;
Y=b;
正在阅读:
C 程序设计考试题库(精简版)剖析09-02
危险品化工品检验工作总结与计划范文05-17
车位租赁协议书简单版范本03-27
中国礼盒包装行业市场前景分析预测报告(目录) - 图文07-01
乘积型相位鉴频器的设计、仿真与研究04-09
安全教育继续网考试题库06-08
大象版小学科学三年级上册教案全册11-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 精简版
- 考试题库
- 程序设计
- 剖析
- 高分子物理期终试题及答案
- SolidCAM_后处理制作介绍
- 马克思主义重点工程新闻学概论
- 【精选】部编版五年级上册第20课山居秋暝教学设计二
- 2017-2022年中国影视产业行业市场调查分析与发展趋势预测研究报告目录
- 新浙江专版地理选修6同步讲义: 非可再生资源的利用与保护——以能源矿产(石油、煤炭)为例
- GPS/INS组合导航系统松、紧耦合性能比较
- 中国可转换债券定价问题研究
- 音乐协会章程
- 2019年贵阳中医学院基础医学院306西医综合之生物化学考研冲刺狂背五套题
- 国有企业成本管理创新的研究
- 2010年临床医学检验技术初级(师)《基础知识》模拟试卷(3)-中大网校
- 第十课第二框 思想道德修养与科学文化修养
- 小学二年级信息教案
- 高速电压输出型对数放大器AD8310
- barner海报设计详细图文教程
- 大方县教育系统个人廉政承诺书
- 北京大学自主招生自荐信
- 社会单位消防安全四个能力建设教育培训手册
- 液压动力滑台的PLC控制系统改造