判断题
1-1
分数 2
可以通过下标随机访问向量vector中的元素。
T
F
1-2
分数 2
STL算法使用迭代器间接地对容器中的元素进行操作。
T
F
1-3
分数 2
记录流的当前格式化状态标志字中的每一位用于记录一种格式,这种格式是不能被设置或清除的。
T
F
1-4
分数 2
设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是cout。
T
F
1-5
分数 2
操纵符本身是一个对象,它可以直接被提取符或插入符操作。
T
F
1-6
分数 2
get()函数不能从流中提取终止字符,终止字符仍留在流中。getline()函数可以从流中提取终止字符,但终止字符被丢弃。(
T
F
1-7
分数 2
使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象。(。
T
F
1-8
分数 2
使用关闭文件函数close()关闭一个文件时,流对象仍存在。
T
F
1-9
分数 2
打开ASCⅡ码流文件和二进制流文件时,打开方式是相同的。
T
F
1-10
分数 2
read()和write()函数可以读写文本文件,也可以读写二进制文件。
T
F
1-11
分数 2
作者 何振峰
单位 福州大学
流的状态包含流的内容、长度和下一次提取或插入操作的当前位置。
T
F
1-12
分数 2
作者 张德慧
单位 西安邮电大学
当向量对象的内存用完之后,就会产生越界错误。
T
F
1-13
分数 2
作者 张德慧
单位 西安邮电大学
文件流对象的成员函数read()和write()函数可以读写文本文件,也可以读写二进制文件。 。
T
F
1-14
分数 2
作者 黄万丽
单位 曲阜师范大学
vector容器和list容器都是序列式容器,都有排序的sort()成员函数。
T
F
1-15
分数 2
作者 黄万丽
单位 曲阜师范大学
向STL中的关联型容器set中插入元素时,使用set的方法insert(pos, elem),是指在pos位置插入元素elem,元素elem一定在pos指定的位置。
T
F
1-16
分数 2
作者 刘莹
单位 威海职业学院
vector容器可以使用push_front()和pop_front()函数对元素进行插入、删除。
T
F
1-17
分数 2
作者 刘莹
单位 威海职业学院
set/multiset的区别是set用来存储一组无重复的元素,而multiset允许存储有重复的元素。
T
F
1-18
分数 2
作者 刘莹
单位 威海职业学院
STL中关联型容器都是有序的。
T
F
1-19
分数 2
作者 刘莹
单位 威海职业学院
映射容器里存储的元素都是成对存在的。
T
F
1-20
分数 2
作者 张德慧
单位 西安邮电大学
迭代器是对象,它的作用类似于指向元素的指针。
T
F
选择题
2-1
分数 2
作者 李廷元
单位 中国民用航空飞行学院
若有下面的语句:
vector<int> v;
for (int i = 0; i < 4; i++)
v.push_back(i + 1);
cout << v.size() << endl;
则执行后程序的输出结果是
A.
1
B.
2
C.
3
D.
4
2-2
分数 2
作者 孔德桢
单位 浙大城市学院
设有定义 vector<string> v(10);
执行下列哪条语句时会调用构造函数?
A.
v[0] += "abc";
B.
v[0] = "2018";
C.
v.push_back("ZUCC");
D.
cout << (v[1] == "def");
2-3
分数 2
作者 孔德桢
单位 浙大城市学院
设有如下代码段:
std::map<char *, int> m;
const int MAX_SIZE = 100;
int main() {
char str[MAX_SIZE];
for (int i = 0; i < 10; i++) {
std::cin >> str;
m[str] = i;
}
std::cout << m.size() << std::endl;
}
读入10个字符串,则输出的 m.size()
为
A.
0
B.
1
C.
10
2-4
分数 2
作者 刘莹
单位 威海职业学院
下列关于STL的描述中,错误的是。
A.
STL的内容从广义上讲分为容器、迭代器、算法三个主要部分
B.
STL的一个基本理念就是将数据和操作分离
C.
STL中的所有组件都由模板构成,其元素可以是任意类型
D.
STL的容器、迭代器、算法是三个完全独立的部分,彼此也无任何联系
2-5
分数 2
作者 刘莹
单位 威海职业学院
下列创建vector容器对象的方法中,错误的是。
A.
vector<int> v(10);
B.
vector<int> v(10, 1);
C.
vector<int> v{10, 1};
D.
vector<int> v = (10, 1);
2-6
分数 2
作者 刘莹
单位 威海职业学院
下列选项中,哪一项不是迭代器。
A.
输入迭代器
B.
前向迭代器
C.
双向迭代器
D.
删除迭代器
2-7
分数 2
作者 黄龙军
单位 绍兴文理学院
执行以下代码后,k的值是( )。
string s="123456", t="7788";
int k=s.find(t);
A.
4294967295
B.
-1
C.
0
D.
0xfffffffe
2-8
分数 2
作者 黄龙军
单位 绍兴文理学院
以下代码的输出结果是( )。
string s="123";
char c='a';
cout << s+c << endl;
A.
语句出错
B.
188
C.
123a
D.
12310
2-9
分数 2
作者 黄龙军
单位 绍兴文理学院
以下代码的输出结果是( )。
string s="12300",t="1256";
cout << (s<t) << endl;
A.
true
B.
false
C.
1
D.
0
2-10
分数 2
作者 黄龙军
单位 绍兴文理学院
以下代码的输出结果是( )。
string s, t;
s="abcdefgh";
t=s.substr(3);
cout << t << endl;
A.
abc
B.
cdefgh
C.
defgh
D.
fgh
2-11
分数 2
作者 黄龙军
单位 绍兴文理学院
以下代码的输出结果是( )。
string s, t;
s="abcdefgh";
t=s.substr(3,4);
cout << t << endl;
A.
defg
B.
cdef
C.
defgh
D.
语句出错
2-12
分数 2
作者 黄龙军
单位 绍兴文理学院
以下代码的输出结果是( )。
string s="123";
int sum = 0;
for(int i =0;i<s.length();i++) {
sum = sum*10+(s[i]-'0');
}
cout<<sum<<endl;
A.
5451
B.
123
C.
321
D.
不确定
2-13
分数 2
作者 黄龙军
单位 绍兴文理学院
有代码如下:
string s;
s[0]='1';
则关于以上语句说法正确的是( )。
A.
语句"s[0]='1';" 有问题
B.
s的值为字符串"1"
C.
s是空格串
D.
s是空串
2-14
分数 2
作者 黄龙军
单位 绍兴文理学院
有代码如下:
string s;
cin>>s;
cout<<s<<endl;
输入以下字符串,以上语句输出的是( )。
123 abc
A.
123 abc
B.
123
C.
abc
D.
123abc
2-15
分数 2
作者 黄龙军
单位 绍兴文理学院
有代码如下:
int n;
string s;
cin>>n;
getline(cin, s);
cout<<s.size()<<endl;
则在输入以下数据后得到结果是( )。
1
Hello World
A.
11
B.
0
C.
5
D.
12
2-16
分数 2
作者 黄龙军
单位 绍兴文理学院
以下代码的输出结果是( )。
string res="";
string s,t="123456";
s=string(3,'0'); //相当于s="000";
s=s+"123";
for(int i=5;i>=0;i--) {
char c=s[i]+t[i]-'0';
res=c+res;
}
cout<<res<<endl;
```
A.
975321
B.
236456
C.
654632
D.
123579
2-17
分数 2
作者 黄龙军
单位 绍兴文理学院
关于STL之stack和queue的以下说法中,错误的是( )。
A.
stack的push方法(成员函数)用于将元素入栈
B.
queue的push方法(成员函数)用于将元素入队
C.
queue的front方法(成员函数)用于取得队头元素
D.
stack的top方法(成员函数)用于取得栈顶元素的下标
2-18
分数 2
作者 何振峰
单位 福州大学
下面是关于ios 类的叙述,正确的是( )。
A.
它是istream 类和ostream 类的虚基类
B.
它只是istream 类的虚基类
C.
它只是ostream 类的虚基类
D.
它是iostrearm 类的虚基类
2-19
分数 2
作者 何振峰
单位 福州大学
关于read()函数的下列描述中,正确的是( )。
A.
该函数只能用来从键盘输入中获取字符串
B.
该函数所获取的字符多少是不受限制的
C.
该函数只能用于文本文件的操作中
D.
该函数只能按规定读取所指定的字符数
2-20
分数 2
作者 何振峰
单位 福州大学
当使用ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。
A.
ios::in
B.
ios::out
C.
ios::in|ios::out
D.
ios::binary
2-21
分数 2
作者 何振峰
单位 福州大学
下列函数中,( )是对文件进行写操作的。
A.
get
B.
read
C.
seekg
D.
put
2-22
分数 2
作者 张德慧
单位 西安邮电大学
在C++中,打开一个文件,就是将整个文件与一个( )建立关联,关闭一个文件,就是取消这种关联。
A.
类
B.
流
C.
对象
D.
结构
2-23
分数 2
作者 张德慧
单位 西安邮电大学
下列打开文件的表达式中,错误的是:
A.
ofstream ofile; ofile.open(“C:\vc\abc.txt”,ios::binary);
B.
fstream iofile;iofile.open(“abc.txt”,ios::ate);
C.
ifstream ifile (“C:\vc\abc.txt”);
D.
cout.open(“C:\vc\abc.txt”,ios::binary);
2-24
分数 2
作者 张德慧
单位 西安邮电大学
以下关于文件操作的叙述中,不正确的是:
A.
打开文件的目的是使文件对象与磁盘文件建立联系
B.
文件读写过程中,程序将直接与磁盘文件进行数据交换
C.
关闭文件的目的之一是保证将输出的数据写入硬盘文件
D.
关闭文件的目的之一是释放内存中的文件对象
2-25
分数 2
作者 李廷元
单位 中国民用航空飞行学院
下列关于C++的四个预定义流对象的描述中,正确的是____。
A.
这四个预定义流对象是由iostream类定义的。
B.
这四个预定义流对象中cout是没有缓存的。
C.
cin对象一次只能读入单个变量。
D.
cerr与clog都是用于标准错误输出,默认设备都是显示器。
2-26
分数 2
作者 李廷元
单位 中国民用航空飞行学院
C++I/O流类库以ios为根基类直接派生了四个类,下列哪一项不是ios直接派生的子类____。
A.
istream
B.
ostream
C.
iostream
D.
strstreambase
2-27
分数 2
作者 李廷元
单位 中国民用航空飞行学院
阅读下列程序
cout<<setw(3)<<25<<oct<<25<<hex<<endl;
上述语句的输出结果为____。(选项B中的口
表示空格)
A.
25 25
B.
口2531
C.
31 19
D.
25 31
2-28
分数 2
作者 李廷元
单位 中国民用航空飞行学院
对磁盘文件进行操作时,以____模式打开的文件,可实现创建一个可以写入的、新的空文件;如果该文件已经存在,则先删除以前的内容,再写入新数据。
A.
ios::in
B.
ios::app
C.
ios::out
D.
ios::binary
2-29
分数 2
作者 李廷元
单位 中国民用航空飞行学院
下列关于文件的打开与关闭的描述中,错误的是____。
A.
ifstream类. ostream类和fstream类都提供了成员函数open()用于打开文件
B.
对于ifstream类对象其打开文件的默认方式是ios::in,ostream类对象打开文件的默认方式是ios::out
C.
对于ofstream类来说,析构函数会自动完成关闭,然后可以在这个流上打开另外一个文件
D.
文件的打开方式可以组合使用
2-30
分数 2
作者 吕华
单位 河北工业大学
使用“myFile.open("Sales.dat",ios::app);”语句打开文件Sales.date后,则()。
A.
该文件只能用于输出
B.
该文件只能用于输入
C.
该文件既可以用于输出,也可以用于输入
D.
若该文件存在,则清除该文件的内容