一、選擇題(每小題1分,共40分)
(1)計(jì)算機(jī)能直接執(zhí)行的程序是( )。
A.源程序
B.目標(biāo)程序
C.匯編程序
D.可執(zhí)行程序
(2)以下敘述中正確的是( )。
A.c語(yǔ)言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_(kāi)始執(zhí)行
B.可以在程序中由用戶(hù)指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_(kāi)始執(zhí)行
C.c語(yǔ)言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開(kāi)始執(zhí)行、
D.main的各種大小寫(xiě)拼寫(xiě)形式都可以作為主函數(shù)名,如MAIN,Main等
(3)以下選項(xiàng)中可用做c程序合法實(shí)數(shù)的是( )。
A.3.0e0.2
B..1e0
C.E9
D.9.12E
(4)下列定義變量的語(yǔ)句中錯(cuò)誤的是( )。
A.int jnt;
B.double int_;
C.char For;
D.float US$;
(5)表達(dá)式:(im)((double)9/2)一9%2的值是( )。
A.0
B.3
C.4
D.5
(6)設(shè)變量均已正確定義,若要通過(guò)
scaIIf(”%d%c%d%c”,&al,&el,&a2,&c2);
語(yǔ)句為變量al和a2賦數(shù)值l0和20,為變量cl和c2賦字符x和Y。以下所示的輸入形式中正確的是( )。(注:口代表空格字符)

(7)以下選項(xiàng)中不能作為c語(yǔ)言合法常量的是( )。.
A.0.1e+6
B.’cd’.
C.”、a”
D.’\011
(8)if語(yǔ)句的基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于“表=迭式”值的敘述中正確的是( )。
A.必須是邏輯值
B.必須是整數(shù)值
C.必須是正數(shù)
D.可以是任意合法的數(shù)值
(9)有如下嵌套的if語(yǔ)句:

以下選項(xiàng)中與上述if語(yǔ)句等價(jià)的語(yǔ)句是( )。
k=(a
B.B.:((b>C.?b:
c.;B.k=(a
D.k=(a
(10)有以下程序:

程序執(zhí)行后的輸出結(jié)果是( )。
A.1
B.2
C.4
D.死循環(huán)
(11)有以下程序:

程序運(yùn)行后的輸出結(jié)果是( )。
A.Afternoon
B.ftemoon
C.Morning
D.oming
(12)有以下程序,程序中庫(kù)函數(shù)islower(ch)用以判斷ch中的字母是否為小寫(xiě)字母:

程序運(yùn)行后的輸出結(jié)果是( )。
A.ab cd EFg!
B.Ab Cd EFg!
C.ab cd EFG!
D.aB cD EFG!
(13)有以下程序:

程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.9
C.6
D.8
(14)有以下程序:

程序執(zhí)行后的輸出結(jié)果是( )。
A.55.
B.50
C.45
D.60
(15)有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句:

則以下scanf函數(shù)調(diào)用語(yǔ)句有錯(cuò)誤的是( )。
scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].a(chǎn)ge);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
(16)若有以下語(yǔ)句:typedef struct S{int 9;char h;}T;以下敘述中正確的是( )。
A.可用s定義結(jié)構(gòu)體變量
B.可用T定義結(jié)構(gòu)體變量
C.S是struct類(lèi)型的變量
D.T是struct S類(lèi)型的變量


程序運(yùn)行后的輸出結(jié)果是( )。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
(18)設(shè)有宏定義:
#define IsDIV(k,n)((k%1"1==1)?1:O)且變量m已正確定義并賦值,則宏調(diào)用:
IsDIV(m,5)&&IsDIV(m,7)為真時(shí)所要表達(dá)的是( )。
判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余l(xiāng)
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
(19)有以下程序:

程序運(yùn)行后的輸出結(jié)果是( )。
A.3
B.1
C.2
D.0
(20)有以下程序:


程序運(yùn)行后的輸出結(jié)果是( )。
A.1 2
B.1 4
C.123 4
D.123 456
一、選擇題
(1)D【解析】計(jì)算機(jī)能直接執(zhí)行的程序是二進(jìn)制的可執(zhí)行程序,擴(kuò)展名為.exe。所以選擇D選項(xiàng)。
(2)A【解析】C語(yǔ)言中的主函數(shù)只能是main()函數(shù),不能任意指定,所以B選項(xiàng)錯(cuò)誤。C語(yǔ)言從主函數(shù)main()開(kāi)始,到主函數(shù)main()結(jié)束,所以C選項(xiàng)錯(cuò)誤。主函數(shù)必須寫(xiě)成小寫(xiě)的main,不能混淆大小寫(xiě),所以D選項(xiàng)錯(cuò)誤。
(3)B【解析】A選項(xiàng)中e后面的指數(shù)必須為整數(shù),所以錯(cuò)誤。C語(yǔ)言規(guī)定,E之前必須要有數(shù)字,所以c選項(xiàng)錯(cuò)誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項(xiàng)錯(cuò)誤。
(4)D【解析】C語(yǔ)言規(guī)定,變量命名必須符合標(biāo)識(shí)符的命名規(guī)則。D選項(xiàng)中包含了非法字符“$”,所以錯(cuò)誤。標(biāo)識(shí)符由字母、數(shù)字或下劃線組成,且第一個(gè)字符必須是大小寫(xiě)英文字母或者下劃線,而不能是數(shù)字。大寫(xiě)字符與小寫(xiě)字符被認(rèn)為是兩個(gè)不同的字符,所以For不是關(guān)鍵字for。
(5)B【解析】先將整型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成doub1e型,然后除以2得到的結(jié)果與doub1e型保持一致,即為4.5,然后將4.5強(qiáng)制轉(zhuǎn)換成整型數(shù)據(jù)4,然后計(jì)算9%2的值為1,最后計(jì)算4一1的值為3,所以選擇B選項(xiàng)。
(6)C【解析】輸入數(shù)據(jù)的格式必須與scanf()的格式控制串完全匹配,如果A、B、c選項(xiàng)中在數(shù)字10后面均輸入了空格,則會(huì)將空格賦給變量c1,而不是把x賦給c1,所以選擇C選項(xiàng)。
(7)B【解析】要想表示字符串常量應(yīng)該用雙引號(hào)表示,即“cd”,單引號(hào)用于表示字符常量,所以B選項(xiàng)中的表示方法錯(cuò)誤。
(8)D【解析】if語(yǔ)句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。所以D選項(xiàng)正確。
(9)B【解析】題目中嵌套語(yǔ)句的含義是當(dāng)a&1t;b且a&1t;c成立,則將a的值賦給k。如果a&1t;b成立而a&1t;c不成立將e的值賦給k。如果a&1t;b不成立而b&1t;c成立,將b的值賦給k。如果如果a&1t;b不成立且b&1t;c也不成立,將c的值賦給k。判斷條件表達(dá)式只有B選項(xiàng)可以表示這個(gè)含義。
(10)A【解析】一一k先自減再使用,所以第一次判斷條件即為whi1e(4),條件為真,執(zhí)行打印k的值k=4—3,結(jié)果為1;第二次判斷條件即為whi1e(0),條件為假,結(jié)束循環(huán),打印回車(chē)換行符。所以選擇A選項(xiàng)。
(11)A【解析】本題主函數(shù)中定義了一個(gè)指針數(shù)組a,可以將它看成一個(gè)以字符指針為元素的一維數(shù)組。和一般的一維數(shù)組名能賦給同類(lèi)型指針變量一樣,該字符指針數(shù)組也可以賦給指向字符指針的指針,所以數(shù)組名a可以用做函數(shù)fun()的實(shí)參。在fun()函數(shù)中,++P操作使形參P往后移動(dòng)一個(gè)字符指針的位置,即指針a[1]的位置。故最后通過(guò)礎(chǔ)nd()函數(shù)輸出的字符串為“Afternoon”。因此A選項(xiàng)正確。
(12)D【解析】調(diào)用缸函數(shù)后,實(shí)參數(shù)組名s1傳給形參指針P,P也指向數(shù)組s1。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個(gè)字符是空格并且前一個(gè)字符是小寫(xiě)字母的話,就把前一個(gè)字符轉(zhuǎn)換為大寫(xiě)。程序中語(yǔ)句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉(zhuǎn)換為大寫(xiě)。因此D選項(xiàng)正確。
(13)C【解析】主函數(shù)中調(diào)用f函數(shù),同時(shí)將數(shù)值3傳遞給變量x,執(zhí)行條件不滿(mǎn)足條件if(x==0I1X==1);跳過(guò)re—turn(3);,直接執(zhí)行語(yǔ)句Y=X}X—f(x一2);這里f(x一2)為函數(shù)的遞歸調(diào)用,再次訶用f函數(shù),此時(shí)x=1,判斷條件成立,返回3給f(1),Y=3}3—3=6,最后將6返回主函數(shù),并進(jìn)行輸出。因此c選項(xiàng)正確。
(14)D【解析】?jī)?nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。m(a,5)的值是15,再次調(diào)用后Ⅲm=15,所以fun(b,4)=45,s=45+15=60。因此D選項(xiàng)正確。
(15)D【解析】本題考查結(jié)構(gòu)體的相關(guān)知識(shí),題目中需要輸入一個(gè)變量,scanf要求參數(shù)為指針,而D選項(xiàng)中ps一>age為一個(gè)變量,不是指針,所以錯(cuò)誤。
(16)B【解析】本題考查typ1edef重新聲明一種結(jié)構(gòu)體類(lèi)型,那么T為結(jié)構(gòu)體類(lèi)型,而不是結(jié)構(gòu)體變量,所以B選項(xiàng)正確。
(17)B【解析】本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù),題目雖然看似復(fù)雜,其實(shí)比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對(duì)參數(shù)重新賦值并返回,所以該題目的答案為B選項(xiàng)。
(18)B【解析1本題考查邏輯運(yùn)算符的相關(guān)概念,邏輯與若要為真,那么兩邊都要為真,即m都能被5和7整除都余1,所以選項(xiàng)B正確。
(19)A【解析】本愿考查位運(yùn)算符以及相關(guān)運(yùn)算,‘為按位或,&為按位與,部么a'b為3,再與c按位與仍然為3,所以答案為A選項(xiàng)。
(20)D【解析】fprintf()函數(shù)向文本文件輸出數(shù)據(jù),將輸出的內(nèi)容按格式輸出翻硬盤(pán)的文本文件中。執(zhí)行兩次fprintf后。文件中的內(nèi)容為。123 456”,所以D選項(xiàng)正確。