C語言基礎知識詳解_第1頁
C語言基礎知識詳解_第2頁
C語言基礎知識詳解_第3頁
C語言基礎知識詳解_第4頁
C語言基礎知識詳解_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 C語言基礎知識一、選擇題1 .算法具有五個特性,以下選項中不屬于算法特性的是 。A)有窮性B)簡潔性C)可行性D)確定性【答案】B【解析】本題考查的是算法的特性。一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入:由一個或多個輸出。簡潔性不屬于這5個特性,所以本題應該選擇Bo2 .以下敘述中錯誤的是A)用戶所定義的標識符允許使用關鍵字B)用戶所定義的標識符應盡量做到“見名知意”C)用戶所定義的標識符必須以字母或下劃線開頭D)用戶定義的標識符中,大、小寫字母代表不同標識【答案】A【解析】本題考查 C語言中標識符的概念。用用戶標識符是由字母、數(shù)字和下劃線組成,并且第一個

2、字符必須為字母 或下劃線,并且不能與 C語言關鍵字相同。所以本題應該選擇Ao3 .以下4組用戶定義標識符中,全部合法的一組是()A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 【答案】A【解析】本題考核的知識點是C語言中的標識符命名規(guī)則。標識符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列(例如,-max含非法字符-),并且用戶標識符不能與C語言中的32個關鍵字同名(例如,int是關鍵字,不是合法的用戶標識符)。選項B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項B不正確;選項 C中3COM

3、不是由字母或下劃線開頭,故選項c不正確;選項 D中int為C語言中的關鍵字,故選項D不正確;選項 A中全部為合法的標識符,所以,4個選項中選項 A符合題意。4 .以下選項中,合法的一組 c語言數(shù)值常量是()A)028B)12.C).177D)0x8a.5e-30Xa234e1.510,000-0xf 4.5e0 0abc 3.e5【答案】B【解析】本題考查的知識點是:數(shù)值常量。數(shù)值常量分為整型和實型兩類。其中,整型有十進制、八進制和十六進制三種表示法;實型有小數(shù)形式和指數(shù)形式兩種表示法。十進制和書面使用的數(shù)據(jù)表示一樣;八進制是以數(shù)字O開頭,后面跟由07組成的八進制數(shù)組成;十六進制是以0x(或O

4、X)開頭,后面跟由09與AF(或af)組成的十六進制數(shù)組成;小數(shù)形式由數(shù)字和小數(shù)點組成,其整數(shù)部分或小數(shù)部分如果為0可省略,但不能同時省略。指數(shù)形式由小數(shù)形式或十進制形式開頭,后面跟 e(或E),再跟一個十進制整數(shù)組成。選項A中,028是八進制形式,但后面跟的8不在07之內,所以非法;選項 c中,4e1.5是指數(shù)形式,但e后面所跟的不是整數(shù),所以非法;選項 D中,10,000中不能有“,”,所以非法。故本題應該選擇B。5 .以下敘述中正確的是()A)C語言的源程序不必通過編譯就可以直接運行B)C語言中的每條可執(zhí)行語句最終都將被轉換成二進制的機器指令C)C源程序經(jīng)編譯形成的二進制代碼可以直接運行

5、D)C語言中的函數(shù)不可以單獨進行編譯【答案】B【解析】本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉換為二進制的目標代碼,編寫好一個 C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二 進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編 譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊鏈接后才能運行:鏈接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊 經(jīng)鏈接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件:執(zhí)行,執(zhí)行一個經(jīng)過編譯和鏈接的 可執(zhí)行的目標文件。由以上定義可知,

6、選項 A)C)D均不正確。所以,4個選項中選項B符合題意。6 .下列敘述中正確的是A每個C程序文件中都必須要一個 main()函數(shù)B)在C程序中main()函數(shù)的位置是固定C) C程序中所有函數(shù)之間都可以相互調用,與函數(shù)所在位置無關D)在C程序的函數(shù)中不能定義另一個函數(shù)【答案】D【解析】本題考查的知識點是函數(shù)。每一個c程序中都必須有且只有一個main ()函數(shù)但一個 C程序可以由多個程序文件組成,所以并非每個 c程序文件中都必須要有一個main()函數(shù),故選項 A不正確。c語言并未對 main()函數(shù)的位置作要求,因此選項 B也是錯誤的。C語言中,在一個函數(shù)被調用之前一定要先聲明該函數(shù),所以定

7、義靠后的函數(shù)若 在前面沒有聲明該函數(shù)的原型,是不能被定義靠前的函數(shù)所調用的,即除數(shù)函數(shù)數(shù)之間的調用并非與函數(shù)所在位置無 關,所以選項 C不正確。故本題的正確答案應該為選項D7 .下列敘述中錯誤的是()A)計算機不能直接執(zhí)行用 C語言編寫的源程序B)C程序經(jīng)C編譯程序編譯后,生成后綴為 .obj的文件是一個二進制文件C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件D)后綴為.obj和.exe的二進制文件都可以直接運行【答案】D【解析】本題考查的知識點是:c語言的基本概念。c語言源程序經(jīng)過 c語言編譯程序編譯后,會生成一個二進制文件,后綴為 .obj,稱為目標文件。然后

8、還要經(jīng)過“連 接程序”,把此.obj文件與c語言提供的各種庫函數(shù)連接起來,生成后綴為.exe的可執(zhí)行文件,才能夠運行。故本題中只有選項D是錯誤的。8 .以下敘述中錯誤的是()A)C語百是一一種結構化程序設計語言B)結構化程序有順序、分支、循環(huán)三種基本結構組成C)使用三種基本結構構成的程序只能解決簡單問題D)結構化程序設計提倡模塊化的設計方法【答案】c【解析】本題考查的知識點是:結構化程序設計。結構化程序由3種基本結構組成:順序結構、選擇結構和循環(huán)結構。已經(jīng)得到證明,由3種基本結構組成的算法結構可以解決任何復雜的問題。故本題中選項c是錯誤的。9 .用C語言編寫的代碼程序A)可立即執(zhí)行 B)是一個

9、源程序。經(jīng)過編譯即可執(zhí)行 D)經(jīng)過編譯解釋才能執(zhí)行【答案】B【解析】本題考核的知識點是c程序的基本概念。c語言一種高級語言,c語言源程序經(jīng)過 c語言編譯程序編譯之后,生成一個后綴為.OBJ的二進制文件(稱為目標文件),晟后還要由稱為“鏈接程序”(Link)的軟件,把此QBJ文件與c語言提供的各種庫函數(shù)連接在一起,生成一個后綴.EXE的可執(zhí)行文件。顯然 c語言不能立即執(zhí)行,故選項 A錯誤;根據(jù)以上定義。選項 C和選項D錯誤,所以,4個選項中選項 B符合題意。10 .結構化程序由三種基本結構組成,三種基本結構組成的算法A)可以完成任何復雜的任務B) 只能完成部分復雜的任務C)只能完成符合結構化的任

10、務D)只能完成一些簡單的任務【答案】A【解析】本題考核的知識點是c程序的三種基本結構。C程序由三種基本的結構組成,分別為順序結構、選擇結構和循環(huán)結構,這三種結構可以組成任何復雜的C程序,即可以完成任何復雜的任務,故選項B)選項c和選項D都不正確。所以,4個選項中選項 A符合題意。11 . C語言源程序名的后綴是()A).exe B).C C).obj D).cp【答案】B【解析】本題考查的知識點是:c語言的基本概念。c語言源程序的后綴為.c;經(jīng)過編譯得到的目標程序文件的后綴為.obj ;再將目標程序文件鏈接后得到可執(zhí)行文件的后綴為驗證.exe。故本題應該選擇 Bo12 .以下敘述中錯誤的是A)

11、 C語句必須以分號結束B)復合語句在語法上被看作一條語句C)空語句出現(xiàn)在任何位置都不會影響程序運行D :'.喊爬*達式木巴分匕就悶成骯1直千句【答案】C【解析】本題考查了 C語言中語句的一些概念。C語句必須以分號結束,選項A是正確的。復合語句在語法上被看作一條語句,選項 B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當作 條件子句或者循環(huán)體來看待,所以選項C是錯誤的。賦值表達式末尾加分號就構成賦值語句,選項D正確。故本題應該選擇Co13 .以下能正確定義且賦初值的語句是A) int n1=n2=10; B ) char c=32; C ) floa

12、t f=f+1.1; D ) double x=12.3E2.5; 【答案】B【解析】本題考查的知識點是變量賦初值。選項 A中的語句只能起定義 nl的作用,而n2=10是n1的初始值表達式, 但因前面沒有定義過 n2,所以編譯會報錯“ n2未定義”,故不正確。選項 B使用一個整數(shù)初始化一個字符變量是正確 的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項c定義的初始值表達式中出現(xiàn)了它自身,某些編譯器能通過編譯,但 f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。

13、14 .有以下程序main() char a1='M', a2='m' printf("%cn", (a1, a2) ); 以下敘述中正確的是A)程序輸出大寫字母M B )程序輸出小寫字母 mC)格式說明符不足,編譯出錯D)程序運行時產(chǎn)生出錯信息【答案】B【解析】本題考查的是逗號表達式。因為整個逗號表達式的值為逗號表達式最后一個子表達式的值,所以本題輸出的是a2的值'm'。故應該選擇 Bo15 .以下符合C語言語法的實型常量是() A)1.2E0.5 B)3.14.159E C).5E-3 D)E15【答案】C【解析】本題考核

14、的知識點是實型常量和指數(shù)形式表示數(shù)的書寫格式。實型常量只能用十進制形式表示,不能用八進制或十六進制形式表示,實型常量可以用小數(shù)形式或指數(shù)形式表示,在C語言中,可以用指數(shù)形式將實型常量表示為數(shù)值和指數(shù)兩部分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項A中1.2和0.5都不是整數(shù),故選項 A不正確;選項B中3.14159也不是整數(shù),故選項 B不正確;選項 D中數(shù)值分不能為空,故選項D也不正確;所以,4個選項中選項C符合題意。16 .若以下選項中的變量已正確定義,則正確的賦值語句是() A)x1=26.8%3; B)1+2=x2 ;C)x3=0x12; D)x4=1+2=3;【答案】C【解析】本

15、題考核的知識點是C語言中對變量賦值的應用。賦值操作由賦值運算符“=”來完成,一般形式為變量 =表達式,賦值的方向為由右向左,即將“=”右側表達式的值賦給“=”左側的變量,執(zhí)行步驟是先計算再賦值。選項 A中運算符“”的運算對象必須為整數(shù),而選項 A中26.8不是整數(shù),故選項 A不正確;選項B將一個變量賦值給一個 表達式,這在 C語言中是不允許的,故選項B不正確;選項 D中也是將一個常量 3賦值給一個表達式,故選項D不正確;所以,4個選項中選項 C符合題意。17 .設有以下定義int a=0;double b=1.25;char c= ' A';#define d 2則下面語句中錯

16、誤的是() A)a+; B)b+ ;C)c+; D)d+;【答案】D【解析】本題考核的知識點是自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表 達式和常量。本題中,#define d 2定義了 d為常數(shù)2,不能在對d進行自加運算。故選項D是個不正確的語句,所以,4個選項中選項 D符合題意。18 .設有定義:float a=2,b=4,h=3;, 以下C語言表達式與代數(shù)式 1/2(a+b)h 計算結果不相符的是() A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)【答案】B【解析】本題考核的知識點是將簡單的數(shù)學

17、表達式表示成合法的C程序的語句。選項B中由于l和2都是整型,其1/2的運算結果為0,故整個表達式的值為 0,所以它的結果和題目中要求的代數(shù)式的計算結果不相符,所以,4個選項中選項B符合題意。19 .有以下定義語句1門 a.b: i'T.飛:1m"啥 c;若各變量已正確賦值,則下列選項中正確的表達式是A)a=a+b=b+ B)w%(int)a+b)1 (匚+忙;為 Gn .)匕 口為:一匕一h;【答案】C【解析】本題考核的知識點是c語言中一些運算符的簡單應用。選項A中不是合法的賦值語句,將最右邊的第一個賦 值表達式加才號即為 a=b+(b=b+)才正確,故選項 A不正確;選項

18、B中運算符“”的對象必須是整型,而在選項 B 中(int)a+b 為double型,故選項 B不正確;選項 a,b都為double "="應該改為"=",故選項 D不正確。所以,4 個選項中選項c符合題意。20 .有以下程序main() int m=3,n=4,x;x=-m+;x=x+8/+n;printf("%dn",x);程序運行后的輸出結果是A)3 B)5 C)-1 D)-2【答案】D【解析】本題考核的知識點是運算符的優(yōu)先級。主函數(shù)中首先定義了整型變量m n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條 x=-m+

19、等價于X=-(m+),其值即為-3 ,第二條x=x+8/+n等價于x=+8/(+n),即 為x=-3+8/5=-2 ,因此最后輸出x的值為-2。所以,4個選項中選項 D符合題意。21 .有以下程序main() char a='a',b;print("%c,",+a);printf("%cn",b=a+);程序運行后的輸出結果是A)b,b B)b,c C)a,b D)a,c【答案】A【解析】本題考核的知識點是運算符+的用法。程序中的第一個輸出語句輸出表達式+a的值,該+a是在使用a之前,先使a的值加1,即為a力口 1為字符b,此時a的值為b

20、,所以第一個輸出語句輸出的值為b,第二個輸出語句中輸出的b的值,這時b的值為表達式a+的值,a+是在使用a之后(此日a的值為b,所以賦給b的值為b),使a的值加 一,因此第二個出的值也為b。所以,4個選項中選項 A符合題意。22 .有以下程序main() char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("c,%c,%c,%cn",a,b,c,d);若運行時從鍵盤上輸入:6,5,65,66。則輸出結果是A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D

21、)6,5,6,6【答案】A【解析】本題考核的知識點是字符表示。主函數(shù)中首先定義了 4個字符變量A)B)C) d ,然后通過scanf()函數(shù)輸入A)B)C)d。輸入中a和b是按字符格式c輸入的,c和d是按整型符號d輸入的。在看下面的 printf() 函數(shù)中,要求 A)B)C)d都按字符輸出,故a和b原樣輸出為6、5、c和d將把與其ASCII碼對應的字符輸出,65和66的ASCII碼對 應字符A和B,故最后的輸出為« 6, 5, A, B"。所以,4個選項中選項 A符合題意。23 .以下關于long、int和short類型數(shù)據(jù)占用內存大小的敘述中正確的是()A)均占4個字節(jié)

22、 B)根據(jù)數(shù)據(jù)的大小來決定所占內存的字節(jié)數(shù)C)由用戶自己定義D) 由c語言編譯系統(tǒng)決定【答案】D【解析】在c語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關。例如在Turbo C 2.0中,int占2個字節(jié),但在 Visual C+6.0(VC6 可以用做c語言編譯器)中占4個字節(jié)。故本題應該選擇D。24 .以下不合法的字符常量是A) '018'B) '"'Q ''D) 'xcc'【答案】A 【解析】本題考查的知識點是字符常量中的轉義字符。轉義字符是以一個“”開頭的字符序列,它只代表一

23、個字符。在選項A中,“ ”后跟著三個數(shù)字,是表示一個ASCII碼值等于這三位數(shù)字所組成的八進制數(shù)數(shù)值的字符,但是八進制數(shù)只能是由07這八個數(shù)字表示,而選項A中出現(xiàn)了數(shù)字8所以是不合法的。選項B是表示一個雙引號的轉義字符 表示方法;選項 c表示的是一個反斜桿;選項D表示一個ASCII值為十六進制值 cc的字符。故應該選擇Ao25 .表達式3.6-5/2+1.2+5%2 的值是A) 4.3B) 4.8C) 3.3D) 3.8【答案】D 【解析】本題考查的知識點是算術表達式的運算。算術表達式是由+、一、*、/和五種算術運算符所組成的表達式,其中*、/和%的優(yōu)先級要高于 +和一,同級別的運算符從左至右

24、運算。所以本題首先計算5/2和5%2,雖然我們都知道5/2的結果應該是2.5,但C語言中規(guī)定了兩個整數(shù)相除的結果為整數(shù)。而且是截尾取整,所以5/2的結果是2; 5%2表示的是5除以2所得的余數(shù),其結果為1。計算完后,表達式變?yōu)?3.6 -2+1.2+1 ,從左至右計算不難得出結果為26 8 ,故應該選擇 Do27 .以下四個程序中,完全正確的是A) #include <stdio.h> main(); /* programming */ printf("programming!n"); B) #include <stdio.h> main( ) /*

25、/ programming /*/ printf("programming!n"); C) #include <stdio.h> main( ) /*/* programming */*/ printf("programming!n"); D) include <stdio.h> main( ) /* programming */printf("programming!n");【答案】B【解析】本題考查了一些書寫代碼時經(jīng)常容易犯的錯誤。選項A在定義main()函數(shù)時,函數(shù)頭后面多了一個分號,故選項A不正確;C語

26、言中的注釋是不能嵌套的,故選項C不正確;選項D在使用預編譯指令#include時漏掉了 #,所以也是錯誤的。故應該選擇Bo28 .以下敘述中錯誤的是A) C程序中的#include 和#3萬的 行均不是 C語句B)除逗號運算符外,賦值運算符的優(yōu)先級最低C) C程序中,j+;是賦值語句D) C程序中,+、-、*、/、號是算術運算符,可用于整型和實型數(shù)的運算 【答案】D【解析】是求余運算符,只能用于整型數(shù)的運算,故答案D是錯誤的。28 .以下敘述中正確的是A預處理命令彳T必須位于C源程序的起始位置B)在C語言中,預處理命令行都以“ #"開頭 C)每個C程序必須在開頭包含預處理命令行:#i

27、nclude<stdio.h>D) C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能【答案】B【解析】預處理命令行可以出現(xiàn)在C源程序的任何位置.故選項 A不正確。#include stdio.h> 預處理命令行的意思是將stdio . h頭文件插入源程序中該行命令所在的位置,表示我們將在后續(xù)行中用到stdio . h頭文件中定義的函數(shù)或類型,若程序中沒有用到這些函數(shù)或類型就可以不用包含此頭文件,故選項C不正確。C提供的預處理功能主要有:宏定義、文件包含和條件編譯三種功能。故選項D不正確。在C語言中,預處理命令行都以“ #"開頭,故應該選擇 Bo29 .下列敘述中錯誤的是

28、A) 一個C語言程序只能實現(xiàn)一種算法B) C程序可以由多個程序文件組成C) C程序可以由一個或多個函數(shù)組成D) 一個C函數(shù)可以單獨作為一個C程序文件存在【答案】A【解析】本題考查 c語言的特點。一個 c語言程序可以實現(xiàn)多種算法,因此本題應該Ao30 .下面程序的輸出結果是#include < stdio;h > main () int i=010, j=10 ;printf ("%d,%d”, i,j-); A) 11, 10 B ) 9, 10 C ) 010, 9 D ) 10, 9【答案】B【解析】程序中i的值用八進制表示(十進制為8), i是在變量使用前自身先加1

29、,而j-是在變量使用后自身減1。31 .若有定義:int a=8,b=5,c;執(zhí)行語句c=a/b*0.4 ;后,c的值為A) 1.4 B )1 C ) 2.0 D )2【答案】B【解析】在表達式中根據(jù)運算的結合性和運算符的優(yōu)先級,首先計算的是a/b(8/5=1),再將1.4賦值給c,由于c為整型變量所以要將 1.4轉換為整型,即舍棄小數(shù)位(c的值變?yōu)?)。32 .C語言程序的基本單位是A)程序行B)語句C)函數(shù)D)字符【答案】C【解析】C語言程序的基本單位是函數(shù)。33 .C語言中最簡單的數(shù)據(jù)類型包括A)整型、實型、邏輯型B)整型、實型、字符型C)整型、字符型、邏輯型D)整型、實型、邏輯型、字符

30、型【答案】B【解析】C語言三種基本數(shù)據(jù)類型是整型、實型、字符型34 .以下選項中屬于C語言的數(shù)據(jù)類型是A)復數(shù)型B) 邏輯型 C)雙精度型 D) 集合型【答案】C【解析】C語言沒有邏輯型和集合型,更不會有復數(shù)型,所以只有C正確35 .下列敘述中正確的是A) C語言中既有邏輯類型也有集合類型B) C語言中沒有邏輯類型但有集合類型C) C語言中有邏輯類型但沒有集合類型D) C語言中既沒有邏輯類型也沒有集合類型【答案】D【解析】C語言中沒有邏輯類型和集合類型。36 .C語言提供的合法的數(shù)據(jù)類型關鍵字是A) DoubleB) shortC) integerD) Char【答案】B【解析】C語言關鍵字必

31、須小寫,所以A和D都是錯誤的,integer不是C語言關鍵字,所以應該選擇B37 .在使用程序流程圖來表示算法時,菱形用來表示 。A)輸入與輸出B )子程序 Q判斷分支D)循環(huán)邊界【答案】C【解析】美國國家標準化協(xié)會 ANSI規(guī)定了一些常用的流程圖符號,其中橢圓框表示起止框,方框表示處理框,菱形框 表示判斷分支,箭頭表示流程線。38 .與十進制數(shù)200等值的十六進制數(shù)為 。A)A8 B)A4 C)C8 D)C4【答案】C【解析】本題考查的是進制之間的轉換。用十-十六進制轉換法,除 16,由下而上取余法。16200 8116C C39 .有以下程序main() int m=12,n=34;pri

32、ntf("%d%d",m+,+n);printf("%d%dn”,n+,+m);程序運行后的車出結果是 。A)12353514 B)12353513 C)12343514 D)12343513【答案】Ao【解析】本題考查的是變量的自加運算。+在變量前和變量后的唯一區(qū)別就在于在執(zhí)行"+變量”所在的語句時,是先將變量加 1再執(zhí)行它所在語句還是先執(zhí)行它所在的語句再使變量加 1,當+在變量后時,也就是“變量+”,那就是先將變量值代入表達式運算后再使變量加1;而"+變量”是先使變量加1,再把加1后的結果放入表達式進行運算。這兩種情況,在執(zhí)行完變量所在的語

33、句后,它們在內存中的值都是加過1之后的值了。本題執(zhí)行"printf("%d%d",m+,+n);" 后,輸出的是 m和 n+1的值1235 ,接著使 m+1=13,執(zhí)行 "printf("%d%dn",n+,+m);" 輸出 n 和 m+1 的值 3514。40 .有以下程序main() int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%dn",a,b);程序運行后的車出結果是 。A)6,1 B)2,1 C)6,0 D)2,0【答案】Bo【解

34、析】本題考查的是算術運算符。如果算術運算符"/"中參與運算的變量都是整型變量,則 "/"表示整除運算,""表示求余。本題中"a=d/10%9;"的 值為25/10%9=2; "b=a&&(-1);"為2&&(-1)=1 (注意:-1表示真,只有 0才表示假),所以a,b的值分別為2,1。41 .設int a=12 ,則執(zhí)行完語句 a+=a-=a*a后,a的值是。A)552 B)264 C)144 D)-264【答案】D?!窘馕觥勘绢}的考查點是賦值表達式的求解。第一

35、步:a*a=144 ;(此時 a=12)第二步:a-=144 相當于 a=a-144 , a=a-144=-132 ; (此時 a=-132)第三步: a+=a 相當于 a=a+a, a=a+a=-264 ;所以該表達式最后的值應當為-264。42 .在C語言中,要求運算數(shù)必須是整型的運算符是 。A)%B)/C)<D)!【答案】Ao【解析】本題的考查點是運算符。題目的四個選項中,(B) (C) (D)都不要求運算數(shù)必須為整數(shù),參與模運算()的運算數(shù)必須是整型數(shù)據(jù)。43 .設有語句 char a='072',則變量 a。A)包含1個字符B)包含2個字符 C)包含3個字符 D

36、)說明不合法【答案】Ao【解析】本題考查的是字符型數(shù)據(jù)。'072'表示白是ASCII碼等于72的那個字符,即為":二 所以在字符變量中存儲的只是":"這一個字符。44 .要把高級語言編寫的源程序轉換為目標程序,需要使用 。A)編輯程序B)驅動程序 C)診斷程序 D)編譯程序【答案】D?!窘馕觥烤幚[程序的作用就是將已編輯好的源程序翻譯成二進制的目標代碼。在編譯時,還要對源程序進行檢查,如 發(fā)現(xiàn)錯誤,則在屏幕上顯示出錯信息,此時應重新進入編輯狀態(tài),對源程序進行修改后再重新編譯,直到通過編譯為 止。不過值得注意的是:經(jīng)編譯得到的二進制代碼還不能直接參與執(zhí)

37、行,因為每一個模塊往往是單獨編譯的,必須把 經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行。45 .英文小寫字母 d的ASCII碼為100,英文大寫字母 D的ASCII碼為 。A)50 B)66 C)52 D)68【答案】D?!窘馕觥勘绢}主要考的是英文大小寫字母間ASCII碼值的差異,只要記住英文大寫字母比其對應的英文小寫字母的ASCII碼值小32。46 .以下選項中不屬于 C語言的類型是。A)signed short int B)unsigned char C)signed long D)long short【答案】D?!窘馕觥緾語言中歸納起來,基本類型數(shù)據(jù)有以下幾種:sin

38、ged char;unsigned char;signed short int;unsigned short int;signed long int;unsigned long int;float;double;long double;47 .在16位C編譯系統(tǒng)上,若定義 long a;,則能給a賦40000的正確語句是 。A)a=20000+20000 B)a=4000*10 C)a=30000+10000 D)a=4000L*10L【答案】D?!窘馕觥砍鼶之外的選項的右邊的表達式都超過了16位帶符號整數(shù)的范圍(32767)。48 .已知大寫字母 A的ASCII碼是65,小寫字母a的ASCI

39、I碼是97,則用八進制表示的字符常量'101'是。A)字符A B)字符a C) 字符e D)非法的常量【答案】Ao【解析】本題的考查點是字符與ASCII碼的轉換。八進制101轉換為10進制即為65,而字母A的ASCII碼是65,所以用八進制表示的字符常量101'是A。49 .下列關于單目運算符+、-的敘述中正確的是 。A)它們的運算對象可以是任何變量和常量B)它們的運算對象可以是 char型變量和int型變量,但不能是 float 型變量C)它們的運算對象可以是 int型變量,但不能是 double型變量和float型變量D)它們的運算對象可以是 char型變量、int

40、型變量和float 型變量【答案】D?!窘馕觥勘绢}的考查點是自增、自減運算符。自增、自減運算符的作用是使變量的值增1或減1,只能用于變量,包括 char型變量、int型變量和float型變量,而不能用于常量或表達式。二、填空題1 .以下程序運行后的輸出結果是 。main() char c; int n=100;float f=10; double x;x=f*=n/=(c=50);printf("%d %fn",n,x); )【答案】2 20.0 或 2 20 或 2 20 .或 2 20 . 000000【解析】本題考查的是賦值運算符。所有的賦值運算符的優(yōu)先級都相同,它們

41、的結合性為從右至左,它們返回的表達式值為賦給變量的值。所以,語句 x=f*=n /=(c=50) ; -X=f*=n/=50; 一 x= f*=2;(n 的值變成 2) 一x=20;。故最終 輸出的結果應該是 2 20.0000002 .已知字母A的ASCII碼為65。以下程序運行后的輸出結果是 。main() char a, b;a='A'+'5'-'3' b=a+'6'-'2'printf("%d %cn", a, b); )【答案】67G【解析】本題考查的是字符型變量的算術運算。字符型變量

42、中保存的是某個字符的ASCII碼值,是一個整數(shù),因此字符型變量的算術運算和整型變量并無區(qū)別。所以a= 'A' + '5' - '3' = 'A' +( '5' - '3' )= 'A' +2=65+2=67; b=a+'6' - '2' = 'C'+('6'- '2' )='C'+4= 'G'。最后分別按十進制整數(shù)和字符形式輸出a和b的值為:67G。3 .已知字符A的ACSII碼值為65,以下語句的輸出結果是 char ch= ' B' ; printf( "%c %d n” ,ch,ch);【答案】B 66【解析】本題考核的知識點是printf函數(shù)的應用。printf函數(shù)的功能是按照指定的格式,在標準輸出設備上輸出數(shù)據(jù),它有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù)。本題中,printf( "%c %d” , ch, ch)表示以字

溫馨提示

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

評論

0/150

提交評論