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

下载本文档

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

文档简介

2025年9月GESP编程能力认证C++等级考试一级真题(含答案)和解析)2025年9月GESP编程能力认证C++等级考试一级试卷满分100分,考试时长90分钟,考试题型包含单项选择题、判断题、编程题三类,合格线为60分,具体真题、答案及解析如下:一、单项选择题(共15题,每题2分,满分30分)1.下列选项中,属于C++语言源文件标准后缀的是()A..cppB..cC..pyD..exe答案:A解析:C++源文件的标准后缀为.cpp,本题各选项对应含义如下:B选项.c是C语言源文件的标准后缀;C选项.py是Python语言源文件的标准后缀;D选项.exe是Windows平台下编译链接生成的可执行程序后缀,不属于源文件范畴。2.C++程序的执行入口是()A.main函数B.代码中第一个定义的函数C.头文件第一行代码D.第一个cout输出语句答案:A解析:C++程序的语法规则明确要求,所有可执行的C++程序必须有且仅有一个main函数,程序启动后会从main函数的第一条语句开始执行,其余函数都需要通过直接或间接被main函数调用才能执行。3.下列选项中,属于合法的char类型字面量的是()A.'ab'B."a"C.'9'D.97答案:C解析:char类型字面量要求用单引号包裹单个字符,本题各选项错误点如下:A选项单引号内包含2个字符,不符合char类型存储规则;B选项用双引号包裹,属于字符串字面量;D选项是int类型的整数,对应字符'a'的ASCII码,但本身不属于char类型字面量。4.下列选项中,属于合法的C++变量名的是()A.123aB.a_123C.intD.a-b答案:B解析:C++变量名命名规则为:只能由字母、数字、下划线三类字符组成,首字符不能为数字,不能与C++关键字重名,不能包含特殊运算符。本题各选项错误点如下:A选项首字符为数字,不符合规则;C选项int是C++定义整型的关键字,不能作为变量名;D选项包含减号运算符,不符合命名规则。5.表达式3+5*2%3的运算结果是()A.4B.5C.6D.7答案:A解析:C++算术运算符优先级从高到低为:乘(*)、除(/)、取模(%)>加(+)、减(-),同级运算符从左到右依次运算。本题运算顺序为:先算5*2=10,再算10%3=1,最后算3+1=4。6.下列代码中,可以正确输出"Hello,World!"并自动换行的是()A.cout<<"Hello,World!";B.cout<<"Hello,World!"<<endl;C.cout<<'Hello,World!';D.cout<<Hello,World!;答案:B解析:本题各选项错误点如下:A选项没有添加endl或'\n',无法实现自动换行;C选项字符串字面量用单引号包裹,语法错误;D选项字符串没有用双引号包裹,语法错误。7.下列if语句的语法格式正确的是()A.if(a>b)cout<<a;B.ifa>bcout<<a;C.if(a>b)thencout<<a;D.if(a>b){cout<<a}答案:A解析:C++的if语句要求判断条件必须放在小括号内,不需要添加then关键字,语句末尾必须加分号。本题各选项错误点如下:B选项判断条件没有用小括号包裹;C选项添加了不属于C++语法的then关键字;D选项cout语句末尾缺少分号,语法错误。8.循环语句for(inti=1;i<=5;i+=2)的执行次数是()A.2B.3C.4D.5答案:B解析:for循环的执行逻辑为:先执行初始化语句inti=1,再判断循环条件i<=5,成立则执行循环体,之后执行i+=2,再次判断循环条件。本题i的取值依次为1、3、5,共满足3次循环条件,因此循环执行3次。9.下列选项中,用于判断整数a不等于整数b的语法正确的是()A.a<>bB.a!=bC.a==bD.a=!b答案:B解析:C++中不等关系运算符为!=,本题各选项错误点如下:A选项<>是部分其他编程语言的不等运算符,不属于C++语法;C选项==是等于判断运算符;D选项是将b取反后赋值给a,属于赋值语句,不是不等判断。10.若定义inta=7,b=2;则执行cout<<a/b;的输出结果是()A.3B.3.5C.4D.编译报错答案:A解析:两个int类型变量执行除法运算时,会自动执行整数除法,截断小数部分只保留整数部分,7/2的整数结果为3,因此输出3。11.下列代码中,可以正确输出一个双引号字符的是()A.cout<<""";B.cout<<"\"";C.cout<<"'";D.cout<<"\n";答案:B解析:C++中转义字符\"代表双引号字面量,本题各选项错误点如下:A选项三个连续双引号会被编译器识别为语法错误;C选项输出的是单引号字符;D选项输出的是换行符。12.若定义inta=3;执行语句a*=2+3;后,a的值为()A.9B.15C.11D.6答案:B解析:复合赋值运算符的运算优先级低于算术运算符,因此会先计算右侧表达式2+3=5,再执行a*=5即a=a*5,计算得3*5=15。答案:BA.switch语句中必须有default分支B.case后面可以跟变量C.每个case分支末尾如果不加break,会向下穿透执行后续分支的代码D.switch的判断条件可以是string类型答案:C解析:本题各选项错误点如下:A选项default分支是可选分支,不是必须添加;B选项case后面必须跟常量表达式,不能跟变量;D选项GESP一级考点范围内,switch的判断条件只能是整型、char型等基础整型类型,不能是string字符串类型。15.执行如下代码段,循环的执行次数为()intk=0;while(k<10){if(k%2==0)continue;k++;}A.10B.5C.无限次D.0答案:C解析:continue语句的作用是跳过本次循环剩余的语句,直接进入下一次循环条件判断。本题中k初始值为0,满足k<10的循环条件,k%2==0成立,执行continue后跳过k++语句,k的值永远为0,循环条件永远成立,属于死循环,会无限次执行。二、判断题(共10题,每题2分,满分20分)1.C++程序中一行只能写一条语句。()答案:×解析:C++用分号作为语句的结束标识,一行可以写多条语句,单条语句也可以拆分到多行书写,只要分号位置正确即可正常编译运行。2.int类型变量可以直接存储小数。()答案:×解析:int是整数类型,只能存储整数,若将小数赋值给int类型变量,会自动截断小数部分只保留整数部分,存储小数需要使用float、double等浮点类型。3.表达式10%3的运算结果是1。()答案:√解析:%是取模运算符,用于计算两个整数相除的余数,10除以3商3余1,因此结果为1。4.执行cout<<1/2;会输出0.5。()答案:×解析:1和2都是int类型,整数除法会截断小数部分,1/2的结果为0,因此输出0。5.if-else语句中,else必须和最近的未匹配的if配对。()答案:√解析:C++的else就近配对规则可以避免悬空else问题,保证代码逻辑的确定性。6.for循环的三个表达式都可以省略。()答案:√解析:for(;;)是合法的C++语句,等价于死循环,三个表达式可以根据需求单独或全部省略。7.char类型变量本质上存储的是对应字符的ASCII码整数,因此可以参与算术运算。()答案:√解析:char类型占1字节存储空间,存储的是字符对应的ASCII码整数值,因此可以直接和整数进行算术运算。答案:×解析:break语句除了可以跳出循环外,还可以用在switch语句中,用于跳出当前switch分支,避免分支穿透。10.局部变量定义时可以不赋初始值,直接使用不会影响程序结果。()答案:×解析:未初始化的局部变量的初始值是内存中的随机值,直接使用会导致程序结果不可预期,属于未定义行为,是C++编程中严禁出现的错误。三、编程题(共3题,满分50分)1.温度转换(15分)题目描述:小明在国外留学,当地使用华氏温度表示气温,他需要将华氏温度转换为摄氏温度,转换公式为C=5*(F-32)/9,其中C代表摄氏温度,F代表华氏温度。输入要求:一个整数F,表示华氏温度,保证输入合法,转换结果不会超出int类型范围。输出要求:一个整数,表示转换后的摄氏温度,直接取整数部分即可,不需要四舍五入。样例输入1:32样例输出1:0样例输入2:100样例输出2:37参考代码:```cppusingnamespacestd;intmain(){intF,C;cin>>F;C=5*(F-32)/9;cout<<C<<endl;return0;}```评分标准:正确读入输入得3分,转换公式逻辑正确得8分,输出格式符合要求得4分。常见错误说明:①将公式写为5/9*(F-32),int整数除法中5/9结果为0,导致输出永远为0,扣8分;②变量类型定义错误,用char存储温度值导致溢出,扣5分;③输出额外添加单位、空格等内容,扣2分。解析:本题核心考点为整数运算的顺序规则,必须先计算F-32再乘5最后除以9,才能保证计算结果符合题目要求的取整规则,若先计算5/9会因为整数除法的特性得到错误结果。2.正数判断(15分)题目描述:输入三个整数,判断三个整数是否全部为正数,若是输出大写的"YES",否则输出大写的"NO",注意0不属于正数。输入要求:三个整数a、b、c,用空格分隔,每个数的范围为-1e9到1e9。输出要求:一行字符串,仅包含YES或NO,无其他内容。样例输入1:123样例输出1:YES样例输入2:-153样例输出2:NO样例输入3:024样例输出3:NO参考代码:```cppusingnamespacestd;intmain(){inta,b,c;cin>>a>>b>>c;if(a>0&&b>0&&c>0){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}return0;}```评分标准:正确读入三个变量得3分,判断逻辑正确得8分,输出符合要求得4分。3.累加求和(20分)题目描述:输入一个正整数n,计算1到n之间所有能被3整除或者能被5整除的数的和。输入要求:一个正整数n,1<=n<=1000。输出要求:一个整数,表示求和结果。样例输入1:10样例输出1:33(符合条件的数为3、5、6、9、10,和为33)样例输入2:1样例输出2:0样例输入3:15样例输出3:60(符合条件的数为3、5、6、9、10、12、15,和为60)参考代码(循环实现,符合一级考点要求):```cppusingnamespacestd;intmain(){intn,

温馨提示

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

评论

0/150

提交评论