2024年12月GESPC++三级真题解析
一、单选题(每题2分,共30分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | D | A | A | D | B | C | A | A | D | D | C | D | C | A |
1.下列二进制表示的十进制数值分别是( )
[10000011]原=( )
[10000011]补=( )
A. -125,-3
B. -3, -125
C. -3,-3
D. -125,-125
【答案】B
【考纲知识点】原码和补码的计算及转换
【解析】
原码:最高位为符号位,0 表示正数,1 表示负数。其余位表示数值大小。
[10000011]原=-(26+21+20)
=-(64+2+1)
=-67
补码:正数的补码与原码相同,负数的补码是原码的数值位取反加 1。
[10000011]补=11111101
=-(27-1+22+20)
=-(128-1+4+1)
=-125
所以答案是 B 选项。
2.关于计算机中的编码,下列说法中错误的是()
A. 对于无符号数,原码就是真值
B. 正数的反码是其本身
C. 负数的反码和补码是不一样的
D. 负数的反码,在其原码的基础上, 各个位取反
【答案】D
【考纲知识点】计算机编码,原码、反码、补码的概念
【解析】
A 选项,对于无符号数,原码就是其真值,该说法正确。
B 选项,正数的原码、反码、补码都相同,所以正数的反码是其本身,该说法正确。
C 选项,负数的反码和补码是不一样的,该说法正确。
D 选项,负数的反码是在其原码的基础上,符号位不变,其余各个位取反。不是所有位取反,该说法错误。
综上所述,选择 D 选项。
3.16进制数B2025转换成8进制数是()
A. 2620045
B. 2004526
C. 729125
D. 2420045
【答案】A
【考纲知识点】不同进制之间的转换
【解析】
首先将十六进制数 B2025 转换为二进制:
B 对应的二进制是 1011,2 对应的二进制是 0010,0 对应的二进制是 0000,2 对应的二进制是 0010,5 对应的二进制是 0101 。
所以 B2025 转换为二进制是:10110010000000100101 。
然后从右往左每三位一组进行分组,不足三位的左边补 0 :
001 011 001 000 000 010 010 100
每组转换为八进制:
1 3 1 0 0 2 2 4
所以结果是 131000224 ,即 2620045 。
因此选择 A 选项。
4.625.625变成二进制是( )。
A. 1001110001.101
B. 101.101
C. 101.1001110001
D. 1001110001.1101
【答案】A
【考纲知识点】十进制数转换为二进制数
【解析】
整数部分:采用除 2 取余,逆序排列的方法。
625÷2=321·····1
321÷2=156·····0
156÷2=78·····0
78÷2=39·····0
39÷2=19·····1
19÷2=9·····1
9÷2=4·····1
4÷2=2·····0
从下往上取余数,得到整数部分的二进制为 1001110001 。
小数部分:采用乘 2 取整,顺序排列的方法。
0.625×2=1.25 取整1
0.25×2=0.5 取整0
0.5×2=1.0 取整1
小数部分的二进制为 0.101 。
所以 625.625 转换为二进制是 1001110001.101 。
答案选择 A 。
5.下面逻辑运算中,正确的是( )
A. 5&&3==0
B. 5|3==8
C. 5||3==11
D. 5&3==0001
【答案】D
【考纲知识点】逻辑运算与位运算
【解析】
A 选项,在 C++ 中,逻辑与(&&)运算,5 和 3 都非 0,所以 5 && 3 的结果为 1,不是 0,A 错误。
B 选项,按位或(|)运算,5 的二进制是 0101,3 的二进制是 0011,0101 | 0011 = 0111,即 7,不是 8,B 错误。
C 选项,逻辑或(||)运算,5 || 3 的结果为 1,不是 11,C 错误。
D 选项,按位与(&)运算,5 的二进制是 0101,3 的二进制是 0011,0101 & 0011 = 0001,D 正确。
综上所述,选择 D 选项。
6.补码1111 1101进行运算1111 1101>>1以后得到的结果是()
A. 1111 1100
B. -2
C. 1111 1101
D. 1111 1010
【答案】B
【考纲知识点】补码的移位运算
【解析】首先,补码 1111 1101 对应的原码是 1000 0011,其真值为 -3。
将补码 1111 1101 进行右移 1 位,得到 1111 1110。
1111 1110 对应的原码是 1000 0010,其真值为 -2。
所以选择 B 选项。
7.下列代码输出的是
string s="1234@@chenadai";
string str="12345";
s.replace(1,5,str);
cout<<s<<endl;
A. 12345
B. 2345@
C. 112345chenadai
D. 12345chenadai
【答案】C
【考纲知识点】字符串的操作,replace 函数的使用。
【解析】
在这段代码中,首先定义了字符串 s 为 "1234@@chenadai" ,字符串 str 为 "12345" 。
然后使用 replace 函数对 s 进行操作,replace(1, 5, str) 表示从 s 的索引 1 开始,长度为 5 的子串被替换为 str 。
即 "234@@" 被替换为 "12345" ,所以最终 s 变为 "112345chenadai" 。
因此,选择 C 选项。
8.a|10(a与10都是10进制,且二进制表示最高位为1)运算的结果是( )。
A. 使a的二进制表示从右往左的第二位为1
B. 使a的二进制表示从右往左的第一位为0
C. 使a的二进制表示从右往左第二位为0
D. 使a的二进制表示最高位为0
【答案】A
【考纲知识点】位运算中的按位或操作
【解析】
因为 a 和 10 的二进制表示最高位为 1,说明它们都是负数。
10 的二进制表示为 1010。
按位或运算时,只要对应位中有一个为 1 ,结果位就为 1 。
对于负数,进行位运算时是基于其补码进行的。
与 10 进行按位或运算,会使 a 的二进制表示从右往左的第二位为 1 。
所以选择 A 选项。
9.下列程序输出的是( )
string ch="hello";
if(ch[5]==NULL)
{
cout<<"right"<<endl;
}
else if (ch[5]=='\0')
{
cout<<"wrong"<<endl;
}
else
{
cout<<"hello"<<endl;
}
A. right
B. wrong
C. hello
D. 不能正确执行
【答案】A
【考纲知识点】字符串的操作和条件判断
【解析】在 C++ 中,字符串 "hello" 的有效字符是 'h'、'e'、'l'、'l'、'o' ,其长度为 5 。当访问 ch[5] 时,已经超出了字符串的有效范围。
在 C++ 中,访问超出字符串有效范围的索引通常返回未定义的行为,但在很多实现中,会表现为类似于 NULL 的情况。
在这个程序中,由于 ch[5] 超出范围,其表现类似于 NULL ,所以会输出 "right" 。
因此,选择 A 选项。
10.下列程序中,假设一个字符占用的内存空间是1,下列程序中,ch占用的内存空间是 ( )
char ch[] = "hello world";
size_t ret=strlen(ch);
cout<<ret<<endl;
A. 11
B. 10
C. 13
D. 12
【答案】D
【考纲知识点】字符数组和字符串长度
【解析】在 C++ 中,strlen 函数计算的是字符串的长度,不包括字符串结束标志 '\0' 。
字符串 "hello world" ,其中包含 11 个可见字符,但是 strlen 计算的长度不包括 '\0' ,所以字符串的实际长度是 11 - 1 = 10 。
但是定义的字符数组 ch ,需要为字符串结束标志 '\0' 预留空间,所以 ch 占用的内存空间是 11 + 1 = 12 。
因此,选择 D 选项。
11.下列程序最后输出的是()
int a=65;
cout<<tolower(a)<<endl;
A. 65
B. A
C. a
D. 97
【答案】D
【考纲知识点】字符转换函数 tolower
【解析】tolower 函数用于将大写字符转换为小写字符。
字符 'A' 的 ASCII 码值是 65,将其转换为小写就是 'a' ,而 'a' 的 ASCII 码值是 97。
所以程序最后输出 97,选择 D 选项。
12.想要计算从数字n到数字m之间(包含n和m)有多少个数字d出现,下列程序哪个能够实现( )。
A.
int n,m,res,d;
cin >> n >> m>>d;
for(int i = n+1; i <= m; i++){
int temp = i;
while(temp){
if(temp % 10 == d) res++;
temp /= 10;
}
}
cout << res << endl;
return 0;
Bint n,m,res,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
int temp = i;
while(temp){
if(temp % 10 = d) res++;
temp /= 10;
}
}
cout << res << endl;
return 0;.
C.
int n,m,res=0,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
int temp = i;
while(temp){
if(temp % 10 == d) res++;
temp /= 10;
}
}
cout << res << endl;
return 0;
D.int n,m,res=0,d;
cin >> n >> m>>d;
for(int i = n; i <= m; i++){
while(temp){
if(temp % 10 == d) res++;
temp /= 10;
}
}
cout << res << endl;
return 0;
【答案】C
【考纲知识点】循环、条件判断、数字处理
【解析】
选项 A 中,循环从 n + 1 开始,会遗漏 n 这个数字,不符合要求。
选项 B 中,没有初始化 res 为 0,可能导致结果错误。
选项 C 中,首先正确初始化了 res 为 0,然后从 n 到 m 遍历每个数字,通过不断除以 10 并取余来判断每个数位是否为 d ,如果是则 res 加 1,能够正确计算从 n 到 m 之间数字 d 出现的次数。
选项 D 中,循环内部的变量 temp 没有被正确初始化。
综上所述,能够实现计算从数字 n 到数字 m 之间(包含 n 和 m )有多少个数字 d 出现的程序是选项 C。
13.兔子五元一只,鸡三元一只,小鸭子一元三只,现在你有一百元要买一百只,兔子、鸡、鸭子,问兔子、鸡、鸭子各买多少只,每种必须至少一只,下列哪个程序能实现。( )。
A.
for(int i = 0; i <= 100; i++){
for(int j = 0; j <= 100; j++){
for(int k = 0; k <= 100; k++){
if(i + j + k == 100 && 25 * i + 10 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}
}
B.
for(int i = 0; i <= 100; i++){
for(int j = 0; j <= 100; j++){
for(int k = 0; k <= 100; k++){
if(i + j + k == 100 && 20 * i + 10 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}
}
C.
for(int i = 0; i <= 20; i++){
for(int j = 0; j <= 34; j++){
for(int k = 0; k <= 20; k++){
if(i + j + k == 100 && 15 * i + 9 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}
}
D.
for(int i = 0; i <= 100; i++){
for(int j = 0; j <= 100; j++){
for(int k = 0; k <= 100; k++){
if(i + j + k == 100 && 15 * i + 9 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}
}
【答案】D
【考纲知识点】多重循环、条件判断
【解析】
兔子 5 元一只,鸡 3 元一只,鸭子 1 元三只。
设兔子买了 i 只,鸡买了 j 只,鸭子买了 k 只。
因为一共 100 元买 100 只动物,所以有:
i + j + k = 100 (动物总数为 100)
5i + 3j + k/3 = 100 ,整理可得 15i + 9j + k = 300 (总花费为 100 元)
兔子最多买 20 只,鸡最多买 33 只(因为要保证至少买一只鸭子),鸭子的数量由前两个动物数量决定。
A 选项中条件 25 * i + 10 * j + k == 300 错误。
B 选项中条件 20 * i + 10 * j + k == 300 错误。
C 选项中循环范围限制错误,鸡最多可以买 33 只,不是 34 只。
D 选项中循环范围合理,并且条件 i + j + k == 100 && 15 * i + 9 * j + k == 300 正确。
综上所述,能实现要求的是 D 选项。
14.求小于等于N的素数的方法中,有一种方法是将所有从2到它本身减1的数都除一遍,如果不能整除,就是素数。下列哪个程序,体现了这种方法()
A.
if(N >= 3){
cout<<2<<endl;
for(int i = 2;i <= N;i ++){
for(int j = 2;j < i;j ++){
if(i % j != 0){
flag = 1;
}
}
if(flag == 0){
cout<<i<<endl;
}
flag = 0;
}
}
B.
if(N >= 2){
for(int i = 3;i <= N;i ++){
for(int j = 2;j < i;j ++){
if(i % j == 0){
flag = 1;
}
}
if(flag == 0){
cout<<i<<endl;
}
flag = 0;
}
}
C.
if(N >= 2){
cout<<2<<endl;
for(int i = 3;i <= N;i ++){
for(int j = 2;j < i;j ++){
if(i % j == 0){
flag = 1;
}
}
if(flag == 0){
cout<<i<<endl;
}
flag = 0;
}
}
D.
if(N >= 2){
cout<<2<<endl;
for(int i = 3;i <= N;i ++){
for(int j = 2;j < i;j ++){
if(i % j == 0){
flag = 1;
}
}
if(flag == 0){
cout<<i<<endl;
}
}
}
【答案】C
【考纲知识点】素数判断算法、循环、条件判断
【解析】
A 选项:没有从 3 开始判断,且判断条件错误,应该是能整除就不是素数,设置 flag = 1 。
B 选项:没有先输出 2,2 也是素数。
C 选项:首先判断 N 是否大于等于 2,如果是,先输出 2。然后从 3 到 N 遍历每个数 i ,对于每个 i ,从 2 到 i - 1 遍历每个数 j ,如果 i 能被 j 整除(i % j == 0 ),就设置 flag = 1 ,表示不是素数。如果遍历完都没有能整除的,即 flag == 0 ,就输出 i ,是素数。这个程序符合题目要求。
D 选项:没有在每次内层循环结束后将 flag 重置为 0。
综上所述,选择 C 选项。
15.工人工作一天,会得到一个金环作为工资报酬,某个工作需要15天完成,一条15个环的金环项链,为了严格执行每天工作结束时,完成对工人工资的结算,最少需要将金环项链剪裁成几段,每段几个金环( )
A. 4段,分别是1、2,4,8
B. 15段,每段1个
C. 6段,分别是3、3、3、3、2、1
D. 9段,分别是2、2、2、2、2、2、1、1、1
【答案】A
【考纲知识点】二进制思想的应用
【解析】
将金环项链剪裁成 4 段,分别是 1、2、4、8 个金环。
使用二进制来表示 1 到 15:
1 用 1 表示
2 用 10 表示
3 用 11 表示,可由 1 + 2 得到
4 用 100 表示
5 用 101 表示,可由 1 + 4 得到
6 用 110 表示,可由 2 + 4 得到
7 用 111 表示,可由 1 + 2 + 4 得到
8 用 1000 表示
9 用 1001 表示,可由 1 + 8 得到
10 用 1010 表示,可由 2 + 8 得到
11 用 1011 表示,可由 1 + 2 + 8 得到
12 用 1100 表示,可由 4 + 8 得到
13 用 1101 表示,可由 1 + 4 + 8 得到
14 用 1110 表示,可由 2 + 4 + 8 得到
15 用 1111 表示,可由 1 + 2 + 4 + 8 得到
这样通过这 4 段不同数量的金环组合,可以满足 1 到 15 任意天数的工资结算需求,且段数最少。
所以选择 A 选项。
二、判断题(每题2分,共20分)
题目 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | √ | √ | √ | × | √ | √ | × | √ | √ | √ |
1. 为了简化计算机基本运算电路,使加减法都只需要通过加法电路实现,也就是让减去一个正数或加上一个负数这样的运算可以用加上一个正数来代替。于是改变负数存储的形式,存储成一种可以直接当成正数来相加的形式,这种形式就是补码。
【答案】正确
【考纲知识点】补码的概念和作用
【解析】在计算机中,为了方便硬件实现基本运算,采用补码来表示负数。通过补码的形式,计算机在进行加减法运算时,都可以统一使用加法电路来完成。
对于减去一个正数或加上一个负数的运算,通过将负数以补码形式存储,可以将其转换为加上一个正数的形式进行计算,从而简化了计算机的运算电路。
所以答案是正确。
2. 使用原码进行的计算, 2+(-1) 的结果是 -3
【答案】正确
【考纲知识点】原码的计算
【解析】原码中,正数的原码就是其本身,负数的原码是符号位为 1,数值位为其绝对值。
2 的原码是 00000010, -1 的原码是 10000001。
进行加法运算时:
00000010
10000001
———————
10000011
得到的结果 10000011 是 -3 的原码。
所以使用原码进行 2 + (-1) 的计算结果是 -3 ,答案是正确的。
3.反码计算加减法:加法与减法结果都是正确的,只是解决不了 -0 的问题
【答案】正确
【考纲知识点】反码的特点和运算
【解析】在反码表示中,正数的反码与原码相同,负数的反码是对原码的数值位逐位取反。
反码进行加法运算时,结果是正确的。但在进行减法运算时,虽然结果在数值上是正确的,但存在 “-0” 和 “+0” 两种表示形式,这会导致一些逻辑上的不一致和问题。
所以说反码计算加减法,加法与减法结果都是正确的,只是解决不了 “-0” 的问题,答案是正确。
4.10 进制数 63,在转换成二进制的计算过程中,产生了如下的式子:
63/2=31 余 1
31/2=15 余 1
15/2=7 余 1
7/2=3 余 1
3/2=1 余 1
1/2=0 余 1
按照从前往后的顺序,获得 63 的二进制值是 111111
【答案】错误
【考纲知识点】十进制转二进制的方法
【解析】将十进制数转换为二进制时,通过除 2 取余的方法,要按照从下往上的顺序排列余数才能得到正确的二进制值。
在这个计算过程中,最后的二进制值应该是从下往上读取余数,即 111111 是从后往前的顺序,正确的二进制值应该是从下往上,即 111111 从下往上读为 111111。
所以答案是错误。
5.下列程序输出的是 A
char x=65;
x=x&00001111;
cout<<x<<endl;
【答案】正确
【考纲知识点】位运算与字符操作
【解析】
字符 'A' 的 ASCII 码值是 65,对应的二进制是 01000001 。
00001111 的二进制是 00001111 。
进行按位与运算 01000001 & 00001111 ,得到 00000001 ,其对应的字符就是 'A' 。
所以该程序输出的是 A ,答案是正确的。
6.下列可执行程序段中,最后 pos 的值是 4
string str="chenADai";
int pos = str.find('D');
--pos&11;
【答案】正确
【考纲知识点】字符串操作和位运算
【解析】首先,str.find('D') 会返回字符 'D' 在字符串 str 中首次出现的位置,在 "chenADai" 中,'D' 首次出现在位置 5 ,所以初始时 pos 的值为 5 。
然后进行 --pos & 11 运算。
先 --pos ,此时 pos 的值变为 4 。
4 & 11 ( 11 的二进制为 1011 , 4 的二进制为 0100 )进行按位与运算得到 4 。
所以最后 pos 的值是 4 ,答案是正确的。
7.
string ch="chen";
cout<<ch[4]<<endl;
该段程序将不能正确执行
【答案】错误
【考纲知识点】字符串的访问
【解析】字符串 ch = "chen" ,其有效字符为 'c'、'h'、'e'、'n' ,长度为 4 。
当访问 ch[4] 时,已经超出了字符串的有效范围,在 C++ 中这种访问通常会导致未定义的行为,而不是一定不能正确执行。
所以答案是错误。
8.
char a='A';
a=a+32;
cout<<(int)a<<endl;
将输出 97
【答案】正确
【考纲知识点】字符的 ASCII 码值运算
【解析】
字符 'A' 的 ASCII 码值是 65,加 32 后得到 'a' 的 ASCII 码值 97。
将 a 强制转换为 int 类型输出,就是 97。
所以答案是正确的。
9. 自然界中,最小的素数是 2
【答案】正确
【考纲知识点】素数的定义
【解析】
素数是指一个大于 1 且除了 1 和它自身外,不能被其他自然数整除的数。
2 符合素数的定义,并且比 2 小的正整数 1 不符合素数的定义。
所以自然界中,最小的素数是 2,答案是正确的。
10.CCF(十六进制) = 12363(七进制)
【答案】正确
【考纲知识点】不同进制之间的转换
【解析】首先将十六进制的 “CCF” 转换为十进制:
(CCF)16
=12×162+12×161+15×160
=12×256+12×16+15×1
=3079+192+15
=3279
然后将七进制的 “12363” 转换为十进制:
(12363)7
=1×74+2×73+3×72+6×71+3×70
=1×2401+2×343+3×49+6×7+3×1
=2401+686+147+42+3
=3279
因为两者转换为十进制后的值相等,所以 “CCF (十六进制) = 12363 (七进制)” 这个表述是正确的。
三、编程题(每题25分,共50分)
1、数字替换
【问题描述】
小杨有一个包含n个数字的序列A ,即A={a1,a2,a3.....,an},他想将其中大于k的数字都替换为序列的最大值,将其中小于K的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
【输入描述】
第一行包含两个正整数n,k,含义如题面所示
第二行包含n个数字,代表序列A 。
【输出描述】
输出n个整数,代表替换后的结果。
【样例输入 1】
5 0
-2 -1 0 1 2
【样例输出 1】
-2 -2 0 2 2
【题目大意】
给定一个包含 n 个数字的序列 A 以及一个数字 k ,需要将序列中大于 k 的数字替换为序列中的最大值,小于 k 的数字替换为序列中的最小值,然后输出替换后的序列。
【考纲知识点】
数组操作、循环、条件判断、最值求解。
【解题思路】
首先读入序列的长度 n 和判断数字 k 。然后遍历序列读入每个数字,同时求出序列的最大值和最小值。再次遍历序列,根据每个数字与 k 的大小关系进行替换。最后输出替换后的序列。
【参考程序】
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int a[100010];
int main() {
int n, k;
cin >> n >> k;
for (int i = 1; i <=n; i++) {
cin >> a[i];
}
int max_value = a[1],min_value=a[1];
for (int i = 1; i <=n; i++) {
max_value=max(max_value,a[i]);
min_value=min(min_value,a[i]);
}
for (int i = 1; i <=n; i++) {
if (a[i] > k) {
a[i] = max_value;
} else if (a[i] < k) {
a[i] = min_value;
}
if (i != n) {
cout << a[i] << " ";
} else {
cout << a[i] << endl;
}
}
return 0;
}
【程序解析】
#include <iostream>、#include <vector>、#include <algorithm>:引入所需的标准库。
int a[100010];:定义一个足够大的整数数组来存储序列。
int main():主函数。
cin >> n >> k;:读入序列长度 n 和判断数字 k 。
外层循环通过比较更新得到序列的最大值 max_value 和最小值 min_value 。
内层循环根据数字与 k 的大小关系进行替换,并按要求输出替换后的数字。
2、打印数字
【问题描述】
小杨为数字0 , 1, 2和3 设计了一款表示形式,每个数字占用了5×5的网格。数字 0, 1,2 和3 的表示形式如下:
..... ****. ..... .....
.***. ****. ****. ****.
.***. ****. ..... .....
.***. ****. .**** ****.
..... ****. ..... .....
小杨想请你将给定的数字n转换为对应的表示形式。
【输入描述】
第一行包含一个正整数代表 。
【输出描述】
输出对应的表示形式
【样例输入 1】
12230
【样例输出 1】
****.....................
****.****.****.****..***.
****.................***.
****..****.********..***.
****.....................
【题目大意】
给定一个由数字 0、1、2、3 组成的字符串,按照给定的每个数字的 5×5 网格表示形式,将这个字符串转换并输出对应的图形表示。
【考纲知识点】
字符串操作、条件判断、循环。
【解题思路】
首先读入一个包含数字的字符串。然后通过两层循环,外层控制行,内层遍历字符串中的每个数字。根据当前数字和所在的行,确定对应的表示形式并添加到当前行的输出字符串中。最后逐行输出结果。
【参考程序】
#include <iostream>
#include <string>
using namespace std;
int main() {
string n;
cin >> n;
for (int row = 0; row < 5; row++) {
string line = "";
for (char digit : n) {
if (digit == '0') {
if (row == 0 || row == 4) {
line += ".....";
} else {
line += ".***.";
}
} else if (digit == '1') {
line += "****.";
} else if (digit == '2') {
if (row == 0) {
line += ".....";
} else if (row == 1) {
line += "****.";
} else if (row == 2) {
line += ".....";
} else if (row == 3) {
line += ".****";
} else {
line += ".....";
}
} else if (digit == '3') {
if (row == 0) {
line += ".....";
} else if (row == 1) {
line += "****.";
} else if (row == 2) {
line += ".....";
} else if (row == 3) {
line += "****.";
} else {
line += ".....";
}
}
}
cout << line << endl;
}
return 0;
}
【程序解析】
#include <iostream>、#include <string>:引入所需的标准库。
int main():主函数。
string n; cin >> n;:读入数字组成的字符串。
外层的两个嵌套循环,外层的 for 循环控制行数,内层的 for 循环遍历输入字符串中的每个数字。
内层通过一系列 if-else 语句根据数字和当前行数确定对应的表示片段,并添加到 line 字符串中。
每处理完一行,输出当前行的结果。
相关文章:
2024年12月GESPC++三级真题解析
一、单选题(每题2分,共30分) 题目123456789101112131415答案 B D A A D B C A A D D C D C A 1.下列二进制表示的十进制数值分别是( )[10000011]原( ) [10000011]补ÿ…...
vue-router路由传参的两种方式(params 和 query )
一、vue-router路由传参问题 1、概念: A、vue 路由传参的使用场景一般应用在父路由跳转到子路由时,携带参数跳转。 B、传参方式可划分为 params 传参和 query 传参; C、而 params 传参又可分为在 url 中显示参数和不显示参数两种方式&#x…...
Asp.net 做登录验证码(MVC)
public class ValidateCode{/// <summary>/// 创建随机数/// </summary>/// <param name"num"></param>/// <returns></returns>public string CreateRandom(int num){string str "ABCDEFGHJKMNPQRSTUVWXYZabcdefghjkmnpq…...
在 Chrome中直接调用大型语言模型的API
AI 时代的高速发展,我们都习惯了使用 ChatGPT、Claude、Gemini 和其他 AI 工具来询问各种问题,目前大部分的 AI 应用都是通过服务端 API 来实现的。 如果想要在 Web 上使用 AI 功能往往需要靠服务器来处理一些非常大的模型。这在制作一些生成内容的 AI …...
微信小程序调用腾讯地图-并解读API文档 JavaScript SDK和 WebService API
搜索:腾讯位置服务 找到API文档: 入门中第一步:申请开发者密钥key 前往控制台: 创建应用并获取key: 设置key的时候,还需要小程序的APPID。所以要前往微信公众平台中获取小程序的APPID: 限制要求:…...
WPF 控件
<div id"content_views" class"htmledit_views"><p id"main-toc"><strong>目录</strong></p> WPF基础控件 按钮控件: Button:按钮 RepeatButton:长按按钮 RadioButton:单选按钮 数据显示控件 Te…...
VScode执行任务
背景 在vscode 中 如果执行命令需要传递进来参数,那么直接通过命令行终端的方式不太方便。通过task 任务的方式来进行启动执行,降低反复输入参数等繁琐工作。 首先可以查看vscode 官方文档 task 启动 crtl shift p .vscode/task.json 示例 执行cp…...
MySQL(数据类型)
目录 1. 数值类型 2. bit类型 3.小数类型 3. 字符串类型 4 日期和时间类型 5. enum和set 1. 数值类型 对标C语言: tinyint->char(1字节): 有符号:127 ~ 255 无符号:0 ~ -128。 smalli…...
pytorch中的tqdm库
tqdm 是一个 Python 的进度条库,名字来源于阿拉伯语 "taqaddum"(意思是“进步”)。它以简单易用、高效著称,常用于循环操作中显示进度信息。 基本用法 1. 普通循环 tqdm 可以轻松为 for 循环添加进度条: …...
NoSQL大数据存储技术测试(5)MongoDB的原理和使用
单项选择题 第1题 关于 MongoDB 集群部署下面说法不正确的是() 已经不使用主从复制的模式 在实际应用场景中, Mongodb 集群结合复制集和分片机制 MongoDB 支持自动分片, 不支持手动切分 (我的答案) 每…...
【Golang】Go语言编程思想(六):Channel,第四节,Select
使用 Select 如果此时我们有多个 channel,我们想从多个 channel 接收数据,谁来的快先输出谁,此时应该怎么做呢?答案是使用 select: package mainimport "fmt"func main() {var c1, c2 chan int // c1 and …...
Vue2简介
一、官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/ 二、介绍与描述 动态构建用户界面的渐进式 JavaScript 框架 作者: 尤雨溪 三、Vue 的特点 遵循 MVVM 模式 编码简洁, 体积小, 运行效率高, 适合移动/PC 端开发 它本身只关注 UI, 也可以引入其它第三…...
EasyPlayer.js播放器如何在iOS上实现低延时直播?
随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。 那么要在iOS上…...
ChatGPT Pro是什么
ChatGPT Pro 和 ChatGPT Plus 的区别主要体现在功能范围、适用场景和目标用户上。 ChatGPT Plus 功能 • 价格:20美元/月。 • 目标用户:针对个人用户设计。 • 主要特点: • 在高峰期响应速度更快。 • 使用高级模型(如 GPT-4…...
基于Springboot汽车资讯网站【附源码】
基于Springboot汽车资讯网站 效果如下: 系统主页面 汽车信息页面 系统登陆页面 汽车信息推荐页面 经销商页面 留言反馈页面 用户管理页面 汽车信息页面 研究背景 随着信息技术的快速发展和互联网的普及,互联网已成为人们查找信息的重要场所。汽车资讯…...
MySQL-DQL之数据表操作
文章目录 零. 准备工作一. 简单查询1.查询所有的商品.2.查询商品名和商品价格.3.查询结果是表达式(运算查询):将所有商品的价格10元进行显示. 二. 条件查询1. 比较查询2. 范围查询3. 逻辑查询4. 模糊查询5. 非空查询 三. 排序查询四. 聚合查询…...
Luckysheet 实现 excel 多人在线协同编辑(全功能实现增强版)
前言 感谢大家对 Multi person online edit(多人在线编辑器) 项目的支持,mpoe 项目使用 quill、luckysheet、canvas-editor 实现的 md、excel、word 在线协同编辑,欢迎大家Fork 代码,多多 Start哦~ Multi person online edit 多人协同编辑器…...
vue 给div增加title属性
省略号 移入显示文字 在很多时候,我们页面上其实有时候展示不出来很多很多文字的,这个时候我们就不得不对这个文字进行处理,但是我们鼠标放到文字上时,还想展示所有的文字,这种方式其实有2种 一Tooltip 文字提示 第一…...
设计模式之工厂模式:从汽车工厂到代码工厂
~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 工厂模式概述 想象一下你走进一家4S店准备买车。作为顾客,你不需要知道汽车是如何被制造出来的,你只需要告诉销售顾问&a…...
人脸识别Adaface之libpytorch部署
目录 1. libpytorch下载2. Adaface模型下载3. 模型转换4. c推理4.1 前处理4.2 推理4.3 编译运行4.3.1 写CMakeLists.txt4.3.2 编译4.3.3 运行 1. libpytorch下载 参考: https://blog.csdn.net/liang_baikai/article/details/127849577 下载完成后,将其解…...
vue3+echarts+websocket分时图与K线图实时推送
一、父组件代码: <template> <div class"chart-box" v-loading"loading"> <!-- tab导航栏 --> <div class"tab-box"> <div class"tab-list"> <div v-for"(item, index) in tabList…...
小程序开发实战项目:构建简易待办事项列表
随着移动互联网的飞速发展,小程序以其便捷性、即用即走的特点,成为了连接用户与服务的重要桥梁。无论是电商平台的购物助手,还是餐饮行业的点餐系统,小程序都在各个领域发挥着巨大的作用。 小程序开发基础 1. 小程序简介 小程序是…...
SD Express 卡漏洞导致笔记本电脑和游戏机遭受内存攻击
Positive Technologies 最近发布的一份报告揭示了一个名为 DaMAgeCard 的新漏洞,攻击者可以利用该漏洞利用 SD Express 内存卡直接访问系统内存。 该漏洞利用了 SD Express 中引入的直接内存访问 (DMA) 功能来加速数据传输速度,但也为对支持该标准的设备…...
前端node环境安装:nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)
需求:在做前端开发的时候,有的时候 这个项目需要 node 14 那个项目需要 node 16,我们也不能卸载 安装 。这岂不是很麻烦。这个时候 就需要 一个工具 来管理我们的 node 版本和 npm 版本。 下面就分享一个 nvm 工具 用来管理 node 版本。 这个…...
java之集合(详细-Map,Set,List)
1集合体系概述 1.1集合的概念 集合是一种容器,用来装数据的,类似于数组,但集合的大小可变,开发中也非常常用。 1.2集合分类 集合分为单列集合和多列集合 Collection代表单列集合,每个元素(数据ÿ…...
常见LeetCode-Saw200
用来记录需要知道见过的题型: LeetCode2-两数相加 说明:以链表的形势给了你每个位的数字,而且是逆序,直接从开头(个位)遍历相加。带上进位即可。有一个为空就直接计算另一个和进位。 LeetCode-3.无重复字符…...
Unity 制作一个视频播放器(打包后,可在外部编辑并放置新的视频)
效果展示: 在这里,我把视频名称(Json)和对应的视频资源都放在了StreamingAssets文件夹下,以便于打包后,客户还可以自己在外部增加、删除、修改对应的视频资料。 如有需要,请联细抠抠。...
MySQL-SQL语句
文章目录 一. SQL语句介绍二. SQL语句分类1. 数据定义语言:简称DDL(Data Definition Language)2. 数据操作语言:简称DML(Data Manipulation Language)3. 数据查询语言:简称DQL(Data Query Language)4. 数据控制语言:简称DCL(Data …...
腾讯微信大数据面试题及参考答案
DNS 协议是否使用 UDP? DNS(Domain Name System)协议主要使用 UDP(User Datagram Protocol),但也会使用 TCP(Transmission Control Protocol)。 UDP 是一种无连接的传输协议,它的特点是简单、高效。DNS 在进行域名解析时,大部分情况下使用 UDP。因为 UDP 的开销小,对…...
Python跳动的爱心
系列文章 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…...
网站的流量是什么意思/建站优化
题库来源:安全生产模拟考试一点通公众号小程序 2022年熔化焊接与热切割考试题目是熔化焊接与热切割考试模拟题全真模拟题!2022年熔化焊接与热切割考试练习题及模拟考试根据熔化焊接与热切割新考试大纲。熔化焊接与热切割考试资料随时根据安全生产模拟考…...
怎么优化一个网站/杭州seo价格
第一步:准备好项目代码 第二步:选择File – Project Structure 第三步:选择Artifacts,并选择号,选择JAR,选择From modules with… 第四步:选择Main Class和META-INF 选择OK 第五步…...
网站维护专业/网店推广费用多少钱
import Vue from vue import App from ./App import router from ./router import axios from axios Vue.config.productionTip false Vue.prototype.$http axios;...
门户网站综合型门户/9个广州seo推广神技
| 标题 | 名称 | 钩子描述 || --- | --- | --- || 会员添加 | member_add | 当添加会员时 || 会员编辑 | member_edit | 当编辑会员时 || 会员删除 | member_del | 当删除会员时 || 会员登录 | member_login | 当会员登录 |>添加会员,编辑,删除&#…...
什么是网站建设流程/市场调研公司排名
基于现有数据库生成POCO数据类和数据库上下文需要借助Visual Studio一个扩展插件-- Entity Framework Power Tools(一个Code First反向工程工具)。只要在Visual Studio扩展里面输入“Entity Framework Power”搜索即可找到最新的扩展,点击下载…...
海南专业做网站的公司/域名注册需要多久
献给所有得到过所爱却又失去所爱的人,给从未得到所爱的人,给因为仍旧爱着,于是选择自欺欺人的人。这,是一面镜子,勇敢面对,勇敢放弃,勇敢重新开始。 当她不爱你的时候,无论过去她是…...