Technologieaustausch

Juni 2024 CCF-GESP Programming Ability Level Zertifizierung C Programming Level 3 Analyse realer Prüfungsfragen

2024-07-12

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

Dieser Artikel ist in der Spalte „Analyse realer Fragen zur CCF-GESP-Zertifizierung auf C++-Ebene》, allgemeiner Spaltenkatalog:klicken Sie hier . Nach dem Abonnieren können Sie alle Artikel der Rubrik lesen.

1. Multiple-Choice-Fragen (je 2 Punkte, insgesamt 30 Punkte)

Frage 1

Xiao Yangs Eltern brachten ihn zu einer Ausbildungseinrichtung, um ihn für Level 1 der von CCF organisierten GESP-Zertifizierungsprüfung anzumelden. Dann gibt es ()Zertifizierungssprachen, die er wählen kann.
A. 1
B. 2
C. 3
D. 4

Antwort: C

Frage 2

Wenn im folgenden Flussdiagramm das Jahr 2024 eingegeben wird, kann festgestellt werden, dass das Jahr ein Schaltjahr darstellt und der Februar mit 29 Tagen ausgegeben wird. Dann sollte das Rautenkästchen in der Abbildung ausgefüllt werden.
Fügen Sie hier eine Bildbeschreibung ein

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

Antwort: B

Frage 3

Im Allgemeinen sind Ganzzahlvariablen (int) in 64-Bit-Computersystemen standardmäßig immer noch 32-Bit, sodass der Datenbereich, den Ganzzahlen darstellen können, () ist.
A. 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

Antwort: C

Frage 4

Der folgende Code wandelt Dezimalzahlen in Oktalzahlen um, dann sollte ( ) in der horizontalen Zeile ausgefüllt werden.

#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. Oktettzahl[i] = Dezimalzahl % 8; Dezimalzahl /= 8;
B. Oktettzahl[i] = Dezimalzahl / 8; Dezimalzahl %/= 8;
C. Oktalzahl[i++] = Dezimal % 8; Dezimal /= 8;
D. Oktettzahl[i++] = Dezimalzahl / 8; Dezimalzahl %= 8;

Antwort: C

Frage 5

Die Dezimalzahl, die der Binärzahl 101.11 entspricht, ist ( ).
A. 6.5
B. 5.5
C. 5.75
D. 5.25

Antwort: C

Frage 6

Das Ausgabeergebnis des folgenden Flussdiagramms ist ().
Fügen Sie hier eine Bildbeschreibung ein

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

Antwort: B

Frage 7

Die Ausgabe des folgenden Codes ist ().

#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

Antwort: C

Frage 8

Die Ausgabe des folgenden Codes ist ().

#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

Antwort: C

Frage 9

Wenn die Zeichenfolge als char str[] = „GESP“; definiert ist, beträgt die Länge des Zeichenarrays str ().
EIN. 0
B. 4
C. 5
D. 6

Antwort: C

Frage 10

Füllen Sie die horizontalen Linien ( ) im folgenden Code aus, um die Ausgabe „7“ zu erhalten.

#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; Array [i]
B. max &lt; array[i]
C. max = Array[i]
D. Keine der oben genannten Aussagen ist richtig

Antwort: B

Frage 11

Xiao Yang beantwortet eine mathematische Frage und muss eine Zahl von 1 bis 35 finden, die durch 7 teilbar ist, also [7, 14, 21, 28, 35]. ( )

#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[Anzahl++] = i;
B. arr[i] = Anzahl++;
C. arr[i] = Anzahl;
D. arr[Anzahl] = Anzahl++;

Antwort: A

Frage 12

Es ist bekannt, dass die ASCII-codierte Dezimaldarstellung des Zeichens „0“ 48 ist. Nach der Ausführung des folgenden C++-Codes lautet die Ausgabe ().

#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

Antwort: C

Frage 13

Die Basketballmannschaft eines Grundschuljungen rekrutiert neue Mitglieder, und die Mitglieder, die der Mannschaft beitreten, müssen über 135 cm groß sein (ausgenommen 135 cm). Diesmal sind 10 Personen registriert und ihre Körpergrößen betragen 125, 127, 136, 134, 137, 138, 126, 135, 140 bzw. 145. Vervollständigen Sie den folgenden Code, um herauszufinden, wie viele neue Mitglieder das Team dieses Mal rekrutieren kann? ( )

#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. Anzahl = arr[i]&gt;135? 1: 0;
B. Anzahl += arr[i]&gt;135? 1: 0;
C. zählen++;
D. Keine der oben genannten Aussagen ist richtig

Antwort: B

Frage 14

Welche C++-Anweisung kann korrekt ausgegeben werden? Sie planen eine Party zum Geburtstag ihres Freundes.? ( )
A. cout &lt;&lt; „Sie planen eine Party zum Geburtstag ihres Freundes.“ &lt;&lt; endl;
B. cout &lt;&lt; „Sie planen eine Party zum Geburtstag ihres Freundes.“ &lt;&lt; endl;
C. cout &lt;&lt; „Sie planen eine Party zum Geburtstag ihres Freundes.“ &lt;&lt; endl;
D. cout &lt;&lt; „Sie planen eine Party zum Geburtstag ihres Freundes.“ &lt;&lt; endl;

Antwort: D

Frage 15

Wenn das Ausgabeergebnis nach der Ausführung des folgenden C++-Codes „gesp ccf org cn“ lautet, welcher Code sollte dann in die horizontale Zeile eingefügt werden? ( )

#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(gefunden + Trennzeichen.Länge(), str.Länge() - 1);
B. str = str.substr(gefunden, str.length() );
C. str = str.substr(gefunden, str.length() -1);
D. Keine der oben genannten Aussagen ist richtig

Antwort: A

2. Wahre oder falsche Fragen (jeweils 2 Punkte, insgesamt 20 Punkte)

Frage 16

Der GESP-Test ist eine Level-Zertifizierung der Programmierfähigkeit des Zertifizierers. Die Fähigkeit auf dem gleichen Niveau ist grundsätzlich unabhängig von der Programmiersprache.

Antwort: Richtig

Frage 17

Das 16-Bit-Komplement der Ganzzahl -6 kann hexadezimal als FFFA dargestellt werden.

Antwort: Richtig

Frage 18

Der Vorteil des Komplements besteht darin, dass es Subtraktionsoperationen in Additionsoperationen umwandeln kann, wodurch das Design der Computerhardware vereinfacht wird.

Antwort: Richtig

Frage 19

Die Zeichenkonstante „0“ wird häufig verwendet, um das Ende einer Zeichenfolge anzuzeigen, was mit der Zeichenkonstante „0“ identisch ist.

Antwort: Falsch

Frage 20

Alle Elemente des Arrays können diskontinuierlich im Speicher gespeichert werden.

Antwort: Falsch

Frage 21

In C++ können Sie Arrays und Elementen jedes grundlegenden Array-Typs Werte zuweisen.

Antwort: Falsch

Frage 22

Wenn es sich um eine Variable vom Typ int handelt und der Wert des Ausdrucks ((a | 3) == 3) wahr ist, bedeutet dies, dass er zwischen 0 und 3 liegt (möglicherweise 0, möglicherweise 3).

Antwort: Richtig

Frage 23

Nach der Ausführung des folgenden C++-Codes ist das Ausgabeergebnis 8.

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

Antwort: Falsch

Frage 24

Nach der Ausführung des folgenden C++-Codes darf das Ausgabeergebnis nicht 89781 sein. ( )

#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

Antwort: Richtig

Frage 25

Schneiden Sie die ganze Zahl 3025 in zwei Zahlen, 30 und 25. Quadrieren Sie zu diesem Zeitpunkt die Summe dieser beiden Zahlen, und das berechnete Ergebnis ist gleich der ursprünglichen Zahl. (30 + 25) × (30+ 25) = 55 × 55 = 3025. Diese Zahl wird „Blitzschlagzahl“ genannt. Mithilfe von Aufzählungsmethoden können Sie alle vierstelligen Zahlen finden, die solche Bedingungen erfüllen. ( )

Antwort: Richtig

3. Programmierfragen (je 25 Punkte, insgesamt 50 Punkte)

Frage 26

Fragename: Schicht
Zeitlimit:1,0 s
Speicherlimit:512,0 MB
Beschreibung der Frage
Xiao Yang lernte den Wandel der Verschlüsselungstechnologie kennen, bei dem alle Großbuchstaben um eine feste Zahl nach hinten verschoben werden. Der Offset-Prozess behandelt das Alphabet als einen an seinen Enden verbundenen Ring. Wenn der Offset beispielsweise 3 beträgt, wird der Großbuchstabe A durch D und der Großbuchstabe Z durch C ersetzt. Insgesamt ergibt sich das Großbuchstabe ABCDEFGHIJKLMNOPQRSTUVWXYZ wird durch DEFGHIJKLMNOPQRSTUVWXYZABC ersetzt.
Hinweis: Wenn der Versatz ein Vielfaches von 26 ist, kehrt jeder Großbuchstabe nach dem Versatz genau an seine ursprüngliche Position zurück, d. h. der Großbuchstabe ABCDEFGHIJKLMNOPQRSTUVWXYZ bleibt nach dem Versatz unverändert.
Eingabeformat
Die erste Zeile enthält eine positive Ganzzahl neinN
Ausgabeformat
Die Ausgabe erfolgt im Offset neinN In diesem Fall ist das Großbuchstabe ABCDEFGHIJKLMNOPQRSTUVWXYZ das Ergebnis der Schichtersetzung.
Probe 1

3
  • 1
DEFGHIJKLMNOPQRSTUVWXYZABC
  • 1

Beispielerklärung
Wenn der Versatz 3 beträgt, wird der Großbuchstabe A durch D und der Großbuchstabe Z durch C ersetzt. Insgesamt wird das Großbuchstabe ABCDEFGHIJKLMNOPQRSTUVWXYZ durch DEFGHIJKLMNOPQRSTUVWXYZABC ersetzt.
Datenreichweite
Für alle Daten ist dies garantiert 1 ≤ n ≤ 100 1≤n≤1001N100

Referenzverfahren

#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

Frage 27

Fragename: Vielfache finden
Zeitlimit:1,0 s
Speicherlimit:512,0 MB
Beschreibung der Frage
Xiao Yang hat einen Inhalt neinN Folge positiver Ganzzahlen A = [a1, a2, ...,a_n] A=[a_1,a_2,...,a_n]A=[A1,A2,...,AN], er will wissen, ob das so ist i ( 1 ≤ i ≤ n ) i(1≤i≤n)ichchchchchchch(1ichchchchchchchN) machen ai a_iAichchchchchchch ist eine Folge AAA Vielfache aller Zahlen in .
Eingabeformat
Die erste Zeile enthält eine positive Ganzzahl ttT, stellt die Anzahl der Testfallgruppen dar.
Der nächste ist ttT Satz von Testfällen.
Für jeden Satz von Testfällen gibt es zwei Zeilen.Unter diesen enthält die erste Zeile eine positive Ganzzahl neinN;Die zweite Zeile enthält neinN eine positive ganze Zahl, die die Sequenz darstellt AAA
Ausgabeformat
Für jeden Satz von Testfällen, falls vorhanden i ( 1 ≤ i ≤ n ) i(1≤i≤n)ichchchchchchch(1ichchchchchchchN) Für alle zufriedenstellend k ( 1 ≤ k ≤ n ) aik(1≤k≤n)a_ik(1kN)Aichchchchchchch Ja ak a_kAk Ein Vielfaches von , Ausgabe Ja, andernfalls Ausgabe Nein.
Probe 1

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

Beispielerklärung
Für den ersten Datensatz, z ein 3 = 4 a_3=4A3=4,erfüllen ein 3 ein_3A3 Ja ein 1 ein_1A1 Und ein 2 ein_2A2 Vielfache.
Datenreichweite
Für alle Daten ist dies garantiert 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,1Aichchchchchchch109
Referenzverfahren

#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