



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
譚浩強(qiáng)C語言程序設(shè)計(jì)習(xí)題集目錄重要次重要重復(fù)或欲刪除基礎(chǔ)第一章C語言概述第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式第三章最簡單的C程序設(shè)計(jì)第四章邏輯運(yùn)算和判斷選取控制第五章循環(huán)控制第六章數(shù)組第七章函數(shù)第八章編譯預(yù)處理選擇題填空題編程題第九章指針編程題第十章結(jié)構(gòu)體和共用體選擇題填空題編程題第十一章位運(yùn)算選擇題填空題編程題第十二章文件選擇題填空題編程題第一章C語言概述選擇題1.1ー個(gè)C程序的執(zhí)行是從A)本程序的main函數(shù)開始,到main函數(shù)結(jié)束B)本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C)本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D)本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束參考答案:A參考分析:C語言總是從main函數(shù)開始,main函數(shù)結(jié)束。但是C語言中存在ー個(gè)exit(O)函數(shù),它可以使得程序在任何時(shí)候、任何位置結(jié)束程序的運(yùn)行。如果不考慮exit(O)等函數(shù)的特殊作用,C則總是在main函數(shù)結(jié)束。1.2以下敘述正確的是。A)在C程序中,main函數(shù)必須位于程序的最前面B)在C程序的每一行只能寫一條語句C)C語言本身沒有輸入輸出語句D)在對ー個(gè)C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤參考答案:C參考分析:C程序?qū)ain函數(shù)的位置沒有任何要求;其書寫格式自由,一行可以寫多條語句,一條語句(多關(guān)鍵字語句)可以寫在多行;C語言忽略注釋,把注釋看作是ー個(gè)空格,不會對注釋中的B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C)可以任意 D)必須在最后參考答案:C1.5ー個(gè)C語言程序是由A)一個(gè)主程序和若干個(gè)子程序組成 B)若干函數(shù)組成C)若干過程組成 D)若干子程序組成參考答案:B參考分析:通常許多語言程序由主程序和子程序構(gòu)成,但是C語言是函數(shù)式語言,整個(gè)程序由眾多函數(shù)組成。盡管有時(shí)習(xí)慣上稱main函數(shù)為主程序,顯然,嚴(yán)格地講還是B更為符合C語言的規(guī)則。填空題C源程序的基本單位是【]〇參考答案:函數(shù)一個(gè)C源程序中至少應(yīng)包括一個(gè)【]0參考答案:main。函數(shù)在ー個(gè)C源程序中,注釋部分兩側(cè)的分界符分別為【1]和[2]?參考答案:【1]/*[2]*/在C語言中,輸入操作是由庫函數(shù)【1】完成的,輸出操作是由庫函數(shù)【2】完成的。參考答案:【1】scanf[2]printf第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式選擇題**2.1C語言中(以16位PC機(jī)為例),各數(shù)據(jù)類型的存儲空間長度的排列順序?yàn)锳)char<int<long<=float<doubleB)char=int<long⁢=float<doubleC)char<int<long=float=doubleD)char=int=long<=float<double參考答案:A分析:在不同的計(jì)算機(jī)系統(tǒng)中,不同的C語言系統(tǒng)中,其各種數(shù)據(jù)類型所占據(jù)的存儲空間是不同的,但是有一個(gè)總的原則,即:char<=short<=int<=long<=float<=double,只有A符合16位PC機(jī)中的具體環(huán)境。*2.2若x、i、j和k都是int型變量,則計(jì)算下面表達(dá)式后,x的值為。x=(i=4j=16,k=32)A)4 B)16 C)32 D)52參考答案:C參考分析:逗號表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的值。k=23是括號B)8 C)5D)2參考答案:B參考分析:逗號表達(dá)式的計(jì)算結(jié)果是最后ー個(gè)表達(dá)式的值。b++在所在表達(dá)式參與運(yùn)算時(shí)的值是5,該表達(dá)式計(jì)算完成后,b進(jìn)行自增運(yùn)算,故a+b的值為2+6=8。下列四組選項(xiàng)中,均不是C語言關(guān)鍵字的選項(xiàng)是。A)defineB)getcC)includeD)whileIF charscanfgotypeprintfcase pow參考答案:A參考分析:是關(guān)鍵字的有:char、case、while.下列四組選項(xiàng)中,均是C語言關(guān)鍵字的選項(xiàng)是。A)autoB)switchC)signedD)ifenum typedef union structinclude continue scanf type參考答案:B參考分析:不是關(guān)鍵字的:include、scanf、type*2.6下面四個(gè)選項(xiàng)中,均是不合法的用戶標(biāo)識符的選項(xiàng)是A)A B)float C)b-a D)」23P_0 laO goto tempdo _A int INT參考答案:C參考分析:合法的有:A、P_0、laO、_A、_123、temp、*2.7C語言中的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符。A)必須為字母 B)必須為下劃線C)必須為字母或下劃線D)可以是字母、數(shù)字和下劃線中的任一種字符參考答案:C參考分析:教材中只是強(qiáng)調(diào)首字符必須為字母,我們應(yīng)當(dāng)知道,在語言系統(tǒng)中,下劃線和字母具有同等的一法律效カI(xiàn)I〇*2.8下面四個(gè)選項(xiàng)中,均是合法整型常量的選項(xiàng)是。A)160B)-0xcdfC)-01D)-0x48a-OxflfffOla986,0122e5011Oxe0668Ox參考答案:A參考分析:不合法的B2,C2,C3,D2o解釋:A2:-0xfffi?十六進(jìn)制數(shù)本身已經(jīng)包含了符號位,一般不前面加符號位,但加上符號位也不錯誤;C3:0668在有些C系統(tǒng)中,ハ進(jìn)制數(shù)中允許出現(xiàn)8,但是通常不允許使用8;D3:0x顯然后面缺少數(shù)值,但在TC中是允許的。?2.9下面四個(gè)選項(xiàng)中,均是不合法的整型常量的選項(xiàng)是。A)-0flB)-0XcdfC)-018D)-0x48eg-Oxfffif017999-068001112,4565e203f參考答案:D參考分析:不合法的A1,B3,C1,C3,D。解釋:Al:-On十六進(jìn)制數(shù)沒有Ox,顯然不合法,這里需要討論的是常量前面允許不允許加上一號,是否可以負(fù)負(fù)得正,顯然不可以,ー在C中是自減運(yùn)算,它只適用于變量;BLOXcdfX大寫也可以!C3:5e2是個(gè)實(shí)型數(shù)。?2.10下面四個(gè)選項(xiàng)中,均是不合法的浮點(diǎn)數(shù)的選項(xiàng)是。A)160.0.12e3參考答案:參考分析:B)123 Q-.18 D)-e32e4.2 123e4 .234.e5 0.0 Ie3B不合法的有A3,B,D1。部分解釋:Al,D2:C語言中小數(shù)點(diǎn)前面或后面的??梢允÷浴5遣荒苤挥行?shù)點(diǎn)自身;A3,B3,Dl:e的前后必須有合法數(shù)字。l.e2,le2合法,.e2不合法;Bl:123是整型數(shù),不是浮點(diǎn)數(shù)。*2.11下面四個(gè)選項(xiàng)中,均是合法的浮點(diǎn)數(shù)的選項(xiàng)是。A)+le+lB)-.6OC)123eD)-e35e-9.412e-41.2e-.4.8e-403e2-8e5+2e-l5.e-0參考答案;B參考分析:不合法的有A2:階碼不能為小數(shù);A3:浮點(diǎn)數(shù)的尾數(shù)及階碼不能用八進(jìn)制數(shù)表示;Cl:e后必須有整數(shù),C2:階碼不能為小數(shù);D1:缺少尾數(shù)。2.12下面四個(gè)選項(xiàng)中,均是合法轉(zhuǎn)義符的選項(xiàng)是A)ヘ” B)へ, Q^Ol8? DJ'WO5‘\\‘ へ017' へf' ,\ior'\n'l\"*'xab''xlf'參考答案:A參考分析:"\"后面的數(shù)字,c總是按照八或十六進(jìn)制解釋。由于c支持?jǐn)U展ASCII字符集,所以,ハ進(jìn)制數(shù)范圍在。?377,十六進(jìn)制數(shù)范圍在00?伉*2.13下面四個(gè)選項(xiàng)中,均是不合法的轉(zhuǎn)義符的選項(xiàng)是。A)^\", B),\1011, C)'\011'D)'\abc''\v 'ヽ, *\r *\ior4\xf へa' へ}‘ 'xlf'參考答案:B參考分析:不合法的有B1,B2,B3,C3,D1,D3;但B3和C3值得討論,實(shí)際上,''a,是ー個(gè)轉(zhuǎn)義字符(07beep)。C中只有少數(shù)字母是轉(zhuǎn)義字符,大多數(shù)字母不是。像‘'c'就不是,它就是字符c自身,非轉(zhuǎn)義字母加"'"也僅表示它本身。C3''},也表示自身。本題的命題人顯然不知道''a'也是轉(zhuǎn)義字符。2.14下面正確的字符常量是。A)"c"B)'\\" C)'W'D)""參考答案:C*2.15下面四個(gè)選項(xiàng)中,均是不正確的ハ進(jìn)制或十六進(jìn)制數(shù)的選項(xiàng)是。A)016B)OabcC)010D)0al2Ox8f017-Oxll7ff018Oxa0x16-123參考答案:D參考分析:不正確的有A3:非法ハ進(jìn)制數(shù);Bl、DI、D2:缺少x;D3是十進(jìn)制數(shù)。2.16下面四個(gè)選項(xiàng)中,均是正確的八進(jìn)制或十六進(jìn)制數(shù)的選項(xiàng)是。A)-10 B)0abc C)00100x8f -017 -0x11-011 Oxc Oxfl參考答案:C參考分析:不正確的有Al:這是十進(jìn)制數(shù);D)0al2-0x123-OxaBl、DI:缺少x2.17下面四個(gè)選項(xiàng)中,均是正確的數(shù)值常量或字符常量的選項(xiàng)是。A)0.0 B)"a"C)’3'D)+001Of 3.9e-2.5 0118.9e lei OxFFOO’&' '\"'參考答案:D0aOxabcd2e250.參考分析:不正確的有A2、C4:不是。x打頭;A3:e后不是整數(shù):B1是字符串:B2:不是整數(shù)。下面不正確的字符串常量是。A)'abc'B)"12,12"C)"0"D)""參考答案:A參考分析:與PASCAL不同,B)字符串 。exp(x*x/2)/sqr(2*3.14159)427rB)!6〇!.0/2.0*(a*x+(a+x)/(4*a))C)^sinx2.5 sqrt((pow(sin(x*3.14159/180),2.5))D)x2-e5 x*x-exp(5.0)參考答案:C若有代數(shù)式3ae/bc,則不正確的C語言表達(dá)式是A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3參考答案:C參考分析:注意表達(dá)式的計(jì)算順序已知各變量的類型說明如下,則不符合C語言語法規(guī)定的表達(dá)式是。intk,a,b;unsignedlongw=5;doublex=1.42;A)x%(-3)B)w+=?2C)k=(a=2,b=3,a+b)D)a+=a?=(b=4)*(a=3)參考答案:A參考分析:不符合C語法規(guī)定的只有A,因?yàn)閄為實(shí)型數(shù)。已知各變量說明如下,則符合C語言語法規(guī)定的表達(dá)式是。inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;A)a+=a?=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=float(i)參考答案:A參考分析:B)表達(dá)式不能出現(xiàn)在賦值號右側(cè);C)x是實(shí)型數(shù),不能進(jìn)行取余運(yùn)算:D)應(yīng)將float用括號擴(kuò)起來(強(qiáng)制類型轉(zhuǎn)換)。*2.23以下不正確的敘述是。A)在C程序中,逗號運(yùn)算符的優(yōu)先級最低B)在C程序中,APH和aph是兩個(gè)不同的變量C)若a和b類型相同,在計(jì)算表達(dá)式a=b后,b的值將放入a中,而b中的值不變D)當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對于整型變量只能輸入整型數(shù)值,對于實(shí)型變量只能輸入實(shí)型數(shù)值參考答案:D參考分析:整型變量可以輸入實(shí)型數(shù)值,實(shí)型變量也可以輸入整型數(shù)值2.24以下正確的敘述是。A)在C程序中,每行只能寫一條語句B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型數(shù)C)在C程序中,無論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無誤地表示D)在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符參考答案:D參考分析:注意它的描述,是只能用于整數(shù)運(yùn)算,而不是整型數(shù)運(yùn)算。2.25以下符合C語言語法的有賦值能力的表達(dá)式是A)d=9+e+f=d+9 B)d=9+e,Qd+9C)d=9+e,e++,d+9 D)d=9+e++=d+7參考答案:B參考分析:C不是賦值表達(dá)式,是逗號表達(dá)式,賦值僅是其中的一部分。嚴(yán)格說來,B也不是賦值表達(dá)式,它是由兩個(gè)賦值表達(dá)式組成的逗號表達(dá)式。**2.26已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句c2=W+'6'-'3';后,c2的值為 。A)DB)68 C)不確定的值 D)C參考答案:A參考分析:表達(dá)式中的各字符以各自的ASCH碼參與運(yùn)算。2.27在C語言中,要求運(yùn)算數(shù)必須是整型(數(shù))的運(yùn)算符是。A)/ B)++ C)!= D)%參考答案:D參考分析:理論上卄運(yùn)算都是針對整型(含字符型)的,盡管現(xiàn)在很多系統(tǒng)提供了對實(shí)型變量的增量運(yùn)算。2.28若以下變量均是整型,且num=sum=7;則計(jì)算表達(dá)式sUM=num++,sUM++,++num后sum的值為。A)7 B)8〇〇D)10參考答案:A參考分析:注意sum和sUM不是一個(gè)變量(區(qū)分大小寫)。2.29在C語言中,int、char和short三種類型數(shù)據(jù)在B)均為兩個(gè)字節(jié)C)是任意的 D)由所用機(jī)器的字長決定參考答案:D參考分析:參考答案很明確地表明了,C語言中各種類型在 B)包含2個(gè)字符。C)包含3個(gè)字符。 D)說明不合法,c的值不確定。參考答案:A參考分析:轉(zhuǎn)義字符''72,為字符,:,。2.31若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是A)2.500000 B)2.750000 C)3.500000 D)0.000000參考答案:A參考分析:計(jì)算時(shí)要注意其結(jié)合性和優(yōu)先級。*2.32sizeof(float)是。A)ー個(gè)雙精度型表達(dá)式 B)ー個(gè)整型表達(dá)式C)ー種函數(shù)調(diào)用 D)一個(gè)不合法的表達(dá)式參考答案:B參考分析:算術(shù)表達(dá)式的類型由表達(dá)式計(jì)算結(jié)果的類型決定*2.33設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+'a,+i*f值的數(shù)據(jù)類型為A)intB)floatC)doubleD)不確定參考答案:C參考分析:實(shí)型只要參與運(yùn)算就自動轉(zhuǎn)換為double型。2.34下面四個(gè)選項(xiàng)中,均是非法常量的選項(xiàng)是A)'as'B)'\\' C)-0xl8 D)0xabc-Offf l\0r01177 '、〇''\0xa' 12,456Oxf "a"參考答案:A參考分析:A3轉(zhuǎn)義字符以十六進(jìn)制描述時(shí),前面不能加〇。非法的還有B3*2.35若有代數(shù)式セ則正確的C語言表達(dá)式是A)sqrt(fabs(pow(y,x)+loglO(y)))B)sqrt(abs(pow(y,x)+loglO(Y)))C)sqrt(fabs(pow(x,y)+loglO(y)))D)sqrt(abs(pow(x,y)+loglO(y)))參考答案:A參考分析:c語言中整型和實(shí)型的絕對值函數(shù)各自獨(dú)立,為abs和!hbs;pow為一系統(tǒng)函數(shù)pow(y,x)=>yxo2.36若有代數(shù)式|x3+lgx|,則正確的C語言表達(dá)式是。A)fabs(x*3+log10(x))B)abs(pow(x,3)+loglO(x))C)abs(pow(x,3.0)+log10(x))D)fabs(pow(x,3.0)+log10(x))參考答案:D參考分析:以上兩題均未說明x,y的類型,從表達(dá)式的性質(zhì)可分析隱含為實(shí)型,因此應(yīng)使用fabso*2.37在C語言中,char型數(shù)據(jù)在 B)反碼 C)原碼 D)ASCI1碼參考答案:D參考分析:計(jì)算機(jī)系統(tǒng)不能存儲字符本身,存儲的是字符的ASCII碼。*2.38設(shè)變量n為float,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入的表達(dá)式是 。A)n=(n*100+0.5)/I00.0 B)m=n*100+0.5,n=m/100.0C)n=n*l00+0.5/100.0 D)n=(n/10G+0.5)*100.0參考答案:B參考分析:m=n*100+0.5賦值過程中有實(shí)型轉(zhuǎn)整型的自動轉(zhuǎn)換。表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為A)intB)floatC)doubleD)不確定參考答案:C參考分析:表達(dá)式的類型由表達(dá)式結(jié)果的類型決定。設(shè)C語言中,ー個(gè)int型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),則unsignedint型數(shù)據(jù)的取值范圍為。A)0-255 B)0-32767 C)0-65535 D)0-2147483647參考答案:C參考分析:各種數(shù)據(jù)類型的取值范圍是由其字長決定,字長確定的情況下,有符號數(shù)與無符號數(shù)的范圍應(yīng)當(dāng)容易計(jì)算得知。設(shè)有說明:charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為A)floatB)charC)intD)double參考答案:D參考分析:表達(dá)式的類型由表達(dá)式結(jié)果的類型決定。雖然本題各變量沒有具體的變量值,由于參與運(yùn)算的變量中z變量為double型,表達(dá)式計(jì)算的結(jié)果肯定為double型。若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;A)x%=k%=5 B)x%=k-k%5C)x%=(k-k%5) D)(x%=k)-(k%=5)參考答案:D參考分析:A的值為0,B、C兩個(gè)表達(dá)式相同,值為2,只有D的值為3。設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是。A)x=y=6,x+y,x+l B)x=y=6,x+y,y+lC)x=6,x+1,尸6,x+y D)尸6,y+1,x=y,x+1參考答案:C參考分析:經(jīng)計(jì)算可知,只有C的值為12,不為7??疹}在C語言中(以16位PC機(jī)為例),ー個(gè)char型數(shù)據(jù)在【2】2在C語言中(以16位PC機(jī)為例),ー個(gè)float型數(shù)據(jù)在【2】8若有以下定義,intm=5,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=m*=y后y的值是【エ參考答案:-16設(shè)C語言中,ー個(gè)int型數(shù)據(jù)在[2】double*2.49C語言所提供的基本數(shù)據(jù)類型包括:單精度型、雙精度型、【1】、【2】和【3】。參考答案:字符型整型枚舉參考分析:基本類型又稱簡單類型,若分為四種則為字符、整型、實(shí)型和枚舉,若分為五種,則將實(shí)型分為單精度型和雙精度型兩種。*2.50若s是int型變量,則表達(dá)式s%2+(s+l)%2的值為【エ參考答案:1參考分析:無論s是奇數(shù)還是偶數(shù)表達(dá)式的值只能是1。*2.51若a是int型變量,則表達(dá)式(a=4*5,a*2),a+6的值為[1.參考答案:26*2.52若x和a均是整型變量,則計(jì)算表達(dá)式(1)后的x值為【1],計(jì)算表達(dá)式(2)后x的值為【2】。(l)x=(a=4,6*2)(2)x=a=4,6*2參考答案:【1]!2 [2]4若a、b和c均是int型變量,則計(jì)算表達(dá)式a=(b=4)+(c=2)后,a的值為【1],b的值為[2],c的值為【3】。參考答案:【1】6 [2]4 [3]2若a是int型變量,且a的初值為6,則計(jì)算表達(dá)式a+=a-=a2.70假設(shè)m是ー個(gè)三位數(shù),從左到右用a、b2.70假設(shè)m是ー個(gè)三位數(shù),從左到右用a、b、c表示各位的數(shù)字,則從左到右各個(gè)數(shù)字是bac的三位數(shù)表達(dá)式是【]〇參考答案:m/10%10*100+m/100*10+m%10參考分析:數(shù)字各個(gè)位的分離可以先整除再取余,也可以先取余再整除。若a是int型變量,則計(jì)算表達(dá)式a=25/3%3后a的值為【]〇參考答案:2若x和n均是int型變量,且x和n的初值均為5,則計(jì)算表達(dá)式x+=n++后x的值為[1],n的值為[2]?參考答案:【1】10 [2]6若有定義:intb=7;floata=2.5,c=4.7;則表達(dá)式a+(int)(b/3*(int)(a+c)/2)%4的值為[]?參考答案:5.5若有定義:inta=2,b=3;floatx=3.5,y=2.5;則表達(dá)式(float)(a+b)/2+(int)x%(int)y的值為(]?參考答案:3.5若有定義:charc=へ01(T;則變量c中包含的字符個(gè)數(shù)為【參考答案:1若有定義:intx=3,y=2;floata=2.5,b=3.5;則表達(dá)式(x+y)%2+(int)a/(int)b的值為[工參考答案:1若有定義:intx=12,n=5;則計(jì)算表達(dá)式x%=(n%=2)后x的值為【參考答案:〇若有定義:inta,b;表達(dá)式a=2,b=5,a++,b++,a+b的值為【參考答案:9C語言中的標(biāo)識符只能由三種字符組成,它們是[1】、【2】和[3]0參考答案:【1】字符 【2】數(shù)字[3]下劃線*2.64已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch=W+,8,フ3'的值為【!0參考答案:f參考分析:表達(dá)式計(jì)算中取各個(gè)字符的ASCII碼值進(jìn)行計(jì)算,但ch的值是以計(jì)算結(jié)果為碼值的字符。把以下多項(xiàng)式寫成只含七次乘法運(yùn)算,其余皆為加、減運(yùn)算的表達(dá)式為[]=參考答案:((((((5*x+3)*x-4)*x+2)*x+l)*x-6)*x+l)*x+10若doublex=3.0,y=2.0;則表達(dá)式pow(y,fhbs(x))的值為【]〇參考答案:8.0若有定義:inte=l,f=4,g=2;floatm=10.5,n=4.0,k;則計(jì)算表達(dá)式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是【!〇參考答案:13.7表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的數(shù)據(jù)類型為()?參考答案:int型*2.69表達(dá)式pow(2.8,sqrt(double(x)))值的數(shù)據(jù)類型為【]0參考答案:double型
第三章最簡單的C程序設(shè)計(jì)3.1選擇題putchar函數(shù)可以向終端輸出ー個(gè)A)整型變量表達(dá)式 B)實(shí)型變量值C)字符串 D)字符或字符型變量值參考答案:D參考分析:putchar函數(shù)的作用是輸岀ー個(gè)字符,可以是常量或變量。*3.2以下程序的輸出結(jié)果是。printf("\n*sl=%15s*","chinabeijing");printf("\n*s2=%-5s*","chi");A)*sl=chinabeijingnaD* B)*sl=chinabeijingnnD**s2=**chi* *s2=china*C)*sl=DDchinabeijing* D)*sl=nnnchinabeijing**s2=aachi* *s2=chiaa*參考答案:D參考分析:一:數(shù)據(jù)左齊,右補(bǔ)空格。3.3primf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5歹リ。如果字符串長度大于5,則輸出按方式【1】;如果字符串長度小于5,則輸出按方式【2】〇A)從左起輸出該字符串,右補(bǔ)空格 B)按原字符串長從左向右全部輸岀C)右對齊輸出該字符串,左補(bǔ)空格 D)輸出錯誤信息參考答案:【1]B[2]C*3.4已有定義inta=?2;和輸出語句:printf("%81x",a);以下正確的敘述是A)整型變量的輸出格式符只有%d一種B)%x是格式符的一種,它可以適用于任何ー種類型的數(shù)據(jù)C)%x是格式符的ー種,其變量的值按十六進(jìn)制輸出,但%81x是錯誤的D)%81x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度參考答案:D參考分析:答案B基本上是正確的,但是%x不能正確的輸出長整型數(shù)據(jù)。*3.5以下C程序正確的運(yùn)行結(jié)果是main(){longy=-43456;printf("y=%-81d\n",y);printf("y=%-081d\n",y);printf("y=%081d\n",y);printf("y=%+81d\n",y);y=-43456y=-0043456y=-43456y=-0043456y=aa-43456參考答案:Cy=-0043456y=00043456y=+43456A)y=an-43456B)y=-43456y=-no43456y=-43456y=-0043456y=-0043456y=-43456y=+c-43456C)y=-43456D)y=aa-43456參考分析:0:數(shù)據(jù)左側(cè)必須充滿,給定數(shù)據(jù)不足時(shí),前面補(bǔ)〇〇+:數(shù)據(jù)前面顯示符號位。*3.6以下C程序正確運(yùn)行的結(jié)果是main(){inty=2456;printfi("y=%3o\n",y);printfX"y=%8o\n",y);A)y=□ロロA)y=□ロロ2456尸□□□□□□ロロ2456y=########2456C)y=2456y=□□ロロ2456尸口口ロ〇2456參考答案:DB)y=DDa4630y=□□□□□□ロロ4630尸########4630D)y=4630y=□ロロロ4630y=□□口〇4630參考分析:#要求輸出數(shù)據(jù)的類型特征符號。3.7以下C程序正確的運(yùn)行結(jié)果是main(){longy=23456;printfi("y=%31x\n",y);printfi("y=%81x\n",y);A)y=5baOy=aana5baOA)y=5baOy=aana5baOy=口ロ〇x5baOC)y=5baOy=5baOy=Ox5baO參考答案:AB)y=ana5baO
y=□□□ロロロ□□5baO
y=口ロ〇x5baOD)y=5baOy=nann5baOy=####5baO分析:長整型數(shù)據(jù)輸出應(yīng)當(dāng)加修正字符1,如果不加1僅能輸出數(shù)據(jù)的低兩個(gè)字節(jié),高字節(jié)數(shù)據(jù)不能輸出。*3.8若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是 。A)scanf^"%d%lx,%le",&x,&y,&z);B)scanfi("%2d*%d%lf",&x,&y,&z);C)scanfi("%x%*d%o",&x,&y);D)scanf{"%x%o%6.2f",&x,&y,&z);參考答案:D參考分析:A)首先讀第一個(gè)十進(jìn)制數(shù)賦給變量x,讀第二個(gè)長十六進(jìn)制數(shù)賦給變量y(此時(shí)有自動賦值轉(zhuǎn)換),再讀入格式規(guī)定的第二和第三個(gè)數(shù)據(jù)間的間隔符號逗號,最后讀入第三個(gè)double型數(shù)據(jù)賦給變量zoB)首先讀入2個(gè)寬度的十進(jìn)制數(shù)賦給變量x,再讀入格式規(guī)定的第一和第二數(shù)據(jù)間的間隔符號星號,然后讀入第二個(gè)十進(jìn)制整數(shù)賦給變量y,然后讀入第三個(gè)double型數(shù)據(jù)賦給變量z.C)讀入第一個(gè)十六進(jìn)制數(shù)賦給變量x,然后虛讀ー個(gè)十進(jìn)制數(shù)不賦給任何變量,最后讀入ー個(gè)ハ進(jìn)制數(shù)賦給變量y。D)%6.2f不符合格式規(guī)定,即不能規(guī)定讀入數(shù)據(jù)的小數(shù)點(diǎn)后的數(shù)字位數(shù)。*3.9已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是 。intal,a2;charcl,c2;scanfl("%d%c%d%c",&al,&c1,&a2,&c2);A)10Aa20B<CR> B)10nAa20aB<CR>C)10nA20B<CR> D)10A20oB<CR>參考答案:A*3.10已有定義intx;floaty;且執(zhí)行scanfi("%3d%f",&x,&y);語句時(shí),從第一列開始輸入數(shù)據(jù)12345L^g<QR>,則x的值為⑴,y的值為⑵〇A)12345 B)123 C)45 D)345A)無定值 B)45.0 C)678.0 D)123.0參考答案:BB參考分析:讀取數(shù)據(jù)格式中規(guī)定域?qū)挄r(shí),系統(tǒng)僅讀取指定寬度的數(shù)據(jù)。**3.1I已有如下定義和輸入語句,若要求al,a2,cl,c2的值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是 。intal,a2;charcl,c2;scanfi("%d%d",&al,&a2);scanfl("%c%c",&cl,&c2);A)1020AB<CR> B)10a20<CR>AB<CR>C)!〇ロロ20ロロAB<CR> D)10a20AB<CR>參考答案:D參考分析:A)al為1020,a2為隨機(jī)值,cl為A,c2為B.B)al為10,a2為2〇,cl為<CR>,c2為A。C)al為10,a2為2〇,cl、c2均為ロ〇已有程序段和輸入數(shù)據(jù)的形式,程序中輸入語句的正確形式應(yīng)當(dāng)為。main(){inta;floatf;printfi("lnputnumber:");(輸入語句)printf("\nf=%f,a=%d\n",f,a);}Inputnumber:4.5nn2<CR>A)scanfi("%d,%f<",&a,&f);B)scanf("%f^%d",&f,&a);C)scnafi("%d%f<",&a,&f);D)scanf("%f1%d",&f,&a);參考答案:D根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為。己有定義:floatfl,f2;數(shù)據(jù)的輸入方式:4.52A)scanf("%f,%f",&fl,&f2);B)scanf{"%f%f<",&fl,&f2);C)scanfi("%3.2f %2.1f",&fl,&f2);D)scanfl("%3.2f%2.lf",&fl,&f2);參考答案:B*3.14閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<CR>,正確的輸出結(jié)果為main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);}A)x+y+z=48 B)x+y+z=35 C)x+z=35D)不確定的值參考答案:D參考分析:由于提供數(shù)據(jù)的格式與規(guī)定格式不一致,變量y,z不能獲取正確的數(shù)據(jù),均為隨機(jī)值,故三變量之和也是隨機(jī)數(shù)。3.15根據(jù)題目中已給出的數(shù)據(jù)輸入和輸出形式,程序中輸入輸出語句的正確。main(){intx;floaty;printf("enterx,y:");輸入語句輸出語句)輸入形式:enterx,y:23.4輸出形式:x+y=5.40A)scanfi("%d,%f",&x,&y);B)scanfl("%d%f",&x,&y);printfi("\nx4-y=%4.2f<",x+y); printfi("\nx+y=%4.2f",x+y);C)scanfl("%d%f",&x,&y);D)scanf("%d%3.1f",&x,&y);printf("\nx+y=%6.1f",x+y); printf("\nx+y=%4.2f<",x+y);參考答案:B3.16以下說法正確的是A)輸入項(xiàng)可以為ー個(gè)實(shí)型常量,如scanf("%f",3.5);B)只有格式控制,沒有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf("a=%d,b=%d");C)當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanfi("%4.2f",&f);D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf("%f",&f);參考答案:D*3.17根據(jù)下面程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該為 。main(){charchl,ch2,ch3;輸入語句printf("%c%c%c",chI,ch2,ch3);}輸入形式:AdBdC輸出形式:AdBA)scanfi("%c%c%c",&ch1,&ch2,&ch3);B)scanfi("%c,%c,%c",&ch1,&ch2,&ch3);C)scanH"%c%c%c",&ch1,&ch2,&ch3);D)scanfi["%c%c",&ch1,&ch2,&ch3);參考答案:A參考分析:字符控制格式中有無空格對數(shù)據(jù)的讀取有影響,B)chl讀取A,ch2和ch3為隨機(jī)字符。C)三個(gè)變量分別為A、B、CoD)ch3為隨機(jī)字符。有輸入語句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);為使變量a的值為1,b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是 。A)132<CR> B)1,3,2<CR>C)a=lab=3ac=2<CR>D)a=l,b=3,c=2<CR>參考答案:D以下能正確地定義整型變量a,b和c并為其賦初值5的語句是A)inta=b=c=5;B)inta,b,c=5;C)inta=5,b=5,c=5; D)a=b=c=5;參考答案:C*3.20已知ch是字符型變量,下面不正確的賦值語句是A)ch='a+b'; B)ch='、0'; C)ch='7'+'9'; D)ch=5+9參考答案:A參考分析:B)為轉(zhuǎn)義字符。C)為7和9兩個(gè)字符ASCI!碼值之和的字符。D)為碼值為14的字符(控制字符)。已知ch是字符型變量,下面正確的賦值語句是A)ch='123';B)ch='\xff';C)ch='\08';D)ch="\";參考答案:B若有以下定義,則正確的賦值語句是inta,b;floatx;A)a=l,b=2, B)b++; C)a=b=5D)b=int(x);參考答案:B參考分析:這里強(qiáng)調(diào)的是賦值語句,請注意賦值表達(dá)式與賦值語句的區(qū)別。設(shè)x、y均為float型變量,則以下不合法的賦值語句為。A)++x; B)y=(x%2)/10; C)x*=y+8 D)x=y=0參考答案:B*3.24設(shè)x、y和z均為int型變量,則執(zhí)行語句x=(y=(z=10)+5)-5;后,x、y和z的值是 。A)x=10 B)x=10 C)x=10 D)x=10y=15 y=10 y=10 y=5z=10 z=10 z=15 z=10 參考答案:A3.25設(shè)有說明:doubley=0.5,z=1.5;intx=10;則能夠正確使用C語言庫函數(shù)的賦值語句是。A)z=exp(y)+fabs(x);B)y=log10(y)+pow(y);C)z=sqrt(y-z);D)x=(int)(atan2((double)x,y)+exp(y-0.2));參考答案:D參考分析:本題有些偏,其他選項(xiàng)錯誤的原因?yàn)锳)fabs(x),x不是double型。B)pow(y)其格式原型為doublepow(doubley,doublex)。C)y-z為負(fù)數(shù)。3.2填空題*3.26以下程序的輸出結(jié)果為()。main(){shorti;i=-4;printfX"\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);}參考答案:i:dec=-4,oct=177774,hex=flffc,unsigned=65532*3.27以下程序的輸出結(jié)果為()〇main(){printfi("*%f,%4.3f*\n",3.14,3.1415);}參考答案:*3.140000,3.142*分析:不能輸出的位會向前一位四舍五入輸出。3.28以下程序的輸出結(jié)果為()。main(){charc='x';printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);}參考答案:c:dec=120,oct=170,hex=78,ASCII=x*3.29已有定義intd=?2;執(zhí)行以下語句后的輸出結(jié)果是()。printf("*d(l)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n",d,d,d);參考答案:*d(l)=-2*d(2)=n-2*d(3)=-2a**d(4)=l77776*d(5)=ロ177776*d(6)=l77776a*3.30已有定義intd=.2;執(zhí)行以下語句后的輸出結(jié)果是()。printfl"*d(l)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);參考答案:*d(l)=-2*d(2)=a-2*d(3)=-2a* *d(4)=ffie*d(5)=aaffie*d(6)=ffTeaa**3.31已有定義floatdl=3.5,d2=?3.5;執(zhí)行以下語句后的輸出結(jié)果是()。printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",dl,dl,dl);printfi("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2,d2);參考答案:*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=a3.500e+00**d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00a*參考分析:通過本題應(yīng)注意%f和%e在規(guī)定小數(shù)點(diǎn)后位數(shù)的區(qū)別。%e小數(shù)位后面位數(shù)含eキ小志。3.32以下程序的輸出結(jié)果是()〇main(){intx=l,y=2;printfi("x=%dy=%d*sum*=%d\n",x,y,x+y);printf("10Squaredis:%d\n",10*10);參考答案:x=ly=2*sum*=310Squaredis:100*3.33以下程序的輸出結(jié)果是()。#include<stdio.h>main(){intx=10;floatpi=3.1416;printf("(1)%d\n",x);printfi("(2)%6d\n",x);printf("(3)%f\n",56.1);printfi("(4)%14f\n",pi);printf("(5)%e\n",568.1);printfi("(6)%14e\n",pi);printf("(7)%g\n",pi);printfi("(8)%12g\n",pi);參考答案:(1)10(!)□□□□10(3)56.100000(4)□□□□□□3.141600(5)5.68100e+02(6)ロロロ3.14160e+00(7)3.1416(8)□□□□□□3.1416參考分析:采用g格式輸出數(shù)據(jù)時(shí),當(dāng)數(shù)據(jù)<=10?5或>=107時(shí),按指數(shù)方式輸出(缺省正數(shù)11位,負(fù)數(shù)12位),否則按小數(shù)方式輸出(缺省含小數(shù)點(diǎn)總寬度最多7位)。且不輸出無意義的〇(后面)和小數(shù)點(diǎn)。3.34以下程序的輸出結(jié)果是()〇#include<stdio.h>main(){floata=123.456;doubleb=8765.4567;printf("(1)%f\n",a);printfi("(2)%14.3f\n",a);printfi("(3)%6.4f\n",a);printf("(4)%lf\n",b);printfi("(5)%14.31f\n",b);printf("(6)%8.4lf\n",b);printf("(7)%.41f\n",b);}參考答案:(1)123.456000(2)□□□□□□□123.456(3)123.4560(4)8765.456700⑸□□□□□□8765.456(6)8765.4560 (7)8765.4560*3.35以下printf語句中?的作用是(),輸出結(jié)果是()。#include<stdio.h>main(){inti=l;printfi("##%*d\n",i,i);ifprintf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);}參考答案:(1)可使同一或相同輸出格式數(shù)據(jù)輸出寬度得以改變(動態(tài)域?qū)捒刂?(2)##1##□2##□□33.36以下printf語句中的"-"的作用是()?該程序的輸岀結(jié)果是()。#include<stdio.h>main(){intx=12;doublea=3.1415926;printf("%6d##\n",x);printf("%-6d##\n",x);printR"%14.101f##\n",a);printf("%-14.101f##\n",a);)參考答案:(1)輸出數(shù)據(jù)左對齊□□ロロ12##12口□ロロ##□□3.1415926000##3.1415926000ロロ##*3.37以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=325;doublex=3.1415926;printf{&qiiot;a=%4-06dx=%+e\n",a,x);}參考答案:a=+00325x=+3.14159e+00*3.38以下程序的輸出結(jié)果是().#include<stdio.h>main(){inta=252;printfi("a=%oa=%#o\n",a,a);printf("a=%xa=%#x\n",a,a);)參考答案:a=374xa=0374a=fcaaa=0xfc3.39以下程序的輸出結(jié)果是()〇intx=7281;printfi["(l)x=%3d,x=%6d,x=%o,x=%6x,x=%6u\n",x,x,x,x,x);primf("X2)x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);printfi("(3)x=%+3d,x=%+6d,x=%+08d\n",x,x,x);printf^"(4)x=%o,x=%#o\n",x,x);printfi("(5)x=%x,x=%#x\n",x,x);參考答案:(1)X=7281,x=dd7281,x=d16161,x=dd1c71,x=od7281⑵x=728l,x=7281ロロ,x=$7281□□,x=$007281,x=%06d(3)x=+7281,x=d+7281,x=+0007281(4)x=16161,x=016161 (5)x=lc71,x=0xlc71**3.40假設(shè)變量a和b均為整型,以下語句可以不借助任何變量把a(bǔ)、b中的值進(jìn)行交換。請?zhí)羁?。a+=();b=a-();a-=();參考答案:bbb3.41假設(shè)變量a、b和c均為整型,以下語句借助中間變量t把a(bǔ)、b和c中的值進(jìn)行交換,即把b中的值給a,把c中的值給b,把a(bǔ)中的值給c。例如:交換前a=10、b=20、c=30,交換后a=20,b=30,c=10?請?zhí)羁铡?);a=b;b=c;();參考答案:t=ac=t;**3.42設(shè)x、y和z都是int型變量,m為long型變量,則在16位微型機(jī)上執(zhí)行下面賦值語句后,y值為(),z值為(),m值為()。y=(x=32767,x-l);z=m=oxffff;參考答案:32766>ノ、65535若x為int型變量,則執(zhí)行以下語句后x的值為()〇x=7;x+=x?=x+x;參考答案:-14若a和b均為int型變量,則以下語句的功能是()。a+=b;b=a-b;a-=b;參考答案:交換a、b變量的值*3.45在scanf函數(shù)調(diào)用語句中,可以在格式字符和%號之間加一星號,它的作用是(),當(dāng)輸入以下數(shù)據(jù):10ロロ20ロロ30ロLi40<CR>,下面語句的執(zhí)行結(jié)果是()。intal,a2,a3;scanf("%d%*d%d%d",&al,&a2,&a3);參考答案:讀入數(shù)據(jù)后不賦給相應(yīng)的變量把10給al,把20不給任何變量,把30給a2,把40給a3有一輸入函數(shù)scanfi["%d",k);則不能使float類型變量k得到正確數(shù)值的原因是()和(),正確的語句應(yīng)為()〇參考答案:格式字符不正確缺少&符號scanf("%f",&k);已有定義inta;floatb,x;charcl,c2;為使a=3,b=6.5,x=12.6,cl='a',c2='A',正確的scanf函數(shù)調(diào)用語句是(),輸入數(shù)據(jù)的方式為()。參考答案:scanfi("%d%f%f%c1%c2",&a,&b,&x,&c1,&c2);3n6.5al2.6aA參考分析:該題目不好,讀取數(shù)據(jù)語句和提供數(shù)據(jù)方式全部由做題者決定,這會出現(xiàn)各式各樣的答案。3.48若有以下定義和語句,為使變量cl得到字符ス,變量c2得到字符,B,,正確的格式輸入形式是()。charcl,c2;scanf|"%4c%4c",&cl,&c2);參考答案:AロロeiBロロロ參考分析:讀取字符數(shù)據(jù)指定數(shù)據(jù)寬度時(shí),系統(tǒng)讀取第一個(gè)字符3.49執(zhí)行以下程序時(shí),若從第一列開始輸入數(shù)據(jù),為使變量a=3,b=7,x=8.5,y=71.82,cl='A',c2='a',正確的數(shù)據(jù)輸入形式是()〇inta,b;floatx,y;charcl,c2;scanf("a=%db=%d",&a,&b);scanf("x=%fy=%f<",&x,&y;scanf("c1=%cc2=%c",&cl,&c2);參考答案:a=3ab=7x=8.5ay=71.82c1=Aoc2=a<CR>3.50已有定義intij;floatx;為將一10賦給i,12賦給j,410.34賦給x:則對應(yīng)以下scanf函數(shù)調(diào)用語句的數(shù)據(jù)輸入形式是().scanf("%o%x%e",&i,&j,&x);參考答案:一12ncM.1034e2參考分析:第一個(gè)數(shù)也可給17776,第二個(gè)數(shù)也可給Oxc,第三個(gè)數(shù)也可給410.34。第四章邏輯運(yùn)算和判斷選取控制選擇題*4.!邏輯運(yùn)算符兩則運(yùn)算對象的數(shù)據(jù)類型。A)只能是0或1 B)只能是?;蚍签栒龜?shù)C)只能是整型或字符型數(shù)據(jù) D)可以是任何類型的數(shù)據(jù)參考答案:D參考分析:c語言中沒有專用的邏輯量,任何數(shù)值類型的數(shù)據(jù)都可以作為邏輯數(shù)據(jù)使用,判斷時(shí)。為假,非零為真,計(jì)算時(shí)真置1,假置0。4.2以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是A)關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯運(yùn)算符B)邏輯運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符C)賦值運(yùn)算符<邏輯運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符D)算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯運(yùn)算符參考答案:C4.3下列運(yùn)算符中優(yōu)先級最高的是A)<B)+C)&&D)!=參考答案:B4.4能正確表示一當(dāng)x的取值在[1,10]和[200,210]范圍B)(x<=a)||(b<=x<=c)C)(x<=a)||(x>=b)&&(x<=c)D)(x<=a)&&(b<=x<=c)參考答案:C判斷char型變量ch是否為大寫字母的正確表達(dá)式為A)'A'<=ch<='Z' B)(ch>=lA,)&(ch<=*Z,)C)(ch>='A')&&(ch<='Z') D)('A'<=ch)AND('Z'>=ch)參考答案:C有intx=3,y=4,z=5;則下面表達(dá)式中值為〇的是。A)'x'&&'y' B)x<=y C)x||y+z&&y-zD)!((x<y)&&!z||1)參考答案:D已知x=43,ch='A',y=0;貝リ表達(dá)式(x>=y&&ch<'B'&&!y)的值是。A)0 B)語法錯誤 C)1 D)"假"參考答案:C若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為ー真II,A的值為偶數(shù)時(shí),表達(dá)式的值為ー假II〇則以下不能滿足要求的表達(dá)式是 。A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%2參考答案:C*4.10設(shè)有:inta=l,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值為。A)1 B)2 C)3 D)4參考答案:B參考分析:本題為標(biāo)準(zhǔn)的短路算法,由于第一個(gè)表達(dá)式m=a>b為真,故第二個(gè)表達(dá)式n=c>d被短路不再計(jì)算。因此,n值仍然保持原來的值2不變。判斷char型變量ch是否為小寫字母的正確表達(dá)式為A)'a'<=ch<='z' B)(ch>=a)&&(ch<=z)C)(ch>='a')||(ch<='z') D)(ch>='a')&&(ch<='z')參考答案:D*4.12以下程序的運(yùn)行結(jié)果是#include<stdio.h>main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d",a,b);)A)6,l B)2,l C)6,0 D)2,0參考答案:B參考分析:計(jì)算時(shí),非零為真。*4.13執(zhí)行以下語句后a的值為b的值為。inta,b,c;a=b=c=l;++a||++b&&-H-c;A)0 B)1 C)2D)錯誤參考答案:CB參考分析:c語言在計(jì)算表達(dá)式時(shí)采用短路算法。.改執(zhí)行以下語句后,a,b,c的值分別為inta,b,c;a=b=c=l;++a||Hb&&++c;A)l,l,lB)2,l,l C)2,2,l D)2,2,2參考答案:B執(zhí)行以下語句后a的值為b的值為。inta=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);(1)A)5 B)0 C)2 D)1(2)A)6 B)0 C)1 D)4參考答案:BA參考分析:短路算法。*4.15以下不正確的if語句形式是A)if(x>y&&x!=y);B)if(x=y)x+=y;C)ifi(x!=y)scanf("%d",&x)elsescanf("%d",&y);D)if(x<y){x++;y++;}參考答案:c4.16下列運(yùn)算符中優(yōu)先級最低的是。A)?:B)&&C)+ D)!=參考答案:AC*4.17己知intx=10,y=20,z=30;以下語句執(zhí)行后x,y,z的值是。if(x>y)z=x;x=y;y=z;A)10,20,30 B)20,30,30 C)20,30,10 D)20,30,20參考答案:C4.18以下if語句語法正確的是A)if(x>0)printf("%f",x)elseprintfi("%f",-x);B)if(x>0){x=x+y;printf("%f<",x);} elseprintf("%f",-x);C)ifi[x>0){x=x+y;printfi("%f",x);};elseprintfi("%f",-x);D)if(x>0){x=x+y;printf("%f",x)}elseprintfl("%f",-x);參考答案:B*4.19有程序:main(){inta=5,b=l,c=0;if(a=b+c)printf{"***\n");else printfi("$S$\n");}該程序。A)有語法錯誤不能通過編譯 B)可以通過編譯,但不能通過連接C)輸出:*** D)輸出:$$$參考答案:C參考分析:注意條件表達(dá)式不是a==b+c。*4.20以下程序的運(yùn)行結(jié)果是main(){intm=5;ifi(m++>5)printfi("%d",--m);elseprintf|"%d",m++);)A)4 B)5 C)6 D)7參考答案:C參考分析:m先與5進(jìn)行關(guān)系比較,然后進(jìn)行增量運(yùn)算,m值為6,因比較結(jié)果為假,執(zhí)行else,輸出為6,m為7。4.21當(dāng)a=l,b=3,c=5,d=4時(shí),執(zhí)行完下面一段程序后x的值是。if(a<b)if(c<d)x=l;
elseifi(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=3;A)1B2C)3 D)6參考答案:B**4.22有函數(shù)關(guān)系如下,能正確表示該關(guān)系的程序段是A)y=x+1;if(x>=O)ifi(x==0)A)y=x+1;if(x>=O)ifi(x==0)y=x;elsey=x-l;C)if(x<=0)if(x<0)y=x-l;elsey=x;elsey=x+1if(x!=0)if(x>0)y=x+l;elsey=x;D)y=x;if(x<=0)if(x<0)y=x-l;elsey=x+l;參考答案:C*4.23以下程序的輸出結(jié)果是main(){inta=100,x=10,y=20,okI=5,ok2=0;if(x<y)ifi[y!=10)ifi(!okl)a=l;elseif(ok2)a=10;a=-l;printfl("%d\n",a);}A)1 B)0C)-l D)值不確定參考答案:C參考分析:無論前面的分支如何執(zhí)行,由于a=-l和上面的語句為順序關(guān)系,因此不會影響到a的值。4.24以下程序的輸出結(jié)果是main(){intx=2,y=-l,z=2;if(x<y)if(y<0)z=0;elsez+=l;printfi("%d\n",z);A)3 B)2QID)0參考答案:B*4.25為了避免在嵌套的條件語句if^else中產(chǎn)生二義性,C語言規(guī)定:else子句總是與配對。A)縮排位輅相同的if B)其之前最近的沒有else配對的ifC)其之后最近的if D)同一行上的if參考答案:B參考分析:本題表述不嚴(yán)謹(jǐn)。*4.26以下不正確的語句為。A)if(x>y);B)if(x=y)&&(x!=O)x+=y;C)if(x)z=z/x;D)if(x>y){x++;y++;}參考答案:B4.27請閱讀以下程序:#include<stdio.h>main(){floata,b;scanfl("%f<",&a);if(a<0.0)b=0.0;elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);elseif(a<10.0)b=1.0/a;elseb=10.0;printfi("%f\n",b);)若運(yùn)行時(shí)輸入2.0<CR>,則上面程序的輸出結(jié)果是。A)0.000000 B)0.500000C)1.000000 D)0.250000參考答案:B**4.28若有條件表達(dá)式(exp)?a++:b-,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是。A)exp==0B)exp!=0C)exp=lD)exp!=l參考答案:B參考分析:在C語言中,當(dāng)一個(gè)表達(dá)式不等于〇時(shí),可以將不等于部分省略,其效果完全ー樣。*4.29若運(yùn)行時(shí)給變量輸入12,則以下程序的運(yùn)行結(jié)果是main(){intx,y;scanfi("%d",&x);y=x>12?x+10:x-12;printfi("%d\n",y);A)0 B)22 C)12 D)10參考答案:A參考分析:x>12為假,取x?12。4.30以下程序的運(yùn)行結(jié)果是main(){intk=4,a=3,b=2,c=l;printf("\n%d\n",k<a?k:c<b?c:a);}A)4 B)3 C)2 D)1參考答案:D**4.3I執(zhí)行下列程序段后,變量a,b,c的值分別是。intx=10,y=9;inta,b,c;a=(-x==y+4-)?-x:-H-y;b=x-H-;c=y;A)a=9,b=9,c=9 B)a=8,b=8,c=10C)a=9,b=10,c=9 D)a=8,b=8,c=9參考答案:B參考分析:首先x進(jìn)行ー操作,x為9,然后與y進(jìn)行等于比較,即9=9,然后y++為I0o由于比較結(jié)果為真,故計(jì)算??x,為8,賦給a。閱讀以下程序,則執(zhí)行下面語句后m的值是。intw=l,x=2,y=3,z=4,m;m=w<x?w:x;m=m<y?m:y;m=m<z?m:z;A)1 B)2 C)3 D)4參考答案:A若有intw=l,x=2,y=3,z=4;貝リ表達(dá)式w<x?w:y<z?y:z的值是。A)4 B)3 C)2 D)1參考答案:D*4.34執(zhí)行以下程序后的輸出結(jié)果是intw=3,z=7,x=10;printfi("%d",x>10?x+100:x-l0);printfi("%d",w-H-||z-H-);printf{"%d",!w>z);printfi("%d",w&&z);A)0111B)llllC)0101 D)0100參考答案:C4.2填空題*4.35若inta=3,b=2,c=l,f;表達(dá)式f=a>b>c的值是()。參考答案:0參考分析:計(jì)算過程如下,a>b計(jì)算為真,然后計(jì)算真(l)>c,結(jié)果為假4.36若inta=5,b=4,c=2;表達(dá)式a>b!=c的值是()。參考答案:1*4.37以下程序的運(yùn)行結(jié)果是()〇#include<stdio.h>main(){intx=l,y,z;x*=3+2;printfi("%d\t",x);x*=y=z=5;printfX";%d\t",x);x=y=z;printf^"%d\n",x);參考答案:5□□□□□ロロ25□□□□ロロ1(制表符為7個(gè))4.38在C語言中,表示邏輯ー真II值用()。參考答案:非O的數(shù)值。*4.39設(shè)y為int型變量,請寫出描述一y是奇數(shù)II的表達(dá)式()。參考答案:y%2=ly%2!=0y%2(y-l)%2=0!(y%2=0)c語言提供的三種邏輯運(yùn)算符是()、()和()。參考答案:&&|| !設(shè)x,y,z均為int型變量,請寫出描述一x或y中有一個(gè)小于zII的表達(dá)式()?參考答案:x<z||y<z*4.42設(shè)x,y,z均為int型變量,請寫出描述一x,y,z中有兩個(gè)為負(fù)數(shù)II的表達(dá)式()?參考 答 案:x*y*z>=O&&((x<O&&y<O)||(x<O&&z<O)||(y<O&&z<O))參考分析: 原書提供的答案是(x<O&&y<O)||(x<O&&z<O)||(y<O&&z<O),但當(dāng)三個(gè)變量均為負(fù)數(shù)時(shí)不合適,后來本人思考了一個(gè)試圖簡化ー些的答案,即x*y*z>O&&(x<O||y<O||z<O)可是若有一個(gè)變量為零,其他為負(fù)數(shù)時(shí)也不合適,只有參考答案オ無懈可擊。已知 A=7.5,B=2,C=3.6,表達(dá)式A>B&&C>A||A<B&&!C>B的值是()〇參考答案:0參考分析:在本表達(dá)式的計(jì)算過程中A<B被短路。若inta=6,b=4,c=2;表達(dá)式!(a-b)+c-l&&b+c/2的值是()。參考答案:1若a=2,b=4,則表達(dá)式!(x=a)||(y=b)&&〇的值是()。參考答案:〇若a=l,b=4,c=3,則表達(dá)式!(a<b)||!c&&l的值是()。參考答案:。若a=6,b=4,c=3,則表達(dá)式a&&b+c||b-c的值是()。參考答案:1若a=5,b=2,c=l,則表達(dá)式a-b<c||b==c的值是()。參考答案:。若a=3,b=4,c=5,則表達(dá)式a||b+c&&b的值是()。參考答案:1條件一2<x<3或x<-10II的C語言表達(dá)式是()〇參考答案:x>2&&x<3||x<-10當(dāng)m=2,n=1,a=1,b=2,c=3時(shí),執(zhí)行完d=(m=a!=b)&&
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 惠州市實(shí)驗(yàn)中學(xué)2026屆高三化學(xué)第一學(xué)期期中質(zhì)量跟蹤監(jiān)視試題含解析
- 情景交融療法課件
- 江蘇省東臺市2026屆化學(xué)高二第一學(xué)期期中考試試題含解析
- 幼兒園大班語言領(lǐng)域活動設(shè)計(jì)方案
- 小型超市活動策劃方案
- 銷售新人培訓(xùn)計(jì)劃方案內(nèi)容
- 五班級語文教學(xué)工作方案
- 燈具促銷活動策劃方案
- 布展工程施工設(shè)計(jì)方案
- 樂理模擬試題及答案
- 典當(dāng)公司物品管理制度
- CJ/T 152-2016薄壁不銹鋼卡壓式和溝槽式管件
- 關(guān)于成立印刷包裝公司可行性研究報(bào)告(范文)
- 公司之間罰款協(xié)議書
- 視頻素材授權(quán)協(xié)議書
- DB42-T 1989-2023 城鄉(xiāng)公益性安葬設(shè)施建設(shè)與管理規(guī)范
- GB/T 45460-2025鋼絲繩在無軸向載荷條件下鋼絲繩徑向剛度的測定
- 社區(qū)健康教育知識講座
- 2025-2030樂器產(chǎn)業(yè)規(guī)劃專項(xiàng)研究報(bào)告
- 電視廣播網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)技術(shù)考核試卷
- 防造假培訓(xùn)課件視頻教程
評論
0/150
提交評論