本文整理一套經典 C++ 教學大綱配套測試題,涵蓋 10 章核心內容(面向對象、表達式、程序結構、數組、指針、函數、類/對象、繼承、多態、流/文件),題型含單選 15 題、填空 15 題、程序分析 4 題、問答 2 題、程序設計 2 題,共 100 分。附標準答案與重點解析,適合期末複習、面試熱身、教學考核。
| 章節 | 教學內容 |
|---|---|
| 1 | 面向對象及 C++ 語言概述 |
| 2 | C++ 表達式 |
| 3 | 程序結構 |
| 4 | 數組 |
| 5 | 指針 |
| 6 | 函數 |
| 7 | 類與對象 |
| 8 | 基類與派生類 (繼承) |
| 9 | 多態性 |
| 10 | 流與文件 |
| 題型 | 數量 | 分值/題 | 小計 |
|---|---|---|---|
| 單選 | 15 | 2 | 30 |
| 填空 | 15 | 2 | 30 |
| 程序分析 | 4 | 4 | 16 |
| 問答 | 2 | 5 | 10 |
| 程序設計 | 2 | 7 | 14 |
| 合計 | 100 |
cin 以空白字符 (空格、制表、換行) 分隔,**逗號不是分隔符**,會被作為字符讀入導致輸入失敗。_No1 B. No.1 C. 12345 D. int
. 非法,數字不可開頭,int 為關鍵字。main() C. 其他函數必須在 main() 前 D. 從 main() 開始執行
int x; float v; 則 10+x+v 類型:A. int B. double C. float D. 不確定
int→float,整個表達式為 float。char i=55; B. char c='\n'; C. char c="G"; D. char c1,c2;
const char[2]),不可賦給 char;單引號 'G' 纔是字符常量。(a=2,b=5,b++,a+b) 值:A. 2 B. 5 C. 6 D. 8
int i=7; double d=3.4; cout< 輸出:A. 5.2 B. 5 C. 4.7 D. 4.5
i/2 整除=3;(int)d=3;3/2. 浮點除=1.5;3+1.5=4.5。stdio.h B. iostream.h C. stdlib.h D. math.h
<cmath> (命名空間 std),舊式 math.h 全局命名空間。/* ... */ 內 不能嵌套 其他塊註釋,但可包含行註釋 //。0xABC、長整型 -2L 合法。char a[]={'H','i','\0','b','o','b','y','\0'}; 則 sizeof(a)=8,strlen(a)=2 (遇第一個 \0 止)。int *p=new int(10); 釋放語句:delete p; (非 delete [] p,因非數組)。char *p="Good\0 luck!"; cout< 輸出 Good (遇 \0 終止)。
char *s="12345"; s+=3; cout<<*s; 輸出 4 (指針移動 3 位指向 '4')。p+q 無意義)。int a[][3] = {{9},{2,3},{4,5,6},{7}};
cout << a[2][1];
答案:**5** (第 3 行第 2 列,行索引 2,列索引 1)。"A\0BC" 含 4 可見字符 + 隱含結束 \0 = **5 字節** (雙重 \0 但只算一次結束符)。int a[4]={1,2,3}, *p=a+2;
cout << *++p << ' ' << p-a;
答案:**0 3** (++p 指向 a[3]=0,輸出 0;p-a = 3)。int *p=&i,i=100; (使用未聲明 i)、**char *p=&i;** (類型不匹配,需轉型)。delete) 自動調用,釋放資源 (內存、句柄、鎖)。virtual,派生類重寫,通過基類指針/引用調用實現動態綁定 (多態)。Complex 實現複數加減乘除、模、共軛,重載 + - * / << >> 運算符,編寫主函數測試。data.txt 中整數 (以空白分隔),統計並輸出最大值、最小值、平均值、中位數,結果寫入 result.txt。sizeof vs strlen)、隱式轉換、指針算術、運算符重載規則、虛函數表機制。