譚浩強(qiáng)C語言程序設(shè)計(jì)習(xí)題集_第1頁
譚浩強(qiáng)C語言程序設(shè)計(jì)習(xí)題集_第2頁
譚浩強(qiáng)C語言程序設(shè)計(jì)習(xí)題集_第3頁
譚浩強(qiáng)C語言程序設(shè)計(jì)習(xí)題集_第4頁
譚浩強(qiáng)C語言程序設(shè)計(jì)習(xí)題集_第5頁
已閱讀5頁,還剩146頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-.z.目錄重要次重要重復(fù)或欲刪除根底HYPERLINK1.1選擇題HYPERLINK1.2填空題HYPERLINK第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式HYPERLINK2.1選擇題HYPERLINK2.2填空題HYPERLINK第三章最簡單的C程序設(shè)計(jì)HYPERLINK3.1選擇題HYPERLINK3.2填空題HYPERLINK第四章邏輯運(yùn)算和判斷選取控制HYPERLINK4.1選擇題HYPERLINK4.2填空題HYPERLINK4.3編程題HYPERLINK第五章循環(huán)控制HYPERLINK5.1選擇題HYPERLINK5.2填空題HYPERLINK第六章數(shù)組HYPERLINK6.1選擇題HYPERLINK6.2填空題HYPERLINK6.3編程題HYPERLINK第七章函數(shù)HYPERLINK7.1選擇題HYPERLINK7.2填空題HYPERLINK7.3編程題HYPERLINK第八章編譯預(yù)處理8.1選擇題8.2填空題8.3編程題HYPERLINK第九章指針HYPERLINK9.1選擇題HYPERLINK9.2填空題第一章C語言概述1.1選擇題*1.1一個(gè)C程序的執(zhí)行是從。A)本程序的main函數(shù)開場,到main函數(shù)完畢B)本程序文件的第一個(gè)函數(shù)開場,到本程序文件的最后一個(gè)函數(shù)完畢C)本程序的main函數(shù)開場,到本程序文件的最后一個(gè)函數(shù)完畢D)本程序文件的第一個(gè)函數(shù)開場,到本程序main函數(shù)完畢參考答案:A參考分析:C語言總是從main函數(shù)開場,main函數(shù)完畢。但是C語言中存在一個(gè)e*it(0)函數(shù),它可以使得程序在任何時(shí)候、任何位置完畢程序的運(yùn)行。如果不考慮e*it(0)等函數(shù)的特殊作用,C則總是在main函數(shù)完畢。*1.2以下表達(dá)正確的選項(xiàng)是。A)在C程序中,main函數(shù)必須位于程序的最前面B)在C程序的每一行只能寫一條語句C)C語言本身沒有輸入輸出語句D)在對一個(gè)C程序進(jìn)展編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤參考答案:C參考分析:C程序?qū)ain函數(shù)的位置沒有任何要求;其書寫格式自由,一行可以寫多條語句,一條語句(多關(guān)鍵字語句)可以寫在多行;C語言忽略注釋,把注釋看作是一個(gè)空格,不會(huì)對注釋中的內(nèi)容進(jìn)展語法檢查。因此,如果注釋中存在錯(cuò)誤,系統(tǒng)是不可能發(fā)現(xiàn)的。另外,C語言的I/O操作均通過函數(shù)實(shí)現(xiàn),系統(tǒng)本身未提供相應(yīng)的語句。1.3以下表達(dá)不正確的選項(xiàng)是。A)一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成B)一個(gè)C源程序必須包含一個(gè)main函數(shù)C)C程序的根本組成單位是函數(shù)D)在C程序中,注釋說明只能位于一條語句的后面參考答案:D參考分析:C語言中,注釋語句的位置是任意的,當(dāng)然,它不能破壞標(biāo)識符的完整性。C語言只是將一個(gè)注釋看作是一個(gè)空格,因此對注釋內(nèi)的任何錯(cuò)誤都不作檢查。1.4C語言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置。A)必須在最開場B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C)可以任意D)必須在最后參考答案:C*1.5一個(gè)C語言程序是由。A)一個(gè)主程序和假設(shè)干個(gè)子程序組成B)假設(shè)干函數(shù)組成C)假設(shè)干過程組成D)假設(shè)干子程序組成參考答案:B參考分析:通常許多語言程序由主程序和子程序構(gòu)成,但是C語言是函數(shù)式語言,整個(gè)程序由眾多函數(shù)組成。盡管有時(shí)習(xí)慣上稱main函數(shù)為主程序,顯然,嚴(yán)格地講還是B更為符合C語言的規(guī)則。1.2填空題1.6C源程序的根本單位是【】。參考答案:函數(shù)1.7一個(gè)C源程序中至少應(yīng)包括一個(gè)【】。參考答案:main()函數(shù)1.8在一個(gè)C源程序中,注釋局部兩側(cè)的分界符分別為【1】和【2】。參考答案:【1】/*【2】*/1.9在C語言中,輸入操作是由庫函數(shù)【1】完成的,輸出操作是由庫函數(shù)【2】完成的。參考答案:【1】scanf【2】printf第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式2.1選擇題**2.1C語言中(以16位PC機(jī)為例),各數(shù)據(jù)類型的存儲空間長度的排列順序?yàn)?。A)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假設(shè)*、i、j和k都是int型變量,則計(jì)算下面表達(dá)式后,*的值為。*=(i=4,j=16,k=32)A)4B)16C)32D)52參考答案:C參考分析:逗號表達(dá)式的計(jì)算結(jié)果是最后一個(gè)表達(dá)式的值。k=23是括號內(nèi)最后一個(gè)表達(dá)式,因此*變量的值來自k變量的值。**2.3假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,a+b++,a+b)的值是。A)7B)8C)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。2.4以下四組選項(xiàng)中,均不是C語言關(guān)鍵字的選項(xiàng)是。A)defineB)getcC)includeD)whileIFcharscanfgotypeprintfcasepow參考答案:A參考分析:是關(guān)鍵字的有:char、case、while。2.5以下四組選項(xiàng)中,均是C語言關(guān)鍵字的選項(xiàng)是。A)autoB)switchC)signedD)ifenumtypedefunionstructincludecontinuescanftype參考答案:B參考分析:不是關(guān)鍵字的:include、scanf、type*2.6下面四個(gè)選項(xiàng)中,均是不合法的用戶標(biāo)識符的選項(xiàng)是。A)AB)floatC)b-aD)_123P_0la0gototempdo_AintINT參考答案:C參考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。**2.7C語言中的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符。A)必須為字母B)必須為下劃線C)必須為字母或下劃線D)可以是字母、數(shù)字和下劃線中的任一種字符參考答案:C參考分析:教材中只是強(qiáng)調(diào)首字符必須為字母,我們應(yīng)當(dāng)知道,在語言系統(tǒng)中,下劃線和字母具有同等的"法律效力〞。*2.8下面四個(gè)選項(xiàng)中,均是合法整型常量的選項(xiàng)是。A)160B)-0*cdfC)-01D)-0*48a-0*ffff01a986,0122e50110*e06680*參考答案:A參考分析:不合法的B2,C2,C3,D2。解釋:A2:-0*ffff十六進(jìn)制數(shù)本身已經(jīng)包含了符號位,一般不前面加符號位,但加上符號位也不錯(cuò)誤;C3:0668在有些C系統(tǒng)中,八進(jìn)制數(shù)中允許出現(xiàn)8,但是通常不允許使用8;D3:0*顯然后面缺少數(shù)值,但在TC中是允許的。*2.9下面四個(gè)選項(xiàng)中,均是不合法的整型常量的選項(xiàng)是。A)--0f1B)-0*cdfC)-018D)-0*48eg-0*ffff017999-068001112,4565e203f參考答案:D參考分析:不合法的A1,B3,C1,C3,D。解釋:A1:--0f1十六進(jìn)制數(shù)沒有0*,顯然不合法,這里需要討論的是常量前面允許不允許加上--號,是否可以負(fù)負(fù)得正,顯然不可以,--在C中是自減運(yùn)算,它只適用于變量;B1:0*cdf*大寫也可以!C3:5e2是個(gè)實(shí)型數(shù)。*2.10下面四個(gè)選項(xiàng)中,均是不合法的浮點(diǎn)數(shù)的選項(xiàng)是。A)160.B)123C)-.18D)-e30.122e4.2123e4.234e3.e50.01e3參考答案:B參考分析:不合法的有A3,B,D1。局部解釋:A1,D2:C語言中小數(shù)點(diǎn)前面或后面的0可以省略。但是不能只有小數(shù)點(diǎn)自身;A3,B3,D1:e的前后必須有合法數(shù)字。1.e2.1e2合法,.e2不合法;B1:123是整型數(shù),不是浮點(diǎn)數(shù)。*2.11下面四個(gè)選項(xiàng)中,均是合法的浮點(diǎn)數(shù)的選項(xiàng)是。A)+1e+1B)-.60C)123eD)-e35e-9.412e-41.2e-.4.8e-403e2-8e5+2e-15.e-0參考答案:B參考分析:不合法的有A2:階碼不能為小數(shù);A3:浮點(diǎn)數(shù)的尾數(shù)及階碼不能用八進(jìn)制數(shù)表示;C1:e后必須有整數(shù),C2:階碼不能為小數(shù);D1:缺少尾數(shù)。*2.12下面四個(gè)選項(xiàng)中,均是合法轉(zhuǎn)義符的選項(xiàng)是。A)'\''B)'\'C)'\018'D)'\\0''\\''\017''\f''\101''\n''\"''*ab''*1f'參考答案:A參考分析:"\"后面的數(shù)字,c總是按照八或十六進(jìn)制解釋。由于c支持?jǐn)U展ASCII字符集,所以,八進(jìn)制數(shù)范圍在0~377,十六進(jìn)制數(shù)范圍在00~ff。*2.13下面四個(gè)選項(xiàng)中,均是不合法的轉(zhuǎn)義符的選項(xiàng)是。A)'\"'B)'\1011'C)'\011'D)'\abc''\\''\''\f''\101''\*f''\a''\}''*1f'參考答案: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)0abcC)010D)0a120*8f017-0*117ff0180*a0*16-123參考答案:D參考分析:不正確的有A3:非法八進(jìn)制數(shù);B1、D1、D2:缺少*;D3是十進(jìn)制數(shù)。2.16下面四個(gè)選項(xiàng)中,均是正確的八進(jìn)制或十六進(jìn)制數(shù)的選項(xiàng)是。A)-10B)0abcC)0010D)0a120*8f-017-0*11-0*123-0110*c0*f1-0*a參考答案:C參考分析:不正確的有A1:這是十進(jìn)制數(shù);B1、D1:缺少*2.17下面四個(gè)選項(xiàng)中,均是正確的數(shù)值常量或字符常量的選項(xiàng)是。A)0.0B)"a"C)'3'D)+0010f3.9e-2.50110*abcd8.9e1e10*FF002e2'&''\"'0a50.參考答案:D參考分析:不正確的有A2、C4:不是o*打頭;A3:e后不是整數(shù);B1是字符串;B2:2.5不是整數(shù)。2.18下面不正確的字符串常量是。A)'abc'B)"12'12"C)"0"D)""參考答案:A參考分析:與PASCAL不同,B)字符串內(nèi)的單引號不需雙寫。C語言中,在不引起誤解的情況下,雙引號界定的字符串里的單引號可以不加轉(zhuǎn)義標(biāo)志"\",單引號界定的雙引號字符也可以不加轉(zhuǎn)義標(biāo)志"\"。2.19對應(yīng)以下各代數(shù)式中,假設(shè)變量a和*均為double類型,則不正確的c語言表達(dá)式是。A)e*^2/2e*p(***/2)/sqr(2*3.14159)√2πB)?〔a*+a+*/4a〕1.0/2.0*(a**+(a+*)/(4*a))C)√sin*2.5sqrt((pow(sin(**3.14159/180),2.5))D)*2-e5***-e*p(5.0)參考答案:C2.20假設(shè)有代數(shù)式3ae/bc,則不正確的C語言表達(dá)式是。A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3參考答案:C參考分析:注意表達(dá)式的計(jì)算順序2.21各變量的類型說明如下,則不符合C語言語法規(guī)定的表達(dá)式是。intk,a,b;unsignedlongw=5;double*=1.42;A)*%(-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ù)。2.22各變量說明如下,則符合C語言語法規(guī)定的表達(dá)式是。inti=8,k,a,b;unsignedlongw=5;double*=1.42,y=5.2;A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)*%(-3)D)y=float(i)參考答案:A參考分析:B)表達(dá)式不能出現(xiàn)在賦值號右側(cè);C)*是實(shí)型數(shù),不能進(jìn)展取余運(yùn)算;D〕應(yīng)將float用括號擴(kuò)起來〔強(qiáng)制類型轉(zhuǎn)換〕。*2.23以下不正確的表達(dá)是。A)在C程序中,逗號運(yùn)算符的優(yōu)先級最低B)在C程序中,APH和aph是兩個(gè)不同的變量C)假設(shè)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以下正確的表達(dá)是。A)在C程序中,每行只能寫一條語句B)假設(shè)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+9B)d=9+e,f=d+9C)d=9+e,e++,d+9D)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='A'+'6'-'3';后,c2的值為。A)DB)68C)不確定的值D)C參考答案:A參考分析:表達(dá)式中的各字符以各自的ASCII碼參與運(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假設(shè)以下變量均是整型,且num=sum=7;則計(jì)算表達(dá)式sUM=num++,sUM++,++num后sum的值為。A)7B)8C)0D)10參考答案:A參考分析:注意sum和sUM不是一個(gè)變量〔區(qū)分大小寫〕。*2.29在C語言中,int、char和short三種類型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)。A)由用戶自己定義B)均為兩個(gè)字節(jié)C)是任意的D)由所用機(jī)器的字長決定參考答案:D參考分析:參考答案很明確地說明了,C語言中各種類型在內(nèi)存中所占用的字節(jié)數(shù)由所用機(jī)器字長決定。通常在PC機(jī)中字符、整型、實(shí)型所占用的內(nèi)存空間大小為1、2、4個(gè)字節(jié)。2.30假設(shè)有說明語句:charc='\72';則變量c。A)包含1個(gè)字符。B)包含2個(gè)字符。C)包含3個(gè)字符。D)說明不合法,c的值不確定。參考答案:A參考分析:轉(zhuǎn)義字符'\72'為字符':'。2.31假設(shè)有定義:inta=7;float*=2.5,y=4.7;則表達(dá)式*+a%3*(int)(*+y)%2/4的值是。A)2.500000B)2.750000C)3.500000D)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)算就自動(dòng)轉(zhuǎn)換為double型。2.34下面四個(gè)選項(xiàng)中,均是非法常量的選項(xiàng)是。A)'as'B)'\\'C)-0*18D)0*abc-0fff'\01'01177'\0''\0*a'12,4560*f"a"參考答案:A參考分析:A3轉(zhuǎn)義字符以十六進(jìn)制描述時(shí),前面不能加0。非法的還有B3*2.35假設(shè)有代數(shù)式√y*+log10y,則正確的C語言表達(dá)式是。sqrt(fabs(pow(y,*)+log10(y)))sqrt(abs(pow(y,*)+log10(Y)))sqrt(fabs(pow(*,y)+log10(y)))sqrt(abs(pow(*,y)+log10(y)))參考答案:A參考分析:c語言中整型和實(shí)型的絕對值函數(shù)各自獨(dú)立,為abs和fabs;pow為一系統(tǒng)函數(shù)pow(y,*)=>y*。2.36假設(shè)有代數(shù)式|*3+lg*|,則正確的C語言表達(dá)式是。A)fabs(**3+log10(*))B)abs(pow(*,3)+log10(*))C)abs(pow(*,3.0)+log10(*))D)fabs(pow(*,3.0)+log10(*))參考答案:D參考分析:以上兩題均未說明*,y的類型,從表達(dá)式的性質(zhì)可分析隱含為實(shí)型,因此應(yīng)使用fabs。*2.37在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是。A)補(bǔ)碼B)反碼C)原碼D)ASCII碼參考答案: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)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0參考答案:B參考分析:m=n*100+0.5賦值過程中有實(shí)型轉(zhuǎn)整型的自動(dòng)轉(zhuǎn)換。2.39表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為。A)intB)floatC)doubleD)不確定參考答案:C參考分析:表達(dá)式的類型由表達(dá)式結(jié)果的類型決定。2.40設(shè)C語言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),則unsignedint型數(shù)據(jù)的取值范圍為。A)0-255B)0-32767C)0-65535D)0-2147483647參考答案:C參考分析:各種數(shù)據(jù)類型的取值范圍是由其字長決定,字長確定的情況下,有符號數(shù)與無符號數(shù)的范圍應(yīng)當(dāng)容易計(jì)算得知。2.41設(shè)有說明:charw;int*;floaty;doublez;則表達(dá)式w**+z-y值的數(shù)據(jù)類型為。A)floatB)charC)intD)double參考答案:D參考分析:表達(dá)式的類型由表達(dá)式結(jié)果的類型決定。雖然此題各變量沒有具體的變量值,由于參與運(yùn)算的變量中z變量為double型,表達(dá)式計(jì)算的結(jié)果肯定為double型。2.42假設(shè)有以下定義,則能使值為3的表達(dá)式是。intk=7,*=12;A)*%=k%=5B)*%=k-k%5C)*%=(k-k%5)D)(*%=k)-(k%=5)參考答案:D參考分析:A的值為0,B、C兩個(gè)表達(dá)式一樣,值為2,只有D的值為3。2.43設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是。A)*=y=6,*+y,*+1B)*=y=6,*+y,y+1C)*=6,*+1,y=6,*+yD)y=6,y+1,*=y,*+1參考答案:C參考分析:經(jīng)計(jì)算可知,只有C的值為12,不為7。2.2填空題2.44在C語言中〔以16位PC機(jī)為例〕,一個(gè)char型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【1】;一個(gè)int型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【2】。參考答案:【1】1【2】22.45在C語言中〔以16位PC機(jī)為例〕,一個(gè)float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【1】;一個(gè)double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【2】。參考答案:【1】4【2】82.46假設(shè)有以下定義,intm=5,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=m*=y后y的值是【】。參考答案:-162.47設(shè)C語言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占2各字節(jié),則int型數(shù)據(jù)的取值范圍為【】。參考答案:-32768~327672.48在C語言中的實(shí)型變量分為兩種類型,它們是【1】和【2】。參考答案:【1】float【2】double*2.49C語言所提供的根本數(shù)據(jù)類型包括:單精度型、雙精度型、【1】、【2】和【3】。參考答案:字符型整型枚舉參考分析:根本類型又稱簡單類型,假設(shè)分為四種則為字符、整型、實(shí)型和枚舉,假設(shè)分為五種,則將實(shí)型分為單精度型和雙精度型兩種。*2.50假設(shè)s是int型變量,則表達(dá)式s%2+(s+1)%2的值為【】。參考答案:1參考分析:無論s是奇數(shù)還是偶數(shù)表達(dá)式的值只能是1。*2.51假設(shè)a是int型變量,則表達(dá)式〔a=4*5,a*2〕,a+6的值為【】。參考答案:26*2.52假設(shè)*和a均是整型變量,則計(jì)算表達(dá)式(1)后的*值為【1】,計(jì)算表達(dá)式(2)后*的值為【2】。(1)*=(a=4,6*2)(2)*=a=4,6*2參考答案:【1】12【2】42.53假設(shè)a、b和c均是int型變量,則計(jì)算表達(dá)式a=(b=4)+(c=2)后,a的值為【1】,b的值為【2】,c的值為【3】。參考答案:【1】6【2】4【3】22.54假設(shè)a是int型變量,且a的初值為6,則計(jì)算表達(dá)式a+=a-=a*a后a的值為【】。參考答案:-602.55假設(shè)a是int型變量,則計(jì)算表達(dá)式a=25/3%3后a的值為【】。參考答案:22.56假設(shè)*和n均是int型變量,且*和n的初值均為5,則計(jì)算表達(dá)式*+=n++后*的值為【1】,n的值為【2】。參考答案:【1】10【2】62.57假設(shè)有定義:intb=7;floata=2.5,c=4.7;則表達(dá)式a+(int)(b/3*(int)(a+c)/2)%4的值為【】。參考答案:5.52.58假設(shè)有定義:inta=2,b=3;float*=3.5,y=2.5;則表達(dá)式(float)(a+b)/2+(int)*%(int)y的值為【】。參考答案:3.52.59假設(shè)有定義:charc='\010';則變量c中包含的字符個(gè)數(shù)為【】。參考答案:12.60假設(shè)有定義:int*=3,y=2;floata=2.5,b=3.5;則表達(dá)式(*+y)%2+(int)a/(int)b的值為【】。參考答案:12.61假設(shè)有定義:int*=12,n=5;則計(jì)算表達(dá)式*%=(n%=2)后*的值為【】。參考答案:02.62假設(shè)有定義:inta,b;表達(dá)式a=2,b=5,a++,b++,a+b的值為【】。參考答案:92.63C語言中的標(biāo)識符只能由三種字符組成,它們是【1】、【2】和【3】。參考答案:【1】字符【2】數(shù)字【3】下劃線*2.64字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch='a'+'8'-'3'的值為【】。參考答案:f參考分析:表達(dá)式計(jì)算中取各個(gè)字符的ASCII碼值進(jìn)展計(jì)算,但ch的值是以計(jì)算結(jié)果為碼值的字符。2.65把以下多項(xiàng)式寫成只含七次乘法運(yùn)算,其余皆為加、減運(yùn)算的表達(dá)式為【】。參考答案:((((((5**+3)**-4)**+2)**+1)**-6)**+1)**+102.66假設(shè)double*=3.0,y=2.0;則表達(dá)式pow(y,fabs(*))的值為【】。參考答案:8.02.67假設(shè)有定義:inte=1,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.72.68表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的數(shù)據(jù)類型為()。參考答案:int型*2.69表達(dá)式pow(2.8,sqrt(double(*)))值的數(shù)據(jù)類型為【】。參考答案:double型*2.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è)位的別離可以先整除再取余,也可以先取余再整除。第三章最簡單的C程序設(shè)計(jì)3.1選擇題3.1putchar函數(shù)可以向終端輸出一個(gè)。A)整型變量表達(dá)式B)實(shí)型變量值C)字符串D)字符或字符型變量值參考答案:D參考分析:putchar函數(shù)的作用是輸出一個(gè)字符,可以是常量或變量。*3.2以下程序的輸出結(jié)果是。printf("\n*s1=%15s*","chinabeijing");printf("\n*s2=%-5s*","chi");A)*s1=chinabeijing□□□*B)*s1=chinabeijing□□□**s2=**chi**s2=chi□□*C)*s1=□□chinabeijing*D)*s1=□□□chinabeijing**s2=□□chi**s2=chi□□*參考答案:D參考分析:-:數(shù)據(jù)左齊,右補(bǔ)空格。3.3printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式【1】;如果字符串長度小于5,則輸出按方式【2】。A)從左起輸出該字符串,右補(bǔ)空格B)按原字符串長從左向右全部輸出C)右對齊輸出該字符串,左補(bǔ)空格D)輸出錯(cuò)誤信息參考答案:【1】B【2】C*3.4已有定義inta=-2;和輸出語句:printf("%8l*",a);以下正確的表達(dá)是。A)整型變量的輸出格式符只有%d一種B)%*是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)C)%*是格式符的一種,其變量的值按十六進(jìn)制輸出,但%8l*是錯(cuò)誤的D)%8l*不是錯(cuò)誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度參考答案:D參考分析:答案B根本上是正確的,但是%*不能正確的輸出長整型數(shù)據(jù)。*3.5以下C程序正確的運(yùn)行結(jié)果是。main(){longy=-43456;printf("y=%-8ld\n",y);printf("y=%-08ld\n",y);printf("y=%08ld\n",y);printf("y=%+8ld\n",y);}A)y=□□-43456B)y=-43456y=-□□43456y=-43456y=-0043456y=-0043456y=-43456y=+□-43456C)y=-43456D)y=□□-43456y=-43456y=-0043456y=-0043456y=00043456y=□□-43456y=+43456參考答案:C參考分析:0:數(shù)據(jù)左側(cè)必須充滿,給定數(shù)據(jù)缺乏時(shí),前面補(bǔ)0。+:數(shù)據(jù)前面顯示符號位。*3.6以下C程序正確運(yùn)行的結(jié)果是。main(){inty=2456;printf("y=%3o\n",y);printf("y=%8o\n",y);printf("y=%#8o\n",y);}A)y=□□□2456B)y=□□□4630y=□□□□□□□□2456y=□□□□□□□□4630y=########2456y=########4630C)y=2456D)y=4630y=□□□□2456y=□□□□4630y=□□□02456y=□□□04630參考答案:D參考分析:#要求輸出數(shù)據(jù)的類型特征符號。3.7以下C程序正確的運(yùn)行結(jié)果是。main(){longy=23456;printf("y=%3l*\n",y);printf("y=%8l*\n",y);printf("y=%#8l*\n",y);}A)y=5ba0B)y=□□□5ba0y=□□□□5ba0y=□□□□□□□□5ba0y=□□0*5ba0y=□□0*5ba0C)y=5ba0D)y=5ba0y=5ba0y=□□□□5ba0y=0*5ba0y=####5ba0參考答案:A分析:長整型數(shù)據(jù)輸出應(yīng)當(dāng)加修正字符l,如果不加l僅能輸出數(shù)據(jù)的低兩個(gè)字節(jié),高字節(jié)數(shù)據(jù)不能輸出。*3.8假設(shè)*,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是。A)scanf("%d%l*,%le",&*,&y,&z);B)scanf("%2d*%d%lf",&*,&y,&z);C)scanf("%*%*d%o",&*,&y);D)scanf("%*%o%6.2f",&*,&y,&z);參考答案:D參考分析:A)首先讀第一個(gè)十進(jìn)制數(shù)賦給變量*,讀第二個(gè)長十六進(jìn)制數(shù)賦給變量y(此時(shí)有自動(dòng)賦值轉(zhuǎn)換),再讀入格式規(guī)定的第二和第三個(gè)數(shù)據(jù)間的間隔符號逗號,最后讀入第三個(gè)double型數(shù)據(jù)賦給變量z。B)首先讀入2個(gè)寬度的十進(jìn)制數(shù)賦給變量*,再讀入格式規(guī)定的第一和第二數(shù)據(jù)間的間隔符號星號,然后讀入第二個(gè)十進(jìn)制整數(shù)賦給變量y,然后讀入第三個(gè)double型數(shù)據(jù)賦給變量z。C)讀入第一個(gè)十六進(jìn)制數(shù)賦給變量*,然后虛讀一個(gè)十進(jìn)制數(shù)不賦給任何變量,最后讀入一個(gè)八進(jìn)制數(shù)賦給變量y。D)%6.2f不符合格式規(guī)定,即不能規(guī)定讀入數(shù)據(jù)的小數(shù)點(diǎn)后的數(shù)字位數(shù)。*3.9已有如下定義和輸入語句,假設(shè)要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一列開場輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是。inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A)10A□20B<CR>B)10□A□20□B<CR>C)10□A20B<CR>D)10A20□B<CR>參考答案:A*3.10已有定義int*;floaty;且執(zhí)行scanf("%3d%f",&*,&y);語句時(shí),從第一列開場輸入數(shù)據(jù)12345□678<CR>,則*的值為⑴,y的值為⑵。⑴A)12345B)123C)45D)345⑵A)無定值B)45.0C)678.0D)123.0參考答案:BB參考分析:讀取數(shù)據(jù)格式中規(guī)定域?qū)挄r(shí),系統(tǒng)僅讀取指定寬度的數(shù)據(jù)。**3.11已有如下定義和輸入語句,假設(shè)要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一列開場輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是。inta1,a2;charc1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);A)1020AB<CR>B)10□20<CR>AB<CR>C)10□□20□□AB<CR>D)10□20AB<CR>參考答案:D參考分析:A)a1為1020,a2為隨機(jī)值,c1為A,c2為B。B)a1為10,a2為20,c1為<CR>,c2為A。C)a1為10,a2為20,c1、c2均為□。3.12已有程序段和輸入數(shù)據(jù)的形式,程序中輸入語句的正確形式應(yīng)當(dāng)為。main(){inta;floatf;printf("Inputnumber:");(輸入語句)printf("\nf=%f,a=%d\n",f,a);}Inputnumber:4.5□□2<CR>A)scanf("%d,%f",&a,&f);B)scanf("%f,%d",&f,&a);C)saf("%d%f",&a,&f);D)scanf("%f%d",&f,&a);參考答案:D3.13根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為。已有定義:floatf1,f2;數(shù)據(jù)的輸入方式:4.523.5A)scanf("%f,%f",&f1,&f2);B)scanf("%f%f",&f1,&f2);C)scanf("%3.2f%2.1f",&f1,&f2);D)scanf("%3.2f%2.1f",&f1,&f2);參考答案:B*3.14閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為:25,13,10<CR>,正確的輸出結(jié)果為。main(){int*,y,z;scanf("%d%d%d",&*,&y,&z);printf("*+y+z=%d\n",*+y+z);}A)*+y+z=48B)*+y+z=35C)*+z=35D)不確定的值參考答案:D參考分析:由于提供數(shù)據(jù)的格式與規(guī)定格式不一致,變量y,z不能獲取正確的數(shù)據(jù),均為隨機(jī)值,故三變量之和也是隨機(jī)數(shù)。3.15根據(jù)題目中已給出的數(shù)據(jù)輸入和輸出形式,程序中輸入輸出語句的正確內(nèi)容是。main(){int*;floaty;printf("enter*,y:");輸入語句輸出語句}輸入形式:enter*,y:23.4輸出形式:*+y=5.40A)scanf("%d,%f",&*,&y);B)scanf("%d%f",&*,&y);printf("\n*+y=%4.2f",*+y);printf("\n*+y=%4.2f",*+y);C)scanf("%d%f",&*,&y);D)scanf("%d%3.1f",&*,&y);printf("\n*+y=%6.1f",*+y);printf("\n*+y=%4.2f",*+y);參考答案:B3.16以下說法正確的選項(xiàng)是。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ù),如scanf("%4.2f",&f);D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf("%f",&f);參考答案:D*3.17根據(jù)下面程序及數(shù)據(jù)的輸入和輸出形式,程序中輸入語句的正確形式應(yīng)該為。main(){charch1,ch2,ch3;輸入語句printf("%c%c%c",ch1,ch2,ch3);}輸入形式:A□B□C輸出形式:A□BA)scanf("%c%c%c",&ch1,&ch2,&ch3);B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);C)scanf("%c%c%c",&ch1,&ch2,&ch3);D)scanf("%c%c",&ch1,&ch2,&ch3);參考答案:A參考分析:字符控制格式中有無空格對數(shù)據(jù)的讀取有影響,B)ch1讀取A,ch2和ch3為隨機(jī)字符。C)三個(gè)變量分別為A、B、C。D)ch3為隨機(jī)字符。3.18有輸入語句: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=1□b=3□c=2<CR>D)a=1,b=3,c=2<CR>參考答案:D3.19以下能正確地定義整型變量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.20ch是字符型變量,下面不正確的賦值語句是。A)ch='a+b';B)ch='\0';C)ch='7'+'9';D)ch=5+9參考答案:A參考分析:B)為轉(zhuǎn)義字符。C)為7和9兩個(gè)字符ASCII碼值之和的字符。D)為碼值為14的字符〔控制字符〕。3.21ch是字符型變量,下面正確的賦值語句是。A)ch='123';B)ch='\*ff';C)ch='\08';D)ch="\";參考答案:B3.22假設(shè)有以下定義,則正確的賦值語句是。inta,b;float*;A)a=1,b=2,B)b++;C)a=b=5D)b=int(*);參考答案:B參考分析:這里強(qiáng)調(diào)的是賦值語句,請注意賦值表達(dá)式與賦值語句的區(qū)別。3.23設(shè)*、y均為float型變量,則以下不合法的賦值語句為________。A)++*;B)y=(*%2)/10;C)**=y+8D)*=y=0參考答案:B*3.24設(shè)*、y和z均為int型變量,則執(zhí)行語句*=(y=(z=10)+5)-5;后,*、y和z的值是。A)*=10B)*=10C)*=10D)*=10y=15y=10y=10y=5z=10z=10z=15z=10參考答案:A3.25設(shè)有說明:doubley=0.5,z=1.5;int*=10;則能夠正確使用C語言庫函數(shù)的賦值語句是。A)z=e*p(y)+fabs(*);B)y=log10(y)+pow(y);C)z=sqrt(y-z);D)*=(int)(atan2((double)*,y)+e*p(y-0.2));參考答案:D參考分析:此題有些偏,其他選項(xiàng)錯(cuò)誤的原因?yàn)锳)fabs(*),*不是double型。B)pow(y)其格式原型為doublepow(doubley,double*)。C)y-z為負(fù)數(shù)。3.2填空題*3.26以下程序的輸出結(jié)果為〔〕。main(){shorti;i=-4;printf("\ni:dec=%d,oct=%o,he*=%*,unsigned=%u\n",i,i,i,i);}參考答案:i:dec=-4,oct=177774,he*=fffc,unsigned=65532*3.27以下程序的輸出結(jié)果為〔〕。main(){printf("*%f,%4.3f*\n",3.14,3.1415);}參考答案:*3.140000,3.142*分析:不能輸出的位會(huì)向前一位四舍五入輸出。3.28以下程序的輸出結(jié)果為〔〕。main(){charc='*';printf("c:dec=%d,oct=%o,he*=%*,ASCII=%c\n",c,c,c,c);}參考答案:c:dec=120,oct=170,he*=78,ASCII=**3.29已有定義intd=-2;執(zhí)行以下語句后的輸出結(jié)果是〔〕。printf("*d(1)=%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(1)=-2*d(2)=□-2*d(3)=-2□**d(4)=177776*d(5)=□177776*d(6)=177776□*3.30已有定義intd=-2;執(zhí)行以下語句后的輸出結(jié)果是〔〕。printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(4)=%**d(5)=%6**d(6)=%-6**\n",d,d,d);參考答案:*d(1)=-2*d(2)=□-2*d(3)=-2□**d(4)=fffe*d(5)=□□fffe*d(6)=fffe□□**3.31已有定義floatd1=3.5,d2=-3.5;執(zhí)行以下語句后的輸出結(jié)果是〔〕。printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",d1,d1,d1);printf("*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)=□3.500e+00**d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00□*參考分析:通過此題應(yīng)注意%f和%e在規(guī)定小數(shù)點(diǎn)后位數(shù)的區(qū)別。%e小數(shù)位后面位數(shù)含e標(biāo)志。3.32以下程序的輸出結(jié)果是〔〕。main(){int*=1,y=2;printf("*=%dy=%d*sum*=%d\n",*,y,*+y);printf("10Squaredis:%d\n",10*10);}參考答案:*=1y=2*sum*=310Squaredis:100*3.33以下程序的輸出結(jié)果是〔〕。#include<stdio.h>main(){int*=10;floatpi=3.1416;printf("(1)%d\n",*);printf("(2)%6d\n",*);printf("(3)%f\n",56.1);printf("(4)%14f\n",pi);printf("(5)%e\n",568.1);printf("(6)%14e\n",pi);printf("(7)%g\n",pi);printf("(8)%12g\n",pi);}參考答案:(1)10(2)□□□□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位〕。且不輸出無意義的0〔后面〕和小數(shù)點(diǎn)。3.34以下程序的輸出結(jié)果是〔〕。#include<stdio.h>main(){floata=123.456;doubleb=8765.4567;printf("(1)%f\n",a);printf("(2)%14.3f\n",a);printf("(3)%6.4f\n",a);printf("(4)%lf\n",b);printf("(5)%14.3lf\n",b);printf("(6)%8.4lf\n",b);printf("(7)%.4lf\n",b);}參考答案:(1)123.456000(2)□□□□□□□123.456(3)123.4560(4)8765.456700(5)□□□□□□8765.456(6)8765.4560(7)8765.4560*3.35以下printf語句中*的作用是〔〕,輸出結(jié)果是〔〕。#include<stdio.h>main(){inti=1;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);}參考答案:〔1〕可使同一或一樣輸出格式數(shù)據(jù)輸出寬度得以改變〔動(dòng)態(tài)域?qū)捒刂啤场?〕##1##□2##□□33.36以下printf語句中的"-"的作用是〔〕,該程序的輸出結(jié)果是〔〕。#include<stdio.h>main(){int*=12;doublea=3.1415926;printf("%6d##\n",*);printf("%-6d##\n",*);printf("%14.10lf##\n",a);printf("%-14.10lf##\n",a);}參考答案:〔1〕輸出數(shù)據(jù)左對齊〔2〕□□□□12##12□□□□##□□3.1415926000##3.1415926000□□##*3.37以下程序的輸出結(jié)果是〔〕。#include<stdio.h>main(){inta=325;double*=3.1415926;printf("a=%+06d*=%+e\n",a,*);}參考答案:a=+00325*=+3.14159e+00*3.38以下程序的輸出結(jié)果是〔〕。#include<stdio.h>main(){inta=252;printf("a=%oa=%#o\n",a,a);printf("a=%*a=%#*\n",a,a);}參考答案:a=374□□a=0374a=fc□□a=0*fc3.39以下程序的輸出結(jié)果是〔〕。int*=7281;printf("(1)*=%3d,*=%6d,*=%o,*=%6*,*=%6u\n",*,*,*,*,*);printf("(2)*=%-3d,*=%-6d,*=$%-06d,*=$%06d,*=%%06d\n",*,*,*,*,*);printf("(3)*=%+3d,*=%+6d,*=%+08d\n",*,*,*);printf("(4)*=%o,*=%#o\n",*,*);printf("(5)*=%*,*=%#*\n",*,*);參考答案:(1)*=7281,*=□□7281,*=□16161,*=□□1c71,*=□□7281(2)*=7281,*=7281□□,*=$7281□□,*=$007281,*=%06d(3)*=+7281,*=□+7281,*=+0007281(4)*=16161,*=016161(5)*=1c71,*=0*1c71**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è)*、y和z都是int型變量,m為long型變量,則在16位微型機(jī)上執(zhí)行下面賦值語句后,y值為〔〕,z值為〔〕,m值為〔〕。y=(*=32767,*-1);z=m=o*ffff;參考答案:32766、-1、655353.43假設(shè)*為int型變量,則執(zhí)行以下語句后*的值為〔〕。*=7;*+=*-=*+*;參考答案:-143.44假設(shè)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□□40<CR>,下面語句的執(zhí)行結(jié)果是〔〕。inta1,a2,a3;scanf("%d%*d%d%d",&a1,&a2,&a3);參考答案:讀入數(shù)據(jù)后不賦給相應(yīng)的變量把10給a1,把20不給任何變量,把30給a2,把40給a33.46有一輸入函數(shù)scanf("%d",k);則不能使float類型變量k得到正確數(shù)值的原因是〔〕和〔〕,正確的語句應(yīng)為〔〕。參考答案:格式字符不正確缺少&符號scanf("%f",&k);3.47已有定義inta;floatb,*;charc1,c2;為使a=3,b=6.5,*=12.6,c1='a',c2='A',正確的scanf函數(shù)調(diào)用語句是〔〕,輸入數(shù)據(jù)的方式為〔〕。參考答案:scanf("%d%f%f%c1%c2",&a,&b,&*,&c1,&c2);3□6.5□12.6aA參考分析:該題目不好,讀取數(shù)據(jù)語句和提供數(shù)據(jù)方式全部由做題者決定,這會(huì)出現(xiàn)各式各樣的答案。*3.48假設(shè)有以下定義和語句,為使變量c1得到字符'A',變量c2得到字符'B',正確的格式輸入形式是〔〕。charc1,c2;scanf("%4c%4c",&c1,&c2);參考答案:A□□□B□□□參考分析:讀取字符數(shù)據(jù)指定數(shù)據(jù)寬度時(shí),系統(tǒng)讀取第一個(gè)字符*3.49執(zhí)行以下程序時(shí),假設(shè)從第一列開場輸入數(shù)據(jù),為使變量a=3,b=7,*=8.5,y=71.82,c1='A',c2='a',正確的數(shù)據(jù)輸入形式是〔〕。inta,b;float*,y;charc1,c2;scanf("a=%db=%d",&a,&b);scanf("*=%fy=%f",&*,&y;scanf("c1=%cc2=%c",&c1,&c2);參考答案:a=3□b=7*=8.5□y=71.82c1=A□c2=a<CR>*3.50已有定義inti,j;float*;為將-10賦給i,12賦給j,410.34賦給*;則對應(yīng)以下scanf函數(shù)調(diào)用語句的數(shù)據(jù)輸入形式是〔〕。scanf("%o%*%e",&i,&j,&*);參考答案:-12□c□4.1034e2參考分析:第一個(gè)數(shù)也可給17776,第二個(gè)數(shù)也可給0*c,第三個(gè)數(shù)也可給410.34。第四章邏輯運(yùn)算和判斷選取控制4.1選擇題**4.1邏輯運(yùn)算符兩則運(yùn)算對象的數(shù)據(jù)類型。A)只能是0或1B)只能是0或非0正數(shù)C)只能是整型或字符型數(shù)據(jù)D)可以是任何類型的數(shù)據(jù)參考答案:D參考分析:c語言中沒有專用的邏輯量,任何數(shù)值類型的數(shù)據(jù)都可以作為邏輯數(shù)據(jù)使用,判斷時(shí)0為假,非零為真,計(jì)算時(shí)真置1,假置0。*4.2以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的選項(xiàng)是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)!=參考答案:B*4.4能正確表示"當(dāng)*的取值在[1,10]和[200,210]范圍內(nèi)為真〞的C語言表達(dá)式為。(*>=1)&&(*<=10)&&(*>=200)&&(*<=210)(*>=1)&&(*<=10)||(*>=200)&&(*<=210)(*>=1)||(*<=10)||(*>=200)||(*<=210)(*>=1)||(*<=10)&&(*>=200)||(*<=210)參考答案:B參考分析:C語言中實(shí)際上與運(yùn)算和或運(yùn)算優(yōu)先級相等,由于C采用短路算法,所以不會(huì)影響B(tài)的結(jié)果,即不需要改成((*>=1)&&(*<=10))||((*>=200)&&(*<=210))4.5表示圖中坐標(biāo)軸上陰影局部正確的表達(dá)式是。|||abcA)(*<=a)&&(*>=b)&&(*<=c)B)(*<=a)||(b<=*<=c)C)(*<=a)||(*>=b)&&(*<=c)D)(*<=a)&&(b<=*<=c)參考答案:C4.6判斷char型變量ch是否為大寫字母的正確表達(dá)式為。A)'A'<=ch<='Z'B)(ch>='A')&(ch<='Z')C)(ch>='A')&&(ch<='Z')D)('A'<=ch)AND('Z'>=ch)參考答案:C4.7有int*=3,y=4,z=5;則下面表達(dá)式中值為0的是。A)'*'&&'y'B)*<=yC)*||y+z&&y-zD)!((*<y)&&!z||1)參考答案:D4.8*=43,ch='A',y=0;則表達(dá)式(*>=y&&ch<'B'&&!y)的值是。A)0B)語法錯(cuò)誤C)1D)"假"參考答案:C4.9假設(shè)希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為"真〞,A的值為偶數(shù)時(shí),表達(dá)式的值為"假〞。則以下不能滿足要求的表達(dá)式是。A)A%2==1B)!(A%2==0)C)!(A%2)D)A%2參考答案:C*4.10設(shè)有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值為。A)1B)2C)3D)4參考答案:B參考分析:此題為標(biāo)準(zhǔn)的短路算法,由于第一個(gè)表達(dá)式m=a>b為真,故第二個(gè)表達(dá)式n=c>d被短路不再計(jì)算。因此,n值仍然保持原來的值2不變。4.11判斷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,1B)2,1C)6,0D)2,0參考答案:B參考分析:計(jì)算時(shí),非零為真。*4.13執(zhí)行以下語句后a的值為,b的值為。inta,b,c;a=b=c=1;++a||++b&&++c;A)0B)1C)2D)錯(cuò)誤參考答案:CB參考分析:c語言在計(jì)算表達(dá)式時(shí)采用短路算法。4.13-改執(zhí)行以下語句后,a,b,c的值分別為。inta,b,c;a=b=c=1;++a||++b&&++c;A)1,1,1B)2,1,1C)2,2,1D)2,2,2參考答案:B4.14執(zhí)行以下語句后a的值為,b的值為。inta=5,b=6,w=1,*=2,y=3,z=4;(a=w>*)&&(b=y>z);(1)A)5B)0C)2D)1(2)A)6B)0C)1D)4參考答案:BA參考分析:短路算法。*4.15以下不正確的if語句形式是。A)if(*>y&&*!=y);B)if(*==y)*+=y;C)if(*!=y)scanf("%d",&*)elsescanf("%d",&y);D)if(*<y){*++;y++;}參考答案:C4.16以下運(yùn)算符中優(yōu)先級最低的是,優(yōu)先級最高的是。A)":B)&&C)+D)!=參考答案:AC*4.17int*=10,y=20,z=30;以下語句執(zhí)行后*,y,z的值是。if(*>y)z=*;*=y;y=z;A)10,20,30B)20,30,30C)20,30,10D)20,30,20參考答案:C4.18以下if語句語法正確的選項(xiàng)是。A)if(*>0)printf("%f",*)elseprintf("%f",-*);B)if(*>0){*=*+y;printf("%f",*);}elseprintf("%f",-*);C)if(*>0){*=*+y;printf("%f",*);};elseprintf("%f",-*);D)if(*>0){*=*+y;printf("%f",*)}elseprintf("%f",-*);參考答案:B*4.19有程序:main(){inta=5,b=1,c=0;if(a=b+c)printf("***\n");elseprintf("$$$\n");}該程序。A)有語法錯(cuò)誤不能通過編譯B)可以通過編譯,但不能通過連接C)輸出:***D)輸出:$$$參考答案:C參考分析:注意條件表達(dá)式不是a==b+c。*4.20以下程序的運(yùn)行結(jié)果是。main(){intm=5;if(m++>5)printf("%d",--m);elseprintf("%d",m++);}A)4B)5C)6D)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=1,b=3,c=5,d=4時(shí),執(zhí)行完下面一段程序后*的值是。if(a<b)if(c<d)*=1;elseif(a<c)if(b<d)*=2;else*=3;else*=6;else*=3;A)1B2C)3D)6參考答案:B**4.22有函數(shù)關(guān)系如下,能正確表示該關(guān)系的程序段是。*y*<0*-1*=0**>0*+1A)y=*+1;B)y=*-1;if(*>=0)if(*!=0)if(*==0)y=*;if(*>0)y=*+1;elsey=*-1;elsey=*;C)if(*<=0)D)y=*;if(*<0)y=*-1;if(*<=0)elsey=*;if(*<0)y=*-1;elsey=*+1elsey=*+1;參考答案:C*4.23以下程序的輸出結(jié)果是。main(){inta=100,*=10,y=20,ok1=5,ok2=0;if(*<y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf("%d\n",a);}A)1B)0C)-1D)值不確定參考答案:C參考分析:無論前面的分支如何執(zhí)行,由于a=-1和上面的語句為順序關(guān)系,因此不會(huì)影響到a的值。4.24以下程序的輸出結(jié)果是。main(){int*=2,y=-1,z=2;if(*<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);}A)3B)2C)1D)0參考答案:B*4.25為了防止在嵌套的條件語句if-else中產(chǎn)生二義性,C語言規(guī)定:else子句總是與配對。A)縮排位置一樣的ifB)其之前最近的沒有else配對的ifC)其之后最近的ifD)同一行上的if參考答案:B參考分析:此題表述不嚴(yán)謹(jǐn)。*4.26以下不正確的語句為。A)if(*>y);B)if(*=y)&&(*!=0)*+=y;C)if(*)z=z/*;D)if(*>y){*++;y++;}參考答案:B4.27請閱讀以下程序:#include<stdio.h>main(){floata,b;scanf("%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;printf("%f\n",b);}假設(shè)運(yùn)行時(shí)輸入2.0<CR>,則上面程序的輸出結(jié)果是。A)0.000000B)0.500000C)1.000000D)0.2500

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論