2022年《C語(yǔ)言程序設(shè)計(jì)》練習(xí)題_第1頁(yè)
2022年《C語(yǔ)言程序設(shè)計(jì)》練習(xí)題_第2頁(yè)
2022年《C語(yǔ)言程序設(shè)計(jì)》練習(xí)題_第3頁(yè)
2022年《C語(yǔ)言程序設(shè)計(jì)》練習(xí)題_第4頁(yè)
2022年《C語(yǔ)言程序設(shè)計(jì)》練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

精品word名師歸納總結(jié)精品word名師歸納總結(jié)------------精選名師優(yōu)秀名師----------精選名師優(yōu)秀名師----------第1頁(yè),共48頁(yè)----------《C程序設(shè)計(jì)》練習(xí)題一、單項(xiàng)挑選題導(dǎo)讀:?jiǎn)雾?xiàng)挑選題要求從給出的四個(gè)備選答案中,選出一個(gè)最符合題意的答案;在完成習(xí)題的過(guò)程中,不但要選出正確的答案,而且要清晰不正確的選項(xiàng)錯(cuò)在何處,以加深對(duì)概念的懂得;對(duì)于把握不準(zhǔn)的問(wèn)題,應(yīng)當(dāng)通過(guò)上機(jī)試驗(yàn)來(lái)檢驗(yàn); (注:選用一般整型數(shù)據(jù)占用 2個(gè)字節(jié)的 c編譯器;如 TurboC2.0 、Win-TC、TurboC++3.0)【1.1】以下不正確的 C語(yǔ)言標(biāo)識(shí)符是 ;A〕int B〕a_1_2 C〕ab1exe D〕_x【1.2】以下是正確的 C語(yǔ)言標(biāo)識(shí)符是 ;A〕#define B〕_123 C〕%d D〕\n【1.3】以下四組字符串中都可以用作C語(yǔ)言程序標(biāo)識(shí)符的一組是 ;...A〕print B〕iam C〕Pxq D〕str_l..._3d one_half My->book Cpp...oodbs tart$it line# pow...aBc 3pai His.age while【1.4】下面各選項(xiàng)組中,均是 C語(yǔ)言關(guān)鍵字的組是 ;A〕auto,enum,include B〕switch,continueC〕signed,union,scanf D〕if,struct,type【1.5】以下不屬于 C語(yǔ)言關(guān)鍵字的是 ;A〕default B〕register C〕enum D〕external【1.6】C語(yǔ)言程序從 main〔〕函數(shù)開(kāi)頭執(zhí)行,所以這個(gè)函數(shù)要寫(xiě)在 ;A〕 程序文件的開(kāi)頭 B〕程序文件的最終C〕 它所調(diào)用的函數(shù)的前面 D〕 程序文件的任何位置【1.7】以下關(guān)于 C語(yǔ)言的表達(dá)錯(cuò)誤選項(xiàng) 大寫(xiě)字母和小寫(xiě)字母的意義相同不同類(lèi)型的變量可以在一個(gè)表達(dá)式中在賦值表達(dá)式中等號(hào) 〔=〕左邊的變量和右邊的值可以是不同類(lèi)型同一個(gè)運(yùn)算符號(hào)在不同的場(chǎng)合可以有不同的含義【1.8】在C語(yǔ)言中,錯(cuò)誤的 int類(lèi)型〔長(zhǎng)度為2字節(jié)〕的常數(shù)是 ;A〕32768 B〕0 C〕037 D〕0xAF【1.9】執(zhí)行語(yǔ)句 printf〔"%x",-1〕;〔int 類(lèi)型長(zhǎng)度為 2字節(jié)〕屏幕顯示 ;A〕-1 B〕1 C〕-ffff D〕ffff【1.10】已知 longi=32768; 執(zhí)行語(yǔ)句 printf〔"%d",i〕; 屏幕顯示 ;A〕-1 B〕-32768 C〕1 D〕32768【】已知 longi=65539;執(zhí)行語(yǔ)句 printf〔"%d",i〕; 屏幕顯示 ;65539 B3 C3 D〕 程序不能執(zhí)行【1.12】在C語(yǔ)言中,整數(shù) -8在內(nèi)存中的儲(chǔ)備形式是 ;精品word名師歸納總結(jié)------------A〕1111111111111000 B〕1000000000001000C〕0000000000001000 D〕1111111111110111【1.13】C語(yǔ)言中字符型 〔char〕數(shù)據(jù)在內(nèi)存中的儲(chǔ)備形式是 ;原碼 B〕 補(bǔ)碼 C〕 反碼 D〕ASCII 碼【1.14】將字符g賦給字符變量 正確的表達(dá)式是 ;A〕c=\147 B〕c="\147" C〕c='\147' D〕c='0147'【1.15】以下轉(zhuǎn)義字符中錯(cuò)誤的一個(gè)是 ;A〕'\000' B〕'\0014' C〕'\x111' D〕'\2'【1.16】將空格符賦給字符變量 正確的賦值語(yǔ)句是 ;A〕c='\0' B〕c=NULL C〕c=0 D〕c=32【1.17】已知:chara='\70'; 就變量a中;A〕 包含1個(gè)字符 B〕包含2個(gè)字符 C〕 包含3個(gè)字符 D〕 說(shuō)明非法【1.18】字符串"\"EOF\n=-\61\"" 的長(zhǎng)度是 ;A8 B9 C14 D〕 非法字符串【1.19】字符串""的長(zhǎng)度是 ;A0 B1 C2 D〕 非法字符串【1.20】已知:chara;intb;floatc;doubled;執(zhí)行語(yǔ)句"c=a+b+c+d;"后,變量 c的數(shù)據(jù)類(lèi)型是 ;A〕int B〕char C〕float D〕double【1.21】溫度華氏和攝氏的關(guān)系是 :C值表達(dá)式是 ;A〕C=5/9〔F-32〕 B〕C=5*〔F-32〕/9

5〔F9

32〕;已知:floatC,F; 由華氏求攝氏的正確的賦CC=5/9*〔F-32〕 D〕 三個(gè)表達(dá)式都正確【1.22】逗號(hào)表達(dá)式"〔a=3*5,a*4〕,a+15" 的值是 ;A15 B60 C30 D〕 不確定【1.23】假如inta=1,b=2,c=3,d=4; 就條件表達(dá)式"a<b.a:c<d.c:d"的值是 ;A〕1 B〕2 C〕3 D〕4【1.24】為求出s=10.的值,就變量 s的類(lèi)型應(yīng)當(dāng)為 ;Aint Bunsigned Clong D〕 以上三種類(lèi)型均可【1.25】已知inti=10; 表達(dá)式"20-0<=i<=9"的值是 ;A〕0 B〕1 C〕19 D〕20【1.26】已知intx=1,y; 執(zhí)行下述語(yǔ)句后變量 x的值是 ;y=++x>5&&++x<10;A〕1 B〕2 C〕3 D〕4【1.27】為判定字符變量 c的值不是數(shù)字也不是字母時(shí),應(yīng)采納下述表達(dá)式 ;A〕c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B〕.〔c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122〕C〕c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D〕.〔c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122〕【1.28】已知 inta[3][2]={3,2,1};就表達(dá)式"a[0][0]/a[0][1]/a[0][2]" 的值是 ;A0.166667 B1 C0 D〕 錯(cuò)誤的表達(dá)式【1.29】已知 intx=1,y=1,z=1;表達(dá)式"x+++y+++z++" 的值是 ;A3 B4 C5 D〕 表達(dá)式錯(cuò)誤精選名師優(yōu)秀名師----------

第2頁(yè),共48頁(yè)----------精品word名師歸納總結(jié)精品word名師歸納總結(jié)------------精選名師優(yōu)秀名師----------精選名師優(yōu)秀名師----------第8頁(yè),共48頁(yè)----------【1.30】已知intx=5,y=5,z=5; 執(zhí)行語(yǔ)句 x%=y+z;后,x的值是 ;A〕0 B〕1 C〕5 D〕6【1.31】使用語(yǔ)句 scanf〔"x=%f,y=%f",&x,&y〕;輸入變量 x、y的值(□代表空格),正確的輸入是 ;A〕1.25,2.4 B〕1.25□2.4 C〕x=1.25,y=2.4 D〕x=1.25□y=2.4【1.32】以下循環(huán)語(yǔ)句中有語(yǔ)法錯(cuò)誤選項(xiàng) ;A〕while〔x=y〕5; B〕while〔0〕;C〕do2;while〔x==b〕; D〕dox++while〔x==10〕;【1.33】已知intx=〔1,2,3,4〕; 變量x的值是 ;A〕1 B〕2 C〕3 D〕4【1.34】表達(dá)式sizeof〔double〕是;A〕 函數(shù)調(diào)用 B〕double型表達(dá)式 C〕int型表達(dá)式 D〕 非法表達(dá)式【1.35】已知:intx,y;doublez;就以下語(yǔ)句中錯(cuò)誤的函數(shù)調(diào)用是 ;A〕scanf〔"%d,%lx,%le",&x,&y,&z〕;B〕scanf〔"%2d*%d%lf",&x,&y,&z〕;C〕scanf〔"%x%*d%o",&x,&y〕;D〕scanf〔"%x%o%6.2f",&x,&y,&z〕;【1.36】與條件表達(dá)式 "〔n〕.〔c++〕:〔c--〕" 中的表達(dá)式( n)等價(jià)的表達(dá)式是 ;A〕〔n==0〕 B〕〔n==1〕 C〕〔n.=0〕 D〕〔n.=1〕【1.37】已知inti=1,j=0; 執(zhí)行下面語(yǔ)句后 j的值是 ;while〔i〕switch〔i〕{case1:i+=1;j++;break;case2:i+=2;j++;break;case3:i+=3;j++;break;default:i--;j++;break;}A1 B2 C3 D〕 死循環(huán)+3【1.38】求取滿(mǎn)意式 12+22+3正確的語(yǔ)句是 ;

2 2+ +n

≤1000的n,A〕for〔i=1,s=0;〔s=s+i*i〕<=1000;n=i++〕;B〕for〔i=1,s=0;〔s=s+i*i〕<=1000;n=++i〕;C〕for〔i=1,s=0;〔s=s+i*++i〕<=1000;n=i〕;D〕for〔i=1,s=0;〔s=s+i*i++〕<=1000;n=i〕;【1.39】下面的for語(yǔ)句;for〔x=0,y=10;〔y>0〕&&〔x<4〕;x++,y--〕;A〕是無(wú)限循環(huán)B〕循環(huán)次數(shù)不定C〕循環(huán)執(zhí)行4次D〕循環(huán)執(zhí)行3次【1.40】已知inti=1;執(zhí)行語(yǔ)句while〔i++<4〕;后,變量i的值為;A〕3B〕4C〕5D〕6【1.41】已知intx=12,y=3; 執(zhí)行下述程序后,變量x的值是 ;do{x/=y--;}while〔x>y〕;A1 B2 C3 D〕 程序運(yùn)行有錯(cuò)誤【1.42】已知chara[][20]={"Beijing","shanghai","tianjin","chongqing"};語(yǔ)句printf〔"%c",a[30]〕; 的輸出是 ;A〕<空格> B〕n C〕 不定 D〕數(shù)組定義有誤【1.43】如用數(shù)組名作為函數(shù)調(diào)用時(shí)的實(shí)參,就實(shí)際上傳遞給形參的是 ;A〕 數(shù)組首地址 B〕 數(shù)組的第一個(gè)元素值C〕 數(shù)組中全部元素的值 D〕 數(shù)組元素的個(gè)數(shù)【1.44】對(duì)二維數(shù)組的正確說(shuō)明是 ;A〕inta[][]={1,2,3,4,5,6}; B〕inta[2][]={1,2,3,4,5,6};C〕inta[][3]={1,2,3,4,5,6}; D〕inta[2,3]={1,2,3,4,5,6};【1.45】對(duì)字符數(shù)組 s賦值,不合法的一個(gè)是 ;chars[]="Beijing";chars[20]={"beijing"};chars[20];s="Beijing";D〕chars[20]={'B','e','i','j','i','n','g'};【1.46】對(duì)字符數(shù)組 str賦初值,str不能作為字符串使用的一個(gè)是 ;charstr[]="shanghai";charstr[]={"shanghai"};C〕charstr[9]={'s','h','a','n','g','h','a','i'};D〕charstr[8]={'s','h','a','n','g','h','a','i'};【1.47】假如一個(gè)變量在整個(gè)程序運(yùn)行期間都存在,但是僅在說(shuō)明它的函數(shù)內(nèi)是可見(jiàn)的,這個(gè)變量的儲(chǔ)備類(lèi)型應(yīng)當(dāng)被說(shuō)明為 ;A〕 靜態(tài)變量 B〕 動(dòng)態(tài)變量 C〕 外部變量 D〕 內(nèi)部變量【1.48】在一個(gè) C源程序文件中,如要定義一個(gè)只答應(yīng)在該源文件中全部函數(shù)使用的變量,就該變量需要使用的儲(chǔ)備類(lèi)別是 ;A〕extern B〕register C〕auto D〕static【1.49】在C語(yǔ)言中,函數(shù)的數(shù)據(jù)類(lèi)型是指 ;A〕 函數(shù)返回值的數(shù)據(jù)類(lèi)型 B〕 函數(shù)形參的數(shù)據(jù)類(lèi)型C〕 調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類(lèi)型 D〕 任意指定的數(shù)據(jù)類(lèi)型【1.50】已知如下定義的函數(shù):fun1〔a〕{printf〔"\n%d",a〕;}就該函數(shù)的數(shù)據(jù)類(lèi)型是 ;A〕 與參數(shù)a的類(lèi)型相同 B〕void型C〕 沒(méi)有返回值 D〕 無(wú)法確定【1.51】定義一個(gè)函數(shù)實(shí)現(xiàn)交換 x和y的值,并將結(jié)果正確返回;能夠?qū)崿F(xiàn)此功能的是 ;A〕swapa〔intx,inty〕 B〕swapb〔int*x,int*y〕{inttemp; {inttemp;temp=x;x=y;y=temp; temp=x;x=y;y=temp;} }C〕swapc〔int*x,int*y〕 D〕swapd〔int*x,int*y〕{inttemp; {int*temp;temp=*x;*x=*y;*y=temp; temp=x;x=y;y=temp;} }【1.52】求一個(gè)角的正弦函數(shù)值的平方;能夠?qū)崿F(xiàn)此功能的函數(shù)是 ;sqofsina〔float x〕{return〔sin〔x〕*sin〔x〕〕;}doublesqofsinb〔floatx〕{return〔sin〔〔double〕x〕*sin〔〔double〕x〕〕;}doublesqofsinc〔x〕{return〔〔〔sin〔x〕*sin〔x〕〕;}sqofsind〔float x〕{return〔double〔sin〔x〕*sin〔x〕〕〕;【1.53】一個(gè)函數(shù)內(nèi)有數(shù)據(jù)類(lèi)型說(shuō)明語(yǔ)句如下:doublex,y,z〔10〕;關(guān)于此語(yǔ)句的說(shuō)明,下面說(shuō)法正確選項(xiàng) ;z是一個(gè)數(shù)組,它有 10個(gè)元素;z是一個(gè)函數(shù),小括號(hào)內(nèi)的 10是它的實(shí)參的值;z是一個(gè)變量,小括號(hào)內(nèi)的 10是它的初值;語(yǔ)句中有錯(cuò)誤;【1.54】已知函數(shù)定義如下:floatfun1〔intx,inty〕{floatz;z=〔float〕x/y;return〔z〕;}主調(diào)函數(shù)中有 inta=1,b=0; 可以正確調(diào)用此函數(shù)的語(yǔ)句是 ;A〕printf〔"%f",fun1〔a,b〕〕; B〕printf〔"%f",fun1〔&a,&b〕〕;C〕printf〔"%f",fun1〔*a*b〕〕; D〕 調(diào)用時(shí)發(fā)生錯(cuò)誤【1.55】下面函數(shù)的功能是 ;voida〔chars1[],chars2[]〕{while〔*s2++=*s1++〕;}A〕 字符串比較 B〕 字符串復(fù)制 C〕 字符串連接 D〕字符串反向【1.56】在以下結(jié)論中,只有一個(gè)是錯(cuò)誤的,它是 ;C語(yǔ)言答應(yīng)函數(shù)的遞歸調(diào)用C語(yǔ)言中的 continue語(yǔ)句,可以通過(guò)轉(zhuǎn)變程序的結(jié)構(gòu)而省略有些遞歸程序是不能用非遞歸算法實(shí)現(xiàn)的C語(yǔ)言中不答應(yīng)在函數(shù)中再定義函數(shù)【1.57】說(shuō)明語(yǔ)句"int〔*p〕〔〕;" 的含義是 ;p是一個(gè)指向一維數(shù)組的指針變量p是指針變量,指向一個(gè)整型數(shù)據(jù)p是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)整型以上都不對(duì)【1.58】設(shè)有說(shuō)明 int〔*p〕[4]; 其中的標(biāo)識(shí)符 p是;4個(gè)指向整型變量的指針變量指向4個(gè)整型變量的函數(shù)指針一個(gè)指向具有 4個(gè)整型元素的一維數(shù)組的指針具有4個(gè)指向整型變量的指針元素的一維指針數(shù)組【1.59】已知:chars[10], *p=s,就在以下語(yǔ)句中,錯(cuò)誤的語(yǔ)句是 ;A〕p=s+5; B〕s=p+s; C〕s[2]=p[4]; D〕*p=s[0];【1.60】已知:chars[100];inti; 就引用數(shù)組元素的錯(cuò)誤的形式是 ;A〕s[i+10] B〕*〔s+i〕 C〕*〔i+s〕 D〕*〔〔s++〕+i〕【1.61】已知:chars[6], *ps=s;就正確的賦值語(yǔ)句是 ;A〕s="12345"; B〕*s="12345"; C〕ps="12345"; D〕*ps="12345";【1.62】已知:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int〔*ptr〕[3]=a,*p=a[0];就以下能夠正確表示數(shù)組元素 a[1][2]的表達(dá)式是 ;A〕*〔*〔a+1〕+2〕 B〕*〔*〔p+5〕〕 C〕〔*ptr+1〕+2 D〕*〔〔ptr+1〕[2]〕【1.63】已知:inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a; 就值為3的表達(dá)式是 ;A〕p+=2,*〔p++〕B〕p+=2,*++pC〕p+=2,〔*p〕++ D〕p+=2,++*p【1.64】已知:inta[]={1,2,3,4},y, *p=a; 就執(zhí)行語(yǔ)句 y=〔*++p〕--;之后,數(shù)組a各元素的值變?yōu)?;A〕0,1,3,4B〕1,1,3,4C〕1,2,2,4D〕1,2,3,3變量y的值是 ;A〕1 B〕2C〕3 D〕4【1.65】已知:inta[]={1,3,5,7},y,*p=a;為使變量y的值為3,以下語(yǔ)句正確選項(xiàng) ;A〕y=++*p++;B〕y=++〔*p++〕; C〕y=〔++*p〕++;D〕y=〔*++p〕++;【1.66】已知:intx[]={1,3,5,7,9,11},*ptr=x;就能夠正確引用數(shù)組元素的語(yǔ)句是;A〕x B〕*〔ptr--〕 C〕x[6] D〕*〔--ptr〕【1.67】函數(shù)的功能是交換變量 x和y中的值,且通過(guò)正確調(diào)用返回交換的結(jié)果;能正確執(zhí)行此功能的函數(shù)是 ;A〕voidfuna〔int*x, int*y〕 B〕void funb〔intx, inty〕{int*p; {intt;p=x;*x=*y;*y=*p; t=x;x=y;y=t;} }C〕void func〔int*x, int*y〕 D〕voidfunc〔int*x, int*y〕{*x=*y;*y=*x; {*x=*x+*y;*y=*x-*y;*x=*x-*y;} }【1.68】有定義如下:structsk{inta;floatb;}data,*p;假如 p=&data; 就對(duì)于結(jié)構(gòu)變量 data的成員a的正確引用是 ;A〕(*).data.a B〕〔*p〕.a C〕p->data.a D〕p.data.a【1.69】已知:structst{intn;structst*next;};staticstructsta[3]={1,&a[1],3,&a[2],5,&a[0]},*p;假如下述語(yǔ)句的顯示是 2,就對(duì)p的賦值是 ;printf〔"%d",++〔p->next->n〕〕;A〕p=&a[0]; B〕p=&a[1]; C〕p=&a[2]; D〕p=&a[3];【1.70】已知:structperson{charname[10];intage;}class[10]={"LiMing",29,"ZhangHong",21,"WangFang",22};下述表達(dá)式中,值為 72的一個(gè)是 ;class[0]->age+class[1]->age+class[2]->ageclass[1].name[5]person[1].name[5]clase->name[5]【1.71】已知:struct{inti;charc;floata;}test;就的值是 ;A〕4 B〕5 C〕6 D〕7【1.72】已知:union{inti;charc;floata;}test;就的值是 ;A〕4 B〕5 C〕6 D〕7【1.73】已知:unionu_type{inti;charch;floata;}temp;現(xiàn)在執(zhí)行"temp.i=266;printf〔"%d",temp.ch〕" 的結(jié)果是 ;A〕266 B〕256 C〕10 D〕1【1.74】如有以下程序段:精品word名師歸納總結(jié)------------structdent{intn;int*m;};inta=1,b=2,c=3;structdents[3]={{101,&a},{102,&b},{103,&c}};structdent*p=s;就以下表達(dá)式中值為 2的是 ;A〕〔p++〕->m B〕*〔p++〕->m C〕〔*p〕.m D〕*〔++p〕->m【1.75】如有以下說(shuō)明語(yǔ)句,就對(duì)結(jié)構(gòu)變量 pup中sex域的正確引用是 ;structpupil{charname[20];intsex;}pup,*p;p=&pup;A〕p.pup.sex B〕p->pup.sex C〕〔*p〕.pup.sex D〕〔*p〕.sex【1.76】以下對(duì)結(jié)構(gòu)變量 stul中成員age的非法引用是 ;structstudent{intage;intnum;}stu1,*p;p=&stu1;A〕stu1.age B〕student.age C〕p->age D〕〔*p〕.age【1.77】如有以下定義和語(yǔ)句:uniondata{inti;charc;floatf;}a;intn;就以下語(yǔ)句正確選項(xiàng) ;A〕a=5; B〕a={2,'a',1.2}; C〕printf〔"%d\n",a.i〕; D〕n=a;【1.78】已知 enumweek{sun,mon,tue,wed,thu,fri,sat}day; 就正確的賦值語(yǔ)句是 ;A〕sun=0; B〕san=day;C〕sun=mon; D〕day=sun;【1.79】已知 enumcolor{red, yellow=2,blue,white,black}ren; 執(zhí)行下述語(yǔ)句的輸出結(jié)果是 ;printf〔"%d",ren=white〕;A〕0 B〕1 C〕3 D〕4【1.80】下述關(guān)于枚舉類(lèi)型名的定義中,正確選項(xiàng) ;A〕enema={one,two,three}; B〕enema{one=9,two=-1,three};C〕enema={"one","two","three"}; D〕enema{"one","two","three"};【1.81】已知宏定義#defineN3#defineY〔n〕 〔〔N+1〕*n〕執(zhí)行語(yǔ)句 z=2*〔N+Y〔5+1〕〕; 后,變量 z的值是 ;A〕42 B〕48 C〕52 D〕 出錯(cuò)精選名師優(yōu)秀名師----------

第8頁(yè),共48頁(yè)----------精品word名師歸納總結(jié)精品word名師歸納總結(jié)------------精選名師優(yōu)秀名師----------精選名師優(yōu)秀名師----------第47頁(yè),共48頁(yè)----------【1.82】已知宏定義 #defineSQ〔x〕 x*x, 執(zhí)行語(yǔ)句 printf〔"%d", 10/SQ〔3〕〕; 后的輸出結(jié)果是 ;A〕1 B〕3 C〕9 D〕10【1.83】已知宏定義如下:#definePRprintf#defineNL"\n"#defineD"%d"#defineD1DNL如程序中的語(yǔ)句是 PR〔D1,a〕; 經(jīng)預(yù)處理后綻開(kāi)為 ;A〕printf〔%d\n,a〕; B〕printf〔"%d\n",a〕;Cprintf〔"%d""\n",a〕; D〕 原語(yǔ)句錯(cuò)誤【單項(xiàng)挑選題參考答案 】【1.1】答案:A注釋?zhuān)篿nt是C語(yǔ)言的關(guān)鍵字【1.2】答案:B【1.3】答案:A【1.4】答案:B注釋?zhuān)篿nclude是預(yù)處理命令 ;scanf是函數(shù)名;type不是C語(yǔ)言的關(guān)鍵字;【1.5】答案:D【1.6】答案:D【1.7】答案:A【1.8】答案:A注釋?zhuān)篿nt型表示整數(shù)的范疇是 -32768~32767;【1.9】答案:D注釋?zhuān)赫统A?1在運(yùn)算機(jī)中表示為補(bǔ)碼 1111

用十六進(jìn)制顯示這個(gè)數(shù)時(shí),最左邊的1不會(huì)被說(shuō)明為符號(hào)位,而是與右邊其它位共同轉(zhuǎn)換為十六進(jìn)制數(shù);【1.10】答案:B注釋?zhuān)洪L(zhǎng)整型數(shù) 32768在運(yùn)算機(jī)內(nèi)的表示是 1000000000000000,以一般整型進(jìn)行輸出時(shí),此數(shù)恰是-32768的補(bǔ)碼;【1.11】答案:C注釋?zhuān)洪L(zhǎng)整型數(shù) 65539在運(yùn)算機(jī)內(nèi)的表示是 00010000000000000011,以一般整型進(jìn)行輸出時(shí),僅將右側(cè) 16位二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù);【1.12】答案:A注釋?zhuān)篊語(yǔ)言中,int型的負(fù)數(shù)是采納補(bǔ)碼表示的;【1.13】答案:D【1.14】答案:C注釋?zhuān)鹤兞?c是字符型,可用字符常量為它賦值;字符常量必需用單引號(hào)括起來(lái),所以 B是錯(cuò)誤的;在單引號(hào)或雙引號(hào)內(nèi)的反斜線 '\'用于表示轉(zhuǎn)義字符, A選項(xiàng)在無(wú)引號(hào)時(shí)使用反斜線是錯(cuò)誤的;C選項(xiàng)單引號(hào)內(nèi)顯現(xiàn)反斜線表示它與后面的數(shù)字組成一個(gè)轉(zhuǎn)義字符 ;單引號(hào)只答應(yīng)括起一個(gè)字符,D選項(xiàng)在單引號(hào)內(nèi)顯現(xiàn) 4個(gè)字符,是錯(cuò)誤的;【1.15】答案:C【1.16】答案:D注釋?zhuān)嚎兆址涂崭穹遣煌膬蓚€(gè)字符, 空格符的ASCII 碼值是空字符的 ASCII 值是;【1.17】答案:A【1.18】答案:B【1.19】答案:A【1.20】答案:C【1.21】答案:B注釋?zhuān)簡(jiǎn)渭儚?C語(yǔ)言語(yǔ)法來(lái)說(shuō),選項(xiàng) B、C都是正確的,但是選項(xiàng) C中第一個(gè)運(yùn)算的兩個(gè)對(duì)象都是整型常數(shù),其結(jié)果也是整型數(shù) 0,最終的運(yùn)算結(jié)果也就是 0了;【1.22】答案:C【1.23】答案:A注釋?zhuān)簩l件表達(dá)式增加一個(gè)括號(hào),此式變?yōu)?a<b.a:〔c<d.c:d〕,它的運(yùn)算次序就清晰了;由于條件運(yùn)算符的結(jié)合性是從右向左,所以括號(hào)可以省略;它的運(yùn)算次序是先算出右邊的條件表達(dá)式"c<d.c:d"的值,然后求條件表達(dá)式 a<b.a:3的值;【1.24】答案:C【1.25】答案:B【1.26】答案:B注釋?zhuān)寒?dāng)通過(guò)一個(gè)運(yùn)算對(duì)象即可打算規(guī)律運(yùn)算 &&的結(jié)果時(shí),就對(duì)另一個(gè)運(yùn)算對(duì)象不做處理;【1.27】答案:D【1.28】答案:B注釋?zhuān)簲?shù)組元素在內(nèi)存中按行排列,此數(shù)組的前 3個(gè)元素的值分別是 、、1,表達(dá)式中雖然數(shù)組下標(biāo)的寫(xiě)法好像每行有 3個(gè)元素,和定義時(shí)的 3行2列不一樣,但是 C語(yǔ)言引用數(shù)組元素時(shí)是依據(jù)數(shù)組的首地址和給出的下標(biāo)進(jìn)行運(yùn)算打算元素的地址;題中表達(dá)式引用了數(shù)組前 3個(gè)元素;【1.29】答案:A【1.30】答案:C【1.31】答案:C【1.32】答案:D【1.33】答案:D【1.34】答案:C【1.35】答案:D【1.36】答案:C注釋?zhuān)涸贑語(yǔ)言中, 常常用一個(gè)變量來(lái)作為規(guī)律表達(dá)式,其含義就是:當(dāng)變量的值不為 0時(shí)關(guān)系成立;【1.37】答案:D注釋?zhuān)篵reak語(yǔ)句僅可跳出 switch語(yǔ)句,不會(huì)跳出 while循環(huán),這是一個(gè)死循環(huán);【1.38】答案:A【1.39】答案:C【1.40】答案:C【1.41】答案:D注釋?zhuān)寒?dāng)除數(shù) y為0時(shí),程序發(fā)生溢出錯(cuò)誤;【1.42】答案:C【1.43】答案:A【1.44】答案:C【1.45】答案:C注釋?zhuān)捍鸢?C的賦值號(hào)左側(cè)是數(shù)組 s的首地址,是一個(gè)常量,賦值號(hào)右側(cè)是一個(gè)字符串常量,不行能將一個(gè)字符串常量賦給一個(gè)地址常量;【1.46】答案:D注釋?zhuān)篋選項(xiàng)缺少字符串終止標(biāo)志;【1.47】答案:A【1.48】答案:D注釋?zhuān)哼@里第一要明確一些基本概念;在 C語(yǔ)言中,程序與文件是不同的概念,一個(gè)程序可以由一個(gè)文件組成,也可以由多個(gè)文件組成 ;一個(gè)文件中又可以包含多個(gè)函數(shù) ;函數(shù)是構(gòu)成 C程序的基本單位;變量的作用域因變量的儲(chǔ)備類(lèi)型不同而不同; auto和register類(lèi)型的變量的作用域是說(shuō)明變量的當(dāng)前函數(shù);外部變量的作用域是整個(gè)程序, 即外部變量的作用域可以跨過(guò)多個(gè)文件 ;內(nèi)部靜態(tài)變量(定義在一個(gè)函數(shù)內(nèi)部的 static型的變量)的作用域是當(dāng)前函數(shù),外部靜態(tài)變量(定義在函數(shù)外面的static型的變量)的作用域是當(dāng)前文件,即可以跨過(guò)同一文件中的不同函數(shù);【1.49】答案:A【1.50】答案:A注釋?zhuān)核蛥?shù) a一樣,數(shù)據(jù)類(lèi)型說(shuō)明被省略,依據(jù) C語(yǔ)言的規(guī)定,在這種情形下,表示它們是int型;【1.51】答案:C注釋函數(shù)swapa是值傳遞,函數(shù)的執(zhí)行結(jié)果不能返回 ;函數(shù)swapb中變量temp不是指針變量,所以它不能接受地址量,用指針變量 x為它賦值是不對(duì)的 ;函數(shù)swap中雖然指針變量交換了地址,即它們的指向的目標(biāo)變量進(jìn)行了交換,但是目標(biāo)變量并沒(méi)有行值的交換;【1.52】答案:B【1.53】答案:D【1.54】答案:D注釋?zhuān)褐髡{(diào)函數(shù)中 b=0,在執(zhí)行fun1函數(shù)里的除法時(shí)發(fā)生溢出錯(cuò)誤;【1.55】答案:B【1.56】答案:C【1.57】答案:C注釋?zhuān)阂粢馀c說(shuō)明語(yǔ)句 "int〔*p〕[];" 的區(qū)分;說(shuō)明語(yǔ)句 "int〔*p〕[];" 說(shuō)明的是一個(gè)指向數(shù)組的指針;【1.58】答案:C注釋?zhuān)侯}干中由于 *和p被小括號(hào)括起,所以 p應(yīng)被說(shuō)明為一個(gè)指針,而后的下標(biāo)運(yùn)算符 []說(shuō)明所指向的對(duì)象是一個(gè)有 4個(gè)int型元素的一維數(shù)組 ;假如是int〔*p〕〔〕, 就是指向函數(shù)的指針;對(duì)于int*p[4], 就依據(jù)運(yùn)算符的優(yōu)先級(jí), 先考慮p和[]運(yùn)算符的關(guān)系,所以它就是一個(gè)指針數(shù)組了;【1.59】答案:B注釋?zhuān)哼x項(xiàng) B有兩處錯(cuò)誤,一是數(shù)組名是常量,不能顯現(xiàn)的賦值好的左側(cè),二是指針變量只能和整數(shù)做加,不能和作為地址常量的數(shù)組名相加;【1.60】答案:D注釋?zhuān)簊作為數(shù)組名是地址常量,而 s++是C語(yǔ)言不答應(yīng)對(duì)常量進(jìn)行賦值;【1.61】答案:C【1.62】答案:A注釋?zhuān)簆是一個(gè)一級(jí)指針,選項(xiàng) B中對(duì)它進(jìn)行了兩次 *運(yùn)算是錯(cuò)誤的; ptr是一個(gè)指向一維數(shù)組的指針,它所指向的數(shù)組有三個(gè)元素,對(duì)于這樣一個(gè)指針,對(duì)它進(jìn)行兩次 **運(yùn)算才能取出地址單元中所存的數(shù)據(jù), C選項(xiàng)中*ptr表示數(shù)組第一行的首地址,該地址是一維數(shù)組的地址, +3表示加上三個(gè)它所指向的數(shù)據(jù)類(lèi)型的長(zhǎng)度, 所以〔*ptr+1〕+2 是數(shù)組中數(shù)值 4的地址;依據(jù)以上分析,選項(xiàng)D對(duì)ptr進(jìn)行了兩次地址操作 (*和]所以結(jié)果應(yīng)是數(shù)據(jù), 但是它加 1后指向數(shù)組其次行,依據(jù)后面[]中2它的地址增加兩個(gè)一維數(shù)組的長(zhǎng)度,就指向數(shù)組的最終一行,再做 *運(yùn)算就是數(shù)即a[3][0];【1.63】答案:A【1.64】答案:BB【1.65】答案:D【1.66】答案:B【1.67】答案:D注釋?zhuān)捍鸢窪是另一種交換兩個(gè)變量值的算法;【1.68】答案:B【1.69】答案:C注釋?zhuān)菏褂?C對(duì)p進(jìn)行賦值,就 p->next是a[0]的地址,引用其成員 n再做前增 1運(yùn)算,結(jié)果就是;【1.70】答案:B【1.71】答案:D【1.72】答案:A【1.73】答案:C注釋?zhuān)郝?lián)合變量temp的成員是占用同一儲(chǔ)備單元,它的長(zhǎng)度是4個(gè)字節(jié);266的二進(jìn)制表示是100001010,存放在儲(chǔ)備單元的低端兩個(gè)字節(jié),如下圖:高字節(jié)00000001低字節(jié)00001010引用temp.ch進(jìn)行輸出,只取最低的第一個(gè)字節(jié);【1.74】答案:D注釋?zhuān)河捎诮Y(jié)構(gòu)指針指向了結(jié)構(gòu)數(shù)組的0號(hào)元素,所以表達(dá)式〔p++〕->m的含義是先取出m(變a的地址,然后指針p1*〔p++〕->m的含義是先取出m的內(nèi)容(變量a的值然后指針p再加;表達(dá)式〔*p〕.m的含義是取出變量a的地址;表達(dá)式*〔++p〕->m的含義是先將指針p,然后再取m的內(nèi)容(變量b的值;【1.75】答案:D【1.76】答案:B【1.77】答案:C【1.78】答案:D【1.79】答案:D【1.80】答案:B【1.81】答案:B注釋?zhuān)赫Z(yǔ)句 z=2*〔N+Y〔5+1〕 引用了兩個(gè)宏定義; C語(yǔ)言是區(qū)分字母大小的,其次個(gè)宏定義中的 N直接用3替換,用 5+1替換就有z=2*〔3+〔3+1〕*5+1〕; 結(jié)果是48;留意對(duì)于帶參數(shù)的宏亦是直接的文本替換,此例中 n用5+1去替換,結(jié)果是( N+1)*5+1,而不是〔N+1〕*〔5+1〕;【1.82】答案:C注釋?zhuān)汉晏鎿Q后的結(jié)果是printf〔"%d",10/3*3〕;【1.83】答案:C二、閱讀程序題導(dǎo)讀:學(xué)會(huì)閱讀程序?qū)τ诔鯇W(xué)者來(lái)說(shuō)很重要,一方面可以鞏固所學(xué)的語(yǔ)法學(xué)問(wèn),另一方面通過(guò)閱讀別人寫(xiě)好的程序來(lái)打開(kāi)自己的思路,就所謂見(jiàn)多識(shí)廣;讀者通過(guò)閱讀懂得程序,從給出的四個(gè)備選參考答案中,挑選程序的正確輸出;假如挑選有誤,就要仔細(xì)分析緣由,是概念方面的錯(cuò)誤仍是對(duì)程序規(guī)律懂得不對(duì),從而加深對(duì)語(yǔ)法規(guī)章的懂得,提高程序設(shè)計(jì)才能;程序設(shè)計(jì)語(yǔ)言是開(kāi)發(fā)程序的一個(gè)工具,學(xué)習(xí)語(yǔ)言的目的是為了編寫(xiě)程序來(lái)解決實(shí)際問(wèn)題,所以特殊提倡通過(guò)實(shí)際上機(jī)來(lái)檢驗(yàn)備選答案,增強(qiáng)動(dòng)手才能;【2.1】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{floata;a=1/100000000;printf〔"%g",a〕;}A〕0.00000e+00 B〕0.0 C〕1.00000e-07 D〕0【2.2】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intx=10;{intx=20;printf〔"%d,", x〕;}printf〔"%d\n", x〕;}A〕10,20 B〕20,10 C〕10,10 D〕20,20【2.3】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{unsignedintn;inti=-521;n=i;printf〔"n=%u\n",n〕;}A〕n=-521 B〕n=521 C〕n=65015 D〕n=102170103【2.4】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intx=10, y=10; printf〔"%d%d\n", x――, ――y〕;}A〕1010 B〕99 C〕910 D〕109【2.5】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intn=1;printf〔"%d%d%d\n",n,n++,n--〕;}A〕111 B〕101 C〕110 D〕121【2.6】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta=1;charc='a';floatf=2.0;printf〔"%d\n",〔.〔a==0〕,f.=0&&c=='A'〕〕;}A〕0 B〕1【2.7】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{chars[12]="abook";printf〔"%.4s",s〕;}Aabook. Babook.<四個(gè)空格》Cabo D〕 格式描述錯(cuò)誤,輸出不確定【2.8】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta,b;scanf〔"%2d%3d",&a,&b〕;printf〔"a=%db=%d\n",a,b〕;}Aa=12b=34 Ba=123b=45 Ca=12b=345 D〕 語(yǔ)句有錯(cuò)誤【2.9】以下程序段的輸出結(jié)果是 ;inta=10,b=50,c=30;if〔a>b〕a=b;b=c;c=a;printf〔"a=%db=%dc=%d\n",a,b,c〕;A〕a=10b=50c=10 B〕a=10b=30c=10C〕a=50b=30c=10 D〕a=50b=30c=50【2.10】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta=0,b=1,c=0,d=20;if〔a〕d=d-10;elseif〔.b〕if〔.c〕d=15;elsed=25;printf〔"d=%d\n",d〕;}A〕d=10 B〕d=15 C〕d=20 D〕d=25【】下面程序的輸出結(jié)果為 ;#include<stdio.h>voidmain〔〕{inta=1,b=0;switch〔a〕{case1:switch〔b〕{case0:printf〔"**0**"〕; break;case1:printf〔"**1**"〕; break;}case2:printf〔"**2**"〕; break;}}A**0** B**0****2** C**0****1****2** D〕 有語(yǔ)法錯(cuò)誤【2.12】以下程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for〔k=0;s[k];k++〕switch〔s[k]〕{case'1':v1++;case'3':v3++;case'2':v2++;default:v4++;}printf〔"v1=%d, v2=%d, v3=%d, v4=%d\n",v1,v2,v3,v4〕;}A〕v1=4,v2=2,v3=1,v4=1 B〕v1=4,v2=9,v3=3,v4=1C〕v1=5,v2=8,v3=6,v4=1 D〕v1=4,v2=7,v3=5,v4=8【2.13】下面程序的輸出是 ;#include<stdio.h>voidmain〔〕{intx=1,y=0,a=0,b=0;switch〔x〕{case1:switch〔y〕{case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf〔"a=%d,b=%d\n",a,b〕;}A〕a=2,b=1 B〕a=1,b=1 C〕a=1,b=0 D〕a=2,b=2【2.14】下面程序的輸出是 ;#include<stdio.h>voidmain〔〕{intnum=0;while〔num<=2〕{num++;printf〔"%d",num〕;}}A〕1 B〕1234 C〕123 D〕12【2.15】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta=1,b=0;do{switch〔a〕{case1:b=1;break;case2:b=2;break;default:b=0;}b=a+b;}while〔.b〕;printf〔"a=%d,b=%d",a,b〕;}A〕1,2 B〕2,1 C〕1,1 D〕2,2【2.16】從鍵盤(pán)上輸入 "446755"時(shí),下面程序的輸出是 ;#include<stdio.h>voidmain〔〕{intc;while〔〔c=getchar〔〕〕.='\n'〕switch〔c-'2'〕{case0:case1:putchar〔c+4〕;case2:putchar〔c+4〕;break;case3:putchar〔c+3〕;default:putchar〔c+2〕;break;}printf〔"\n"〕;}A〕888988 B〕668966 C〕88898787 D〕66898787【2.17】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intk=0;charc='A';do{switch〔c++〕{case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;contiue;case'E':k=k+10;break;default:k=k/3;}k++;}while〔c<'C'〕;printf〔"k=%d\n",k〕;}A〕k=1 B〕k=2 C〕k=3 D〕k=4【2.18】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intx,i;for〔i=1;i<=100;i++〕{x=i;if〔++x%2==0〕if〔++x%3==0〕if〔++x%7==0〕printf〔"%d",x〕;}}A〕3981 B〕4284 C〕2668 D〕2870【2.19】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inti,k,a[10],p[3];k=5;for〔i=0;i<10;i++〕a[i]=i;for〔i=0;i<3;i++〕p[i]=a[i*〔i+1〕];for〔i=0;i<3;i++〕k+=p[i]*2;printf〔"%d\n",k〕;}A〕20 B〕21 C〕22 D〕23【2.20】假定從鍵盤(pán)上輸入 "3.6,2.4<回車(chē)>", 下面程序的輸出是 ;#include<math.h>#include<stdio.h>voidmain〔〕{floatx,y,z;scanf〔"%f,%f",&x,&y〕;z=x/y;while〔1〕{if〔fabs〔z〕>1.0〕{x=y;y=z;z=x/y;}elsebreak;}printf〔"%f\n",y〕;}A〕1.500000 B〕1.600000 C〕2.000000 D〕2.400000【2.21】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inti,j,x=0;for〔i=0;i<2;i++〕{x++;for〔j=0;j<-3;j++〕{if〔j%2〕continue;x++;}x++;}printf〔"x=%d\n",x〕;}A〕x=4 B〕x=8 C〕x=6 D〕x=12【2.22】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inti,j,k=10;for〔i=0;i<2;i++〕{k++;{intk=0;for〔j=0;j<=3;j++〕{if〔j%2〕continue;k++;}}k++;}printf〔"k=%d\n",k〕;}A〕k=4 B〕k=8 C〕k=14 D〕k=18【2.23】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intn[3][3], i, j;for〔i=0;i<3;i++〕for〔j=0;j<3;j++〕n[i][j]=i+j;for〔i=0;i<2;i++〕for〔j=0;j<2;j++〕n[i+1][j+1]+=n[i][j];printf〔"%d\n", n[i][j]〕;}A14 B0 C6 D〕 不確定【2.24】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};inti,j,n;n=9;i=n/5;j=n-i*5-1;printf〔"a[%d][%d]=%d\n", i,j,a[i][j]〕;}A6 B3 C2 D〕 不確定【2.25】下面程序的輸出結(jié)果是 ;#include<stdio.h>intm[3][3]={{1}, {2}, {3}};intn[3][3]={1, 2, 3};voidmain〔〕{printf〔"%d\n", m[1][0]+n[0][0]〕; /* ①*/printf〔"%d\n", m[0][1]+n[1][0]〕; /* ②*/}①A〕0 B〕1 C〕2 D〕3②A〕0 B〕1 C〕2 D〕3【2.26】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{chars1[50]={"somestring*"},s2[]={"test"};printf〔"%s\n", strcat〔s1,s2〕〕;}A〕somestring* B〕testC〕somestritest D〕somestring*test【2.27】下面程序的輸出結(jié)果是 ;#include<stdio.h>intf〔char*s〕{char*p=s;while〔*p.='\0'〕p++;return〔p-s〕;}voidmain〔〕{printf〔"%d\n",f〔"ABCDEF"〕〕;}A〕3 B〕6 C〕8 D〕0【2.28】下面程序的輸出結(jié)果是 ;#include<stdio.h>#include<string.h>voidmain〔〕{charstr[100]="Howdoyoudo";strcpy〔str+strlen〔str〕/2, "esshe"〕;printf〔"%s\n", str〕;}A〕Howdoyoudo B〕esshe C〕Howareyou D〕Howdoesshe【2.29】下面程序的輸出結(jié)果是 ;#include<stdio.h>intfunc〔inta,intb〕{intc;c=a+b;return〔c〕;}voidmain〔〕{intx=6,y=7,z=8,r;r=func〔〔x--,y++,x+y〕,z--〕;printf〔"%d\n",r〕;}A〕11 B〕20 C〕21 D〕31【2.30】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidfun〔int*s〕{staticintj=0;do{s[j]+=s[j+1];}while〔++j<2〕;}voidmain〔〕{intk,a[10]={1,2,3,4,5};for〔k=1;k<3;k++〕fun〔a〕;for〔k=0;k<5;k++〕printf〔"%d",a[k]〕;}A〕35756 B〕23445 C〕35745 D〕12345【2.31】下面程序的輸出結(jié)果是 ;#include<stdio.h>intk=1;voidmain〔〕{voidfun〔int〕;inti=4;fun〔i〕;printf〔"\n%d,%d",i,k〕; /* ①*/}void fun〔intm〕{m+=k;k+=m;{chark='B';printf〔"\n%d",k-'A'〕; /* ②*/}printf〔"\n%d,%d",m,k〕; /* ③*/}①A〕41 B56 C46 DABC參考答案都不對(duì)②A1 B-59 C-64 DABC參考答案都不對(duì)③A〕566 B166 C56 DABC參考答案都不對(duì)【2.32】下面程序的輸出結(jié)果是 ;intw=3;#include<stdio.h>voidmain〔〕{intfun〔int〕;intw=10;printf〔"%d\n",fun〔5〕*w〕;}intfun〔intk〕{if〔k==0〕return〔w〕;return〔fun〔k-1〕*k〕;}A〕360 B〕3600 C〕1080 D〕1200【2.33】下面程序的輸出結(jié)果是 ;#include<stdio.h>intfuna〔inta〕{intb=0;staticintc=3;a=c++,b++;return〔a〕;}voidmain〔〕{inta=2,i,k;for〔i=0;i<2;i++〕k=funa〔a++〕;printf〔"%d\n",k〕;}A〕3 B〕0 C〕5 D〕4【2.34】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidnum〔〕{externintx,y;inta=15,b=10;x=a-b;y=a+b;}intx,y;voidmain〔〕{inta=7,b=5;x=a-b;y=a+b;num〔〕;printf〔"%d,%d\n",x,y〕;}A〕122 B〕525 C〕112 D〕 輸出不確定【2.35】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{intf〔int〕;inta=2,i;for〔i=0;i<3;i++〕printf〔"%4d",f〔a〕〕;}intf〔inta〕{intb=0;staticintc=3;b++;c++;return〔a+b+c〕;}A〕777 B〕71013 C〕7911 D〕789【2.36】下面程序的輸出結(jié)果是 ;#include<stdio.h>inttry〔〕{staticintx=3;x++;return〔x〕;}voidmain〔〕{inti, x;for〔i=0; i<=2; i++〕x=try〔〕;printf〔"%d\n", x〕;}A〕3 B〕4 C〕5 D〕6【2.37】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{ voidf1〔〕, f2〔int〕;intx=1;f1〔〕;f2〔x〕;printf〔"%d\n", x〕;}voidf1〔〕{intx=3;printf〔"%d", x〕;}voidf2〔intx〕{printf〔"%d", ++x〕;}A〕111 B〕222 C〕333 D〕321【2.38】下面程序的輸出結(jié)果是 ;#include<stdio.h>#defineSUB〔X,Y〕〔X〕*Yvoidmain〔〕{inta=3,b=4;printf〔"%d\n",SUB〔a++,b++〕〕;}A〕12 B〕15 C〕16 D〕20【2.39】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta[]={1,2,3,4,5,6};int*p;p=a;printf〔"%d",*p〕;printf〔"%d",*〔++p〕〕;printf〔"%d",*++p〕;printf〔"%d",*〔p--〕〕;p+=3;printf〔"%d%d",*p,*〔a+3〕〕;}A〕123354 B〕123456 C〕122345 D〕123445【2.40】下面程序的輸出結(jié)果是 ;#defineFMT"%X\n"#include<stdio.h>voidmain〔〕{staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf〔FMT, a[2][2]〕; /* ①*/printf〔FMT, *〔*〔a+1〕+1〕〕; /* ②*/}①A〕9 B〕11 C〕A D〕B②A6 B7 C8 D〕 前面三個(gè)參考答案均是錯(cuò)誤的【2.41】下面程序的輸出結(jié)果是 ;#include<stdio.h>main〔〕{inta[]={1, 2, 3, 4, 5};intx, y, *p;p=&a[0];x=*〔p+2〕;y=*〔p+4〕;printf〔"%d,%d,%d\n", *p, x, y〕;}A〕1,3,5 B〕1,2,3 C〕1,2,4 D〕1,4,5【2.42】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidive〔intx[],n〕{intt,*p;p=x+n-1;while〔x<p〕{t=*x;*x++=*p;*p--=t;}}voidmain〔〕{inti,a[]={1,2,3,4,5,6,7,8,9,0};ive〔a,10〕;for〔i=0;i<10;i++〕printf〔"%d",a[i]〕;printf〔"\n"〕;}A〕1234567890 B〕0987654321C〕1357924680 D〕0864297531【2.43】下面程序的輸出結(jié)果是 ;#include<stdio.h>#include"string.h"fun〔char*w,intn〕{chart,*s1,*s2;s1=w;s2=w+n-1;while〔s1<s2〕{t=*s1++;*s1=*s2--;*s2=t;}}voidmain〔〕{staticchar*p="1234567";fun〔p,strlen〔p〕〕;printf〔"%s",p〕;}A〕7654321 B〕1717171 C〕7171717 D〕1711717【2.44】下面程序的輸出結(jié)果是 ;#include<stdio.h>char*p="abcdefghijklmnopq";voidmain〔〕{inti=0;while〔*p++.='e'〕;printf〔"%c\n", *p〕;}A〕c B〕d C〕e D〕f【2.45】下面程序的輸出結(jié)果是 ;#include<stdio.h>intf〔intx, inty〕{return〔y-x〕;}voidmain〔〕{inta=5, b=6, c;int 〔*g〕〔int, int〕=f;printf〔"%d\n", 〔*g〕〔a,b〕〕;}A1 B2 C3 D〕 前面三個(gè)參考答案均是錯(cuò)誤的【2.46】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{inta=1,*p,**pp;pp=&p;p=&a;a++;printf〔"%d,%d,%d\n", a,*p, **pp〕;}A〕211 B〕212 C〕222 D〕 程序有錯(cuò)誤【2.47】下面程序的輸出結(jié)果是 ;#include<stdio.h>voidmain〔〕{char*alpha[7]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX","YZ"};char**p;inti;p=alpha;for〔i=0;i<4;i++〕printf〔"%c",*〔p[i]〕〕;printf〔"\n"〕;}A〕AEIM B〕BFJN C〕ABCD D〕DHLP【2.48】下面程序的輸出結(jié)果是 ;#include<stdio.h>char*pp[2][3]={"abc", "defgh", "ijkl", "mnopqr", "stuvw", main〔〕{printf〔"%c\n",***〔pp+1〕〕; /* ①*/printf〔"%c\n",**pp[0]〕; /* ②*/printf〔"%c\n",〔*〔*〔pp+1〕+1〕〕[4]〕; /* ③*/printf〔"%c\n",*〔pp[1][2]+2〕〕; /* ④*/printf〔"%s\n",**〔pp+1〕〕; /* ⑤*/}①A〕a B〕d C〕i D〕m②A〕a B〕d C〕i D〕m③A〕h B〕l C〕q D〕w④A〕k B〕o C〕u D〕z⑤A〕ijkl B〕mnopqr C〕stuvw D〕xyz【2.49】下面程序的輸出結(jié)果是 ;#include<stdio.h>structstr1{charc[5];char*s;};voidmain〔〕{structstr1s1[2]={{"ABCD""EFGH"},{"IJK","LMN"}};structstr2{structstr1sr;intd;}s2={"OPQ","RST",32767};structstr1*p[2];p[0]=&s1[0];p[1]=&s1[1];printf〔"%s",++p[1]->s〕; /* ①*/printf〔"%c",s2.sr.c[2]〕; /* ②*/}①A〕LMN B〕MN C〕N D〕IJK②A〕O B〕P C〕Q D〕R【2.50】以下程序的輸出結(jié)果是 ;#include<stdio.h>structst{intx,*y;}*p;ints[]={10,20,30,40};structsta[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]};voidmain〔〕{p=a;printf〔"%d\n",++〔*〔++p〕->y〕〕;}A〕10 B〕11 C〕20 D〕21【2.1】參考答案:D

【閱讀程序題參考答案 】注釋?zhuān)撼绦蛑谐ㄟ\(yùn)算的兩個(gè)操作數(shù)均是整型,運(yùn)算結(jié)果也是整型;【2.2】參考答案:B注釋?zhuān)篊語(yǔ)言答應(yīng)在程序塊 〔分程序〕中說(shuō)明變量;【2.3】參考答案:C注釋?zhuān)鹤兞?i中的負(fù)號(hào)傳送給變量 n后,因n是無(wú)符號(hào)數(shù),已不作為負(fù)號(hào)處理;【2.4】參考答案:D注釋?zhuān)簩?duì)變量x的――操作是后綴形式, 變量x的減1操作要在執(zhí)行完 printf函數(shù)之后才進(jìn)行,所以變量 x的值在輸出的時(shí)候仍舊保持原值 10;【2.5】參考答案:B注釋?zhuān)篊語(yǔ)言在執(zhí)行 printf〔〕時(shí),對(duì)函數(shù)中的表達(dá)式表列的處理次序是從后向前,即先處理 n--,再處理n++,最終處理 每一個(gè)表達(dá)式作為一個(gè)處理單元,也就是說(shuō)在不同的表達(dá)式中自增自減運(yùn)算是單獨(dú)考慮的;【2.6】參考答案:A注釋?zhuān)憾禾?hào)表達(dá)式的結(jié)果是用逗號(hào)分開(kāi)的最終一個(gè)表達(dá)式的值, 此題由于 c=='A'的值是0,所以逗號(hào)表達(dá)式的值為 ;【2.7】參考答案:C注釋?zhuān)涸谳敵龈袷矫枋?"%m.ns"中,m是輸出總長(zhǎng)度, n是實(shí)際字符的個(gè)數(shù),這里 m沒(méi)有給出,就輸出總長(zhǎng)度就是實(shí)際輸出字符的個(gè)數(shù);【2.8】參考答案:C【2.9】參考答案:B【2.10】參考答案:C【2.11】參考答案:B【2.12】參考答案:D【2.13】參考答案:A【2.14】參考答案:C【2.15】參考答案:A【2.16】參考答案:C注釋?zhuān)涸?switch語(yǔ)句中,case本身僅起到語(yǔ)句標(biāo)號(hào)的作用,不會(huì)轉(zhuǎn)變語(yǔ)句的流程,執(zhí)行 break語(yǔ)句才能退出當(dāng)前的 switch語(yǔ)句;【2.17】參考答案:D注釋?zhuān)簊iwtch語(yǔ)句的表達(dá)式中,變量 c是后綴的增一運(yùn)算,第一次執(zhí)行 do-while循環(huán)時(shí),執(zhí)行case'A'后面的語(yǔ)句;【2.18】參考答案:D【2.19】參考答案:B【2.20】參考答案:B注釋?zhuān)篺abs〔〕是浮點(diǎn)數(shù)確定值函數(shù);【2.21】參考答案:A【2.22】參考答案:C注釋?zhuān)篊 語(yǔ)言答應(yīng)在程序塊(分程序)內(nèi)說(shuō)明變量,假如在程序塊內(nèi)說(shuō)明的變量和程序塊外的變量同名,在塊外說(shuō)明的變量在塊內(nèi)是不行見(jiàn)的;可將此題和 【】進(jìn)行比較,加深懂得;【2.23】參考答案:C【2.24】參考答案:B【2.25】參考答案: ①D②A【2.26】參考答案:D【2.27】參考答案:B注釋?zhuān)狠敵鼋Y(jié)果為字符串長(zhǎng)度;【2.28】參考答案:D注釋?zhuān)鹤址截惡瘮?shù) strcpy〔〕要求的兩個(gè)參數(shù)都是字符串首地址;此題中其次個(gè)參數(shù)是字符串常量,接受這個(gè)字符串的第一個(gè)參量不是直接給出字符數(shù)組名,而是進(jìn)行了地址運(yùn)算后的結(jié)果;由于str字符串的長(zhǎng)度是 13,除2取整后是 第一個(gè)參數(shù)給出的地址是字符數(shù)組 str的首地址加也就是原先字符串中其次個(gè)空格的位置, 把"es從該處放入,字符串str變?yōu)?Howdoes;【2.29】參考答案:C注釋?zhuān)簃ain函數(shù)調(diào)用 func函數(shù)時(shí),第一個(gè)實(shí)參使用的是逗號(hào)表達(dá)式的值,也就是 x+y的結(jié)果;由于對(duì)變量 x、、z進(jìn)行的是后綴運(yùn)算,所以函數(shù) func的參數(shù)值是 13和8;【2.30】參考答案:C【2.31】參考答案:①C②A③C【2.32】參考答案:B注釋?zhuān)汉瘮?shù) fun進(jìn)行了遞歸調(diào)用,實(shí)際進(jìn)行的運(yùn)算是 5×2×1×10;主函數(shù)內(nèi)說(shuō)明的局部變量 w屏蔽了外部變量 w,所以在主函數(shù)中外部變量 w是不行見(jiàn)的,在調(diào)用 printf函數(shù)時(shí)表達(dá)式"fun〔5〕*w"中w的值是;【2.33】參考答案:D注釋?zhuān)簃ain函數(shù)三次調(diào)用了函數(shù) funa,在funa函數(shù)中的靜態(tài)變量 c僅在第一次調(diào)用時(shí)進(jìn)行了初始化,再次調(diào)用時(shí)不再對(duì)靜態(tài)變量賦初值;【2.34】參考答案:B注釋?zhuān)簃ain函數(shù)和num函數(shù)中都說(shuō)明白變量 a和b,由于它們是內(nèi)部變量,所以它們分別在說(shuō)明它們的函數(shù)內(nèi)有效;外部變量 x和y在函數(shù)num之后被說(shuō)明,而在num函數(shù)中又要引用它們,所以在num函數(shù)中用關(guān)鍵字 "extern"說(shuō)明變量 x和y是一個(gè)外部變量,也就是通知運(yùn)算機(jī)這兩個(gè)變量在 fun函數(shù)以外被說(shuō)明,此處不是定義兩個(gè) int型變量;【2.35】參考答案:D注釋?zhuān)汉瘮?shù) f中的變量 c是靜態(tài)變量,僅在第一次調(diào)用函數(shù) f時(shí)它被初始化為 3,其次次調(diào)用函數(shù)f時(shí)c的值是4,第三次調(diào)用函數(shù) f時(shí)c的值是;【2.36】參考答案:D【2.37】參考答案:D注釋?zhuān)撼绦蛑杏腥齻€(gè) "x"分別在三個(gè)不同的函數(shù)中, 這三個(gè)"x"都是自動(dòng)變量, 所以三個(gè)"x"分別局部于三不同的函數(shù),在三個(gè)函數(shù)中對(duì) "x"的操作互不影響;【2.38】參考答案:A【2.39】參考答案:A注釋?zhuān)?〔++p〕和*++p都是指針變量值前加 1,第一次指向 a[1],其次次指向 a[2]; a+3是a[3]的地址;【2.40】參考答案:①D②A注釋?zhuān)杭偃?FMT【2.41】參考答案定義為"%x\n":A,就輸出的 16進(jìn)制數(shù)據(jù)用小寫(xiě)字母表示;注釋?zhuān)赫Z(yǔ)句"p=&a[0]" 表示將數(shù)組 a中元素a[0]的地址賦給指針變量 就p就是指向數(shù)組首元素a[0]的指針變量,"&a[0]" 是取數(shù)組首元素的地址;對(duì)于指向數(shù)組首址的指針, p+i(或a+i)是數(shù)組元素 a[i]的地址,*〔p+i〕〔或*〔a+i〕〕就是a[i]的值;【2.42】參考答案:B【2.43】參考答案:D【2.44】參考答案:D【2.45】參考答案:A注釋?zhuān)鹤兞?g是指向函數(shù)的指針, 〔*g〕〔a,b〕是調(diào)用指針 g所指向的函數(shù);【2.46】參考答案:C注釋?zhuān)簆是指針,pp是指向指針的指針;【2.47】參考答案:A注釋?zhuān)簩?duì)于指向數(shù)組的指針變量可以做下標(biāo)運(yùn)算, p[i]和alpha[i]都是指向字符串的首地址, *p[i]取出字符串的第一個(gè)字符;【2.48】參考答案:①D②

溫馨提示

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

評(píng)論

0/150

提交評(píng)論