




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言基礎知識一,選擇題 1 答案是A A正確 B 可以作為復合語句的標志 C main 函數(shù)不是用戶命名的 D 分號是語句結束的標志,肯定是語句的一部分 做這個題目需要對書上的概念透徹的理解 2 答案是A A 錯誤 用戶標識符:命名時,標識符的選擇由用戶自定,但是不能與關鍵字相同,所以A選項錯誤。這個題目考察用戶標識符 3 答案是B 用戶標識符是標識符,所以可以是有下劃線,但是中劃線不屬于字母, 數(shù)字,下劃線其中一種。這個題目考察用戶標識符的概念。 4 答案是B define 是預定義標識符,而預定義標識符可以是用戶標識符,所以 define可以是用戶標識,if 是關鍵字,而關鍵字不能是用戶
2、標識符, 所以if不可以是用戶標識符 5 答案是D long 是關鍵字,參照附錄二 注:6-13 考察用戶標識符概念 6 答案是D D答案以數(shù)字2開頭了,不符合標識符定義 7 答案是C C答案以數(shù)字開頭了 8 答案是D int 是關鍵字 9 答案是B 答案A 是關鍵字,答案C是以數(shù)字開頭了,不符合概念,答案D出 現(xiàn)了小數(shù)點 10 答案是A 答案A出現(xiàn)了小數(shù)點 11 答案是C 答案C 以數(shù)字開頭了 12 答案是A B答案中float 是關鍵字,C答案中3c以數(shù)字3開頭了,D答案中-5d 中 - 不屬于字母,數(shù)字,下劃線中一種 13 答案是A B答案中-max中-錯誤,C答案中3COM以字母3開頭
3、了,D答案中 int 是關鍵字,不是用戶標識符 14 答案是B A答案中15. 后面不應該有點,C答案中出現(xiàn)了逗號,D中字母B有 問題 15 答案是D Visual C+6.0中int類型的變量占的字節(jié)數(shù)為4。 16 答案是B B中出現(xiàn)了8,而八進制只能有0到7組成 17 答案是D 答案D中開頭是0不是o 18 答案是C 答案A中E后面是整數(shù),0.5是小數(shù) 答案B 中E后面不能為空 答案D中E前面不能為空 本題目考察指數(shù)的表示形式 19 答案是C 答案A中2.0有問題,不能為小數(shù)形式 答案B中E前面不能為空 答案D中E后面不能為空 本題目考察指數(shù)的表示形式 20 答案是A B中八進制中不能出現(xiàn)
4、數(shù)字8,C中e后面不能是小數(shù),D中e后面 不能為空 21 答案是B B中0.4是小數(shù),不正確 22 答案是C C中0.5是小數(shù),不正確 23 答案是D 3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8 本題目考察算術運算符,需要注意整數(shù)除以整數(shù)結果只能是整數(shù) 24 答案是D %不能用于實型的計算 25 答案是D D答案中$不屬于字母,數(shù)字,下劃線 26 答案是 A A答案是逗號表達式,B答案中x+1=y是賦值表達式,左邊只能是變 量,而這里是x+1, 同理答案C中x+10也是錯誤的,在D答案中, 考察的是強制類型轉換, 正確的是(double)x/10 27 答案是 A 本題考察
5、的是注釋需要注意的地方,具體解答見課本第2頁中間部分 28 答案是B 答案A中n2沒有定義,答案C中在定義f之前不能使用它,答案D 中E后面必須是整數(shù) 29 答案是 C 考察的是強制類型轉換,正確的是k%(int)f 30 答案是 D 本題目類似與第七課時的例一,解題方法是要抓住+m,-n,-m, 表達式的值是變量變化之后的值,而n-表達式的值是變量n變化之 前的值 31 答案是B 本題目考察的是負 整數(shù)與無符號正整數(shù)在計算機中存放的格式的一樣的,但表示的不 同的兩個數(shù) 32 答案是C A答案中%運算對象不能為實型,26.8錯誤,B答案中考察的賦值 運算符,賦值運算符左邊必須是變量,所以賦值運
6、算符左邊1+2錯 誤,同理答案D錯誤 33 答案是 C 本題目考察的是課本第15頁的關于自加與自減運算符的第一點說 明,即增量運算符的運算對象只能是變量,而在C答案中+(i+1) 中,i+1是表達式 34 答案是 B 本題目考察的是整數(shù)除以整數(shù)結果是整數(shù),在B答案中1/2結果是0,導致整個表達式的值是0,明顯是錯誤的 35 答案是D對于+、-單目運算符來說,其運算對象可以是char型、int型和float型變量 36 答案是A 本題目主要考察n+表達式的值是n變化之前的值,然后使n的值增加1 37 答案是 B c=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因為c 是int
7、 型的,所以c的值是1 ,做此題目需要仔細閱讀題目 38 答案是 D (int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000 同樣a,b的類型是double型的 39 答案是D long 和short不能相互修飾 40 答案是 C 標識符中不能有$答案是CA選項中,在變量賦值時不能賦給表達式,而y*5是表達式;選項B中進行強制類型轉換時,類型標識符要加上括號,所以錯誤;選項D中,%(求余運算符)運算對象只能是整形數(shù)。 42 答案是 A 選項A中,b變量還沒有定義 43 答案是C選項A中l(wèi)ong是關鍵字;選項B中“-”符號不屬于字母、數(shù)字或下劃線;選項
8、D中,int是關鍵字。 44 答案是 B選項A中,八進制數(shù)只能由07之間的數(shù)字組成;選項C,十六進制數(shù)應該以0X開頭,并且由09以及af組成,Oabc不正確;選項D中10,000包含逗號,不正確。 45 答案是B C語言的標識符中只能包含字線、數(shù)字和下劃線,沒有連接符。 46 答案是 C既然在內存中,字符數(shù)據(jù)以 ASCII 碼存儲,它的存儲形式就與整數(shù)的存儲形式類似。這樣使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。以字符形式輸出時,需要先將存儲單元中的 ASCII 碼轉換成相應字符,然后輸出。以整數(shù)形式輸出時,直接將 ASCII 碼作為整數(shù)輸出。
9、也可以對字符數(shù)據(jù)進行算術運算,此時相當于對它們的 ASCII 碼進行算術運算。 47 答案是D不同的計算機系統(tǒng)或者編譯系統(tǒng),對3種整數(shù)類型所占用的字節(jié)數(shù)有不同的規(guī)定。 48 答案是A選項B中求余運算(%)的運算對象必須是整型;選項C中,賦值運算符(=)的左邊必須是變量,不能是常量或表達式;選項D與選項C同理。 49 答案是 A +運算符有前綴和后綴兩種形式,本題中的選項C就是前綴形式,其表達式的值為增1后的值,而選項A為后綴形式,其表達式的值為增1之前的值。而選項B和D的表達式都是k加1之后的值 50 答案是A 51 答案是C 選項A中將一個變量j的值賦給了一個表達式,這種寫法是錯誤的,只能給
10、變量賦值,而不能給常量和表達式賦值;選項B中強制類型轉換的格式使用出錯,強制類型轉換時,類型標識符必須用括號括起來;選項D中,求余運算符(%)的兩端必須是整形數(shù)。 52 答案是 D 字符常量是用單引號括起來的單個字符,所以選項B錯誤;此外還有一種特殊的字符專為控制設計,稱為轉義字符,有三種轉義字符:一種是由一個“”開頭加一個普通字符組成,代表一個字符。如表示一個單引號字符,所以選項D正確;表示一個斜杠字符,而選項C中的則是錯誤的;用“”與其后的13位八進制數(shù)字構成的字符序列,表示ASCII碼等值于該八進制數(shù)的字符;用“x”與其后的12位十六進制數(shù)字構成的字符序列,表示ASCII碼等值于該十六進
11、制數(shù)的字符;所以選項A錯誤。 53 答案是B字符常量是用單引號括起來的單個字符,所以選項A正確;此外還有一種特殊的字符專為控制設計,稱為轉義字符,有三種轉義字符:一種是由一個“”開頭加一個普通字符組成,代表一個字符。如n表示一個換行符,所以選項D正確;用“”與其后的13位八進制數(shù)字構成的字符序列,表示ASCII碼等值于該八進制數(shù)的字符,所以選項B錯誤,因為9不是八進制數(shù)字;用“x”與其后的12位十六進制數(shù)字構成的字符序列,表示ASCII碼等值于該十六進制數(shù)的字符;所以選項C正確。 54 答案是D 大寫字母的ASCII碼值比小寫字母的ASCII碼值小32 55 答案是 A選項A中的字符變量ch只
12、能接收單個字符,ab不是單個字符,所以錯誤。 56 答案是Bchar x=C將一個大寫字母賦給了字符型變量x;然后通過x=x+32將x中字符的ASCII碼值加32,即為小寫字符c的ASCII碼值;然后將x以字符形式輸出,即為小寫字母c。 57 答案是A語句char x,y;定義兩個字符型變量x,y;然后通過x=B-A+a將用大寫字母B的ASCII碼送去大寫字母A的ASCII碼,結果便為1,然后再加上小寫字每a的AS CII碼,結果就為小寫字母b的ASCII碼,然后再賦值給變量x;通過y=x+2,將變量x中的ASCII碼值加2,即變成小寫字母d的ASCII碼值再賦值給變量y;然后以數(shù)值形式輸出變
13、量x中的ASCII碼值為98,再以字符形式輸出變量y中的字符為d。 58 答案是B選項A中字符0的ASCII碼值為48,所以A的結果不為1;選項B中0代表空值,空值NULL的ASCII碼值為0所以結果為1;選項C中字符1的ASCII碼值為49,所以結果不為1;選項D相當于用0-48結果也不為1。 59 答案是 D如果要表示十六進制字符,則要用x開頭,所以選項A錯誤;如果要表示八進制,則0開頭,后面跟13位的八進制數(shù),八進制數(shù)由07組成,不包含8,所以選項B錯誤;用單引號括起來的單個字符才是字符常量,所以C錯誤;而n是轉義字符,用來表示回車符。 60 答案是B用單引號括起來的單個字符,稱為字符常
14、量,所以選項B錯誤。 61 答案是C先將c1 變量中的字符的ASCII碼值輸出,即為65,將變量c2中字符的ASCII碼值減2后輸出,即為66。 62 答案是 A我們知道異或運算,只有兩個操作數(shù)不同,結果才為1。所以01=1,11=0,由此可推理,任何數(shù)與1進行異或運算都得它的相反數(shù);變量b中的高4位為1,所以要讓變量a的高4位取反,即可讓變量a和變量b進行異或運算。 63 答案是A變量c1和c2中的值相同,所以轉換成二進制數(shù)后,對應的二進制位上的值也相同,當兩值相同時,只有進行異或運算,結果才為0,所以c1c2值為0。所以本題的正確答案為A。 64 答案是A4|3轉換成對應的二進制數(shù)即100
15、|011=111再轉換為十進制數(shù)即為7;而4&3轉換成對應的二進制數(shù)即100&011=000,再轉換為十進制數(shù)即為0;所以選擇A。 65 答案是 Dx/y的值為1,z的值也為1,1和1求反進行與運算,結果一定為0。所以本題選擇D。 66 答案是D2+x=00000010+10100111=10101001;3=00000011=11111100;所以就相當于1010100111111100=01010101,所以選擇D。 67 答案是 Da=0x3轉換為二進制數(shù)即為00000011;b=a|0x8轉換為二進制數(shù)即為00000011|00001000=00001011即b=11,b1即00001
16、0111=00010110即c=22,所以本題選擇D。二,填空題 1 位 0 1 2 關鍵字 預定義標識符 用戶標識符 3 8 4 八 十 十六 5 int float double 6 5+3.6/2=5+1.8=6.8 7 15 16 a+表達式的值是a變化之前的值,當然a本身增加了18 把10賦給變量B 9 123.46 (int)(x*100+0.5)/100.0=(int)(12345.67+0.5)/100.0=(int)(12346.17)/100.0=12346/100.0=123.46。 10 3整個表達式是一個逗號表達式,變量n和i賦值為2后,通過+i將i的值增加1變?yōu)?,
17、然后再通過i+為i增加1,整個逗號表達式的值為i+的值,此時是后綴,所以整個i+表達式的值為3,而變量i的值為2。 11 11110111第11題沒有詳細解析而且答案出錯: xy1=00000010000001011=1111110100001010=11110111 12 2只有和b是正確的 13 2 20.000000x=f*=n/=(c=50)是一個賦值表達式,它的順序是從右向左賦值,先執(zhí)行c=50,然后執(zhí)行n/=50即n=n/50=100/50=2,接著執(zhí)行f*=2即f=f*2=10*2=20.000000,最后再將值賦給變量x。輸出變量n和x的值,即為2 20.000000。 14
18、a=14表達式a=(3*5,a+4)的括號中是一個逗號表達式,其結果是最后一個表達式的值,即將a+4=14的值賦給變量a。所以輸出結果為a=14。第二章 順序結構一 選擇題1, 答案是 C 隨意使用空語句會導致邏輯上出現(xiàn)錯誤,不要隨便使用。2, 答案是 B 語句必須以分號結尾,A,C,D表達式后面均沒有分號。3, 答案是 Cint x=13,y=4;說明x,y均為整型,所以x/y只取整數(shù)部分(舍去法),值為3,把3賦值給x,整個x=x/y表達式的值為左邊變量x的值,所以輸出為3。4, 答案是 Aa,b均為整型,a/b是取ab所得商的整數(shù)部分,所以是0,再把0賦值給 c,所以是c的值是0。答案是
19、 DA 注釋語句可以放在代碼的任何位置B 將r定義為整型不會在編譯時出錯,會自動進行類型轉換C 變量s為浮點型,格式描述符f時正確的D 是非法的變量答案是 D(x,y)是逗號表達式,它的值只有一個,所以格式說明符的個數(shù)和輸出項的個數(shù)是相等的。并且逗號表達式的值為最后一個表達式的值,最后一個表達式是y=2003,所以整個表達式的值是2003,因此輸出值為2003。答案是 Am是十進制整數(shù)以十進制有符號的形式輸出,即照原樣輸32767,n=032767,032767是八進制的整數(shù)以八進制無符號形式輸出,去掉前面的0。見教材P348, 答案是 C m,n的值都是十六進制數(shù)0xabc,m-=n即是m=
20、m-n, 把m-n的值賦給m, 即把0賦給m,再把m值以十六進制無符號的形式輸出,輸出的十六進制 數(shù)不用在前面0x或者0X。見教材P359, 答案是 B表達式i的值是在變量自減之前的值,i的初值為10,所以該表達式的值也為10;表達式j+的值是變量自加之后的值,j初值為1,所以該表達 式在值是2。10, 答案是 C m=0256,即m是八進制的數(shù)0256,要以八進制無符號的形式輸出,即輸出 256;n=256,即n是十進制的數(shù)256,也要以八進制無符號的形式輸出,首 先要把十進制數(shù)轉化為八進制數(shù),256轉化為八進制為0400,以無符號形 式輸出,即輸出400。11, 答案是 B在printf語
21、句中,格式控制的個數(shù)只有一個,即d,而輸出項有兩項,即a和b。而得到的結果應該只有一個,所以應該輸出第一個變量的值,即變量a的值。12, 答案是 C第一個數(shù)據(jù)的輸出控制寬度是2位,但是x的值是102,占3位,要輸出的數(shù)據(jù)寬度大于規(guī)定的輸出寬度,所以按數(shù)據(jù)的實際寬度輸出,輸出102。第二個數(shù)據(jù)要求以十進制形式輸出,輸出控制寬度是2,y的值為012,是八進制數(shù),所以要轉換成十進制數(shù)10后再輸出。13, 答案是 B表達式af/=c*=(x=6.5),按從右到左結合,先把6.5賦值給x,再執(zhí)行cc*6.5,c的值變?yōu)?5,再執(zhí)行ff/65,為浮點數(shù)的除法,f的值為1.53,再把f的值賦給a,a為整型數(shù)
22、據(jù),執(zhí)行強制類型轉換,a的值為1。a對應的輸出格式為d,即輸出1;c對應的輸出格式為d,輸出65,f對應的輸出格式3.1f,即輸出控制寬度為3位,保留小數(shù)點后一位小數(shù),即輸出1.5,x對應的輸出格式也為3.1f,輸出6.5。14, 答案是 Dfloat x=-123.456;說明x為單精度浮點數(shù)據(jù),單精度浮點數(shù)據(jù)對應的輸出格式應該為%f。15, 答案是 Cm=(k+=i*=k);按從右到左結合,先執(zhí)行i=i*k;即i被賦值為4,再執(zhí)行kk4;k被賦值為6,最后把6賦給m,輸出m和i的值。16, 答案是 C 略(參考12題)17, 答案是 Dm遵循從右向左結合的原則;m的值為m自增之前的值,所以
23、執(zhí)行完xm以后,x被賦值為3;表達式xx8/+n中有加號除號,先算8/+n,+n的值為自增之后的值為5,8/5取整為1,即xx8/+n轉化為xx1,即把x1的值賦給x,x的值變?yōu)?。18, 答案是 D A 輸入函數(shù)應為scanf(); B,C 輸入數(shù)據(jù)列表必須是地址表達式;19, 答案是 A 從鍵盤輸入數(shù)據(jù)的格式必須與輸入控制要求的格式一樣 B答案三個之間不要有空格;C答案用逗號分開是多余的;D答案格式不匹配。20, 答案是 A格式控制要求輸入的兩個數(shù)據(jù)之間要用逗號隔開,A沒有逗號所以錯誤,D兩個輸入數(shù)之間的回車換行可以忽略。21, 答案是 Cx乘以100是為了把x小數(shù)點后的兩位小數(shù)變?yōu)檎麛?shù),
24、再加上0.5,如果小數(shù)點后一位大于等于5則會進一位,如果小數(shù)點后一位小于5則不會出現(xiàn)進位的情況,再對其進行強制類型轉換,采用舍去法丟掉小數(shù)部分,即對x乘上100后的數(shù)實現(xiàn)了小數(shù)位到整數(shù)位的四舍五入。最后再除以100.0,把數(shù)字變回原來的大小,整數(shù)與浮點數(shù)相除結果為浮點數(shù),即實現(xiàn)了要求。答案是 C 從鍵盤輸入數(shù)據(jù)的格式必須與輸入控制要求的格式一樣。 答案是 B輸入控制中第一個數(shù)要求以“2d”形式輸入,即要求輸入一個兩位的數(shù),而從鍵盤輸入的數(shù)為876,所以從左到右取兩位數(shù)字87,即把87賦值給整型變量a,余下的6再賦值給浮點型變量b,自動進行類型轉換,b的值為6.000000,后面輸入的543則沒
25、有賦值給變量。答案是 D“”會輸出一個“”,“d”會照原樣輸出,因為沒有格式說明,m,n無法輸出到屏幕。答案是 D第1個輸出語句要求ch以%c(字符)形式輸出所以為輸出“a”,以%d(整數(shù))形式輸出為,字符轉換為整型要使用ASCII碼所以為“97”,k沒有對應的輸出符所以沒有輸出,第2個輸出語句要求以整型方式輸出k得到“12”。結果為“a,97,k=12”答案是 Ba+b的結果為30,按照“a+b=%dn”的輸出格式得到輸出結果“a+b=30”B答案是 Bprintf可以沒有輸出項,沒有輸出項的printf只是沒有輸出內容;整數(shù)不能以十二進制輸出,getchar()只能讀入字符。答案是 Age
26、tchar()可以讀入空格符合回車符。二 填空題1, 一條語句 分號 2, 88首先將八進制數(shù)0210轉化為十六進制的數(shù)0X88,輸出格式說明要以十六進制無符號的形式輸出,所以省略0X,直接輸出88。3, 11把十進制數(shù)轉化為八進制數(shù),以無符號的形式輸出4, 25 21 37 b為八進制數(shù)025,c為十六進制數(shù)0X25,首先把b、c都轉化為十進制的整數(shù),分別為21、37,按照輸出格式要求a、b、c以十進制整數(shù)形式輸出,中間以空格分開,所以輸出為25 21 37。5, n1%dnn2=%d除了n1,n2的值之外,還必須加入“n1”“n2”照原樣輸出的字符,很明顯在兩個數(shù)據(jù)之間還加了換行符。6,
27、i=10,j=20格式控制中加入了格式說明以外的其他字符,則在輸入數(shù)據(jù)時這些字符也要同樣輸入。輸入格式控制為i=%d,j=%d,所以則應該從鍵盤輸入i=10,j=207, 261a為十進制數(shù)177轉化為八進制的數(shù)為0261,以無符號的形式輸出為26116a的初值為0,在表達式a+=(a=8)中,a首先被賦值為8,再執(zhí)行操作a=aa,所以a最后被賦值為16,即輸出a的值為16printf(“a=%d,b=%d”, a, b);B 66B在ASCII碼中派在A的后面A為65,那么B為66。10 012為八進制數(shù),轉換為十進制為10。12 34 在scanf函數(shù)中指定了寬度為2,輸入123456,a
28、=12,b=34,后面的567無效。12程序運行時輸入12,getchar()函數(shù)只能接受單個字符,所以ch1=1,ch2=2。n1=ch1-0,轉化為ASCII碼計算n1=50-49,n1的值為1。n2=n1*10+(ch2-0)轉化為ASCII碼計算n2 = 1*10+(51-49),n2的值為12。第三章 選擇結構一、選擇題1、D 此題主要是考語句的特征。一條語句只包含一個分號,D項有兩個分號,應該是兩條語句,所以選D。2、C此題主要是考真假條件的等價。題目中的E為非0時條件為真,為0時為假。那么把非0和0帶到選項中可知,C項正好是E為0時表達式為真,非0時為假,所以選C。3、D 任意合
29、法的表達式都可以作為邏輯運算符的運算對象4、D 此題主要是考邏輯運算和關系運算的優(yōu)先級別.只要掌握!、算術運算和&的優(yōu)先級別便可選對.這幾種運算符的具體優(yōu)先級關系見見教材P188,附錄三。5、A 此題主要是考邏輯運算符!、&和|之間的優(yōu)先級別。!最高,&次之,|最低。先求得!a為0,所以不必計算!b的值,即!a&!b的值為0,由c=0,!c=1,而0|1=1,所以選A。6、A 此題主要是考了邏輯、關系和算術運算,熟練掌握邏輯運算、關系運算和算術運算的優(yōu)先級別后,就不難了。A 選項中!a為0,所以!a=1為假,那么就不用計算&后面的表達式了,因為0與任何數(shù)均為假;B項中先計算出ab為假,則(ab
30、)&!c也為假,而0|1=1; C項中a和b均為真,所以a&b的值為1;D項中先計算出(b+b)&(c-a)=1,又a=2,2|1=1 所以選A。7、D 此題考到了+運算符以及邏輯運算。當計算機碰到a&b時,先計算表達式a的值,若為真才會計算表達式b的值,否則將不會去計算b的值,因為一旦a=0,則0&b必為0;而a|b則正好是相反的,即先計算表達式a的值,若a為假才會計算表達式b的值,否則將不會去計算b的值,因為一旦a=1,則1|b的值必為1,理解了這兩點后,我們在看題目:i+=1的值為1,此時i為2,所以計算&后的表達式,首先計算+j=3的值為1,j的值為3,由上面的原理我們可知,|后面的表
31、達式不用再計算,所以此時i,j,k的值分別為2,3,3。8、D 此題和題2非常的相似,也是考真假條件的轉換,其中D項中只有k為0時,!k%2=1才成立,顯然和A、B、C三項不同。9、C 此題主要是考if和else的配對問題。見教材P51。10、D 此題主要是考if和else的一般形式。if后面的語句要么是單條語句,要么是由 擴起來的復合語句,不能是if后有兩條語句的,所以本題程序在運行的時候會出錯。11、C 此題考到了關系運算和邏輯運算及一定數(shù)學知識。|x-y|10可等價為-10x-y10,首先選項A表示x-y的絕對值小于10,與題中的數(shù)學關系一樣;將-10x-ya為真,所以(n=ba)為1,
32、那么將不會去計算m=abc的值為0,所以不執(zhí)行第一條語句;在判斷第二個條件,c-1=c表達式的結果為假,所以也不執(zhí)行其下面的語句,因此執(zhí)行最后一條語句,將輸出d+2的值為4 。17、C 此題主要是考查條件表達式和條件運算符。首先要注意條件表達式的結合方向,它是從右至左的(可參照附錄三) 第一個條件表達式的值為a,第二個條件表達式的值為c ,而c=6,所以答案選C 。18、A此題主要是考查if-else語句和條件表達式的轉化。只要理解了if-else語句和條件表達式的運算規(guī)則的話,就很容易選出A19、D 此題主要是考查在switch語句中break和default的作用及break的適用范圍。詳
33、細說明可參看教材第三章 P53對switch的說明部分。20、B 此題考查的是條件表達式求解問題。先看第一個條件表達式語句,ac為假,所以k=k=2選 B21、A 此題考查的是條件表達式的求解順序。參照附錄三可知,它的結合方向是自右至左,所以先求得右邊一個條件表達式的值為2,再求得左邊一個的值為1,即選A22、C 此題考查的是真假條件的等價問題。x-y為真表示x-y是非0的,也即x-y0 即選C23 答案是BC語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在A和Z之間就可以了,選項A和C符合要求。大寫字母的ASCII碼值的范圍為65到90,所以D選
34、項符合要求,所以只有C是錯誤的。24 答案是B滿足表達式(c=2&c=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,B選項中的表達式的值都為真,所以B選項正確。25 答案是A條件x=0|x=1為真,所以執(zhí)行y=1,然后執(zhí)行y=x*x-(x-2)*(x-2)=1-(-1)*(-1)=1-1=0,所以選擇A。26 答案是B當表達式EXP為非0值時條件成立,即執(zhí)行語句i+;當EXP等于0時執(zhí)行語句j-;。這就等同于條件表達式“(EXP!=0)?i+:j”。所以本題選擇B。27 答案是DC語言的字
35、符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在A和Z之間就可以了,選項B的書寫格式錯誤,而選項C不符合要求。大寫字母的ASCII碼值的范圍為65到90,所以A選項不符合要求,小寫字母的ASCII碼比大寫字母的ASCII碼大32,所以只有D是正確的。28 答案是D奇數(shù)和2求余一定不為0,所以當x為奇數(shù)時,x%2=0是不成立的,值為0,此題選擇D。29 答案是B兩個if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所以變量c的值等于3,變量b的值沒有變化,程序輸出的結果是3,5,3。所以本題選擇B。30 答案是C表達式y(tǒng)%3=0的值為1,所以執(zhí)行下面的
36、輸出語句,表達式y(tǒng)的值為8,所以輸出結果是8。選擇C。31 答案是C表達式x%3的值為2,非0所以執(zhí)行下面的輸出語句,將x-的值8輸出,此時x的值變?yōu)?,然后再執(zhí)行下一個輸出語句,將-x的值6輸出,x的值也變?yōu)?,所以選擇C。32 答案是D這是嵌套形式的switch語句,因為break結構影響較大,而此程序中的第一個case后沒有break語句,程序執(zhí)行時,x=1,執(zhí)行內嵌的switch語句,因y=0,執(zhí)行a+,使變量a的值為1并終止內層switch結構,回到外層。程序繼續(xù)執(zhí)行case 2后面的語句a+;b+;,這使變量a,b的值分別為2和1,外層switch語句結束。所以此題選擇D。33 答
37、案是Dbreak與continue語句都可用于switch語句中。選擇D。二、填空題1、答案是:10 20 0分析:多數(shù)同學得到的答案是10 20 1,顯然是沒有弄清楚第三條賦值語句:c=(a%b1).這是將后面一個邏輯表達式的值給c,那么關于邏輯表達式的考題,無非就是考察運算符的優(yōu)先級,也就是說先算哪個,后算哪個的問題。在這個題里面,先計算第一個圓括號里面的內容,a%b的值是10,所以101為假。在邏輯或運算的時候,兩個運算對象都為假,則結果為假。所以c的值為0.答案是:10 20 02、答案是: 1分析:程序中是一個ifelse結構。這個題最容易出錯的地方在于if的條件,注意,里面的是c=
38、a是一個賦值表達式,不是將c與a的值進行比較。所以條件為真,輸出賦值以后c的值,為1。3、答案是:4,5,99分析:題中的重點在于兩個if結構,大家要注意兩點:第一,如果if后面沒有花括號,則它后面的第一條語句是它的結構體,并且只有一條語句。(如果后面是一個結構,則整個結構都屬于if結構的結構體)。第二,變量在不斷的被重新賦值,所以其值在不斷的變化。4、答案是:yes 分析:該題與第二題是同一回事。5、答案是:1分析:這個題還上一個ifelse結構,考查點仍然是考察考生是否能夠正確識別if后面括號里的表達式p=a!=0,根據(jù)運算符的優(yōu)先級知道,這里應該先算a!=0,這是一個邏輯運算,a的值為5
39、,所以a!=0為真,其邏輯值為1,將1賦值給p,所以條件為真,輸出p的值,為1。6、答案是:20,0 分析:見第3題分析。7、答案是:585858分析:題中有三個if結構,注意,這三個if結構是相互獨立的,是互不相關的,只要他們的條件成立,就要執(zhí)行其結構體(后面的輸出語句)。通過鍵盤輸入,得a的值為58,所以a50為真,輸出58;然后判斷a40,仍然為真,再輸出58,最后判斷a30,肯定為真,所以再輸出58,連續(xù)三次輸出58。8、答案是:0分析:本題的關鍵在于關系運算符的運算次序,a=5,b=4,c=3.abc看起來是真的,但是這這是數(shù)學里面是這樣的,這里我們要一步一步的計算,先算ab,a確實
40、大于b,所以為真,邏輯值為1,后面的計算就變成了1c,顯然為假,邏輯值為0,并將它賦值給d,所以最后輸出d的值為0。9、答案是:3分析:這個題主要考察條件運算符。程序要輸出(P/30?p/10:p%3)這個條件表達式的值。P為30,所以p/3=10,100顯然為真,所以整個表達式的值應該是p/10的值,p/10得3。10、答案是:2 1分析:題中是一個switch嵌套結構。里面的switch是case 1的語句,題的關鍵點在于這個語句(即里面的這個switch結構)的后面并沒有跳出整個結構的break語句。所以,當x=1,與case相配以后,執(zhí)行完后面的語句(即里面的這個switch結構),然
41、后沒有遇到break語句,所以并不跳出結構體,而是繼續(xù)執(zhí)行case 2后面的語句。所以最后得到的結果應該是2 1,而不是1 0。11、答案是:0字符空格的ASCII碼不為0,所以本題中表達式!c的值為0,b=0&1的結果顯然為0。12、答案是:1執(zhí)行“j=!ch&i+”時,首先判斷j=!ch的值,因為ch=$不為0,所以j=!ch=0,編譯便不再計算表達式i+的值,i的值不變仍為1。13、答案是:-4表達式!n的值為1,所以執(zhí)行x-=1后x=1;表達式m的值為非0值,所以執(zhí)行其后的語句x-=2后x的值為-1,表達式x的值也為非0,所以執(zhí)行其后的語句后x的值為-4,最后輸出x的值即為-4。14、
42、答案是:#&表達式c=5的值為真,所以表達式的值等于1,因此輸出符號“#”,然后執(zhí)行“break”,繼而去執(zhí)行“default:printf(“&”);”語句,輸出符號“&”。15、答案是:1因為在條件表達式(ab)a:b中,比較表達式ab為真,所以x的值為a的值等于1。后面兩個條件表達式中的比較表達式都真,所以最終x的值等于1。16、答案是:a:b c:t1條件表達式類似于if語句,根據(jù)“?”前面子表達式的邏輯值來判斷應該計算“:”前面的子表達式還是后面的作為整個條件表達式的結果。題目要求輸出a、b、c3個變量中的最小值,所以當a7為真,執(zhí)行循環(huán)體,n的值減1后為9,輸出n的值9N的值為9,
43、n7為真,執(zhí)行循環(huán)體,n的值減1后為8,輸出n的值8N的值為8,n7為真,執(zhí)行循環(huán)體,n的值減1后為7,輸出n的值7N的值為7,n7為假,結束循環(huán)。答案:Ak的值為5,進入循環(huán),(-k)表達式的值為4(真),同時k的值改變?yōu)?,輸出表達式k-=3的值1,同時k的值為1。k為1,表達式(k)的值為0, 結束循環(huán)。答案:AX=0,y=5,z=3,(z0&x0&x0&x0&x3-5-7-9,語句s+=1每次執(zhí)行使s增加的數(shù)為:2,4,6,8,10,所以s的值為自然數(shù)110中偶數(shù)的值。答案:C分析:C項s=s+1/n, 1/n首先運算,n為整型變量,1也是整型變量,當n=210時,1/n的值為整數(shù)0,
44、故C不正確 答案:A執(zhí)行第一次循環(huán)時,a= 7,b = 4,a!=b為真繼續(xù)循環(huán)。第二次循環(huán)a = 3,b=1,a!=b為真繼續(xù)循環(huán)。第三次循環(huán)a = 2,b = 1, a!=b為真繼續(xù)循環(huán)。第四次循環(huán)a = 1,b=1,a!=b為假退出循環(huán)。答案:C答案:C分析:x的值為15。執(zhí)行while循環(huán),(x10)為真,執(zhí)行循環(huán)體。執(zhí)行x+;x的值為16。再執(zhí)行if語句。(x%3)為真,執(zhí)行x+,x的值為17,再執(zhí)行break;語句,退出循環(huán)體,結束while語句的執(zhí)行。最后輸出x的值17。 答案:D在循環(huán)中當x等于0,3,6,9時x%3等于0,這時會進入if語句執(zhí)行printf語句,在輸出前x會先
45、自加。屏幕上輸出14710。答案:D分析:continue語句會提前結束此次循環(huán)體的執(zhí)行,不會結束整個for語句的執(zhí)行。答案:2345選擇中沒有此答案。解析:本題注意的是在循環(huán)第一次進入switch語句的時候是執(zhí)行的default后面的語句塊,由于沒有break,所以還會執(zhí)行case2:case4:后面的語句。答案:A本題答案為A 解析:A首先執(zhí)行+n,判斷條件表達式n=0為假退出循環(huán)。B條件表達式1永遠為真是無限循環(huán),C條件表達式n的值為10永遠為真是無限循環(huán),D沒有條件表達式,所以沒有退出條件,是無限循環(huán)。此題要注意的是0為假,非0為真。答案:Ado-while循環(huán)先執(zhí)行后判斷,先執(zhí)行循環(huán)
46、體中的printf語句輸出n的值0,在while(i+)中i先執(zhí)行再自加,所以while(i+)的等于while(0)為假退出循環(huán)。輸出結果為 “0,0”。答案:D分析:第一次循環(huán)x=8,x%30,進入if語句輸出x的值為8,然后x自減1,執(zhí)行continue立即進行下次循環(huán)條件判斷。第二次循環(huán)x=6,x%3=0,不進入if語句,執(zhí)行if語句后面的printf(“%d,”,-x),x先自減1再輸出得到5。第三次循環(huán)x=4,x%30,進入if語句輸出x的值為4,然后x自減1,執(zhí)行continue立即進行下次循環(huán)條件判斷。第四次循環(huán)x=2,x%30,進入if語句,輸出x的值為2,然后x自減1,執(zhí)行continue立即進行下次循環(huán)條件判斷。第五次循環(huán)x=0,判斷表達式x0為假。結束循環(huán)輸出結果為8,5,4,2。答案DC第一次循環(huán)y=9,y%3=0,進入if語句y先自減,輸出y的值為8。第二次循環(huán)y=7,y%30,進入下次循環(huán)。第三次循環(huán)y=6,y%3=0,進入if語句y先自減,輸出y的值為5。第四次循環(huán)y=4,y%30,進入下次循環(huán)。第五次循環(huán)y=3,y%3=0,進入if語句y先自減,輸出y的值為2。第六次循環(huán)y=1,y%30,進入下次循環(huán)。第七次循環(huán)y=0,判斷表達式y(tǒng)0為假結束循環(huán)。輸出結果為8,5,2。答案CB在第一層循環(huán)中,當i自加到值等于3的時候才
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學語文《靜夜思》課件
- 《一年級下冊語文園地一》課件
- 大學生談戀愛利與弊
- 自動駕駛汽車的安全認證
- 記賬實操-新入職一家公司會計遇到財務做賬問題的解決方案
- 設備維修工作個人總結(二篇)
- 遼寧省丹東市九校聯(lián)考2024-2025學年七年級下學期5月期中考試英語試題(含筆試答案無聽力答案、原文及音頻)
- 河南省開封市蘭考縣2024-2025學年八年級下學期期末學情分析道德與法治試卷(B)(含答案)
- 2025年遼寧省中考英語模擬試題(二)含答案
- 幼兒園《圖形王國》公開課教案
- 氣血疏通中級班教材
- 青島海明城市發(fā)展有限公司及全資子公司招聘筆試真題2022
- 浙江省杭州市2024屆數(shù)學四下期末考試試題含解析
- 北京市首都師范大學附屬回龍觀育新學校2025屆數(shù)學高一下期末統(tǒng)考試題含解析
- 2024年高考物理熱點磁場中的旋轉圓、放縮圓、平移圓、磁聚焦模型(學生版)
- 三年級下冊語文單元字詞專項練習-第1單元
- 鳥巢建筑分析
- 聯(lián)合體施工組織設計審批流程
- 中華民族共同體概論課件專家版10第十講 中外會通與中華民族鞏固壯大(明朝時期)
- 2021年10月自考02326操作系統(tǒng)試題及答案含解析
- 中華民族共同體概論課件專家版5第五講 大一統(tǒng)與中華民族共同體初步形成(秦漢時期)
評論
0/150
提交評論