Partage de technologie

Juin 2024 CCF-GESP Certification de niveau de capacité de programmation C Programmation niveau 3 Analyse des questions d'examen réel

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cet article est inclus dans la colonne "Analyse des questions réelles de la certification niveau C++ CCF-GESP》, catalogue général des colonnes :Cliquez ici . Après vous être abonné, vous pouvez lire tous les articles de la rubrique.

1. Questions à choix multiples (2 points chacune, 30 points au total)

question 1

Les parents de Xiao Yang l'ont emmené dans un établissement de formation pour l'inscrire au niveau 1 de l'examen de certification GESP organisé par le CCF. Ensuite, il y a () langues de certification qu'il peut choisir.
A. 1
B. 2
C. 3
D. 4

Réponse : C

question 2

Dans l'organigramme ci-dessous, lorsque l'année est saisie comme 2024, il peut être déterminé que l'année représente une année bissextile et que février est censé avoir 29 jours. Ensuite, la case en forme de losange dans la figure doit être remplie ( ).
Insérer la description de l'image ici

A. (an%400==0) || (an%4==0)
B. (an%400==0) || (an%4==0 && an%100!=0)
C. (yr%400==0) && (yr%4==0)
D. (yr%400==0) && (yr%4==0 && yr%100!=0)

Réponse : B

question 3

Généralement, par défaut, les variables entières (int) dans les systèmes informatiques 64 bits sont toujours de 32 bits, donc la plage de données que les entiers peuvent représenter est ().
UN. 0 0 0 ~ 2 32 2^{32} 232
B. 0 0 0 ~ 2 64 2^{64} 264
C. − 2 31 -2^{31} 231 ~ ( 2 31 ) − 1 (2^{31})-1 (231)1
D. − 2 63 -2^{63} 263 ~ ( 2 63 ) − 1 (2^{63})-1 (263)1

Réponse : C

Question 4

Le code suivant convertit le nombre décimal en octal, puis ( ) doit être renseigné sur la ligne horizontale.

#include <iostream>

using namespace std;

void decimal2octal(int decimal) {
	int oct_number[100];
	int i = 0;
	
	while (decimal > 0) {
		__________________________ //在此处填入代码
	}
	for (int j = i - 1; j >= 0; j--) {
		cout << oct_number[j];
	}
	cout << endl;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

A. oct_number[i] = décimal % 8; décimal /= 8;
B. oct_number[i] = décimal / 8; décimal %/= 8;
C. oct_number[i++] = décimal % 8; décimal /= 8;
D. oct_number[i++] = décimal / 8; décimal %= 8;

Réponse : C

Question 5

Le nombre décimal correspondant au nombre binaire 101.11 est ( ).
A. 6.5
B. 5.5
C. 5.75
D. 5.25

Réponse : C

Question 6

Le résultat de sortie de l’organigramme suivant est ( ).
Insérer la description de l'image ici

A. 5
B. 10
C. 20
D. 30

Réponse : B

Question 7

La sortie du code suivant est ( ).

#include <iostream>
using namespace std;

int main() {
	int a = 12;
	int result = a >> 2;
	cout << result << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

A. 12
B. 6
C. 3
D. 1

Réponse : C

Question 8

La sortie du code suivant est ( ).

#include <iostream>
using namespace std;

int main() {
	int a = 5;
	int b = 10;
	
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	
	cout << "a = " << a << ", b = " << b << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

A. a = 5, b = 10
B. a = 5, b = 5
C. a = 10, b = 5
D. a = 10, b = 10

Réponse : C

Question 9

Si la chaîne est définie comme char str[] = « GESP » ;, alors la longueur du tableau de caractères str est ().
A. 0
B. 4
C. 5
D. 6

Réponse : C

Question 10

Remplissez les lignes horizontales ( ) dans le code suivant pour obtenir la sortie "7".

#include <iostream>
using namespace std;

int main() {
	int array[5] = {37524};
	
	int max = 0;
	for(int i=0; i<5; i++)
		if(______________) // 在此处填入代码
			max = array[i];
			
	cout << max << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

A. max &gt; tableau[i]
B. max &lt; tableau[i]
C. max = tableau[i]
D. Aucune des réponses ci-dessus n'est correcte

Réponse : B

Question 11

Xiao Yang répond à une question mathématique. La question nécessite de trouver un nombre de 1 à 35 divisible par 7, c'est-à-dire [7, 14, 21, 28, 35]. Quel code doit être rempli sur la ligne horizontale ? ( )

#include <iostream>
using namespace std;

int main() {
	int arr[35];
	int count = 0;
	for (int i = 1; i <= 35; i++) {
		if (i % 7 == 0)
			__________________________ // 在此处填入代码
	}
	for (int i = 0; i < count; i++)
		cout << arr[i] << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

A. arr[count++] = i;
B. arr[i] = count++;
C. arr[i] = nombre;
D. arr[compte] = compte++;

Réponse : A

Question 12

On sait que la représentation décimale codée en ASCII du caractère « 0 » est 48. Après avoir exécuté le code C++ suivant, le résultat est ().

#include <iostream>
using namespace std;

int main() {
	string s = "0629";
	
	int n = s.length();
	int x = 0;
	for(int i = 0; i < n; i++)
		x += s[i];
		
	cout << x << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

A. 17
B. 158
C. 209
D. 316

Réponse : C

Question 13

Une équipe de basket-ball de garçons d'école primaire recrute de nouveaux membres, et les membres qui rejoignent l'équipe doivent mesurer plus de 135 cm (à l'exclusion de 135 cm). Il y a 10 personnes enregistrées cette fois, et leurs tailles sont respectivement de 125, 127, 136, 134, 137, 138, 126, 135, 140 et 145. Complétez le code suivant pour savoir combien de nouveaux membres l'équipe peut recruter cette fois-ci ? ( )

#include <iostream>
using namespace std;

int main() {
	int arr[10] = {125, 127, 136, 134, 137, 138, 126, 135, 140, 145};
	
	int count = 0;
	for(int i=0; i<10; i++)
		__________________________ // 在此处填入代码
	
	cout << count << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

A. compte = arr[i]&gt;135? 1: 0;
B. compte += arr[i]&gt;135? 1: 0;
C. compte++;
D. Aucune des réponses ci-dessus n'est correcte

Réponse : B

Question 14

Quelle est l'instruction C++ qui peut afficher correctement ci-dessous : Ils planifient une fête pour l'anniversaire de leur ami ? ( )
A. cout &lt;&lt; 'Ils préparent une fête pour l'anniversaire de leur ami.' &lt;&lt; endl;
B. cout &lt;&lt; "Ils planifient une fête pour l'anniversaire de leur ami."&lt;&lt; endl;
C. cout &lt;&lt; 'Ils planifient une fête pour l'anniversaire de leur ami.'&lt;&lt; endl;
D. cout &lt;&lt; « Ils organisent une fête pour l'anniversaire de leur ami. » &lt;&lt; endl;

Réponse : D

Question 15

Si le résultat de sortie après l'exécution du code C++ suivant est "gesp ccf org cn", quel code doit être renseigné sur la ligne horizontale ? ( )

#include <iostream>
using namespace std;

int main() {
	string str = "gesp.ccf.org.cn";
	
	string delimiter = ".";
	string result="";
	string token;
	size_t found = str.find(delimiter);
	while (found != string::npos) {
		token = str.substr(0, found);
		result += token;
		result += " ";
		__________________________ // 在此处填入代码
		found = str.find(delimiter);
	}
	//最后一部分
	result += str;
		result += " ";
	cout << result << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

A. str = str.substr(trouvé + delimiter.length(), str.length() - 1);
B. str = str.substr(trouvé, str.length() );
C. str = str.substr(trouvé, str.length() -1);
D. Aucune des réponses ci-dessus n'est correcte

Réponse : A

2. Questions vraies ou fausses (2 points chacune, 20 points au total)

Question 16

Le test GESP est une certification de niveau de la capacité de programmation du certificateur. La capacité au même niveau est fondamentalement indépendante du langage de programmation.

Réponse : Exactement

Question 17

Le complément de 16 bits de l'entier -6 peut être représenté en hexadécimal sous la forme FFFA.

Réponse : Exactement

Question 18

L’avantage du complément est qu’il peut convertir les opérations de soustraction en opérations d’addition, simplifiant ainsi la conception du matériel informatique.

Réponse : Exactement

Question 19

La constante de caractère « 0 » est souvent utilisée pour indiquer la fin d'une chaîne, qui est la même que la constante de caractère « 0 ».

Réponse : Faux

Question 20

Tous les éléments du tableau peuvent être stockés de manière discontinue en mémoire.

Réponse : Faux

Question 21

En C++, vous pouvez attribuer des valeurs aux tableaux et aux éléments de chaque type de tableau de base.

Réponse : Faux

Question 22

S'il s'agit d'une variable de type int et que la valeur de l'expression ((a | 3) == 3) est vraie, cela signifie qu'elle est comprise entre 0 et 3 (éventuellement 0, éventuellement 3).

Réponse : Exactement

Question 23

Après avoir exécuté le code C++ suivant, le résultat de sortie est 8.

int a = 0b1010;
int b = 01100;
int c = a & b;
cout << c <<endl;
  • 1
  • 2
  • 3
  • 4

Réponse : Faux

Question 24

Après avoir exécuté le code C++ suivant, le résultat de sortie ne peut pas être 89781. ( )

#include <iostream>
#include <cstdlib> // 为了使用 rand() 和 srand()
#include <ctime> // 为了使用 time()

using namespace std;

int main() {
	// 设置随机种子
	srand(time(NULL));
	
	int i = 1;
	int s[5];
	while(i <= 5)
	{
		int a = rand() % 10;
		if(a % 3 == (i + 1) % 3)
			s[i++] = a;
	}
	for(int i = 1; i <= 5; i++)
		cout << s[i];
	cout << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

Réponse : Exactement

Question 25

Coupez le nombre entier 3025 en deux nombres, 30 et 25. À ce stade, mettez au carré la somme de ces deux nombres et le résultat calculé est égal au nombre d'origine. (30 + 25) × (30+ 25) = 55 × 55 = 3025. Ce nombre est appelé « nombre de coup de foudre ». Vous pouvez utiliser des méthodes d’énumération pour rechercher tous les nombres à quatre chiffres qui remplissent ces conditions. ( )

Réponse : Exactement

3. Questions de programmation (25 points chacune, 50 points au total)

Question 26

Nom de la question: changement
limite de temps: 1,0 s
limite de mémoire:512,0 Mo
Description des questions
Xiao Yang a appris le changement de technologie de cryptage, dans lequel toutes les lettres majuscules sont décalées vers l'arrière d'un nombre fixe. Le processus de décalage traite l'alphabet comme un anneau connecté bout à bout. Par exemple, lorsque le décalage est de 3, la lettre majuscule A sera remplacée par D et la lettre majuscule Z sera remplacée par C. Globalement, l'alphabet majuscule ABCDEFGHIJKLMNOPQRSTUVWXYZ. sera remplacé par DEFGHIJKLMNOPQRSTUVWXYZABC.
Remarque : Lorsque le décalage est un multiple de 26, chaque lettre majuscule reviendra à sa position d'origine exactement après le décalage, c'est-à-dire que l'alphabet majuscule ABCDEFGHIJKLMNOPQRSTUVWXYZ restera inchangé après le décalage.
Format d'entrée
La première ligne contient un entier positif nnn
Format de sortie
La sortie est décalée nnn Dans ce cas, l'alphabet majuscule ABCDEFGHIJKLMNOPQRSTUVWXYZ est le résultat d'un remplacement d'équipe.
Échantillon 1

3
  • 1
DEFGHIJKLMNOPQRSTUVWXYZABC
  • 1

Exemple d'explication
Lorsque le décalage est de 3, la lettre majuscule A sera remplacée par D, et la lettre majuscule Z sera remplacée par C. Globalement, l'alphabet majuscule ABCDEFGHIJKLMNOPQRSTUVWXYZ sera remplacé par DEFGHIJKLMNOPQRSTUVWXYZABC.
plage de données
Pour toutes les données, il est garanti d'avoir 1 ≤ n ≤ 100 1≤n≤1001n100

Procédure de référence

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int fl=0;
	for(int i=0;i<26;i++){
		int j = (i+n)%26;
		char ch = 'A'+j;
		cout<<ch;
	}
	cout<<"n";
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

Question 27

Nom de la question : Trouver des multiples
limite de temps: 1,0 s
limite de mémoire:512,0 Mo
Description des questions
Xiao Yang a un contenant nnn séquence d'entiers positifs A = [ a 1 , a 2 , . . . , un ] A=[a_1,a_2,...,a_n]UN=[un1,un2,...,unn], il veut savoir s'il y a je ( 1 ≤ i ≤ n ) i(1≤i≤n)je(1jen) faire ai a_iunje est une séquence AAUN Multiples de tous les nombres dans .
Format d'entrée
La première ligne contient un entier positif ttt, représente le nombre de groupes de cas de test.
Ensuite est ttt Ensemble de cas de tests.
Pour chaque ensemble de cas de test, il y a deux lignes.Parmi eux, la première ligne contient un entier positif nnn;La deuxième ligne contient nnn un entier positif, représentant la séquence AAUN
Format de sortie
Pour chaque ensemble de cas de test, s'il existe je ( 1 ≤ i ≤ n ) i(1≤i≤n)je(1jen) Satisfaisant pour tous k ( 1 ≤ k ≤ n ) aik(1≤k≤n)a_ik(1kn)unje Oui a_kunk Un multiple de ,sortie Oui, sinon sortie Non.
Échantillon 1

2
3
1 2 4
5
1 2 3 4 5
  • 1
  • 2
  • 3
  • 4
  • 5
Yes
No
  • 1
  • 2

Exemple d'explication
Pour le premier ensemble de données, pour un 3 = 4 a_3=4un3=4,satisfaire un 3 a_3un3 Oui un 1 a_1un1 et un 2 a_2un2 multiples.
plage de données
Pour toutes les données, il est garanti d'avoir 1 ≤ t ≤ 10 , 1 ≤ n ≤ 1 0 5 , 1 ≤ ai ≤ 1 0 9 1≤t≤10,1≤n≤10^5,1≤a_i≤10^91t10,1n105,1unje109
Procédure de référence

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N];
int main(){
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		int x = 0;
		for(int i=1;i<=n;i++){
			cin>>a[i];
			x =max(x,a[i]);
		}
		int fl = 0;
		for(int i=1;i<=n;i++){
			if(x%a[i])fl=1;
		}
		if(fl)cout<<"Non";
		else cout<<"Yesn";
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23