- 补全CSP03周六0830/1400班学生课评汇总与profile档案 - 新增AI03周六1900、周日0845/1400、CSP03周日1030、K4周日1900班级结构 - 更新K4周五1900班课评汇总 - 优化课评生成技能规则 - 更新.gitignore与教学输出文档
2.5 KiB
2.5 KiB
CSP03班 第8课 课前默写(10分钟)
一、填空题(每空 4 分,共 32 分)
-
声明一个
string变量s并初始化为"hello"的语句是:string s = _______________ ; -
获取字符串
s长度的函数是s._______()。 -
读取一整行字符串(包含空格)应该使用函数:
_______________(cin, s); -
cin >> s读取字符串时,遇到 _______ 就会停止读取。 -
在字符串
s中查找子串"abc",应该调用:s._______________("abc") -
如果
find()函数没有找到目标子串,返回值是 _______ 。 -
字符串
"abcdef"中,字符'c'的下标是 _______ 。 -
从字符串
s的下标2开始截取3个字符,应写成:s._______________(2, 3)
二、判断题(每题 4 分,共 16 分)
正确的打 √,错误的打 ×。
-
( )
string s = "abc"; s += "def";执行后,s的值是"abcdef"。 -
( )
string::npos的值等于-1。 -
( )两个
string可以直接用==比较是否相等。 -
( )
getline(cin, s)可以读取包含空格的整行字符串,直到遇到回车。
三、代码填空(每空 4 分,共 24 分)
下面程序的功能是:输入一行字符串,统计其中大写字母的数量。请补全代码。
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
_______________(cin, s); // ① 读入一整行
int cnt = 0;
for (int i = 0; i < s.___________(); i++) { // ② 遍历字符串
if (_______(s[i])) { // ③ 判断是否为大写字母
cnt++;
}
}
cout << cnt << endl;
return 0;
}
四、代码阅读(共 10 分)
阅读以下程序,写出输出结果:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "hello world";
cout << s.find("world") << endl; // 输出①:________
if (s.find("xyz") == string::npos) {
cout << "YES" << endl; // 输出②:________
} else {
cout << "NO" << endl;
}
return 0;
}
五、简答题(共 30 分)
-
简述
cin >> s和getline(cin, s)在读取字符串时的主要区别。(30分)答:
穹狼科创 · CSP03班 · 2026春季