c++ pta 第十章和第十一章作业类库和标准模板库STL 、输入输出流

判断题

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

答案正确:2 分


1-13

分数 2

作者 张德慧

单位 西安邮电大学

文件流对象的成员函数read()和write()函数可以读写文本文件,也可以读写二进制文件。 。

T

F

答案正确:2 分


1-14

分数 2

作者 黄万丽

单位 曲阜师范大学

vector容器和list容器都是序列式容器,都有排序的sort()成员函数。

T

F


1-15

分数 2

作者 黄万丽

单位 曲阜师范大学

向STL中的关联型容器set中插入元素时,使用set的方法insert(pos, elem),是指在pos位置插入元素elem,元素elem一定在pos指定的位置。

T

F

答案正确:2 分

创建提问


1-16

分数 2

作者 刘莹

单位 威海职业学院

vector容器可以使用push_front()和pop_front()函数对元素进行插入、删除。

T

F

答案正确:2 分


1-17

分数 2

作者 刘莹

单位 威海职业学院

set/multiset的区别是set用来存储一组无重复的元素,而multiset允许存储有重复的元素。

T

F

答案正确:2 分


1-18

分数 2

作者 刘莹

单位 威海职业学院

STL中关联型容器都是有序的。

T

F

答案正确:2 分


1-19

分数 2

作者 刘莹

单位 威海职业学院

映射容器里存储的元素都是成对存在的。

T

F

答案正确:2 分


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

分数 2

作者 孔德桢

单位 浙大城市学院

设有定义 vector<string> v(10);
执行下列哪条语句时会调用构造函数?

A.

v[0] += "abc";

B.

v[0] = "2018";

C.

v.push_back("ZUCC");

D.

cout << (v[1] == "def");

答案正确:2 分


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 分


2-4

分数 2

作者 刘莹

单位 威海职业学院

下列关于STL的描述中,错误的是。

A.

STL的内容从广义上讲分为容器、迭代器、算法三个主要部分

B.

STL的一个基本理念就是将数据和操作分离

C.

STL中的所有组件都由模板构成,其元素可以是任意类型

D.

STL的容器、迭代器、算法是三个完全独立的部分,彼此也无任何联系

答案正确:2 分


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 分


2-6

分数 2

作者 刘莹

单位 威海职业学院

下列选项中,哪一项不是迭代器。

A.

输入迭代器

B.

前向迭代器

C.

双向迭代器

D.

删除迭代器

答案正确:2 分


2-7

分数 2

作者 黄龙军

单位 绍兴文理学院

执行以下代码后,k的值是( )。

string s="123456", t="7788";
int k=s.find(t);

A.

4294967295

B.

-1

C.

0

D.

0xfffffffe

答案正确:2 分

创建提问


2-8

分数 2

作者 黄龙军

单位 绍兴文理学院

以下代码的输出结果是( )。

string s="123";    
char c='a';
cout << s+c << endl;

A.

语句出错

B.

188

C.

123a

D.

12310

答案正确:2 分

创建提问


2-9

分数 2

作者 黄龙军

单位 绍兴文理学院

以下代码的输出结果是( )。

string s="12300",t="1256";    
cout << (s<t) << endl;

A.

true

B.

false

C.

1

D.

0

答案正确:2 分


2-10

分数 2

作者 黄龙军

单位 绍兴文理学院

以下代码的输出结果是( )。

    string s, t;
    s="abcdefgh";
    t=s.substr(3);
    cout << t << endl;

A.

abc

B.

cdefgh

C.

defgh

D.

fgh

答案正确:2 分


2-11

分数 2

作者 黄龙军

单位 绍兴文理学院

以下代码的输出结果是( )。

    string s, t;
    s="abcdefgh";
    t=s.substr(3,4);
    cout << t << endl;

A.

defg

B.

cdef

C.

defgh

D.

语句出错

答案正确:2 分


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 分


2-13

分数 2

作者 黄龙军

单位 绍兴文理学院

有代码如下:

string s;

s[0]='1';

则关于以上语句说法正确的是( )。

A.

语句"s[0]='1';" 有问题

B.

s的值为字符串"1"

C.

s是空格串

D.

s是空串

答案正确:2 分


2-14

分数 2

作者 黄龙军

单位 绍兴文理学院

有代码如下:

    string s;
    cin>>s;
    cout<<s<<endl;

输入以下字符串,以上语句输出的是( )。

123 abc

A.

123 abc

B.

123

C.

abc

D.

123abc

答案正确:2 分


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 分


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 分


2-18

分数 2

作者 何振峰

单位 福州大学

下面是关于ios 类的叙述,正确的是( )。

A.

它是istream 类和ostream 类的虚基类

B.

它只是istream 类的虚基类

C.

它只是ostream 类的虚基类

D.

它是iostrearm 类的虚基类

答案正确:2 分

创建提问


2-19

分数 2

作者 何振峰

单位 福州大学

关于read()函数的下列描述中,正确的是( )。

A.

该函数只能用来从键盘输入中获取字符串

B.

该函数所获取的字符多少是不受限制的

C.

该函数只能用于文本文件的操作中

D.

该函数只能按规定读取所指定的字符数

答案正确:2 分

创建提问


2-20

分数 2

作者 何振峰

单位 福州大学

当使用ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。

A.

ios::in

B.

ios::out

C.

ios::in|ios::out

D.

ios::binary

答案正确:2 分

创建提问


2-21

分数 2

作者 何振峰

单位 福州大学

下列函数中,( )是对文件进行写操作的。

A.

get

B.

read

C.

seekg

D.

put

答案正确:2 分

创建提问


2-22

分数 2

作者 张德慧

单位 西安邮电大学

在C++中,打开一个文件,就是将整个文件与一个( )建立关联,关闭一个文件,就是取消这种关联。

A.

B.

C.

对象

D.

结构

答案正确:2 分


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 分


2-24

分数 2

作者 张德慧

单位 西安邮电大学

以下关于文件操作的叙述中,不正确的是:

A.

打开文件的目的是使文件对象与磁盘文件建立联系

B.

文件读写过程中,程序将直接与磁盘文件进行数据交换

C.

关闭文件的目的之一是保证将输出的数据写入硬盘文件

D.

关闭文件的目的之一是释放内存中的文件对象

答案正确:2 分


2-25

分数 2

作者 李廷元

单位 中国民用航空飞行学院

下列关于C++的四个预定义流对象的描述中,正确的是____。

A.

这四个预定义流对象是由iostream类定义的。

B.

这四个预定义流对象中cout是没有缓存的。

C.

cin对象一次只能读入单个变量。

D.

cerr与clog都是用于标准错误输出,默认设备都是显示器。

答案正确:2 分


2-26

分数 2

作者 李廷元

单位 中国民用航空飞行学院

C++I/O流类库以ios为根基类直接派生了四个类,下列哪一项不是ios直接派生的子类____。

A.

istream

B.

ostream

C.

iostream

D.

strstreambase

答案错误:0 分


2-27

分数 2

作者 李廷元

单位 中国民用航空飞行学院

阅读下列程序

 

cout<<setw(3)<<25<<oct<<25<<hex<<endl;

上述语句的输出结果为____。(选项B中的表示空格)

A.

25 25

B.

口2531

C.

31 19

D.

25 31

答案正确:2 分


2-28

分数 2

作者 李廷元

单位 中国民用航空飞行学院

对磁盘文件进行操作时,以____模式打开的文件,可实现创建一个可以写入的、新的空文件;如果该文件已经存在,则先删除以前的内容,再写入新数据。

A.

ios::in

B.

ios::app

C.

ios::out

D.

ios::binary

答案正确:2 分


2-29

分数 2

作者 李廷元

单位 中国民用航空飞行学院

下列关于文件的打开与关闭的描述中,错误的是____。

A.

ifstream类. ostream类和fstream类都提供了成员函数open()用于打开文件

B.

对于ifstream类对象其打开文件的默认方式是ios::in,ostream类对象打开文件的默认方式是ios::out

C.

对于ofstream类来说,析构函数会自动完成关闭,然后可以在这个流上打开另外一个文件

D.

文件的打开方式可以组合使用

答案正确:2 分


2-30

分数 2

作者 吕华

单位 河北工业大学

使用“myFile.open("Sales.dat",ios::app);”语句打开文件Sales.date后,则()。

A.

该文件只能用于输出

B.

该文件只能用于输入

C.

该文件既可以用于输出,也可以用于输入

D.

若该文件存在,则清除该文件的内容

答案正确:2 分

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值