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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

評論

0/150

提交評論