GESP 12月认证C++三级真题
GESP 12月认证C++三级真题
- 场次:2023年12月
- 满分:100 分
- 题目来源:官方直发原件
1 单选题(每题 2 分,共 30 分)
下面 C++ 数组的定义中,会丢失数据的是
在下列编码中,不能够和二进制"1101 1101"相等的是()。
原文保真说明:来源改写 1 处(照原卷保留,未作修改)
来源题面被改写措辞改写选项 1
原卷作
(221)10进制,常规写法应为$(221)_{10}$ 进制洛谷有题把原卷「(221)10进制」改写成下标 $ (221)_{10} $ 进制;已按官方 PDF 第 1 页恢复四选项。
已按官方原件恢复:现为原卷原文
下面 C++ 代码执行后不能输出"GESP"的是()。
执行下面C++代码输出是()。
int temp=0;
for(int i=1;i<7;i++)
{
for(int j=1;j<5;j++)
{
if(i/j==2)
{
temp++;
}
}
}
cout<<temp<<endl;
执行下面 C++ 代码后,输出是()。
string str=("chen");
int x=str.length();
int temp=0;
for(int i=0;i<=x;i++)
{
temp++;
}
cout<<temp<<endl;
执行下面 C++ 代码后输出的是()。
string str=("chen");
int x=str.length();
cout<<x<<endl;
原文保真说明:来源改写 1 处(照原卷保留,未作修改)
来源题面被改写多余符号题干
原卷作
执行下面 C++ 代码后输出的是()。洛谷有题题干多了「第6题」前缀;已按官方 PDF 第 2 页去掉。
已按官方原件恢复:现为原卷原文
执行下面 C++ 代码后输出的是()。
string str=("chen");
cout<<str[5]<<endl;
下面 C++ 代码执行后的输出是()。
char ch[10]={'1'};
cout<<ch[2]<<endl;
下面 C++ 代码用于统计每种字符出现的次数,当输出为 3 时,横线上不能填入的代码是()。
string str="GESP is a good programming test!";
int x=0;
for(int i=0;i<str.length();i++)
{
if(_________)
{
x++;
}
}
cout<<x<<endl;
32 位计算机中,C++ 的整型变量 int 能够表示的数据范围是()。
下面 C++ 程序执行的结果是()。
int cnt=0;
for(int i=0;i<=20;i++)
{
if(i%3==0&&i%5==0)
{
cnt++;
}
}
cout<<cnt;
C++ 的数据类型转换让人很难琢磨透,下列代码输出的值是()。
int a=3;
int b=2;
cout<<a/b*1.0<<endl;
C++ 代码用于抽取字符串中的电话号码。约定:电话号码全部是数字,数字之间没有其他符号如连字符或空格等。代码中变量 strSrc 仅仅是示例,可以包含更多字符。下面有关代码说法,正确的说法是()。
string strSrc="红十字: 01084025890火警电话: 119急救电话: 120紧急求助: 110";
string tel="";
for(int i=0;i<=strSrc.length();i++)
{
if(strSrc[i]>='0'&&strSrc[i]<='9')
{
tel=tel+strSrc[i];
}
else if(tel!="")
{
cout<<tel<<endl;
tel="";
}
}
原文保真说明:来源改写 1 处(照原卷保留,未作修改)
来源题面被改写标点题干
原卷作
红十字: 01084025890火警电话: 119急救电话: 120紧急求助: 110,常规写法应为红十字:01084025890火警电话:119急救电话:120紧急求助:110洛谷有题把原卷嵌入截图里的 ASCII 冒号+空格改成全角冒号且去掉空格;已按官方 PDF 第 4 页代码截图恢复。
已按官方原件恢复:现为原卷原文
某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。()
现代计算机是指电子计算机,它所基于的是()体系结构。
2 判断题(每题 2 分,共 20 分)
判断题「√」表示正确,「×」表示错误
执行C++代码 cout<<(5&&2)<<endl; 后将输出 1。()
C++程序执行后,输入 chen a dai 输出应该为:chen。()
string str;
cin>>str;
cout<<str;
执行 C++ 代码 cout<<(5||2); 后将输出 1。()
执行下面 C++ 代码后将输出"China"。()
string a="china";
a.replace(0,1,"C");
cout<<a<<endl;
执行 C++ 代码将输出 0 5,5 之后还有一个空格。()
int list[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i++)
{
if(i%5==0)
{
cout<<list[i]<<" ";
}
}
下面 C++ 代码将输出 1。()
int list[10]={1};
cout<<list<<endl;
下面 C++ 程序将输出 1。()
int arr[10]={1};
cout<<arr[0]<<endl;
执行 C++ 代码,将输出 1 3 5 7 9,9 之后还有一个空格。()
int list[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i+=2)
{
cout<<list[i]<<" ";
}
小杨最近在准备考 GESP,他用的 Dev C++ 来练习和运行程序,所以 Dev C++ 也是一个小型操作系统。()
任何一个 while 循环都可以转化为等价的 for 循环()。
3 编程题(每题 25 分,共 50 分)
小猫分鱼
C++时间 1 s内存 512 MB标准输入输出
海滩上有一堆鱼,N 只小猫来分。第一只小猫把这堆鱼平均分为 N 份,多了 i<N 个,这只小猫把多的 i 个扔入海中,拿走了一份。第二只小猫接着把剩下的鱼平均分成 N 份,又多了 i 个,小猫同样把多的 i 个扔入海中,拿走了一份。第三、第四、……,第 N 只小猫仍是最终剩下的鱼分成 N 份,扔掉多了的 i 个,并拿走一份。
编写程序,输入小猫的数量 N 以及每次扔到海里的鱼的数量 i,输出海滩上最少的鱼数,使得每只小猫都可吃到鱼。
例如:两只小猫来分鱼 N=2,每次扔掉鱼的数量为 i=1,为了每只小猫都可吃到鱼,可令第二只小猫需要拿走 1 条鱼,则此时待分配的有 3 条鱼。第一只小猫待分配的鱼有 3×2+1=7 条。
输入格式
总共 2 行。第一行一个整数 N,第二行一个整数 i。
保证 0<N<10;i<N 。
输出格式
一行一个整数,表示满足要求的海滩上最少的鱼数。
样例
2 1
7
3 1
25
样例解释 2
三只小猫来分鱼 N=3,每次扔掉鱼的数量为 i=1,为了每只小猫都可吃到鱼,可令第三只小猫需要拿走 3 条鱼(拿走 1 条和 2 条不满足要求),则此时待分配的有 10 条鱼。第二只小猫待分配的鱼有 10×3/2+1=16 条。第一只小猫待分配的鱼有 16×3/2+1=25 条。
你的代码(C++)
提交后由评测机编译运行,结果见下方76 B / 64 KB
判题结果
单位转换
C++时间 1 s内存 512 MB标准输入输出
小杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题。
小杨只学了长度单位和重量单位,具体来说:
长度单位包括千米(
km)、米(m)、毫米(mm),它们之间的关系是:1km=1000m=1000000mm。重量单位包括千克(
kg)、克(g)、毫克(mg),它们之间的关系是:1kg=1000g=1000000mg。
小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克。
现在,请你帮忙完成单位转换的程序。
输入格式
输入的第一行为一个整数,表示题目数量。
接下来 N 行,每行一个字符串,表示转换单位的题目,格式为 x 单位 1=? 单位 2。其中,x 为一个不超过 1000 的非负整数, 单位 1 和 单位 2 分别为两个单位的英文缩写,保证它们都是长度单位或都是重量单位,且 单位 1 比 单位 2 更大。
例如,如果题目需要你将 1km 转换为 mm,则输入为 1 km = ? mm。
保证 1≤N≤1000。
输出格式
输出 N 行,依次输出所有题目的答案,输出时,只需要将输入中的 ? 代入答案,其余部分一字不差地输出即可。由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的 x 是整数,因此答案一定也是整数。
例如,如果题目需要你将 1km 转换为 mm,则输入为 1 km = ? mm。则你需要输出 1 km = 1000000 mm。
样例
2 1 km = ? mm 1 m = ? mm
1 km = 1000000 mm 1 m = 1000 mm
5 100 m = ? mm 1000 km = ? m 20 kg = ? g 200 g = ? mg 0 kg = ? mg
100 m = 100000 mm 1000 km = 1000000 m 20 kg = 20000 g 200 g = 200000 mg 0 kg = 0 mg
你的代码(C++)
提交后由评测机编译运行,结果见下方76 B / 64 KB