卓尔文档网 - www.qiying88.com 2024年05月18日 18:01 星期六
  • 热门搜索:
  • 当前位置 首页 >范文大全 > 公文范文 >

    国家二级C%2b%2b机试(C%2b%2b流)模拟试卷4(全文完整)

    来源:网友投稿 发布时间:2022-08-23 11:40:06

    下面是小编为大家整理的国家二级C%2b%2b机试(C%2b%2b流)模拟试卷4(全文完整),供大家参考。

    国家二级C%2b%2b机试(C%2b%2b流)模拟试卷4(全文完整)

     

      正在加载

     控制面板 试卷满分:

     100 分 试题数量:

     22 题 答题时限:

     120 分钟

     剩余时间:

     调整字号:

     12

     14 16

     18

     20

      调整背景:

     级 国家二级 C++ 机试(C++ 流)模拟试卷4

      全部题型

      1. 选择题

     选择题

     1. 下列关于 C++流的说明中,正确的是(

     )。

     A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作 C.cin 是一个预定义的输入流类 D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象 正确答案:A 解析:此题考查的是 C++ 流的概念。从输入流中提取数据称为提取操作,把表达式插入到输出流中的项 操作称为插入操作,故选项 B 错误:cin 是一个预定义的项 输入流对象而不是流类,故选项 C 错误;输入输出流中没有 有 open 成员函数,故选项 D 错误。

      2. 如果利用 C++流进行输入输出,下面的叙述中正确的是(

     )。

     A.只能借助于流对象进行输入输出 B.只能进行格式化输入输出 C.只能借助于 cin和 cout进行输入输出D.只能使用运算符>>和<<进行输入输出正确答案:A 解析:此题考查的知识点是 C++ 流。利用C++ 流既可以进行有格式输入输出,也可以进行无格式输 答题卡 1 A B C D 2 A B C D 3 A B C D 4 A B C D 5 A B C D 6 A B C D 7 A B C D 8 A B C D 9 A B C D 10 A B C D 11 A B C D 12 A B C D 13 A B C D 14 A B C D 15 A B C D 16 A B C D 17 A B C D 18 A B C D 19 A B C D 20 A B C D 21 A B C D 22 A B C D

     项 入输出,所以选项 B 错误:C++的 的 4 个预定义的流对象为:cin 一标准输入,cout 一标准输出,Cerr 一标准出错信息输出,clog 一带缓冲的标准出错信息输出,选项 C 错 错误;C++ 流除了可以使用提取“>>” 插入“<<” 进行输入输出外,还可以通过流对象的一些成员函数进行输入输出,故项 选项 D 错误。

      3. 在语句“cout<<ˊAˊ;”中,cout 是(

     )。

     A.类名 B.对象名 C.函数名 D.C++的关键字正确答案:B 解析:C++ 有四个预定义的流对象:cin 标准输,cout 标准输出,Celt 标准出错信息输出,clog 带缓冲的标准出错信息输出。

      4. 在 C++中,cin是一个(

     )。

     A.类 B.对象 C.模板 D.函数 正确答案:B 解析:cin 为 为 istream 流类的对象。

      5. C++系统预定了 4个用于标准数据流的对象,下列选项中不属于此类对象的是(

     )。

     A.cout B.cin C.cerr D.cset 正确答案:D 解析:C++ 流有 4 个预定义的流对象,它们分别是:cin 标准输入;cout 标准输出;CelT 标准出错信息输出:clog 带缓冲的标准出错信息输出。

      6. 在 C++中,打开一个文件时与该文件建立联系的是(

     )。

     A.流对象 B.模板 C.函数 D.类 正确答案:A 解析:在 C++ 中,打开一个文件时与该文件

     建立联系的是流对象。

     7. 在 C++中既可以用于文件输入又可以用于文件输出的流类是(

     )。

     A.fstream B.ifstream C.ofstream D.iostream 正确答案:A 解析:文件流以磁盘文件以及其他可按文件方式进行管理的外部设备为输入输出对象。ifstream 是文件输入流类,ofstream 是文件输出流类,fstream 是文件输用 入输出流类,当使用 cin 、cout 的预定义流对象进行针对的 标准设备的 I /O 操作,则需要使用 iostream 文件。

      8. 有如下程序:

      #include<iostream>

      using namespace.std;

      int main()

      {

     cout.fin(ˊ*ˊ);

      cout.width(6);

      cout.fill(ˊ#ˊ);

      cout<<123<<end1;

      return 0;

      }

      执行后的输出结果是(

     )。

     A.###123 B.123### C.***123 D.123*** 正确答案:A 解析:此题考查的是 I /O 格式化输出。函数 数 width(int n) 设置输入输出宽度,当实际数据宽度小于制定的宽度时,多余的位置用填充字符填满:当实际数据宽数 度大于设置的宽度时,仍按实际宽度输出:函数 fill(char c) 用来设置填充字符。

      9. 有如下程序:

     #include<iostream>

      #include<iomanip>

      using namespace std;

      int main()

      {

      cout.fill(ˊ*ˊ);

      cout<<left<<setw(4)<<123<<"OK"<<end1;

      return 0;

      }

      执行这个程序的输出结果是(

     )。

     A.123*OK

     B.123*OK**C.*123OK D.*123**OK正确答案:A 解析:此题考查了输出流的格式控制。cout的 的 fill() 是设置填充字符:left 和 和 end1 分别是使输出数据左对齐和换行;setw() 函数的作用是设置输入输出的宽度,此设置效果只对以此输入或输出有效。此题中,输出整数123 时宽度为 4 且左对齐,得到“123*” :输出字符串“OK”到 时宽度没有定义实际大小输出,结果得到 OK :故最后得是 到的输出结果是 123*OK。

     。

      10. 有如下程序

      #include<iostream>

      #include<iomanip>

      using namespace sta;

      int main(){

      cout<<setprecision(3)<<fixed<<setfill(ˊ*ˊ)<<setw(8);

      cout<<12.345<<________<<34.567;

      return 0:

      }

      若程序的输出是:

      **12.345**34.567

      则程序中下划线处遗漏的操作符是(

     )。

     A.setprecision(3)B.fixed C.setfill(ˊ*ˊ) D.setw(8) 正确答案:D 解析:此题考查的是输出函数的格式控制。符 此题中,操作符 setprecision 的作用是设置浮点数的精度;fixed 的作用是让浮点数按定点格式输出;setfill 的作用是设置填充字符:setw 的作用是设置输入输出的宽度,一次让 有效的设置。下划线处应填一个让 34 .567 的输出宽度为8 的操作符,即 setw(8)。

     。

      11. 已知一程序运行后执行的第一个输出操作是(

     )。

     cout<<setw(10)<<setfill(ˊ*ˊ)<<1234; 则此操作的输出结果是 A.1234 B.******1234 C.**********1234D.1234****** 正确答案:B 解析:此题考查的是输入输出的格式控制。setw() 控制的是输入输出的宽度;setfill() 控制的是输出的填充字符。所以本题的输出结果是******1234。

     。

      12. 下列语句分别是不同程序中的第一个输入输出语句,

     若去掉其中的“<<left”,输出效果将发生变化的是(

     )。

     A.cout<<left<<setnll(ˊ*ˊ)<<357; B.cout<<left<<setw(5)<<357; C.cout<<left<<setw(5)<< "ABCDE";D.cout<<left<<"ABCDE":

     正确答案:B 解析:此题考查的是 C++ 流。setfill0 作用是设置填充字符:left 是使输出数据在指定宽度内左对齐:setw() 的作用是设置输入输出宽度,且只对当前一次有效。

     13. 有如下程序:

      #include<iostream>

      #include<iomanip>

      using namespace std;

      int main(){

      int s[]:{123,234};

      cout<<right<<setfill(ˊ*ˊ)<<setw(6);

      for(int i=0;i<2;i++){cout<<s[i]<<end1;}

      return 0;

      } 运行时的输出结果是(

     )。

     A.123 234

     B.***123 234

     C.***123 234

     D.***123 234***正确答案:B 解析:在输出语句中定义了输出的格式是字为 符宽度为 6 ,并且向右对齐,不足的位用‘*’ 补齐。在 C++中,输出格式的设置只对第一次输出有效。在完成了一个为 数据的输出后,宽度设置自动恢复为 0( 表示按数据实际宽度输出) 。所以对于本题来说,在循环语句中输出数组 s[0]中的元素时,按照规定的格式输出,其结果为***123 ,当出 输出 s[1] 时,输出格式已经恢复到按数据实际宽度输出,为 所以此时输出为 234。

     。

      14. 有如下程序:

      #include<iostream>

      #include<iomanip>

      using namespace std;

      int main(){

      cout<<setw(10)<<setfill(ˊxˊ)<<setprecision(8)<<left;

      cout<<12.3456793<<__________<<98765;

      return 0;

      } 若程序的输出是 12.345679x98765xxxxx,则划线处缺失的部分是(

     )。

     A.setw(10) B.setfill(ˊxˊ) C.setprecision(8)D.fight

     正确答案:A 解析:根据程序输出的结果最后 5 个位置用x 进行填充,又因为 setw(10) 设置输出的宽度效果只对一次写 输出有效。所以划线处应该填写 setw(10)。

     。

      15. 有如下程序:

      #include<iomanip>

      #include<iostream>

      using namespace std;

      int main(){

      cout<<setfill(ˊ*ˊ)<<setw(6)<<123<<456;

      return 0:

      }

      运行时的输出结果是(

     )。

     A.***123***456B.***123456***C.***123456 D.123456 正确答案:C 解析:在主函数中第一次输出时调用函数setfill("*") 设置填充字符为‘*’ ,调用函数 setw(6) 设置每次输为 出的宽度为 6 ,所以第一次输出 123 时,多余的三个空位用 用‘*’ 填充,即结果为***123 ,第二次从输出流中输出456。

     。

      16. 有如下程序:

     #include<iostream> #include<iomanip> using namespace std; int main(){ cout<<setfill(ˊ#ˊ)<<setw(4)<< "OK"<<123<<end1; return 0; }

     运行这个程序的输出结果是(

     )。

     A.##OK123 B.##OK#123C.OK##123 D.OK##123#正确答案:A 解析:setfill 是设置填充字符,setw 设置输出的宽度,它们的作用表现在紧接着输出的字符串上。这个宽度是填充后的宽度。所以cout<<setfill("#")<<setw(4)<<”OK”<<123 中,setfill 和 和 setw只作用在"OK" ,表示在"OK" 前面填充 2 个##。

     。

      17. 语句 ofstream f("SALARY.DAT",ios_base::app);的功能是建立流对象 f,并试图打开文件SALARYDAT 与 f 关联,而且(

     )。

     A.若文件存在,将其置为空文件;若文件不存在,打开失败

     B.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 C.若文件存在,将文件指针定位于文件首;若文件不存在,打开失败 D.若文件存在,打开失败;若文件不存在,建立一个新文件 正确答案:B 解析:此题考查的是文件打开模式。文件打式 开模式 iso base ::app 是为添加数据而打开( 总是在尾部写 写) ,故只有选项 B 说法正确。

      18. 要利用 c++流进行文件操作,必须在程序中包含的头文件是(

     )。

     A.iostream B.fstream C.strstream D.iomanip 正确答案:B 解析:要使用文件流对象进行针对磁盘文件的 的 I /O 操作,必须包含 fstrem .头文件。

      19. 要建立文件流并打开当前目录下的文件 file.dat 用于输入,下列语句中错误的是(

     )。

     A.ifstream fin=ifstream.open("file.dat"); B.ifstream*fin=new ifstream("file.dat"); C.ifstream fin;fin.open("file.dat"); D.ifstream*fin=new ifstream();fin->open("file.dat"); 正确答案:A 解析:在选项 A 中,在赋值号的左侧表示建象 立一个输入流对象 fin ,而在赋值号的右侧的表达式不正类 确,因为文件输入流类 ifStream 不能直接调用其成员函数open。

     。

      20. 在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是(

     )。

     A.ios_base::cur B.ios_base::beg C.ios_base::out D.ios_base::end.正确答案:A 解析:C++ 流的定位方式( 也就是指针移动方式 式) 有三种,被定义为 ios_base ::seek_dir 中的一组枚举符号:

     ios_base ::beg 相当于文件首; ios_base ::cur 。相当于当前位置( 负数表示当前位置之前 前) ;

     ios_base ::end 相对于文件尾。

     21. 下列关于文件流的描述中,正确的是(

     )。

     A.文件流只能完成针对磁盘文件的输入和输出 B.建立一个文件流对象时,必须同时打开一个文件 C.若输入流要打开的文件不存在,将建立一个新文件 D.若输出流要打开的文件不存在,将建立一个新文件 正确答案:D 解析:对于输入文件流类 ifstream ,默认的是 打开模式是 ios_base ::in ,当以这种方式打开文件而文过 件又不存在时,通过 fail() 可测试打开失败( 返回值为true) ,对于输出文件流类 ofstream ,默认的打开模式是ios_base ::out ,当以这种方式打开文件而文件又不存在时,将自动建立新文件。

      22. 如需要向一个二进制文件尾部添加数据,则该文件的打开方式为(

     )。

     A.ios_base::app B.ios_base::binary|ios_base::outC.ios_base::out D.ios_base::binary|ios_base::app正确答案:D 解析:ios_base ::binary 模式是作为二进制文件打开,ios base ::app 模式是作为添加数据而打开(总 总是在尾部写)。

     。

    推荐访问:国家二级C%2b%2b机试(C%2b%2b流)模拟试卷4 模拟试卷 国家二级 完整

    Top