文库 真题 信息学奥赛

2023年信息学奥赛CSP-J普及组初赛C++真题

csp-j真题 信息学奥赛C++试题 DOCX   17页   下载6   2024-02-22   浏览467   收藏0   点赞0   评分-   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
2023年信息学奥赛CSP-J普及组初赛C++真题 第1页
2023年信息学奥赛CSP-J普及组初赛C++真题 第2页
剩余15页未读, 下载浏览全部
2023 CCF非专业级别软件能力认证第一轮 (CSP-J1) 入门级 C++语言试题 认证时间:2023年9月16日09:30~11:30 一、单项选择题(每题2分,共计30分) 1.   在 C++ 中,下面哪个关键字用于声明一个变量,其值不能被修改?( )。 A.  unsigned  B.  const  C.  static  D.  mutable 【答案】B 【解析】 const 对象一旦被创建就不能修改其值,所以 const 对象必须进行初始化。 2.   八进制数 12345670(8) 和 07654321(8) 的和为( )。 A.  22222221(8) B.  21111111(8) C.  22111111(8) D.  22222211(8) 【答案】D 【解析】 直接按照八进制进行计算,即逢八进一。 3.   阅读下述代码,请问修改 data 的 value 成员以存储 3.14 ,正确的方式是( )。 union Data{ int num; float value; char symbol; }; union Data data ; A. data.value = 3.14; B. value.data = 3.14; C. data->value = 3.14; D. value->data = 3.14; 【答案】A 【解析】 union 即为联合,它是一种特殊的类。访问其成员变量和结构体类似,使用成员运算符 . 进行访问,即:联合类型变量名 . 成员变量名。 4.   假设有一个链表的节点定义如下: struct Node { int data; Node* next; }; 现在有一个指向链表头部的指针: Node* head 。如果想要在链表中插入一个新节点,其成员 data 的值为 42 ,并使新节点成为链表的第一个节点,下面哪个操作是正确的?( ) A.  Node* newNode = new Node; newNode ->data = 42; newNode ->next = head; head = newNode ; B.  Node* newNode = new Node; head->data = 42; newNode ->next = head; head = newNode ; C.  Node* newNode = new Node; newNode ->data = 42; head->next = newNode ; D.  Node* newNode = new Node; newNode ->data = 42; newNode ->next = head; 【答案】A 【解析】 因为 newNode 要成为第一个结点,所以 newNode 指向下一个的结点就是头结点,然后把 newNode 赋值给 head ,保证这一点即可。 5.   根节点的高度为 1 ,一根拥有 2023 个节点的三叉树高度至少为( )。 A.  6 B.  7 C.  8 D.  9 【答案】C 【解析】 问高度至少是多少,所以每层都要尽可能满,所以找第一个 的 i ,即为答案。 6.  小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息,则小明一共有( )种选择时间段的方案。 A.  31 B.  18 C.  21 D.  33 【答案】B 【解析】 至少选择一个空闲时间段,且无法选择超过 3 个以上的空闲时间段,所以可以分为三类: ①选择一个空闲时间段,那么有 7 种方案;②选择两个空闲时间段,那么有 4+3+2+1=10 种方案;③选择三个空闲时间段,那么有 1 种方案;因此,一共有 7+10+1=18 种方案。 7.   以下关于高精度运算的说法错误的是( )。 A.   高精度计算主要是用来处理大整数或需要保留多位小数的运算。 B.   大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。 C.   高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。 D.   高精度加法运算的关键在于逐位相加并处理进位。 【答案】C 【解析】 高精 * 高精的运算时间与参与运算的两个大整数的长度乘积有关。 8.  后缀表达式 “6 2 3 + - 3 8 2 / + * 2 ^ 3 +” 对应的中缀表达式是( ) A.  ((6 - (2 + 3)) * (3 + 8 / 2)) ^ 2 + 3 B.  6 - 2 + 3 * 3 + 8 / 2 ^ 2 + 3 C.  (6 - (2 + 3)) * ((3 + 8 / 2) ^ 2) + 3 D.  6 - ((2 + 3) * (3 + 8 / 2)) ^ 2 + 3 【答案】A 【解析】 中缀表达式转后缀表达式的方法: ①将所有运算按照优先级加上小括号;②将所有运算符移到对应小括号的后面;③去掉小括号;可以按照上述方法,从选项进行推导容易得到答案为 A 。 9.   数 101010(2) 和 166(8) 的和为( )。 A.  10110000(2) B.  236(8) C.  158(10) D.  A0(16) 【答案】D 【解析】 (101010) 2  + (166) 8  = (42) 10 + (118) 10  = (160) 10 , (160) 10 =(10100000) 2 =(240) 8 =(A0) 16 。 10.   假设有一组字符 { a,b,c,d,e,f } ,对应的频率分别为 5% , 9% , 12% , 13% , 16% , 45% 。请问以下哪个选项是字符 a,b,c,d,e,f 分别对应的一组哈夫曼编码?( ) A.  1111 , 1110 , 101 , 100 , 110 , 0 B.  1010 , 1001 , 1000 , 011 , 010 , 00 C.  000 , 001 , 010 , 011 , 10 , 11 D.  1010 , 1011 , 110 , 111 , 00 , 01 【答案】A 【解析】 按照哈夫曼编码规则可以画出哈夫曼树,每个结点的哈夫曼编码如下图所示: 11.   给定一棵二叉树,其前序遍历结果为: ABDECFG ,中序遍历结果为: DEBACFG 。请问这棵树的正确后序遍历结果是什么?( ) A.  EDBGFCA B.  EDGBFCA C.  DEBGFCA D.  DBEGFCA 【答案】A 【解析】 可以根据前序
2023年信息学奥赛CSP-J普及组初赛C++真题
下载提示

下载及版权说明:6547网文库内容来自网络及各平台公开内容(属于用户上传,不保证正确性,只做参考),旨在帮助同学们学习少儿编程相关知识及内容,仅限内部学习及使用,以分享为主,下载本文档之后请合法使用相关、真题、素材、课件、教程等内容,若内容存在侵权,请进行 举报 及查看 免责声明