GESP 2024年3月_C++四级试卷
从PDF导入:GESP 2024年3月_C++四级试卷
试卷题目预览
若函数声明为int f(int &x){ x+=3; return x; },则对声明的变量int a=3,下面哪个调用能够改变a的值( )。
int f(int &x) { x+=3; return x; }
下面C++代码执行后,输出的是( )。
int main()
{
int x[]={2, 0, 2, 4};
char geSP[]="Grade Examination of SP";
cout << geSP[sizeof(x)] << endl;
return 0;
}
下面C++代码执行后输出是( )。
int foo(float *f)
{
return int(*f*2);
}
int main()
{
float fnum[10]={1.1};
fnum[1]=foo(fnum);
cout << fnum[0]+fnum[1] << endl;
return 0;
}
对二维数组int arr[3][16];,则arr[1]占用内存的大小为( )字节。
对二维数组int arr[3][16];,若arr的地址是0x28cbc0,则arr[1]的值是( )。
下面C++代码执行后输出是( )。
int main()
{
char *p="I love GESP!";
cout << p+5 << endl;
return 0;
}
下面C++代码执行以后输出的是( )。
int rc=5;
int main()
{
int rc;
cout << ++rc << endl;
return 0;
}
下面C++函数中采用的算法是( )。
int fib(int n)
{
int i, f[n]={0, 1};
for(int i=2; i<=n; i++)
f[i]=f[i-1]+f[i-2];
return f[n];
}
插入排序在最好情况下的时间复杂度是( )。
在如下的C++代码执行后,设第11和12行的输出地址值分别为X和Y,则下面正确的是( )。
struct pass{
int no;
char name[20];
int level;
};
int main()
{
struct pass XiaoYang;
cout << "&XiaoYang=" << &XiaoYang << endl; //第11行
cout << "&(XiaoYang.no)=" << &(XiaoYang.no) << endl; //第12行
return 0;
}
如果文件1.txt中的内容如下,则执行下面C++代码时,注释了####那行代码所输出的x的值为( )。
// 文件1.txt内容:
// 50 2024 3.16 I
// love
// GESP!
int main()
{
ifstream fin;
string line;
int x;
fin.open("1.txt",ios::in);
for (int i=0; i< 2; i++){
fin >> line;
cout << line << endl;
}
fin>>x;
cout << x << endl; //####
return 0;
}
执行下列C++代码时输出中的第2行是( )。
int main()
{
char *s[]={(char*)"2024",(char*)"3.16",(char*)"GESP"};
for (int i=0; i< 2; i++){
cout << *s+i << endl;
}
return 0;
}
C++语言中下面哪个关键字能够限定对象的作用域( )。
小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是( )。
中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。
对int a[]={2,0,2,4,3,1,6},执行第一趟选择排序处理后a中数据变为{0,2,2,4,3,1,6}。( )
如果待排序数据不能都装进内存,需要使用外排序算法。( )
定义变量int a=5, 则cout << &++a会输出6。( )
两个函数之间可以使用全局变量来传递数据。( )
定义数组int a[2024][3][16]={2,0,2,4,3,1,6},则cout << a[2023][2][15]的结果不确定。( )
在C++语言中,函数的参数为指针时,可以在函数内部修改该参数的值。( )
在C++语言中try子句里抛出的结构体等类型的异常无法被catch捕获。( )
C++语言中cout << 9^2 << endl;会输出81。( )
小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。( )
任何一个for循环都可以转化为等价的while循环( )。
相似字符串
时间限制:1.0 s 内存限制:512.0 MB
对于两个字符串A和B,如果A可以通过删除一个字符,或插入一个字符,或修改一个字符变成B,那么我们说A和B是相似的。
比如apple可以通过插入一个字符变成applee,可以通过删除一个字符变成appe,也可以通过修改一个字符变成bpple,因此apple和applee、appe、bpple都是相似的。
特别地,完全相同的两个字符串也是相似的。
给定T组A、B,请你分别判断他们是否相似。
第一行一个正整数T。 接下来T行,每行两个用空格隔开的字符串A和B。 保证A、B的长度不超过10^5。保证A和B只包含小写字母。
输出T行,对于每组A、B,如果它们相似,则输出similar,否则输出not similar。
【样例输入】 5 apple applee apple appe apple bpple applee bpple apple apple 【样例输出】 similar similar similar not similar similar
做题
时间限制:1.0 s 内存限制:512.0 MB
小杨同学为了提高自己的实力制定了做题计划,在第i天时,他必须要完成i道题,否则他就会偷懒。
小杨同学现在找到了一个题库,一共有n套题单,每一套题单中有一定数量的题目。但是他十分挑剔,每套题单他只会使用一次,每一天也只能使用一套题单里的题目,之后那套题单就会被弃之不用。对于每套题单,他不必完成题单内所有的题。
那么问题来了,小杨同学最多会做题几天才偷懒呢?
第一行,1个数为n,表示有多少套题单。 第二行,n个整数ai,分别表示每套题单有多少道题。
输出一行,小杨同学偷懒前最多做题天数。
【样例输入】 4 3 1 4 1 【样例输出】 3