1[填空題]下列給定程序中,函數fun的功能是:把形參a所指數組中的奇數按原順序依次存放到a[0]、a[1]、a[2]…中,把偶數從數組中刪除,奇數個數通過函數值返回。
例如,若a所指數組中的數據最初排列為:9,1,4,2,3,6,5,8,7,刪除偶數后,a所指數組中的數據為:9,1,3,5,7,返回值為5。
請在程序的下畫線處填入正確的內容并將下畫線刪除.使程序得出正確的結果。
注意:部分源程序給出如下。
不得增行或刪行,也不得更改程序的結構!
試題程序:
【參考答案】
(1)1 (2)J++ (3)J
【考點分析】
本題考查:if語句,條件表達式;自增、自減運算符;函數返回值。
【解題思路】
填空l:根據題目要求,需進行奇偶數的判定,可以通過if條件語句來判斷數組元素是否為奇數,如果元素不能被2整除,則為奇數,所以填入if(a[i]%2==1)。
填空2:將為奇數的元素重新存放到數組的前面,同時下標增1。
填空3:函數返回值需要返回數組中奇數的個數,因此返
回變量J。
【解題寶典】
奇數和偶數的判定方法,對2求余運算,結果為0是偶數,結果為1是奇數。
自增l、自減1運算符:自增l運算符記為“++”,其功能是使變量的值自增1;自減1運算符記為“一一”,其功能是使變量值自減l。自增1、自減1運算符均為單目運算符,具有右結合性,有以下幾種形式:
++i:i自增l后再參與其他運算。
_-i:1’自減1后再參與其他運算。
i++:i參與運算后,i的值再自增1 0
i一一:i參與運算后,i的值再自減1。
2[單選題] 若有以下程序
則程序的輸出結果是
A.5,6,0B.6,0,0C.6。6,1D.5,6,1
參考答案:C
參考解析:本題重點考查C語言中for語句和邏輯表達式,for語句的一般形式為:
for(表達式1;表達式2;表達式3)語句其循環中的“表達式1(循環變量賦初值)”、“表達式2(循環條件)”和“表達式3(循環變量增量)”都是選擇項,即可以缺省,但“;”不能缺省。該題目中省了“表達式1(循環變量賦初值)”和“表達式3(循環變量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相當于while(a&&(b==0)){b+=a;a-=c++;}。因此c選項正確。
3[單選題] 以下選項中正確的定義語句是( )。
A.double,a,b;B.double a=b=7;C.double a;b;D.double a=7,b=7;
參考答案:D
參考解析:A選項中變量類型符double后面不能有逗號。B選項中變量b不能先使用再定義,應該寫成選項D中的格式。C選項中變量a后面應該是逗號而不是分號。
4[單選題] 有以下程序
程序要求輸出結構體中成員a的數據,以下不能填入橫線處的內容是
A.a.aB.*P.aC.P->aD.(*p).a
參考答案:B
參考解析:本題考查結構體變量的引用,題目中要求輸出結構體中成員a的數據,P為指針,* P為結構體變量,那么*P.a可以表示為結構體中成員a的數據。
5[單選題] 下列關于二叉樹的敘述中,正確的是( )。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數是度為2的結點數的兩倍
D.度為2的結點數是度為1的結點數的兩倍
參考答案:B
參考解析:根據二叉樹的基本性質3:在任意一棵二叉樹中,度為0的葉子結點總是比度為2的結點多一個。所以選擇8。
6[單選題] 數據庫管理系統是
A.操作系統的一部分
B.在操作系統支持下的系統軟件
C.一種編譯系統
D.一種操作系統
參考答案:B
參考解析:數據庫管理系統是數據庫的機構,它是一種系統軟件,負責數據庫中數據組織、數據操縱、數據維護、控制及保護和數據服務等。是一種在操作系統之上的系統軟件。
7[單選題] 有以下程序:
則以下函數調用語句錯誤的是( )。.
A.k=f(a,B.;B.k=add(a,B.;C.k=(*f)(a,B.;D.k={f(a,B.;
參考答案:D
參考解析:s與()的優先級,()的優先級高于*,因為(+f)()定義函數指針f。f指向函數的指針。f=add,將函數8dd()的首地址賦給指針f,所以調用函數add()可以寫為f(),其返回值是整型,不是指針類型,不能用t取指針指向的內存單元的數據,故k=*f(a,b)的調用方式錯誤。答案為D選項。
8[單選題] 若有定義:float x=1.5;int a=1,b=3,c=2;則正確的switch語句是( )。
參考答案:A
參考解析:B選項中switch((int)x);語句中不應該有最后的分號。switch(exprl),中的exprl不能用浮點類型或10n9類型,也不能為一個字符串,所以c錯誤。ca”后面常量表達式的類型必須與switch后面表達式的類型一致,所以D錯誤。
9[單選題] 以下關于字符串的敘述中正確的是( )。
A.空串比空格打頭的字符串小
B.兩個字符串中的字符個數相同時才能進行字符串大小的比較
C.可以用關系運算符對字符串的大小進行比較
D.C語言中有字符串類型的常量和變量
參考答案:A
參考解析:字符串比較大小是以第l個不相同字符的大小為標準的,跟長度沒有關系,B選項不正確;字符串比較大小除了使用庫函數s協emp()以外,就只能靠自己寫代碼來實現了。而不能通過關系運算符來比較大小。因為字符串在表達式中相當于const char+,即常字符指針,代表的是字符串的首地址,關系運算符會將兩個字符串的首地址值比較大小,這是毫無意義的。c選項不正確。C語言中只有字符串常量而沒有字符串變量,D選項描述不正確;空串的長度為0,而以空格打頭的字符串的長度至少為l,因此A選項是正確的。
10[單選題] 以下敘述中錯誤的是( )。
A.可以通過typedef增加新的類型
B.可以用typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedef可以為各種類型起別名,但不能為變量起別名
參考答案:A
參考解析:關鍵字typedef的作用只是將C語言中的已有的數據類型作了置換,并不是增加新的類型,所以A錯誤。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |