民國111年 第2梯次 電腦軟體設計(C++)乙級 學科
第63題
下列C++語言程式片段中,那些可以正確執行?
題目
下列C++語言程式片段中,那些可以正確執行?
- (1) char s1[10]; s1="Ctest";
- (2) char s3[20]="Ctest";
- (3) char s2[]={'C', 't', 'e', 's', 't','\n'};
- (4) char *s4="Ctest\n"
官方答案
(2) char s3[20]="Ctest";、(3) char s2[]={'C', 't', 'e', 's', 't','\n'};、(4) char *s4="Ctest\n"
解析
C/C++ 字元陣列與字串指標有嚴格限制。選項 1:陣列 s1 宣告後,陣列名稱為不可修改左值,不能用指派運算子直接存入字串常數,編譯失敗,故錯誤。選項 2:宣告時直接以字串常數初始化 char s3[20]="Ctest",合法。選項 3:以字元清單初始化 char s2[]={'C','t','e','s','t','\n'},長度由初值推導,合法(注意未含 '\0' 結尾)。選項 4:char *s4="Ctest\n" 讓指標指向字串常數,C 語言合法(C++11 起建議 const char*,但仍可編譯)。故可正確執行者為 2、3、4。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。