2024年3月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)_第1页
2024年3月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)_第2页
2024年3月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)_第3页
2024年3月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)_第4页
2024年3月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024年3月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.题C++表达式(3-2)*3+5的值是()。A.-13B.8C.2D.02.题C++语句cout<<"5%2="<<5%2执行后的输出是()。A.22B.11C.5%2=2D.5%2=13.执行C++语句cin>>a时如果输入5+2,下述说法正确的是()。A.变量a将被赋值为整数7。B.变量a将被赋值为字符串,字符串内容为5+2。C.语句执行将报错,不能输入表达式。D.依赖于变量a的类型。如果没有定义,会有编译错误。4.下面C++代码执行后的输出是()。inta=1;cout<<"a+1="<<a+1<<endl;A.a+1=2B.a+1=2C.2=2D.2=25.下面C++代码执行后的输出是()。inta=1;printf("a+1=%d\n",a+1);A.a+1=2B.a+1=2C.2=2D.2=26.下面C++代码执行时输入21后,有关描述正确的是()。intN;cin>>N;if(N%3==0)cout<<"能被3整除";elseif(N%7==0)cout<<"能被7整除";elsecout<<"不能被3和7整除";cout<<endl;A.代码第4行被执行。B.第4和第7行代码都被执行。C.仅有代码第7行被执行。D.第8行代码将被执行,因为input()输入为字符串。7.下面C++代码第2行,总共被执行次数是()。for(inti=-10;i<10;i++)cout<<i<<"";A.10B.19C.20D.218.下面C++代码执行后的输出是()。inttnt=0;for(inti=0;i<10;i++)if(i%3&&i%7)tnt+=i;cout<<tnt<<endl;A.0B.7C.18D.209.下面C++代码执行后的输出是()。intN=10;while(N){N-=1;if(N%3==0)cout<<N<<"#";}A.9#6#3#B.9#6#3#0#C.8#7#5#4#2#1#D.10#8#7#5#4#2#1#10.下面C++代码用于判断键盘输入的整数是否为质数。质数是只能被1和它本身整除的数。在横线处应填入代码是()。intN;cin>>N;intcnt=0;//记录N被整除的次数。for(inti=1;i<N+1;i++)if(________________)cnt+=1;if(cnt==2)cout<<N<<"是质数";elsecout<<N<<"不是质数";A.N%iB.N%i==0C.N/i==0D.N/i11.下面关于整型变量intx的赋值语句不正确是()。A.x=(3.16);B.x=3.16;C.x=int(3.16);D.x=3.16int;12.题C++语言中下面可以完成数据输入的语句是()。A.printf语句B.scanf语句C.default语句D.cout语句13.在DevC++中对一个写好的C++源文件要生成一个可执行程序需要执行下面哪个处理步骤?()。A.创建B.编辑C.编译D.调试14.小杨的父母最近刚刚给他买了一块华wei手表,他说手表上跑的是鸿meng,这个鸿meng是?()。A.小程序B.计时器C.操作系统D.神话人物15.中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是()。A.制造自动驾驶汽车B.创立培训学校C.发明汉字激光照排系统D.成立方正公司二、判断题(每题2分,共20分)。16.在C++代码中变量n被赋值为27,则cout<<n%10执行后输出的是7。()。A.正确B.错误17.题C++语句printf("%d#%d&",2,3)执行后输出的是2#3&。()。A.正确B.错误18.题C++函数scanf()必须含有参数,且其参数为字符串型字面量,其功能是提示输入。()。A.正确B.错误19.题C++表达式"10"*2执行时将报错,因为"10"是字符串类型而2是整数类型,它们数据类型不同,不能在一起运算。()。A.正确B.错误20.在C++中,while可能是死循环,而for循环不可能是死循环。()。A.正确B.错误21.在C++中,break语句用于提前终止当前层次循环,适用于while循环,但不适用于for循环。()。A.正确B.错误22.题C++语言中3.0和3的值相等,所以它们占用的存储空间也相同。()。A.正确B.错误23.在C++的程序中,cin是一个合法的变量名。()。A.正确B.错误24.小杨今年春节回奶奶家了,奶奶家的数字电视可以通过遥控器输入电视剧名称来找到想播放的电视剧,所以可以推知里面有交互式程序在运行。()。A.正确B.错误25.任何一个for循环都可以转化为等价的while循环()。A.正确B.错误三、编程题(每题25分,共50分)。26.小杨买书。题面描述:小杨同学积攒了一部分零用钱想要用来购买书籍,已知一本书的单价是13元,请根据小杨零用钱的金额,编写程序计算最多可以购买多少本书,还剩多少零用钱。输入格式:输入一个正整数,表示小杨拥有的零用钱数。输入格式:输出包含两行,第一行,购买图书的本书,第二行剩余的零用钱数。对于全部数据,保证有0<m<200。27.找因数。问题描述:小A最近刚刚学习了因数的概念,具体来说,如果一个正整数a可以被另一个正整数b整除,那么我们就说b是a的因数。请你帮忙写一个程序,从小到大输出正整数的所有因数。输入描述:输入一行一个正整数a。保证a<=1000。输出描述:输出若干行,为a的所有约数,从小到大排列。特别提醒:在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。答案解析如下。1.答案:B。解析:首先计算括号内的表达式3-2得到1,然后乘以3得到3,最后加上5,得到结果8。2.答案:D。解析:5%2计算得到1,因此输出的字符串是5%2=1。3.答案:D。解析:如果变量a是字符串类型,那么输入"5+2"将会被直接赋给变量a,此时变量a中的内容将是字符串"5+2"。如果变量a在代码中没有定义过,那么会导致编译错误,因为使用未定义的变量会引发编译器错误。因此,正确【答案】是取决于变量a的类型以及代码中是否定义了变量a。4.答案:A。解析:在这段代码中,<<左侧是一个字符串常量"a+1=",右侧是表达式a+1,即变量a加上数字1。根据C++的输出规则,如果字符串和变量之间没有空格,则它们会直接连接在一起。所以,输出应该是"a+1=2"。5.答案:B。解析:printf函数中,格式化字符串中的格式控制符%d用于表示将要插入的整数,而实际插入的整数为a+1,即2。因此,最终输出应该是"a+1=2",其中没有额外的空格。6.答案:A。解析:在输入为21时,21除以3的余数为0,因此条件N%3==0成立,执行第4行代码。由于满足了第一个条件,elseif和else语句块都不会执行,因此只有第4行代码被执行。7.答案:C。解析:循环的初始条件是inti=-10,结束条件是i<10。循环变量i从-10开始逐渐增加,直到等于10时退出循环。因此,循环总共执行了20次,每次循环都会执行第2行代码,所以第2行总共被执行的次数是20次。8.答案:D。解析:i%3表示变量i除以3的余数,如果i不能被3整除,即i%3的结果不为0,则条件为真。同样地,i%7表示变量i除以7的余数,如果i不能被7整除,即i%7的结果不为0,则条件也为真。因此,if(i%3&&i%7)表示当i既不能被3整除也不能被7整除时,整个条件为真。因此,满足条件的数字是1、2、4、5、8,它们的总和是1+2+4+5+8=20。9.答案:B。解析:开始时,N的初始值是10。在循环中,N每次减去1,然后检查新的N是否能被3整除。如果能被3整除,则输出N的值,后面跟着一个"#"符号,结果为9#6#3#0#。10.答案:B。解析:在横线处填入代码,以判断键盘输入的整数是否为质数,应该选择选项B.N%i==0。这是因为质数是只能被1和它本身整除的数。因此,我们需要判断键盘输入的整数N能否被i整除,即N%i==0。如果整除次数cnt等于2,说明N能被1和它本身整除,即为质数。11.答案:D。解析:在C++中,整型变量赋值语句应该是合法的整数值。选项A中,(3.16)被解释为一个表达式,赋值结果是3,因为类型转换会丢弃小数部分。选项B中,3.16是一个浮点数值,但可以隐式转换为整数类型,因为x是一个整型变量,所以这个赋值是合法的。选项C使用了显式的类型转换,将3.16转换为整数类型。而选项D中的int应该出现在变量名之前而不是赋值操作符之后,因此是错误的。12.答案:B。解析:scanf语句用于从标准输入流(通常是键盘)读取数据。13.答案:C。解析:在DevC++中,要生成一个可执行程序,需要进行编译。编译过程将源代码转换为机器可执行的目标代码。其他选项的含义如下。A项创建:创建新的源文件或项目。B.编辑:编辑源文件,修改其中的内容。D.调试:对程序进行调试,发现和修复其中的错误。14.答案:C。解析:鸿蒙(HarmonyOS)是华为推出的分布式操作系统。它被设计用于多种设备,包括智能手机、智能手表、智能电视、智能家居设备等。因此,在小杨父母给他买的华为手表上跑的是鸿蒙操作系统。15.答案:C。解析:王选先生的重大贡献是发明了汉字激光照排系统,这一技术在印刷、出版领域产生了巨大影响,为中国的印刷业现代化做出了重要贡献。16.答案:正确。解析:C++中取余运算符%返回除法的余数。因此,27除以10的余数为7,因此输出为7。17.答案:正确。解析:在C++中,printf函数是用于格式化输出的,%d用于指定输出整数,#和&是普通字符,会直接输出。因此,printf("%d#%d&",2,3)将输出2#3&。18.答案:错误。解析:在C++中,scanf()函数并不一定需要含有参数。scanf()函数的参数是可选的,可以根据需要选择是否传递参数。此外,scanf()函数的参数通常是格式控制字符串,指定要读取的输入类型和格式,而不是用于提示输入的字符串。因此,该函数的功能是读取输入,而不是提供提示。19.答案:正确。解析:在C++中,字符串和整数之间的乘法运算是非法的。因此,表达式"10"*2将导致编译错误,因为无法对字符串类型和整数类型进行乘法运算。20.答案:错误。解析:在C++中,无论是while循环还是for循环都有可能成为死循环,这取决于循环条件的设置以及循环体内部的逻辑。死循环的出现通常是由于循环条件设置不当或循环体内部的逻辑错误导致的,而不是循环类型本身决定的。因此,while循环和for循环都有可能成为死循环。21.答案:错误。解析:在C++中,break语句用于提前终止当前层次的循环,不论是while循环还是for循环都可以使用break语句。break语句的作用是在循环体内部遇到某个条件时立即终止循环的执行,而不管是哪种类型的循环。因此,break语句既适用于while循环,也适用于for循环。22.答案:错误。解析:在C++中,3.0和3在值上是相等的,但它们的数据类型不同。3是整数类型,而3.0是浮点数类型。整数和浮点数在内存中占用的存储空间通常是不同的,因为它们的表示方式和精度要求不同。23.答案:正确。解析:在C++中,cin是C++标准库中预定义的输入流对象,用于从标准输入设备(通常是键盘)读取数据。但在不同的作用域内可以作为有效地标识符,因此,cin能作为变量名在程序中定义。24.答案:正确。解析:用户可以通过遥控器与数字电视进行交互。25.答案:正确。解析:任何一个for循环都可以转化为等价的while循环,反之亦然。这是因为for循环和while循环都属于基本循环结构,可以实现相同的功能,只是语法不同。26.参考程序。#include<iostream>usi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论