私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
この記事はコラム「C++ レベル認定 CCF-GESP の実際の質問の分析》、コラム総合カタログ:ここをクリック 。ご購読いただくとコラムのすべての記事をお読みいただけます。
Xiao Yang の両親は、CCF が主催する GESP 認定試験のレベル 1 に登録するために彼を訓練機関に連れて行きました。そして、彼が選択できる認定言語があります。
A. 1
B. 2
C.3
D.4
答え:C
以下のフローチャートで、yr に 2024 と入力すると、yr は閏年であると判断でき、2 月は 29 日であると出力され、図のひし形のボックスが埋められます。
A. (年%400==0) || (年%4==0)
B. (yr%400==0) || (年%4==0 && 年%100!=0)
C. (年%400==0) && (年%4==0)
D. (yr%400==0) && (yr%4==0 && yr%100!=0)
答え:B
一般に、デフォルトでは、64 ビット コンピュータ システムの整数変数 (int) は 32 ビットのままであるため、整数が表現できるデータ範囲は () です。
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
答え:C
次のコードは 10 進数を 8 進数に変換し、水平線に ( ) を記入する必要があります。
#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;
}
A. oct_number[i] = 小数点 % 8; 小数点 /= 8;
B. oct_number[i] = 小数点 / 8; 小数点 %/= 8;
C. oct_number[i++] = 小数点 % 8; 小数点 /= 8;
D. oct_number[i++] = 小数点 / 8; 小数点 %= 8;
答え:C
2 進数 101.11 に対応する 10 進数は ( ) です。
6.5 回答
B. 5.5
5.75 秒
5.25 翻訳
答え:C
以下のフローチャートの出力結果は( )となります。
A. 5
B. 10
20世紀
D.30
答え:B
次のコードの出力は ( ) です。
#include <iostream>
using namespace std;
int main() {
int a = 12;
int result = a >> 2;
cout << result << endl;
return 0;
}
A. 12
B.6
C.3
D. 1
答え:C
次のコードの出力は ( ) です。
#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;
}
A. a = 5、b = 10
B. a = 5、b = 5
C. a = 10、b = 5
D. a = 10、b = 10
答え:C
文字列が char str[] = “GESP”; として定義されている場合、文字配列 str の長さは () です。
A.0
B.4
C.5
D.6
答え:C
次のコードの横線 ( ) を埋めて、出力を「7」にします。
#include <iostream>
using namespace std;
int main() {
int array[5] = {3,7,5,2,4};
int max = 0;
for(int i=0; i<5; i++)
if(______________) // 在此处填入代码
max = array[i];
cout << max << endl;
return 0;
}
A. 最大値 > 配列[i]
B. 最大値 < 配列[i]
C. 最大 = 配列[i]
D. 上記のどれも正しくありません
答え:B
Xiao Yang は数学の問題を行っています。この問題では、1 から 35 までの 7 で割り切れる数字、つまり [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;
}
A. arr[count++] = i;
B. arr[i] = count++;
C. arr[i] = カウント;
D. arr[count] = count++;
答え: A
文字「0」の ASCII エンコード 10 進表現は 48 であることが知られています。次の C++ コードを実行すると、出力は () になります。
#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;
}
A. 17
B. 158
209年頃
紀元316年
答え:C
小学生の男子バスケットボールチームが新入部員を募集しており、入部条件は身長135cm以上(135cmを除く)であることが求められる。今回の登録者は10名で、身長はそれぞれ125、127、136、134、137、138、126、135、140、145。次のコードを完成させて、今回チームが何人の新しいメンバーを採用できるかを調べてください。 ( )
#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;
}
A. count = arr[i]>135? 1: 0;
B. count += arr[i]>135? 1: 0;
C. カウント++;
D. 上記のどれも正しくありません
答え:B
彼らは友人の誕生日のためにパーティーを計画しています. を正しく出力できる C++ ステートメントは何ですか? ( )
A. cout <<「彼らは友達の誕生日パーティーを計画しています。」 << endl;
B. cout <<「彼らは友達の誕生日パーティーを計画しています。」<< endl;
C. cout <<「彼らは友達の誕生日パーティーを計画しています。」<< endl;
D. cout <<「彼らは友達の誕生日パーティーを計画しています。」 << endl;
答え:D
以下のC++コードを実行した後の出力結果が「gesp ccf org cn」の場合、横行にはどのコードを記入すればよいでしょうか? ( )
#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;
}
A. str = str.substr(found + delimiter.length(), str.length() - 1);
B. str = str.substr(found, str.length() );
C. str = str.substr(見つかった、str.length() -1);
D. 上記のどれも正しくありません
答え: A
GESP テストは、認定者のプログラミング能力をレベル認定するものであり、同じレベルの能力は基本的にプログラミング言語に依存しません。
答え: 正解
整数 -6 の 16 ビットの補数は、16 進数で FFFA として表すことができます。
答え: 正解
補数の利点は、減算演算を加算演算に変換できるため、コンピューターのハードウェア設計が簡素化されることです。
答え: 正解
文字定数「0」は文字列の終わりを示すためによく使用されます。これは文字定数「0」と同じです。
答え: 違います
配列のすべての要素はメモリに不連続に格納できます。
答え: 違います
C++ では、配列および各基本タイプの配列の要素に値を割り当てることができます。
答え: 違います
これが int 型の変数で、式 ((a | 3) == 3) の値が true の場合、それは 0 と 3 (おそらく 0、おそらく 3) の間であることを意味します。
答え: 正解
次の C++ コードを実行すると、出力結果は 8 になります。
int a = 0b1010;
int b = 01100;
int c = a & b;
cout << c <<endl;
答え: 違います
次の C++ コードを実行すると、出力結果が 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;
}
答え: 正解
整数 3025 を 30 と 25 の 2 つの数値に切り分けます。このとき、これら 2 つの数値の和を 2 乗すると、計算結果は元の数値と等しくなります。 (30 + 25) × (30 + 25) = 55 × 55 = 3025。この数値を「落雷数」と呼びます。列挙メソッドを使用して、このような条件を満たす 4 桁の数値をすべて検索できます。 ( )
答え: 正解
質問名: シフト
制限時間:1.0秒
メモリ制限:512.0MB
質問の説明
Xiao Yang は、すべての大文字が一定の数値だけ後方にシフトされる暗号化テクノロジーの移行を学びました。オフセット プロセスでは、アルファベットが端から端まで接続されたリングとして扱われます。たとえば、オフセットが 3 の場合、大文字の A は D に置き換えられ、大文字の Z は C に置き換えられます。全体として、大文字のアルファベットは ABCDEFGHIJKLMNOPQRSTUVWXYZ になります。は DEFGHIJKLMNOPQRSTUVWXYZABC に置き換えられます。
注: オフセットが 26 の倍数の場合、各大文字はオフセット後の正確な元の位置に戻ります。つまり、大文字のアルファベット ABCDEFGHIJKLMNOPQRSTUVWXYZ はオフセット後も変更されません。
入力フォーマット
最初の行には正の整数が含まれています んんん。
出力フォーマット
出力がオフセットされています んんん この場合、大文字のアルファベット ABCDEFGHIJKLMNOPQRSTUVWXYZ はシフト置換の結果です。
サンプル1
3
DEFGHIJKLMNOPQRSTUVWXYZABC
サンプル説明
オフセットが 3 の場合、大文字の A は D に置き換えられ、大文字の Z は C に置き換えられます。全体として、大文字のアルファベット ABCDEFGHIJKLMNOPQRSTUVWXYZ は DEFGHIJKLMNOPQRSTUVWXYZABC に置き換えられます。
データ範囲
すべてのデータについて、次のことが保証されています。 1≤n≤100 1≤n≤1001≤ん≤100。
参考手順
#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.0秒
メモリ制限:512.0MB
質問の説明
Xiao Yangには含まれています んんん 正の整数のシーケンス A = [ a 1 , a 2 , . . . , an ] A=[a_1,a_2,...,a_n]あ=[1つの1,1つの2,...,1つのん]、彼は、があるかどうかを知りたいと思っています。 わたし ( 1 ≤ わたし ≤ n ) わたし ( 1 ≤ わたし ≤ n )私(1≤私≤ん) 作る あいあい1つの私 シーケンスです AAあ 内のすべての数値の倍数。
入力フォーマット
最初の行には正の整数が含まれています ttt, はテスト ケース グループの数を表します。
次は ttt テスト ケースのセット。
テスト ケースのセットごとに 2 行があります。その中で、最初の行には正の整数が含まれています んんん; 2行目には次の内容が含まれます んんん シーケンスを表す正の整数 AAあ。
出力フォーマット
テスト ケースのセットごとに、 わたし ( 1 ≤ わたし ≤ n ) わたし ( 1 ≤ わたし ≤ n )私(1≤私≤ん) 誰もが満足できる k ( 1 ≤ k ≤ n ) aik(1≤k≤n)a_iけ(1≤け≤ん)1つの私 はい ああ、ああ1つのけ の倍数の場合は Yes が出力され、それ以外の場合は No が出力されます。
サンプル1
2
3
1 2 4
5
1 2 3 4 5
Yes
No
サンプル説明
最初のデータセットについては、 3 = 4 a_3=41つの3=4、満足する 3 a_31つの3 はい 1 1_11つの1 そして 2 ...1つの2 倍数。
データ範囲
すべてのデータについて、次のことが保証されています。 1 ≤ t ≤ 10 , 1 ≤ n ≤ 1 0 5 , 1 ≤ ai ≤ 1 0 9 1≤t≤10,1≤n≤10^5,1≤a_i≤10^91≤t≤10,1≤ん≤105,1≤1つの私≤109。
参考手順
#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";
}
}