編程答案請參考:https://blog.csdn.net/Ares_song/article/details/107026084
一、2019年
選擇
1.C 2.D 3.A 4.C 5.B 6.C 7.A 8.D 9.A 10.B
判斷
11.對 12.錯 13.錯 14.對 15.錯 16.錯 17.對 18.錯 19.錯 20.錯
注:
12題,字符串有’\0′,有效字符+1
16題,以形參爲準
20題,只有定義變量的時候纔會去分配存儲空間
分析
21.
功能分析:尋找年齡最大的人,輸出其姓名和年齡
運行結果: Liming,58
22.
功能分析:字符串str2是否在字符串str1中,在輸出Yes!,不在輸出No!
運行結果:(1)No! (2)Yes!
23.
功能分析:將輸入的字符串中的大寫字母改成小寫,小寫字母改成大寫
運行結果:tHIS IS A TEST OF c pROGRAM lANGUAGE!
二、2018年
選擇
1.B 2.C 3.A 4.D 5.A 6.D 7.B 8.C 9.C 10.B
判斷
11.錯 12.對 13.對 14.錯 15.對 16.錯 17.錯 18.錯 19.錯 20.錯
注:
11題,分號;是語句的一部分,不是語句的分割符
18題,循環嵌套中,外層循環成立後再進入內循環
19題,一個指針變量只能指向同一類型的變量
分析
21.
功能分析:先統計輸入的字符串中各個字母的個數(不區分大小寫),最後根據字母表順序依次輸出大寫字母和對應的個數(這裏的字母個數是大寫加小寫)
運行結果:
A - 2
E - 1
G - 1
H - 1
I - 2
K - 1
M - 1
O - 2
P - 1
R - 2
S - 3
T - 3
22.
功能分析:分別輸出成績最高與最低的學生的姓名與分數。
運行結果:
Max is: Wanghai, 93
Min is: Liuhong, 62
23.
功能分析:將輸入的數據逆序輸出
運行結果:54321
三、2017年
選擇
1.C 2.A 3.D 4.A 5.D 6.A 7.C 8.B 9.A 10.D
注:
第8題,從右到左運算,先算a*a=9,此時a=3,a=a-9=-6,此時a=-6,最後運行a=a+a,即-6-6=-12
判斷
11.錯 12.錯 13.錯 14.對 15.錯 16.錯 17.錯 18.對 19.錯 20.對
分析
21.
功能分析:將輸入的數降序排列
運行結果: 67 56 48
22.
功能分析:輸出每個人的名字和對應的總分。
運行結果:
name: Zhangwei total=170.000000
name: Wangfeng total=150.000000
注:題目中的
k1
和k2
寫錯了,分別對應的是score1
和score2
23.
功能分析:輸入15個數存入一個二維數組中,輸出這15個數中的最大值和對應的下標。
運行結果:a[2][1]=92
四、2016年
選擇
1.A 2.C 3.A 4.A 5.A 6.D 7.B 8.A 9.D 10.B
注:第四題,賦值語句必須有一個‘=’號,C中i- -嚴格來說不是,但他實現了i=i-1的功能,這樣在功能上來說,算是賦值語句。但在選項中A更合適。B中少了分號,D強制轉換錯誤,應該是y=(int) x;
判斷
11.錯 12.對 13.錯 14.對 15.錯 16.錯 17.對 18.對 19.對 20.錯
注:
16題,結構體成員可以是指針類型(比如鏈表)
19題,strlen()函數不計算’\0′,字符串實際多長就是多長;而sizeof求字符串大小的時候需要加上’\0′
分析
21.
功能分析:對兩個數進行四則運算,其中若除數爲0或運算符不爲 + ,- ,*,/ 中的一種,則結果爲 0。
運行結果:
(1)12 + 120 = 132
(2)60 / 3 = 20
22.
功能分析:對輸入的 10個數進行由小到大升序排列(冒泡排序)
運行結果:
13 27 32 38 49 55 61 76 86 87
23.
功能分析:將字符串中小寫字母轉換成大寫字母
運行結果:
Output: INTRODUCTION OF C++ LANGUAGE
五、2015年
填空
(1) 1
(2) test1.txt
(3) int FindMax(int x[N][M])
(4) max = FindMax(x);
(5) return max;
(6) printf(“%c”, a[i]);
(7) 字符型
(8) 變量 a, b 的值互換
(9) c = 10 + 2 * ( n – 1 )
(10) age(n)
(11) 題目有誤,s1 爲字符串常量,常量的值是不能被改變的(若將*s1,*s2改爲s1[],s2[];則答案爲4)
(12) 3
改錯
10.
(1) char * p_str;
(2) if ((p_str=(char *)malloc(100)) == NULL)
(3) free(p_str);
11.
(4) void input(struct person * x);
(5) input(&y);
(6) void input(struct person * x)
12.
(7) double result = 0;
(8) result += 1.0 / fac;
13.
(9) int i;
(10) printf("*****\n");
分析
14.
功能分析:判斷數組 a 和數組 b 對應位置是否相當,若相等,則結束;若不等,則輸出 a 對應位置的元素
運行結果: 12 4 17 24 27
15.
功能分析:將字符串兩兩之間進行比較,升序排列
六、2014年
選擇
1.B 2.A 3.A 4.C 5.B
判斷
1.錯 2.對 3.錯 4.錯 5.對
分析
1.
功能分析:求1~10中的偶數和與奇數和
2.
功能分析:將數組a中元素按從小到大的次序進行排序
3.
99101:89.3
99102:85.5
99103:96.8
99104:78.6
4.
功能分析:
打開文件 fname.dat ,如果打開失敗則提示錯誤,並結束程序;如果成功打開該文件,則統計該文件中字符的個數並輸出字符的個數。
5.
(1) person + 3
(2) old < p->age
6.
(1) i
(2) +(*(a+i))
7.
(1) x[i][i]
(2) x[i-1][j-1] + x[i-1][j]