國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷1(共260題)_第1頁
國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷1(共260題)_第2頁
國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷1(共260題)_第3頁
國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷1(共260題)_第4頁
國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷1(共260題)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷1(共9套)(共260題)國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷第1套一、選擇題(本題共30題,每題1.0分,共30分。)1、DOS文件系統(tǒng)的組織結(jié)構(gòu)屬于A、星形結(jié)構(gòu)B、網(wǎng)星結(jié)構(gòu)C、環(huán)形結(jié)構(gòu)D、樹形結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:DOS中目錄結(jié)構(gòu)是層次的,由根目錄到子目錄形成一個(gè)樹型結(jié)構(gòu)。2、計(jì)算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是A、C語言程序僅可以編譯執(zhí)行B、C語言程序僅可以解釋執(zhí)行C、C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D、以上說法都不對標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言是編譯型語言,只在編譯鏈接后才能執(zhí)行。3、以下敘述中錯誤的是A、C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中C、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言中的非執(zhí)行語句例如宏定義命令,在預(yù)編譯之后替換到代碼中,該命令本身也就不存在了,不會轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。由高級語言編寫的程序稱為“源程序”,把由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”。C語言編寫的源程序就是一ASCII的形式存放在文本文件中的。C源程序經(jīng)過C編譯程序編譯之后生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“連接程序”(Link)的軟件,把此.obj義件與C語言提供的各種庫函數(shù)連接起來生成一個(gè)后綴為.EXE的可執(zhí)行文件。4、下列敘述中錯誤的是A、C程序可以由多個(gè)程序文件組成B、一個(gè)C語言程序只能實(shí)現(xiàn)一種算法C、C程序可以由一個(gè)或多個(gè)函數(shù)組成D、一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟。在C語言中一個(gè)算法是用函數(shù)來實(shí)現(xiàn)的。一個(gè)C語言源程序由許多函數(shù)組成,這些函數(shù)都是根據(jù)實(shí)際任務(wù),確定具體的算法,由用戶自己編寫。C語言源程序可以放在不同的文件中,同一個(gè)源程序中的函數(shù)也可放在不同的文件中,所以一個(gè)C語言程序可以實(shí)現(xiàn)多種算法。5、以下敘述中錯誤的是A、結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成B、C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言C、使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題D、結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:結(jié)構(gòu)化程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)3種基本結(jié)構(gòu)組成。已經(jīng)證明,由3種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問題。由3種基本結(jié)構(gòu)所構(gòu)成的算法稱為結(jié)構(gòu)化算法;由3種基本結(jié)構(gòu)所構(gòu)成的程序稱為結(jié)構(gòu)化程序。6、以下敘述中錯誤的是A、算法正確的程序最終一定會結(jié)束B、算法正確的程序可以有零個(gè)輸入C、算法正確的程序可以有零個(gè)輸出D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟。一個(gè)算法應(yīng)該具有5個(gè)特征:①有窮性。一個(gè)算法包含的操作步驟應(yīng)該是有限的。也就是說,在執(zhí)行若干個(gè)操作步驟之后,算法將結(jié)束,而且每一步都在合理的時(shí)間內(nèi)完成。②確定性。算法仲的每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。③可行性。算法中指定的操作,都可以通過已經(jīng)驗(yàn)汪過可以實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)。④有零個(gè)或多個(gè)輸入。在計(jì)算機(jī)上實(shí)現(xiàn)的算法是用來處理數(shù)據(jù)對象的,在大多數(shù)情況下這些對象需要通過輸入來得到。⑤有一個(gè)或多個(gè)輸出。算法的目的是為了求“解”,這些“解”只有通過輸出才能得到。7、以下選項(xiàng)中關(guān)于程序模塊化的敘述錯誤的是A、把程序分成若干相對獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊B、可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序C、把程序分成若干相對獨(dú)立的模塊,可便于編碼和調(diào)試D、可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:如果應(yīng)用結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)程序,那么可采用自頂向下,逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序。8、C語言源程序名的后綴是A、.exeB、.objC、.cD、.cp標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:由C語言構(gòu)成的指令序列稱為C源程序,源程序文件的后輟為“.c”。源程序經(jīng)過C編譯程序編譯生成后綴為“.obj”的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“連接程序”(Link)的軟件把目標(biāo)文件與C語言提供的各種庫函數(shù)連接起來,生成后綴為“.exe”的可執(zhí)行文件。9、關(guān)于算法,以下敘述中錯誤的是A、同一個(gè)算法對于相同的輸入必能得出相同的結(jié)果B、一個(gè)算法對于某個(gè)輸入的循環(huán)次數(shù)是可以事先估計(jì)出來的C、某個(gè)算法可能會沒有輸入D、任何算法都能轉(zhuǎn)換成計(jì)算機(jī)高級語言的程序,并在有限時(shí)間內(nèi)運(yùn)行完畢標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:算法和干旱序不同,算法滿足以下特性:算法有5個(gè)特性,即有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入以及有一個(gè)或多個(gè)輸出。算法的確定性是指算法中的每一個(gè)步驟都必須有明確定義,不允許有模棱兩可的解釋,也不允許有多義性,因此對于相同的輸入必有相同的輸出,同時(shí)可以事先估計(jì)算法的時(shí)間復(fù)雜度,對于有循環(huán)的算法,以循環(huán)體內(nèi)的循環(huán)次數(shù)來估測時(shí)間復(fù)雜度。10、以下不能用于描述算法的是A、程序語句B、E-R圖C、偽代碼和流程圖D、文字?jǐn)⑹鰳?biāo)準(zhǔn)答案:B知識點(diǎn)解析:E-R圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。描述算法的有流程圖,盒圖,偽代碼,文字捕述以及程序代碼描述。11、以下敘述中正確的是A、程序的算法只能使用流程圖來描述B、N—S流程圖只能描述簡單的順序結(jié)構(gòu)的程序C、計(jì)算機(jī)可以直接處理C語言程序,不必進(jìn)行任何轉(zhuǎn)換D、結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:結(jié)構(gòu)化程序有三種基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu),描述算法常見的有文字描述,流程圖,盒圖,偽代碼等。N—S圖為盒圖,呵以描述比較復(fù)雜的稃序結(jié)構(gòu),而計(jì)算機(jī)不能直接處理C程序,只能處理二進(jìn)制代碼。12、以下敘述中正確的是A、在C語言程序設(shè)計(jì)中,所有函數(shù)必須保存在一個(gè)源文件中B、在算法設(shè)計(jì)時(shí),可以把復(fù)雜任務(wù)分解成一些簡單的子任務(wù)C、只要包含了三種基本結(jié)構(gòu)的算法就是結(jié)構(gòu)化程序D、結(jié)構(gòu)化程序必須包含所有的二三種基本結(jié)構(gòu),缺一不可標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:模塊化設(shè)計(jì)思想,就是把復(fù)雜的任務(wù)分成簡單的子任務(wù),用函數(shù)或者過程捕述子任務(wù),C語言中一個(gè)程序可以包括多個(gè)源文件,每個(gè)源文件可以有若干個(gè)函數(shù),結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)三種基本結(jié)構(gòu)組成,不一定全要包括這三種結(jié)構(gòu),而算法不等于程序。13、以下敘述中正確的是A、每個(gè)后綴為.c的C語言源程序都應(yīng)該包含一個(gè)main函數(shù)B、在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面C、每個(gè)后綴為.c的C語言源程序都可以單獨(dú)進(jìn)行編譯D、在C語言程序中,只有main函數(shù)才可單獨(dú)進(jìn)行編譯標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:每一個(gè)C語言的文什或函數(shù)都可以單獨(dú)編譯,但只有main函數(shù)的才可以執(zhí)行。14、有以下程序,在VC6平臺上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是#include<stdio.h>main(){ints,t,A=10;doubleB=6:s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}A、4,4B、2,4C、4,8D、10,6標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:關(guān)鍵字sizeof用于測試不同類型變量所占的內(nèi)仔空間,返回所占的字節(jié)數(shù)。在VC編譯系統(tǒng)中,整型變量占用4個(gè)字節(jié)的內(nèi)存空間,而雙精度型變量占用8個(gè)字節(jié)的內(nèi)存空間。15、對于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是A、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束C、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束D、程序的執(zhí)行總是從main函數(shù)開始標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:一個(gè)C語言源程序無論包括了多少函數(shù),在正常情況下總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。16、計(jì)算機(jī)能直接執(zhí)行的程序是A、目標(biāo)程序B、可執(zhí)行程序C、匯編程序D、源程序標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:把由高級語言編寫的程序稱為“源程序”,由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”(后綴名為.obj),由匯編語占編寫的程序稱為“匯編程序”。為了把源程序轉(zhuǎn)換成機(jī)器能接受的目標(biāo)程序,軟件工作者編制了一系列軟件,通過這些軟件可以把用戶按規(guī)定語法寫出的語句——翻譯成二進(jìn)制的機(jī)器指令。這種具有翻譯功能的軟件稱為“編譯程序”,每種高級語言都有與它對應(yīng)的編譯程序。C源程序經(jīng)過C編譯程序編譯之后生成一個(gè)后綴為.obj的二制進(jìn)文件(稱為目標(biāo)文件),這個(gè)目標(biāo)程序要和C語言的庫函數(shù)相鏈接牛成一個(gè)后綴為.exe的文件,這個(gè)文件可以在操作系統(tǒng)中A接執(zhí)行,稱為叮執(zhí)行程序。17、以下敘述中正確的是A、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行B、C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行C、main的各種大小寫拼寫形式都可以作為主函數(shù)名,如:MAIN,Main等D、C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言規(guī)定必須以main作為主函數(shù)名。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個(gè)可執(zhí)行的C程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。一個(gè)C程序中可以包含任意多個(gè)不同的函數(shù),但只能有一個(gè)主函數(shù)。程序要從main()函數(shù)開始執(zhí)行,最后在main()函數(shù)中結(jié)束。18、以下敘述中錯誤的是A、C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B、所有C程序都需要編譯鏈接無誤后才能運(yùn)行C、C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行D、C程序中字符變量存放的是字符的ASCII值標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:計(jì)算機(jī)程序都是編譯為二進(jìn)制的代碼,計(jì)算機(jī)才會執(zhí)行。19、下列敘述中正確的是A、在C程序中main函數(shù)的位置是固定的B、C程序中所有函數(shù)之間都可以相互調(diào)用C、每個(gè)C程序文件中都必須要有一個(gè)main函數(shù)D、在C程序的函數(shù)中不能定義另一個(gè)函數(shù)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:當(dāng)一個(gè)程序作為另一個(gè)程序的子程序,并且它自己不獨(dú)立執(zhí)行時(shí),這該程序可以沒有主函數(shù)。豐函數(shù)的位置不固定,并且可以調(diào)用程序中的其他函數(shù),而其他函數(shù)不可以調(diào)用main()函數(shù)。C語言規(guī)定,不能在函數(shù)的內(nèi)部定義函數(shù)。20、以下敘述正確的是A、C語言程序是由過程和函數(shù)組成的B、C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C、C語言函數(shù)不可以單獨(dú)編譯D、C語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在C語言中,允許函數(shù)的嵌套調(diào)用,即遞歸調(diào)用。在C語言中不存在過程的概念,在C語言中函數(shù)允許單獨(dú)編譯,可以作為單獨(dú)的文件形式存在。21、C語言程序的模塊化通過以下哪個(gè)選項(xiàng)來實(shí)現(xiàn)A、變量B、程序行C、函數(shù)D、語句標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:用函數(shù)作為程序模塊以實(shí)現(xiàn)C程序的模塊化,程序有多個(gè)函數(shù)構(gòu)成,每個(gè)函數(shù)可以實(shí)現(xiàn)一個(gè)具體的功能,實(shí)現(xiàn)程序的模塊化設(shè)計(jì)。22、以下敘述中正確的是A、程序的主函數(shù)名除main外,也可以使用Main或mainB、在C程序中,模塊化主要是通過函數(shù)來實(shí)現(xiàn)的C、程序可以包含多個(gè)主函數(shù),但總是從第一個(gè)主函數(shù)處開始執(zhí)行D、書寫源程序時(shí),必須注意縮進(jìn)格式,否則程序會有編譯錯誤標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言中任何一個(gè)有效的程序都有且只能有一個(gè)main()函數(shù),不能寫成其他形式,一個(gè)C程序總是從主函數(shù)開始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個(gè)程序中的位置如何。而為了代碼清晰容易看懂,最好加上注釋,這是程序書寫風(fēng)格,與編譯無關(guān)。23、以下敘述中正確的是A、C語言程序總是從最前面的函數(shù)開始執(zhí)行B、C語言程序總是從main函數(shù)開始執(zhí)行C、C語言程序中main函數(shù)必須放在程序的開始位置D、C語言程序所調(diào)用的函數(shù)必須放在main函數(shù)的前面標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言中一個(gè)源程序都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù):C語言規(guī)定必須用main作為主函數(shù)名。其后的一對圓括號中可以是空的,但不能省略。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一個(gè)程序都必須有一個(gè)且只能有一個(gè)主函數(shù)。一個(gè)C程序總是從主函數(shù)開始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個(gè)程序中的位置如何。而調(diào)用函數(shù)的定義位置和調(diào)用沒有直接關(guān)系。24、C語言主要是借助以下哪種手段來實(shí)現(xiàn)程序模塊化A、定義常量和外部變量B、使用豐富的數(shù)據(jù)類型C、使用三種基本結(jié)構(gòu)語句D、定義函數(shù)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語者用函數(shù)實(shí)現(xiàn)軟件的模塊化設(shè)計(jì)。25、以下四個(gè)程序中,完全正確的是A、#include<stdio.h>main();{/*/1Programming/*/printf("programming!\n");}B、#include<stdio.h>main();{/*programming*/printf("programming!\n");}C、#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}D、includemain(){/*programming*/printf("programming!\n");}標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在選項(xiàng)A)中,main()函數(shù)后面的分號是錯誤的,C語言在函數(shù)名后面不能有分號。在C語言中注釋內(nèi)容必須放在“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),按語法規(guī)定在注釋之間不可以再嵌套“/*”和“*/”。在選項(xiàng)C)的程序段中注釋語句之間的嵌套:所以選項(xiàng)C)不正確。C語言用#include命令行來實(shí)現(xiàn)文件包含的功能。#include命令行的形式為:#include“文件名”,所以在選項(xiàng)D)中include前面少了一個(gè)#符號,因而選項(xiàng)D)不正確。26、以下關(guān)手結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是A、結(jié)構(gòu)化程序使用goto語句會很便捷B、一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成C、由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題D、在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言是結(jié)構(gòu)化程序設(shè)計(jì)語言,順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu),研究證明任何程序都可以由這三種基本結(jié)構(gòu)組成。但是程序可以包含一種或者幾種結(jié)構(gòu),不是必須包含全部三種結(jié)構(gòu)。自從提倡結(jié)構(gòu)化設(shè)計(jì)以來,goto就成了何爭議的語句。首先,由于goto語句可以靈活跳轉(zhuǎn),如果不加限制,它的確會破壞結(jié)構(gòu)化設(shè)汁風(fēng)格。其次,goto語句經(jīng)常帶來錯誤或隱患。它可能跳過了某些對象的構(gòu)造、變量的仞始化、重要的計(jì)算等語句。Goto語句的使用會使程序容易發(fā)生錯誤并且也不易閱讀,所以應(yīng)避免使用。由三種基本結(jié)構(gòu)構(gòu)成的程序幾乎能解決大部分問題。27、以下敘述中正確的是A、C程序中的每一行只能寫一條語句B、簡單C語句必須以分號結(jié)束C、C語言程序中的注釋必須與語句寫在同一行D、C語句必須在一行內(nèi)寫完標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言的書寫格式自由,一行可寫多條語句,一條語句也可寫在不同行上。C語言注釋是比較自由的,可以寫在一行或者多行。C語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個(gè)分號,分號是C語句的必要組成部分。28、以下敘述中正確的是A、C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句B、C程序書寫格式自由,一個(gè)語句可以寫在多行上C、C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面D、用C語言編寫的程序只能放在一個(gè)程序文件中標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查的是C語言結(jié)構(gòu)中的源程序書寫格式這個(gè)知識點(diǎn),在C浯言中注釋部分對程序的運(yùn)行結(jié)果不產(chǎn)生任何影響,它可以出現(xiàn)在任意位置:C語言書寫自由,一行內(nèi)可以寫多個(gè)語句,一個(gè)語句可以寫在多行上;由于C語言編寫的程序有很好的移植性,可以放在多個(gè)程序文件中。29、以下關(guān)于C語言的敘述中正確的是A、C語言中的變量可以在使用之前的任何位置進(jìn)行定義B、在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致C、C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示D、C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言中的注釋可以出現(xiàn)在程序中的任何位置,但是不能必在變量或者關(guān)鍵字之間;C語言的變量在函數(shù)開始位置進(jìn)行定義,也可以在變量使用前位置定義:一個(gè)浮點(diǎn)數(shù)可以和一個(gè)整數(shù)相加,運(yùn)算符兩側(cè)的運(yùn)算類型也可以不一致;數(shù)值常量中不允許必帶空格。30、有以下程序#include<stdio.h>main(){inta=0,b=0;/*給a賦值a=10;b=20;給b賦值*/printf("a+b=%d\n",a+b);/*輸出計(jì)算結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是A、a+b=30B、a+b=10C、出錯D、a+b=0標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言規(guī)定,在字符“/*”和其后緊跟的第一個(gè)字符“*/”中間的部分是注釋內(nèi)容,且注釋部分的內(nèi)容不參與程序的編譯和運(yùn)行,因此,本題重程序語句“a=10;b=20;”沒有執(zhí)行。國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷第2套一、選擇題(本題共30題,每題1.0分,共30分。)1、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。關(guān)于轉(zhuǎn)換以下說法錯誤的是A、一條C語句可能會被轉(zhuǎn)換成多條機(jī)器指令B、一條C語句對應(yīng)轉(zhuǎn)換成一條機(jī)器指令C、一條C語句可能會被轉(zhuǎn)換成零條機(jī)器指令D、某種類型和格式的C語句被轉(zhuǎn)換成機(jī)器指令的條數(shù)是固定的標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:由C語言編寫的程序,通過編譯、鏈接轉(zhuǎn)換成可以讓機(jī)器識別的01二進(jìn)制指令。這些二進(jìn)制指令命令機(jī)器計(jì)算,這些就是機(jī)器指令,而C語言的語句條數(shù)和機(jī)器指令的條數(shù)不是一對一的關(guān)系。2、以下選項(xiàng)中不屬于C語言程序運(yùn)算符的是A、sizeofB、()C、<>D、&&標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:sizeof為測試內(nèi)存的運(yùn)算符,()為算術(shù)運(yùn)算符,&&為邏輯運(yùn)算符。而<>不是C語言的運(yùn)算符,C語言中!=表示不等于。3、若變量已正確定義并賦值,以下不能構(gòu)成C語句的選項(xiàng)是A、A=a+b:B、B++;C、a=a+bD、A?a:b;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言語句的表示為分號,不加分號的表達(dá)式不能看成C語句。4、以下敘述中正確的是A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法B、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語句結(jié)構(gòu),才能準(zhǔn)確表達(dá)C、只有簡單算法才能在有限的操作步驟之后結(jié)束D、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語句構(gòu)成了函數(shù),函數(shù)構(gòu)成的程序,經(jīng)過編譯轉(zhuǎn)換成二進(jìn)制代碼后可以運(yùn)行,算法是指為解決某個(gè)特定問題而采取的確定且有限的步驟,可以利用代碼來捕述算法,而算法+數(shù)據(jù)結(jié)構(gòu)才是程序,結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)三種基本結(jié)構(gòu)組成。由這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問題,反之則不一定,所有算法必須在有限步驟后結(jié)束。5、下列選項(xiàng)中,不能用作標(biāo)識符的是A、_1234B、_1_2C、int_2_D、2_int_標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:C語言中標(biāo)以符必須以字母或者下劃線開始,選項(xiàng)D)中是以數(shù)字開始的不能作為標(biāo)識符。6、以下選項(xiàng)中作為C語言合法常量的是A、-80.B、-080C、-8e1.0D、-80.0e標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查C語言中的常量,C語言中字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。選項(xiàng)A)表示負(fù)數(shù)-80;選項(xiàng)B)中以數(shù)字0開始表示的是八進(jìn)制數(shù),八進(jìn)制數(shù)數(shù)字范圍是從0-7,不包括8;選項(xiàng)C)是一個(gè)指數(shù)浮點(diǎn),字母e后面應(yīng)該是整型指數(shù);選項(xiàng)D)中寧母e后而沒有整數(shù),不滿足C規(guī)范。7、以下不能定義為用戶標(biāo)識符是A、MainB、_0C、_intD、sizeof標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查用戶標(biāo)識符,C語言中用戶標(biāo)識符只能由字母和數(shù)字組成,且必須以寧母開頭,不能和C語言的關(guān)鍵字相同。選項(xiàng)A)、B)和C)都符合要求,選項(xiàng)D)中的sizeof是C語言關(guān)鍵。不能作為用戶標(biāo)識符。8、以下選項(xiàng)中,不能作為合法常量的是A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查C語言中的常量,C語言中字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必頸為整數(shù)。選項(xiàng)B)中字母e后而是浮點(diǎn)數(shù),錯誤,其他選項(xiàng)都是正確的常量。9、可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是A、and_2007B、Datey-m-dC、HiDr.TomD、caseBigl標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查用戶標(biāo)識符,C語言中,用戶標(biāo)識符只能由字母、下劃線和數(shù)組組成,且必須以字母或者下劃線開始。選項(xiàng)A)正確:選項(xiàng)B)中使用了字符“-”:選項(xiàng)C)使用了字符“.”:選項(xiàng)D)中的case是C語言關(guān)鍵字,不能作為用戶標(biāo)識符。10、以下C語言用戶標(biāo)識符中,不合法的是A、_1B、AaBcC、a_bD、a--b標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查用戶標(biāo)識符,C語言中,用戶標(biāo)識符只能由字母、下劃線和數(shù)組組成,且必須以字母或者下劃線開始。選項(xiàng)A)、B)和C)都是正確的,選項(xiàng)D)中的case是C語言關(guān)鍵字,不能作為用戶標(biāo)識符,是錯誤的。11、以下選項(xiàng)中不能用作C程序合法常量的是A、1.234B、’\123’C、123D、\x7G標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查C語言中的常量。選項(xiàng)A)錯誤,多了逗號;選項(xiàng)B)是字符常量:選項(xiàng)C)是整型常量;選項(xiàng)D)是字符常量。12、關(guān)于C語言中數(shù)的表示,以下敘述正確的是A、只要允許范圍內(nèi)整型數(shù)和實(shí)型數(shù)都能精確的表示B、只有整型數(shù)在允許范圍內(nèi)能精確無誤的表示,實(shí)型數(shù)會有誤差C、只有實(shí)型數(shù)在允許范圍內(nèi)能精確無誤的表示,整型數(shù)會有誤差D、只有用八進(jìn)制表示的數(shù)才不會有誤差標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查C語言基本數(shù)據(jù)類型,整型數(shù)是有范圍的,只在允許的范圍內(nèi)才能精確無誤的表示,實(shí)型數(shù)由于存儲長度限制存在誤差。13、設(shè)變量均已正確定義并賦值,以下與其他三組輸出結(jié)果不同的一組語句是A、x++;printf("%d\n",x);B、++x;printf("%d\n",x);C、n=x++;printf("%d\n",n);D、n=++x;printf("%d\n",n);標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:小題:考查自增運(yùn)算符。++在前表示先自增然后使用,++在后而表示先使用然后自增。選項(xiàng)A)中首先執(zhí)行x++,執(zhí)行完后x白增1,然后printf輸出的是x自增后的值;選項(xiàng)B)首先執(zhí)行++x,x的值增加1,接著輸出x的值;選項(xiàng)c)中++在x的后面,因此n的值是x自增前的值,printf輸出的是x自增前的值;選項(xiàng)D)中++在x的前而,因此x首先自增,然后再賦值給n,n的值是x自增后的值,輸出的也是x自增后的值。14、以下選項(xiàng)中表示一個(gè)合法的常量是(說明:符號口表示空格)A、123E0.2B、2.7eC、0999D、0Xab標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查C語言中的常量。選項(xiàng)A)字母E后面必須是整型數(shù),浮點(diǎn)數(shù)錯誤;選項(xiàng)B)字母e后而沒有整型數(shù);選項(xiàng)C)以0開始表示8進(jìn)制數(shù),8進(jìn)制數(shù)沒有9;選項(xiàng)D)是一個(gè)正確的16進(jìn)制常數(shù)。15、以下選項(xiàng)中不合法的標(biāo)識符是A、FORB、&aC、printD、_00標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:合法的標(biāo)識符要滿足組成字符為a~z以及A~Z,數(shù)字字符0到9和下劃線,其中數(shù)字不開頭,不能是關(guān)鍵字。選項(xiàng)B)中,&不屬于組成字符,是錯誤的。16、以下選項(xiàng)中,能用作數(shù)據(jù)常量的是A、115LB、0118C、1.5e1.5D、o115標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查常量定義。數(shù)據(jù)常量可有10進(jìn)制、8進(jìn)制、16進(jìn)制、指數(shù)法等,8進(jìn)制數(shù)字為0—7,第一個(gè)字符為0,而不是o。指數(shù)法表示時(shí),指數(shù)部分須為整型,選項(xiàng)A)中數(shù)字后加入L是說明此變量為長整型,是正確的常量表示形式。17、按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是A、連接符B、大寫字母C、數(shù)字字符D、下劃線標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在C語言中,合法標(biāo)識符的命令規(guī)則是:標(biāo)識符可以由字母、數(shù)字或下劃線組成,并且第一個(gè)字符必須為字母或卜劃線。在C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A)是連字符,不在c語言規(guī)定的命名變量標(biāo)識符的范圍內(nèi)。18、以下選項(xiàng)中,能用作用戶標(biāo)識符的是A、_0_B、8_8C、voidD、unsigned標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在C語言中,用戶的標(biāo)識符只能由字母或下劃線開始。一般強(qiáng)調(diào)文見其義的命名方法。但是c語言中的保留字不能用作用戶的標(biāo)識符。而選項(xiàng)C)和D)全部為保留字,選項(xiàng)B)中以數(shù)字開頭,這些都不正確。19、下列定義變量的語句中錯誤的是A、floatUS$;B、doubleint_;C、charFor;D、int_int;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言規(guī)定,變量的標(biāo)識符只能由字母、數(shù)字或下劃線3種字符組成,且首字符必須為字母或下劃線。在C語言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)B)定義的變量標(biāo)識符int和選項(xiàng)D)定義的變量標(biāo)識符int與C浯占的關(guān)鍵字int是不同的,是正確的變量標(biāo)識。選項(xiàng)C)定義的變量標(biāo)識符For與C語言中的關(guān)鍵字for是兩個(gè)不同的標(biāo)識符,而存選項(xiàng)A)包含有特殊字符$,因而其不符合C語言的變量命名規(guī)定。20、以下選項(xiàng)中關(guān)于C語言常量的敘述錯誤的是A、常量分為整型常量、實(shí)型常量、字符常量和字符串常量B、經(jīng)常被使用的變量可以定義成常量C、常量可分為數(shù)值型常量和非數(shù)值型常量D、所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:常量指在程序運(yùn)行過程中,其值不能被改變的量。常量分為整型常暈(即整常數(shù))、實(shí)型常量、字符型常量和字符串常量。常量也可以拔數(shù)據(jù)類型分為為數(shù)據(jù)常量和非數(shù)據(jù)常量。變量是指在程序運(yùn)行過程中,其值能被改變的量。21、以下選項(xiàng)中,不合法的C語言用戶標(biāo)識符是A、AaBcB、a-bC、a_bD、_1標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在C語言中的用戶標(biāo)識符只能由字母,數(shù)字和下劃母組成,并且第一個(gè)字符必須是字母或下劃線,在選項(xiàng)A)中出現(xiàn)了非法的字符--。22、以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是A、若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型B、若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型C、若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型D、整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:存C語言中沒有定義邏輯類型,而是用0代表假,用非零代表真。23、以下選項(xiàng)中不能用作C程序合法常量的是A、’\123’B、1,234C、123D、\x7D標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:選項(xiàng)B)中的1,234在兩側(cè)加雙引號才是C程序的合法字符串常量。24、閱讀以下程序#include<stdio.h>main(){intcase;floatprintf;printf("請輸入2個(gè)數(shù):");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}該程序在編譯時(shí)產(chǎn)生錯誤,其出錯原因是A、定義語句出錯,printF不能用作用戶自定義標(biāo)識符B、定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標(biāo)識符C、定義語句無錯,scanf不能作為輸入函數(shù)使用D、定義語句無錯,printf不能輸出case的值標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:case是C語言中的一個(gè)關(guān)鍵字,不能用作用戶標(biāo)識符來使用,所以這段程序代碼在編譯時(shí)就會出錯。25、以下選項(xiàng)中合法的標(biāo)識符是A、1-1B、1_1C、_11D、1__標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查標(biāo)識符定義。合法標(biāo)識符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個(gè)字符必須是字母或下劃線。26、關(guān)于C語言的符號常量,以下敘述中正確的是A、符號常量的符號名是標(biāo)識符,但必須大寫B(tài)、符號常量在整個(gè)程序中其值都不能再被重新定義C、符號常量是指在程序中通過宏定義用一個(gè)符號名來代表一個(gè)常量D、符號常量的符號名必須是常量標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在C語言程序中,用一個(gè)符號名來代表一個(gè)常量,稱為符號常量。注意:這個(gè)符號名必須存程序中進(jìn)行特別的“指定”,并符合標(biāo)識符的命名規(guī)則。一般在程序中都是利用宏定義來定義符號常量的,在代碼中可以利用undef來結(jié)束符號常量的定義,然后進(jìn)行重新定義,符號常量的大小寫并沒有特別的規(guī)定,一般時(shí)候?yàn)榱撕妥兞繀^(qū)分利用大寫。27、關(guān)于C語言的變量,以下敘述中錯誤的是A、所謂變量是指在程序運(yùn)行過程中其值可以被改變的量B、變量所占的存儲單元地址可以隨時(shí)改變C、程序中用到的所有變量都必須先定義后才能使用D、由三條下劃線構(gòu)成的符號名是合法的變量名標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:變量是指在程序運(yùn)行過程中其值可以改變的值,一個(gè)變量實(shí)質(zhì)上是代表了內(nèi)存中的某個(gè)存儲單元。在程序中對某個(gè)變量的操作實(shí)際上就是對這個(gè)存儲單元的操作,程序運(yùn)行期間,這個(gè)分配的存儲單元不會改變,但是其值可以變化。變量命名要符合標(biāo)識符的規(guī)定,其中下劃線是標(biāo)識符的組成字符。程序中所有變量都必須先定義后使用。28、以下選項(xiàng)中不屬于C語言標(biāo)識符的是A、用戶標(biāo)識符B、關(guān)鍵字C、常量D、預(yù)定義標(biāo)識符標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言的標(biāo)識符可分為以下3類:①關(guān)鍵字。C語言預(yù)先規(guī)定了一批標(biāo)識符,它們在程序中都代表著固定的含義,不能另作他用。這些字符稱為關(guān)鍵字。例如,int、double、if、else、whik、for等。②預(yù)定義標(biāo)識符。即預(yù)先定義并具有特定含義的標(biāo)識符。③用戶標(biāo)識符。由用戶根據(jù)需要定義的標(biāo)識符稱為用戶標(biāo)識符,又稱自定義標(biāo)識符,一般用來給變量、函數(shù)、數(shù)組等命名。29、以下選項(xiàng)中合法的變量是A、5aB、A%C、_10_D、sizeof標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:對于變量的命名要利用標(biāo)識符命名,所謂標(biāo)識符就是C語言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。其中標(biāo)識符構(gòu)成:①標(biāo)識符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線;因此選項(xiàng)A)中數(shù)字開頭,選項(xiàng)B)出現(xiàn)了非法字符%,而選項(xiàng)D)中sizeof為關(guān)鍵字,不能為變量命名。30、以下敘述中正確的是A、標(biāo)識符的長度不能任意長,最多只能包含16個(gè)字符B、語言中的關(guān)鍵字不能作變量名,但可以作為函數(shù)名C、用戶自定義的標(biāo)識符必須“見名知義”,如果隨意定義,則會出編譯錯誤D、標(biāo)識符總是由字母、數(shù)字和下劃線組成,且第一個(gè)字符不得為數(shù)字標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:標(biāo)識符就是C語言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。C語言合法標(biāo)識符的命名規(guī)則是:①標(biāo)識符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線;③大寫字母與小寫字母被認(rèn)為是兩個(gè)不同的字符;④C語言規(guī)定了一個(gè)標(biāo)識符允許的字符個(gè)數(shù),為32,超過的字符將不被識別。C語言的標(biāo)識符可分為以下3類:①關(guān)鍵字,不能用于為自定義標(biāo)識符命名。②預(yù)定義標(biāo)識符。③用戶標(biāo)識符。由用戶根據(jù)需要定義的標(biāo)識符稱為用戶標(biāo)識符,又稱自定義標(biāo)識符,一般用來給變量、函數(shù)、數(shù)組等命名,一般做到見名知義,但是沒有特殊規(guī)定。國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷第3套一、選擇題(本題共30題,每題1.0分,共30分。)1、若變量均已正確定義并賦值,以下合法的C語言賦值語句是A、x=n%2.5;B、x+n=i;C、x=5=4+1:D、x=y==5;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:選項(xiàng)D)的含義是把關(guān)系表達(dá)式y(tǒng)==5的值賦給變量x。所以這是一條正確的賦值語句。因?yàn)橘x值運(yùn)算符左側(cè)的操作數(shù)必須是一個(gè)變量,而不能是表達(dá)式或者常量。因?yàn)榍笥噙\(yùn)算符“%”兩側(cè)的運(yùn)算對象都應(yīng)當(dāng)是整型數(shù)據(jù)。2、若有定義語句:inta=3,b=2,c=1;以下選項(xiàng)中錯誤的賦值表達(dá)式是A、a=b=c+1;B、a=(b=4)=3;C、a=(b=4)+c;D、a=1+(b=c=4);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查賦值表達(dá)式,對于賦值表達(dá)式來說,賦值號“=”的左邊一定為變量名,右邊為一個(gè)C語言合法的表達(dá)式。3、表達(dá)式a+=a=a=9的值是A、-9B、0C、18D、9標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:第一步a=9,然后計(jì)算a-a的值,并將此值賦給a,因此此時(shí)a=0,最后計(jì)算a+a,并將此值賦給a,因此最終結(jié)果為0。4、若有以下程序#include<stdio.h>main(){inta=-11,b=10;a/=b/=-4:printf("%d%d\n",a,b);}則程序的輸出結(jié)果是A、-1-2B、5-2C、4-3D、5-3標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:對于語句“a/=b,=-4;”相當(dāng)于“a=a/(b=b/-4);”a初值為-11,b的初值為10,則運(yùn)算以后10/-4值為-2,-11/-2值為5。5、以下敘述中正確的是A、在賦值表達(dá)式中,賦值號的右邊可以是變量,也可以是任意表達(dá)式B、a是實(shí)型變量,a=10在C語言中是允許的,因此可以說:實(shí)型變量中可以存放整型數(shù)C、若有inta=4,b=9;執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D、若有inta=4,b=9;執(zhí)行了a=b;b=a;之后,a的值為9,b的值為4標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)B)中a=10,在賦值時(shí)會把10自動轉(zhuǎn)換為double類型然后賦值,實(shí)型變量中不可能存放整型。而選項(xiàng)C)中執(zhí)行a=b后,b的值不變還是9,選項(xiàng)D)中執(zhí)行“a=b;b=a;”后,a的值為9,b的值也為9。6、有以下程序,程序運(yùn)行后的輸出結(jié)果是#include<stdio.h>main(){inta=3;printf("%d\n",(a+=a-=a*a));}A、9B、0C、3D、-12標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:對于表達(dá)式“a+=a=a*a”相當(dāng)于“a=a-(a*a)”,然后汁算“a=a+a”,a的初值為3,則表達(dá)式的值為-12。7、若有定義和語句:A、3,5B、3,5,C、3,5D、3,5,4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在格式控制字符串中插入其他字符,則在輸入的時(shí)候應(yīng)該據(jù)實(shí)加入到輸入流中,不能隨意加入空格等,否則無法得到正確的輸入結(jié)果。8、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intm=12,n=34;printf(“%d%d”,m++,++n);printf(“%d%d\n”,n++,++m);)A、12353514B、12353513C、12343514D、12343513標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題主要考查自加運(yùn)算符,自加運(yùn)算符++在變量前表示先增加然后再使用,++在變量后表示先使用然再增加。本題中,第一個(gè)printf語句m++表示先輸出m的值,然后m增加1,因此首先輸出的是12,然后m的值變成13,++n表示n首先增加1變成35然后輸出,因此輸出的是35;在第二個(gè)printf語句中,n++是先輸出n的值然后增加,即輸出35,n的值變?yōu)?6,++m表示先增加m的值再輸出,m的值由13變成14,故最后輸出的是14。9、在16位編譯系統(tǒng)上,若有定義“inta[]={10,20,30},*p=a;”,當(dāng)執(zhí)行“p++;”后,下列說法錯誤的是A、P向高地址移了一個(gè)字節(jié)B、P向高地址移了一個(gè)存儲單元C、P向高地址移了兩個(gè)字節(jié)D、P與a+1等價(jià)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查數(shù)組和數(shù)組指針。a是一個(gè)整型數(shù)組,p指針指向a數(shù)組,即p指向a數(shù)組的首元素的地址,因此p++之后,p往高地址移動,指向首元素后面一個(gè)元素的地址。10、設(shè)有定義:intx=2;以下表達(dá)式中,值不為6的是A、2*x,x+=2B、x++,2*xC、x*=(1+x)D、x*=x+1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查逗號表達(dá)式。逗號表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)逗號表達(dá)式的值是表達(dá)式2的值,因此,選項(xiàng)A)中值為4;選項(xiàng)B)中,值為6。選項(xiàng)C)中x*=x+1等價(jià)于x=x*(x+1),所以等于6;選項(xiàng)D)與選項(xiàng)C)等價(jià),結(jié)果也為6。11、有以下程序,程序運(yùn)行后的輸出結(jié)果是#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}A、2,3,1B、2,3,2C、2,3,3D、2,2,1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在程序中,整型變量x、y的初值都為1,賦值語句“z=x++,y++,++y”右邊的“x++,y++,++y”是一個(gè)逗號表達(dá)式,所以逗號表達(dá)式的值為++y的值。執(zhí)行逗號表達(dá)式“x++,y++,++y”后,x的值為2,y的值為3,z取逗號表達(dá)式的值,為1。12、若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是A、++x,y=x--B、x+1=yC、x=x+10=x+yD、double(x)/10標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:用逗號將表達(dá)式連接起來的式子稱為逗號表達(dá)式。其表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式n。最后一個(gè)表達(dá)式的值就是此逗號表達(dá)式的值。所以選項(xiàng)A)為C語言中的逗號表達(dá)式。賦值表達(dá)式的左側(cè)只能是變量,不能是常量或表達(dá)式。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式為:(類型名)(表達(dá)式),其中(類型名)稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,數(shù)據(jù)類型兩邊的圓括號不能省略。13、設(shè)有定義:intk=0;以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是A、k++B、k+=1C、++kD、k+1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:因?yàn)轭}中有語句“intk=0;”,所以選項(xiàng)B)、C)、D)都是對k的值加1,選項(xiàng)A)的語句k++表示先利用k的值進(jìn)行運(yùn)算,然后k值才加1。14、若有以下程序,則程序的輸出結(jié)果是#include<stdio.h>main(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf("%d,%d,%d\n",a,b,c);}A、0,4,4B、1,4,1C、0,4,0D、1,4,4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式c=(a=++a),(a+=b,b+=4)相當(dāng)于逗號表達(dá)式,首先計(jì)算c=(a-=++a),其中(a-=++a)等價(jià)a=a-(++a),得到a的值0,c的值為0,在計(jì)算(a+=b,b+=4)時(shí),a和b的初值為0,計(jì)算以后,a為0,b為4。15、若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,5,1B、-1,4,4C、1,5,5D、-1,4,-1標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:對于語句“c=(a+=++b,b+=4);”首先計(jì)算“a=a+(++b)”,a,b初值為0,則計(jì)算以后a為1,b為1,然后計(jì)算b+=4,得到b的值為5,此時(shí)表達(dá)式b+=4的值為整個(gè)逗號表達(dá)式的值,因此c的值為5。16、有以下程序,程序的輸出結(jié)果是main(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;printf("%d\n",pad);}A、5B、7C、8D、6標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:有逗號表達(dá)式構(gòu)成的語句“pAd=++sum,pAd++,++pad;”主要從左到由連續(xù)運(yùn)算,因此pad的值為6。注意Dad和pAd的是不同的變量。17、若有定義“intx,y;”并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式(x.y)等價(jià)的是A、(x-y<0)B、(x-y>0)C、(x-y<0‖x—y>0)D、(x-y==0)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3。其含義為當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值:當(dāng)“表達(dá)式1”的值為零時(shí),則求“表達(dá)式3”的值,這時(shí)“表達(dá)式3”的值就是整個(gè)表達(dá)式的值。本題條件表達(dá)式的執(zhí)行順序是先求解表達(dá)式“x-y”的值,若其值為非0(可以是證數(shù),也可以是負(fù)數(shù)),則再求表達(dá)式“x++”的值,其值就是條什表達(dá)式的值:若表達(dá)式“x-y”的值為0,則再求表達(dá)式“y++”的值,其值就是條什表達(dá)式的值。18、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%2!=0C、x%2==0D、x%2==1標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:由于x為大于1的奇數(shù),因此x%2取余的值為1,和0不相等。19、以下敘述中正確的是A、關(guān)系運(yùn)算符兩邊的運(yùn)算對象可以是C語言中任意合法的表達(dá)式B、在C語言中,邏輯真值和假值分別對應(yīng)1和0C、對于浮點(diǎn)變量x和y,表達(dá)式:x==y是非法的,會出編譯錯誤D、分支結(jié)構(gòu)是根據(jù)算術(shù)表達(dá)式的結(jié)果來判斷流程走向的標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中沒有邏輯類型,用作零表永邏輯真。0表示邏輯假,選項(xiàng)B)錯誤,無法判斷兩個(gè)浮點(diǎn)變量是否相等,但是x==y不會出現(xiàn)編譯錯誤,選項(xiàng)C)錯誤,分支結(jié)構(gòu)根據(jù)表達(dá)式的值,不一定為算術(shù)表達(dá)式,選項(xiàng)D)錯誤。20、以下敘述中正確的是A、a表示一個(gè)字符常量B、’\0’表示字符0C、表達(dá)式:’a’>’b’的結(jié)果是“假”D、’\"’是非法的標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:字符常量可以參加關(guān)系運(yùn)算,按照其存儲的ASCII碼值進(jìn)行比較,’a’>’b’不成立,值為假。而’\0’表示NULL,ASCII碼值為0。21、以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是A、只能是整數(shù)0或非0整數(shù)B、可以是結(jié)構(gòu)體類型的數(shù)據(jù)C、可以是任意合法的表達(dá)式D、只能是整數(shù)0或1標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:邏輯運(yùn)算符兩側(cè)的運(yùn)算對象可以是任意合法的表達(dá)式。邏輯表達(dá)式的運(yùn)算結(jié)果或者為1(“真”),或者為0(“假”)。22、若a是數(shù)值類型,則邏輯表達(dá)式(a==1)‖(a!=1)的值是A、0B、2C、1D、不知道a的值,不能確定標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在邏輯表達(dá)式中,a‖b,只有在a跟b都為0時(shí),表達(dá)式的結(jié)果才為0。在題中所給的表達(dá)式中a要么等于1,要么不等于1,肯定會有一方的值不為真,表達(dá)式值為1。23、當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是A、(c==2)‖(c==4)‖(c==6)B、(c>=2&&c<=6)&&!(c%2)C、(c>=2&&c<=6)&&(c%2!=1)D、(c>=2&&c<=6)‖(c!=3)‖(c!=5)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:邏輯或運(yùn)算中,只要有一項(xiàng)為真,表達(dá)式的值就為真,故選項(xiàng)D)中c的值不為2、4、6時(shí),那么表達(dá)式(c>=2&&c<=6)以及(c!=3)、(c!=5)必有一個(gè)成立,表達(dá)式的值也為真。24、表示關(guān)系式x≤y≤z的C語言表達(dá)式的是A、(x<=y)‖(y<=z)B、(x<=y<=z)C、(x<=y)&&(y<=z)D、(x<=y)!(y<=z)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表示三個(gè)變量的關(guān)系,要利用邏輯表達(dá)式,用邏輯與連接。25、若變量已正確定義,以下選項(xiàng)中非法的表達(dá)式是A、a!=4‖’b’B、’a’%4C、’a’=1/2*(x=y=20,x*3)D、’A’+32標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:賦值表達(dá)式左邊應(yīng)為變量,選項(xiàng)C)中左邊為字符常量,因此非法,其余表達(dá)式均為合法的表達(dá)式。26、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intx=35,B;charz=’B’;B=((x)&&(z<’b’));printf("%d\n",B);}A、0B、35C、1D、66標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式((x)&&(z<’b’)),x為35非零,考慮表達(dá)式z<’b’,成立,則B的值為1。27、與數(shù)學(xué)表達(dá)式x≥y≥z對應(yīng)的C語言表達(dá)式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)‖(y>=x)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:若要表示x大于等于y,同時(shí)y大于等于z,需要用邏輯與表達(dá)式連接。28、以下敘述中正確的是A、對于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后,b的值會發(fā)生改變B、對于邏輯表達(dá)式:a++‖b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值會發(fā)生改變C、關(guān)系運(yùn)算符的結(jié)果有三種:0,1,-1D、else不是一條獨(dú)立的語句,它只是if語句的一部分標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:else不能單獨(dú)使用,和if匹配使用,要注意邏輯與運(yùn)算和邏輯或運(yùn)算出現(xiàn)的短路現(xiàn)象,關(guān)系運(yùn)算結(jié)果僅有0和1。29、以下敘述中正確的是A、由&&構(gòu)成的邏輯表達(dá)式與由‖構(gòu)成的邏輯表達(dá)式都有“短路”現(xiàn)象B、C語言的關(guān)系表達(dá)式:0<xC、邏輯“非”(即運(yùn)算符!)的運(yùn)算級別是最低的D、邏輯“或”(即運(yùn)算符‖)的運(yùn)算級別比算術(shù)運(yùn)算要高標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:邏輯表達(dá)式的運(yùn)算比較復(fù)雜,有短路現(xiàn)象,也就是首先計(jì)算“邏輯與”或者“邏輯或”運(yùn)算的第一個(gè)運(yùn)算量的值,根據(jù)表達(dá)式的值決定是否進(jìn)行第二個(gè)量的值的計(jì)算。“邏輯與”和“邏輯或”運(yùn)算低于關(guān)系運(yùn)算和算術(shù)運(yùn)算。但是“邏輯非”運(yùn)算卻高于算術(shù)運(yùn)算。30、下列關(guān)系表達(dá)式中,結(jié)果為“假”的是A、(3<<4)==1B、(3+4)>6C、(3!=4)>2D、3<=4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:關(guān)系表達(dá)式和邏輯表達(dá)式的結(jié)果為非零或者0,其中0表示假,而非零表示真,由于3!=4的結(jié)果為1,而1>2的結(jié)果為假。國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷第4套一、選擇題(本題共30題,每題1.0分,共30分。)1、己知天寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是A、c=(’A’+c)%26-’a’B、c=C+32C、c=C-’A’+’a’D、c=(C一’A’)%26+’a’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項(xiàng)C)能將大寫字符c的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCII代碼;選項(xiàng)D)和C)左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與’a’的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項(xiàng)A)中應(yīng)該是加上’a’,而不是減去’a’。2、以下選項(xiàng)中非法的C語言字符常量是A、’\b’B、’\007’C、’aa’D、’\xaa’標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號把一個(gè)字符括起來作為字符常量。3、以下選項(xiàng)中非法的C語言字符常量是A、’9’B、’\09’C、’\x09’D、’\x9d’標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號把一個(gè)字符括起來。也可以為轉(zhuǎn)移字符,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表某一個(gè)特定的ASCII字符,這些字符常量也必須括在一對單引號內(nèi)。其中反斜線后的八進(jìn)制數(shù)可以不用0開頭,但是不能有8和9字符出現(xiàn)。反斜線后的十六制數(shù)只可由小寫字母x開頭。4、若有定義語句charc=’\101’;則變量c在內(nèi)存中占A、2個(gè)字節(jié)B、3個(gè)字節(jié)C、1個(gè)字節(jié)D、4個(gè)字節(jié)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。5、若有以下程序,則程序的輸出結(jié)果是#include<stdio.h>main(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n",c1,c2);}A、H9B、H’9’C、F’9’D、表達(dá)式不合法輸出無定值標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:字符常量允許進(jìn)行簡單的算術(shù)運(yùn)算,則’C’+5表示H,而’9’-’0’則表示數(shù)值9。6、下面選項(xiàng)中合法的字符常量是A、XB、’abc’C、’X’D、’\’標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在程序中用單引號把一個(gè)字符括起來作為字符常量。但是為了表示字符“\”要用兩個(gè)“\\”表示一個(gè)反斜杠。7、以下敘述中正確的是A、字符常量在內(nèi)存中占2個(gè)字節(jié)B、轉(zhuǎn)義字符要用雙引號括起來,以便與普通的字符常量區(qū)分開C、字符常量需要用單引號括起來D、字符常量是不能進(jìn)行關(guān)系運(yùn)算的標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在程序中用單引號把一個(gè)字符括起來作為字符常量。轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表某一個(gè)特定的ASCII字符,這些字符常量也必須括在一對單引號內(nèi),和整型常量一樣,字符常量也可以進(jìn)行關(guān)系運(yùn)算的。8、以下敘述中正確的是A、字符變量在定義時(shí)不能賦初值B、同一英文字母的大寫和小寫形式代表的是同一個(gè)字符常量C、字符常量可以參與任何整數(shù)運(yùn)算D、轉(zhuǎn)義字符用@符號開頭標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在C程序中,字符常量可參與任何整數(shù)運(yùn)算,轉(zhuǎn)義字符以一個(gè)反斜線開頭后跟一個(gè)特定的字符。9、若有定義語句:chara=’\82’;則變量aA、包含1個(gè)字符B、說明不合法C、包含2個(gè)字符D、包含3個(gè)字符標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:轉(zhuǎn)義字符以一個(gè)反斜線開頭后跟一個(gè)特定的字符,可以利用’\ddd’3位八進(jìn)制數(shù)代表的一個(gè)ASCII字符,也可以’\xhh’2位十六進(jìn)制數(shù)代表的一個(gè)ASCII字符。選項(xiàng)A)中的八進(jìn)制表示出現(xiàn)字符8,非法。10、有以下程序,程序的輸出結(jié)果是main(){charc1=’A’,c2=’Y’;printf("%d,%d\n",c1,c2);}A、輸出格式不合法,輸出出錯信息B、65,90C、65,89D、A,Y標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時(shí),允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。11、C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為A、2B、3C、1D、4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為1。12、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+32):a;pfintf("%c\n",a);}A、HB、AC、hD、a標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式a=(a>=’A’&&a<=’Z’)?(a+32):a,為條件表達(dá)式,如果a是大寫字符,則轉(zhuǎn)換為小寫字符存放到a中,否則不變。13、以下正確的字符串常量是A、’abc’B、OlympicGamesC、""D、"\\\"標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:字符串常量是由雙引號括起來的一串字符。在C語言中,以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表一個(gè)特定的ASCII字符。利用兩個(gè)’\\’表示一個(gè)反斜杠,因此選項(xiàng)D)的表示無法確認(rèn)表示幾個(gè)反斜杠。14、若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是A、abs(x-y)<10B、x-y>-10&x-y<10C、!(x-y)<-10‖!(y-x)>10D、(x-y)*(x-y)<100標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:數(shù)學(xué)關(guān)系|x-y|<10表示x和y的差的絕對值小于10,選項(xiàng)A)使用了abs求絕對值函數(shù),滿足要求;選項(xiàng)B)是x和y的差值在一10和10之間,滿足要求;選項(xiàng)C)是x和v的差值大于一10或者y和x的差值小于10,不滿足要。15、數(shù)字字符0的ASCII值為48,若有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){chara=’1’,b=’2’;printf("%c,",b++);printf("%d\n",b-a);}A、3,2B、50,2C、2,2D、2,50標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題主要考查ASCII碼和自加運(yùn)算。第一個(gè)printf語句中,是以字符形式輸出b++的值,++放在變量的后面是先使用然后自增,因此第一個(gè)primf輸出值是2,然后b的值變成’3’。在第二個(gè)printf語句中,b的值為’3’,a的值為’1’,所以b-a的值為2。16、若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的c語言表達(dá)式是A、sqrt(fabs(pow(n,x)+pow(x,e)))B、sqrt(abs(n^x+e^x))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:n和e的x冪次方,要分別調(diào)用C語言的數(shù)學(xué)庫函數(shù)doublepow(n,x)和doubleexp(x),因?yàn)檫@兩個(gè)函數(shù)的返回值都為double型,對其兩者的和計(jì)算絕對值,調(diào)用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對值,再調(diào)用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣汁算出的結(jié)果就是題干中算術(shù)表達(dá)式的值。17、表達(dá)式:(int)((double)9/2)-9%2的值是A、0B、4C、3D、5標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:這個(gè)表達(dá)式的汁算過程為,首先求出9除以2的商等于4,再把其強(qiáng)制轉(zhuǎn)化為實(shí)型數(shù)據(jù)為4.0,然后再強(qiáng)制轉(zhuǎn)4,減去9對2求余數(shù)1,得到其結(jié)果等于3。18、若有定義語句:intx=12,y=8,z;在其后執(zhí)行語句z=0.9+x/y;則z的值為A、1.9B、1C、2D、2.4標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:由于x,y,z都是襤型數(shù)捌,所以x除以y的值為整型數(shù)值1,1和0.9相加得到1.9,再轉(zhuǎn)換為整型數(shù)1賦給整型變量z。19、表達(dá)式3.6-5/2+1.2+5%2的值是A、4.8B、3.3C、3.8D、4.3標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式的計(jì)算過程為:3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8。此題要注意5/2的結(jié)果是2,而不2.5,因?yàn)槌ㄟ\(yùn)算符兩邊的數(shù)值類型均為整型,故運(yùn)算結(jié)果的數(shù)值類型也被認(rèn)定為整型。20、有以下定義:inta;longb;doublex,y;則以下選項(xiàng)中正確的表達(dá)式是A、a%(int)(x-y)B、a=x<>yC、(a*y)%bD、y=x+y=x標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)B)中<>運(yùn)算符不存在,選項(xiàng)C)中double類型不能進(jìn)行取余(%)操作,要求兩個(gè)運(yùn)算數(shù)必須是整數(shù),選項(xiàng)D)中x+y=x錯誤。21、若有以下程序,編譯時(shí)出現(xiàn)錯誤,你認(rèn)為出錯的是#include<stdio.h>main(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a);/*第4行*/d=c;;/*第5行*/;/*第6行*/printf("%d,%d,%d\n",a,b,c);/*第7行*/}A、第4行B、第5行C、第6行D、第7行標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:第4行出錯,在第4行括號中兩個(gè)逗號不可以為空。單獨(dú)的分號為C語言的空語句,是編譯程序可以識別并兒編譯的,因此第5、6行都是正確的。22、不能正確表示數(shù)學(xué)式的表達(dá)式是A、a*b/cB、a/c*bC、a/b*cD、a*(b/c)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式的含義為a乘以b除以c,選項(xiàng)C)正好曲解了這一個(gè)含義。23、C語言程序中,運(yùn)算對象必須是整型數(shù)的運(yùn)算符是A、/B、%C、&&D、*標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:%要求參與運(yùn)算的運(yùn)算量為整型,其他三個(gè)運(yùn)算符對于參與運(yùn)算的運(yùn)算量沒有直接要求。24、設(shè)有定義:intk=1,m=2;floatf=7;,則以下選項(xiàng)中錯誤的表達(dá)式是A、k=k>=kB、.k++C、k%int(f)D、k>=f=m標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查了賦值表達(dá)式,在賦值表達(dá)式中,等號的左邊必須是變量,等號右邊可以是變量、表達(dá)式或者常量。選項(xiàng)A)是一個(gè)賦值表達(dá)式;選項(xiàng)B)是一個(gè)表達(dá)式;選項(xiàng)C)是計(jì)算余數(shù)表達(dá)式:選項(xiàng)D)錯誤,等號的左邊不是變量。25、設(shè)有定義:inta=2,b=3,c=4;,則以下選項(xiàng)中值為0的表達(dá)式是A、(!a==1)&(!b==0)B、(a<b)&!c‖1C、a&bD、a‖(b+b)‖(c-a)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題主要考查邏輯運(yùn)算。選項(xiàng)A)中,(!a==1)中運(yùn)算優(yōu)先級比==高,因此!a為假,然后在和1比較是否相等,因此整個(gè)表達(dá)式的結(jié)果為假,(!a==1)和(!b==0)是與的關(guān)系,前面的表達(dá)式為假,整個(gè)表達(dá)式結(jié)果就是假(0);選項(xiàng)B)中a<b為真,!c值為假,(a<b)&!c值為假,(a<b)&!c‖1為真;選項(xiàng)C)中a&b的值為2:選項(xiàng)D)中a的值為真,表達(dá)式的結(jié)果為真。26、若有表達(dá)式(w)?(--x):(++y),則其中與w等價(jià)的表達(dá)式是A、w==1B、w==0C、w!=1D、w!=0標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查條件表達(dá)式。(w)?(--x):(++y)的含義是如果w非0那么表達(dá)式的值為--x,否為++y,因此只有選項(xiàng)D)和w等價(jià)。27、若有定義:doublea=22;inti=0,k=18;則不符合C語言規(guī)定的賦值語句是A、i=(a+k)<=(i+k);B、a=a++,i++;C、i=a%11;D、i=!a;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在C語言中,求余運(yùn)算符的運(yùn)算對象只能是整型,在題目中,變量a是一個(gè)雙精型實(shí)型變量。28、設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是A、x=y+z+5,++yB、int(15.8%5)C、x=y*5=x+zD、x=25%5.0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在賦值表達(dá)式中,賦值符號“=”的左邊只能為賦值的變量,不能為表達(dá)式,右邊可以為常量或者是表達(dá)式,故選項(xiàng)C)錯誤;在取余運(yùn)算中,運(yùn)算符“%”兩邊都必須是整型數(shù)據(jù),所以選項(xiàng)B)、D)錯誤,選項(xiàng)A)是C語言中的逗號表達(dá)式。29、若有定義語句:intx=10;則表達(dá)式x-=x+x的值為A、-20B、0C、-10D、10標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式x=x+x等價(jià)于x=x-(x+x),整型變量x的初始值等于10,計(jì)算題目所求表達(dá)式的值時(shí),首先計(jì)算x與x的和等于20,然后再用10減去20等于-10,得到該表達(dá)式的值。30、有以下程序#include<stdio.h>main(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序運(yùn)行后的輸出結(jié)果是A、1,0B、3,2C、1,2D、0,0標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在主函數(shù)中定義,兩個(gè)整型變量a和b,并把它們的初值分別設(shè)置為1和0;在第二條語句中,首先計(jì)算出a和b的和等于1,把此值賦給變量b,并在屏幕上輸出此時(shí)變量b的值1;在第三條語句中,計(jì)算出2乘以1的積等于2,把2賦給變量a,再把變量a的值在屏幕上輸出。國家二級C語言機(jī)試(C語言基礎(chǔ)知識)模擬試卷第5套一、選擇題(本題共30題,每題1.0分,共30分。)1、若變量均已正確定義并賦值,以下合法的C語言賦值語句是A、x=n%2.5;B、x+n-i;C、x=5=4+1;D、x=y==5;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:選項(xiàng)D的含義是把關(guān)系表達(dá)式y(tǒng)=5的值賦給變量x。所以這是一條正確的賦值語句。因?yàn)橘x值運(yùn)算符左側(cè)的操作數(shù)必須是一個(gè)變量,而不能是表達(dá)式或者常量。因?yàn)榍笥噙\(yùn)算符“%”兩側(cè)的運(yùn)算對象都應(yīng)當(dāng)是整型數(shù)據(jù)。2、若有定義語句:inta=3,b=2,c=1;以下選項(xiàng)中錯誤的賦值表達(dá)式是A、a=b=c+1;B、a=(b=4)=3;C、a=(b=4)+c;D、a=1+(b=c=4);標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查賦值表達(dá)式,對于賦值表達(dá)式來說,賦值號“=”的左邊一定為變量名,右邊為一個(gè)C語言合法的表達(dá)式。3、表達(dá)式a+=a-=a=9的值是A、.9B、0C、18D、9標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:第一步a=9,然后計(jì)算a-a的值,并將此值賦給a,因此此時(shí)a=0,最后計(jì)算a+a,并將此值賦給a,因此最終結(jié)果為0。4、若有以下程序#includemain(){inta=一11,b=10;a/=b/=-4;printf("%d%d\n",a,b);}則程序的輸出結(jié)果是A、-1.2B、5-2C、4-3D、5-3標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:對于語句“a/=b/=4;”相當(dāng)于“a=a/(b=b/-4);”a初值為-11,b的初值為10,則運(yùn)算以后10/-4值為-2,-11/-2值為5。5、以下敘述中正確的是A、在賦值表達(dá)式中,賦值號的右邊可以是變量,也可以是任意表達(dá)式B、a是實(shí)型變量,a=10在C語言中是允許的,因此可以說:實(shí)型變量中可以存放整型數(shù)C、若有inta=4,b=9;執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D、若有inta=4,b=9;執(zhí)行了a=b;b=a;之后,a的值為9,b的值為4標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)B中a=10,在賦值時(shí)會把10自動轉(zhuǎn)換為double類型然后賦值,實(shí)型變量中不可能存放整型。而選項(xiàng)C中執(zhí)行a=b后,b的值不變還是9,選項(xiàng)D中執(zhí)行“a=b;b=a;”后,a的值為9,b的值也為9。6、有以下程序,程序運(yùn)行后的輸出結(jié)果是#includemain(){inta=3;printf("%d\n",(a+=a-=a*a));}A、9B、0C、3D、-12標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:對于表達(dá)式“a+=a-=a*a”相當(dāng)于“a=a-(a*a)”,然后計(jì)算“a=a+a”,a的初值為3,則表達(dá)式的值為-12。7、若有定義和語句:inta,b;scanf("%d,%d,",&a,&b);以下選項(xiàng)中的輸入數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是A、3,5B、3,5,C、3,5D、3,5,4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在格式控制字符串中插入其他字符,則在輸入的時(shí)候應(yīng)該據(jù)實(shí)加入到輸入流中,不能隨意加入空格等,否則無法得到正確的輸入結(jié)果。8、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intm=12,n=34;printf(“%d%d”,m++,++n);printf(“%d%d\n”,n++,++m);}A、12353514B、123535i3C、12343514D、12343513標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題主要考查自加運(yùn)算符,自加運(yùn)算符++在變量前表示先增加然后再使用,++在變量后表示先使用然再增加。本題中,第一個(gè)printf語句m++表示先輸出m的值,然后m增加1,因此首先輸出的是12,然后m的值變成13,++n表示n首先增加1變成35然后輸出,因此輸出的是35;在第二個(gè)printf。語句中,n++是先輸出n的值然后增加,即輸出35,n的值變?yōu)?6,++m表示先增加m的值再輸出,m的值由13變成14,故最后輸出的是14。9、在16位編譯系統(tǒng)上,若有定義“inta[]={10,20,30},*p=a;”,當(dāng)執(zhí)行“p++;”后,下列說法錯誤的是A、p向高地址移了一個(gè)字節(jié)B、p向高地址移了一個(gè)存儲單元C、p向高地址移了兩個(gè)字節(jié)D、p與a+1等價(jià)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查數(shù)組和數(shù)組指針。a是一個(gè)整型數(shù)組,p指針指向a數(shù)組,即p指向a數(shù)組的首元素的地址,因此p++之后,p往高地址移動,指向首元素后面一個(gè)元素的地址。10、設(shè)有定義:intx=2:以下表達(dá)式中,值不為6的是A、2*x,x+=2B、x++,2*xC、x*=(1+x)D、x*=x+1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查逗號表達(dá)式。逗號表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)逗號表達(dá)式的值是表達(dá)式2的值,因此,選項(xiàng)A中值為4;選項(xiàng)B中,值為6。選項(xiàng)C中x*=x+1等價(jià)于x=x+(x+1),所以等于6:選項(xiàng)D與選項(xiàng)C等價(jià),結(jié)果也為6。11、有以下程序,程序運(yùn)行后的輸出結(jié)果是#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}A、2,3,1B、2,3,2C、2,3,3D、2,2,1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在程序中,整型變量x、y的初值都為1,賦值語句“z=x++,y++,++y”右邊的“x++,y++,++y”是一個(gè)逗號表達(dá)式,所以逗號表達(dá)式的值++y的值。執(zhí)行逗號表達(dá)式“x++,y++,++y”后,x的值為2,y的值為3,z取逗號表達(dá)式的值,為1。12、若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是A、++x,y=x--B、x+1=yC、x=x+10=x+yD、double(x)/10標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:用逗號將表達(dá)式連接起來的式子稱為逗號表達(dá)式。其表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式n。最后一個(gè)表達(dá)式的值就是此逗號表達(dá)式的值。所以選項(xiàng)A為C語言中的逗號表達(dá)式。賦值表達(dá)式的左側(cè)只能是變量,不能是常量或表達(dá)式。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式為:(類型名)(表達(dá)式),其中(類型名)稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,數(shù)據(jù)類型兩邊的圓括號不能省略。13、設(shè)有定義:intk=0;以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是A、k++B、k+=1C、++kD、k+1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:因?yàn)轭}中有語句“intk=0;”,所以選項(xiàng)B、C)、D)都是對k的值加1,選項(xiàng)A的語句k++表示先利用k的值進(jìn)行運(yùn)算,然后k值才加1。14、若有以下程序,則程序的輸出結(jié)果是#ineludemain(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論