2024年3月CCF—GESP(C++三级)编程能力等级认证试卷
三级
2024
2024-04-19 14:12:34
125次
一、单选题
在下列代码的横线处填写( ),可以使得输出是 GESP IS INTERESTING 。
int main()
{
string str="gEsP is Interesting";
int x = str.length();
for(int i = 0; i < x; i++)
if ((str[i]>='a') && (str[i]<='z'))
________________________;
cout << str << endl;
cout << endl;
return 0;
} | A. str[i]+='a'-'A' |
B. str[i]+=20 |
| C. str[i]+='A'-'a' |
D. 无法实现 |
【知识点】 CCF—GESP C++三级
下面C++代码执行后数组中大于0的数的特征是( )。
int main()
{
int a[20],i;
for(i = 0; i < 20; i++)
a[i] = i+1;
for(int i = 0; i < 20; i++)
if((a[i]%2)&&(a[i]%3))
a[i] = 0;
for(i = 0; i < 20; i++)
if(a[i])
cout << a[i] << " ";
cout << endl;
return 0;
} | A. 2的倍数 |
B. 3的倍数 |
| C. 能被2或3整除的数 |
D. 能被2和3同时整除的数 |
【知识点】 CCF—GESP C++三级
假设英文句子由若干词构成。下面C++代码统计输出的词数是( )。
int main()
{
string str="gEsP is Interesting !";
int x = str.length();
int nwords = 0;
for(int i = 0; i < x; i++)
if (str[i]==' '){
nwords++;
while(str[++i]==' ') ;
}
cout << nwords << endl;
cout << endl;
return 0;
} | A. 1 |
B. 2 |
| C. 3 |
D. 4 |
【知识点】 CCF—GESP C++三级
二、判断题
三、编程题
字母求和
题面描述
小杨同学发明了一种新型密码,对于每一个小写英文字母,该小写字母代表了一个正整数,即该字母在字母顺序中的位置,例如字母 a 代表了正整数 1,字母 b 代表了正整数 2;对于每一个大写英文字母,该大写字母代表了一个负整数,即该字母的 ASCII 码的相反数,例如字母 A 代表了正整数 -65。小杨同学利用这种方式对一个整数进行了加密并得到了一个由大写字母和小写字母组成的字符串,该字符串中每个字母所代表数字的总和即为加密前的整数,例如 aAc 对应的加密前的整数为 1+(-65)+3=-61。
对于给定的字符串,请你计算出它对应的加密前的整数是多少。
输入格式
第一行一个正整数n,表示字符串中字母的个数。
第二行一个由大写字母和小写字母的字符串T,代表加密后得到的字符串。
输出格式
输出一行一个整数,代表加密前的整数。
样例输入
3
aAc
样例输出
-61
对于全部数据,保证有1≤n≤105。
【知识点】 CCF—GESP C++三级
完全平方数
题面描述
小杨同学有一个包含n个非负整数的序列A,他想要知道其中有多少对下标组合<i,j>(1≤i,j≤n,i<j),使得Ai+Aj是完全平方数。
如果x是完全平方数,则存在非负整数y使得 y×y=x。
输入格式
第一行一个非负整数n,表示非负整数个数。
第二行包含n个非负整数A1,A2,...,An,表示序列A包含的非负整数。
输出格式
输出一个非负整数,表示和是完全平方数的非负整数对数。
样例输入
5 1 4 3 3 5
样例输出
3
对于全部数据,保证有1≤n≤1000,0≤Ai≤105。
【知识点】 CCF—GESP C++三级
