GESP编程等级认证C++三级9-字符串2

5 字符串的输入

5.1 cin输入字符串

可以通过cin输入字符串,代码如图8所示。

图8 cin输入字符串的代码

程序运行,当输入“hello”,点击回车后,会输出“hello”,说明此时s1的值是“hello”。但是,cin遇到空格就是停止输入,当输入“hello world”,点击回车后,输出的还是“hello”。

5.2 getline输入字符串

当输入的字符串中包含空格时,可以使用getline()函数进行输入,此时会把输入的所有内容赋值给变量,代码如图9所示。

图9 getline输入字符串的代码

在第10代码中,getline()函数将控制台cin中输入的字符串赋值给s1。运行程序,输入“hello world”,点击回车后,输出是“hello world”。

注意1 在使用getline()函数时,需要包含string头文件。

6 真题解析

6.1 2024年12月选择题

本题的答案是“A”。在“2.2 字符串下标“越界”情况”中提到,字符串最后一位的隐藏字符是’\0’。代码中的ch[5]正是字符串ch的最后一位隐藏字符,但是在C++中,’\0’也可以看做是NULL,因此,第2行if语句的条件是true,执行第4行代码输出“right”。而后面的语句是else if和else,因为第2行的语句已经是true了,因此后面的语句不会再执行。

6.2 2024年12月判断题

本题的答案是“错误”。ch[4]表示ch的最后一位隐藏字符,此时程序能够正确执行,但是没有输出。

6.3 2024年6月选择题

本题正确答案是“C”。第9行代码通过for循环对字符串s中的字符进行遍历。也就是把s中的字符进行累加,x的值等于’0’、’6’、’2’和’9’这四个字符对应ASCII编码值的累加。因为’0’的ASCII编码值是48,依次可以得到’6’的ASCII编码值是54,’2’的ASCII编码值是50,’9’的ASCII编码值是57,这四个数加在一起的值是209。

<think>好的,我需要帮助用户找到关于GESP编程C++的示例题目和解析。首先,用户提到的引用[1]是关于三级试题的解析,可能包含一些C++语法的例子,比如字符串的初始化方式。虽然用户需要的是一的题目,但可能结构或题型有相似之处。 首先,我需要回忆GESP考试的大纲。一通常考察基础语法,如变量声明、输入输出、条件语句和循环结构。可能涉及简单的算法,比如计算平均数或求和。 接下来,我应该整理示例题目。例如,输入输出题、变量计算题、条件判断和循环题。每个题目需要附上解析和代码示例,确保符合C++语法规范。代码部分需要用正确的格式,并添加注释说明关键点。 然后,生成相关问题,帮助用户进一步准备考试。比如如何调试C++程序、常见错误有哪些、如何提升编程能力等。需要确保问题相关且有帮助。 同时,注意引用用户提供的资料。虽然引用[1]是三级题目,但其中的字符串初始化例子可以在一中作为参考,说明不同的初始化方式,这可能在一考试中出现类似的选择题。 最后,检查回答是否符合要求:使用正确的中文,数学表达式格式正确,结构清晰,引用正确。确保没有使用Markdown,代码块用适当的格式呈现,并自然融入引用标识。</think>关于GESP编程题一C++的示例及解析,以下是典型题型和知识点整理: ### 一、基础语法题示例 **题目1**:计算两个整数的和 ```cpp #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << endl; // 注意输出格式要求 return 0; } ``` **解析**:考察基本输入输出和变量运算,注意数据类型匹配问题[^1]。 ### 二、条件判断题示例 **题目2**:判断数字奇偶性 ```cpp int num; cin >> num; if (num % 2 == 0) { cout << "even"; } else { cout << "odd"; } ``` **解析**:注意取模运算符%的优先,以及边界值测试(如输入0的情况)。 ### 三、循环结构题示例 **题目3**:计算1到n的累加和 ```cpp int n, sum = 0; cin >> n; for(int i=1; i<=n; ++i) { sum += i; } cout << sum; ``` **解析**:注意循环变量的初始化和终止条件,避免差一错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值