A. 思卡奇C2期末模拟考试

    客观题

思卡奇C2期末模拟考试

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

一. 单项选择题(共 15 题,每题 2 分,共计 30 分)

  1. memset函数的头文件是( )。 {{ select(1) }}
  • cstdio
  • cmath
  • limits
  • cstring
  1. 假设一个整数类型的一维数组在内存中的“首地址”是100,则第6个元素的存储地址开始于( ) 。 {{ select(2) }}
  • 112
  • 116
  • 120
  • 100
  1. 将数组(8,23,4,16,77,-5,53,100)中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( )次。 {{ select(3) }}
  • 4
  • 5
  • 6
  • 7
  1. 100以内最大的素数是( )。 {{ select(4) }}
  • 89
  • 97
  • 91
  • 93
  1. 对二维数组进行定义,正确的语句是( )。 {{ select(5) }}
  • int a[3][ ]
  • float a[3,2]
  • double a[3][4]
  • float a(3)(4)
  1. 对二维数组进行初始化,正确的语句是( )。 {{ select(6) }}
  • int c[3][ ]={{3},{4},{5}};
  • int c[ ][3]={{3},{3},{4}};
  • int c[3][2]={{3},{3},{4},{5}};
  • int c[ ][3]={{3},{1},{1,2,3,4}};
  1. 以下排序算法中,不需要进行关键字比较操作的算法是( )。 {{ select(7) }}
  • 基数排序
  • 冒泡排序
  • 选择排序
  • 插入排序
  1. 我们想使用sort()函数,需要添加什么头文件( )。 {{ select(8) }}
  • #include < cstdio >
  • #include<iostream>
  • #include<algorithm>
  • #include<numeric>
  1. 实际参数可以是任何符合形式参数类型的常量、变量、表达式。函数参数传递的过程就是实际参数和形式参数相结合的过程,必须遵守三个一致:( )。 {{ select(9) }}
  • 类型一致、大小一致、位置一致
  • 类型一致、个数一致、位置一致
  • 类型一致、顺序一致、大小一致
  • 顺序一致、个数一致、类型一致
  1. 设x=true,y=true,z=false,以下逻辑运算表达式值为真的是( )。(与:⋀或:V 非:¬) {{ select(10) }}
  • (x ⋀ y) ⋀ z
  • x ⋀ (z V y) ⋀ z
  • (x ⋀ y) V (z V x)
  • (y V z) ⋀ x ⋀ z
  1. 下列程序中,正确计算1, 2, ..., 100 这 100 个自然数之和sum(初始值为0)的是( )。 {{ select(11) }}
  • i = 1; do{ sum +=i; i++; } while(i <= 100);
  • i = 1; do{ sum +=i; i++; } while(i > 100);
  • i = 1; while(i < 100) { sum+=i; i++; }
  • i = 1; while(i >= 100) { sum+=i; i++; }
  1. 设字符串 S=“sikaqi”,S 的非空子串的数目是( )。 {{ select(12) }}
  • 20
  • 21
  • 22
  • 23
  1. 体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。 {{ select(13) }}
  • 快速排序
  • 插入排序
  • 冒泡排序
  • 归并排序
  1. 假设一个整数类型的一维数组在内存中的“首地址”是:0xfff100,则第6个元素的存储地址开始为( )。 {{ select(14) }}
  • 0xfff100
  • 0xfff106
  • 0xfff107
  • 0xfff114
  1. 下面的故事与( )算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’ {{ select(15) }}
  • 枚举
  • 递归
  • 贪心
  • 分治

二、阅读程序(判断题正确填“√”,错误填“×”特殊说明外,判断题1.5分,选择题3分,共计40分)

(一)

01	#include <iostream>
02	using namespace std;
03	int a,b;
04	int work(int a,int b){
05		if(a%b)  return work(b,a%b);
06		return b;
07	}
08
09	int main(){
10		cin>>a>>b;
11		cout<<work(a,b)<<endl;
12	return 0;
13	}

● 判断题

  1. 在第2行下面添加#define int long long程序可以正常运行。( ) {{ select(16) }}
  • ×
  1. 将第3行的int改成double结果不会改变。( ) {{ select(17) }}
  • ×
  1. 不能输入0 0。( ) {{ select(18) }}
  • ×
  1. 输入20 12结果输出4。( ) {{ select(19) }}
  • ×

● 选择题

  1. 输入2012 13,输出( )。 {{ select(20) }}
  • 2012
  • 2013
  • 13
  • 1
  1. 该算法的时间复杂度级别为( )。 {{ select(21) }}
  • 线性时间
  • 对数时间
  • 平方时间
  • 常数时间

(二)

01	#include <iostream>
02	using namespace std;
03	int main()
04	{
05		int a[3],b[3];
06		int i,j,tmp;
07		for(i=0;i<3;i++)
08			cin>>b[i];
09		for(i=0;i<3;i++)
10		{
11			a[i]=0;
12			for(j=0;j<=i;j++)
13			{
14				a[i]+=b[j];
15				b[a[i]%3]+=a[j];
16			}
17		}
18		tmp=1;
19		for(i=0;i<3;i++)
20		{
21			a[i]%=10;
22			b[i]%=10;
23			tmp*=a[i]+b[i];
24		}
25		cout<<tmp<<endl;
26		return 0;
27	}

● 判断题

  1. 输入的3个数越大,则输出的结果也越大。( ) {{ select(22) }}
  • ×
  1. 执行完第17行后,b[i]比a[i]相对应的值要大。( ) {{ select(23) }}
  • ×
  1. 将第18行的tmp=1改为tmp=0,不论输入什么数据,输出结果都是0。( ) {{ select(24) }}
  • ×
  1. 若输入数据中包含字母,如3 3 a则程序会出错。( ) {{ select(25) }}
  • ×

● 选择题

  1. 输入2 3 5,输出的结果是( )。 {{ select(26) }}
  • 414
  • 415
  • 416
  • 417
  1. 输入1 1 1,输出的结果是( )。 {{ select(27) }}
  • 36
  • 48
  • 72
  • 108

(三)

01	#include <iostream>
02	using namespace std;
03	const int maxn=50;
04	void getnext(char str[])
05	{
06		int l=strlen(str),i,j,k,temp;
07		k=l-2; //k=2
08		while(k>=0 && str[k]>str[k+1]) k--;
09		i=k+1;
10		while(i<l && str[i]>str[k]) i++;	
11		temp=str[k];
12		str[k]=str[i-1];
13		str[i-1]=temp;
14		for(i=l-1;i>k;i--)
15			for(j=k+1;j<i;j++)
16				if(str[j]>str[j+1])
17				{
18					temp=str[j];
19					str[j]=str[j+1];
20					str[j+1]=temp;
21				}	
22		return;
23	}
24	int main()
25	{
26		char a[maxn];
27		int n;
28		cin>>a>>n;
29		while(n>0)
30		{
31			getnext(a);
32			n--;
33		}
34		cout<<a<<endl;
35		return 0;
36	}

● 判断题

  1. 每次循环找到的k一定不同。( ) {{ select(28) }}
  • ×
  1. 如果把第18~20行换成swap(str[j],str[j+1]),输出结果不变。( ) {{ select(29) }}
  • ×
  1. 去掉第32行会导致程序超时。( ) {{ select(30) }}
  • ×
  1. 输入的字符串可包含任意字母。( ) {{ select(31) }}
  • ×

● 选择题

  1. 输入NOIP 3,输出的结果是( )。 {{ select(32) }}
  • NPOI
  • NPIO
  • NIPO
  • PONI
  1. 输入CSP2021 2,输出的结果是( ) {{ select(33) }}
  • CPS2120
  • CSP2120
  • CPS2210
  • CSP2021

三、完善程序(每空3分,共30分)

1.杨辉三角是一个由数字排列成的三角形数表,一般形式如下:

1
1 1
1 2 1
1 3 3 1
1 4 6 4  1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
...  ...
#include<iostream>
#include<cstring>
#define maxn 110
using namespace std;
int  main(){
	int i,j,n,c[maxn][maxn];
	cin>>n;
	memset(c,0,sizeof(c));
	c[0][0]=1; c[1][0]=1; c[1][1]=1;
	for(  ⑴  ;i<n;i++){
 		  ⑵  
    	for(j=1;  ⑶  ;j++){ 
			   ⑷   
		}
	}
	for(i=0;  ⑸  ;i++){
		for(j=0;j<=i;j++){
			cout<<c[i][j]<<" ";
}
		cout<<endl;
	}
	return 0;
}

● 选择题

  1. ⑴处填( )。{{ select(34) }}
  • i=0
  • i=1
  • i=2
  • i=3
  1. ⑵处填( )。{{ select(35) }}
  • c[0][i]=1
  • c[0][0]=1
  • c[i][0]=1
  • c[i][0]=0
  1. ⑶处填( )。{{ select(36) }}
  • j<=n
  • j<=i
  • j<n
  • j<i
  1. ⑷处填( )。{{ select(37) }}
  • c[i][j]=c[i-1][j-1]+c[i-1][j-1]
  • c[i][j]=c[i-1][j-1]+c[i-1][j]
  • c[i][j]=c[i-1][j]+c[i-1][j]
  • c[i][j]=c[i][j]+c[i-1][j-1]
  1. ⑸处填( )。{{ select(38) }}
  • i<=n
  • i<n
  • i<=j
  • i<j

2.快排的代码实现

#include<bits/stdc++.h>
using namespace std;
int a[1000];
void qsort(int low,int high){
	int   ⑴ 
	int i=low,j=high; 
	while(  ⑵  ){
		while(i<high){ 
			if(a[i]>=sol){ 
				break; 
			} 
			else i++;
		}
		while(j>low){ 
			if(a[j]<=sol){ 
				break; 
			}
			else j--; 
		}
		if(i<=j){ 
			swap(a[i],a[j]); 
			  ⑶  
			  ⑷  
		}
	}
	if(low<j){
		qsort(low,j); 
	}
	if(high>i){ 
		qsort(i,high); 
	}
}
int main(){
	int i,n;
	cin>>n;
	for(i=0;i<n;i++){
		cin>>a[i];
	}
	  ⑸  
	for(int i=0;i<n;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}

● 选择题

  1. ⑴处填( )。{{ select(39) }}
  • sol=0
  • sol=1
  • sol=a[low]
  • sol=a[0]
  1. ⑵处填( )。{{ select(40) }}
  • i>=j
  • i>j
  • i<=j
  • i<j
  1. ⑶处填( )。{{ select(41) }}
  • i--
  • i++
  • i=0
  • i=1
  1. ⑷处填( )。{{ select(42) }}
  • j++
  • j--
  • j=0
  • j=1
  1. ⑸处填( )。{{ select(43) }}
  • qsort(0,n)
  • qsort(0,n-1)
  • qsort(0,0)
  • qsort(1,1)

2025年C2期末模拟考试

未参加
状态
已结束
规则
OI
题目
1
开始于
2025-2-11 15:30
结束于
2025-2-11 17:00
持续时间
1.5 小时
主持人
参赛人数
6