版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ぐ便婪0豊目錄目錄 1單元練習(xí)題ーC語(yǔ)言基礎(chǔ)知識(shí)3ー、 判斷題3單項(xiàng)選擇題4讀程序選擇題7四、程序填空題8五、編程題 10單元練習(xí)題二C語(yǔ)言程序結(jié)構(gòu)10判斷題!0單項(xiàng)選擇題11讀程序選擇題!8程序填空題30編程題35單元練習(xí)題三數(shù)組36判斷題36單項(xiàng)選擇題37三、讀程序選擇題39四、程序填空題43五、編程題 49單元練習(xí)題四函數(shù)49判斷題49單項(xiàng)選擇題50三、讀程序選擇題52四、程序填空題60五、編程題 63單元練習(xí)題五預(yù)處理63判斷題63單項(xiàng)選擇題64三、讀程序選擇題64四、程序填空題65五、編程題 65單元練習(xí)題六指針66判斷題66單項(xiàng)選擇題66三、讀程序選擇題67四、程序填空題74五、編程題 77單元練習(xí)題七結(jié)構(gòu)體與共用體78判斷題78單項(xiàng)選擇題78三、讀程序選擇題79四、程序填空題83五、編程題 83單元練習(xí)題ハ文件84ー、 判斷題84二、 單項(xiàng)選擇題84三、讀程序選擇題84四、程序填空題 85五、編程題87第一章C語(yǔ)言基礎(chǔ)知識(shí)(C語(yǔ)言概述、算法、數(shù)據(jù)類(lèi)型運(yùn)算符表達(dá)式、位運(yùn)算)ー、 判斷題R1.在C語(yǔ)言中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。.在C語(yǔ)言可執(zhí)行程序的開(kāi)始執(zhí)行點(diǎn)是程序中第一個(gè)函數(shù)。.“5ch”是合法的變量名。R4.C語(yǔ)言程序書(shū)寫(xiě)格式自由,一行內(nèi)可以寫(xiě)幾個(gè)語(yǔ)句,ー個(gè)語(yǔ)句可以分寫(xiě)在多行上。5.當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf("%F',&f)N6.表達(dá)式i++9++i在任何場(chǎng)合功能完全相同。7.在賦值表達(dá)式中,賦值號(hào)左邊的變量和右邊的表達(dá)式之值的數(shù)據(jù)類(lèi)型可以不相同。R8.C語(yǔ)言程序中,語(yǔ)句以逗號(hào)結(jié)尾。().在C程序中,APH和aph代表不同的變量。( ).a-=7等價(jià)于a=a-7。( )Nil.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5歹()。如果字符串長(zhǎng)度大于5,則輸出按原字符長(zhǎng)從左向右全部輸出。().如果x>y為真或a<b為真,表達(dá)式(x>y)&&(a<b)就為真。().C語(yǔ)言程序的變量必須先定義再使用。().若a和b是同類(lèi)型變量,在執(zhí)行了賦值語(yǔ)句a=b;后b中的值將放入a中,b中的值將丟失。().程序的執(zhí)行總是從main函數(shù)開(kāi)始,在程序的最后一個(gè)函數(shù)中結(jié)束。( )N16.變量的三個(gè)屬性是指變量的名字、變量的值和變量在內(nèi)存中的地址。〇.運(yùn)算符優(yōu)先順序:賦值運(yùn)算符(邏輯運(yùn)算符〈關(guān)系運(yùn)算符V算術(shù)運(yùn)算符〇.對(duì)應(yīng)float類(lèi)型的變量,也可以用等號(hào)“==”進(jìn)行數(shù)值的判斷。〇.表達(dá)式:1&&3.14和1&3的值ー?樣大。().為了正確計(jì)算表達(dá)式既要考慮運(yùn)算符的優(yōu)先級(jí),也要考慮其結(jié)合性。〇21、任何C程序都是從main函數(shù)開(kāi)始和結(jié)束;.在C程序中,使用分號(hào)表示語(yǔ)句的結(jié)束。().C程序中的必須要有至少ー個(gè)main的函數(shù),可以有多個(gè)。().在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無(wú)誤的表示。().在C程序中,賦值運(yùn)算符的優(yōu)先級(jí)最低。().當(dāng)輸入數(shù)值數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型值;對(duì)于實(shí)型變量只能輸入實(shí)型值。().在C程序中,變量可以一邊定義ー邊使用。().C程序中的注釋部分可有可無(wú),可以省略。().字符型變量可以存放多個(gè)字符。().在對(duì)ー個(gè)C程序進(jìn)行編譯的過(guò)程中,可發(fā)現(xiàn)注釋中的拼寫(xiě)錯(cuò)誤。()5.在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無(wú)誤地表示。()1.ー個(gè)C程序的執(zhí)行是從本程序的main函數(shù)開(kāi)始,到main函數(shù)結(jié)束。〇.〇.運(yùn)算符優(yōu)先順序:賦值運(yùn)算符〈邏輯運(yùn)算符〈關(guān)系運(yùn)算符V算術(shù)運(yùn)算符〇二、 單項(xiàng)選擇題R1、以下標(biāo)識(shí)符中,不能作為合法的C用戶定義標(biāo)識(shí)符的是:()A.a3_b3 B.void C._123 D.abcR2、C語(yǔ)言規(guī)定:在ー個(gè)源程序中,main函數(shù)的位置()〇A.必須在最后 B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面。C.必須在最開(kāi)始。 D.可以任意R3、下列說(shuō)法中正確的是()。A.C程序書(shū)寫(xiě)時(shí),不區(qū)分大小寫(xiě)字母B.C程序書(shū)寫(xiě)時(shí),一行只能寫(xiě)ー個(gè)語(yǔ)句C.C程序書(shū)寫(xiě)時(shí),ー個(gè)語(yǔ)句可分成幾行書(shū)寫(xiě)D.C程序書(shū)寫(xiě)時(shí)每行必須有行號(hào)4、已知ch是字符型變量,下面不正確的賦值語(yǔ)句是()。A.ch=5+9 ;B.ch='a+bC.ch='\0';D.ch='7'+'6';5、若有定義:inta=7;floatx=2.5,y=4,7:則表達(dá)式x+a%3*(int)(x+y)%2/4的值是()。A. 2.750000B.0.00000C.3.500000D.2.500000.已知ch是字符型變量,下面正確的賦值語(yǔ)句是()。A.ch='123' ;B.ch='\08';C.ch='\xff';D.ch="\.以下標(biāo)識(shí)符中,不能作為合法的C用戶定義標(biāo)識(shí)符的是:?????。A)a3_b3 B)void C)_123 D)abc.C語(yǔ)言中,運(yùn)算對(duì)象必須是整型的運(yùn)算符是。A)% B)Z C)%和/ D)*.在C程序中,用表示邏輯值“真”。A)1 B)非0的數(shù) C)非1的數(shù)D)大于0的數(shù)N8.設(shè)intc=5和inta;a=2+(c+=c,c+8,++c),貝リa=A)15 B)14 C)13 D)16.C語(yǔ)言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符.A)必須為字母或下劃線。 B)必須為下劃線。C)必須為字母 D)可以是字母、數(shù)字和下劃線中的任一種字符。.若變量已正確定義并賦值,表達(dá)式不符合C語(yǔ)言語(yǔ)法。A)a*b/c;B)3.14%2 C)2,bD)a^/c.下列說(shuō)法中正確的是。A)C程序書(shū)寫(xiě)時(shí),不區(qū)分大表達(dá)式小寫(xiě)字母B)C程序書(shū)寫(xiě)時(shí),一行只能寫(xiě)ー個(gè)語(yǔ)句C)C程序書(shū)寫(xiě)時(shí),一個(gè)語(yǔ)句可分成幾行書(shū)寫(xiě)D)C程序書(shū)寫(xiě)時(shí)每行必須有行號(hào).為表示數(shù)學(xué)關(guān)系x》y》z,正確的C語(yǔ)言表達(dá)式是,〇
A)(x>=y)&&(y>=z)C)(x>=y>=z)A)(x>=y)&&(y>=z)C)(x>=y>=z)B)(x>=y)AND(y>=z)D)(x>=y)&(y>=z).不合法的ハ進(jìn)制數(shù)是TOC\o"1-5"\h\zA)0 B)028 C)077 D)0114、以下不能定義為用戶標(biāo)識(shí)符是AMain B_0C_intDsizeof.若x=5,y=4則y*=x+5;y的值為( )°A.40B.20CB.15 D.3016、組成C語(yǔ)言程序的基本單位是()〇A)過(guò)程 B)子程序C)函數(shù) D)主程序和子程序17,下列哪個(gè)標(biāo)識(shí)符是C語(yǔ)言合法的標(biāo)識(shí)符()〇A)a*b B)-xyzTOC\o"1-5"\h\zC)ba2 D)5iN18,若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)/4的值是()〇A)2.75 B)3.5C)2.5 D)019.設(shè)intm=l,n=2;貝リ++m==n的結(jié)果是()A、〇 B、1 C、2 D、3N20.若變量已定義并賦值,下列符合C語(yǔ)法的表達(dá)式是:( )Aヽa:=b+l B、a=b=c+2C、int18.5%3 D、a=a+7=c+bR(3)在C程序中,設(shè)?表達(dá)式中包含有int,long,unsigned和char類(lèi)型的變量和數(shù)據(jù),則表達(dá)式最后的運(yùn)算結(jié)果類(lèi)型是( )A.int B.char C.unsigned D.longR21.C語(yǔ)言中基本的數(shù)據(jù)類(lèi)型包括〇A)整型、實(shí)型、邏輯型 B)整型、實(shí)型、字符型C)整型、字符型、邏輯型D)整型、實(shí)型、邏輯型、字符型N22.若定義x和y為double類(lèi)型,則表達(dá)式:x=2,y=x+5/2的值是A)4 B)4.5 C)4.0 D)3.023,在以下運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是A)?: B)++ C)&& D)+=.C語(yǔ)言中基本的數(shù)據(jù)類(lèi)型不包括〇A)整型 B)字符串型C)字符型 D)實(shí)型.若定義intx=7,y=5,z;則表達(dá)式:z=x+5/2*y的值是A)7 B)7.5 C)17 D)19.5.以下說(shuō)法中正確的是()A、C語(yǔ)言程序總是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行B、在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main。函數(shù)中定義C,C語(yǔ)言程序總是從main()函數(shù)開(kāi)始執(zhí)行D、C語(yǔ)言程序中的main。函數(shù)必須放在程序的開(kāi)始部分TOC\o"1-5"\h\z(1)設(shè)inta=2,b;則執(zhí)行b=a&&l;語(yǔ)句后,b的結(jié)果是( )A.O B.l C.2 D.3N(2)逗號(hào)表達(dá)式(a=3*5,a*4),a+15的值是( )A.15 B.60 C.30 D.75.若已經(jīng)定義了一個(gè)字符型變量為a,下面哪個(gè)表達(dá)式的含義跟其余表達(dá)式不同:A)a!=0 B)a!='\〇’ C)a D)!a.在以下運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是A), B)[] C)&& D)+=.在C語(yǔ)言中,邏輯值“真”用表示。A)true B)大于〇的數(shù) C)非〇的整數(shù)D)非〇的數(shù).表達(dá)式 是滿足:當(dāng)c的值為1、3、5三個(gè)數(shù)中任意?個(gè)時(shí)值為"真",否則值為“假”的表達(dá)式A)(c=l)ll(c=3)ll(c=5) B)(c!=l)&&(c!=3)&&(c!=5)C)(c==l)&&(c=3)&&(c=5)D)(c==l)ll(c=3)ll(c==5)l.C語(yǔ)言中,int類(lèi)型數(shù)據(jù)占2個(gè)字節(jié),則long類(lèi)型數(shù)據(jù)占()A、1個(gè)字節(jié)B,2個(gè)字節(jié)C、3個(gè)字節(jié)D、4個(gè)字節(jié).下列字符串是合法的標(biāo)識(shí)符的是().A,_HJ B、9_studentC、longD、LINE1.下列說(shuō)法中正確的是()。A、C程序書(shū)寫(xiě)時(shí),不區(qū)分大小寫(xiě)字母B、C程序書(shū)寫(xiě)時(shí),一行只能寫(xiě)ー個(gè)語(yǔ)句C、C程序書(shū)寫(xiě)時(shí),ー個(gè)語(yǔ)句可分成幾行書(shū)寫(xiě)D、C程序書(shū)寫(xiě)時(shí)每行必須有行號(hào).在C語(yǔ)言中,要求參加運(yùn)算的數(shù)必須是整數(shù)的運(yùn)算符是()。A、/ B、! C、% D、==.C語(yǔ)言中,邏輯“真“等價(jià)于()。A、大于零的數(shù) B、大于零的整數(shù)C、非零的數(shù) D、非零的整數(shù)6.假設(shè)在程序中a,b,c均被定義為整型,并且已賦大于1的值,則下列能正確表示代數(shù)式1/abc的表達(dá)式是()。A、l/a*b*c B、l/(a*b*c)C、l/a/b/(float)cD,1.0/a/b/c.下列合法的字符常量是( )。A、V)84' B、Ax43'C、'ab'D,"\0".在C語(yǔ)言提供的合法的關(guān)鍵字是()A、switch B,cherC、Case D、sturct.若已定義x和y為double類(lèi)型,則表達(dá)式:x=l,y=x+3/2的值是A、2 B、1C、2.0D、2.5三、 程序填空題!以下程序不用第三個(gè)變量實(shí)現(xiàn)兩個(gè)數(shù)對(duì)調(diào)的操作。#includ"stdio.h"main()(inta,b;scanf("%d,%d",&a,&b);a=<a+b>;(三個(gè)字符)b=<a-b>;(三個(gè)字符)a=a-b;printf("%d,%d",a,b);)2、選擇程序的運(yùn)行結(jié)果。main(){intx=l,y=2,z,a,b,c,d;z=++xll++y;printf("x=%d\n",x);printf("y=%d\n”,y);/?輸出結(jié)果<y=2>(三個(gè)字符)*/a=-l; b=-2; c=++a&&b++;printf("b=%d\n",b);/?輸出結(jié)果vb=-2>(三個(gè)字符)*/ }3以下程序的結(jié)果為main()(unsignedinta=3,b=10;printf("%d\n",a?2lb?1);/?輸岀結(jié)果<14>*/printf("%d\n",a?2&b?l);/?輸出結(jié)果<0>*/)4若x=3,y=z=4,則下列表達(dá)式的值是。(z>=y>=x)?1:〇/?值為<0>*/z>=y&&y>=x/?值為<1>*/5已知floatx=4.3,inty;執(zhí)行語(yǔ)句y=(int)x后,x為<int>型(填寫(xiě)小寫(xiě)英文字母),且y=<4>(填寫(xiě)阿拉伯?dāng)?shù)字);6表達(dá)式‘c'&&'d,的值為<1>(填寫(xiě)阿拉伯?dāng)?shù)字),'c'&&'d'11!(3+4)的值為<1>(填寫(xiě)阿拉伯?dāng)?shù)字)。7若x為int類(lèi)型,則與邏輯表達(dá)式“x”等價(jià)的表達(dá)式是<x!=0>,與邏輯表達(dá)式“!x"等價(jià)的表達(dá)式是<x==0>。8表示“整數(shù)x的值大于5”時(shí)邏輯值為“真”的表達(dá)式是<x>5>,邏輯值為“假”的表達(dá)式是vx<=5>9已知字母A的ASCII碼為十進(jìn)制數(shù)65,且設(shè)ch為字符型變量,則表達(dá)式ch='A'-'4'+'9'的值為v'F'>(?個(gè)字符常量);若定義:charc='\72';則變量c中包含的字符個(gè)數(shù)為<1>(數(shù)字)。10、C語(yǔ)言所提供的基本數(shù)據(jù)類(lèi)型的整型類(lèi)型包括:〈短整型〉、整型、〈長(zhǎng)整型〉。(按每種類(lèi)型所占字節(jié)數(shù),從小到大排列)第二章C語(yǔ)言程序結(jié)構(gòu)(順序程序設(shè)計(jì)、選擇結(jié)構(gòu)程序設(shè)計(jì)、循環(huán)控制)ー、 判斷題.do-while語(yǔ)句中的條件為非0時(shí),就結(jié)束該循環(huán)。.在switch-case語(yǔ)句中,不是每個(gè)case后都要使用break語(yǔ)句。().Break語(yǔ)句只能用于循環(huán)結(jié)構(gòu)中。()48.未給變量賦初值,只是運(yùn)行結(jié)果不正確,不會(huì)有其他不良影響。()5、switch語(yǔ)句中,可以不使用break語(yǔ)句;6、for語(yǔ)句中,三個(gè)表達(dá)式都可以省略;(7)在for循環(huán)中使用break語(yǔ)句的目的是使流程跳出循環(huán)體,終止當(dāng)前循環(huán).continue語(yǔ)句只能用于循環(huán)語(yǔ)句中。().while語(yǔ)句中的條件為0時(shí),就結(jié)束該循環(huán)。.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同。()在C語(yǔ)言中,邏輯值“真”用表示。11)1 12)大于0的數(shù) 13)非。的整數(shù)14)非〇的數(shù)在循環(huán)語(yǔ)句的循環(huán)體中,continue語(yǔ)句的作用是()〇15)立即終止整個(gè)循環(huán) 16)繼續(xù)執(zhí)行continue語(yǔ)句之后的循環(huán)體17)結(jié)束本次循環(huán) 18)結(jié)束本次循環(huán)并跳出循環(huán)語(yǔ)句while(!e);中,條件!e等價(jià)于( )19.e==0 20.e!=0 21.e!=l 22.e==1設(shè)intc=5和inta;a=2+(c+=c++,c+8,++c),貝リa=23)15 24)14 25)13 26)16若要表示if(a不等于0)這ー關(guān)系式,則能正確表示這一關(guān)系的表達(dá)式為if〇27)a<>0 28)!a 29)a=0 30)a二、 單項(xiàng)選擇題N1、以下不是死循環(huán)的語(yǔ)句是for(;;x+i);while(1){x++;}for(i=10;;i--)sum+=i;for(;(c=getchar())!='\n'2.for(i=10;;i--)sum+=i;for(;(c=getchar())!='\n'2.設(shè)有程序段intk=10;while(k=0)k=k-1;以下描述正確的是()〇A,循環(huán)體語(yǔ)句ー次也不執(zhí)行。C.while循環(huán)語(yǔ)句執(zhí)行十次。N3.對(duì)下述程序,正確的判斷是(main(){inta,b;scanf("%d,%d”,&a,&b);if(a>b)a=b;b=a;elsea++;b++;printf("%d,%d”,a,b);}A,有語(yǔ)法錯(cuò)誤不能通過(guò)編譯C.若輸入5,4則輸出4,5R4,以下程序main()(inti=010,j=l0,k=0x10;printf("%d,%d,%d\n”,i,j,k);}有語(yǔ)法錯(cuò)誤不能通過(guò)編譯輸出結(jié)果是()A.8,10,16 B.8,10,10R5.若變量已正確說(shuō)明為int類(lèi)型,printf(u%cn,c);B,循環(huán)是無(wú)限循環(huán)。D.循環(huán)體語(yǔ)句執(zhí)行ー次。B,若輸入4,5則輸出5,6D.若輸入5,4則輸出5,5C.10,10,10 D.10,10,16要給a,b,c輸入數(shù)據(jù),以下語(yǔ)句正確的是A)read(a,b,c); B)scanf("%d%d%d”,a,b,c);C)scanf("%D%D%D",&a,%b,%c);D)scanf(“%d%d%d",&a,&b,&c);R6.已知在ASCII字符集中,數(shù)字〇的序號(hào)為48,下面程序的輸出結(jié)果為main()(charx,y;x='0';y二’9';pimtf(<<%d,%d\n",x,y);)A)因輸出格式不合法,輸出錯(cuò)誤信息B)48,5700,9 D)48,58.語(yǔ)句for(k=0;k<5;++k)(if(k==3)continue;printfC*%d",k);}的輸出結(jié)果為。A)012 B)0124C)01234D)沒(méi)有輸出結(jié)果.為表示關(guān)系x>=y>=z,應(yīng)使用C語(yǔ)言表達(dá)式 〇A)(y<=x)&&(y>=z) B)(x>=y)AND(y>=z)C)(x>=y>=z) D)(x>=y)&(y>=z)6.若變量已正確定義,語(yǔ)句“if(a>b)k=O;elsek=l;"和等價(jià)。A、k=(a>b)?l:O; B、k=a>b;C、k=a<=b; D、a<=b?0:1;.以下程序的輸出結(jié)果是voidmain()(inta=2,b=5;printf(“a=%%%d,b二%%%d",a,b);)A)a=%2,b=%5 B)a=2,b=5C)a二%%d,b二%%d D)a二%d,b二%dN10.以下程序的輸出結(jié)果是voidmain(){intx=10,y=10;printf("%d%d\n”,x—,??y);}A)1010 B)99 C)910D)10911.若要表示if(a不等于〇)這?關(guān)系式,則能正確表示這ー關(guān)系的表達(dá)式為iff )A)a<>0 B)!a C)a=0 D)aR12對(duì)于循環(huán)語(yǔ)句while(1);下面( )是正確的A、死循環(huán) B、循環(huán)一次C、不進(jìn)入循環(huán)體 D、編譯有錯(cuò).下面程序的輸出是(假設(shè)int數(shù)據(jù)是2個(gè)字節(jié))voidmain(){inta二32768;printf("a二%d\n”,a);}A)a=32768 B)a=32767C)a=-32768D)a=-l.表達(dá)式是滿足:當(dāng)c的值為1、3、5三個(gè)數(shù)中任意ー個(gè)時(shí)值為“真”,否則值為“假”的表達(dá)式A)(c二l)ll(c二3)ll(c二5) B)(c!=l)&&(c!=3)&&(c!=5)〇(c=l)&&(c==3)&&(c=5) D)(c==l)ll(c=3)ll(c==5)N15.以下程序段的輸出結(jié)果是intx=3;do{printf("%3d”,x-二2;}while(!(—x));A)1B)30A)1C)1-2 D)死循環(huán)16、數(shù)字字符〇的ASCII值為48,若有以下程序main()(chara=r,b='2';printf(M%c;',b++);printf(n%d\nM,b-a);)程序運(yùn)行后的輸岀結(jié)果是A3,2 B50,2 C2,2D2,5017、有以下程序main()(inta,b,d=25;a=d/10&(-l);b=a&&(-1);printf("%d,%d\n,,,a,b);}程序運(yùn)行后的輸出結(jié)果是A6,1 B2,1 C6,0 D2,0.若定義floata:現(xiàn)要從鍵盤(pán)輸入a的數(shù)據(jù),其整數(shù)位為3位,小數(shù)位為2位,則選用( )oA)scanf(u%f',&a); B)scanf(H%5.2r,a);C)scanf(n%6.2r,&a); D)scanf(*'%r,a);.若定義inti;則以下循環(huán)語(yǔ)句的循環(huán)執(zhí)行次數(shù)是()〇for(i=2;i==0;)printf("%d”,i-);A)無(wú)限次B)〇次C)1次 D)2次20.下面程序段ーx=3;do(y=x~;if(!y){printf(,'x',);continue;}printf("#");}while(l<=x<=2);A)將輸出## B)將輸出##*C)是死循環(huán) D)含有不合法的控制表達(dá)式21似下程序中,while循環(huán)的循環(huán)次數(shù)是()〇#include"stdio.h"main(){inti=0;
while(i<10){if(i<l)continue;if(i==5)break;i++;)iA、1 B、10 C、6N22.有以下程序:#include"stdio.h"inta=3;main()(ints=0;(inta=5;s+=a++;!s+=a++;printf(,'%d\n,,,s);1程序運(yùn)行后的輸出結(jié)果是()。A、8 B、10 C、723(4)下面程序段的運(yùn)行結(jié)果是(main(){inta=ll,b=10,c=0;a/=b+(b&&c);printf("%d\n"a);}D、死循環(huán),不能確定次數(shù)D、11)A.O B.lC.1.1D.1124(5)兩次運(yùn)行下面程序,如果從鍵盤(pán)上分別輸入6和4,main( ){intx;scanf(,f%d",&x);if(x++>5)printf(H%d",x);elseprintfC^%d\n",x-l);}則程序的輸出結(jié)果是()A.7和5 B.6和3(6)語(yǔ)句while(!e);中,條件!e等價(jià)于(C.7和4)D.6和4A.e=0 B.e!=0R25下面程序的輸出是 main()(intk=l1;printf(Mk=%d,k=%o,k=%x\nM,k,k,k);C.e!=lD.e==0
)A)k=ll,k=12,k=13)A)k=ll,k=12,k=13C)k=ll,k=O13,k=oXbB)k=ll,k=13,k=13D)k=ll,k=13,k=b26(7)下面程序的運(yùn)行結(jié)果是( )main(){inti=l,sum=O;lop:sum=sum+i;i=i+2;if(i<6)gotolop;printfCsum二%d\n”,sum);}D.sum=25A.sum=4 B.sum=9 C.sum=16D.sum=2527.以下程序的輸出結(jié)果是voidmain(){inta=2,b=5;printf(“a=%%%d,b二%%%d",a,b);}A)a二%2,b二%5 B)a=2,b=5C)a二%%d,b二%%d D)a二%d,b二%d28執(zhí)行下面的程序后,a的值為main(){inta,b;for(a=l,b=1;a<100;a++)(if(b>二20)break;if(b%3==l){b+二3;continue;}b-=5;})A)7 B)8C)9 D)102930.下面的程序會(huì)()main(){intx二3,y二〇,z二〇;if(x=y+z)printf("****”);ekeprin旗"####");)A、有語(yǔ)法錯(cuò)誤不能通過(guò)編譯 B、輸出****C、可以通過(guò)編譯,但不能通過(guò)連接,因而不能運(yùn)行 D、輸出####4.以下程序的輸出結(jié)果是()main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf(a%d%d",x??,y);}A.10192B、9876C>10990D>1010911.下面程序的輸出是main()(intk=l1;printf(Mk=%d,k=%o,k=%x\n,\k,k,k);)A)k=ll,k=12,k=13 B)k=ll,k=13,k=13C)k=ll,k=013,k=oXb D)k=ll,k=13,k=b2.兩次運(yùn)行下面的程序,如果從鍵盤(pán)上分別輸入6和4,則輸出結(jié)果是ーmain()(intx;scanf(H%d",&xM);if(x++>5)printf("%d”,x)elseprintf("%d\n”,x-);)A)7和5 B)6和3C)7和4 D)6和43.讀程序#include”stdio.hmain(){inta;floatb,c;scanf("%2d%3f%4f',&a,&b,&c);printf(M\na=%d,b=%f,c=%f\nM,a,b,c);)若運(yùn)行時(shí)從鍵盤(pán)上輸入9876543210vCR>(vCR>表示回車(chē)),則上面程序的輸出結(jié)果是A)a=98,b=765,c=4321B)a=l,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,¢=4321.0.下面程序的輸出是ーmain(){intx=3,y=6,a=0;while(x++!=(y-=l))(a+=l;if(y<x)break;}printf(Mx=%d,y=%d,a=%d\nM,x,y,a);}A)x=4,y=4,a=1 B)x=5,y=5,a=lC)x=5,y=4,a=3 D)x=5,y=4,a=l.7*8.8.三、 程序填空題Fl,以下程序可判斷輸入的ー個(gè)整數(shù)是否能被3或7整除,若能整除,輸出“yes”,否則輸出“no”。請(qǐng)?zhí)羁铡?includeustdio.h"voidmain()(intk;printf("Enteraintnumber:M);scanf("%d”,v&k>);if(<k%3==0llk%7==0?printf("yes\n");elseprintf("no\n”);)N2.下面程序的功能是計(jì)算1-3+5-7+ -99+101的值。main()(inti,t=l,s=O;for(i=l;i<=101;i+=2)(t=<t*i>;s=s+t;t=<-t>;)printf("%d\n",s);}F3.下面程序的功能是從鍵盤(pán)上輸入若干學(xué)生的學(xué)習(xí)成績(jī),統(tǒng)計(jì)并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入為負(fù)數(shù)時(shí)結(jié)束輸入。main(){floatx,amax,amin;scanfC'%f',&x);amax=x;amin=x;while(<x>=0>){if(x>amax)amax=x;if(<x<amin>)amin=x;scanf(H%f;&x);}printf(,'\namax=%f\namin=%f\nM,amax,amin);}F4.下面程序的功能是計(jì)算100至1000之間有多少個(gè)數(shù)其各位數(shù)字之和是5。#includeustdio.hnvoidmain()(inti,s,k,count=0;fbr(i=100;i<=1000;i++)(s=0;k=i;while(k){s=s+k%10;k=<k/10>;)if(<s=5>)count-H-;)printf(<<%d>>,count);)F5下列程序功能是求數(shù)組中主對(duì)角線元素之和,請(qǐng)補(bǔ)充完成main(){inta[3][3],ij,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf(H%dH,<&a[i][j]>);for(i=0;i<3;i++)for(j=0;j<3;j++)if(<i==j>)s+=alij|j];printf(Ms=%d\nn,s);R6.下面程序的功能是:輸入一個(gè)字符,如果它是ー個(gè)大寫(xiě)字母,則把它變成小寫(xiě)字母,如果它是一個(gè)小寫(xiě)字母,則把它變成大寫(xiě)字母,其它字符不變,請(qǐng)將程序補(bǔ)充完整:main()(charch;scanf("%c”,&ch);if(ch>=,A*&&ch<=, ) ch=ch+32;elseif(<ch>=*a'&&ch<=*z'>)<ch=ch-32>;printf(u%cn,ch);}R7.請(qǐng)將用戶輸入的x,y,z三個(gè)整數(shù)按照從小到大的順序排列main()(intx,y,z,t;scanf("%d,%d,%d",&x,&y,&z);if(x>y){t=y;y=x;x=t;}if(<x>z>){t=z;z=x;x=t;}if(<y>z>){t=y;y=z;z=t;}printf("smalltobig:%d,%d,%d\n”,x,y,z);}F8.以下程序從讀入的整數(shù)數(shù)據(jù)中,統(tǒng)計(jì)大于零的整數(shù)個(gè)數(shù)和小于零的整數(shù)個(gè)數(shù)。用輸入零來(lái)結(jié)束輸入,程序中用i統(tǒng)計(jì)大于零的個(gè)數(shù),用變量j統(tǒng)計(jì)小于零的整數(shù)。請(qǐng)?zhí)羁?。voidmain(){intn,i,j;i=0;j=0;printf("EnterINTnumbers,with0toend\n");scanf("%d”,&n);while(<n!=0>){if(n>0)i=i++;if(n<O)j=j++;vscanf("%d",&n)〉;}printf("i二%4dj=%4d\n",i,j);}F9.以下程序用“輾轉(zhuǎn)相除法”來(lái)求出兩個(gè)正整數(shù)的最大公約數(shù)。請(qǐng)?zhí)羁铡H魞蓚€(gè)數(shù)分別放在m和n中,求最大公約數(shù)的算法如下:(1)將兩數(shù)中最大的那個(gè)放在m中,小的放在n中。(2)求出m被n除后的余數(shù)r。(3)若余數(shù)為0則執(zhí)行步驟(7);否則執(zhí)行步驟(4)。(4)把除數(shù)作為新的被除數(shù):把余數(shù)作為新的除數(shù)。(5)求出新的余數(shù)r。(6)重復(fù)步驟(3)到(5)。(7)輸出n,n即為最大公約數(shù)。voidmain(){intr,m,n;printf(aEnterm,n:>,);scanf(u%d%dw,<&m,&n>);printf("m=%dn二%d\n",m,n);if(m<n){r=m;m=n;n=r;}r=<m/n>;while(r!=0){m=n,n=r,r=m;}printf(aH.C.F=%d\n,n);}RIO.以下程序可判斷輸入的一個(gè)字符是否為小寫(xiě)字母,如果是,則轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母并輸出:否則,就原樣輸出。請(qǐng)?zhí)羁铡?include"sldio.h99voidmain(){chark;printf("Enteracharacterhere:");scanf(a%cff,<&k>);if(vk>='a'&&k<=z>)printf("%c\n”,k-32);elseprintf("%c\n",k);1.程序打印如下形式的圖形*******main(){for(inti=l;i<=4;i++){for(intj=l;① ;j++)printf(②);printf(③ );2.充下列程序,找出100—200之間的全部素?cái)?shù)#include"math.h"main(){intm,k,i,n=0;for(m=101;m<=200;m=m+2)(k=sqrt(m);for(i=2;(6);i++)if( (7) )break;if((8)){printf("%d",m);n=n+l;}if(n%10==0)printf(u\nw);)printf(“\n”);)第三章數(shù)組ー、 判斷題.字符串“gid”大于字符串“good”。.C語(yǔ)言中有字符串變量,與字符數(shù)組等價(jià)。()R3.同一?數(shù)組可以存儲(chǔ)不同類(lèi)型的值。()N4.若有:inta⑵[3];則a+!和a[l]的值以及類(lèi)型都一樣。()R5.字符A0I的值就是0。().C語(yǔ)言中是用字符串變量來(lái)存放字符串。().表達(dá)式sizeof("abc")的值是4〇〇N8.同數(shù)組的名字ー樣,函數(shù)的名字也是一種指針。()9、C語(yǔ)言中在定義數(shù)組時(shí),ー個(gè)數(shù)組的數(shù)組元素的數(shù)據(jù)類(lèi)型可以不相同;10、chara[10];a[10]=9;上述語(yǔ)句編譯不會(huì)出錯(cuò);R11.數(shù)組元素的下標(biāo)是從1開(kāi)始標(biāo)號(hào)的。()N12.若a為ー維數(shù)組名,貝リ?(a+i)與a[i]等價(jià)。().循環(huán)語(yǔ)句中的continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)。().字符串"That"小于字符串"the"。().字符個(gè)數(shù)多的字符串比字符個(gè)數(shù)少的字符串大。()有以下語(yǔ)句:intb;char 則正確的輸入語(yǔ)句是)scanf("%d%s",&b,&c); 17)scanf("%d%s",&b,c);18)scanf("%d%s",b,c); 19)scanf("%d%s",b,&c);已有定義:charaU="xyz",bU={'x','y','z'};,以下敘述中正確的是20數(shù)組a和b的長(zhǎng)度相同 21a數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度22a數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度
設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的存貯空間為個(gè)字節(jié).234 245 25 6 267若定義intx[10];則TurboC編譯系統(tǒng)為該數(shù)組分配個(gè)字節(jié)存儲(chǔ)單元。27.10 28.1129.20 30.21二、 單項(xiàng)選擇題R1,對(duì)兩個(gè)數(shù)組a和b進(jìn)行如下初始化chara[J="ABCDEF";charb[]={'A'B'C'D'E'F');則以下敘述正確的是 ()A)a與b數(shù)組完全相同 B)a與b長(zhǎng)度相同C)a和b中都存放字符串 D)a數(shù)組比b數(shù)組長(zhǎng)度長(zhǎng)R2.若有說(shuō)明:inta[3][4];則對(duì)a數(shù)組元素的正確弓|用是()A.a⑵[4] B.a[l,3]R3.合法的數(shù)組定義是()C.a[l+l][0] D.a(2)(l)A、intaロゴstring"; B、inta[5]={0,l,2,3,4,5};C、vhsts="string";D、charaロ={0,1,2,3,45);4.以下正確的聲明是()〇A.inta[l][4]={1,2,3,4,5};C.longb[2][3]={{l},{1,2},{1,2,3});5下列語(yǔ)句的執(zhí)行結(jié)果是()。staticcharstr[10]={wchinaw};printf("%d”,strlen(str));A.10 B.6R6、以下能正確定義?維數(shù)組的選項(xiàng)是B.floatx[3][>{{1}42},{3});D.doubley[][3]={0};C.5 D.OAinta[5]={0,l,2,3,4,5); Bchara[]={0,l,2,3,4,5);Cchara={'A',,B','C'); Dinta[5]="0123";7.下面程序段的運(yùn)行結(jié)果是()。chara[7]=wabcdef^;charb[4]="ABC”;strcpy(a,b);printf(u%cM,a[5J);A.空格 BAOC.e D.f8定義如下變量和數(shù)組,則輸出結(jié)果是(inti;intx[3][3]={1,2,3A5,6,7,8,9);for(i=0;i<3;i++) printf(,'%d,',x[i][2-i]);A.l59 B.l47 C.357)°D.3699.下列對(duì)ー維數(shù)組a的正確說(shuō)明語(yǔ)句為( )。A)inta(10);B)intn=10,a[n];intn;scanf(”%d”,&n);ima[n];#defineSIZE10inta[SIZE];.下列二維數(shù)組的說(shuō)明中,不正確的是()A、floata[3*8][7-3] B、floata[][3]={O,l,8};C、#defineL3 floata[L][3]D、inta[6],[7].執(zhí)行以下程序段后,s的值是inta[]={5,3,7,2,l,5,4,10);ints=0,k;for(k=0;k<8;k+=2)s+=*(a+k);A、!7B、27C、13D、無(wú)定值12,若有定義:charc[10];從鍵盤(pán)輸入“LiFang”,則正確的函數(shù)引用是( )A.scanf(“%c”,&c[10]); B.gets(c);C.scanf(i(%s9f,&c); D.gets(c[10]);N13.以下程序的輸出結(jié)果是〇main(){charsi[20]="China”,s2[20]=“for”網(wǎng)10];if(strcmp(sl,s2))printf(M%s\nn,strcat(s2,sl));elseprintf(“%d\n”,strlen(sl));)A)ChinaforB)5C)forChinaD)314選擇下面程序運(yùn)行的結(jié)果:#include“stdio.h”intm[3][3]={{l},{2}43});intn[3][3]={1,2,3);main()(printf("%d\n”,m[l][0]+n[〇][〇]);printf(n%d\nn,m[0][l]+n[l][0]);}第1條printf語(yǔ)句行輸出的結(jié)果為( )A、0 B、1C、3D、2TOC\o"1-5"\h\zR15(9)以下對(duì)ー維數(shù)組a中的所有元素進(jìn)行正確初始化的是( )A.inta[10]==(0,0,0,0); B.inta[10]={ };C.inta[]={0}; D.inta[10]={10*2);16(10)(8)若定義intx[10];則TurboC編譯系統(tǒng)為該數(shù)組分配( )個(gè)字節(jié)存儲(chǔ)單元。A.10 B.ll C.20 D.2117(9)以下對(duì)ー維數(shù)組a中的所有元素進(jìn)行正確初始化的是( )A.inta[10]=(0,0,0,0); B.inta[10]={ };C.int如:{〇}; D.inta[10J={10*2);N18.有如下程序main(){inta[3][3]={{l,2},{3,4},{5,6}},i,j,s=0;for(i=l;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}該程序的輸出結(jié)果是A、!8B、19C、20D、21N19.執(zhí)行下列程序時(shí)輸入123V空格>456〈空格>789〈回車(chē)〉,輸出結(jié)果是()。#include“stdio.hMmain(){chars[100];intc,i;scanf(,'%c,',&c);scanf("%d”,&i);scanf("%s”,s);printf(M%c,%d,%s\nM,c,i,s);}A、!23,456,789B、1,456,789C、1,23,456,789D、1,23,456.以下程序的輸出結(jié)果是main(){charstr[121={'s','t',E'i?n','g'};printf("%d\n",strlen(str));(strlen不算、〇,sizeof算、〇))TOC\o"1-5"\h\zA)6 B)7C)11 D)12.合法的數(shù)組定義是( )A、intaロゴstring"; B、inta[5]={0,l,2,3,4,5};C、vhstsゴstring"; D、chara[]={0,l,2,3,4,5};.以下正確的聲明是〇A.inta[l][4]={l,2,3,4,5}; B.floatx[3][]={{l},{2},{3});C.longbl2][3]={{1},{1,2},{1,2,3}}; D.doubley[][3]={0};N23.閱讀下面程序,回答問(wèn)題。#include<lstdio.h"voidmain()(inti,jrow,column,m;staticintarray[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=array[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++)if(array[i][j]<m)(m=array[i](j];row=i;column=j;)printf("%d,%d,%d”,m.row.column);}該程序的功能是()。A、計(jì)算二維數(shù)組的元素和B、求二維數(shù)組的最小值及其下標(biāo)C、對(duì)二維數(shù)組進(jìn)行排序D、求二維數(shù)組的最大值及其下標(biāo)24.若有以下程序段:inta[]={4,0,2,3,l),k,j,t;for(j=l;j<5;j++)(t=a[j];k寸1;while(k>=O&&t>a[k]){a[k+l]=a[k];k-;)a[k+l]=t;}則該程序段的功能是ー(8)一A)對(duì)數(shù)組a進(jìn)行插入排序(升序)。B)對(duì)數(shù)組a進(jìn)行插入排序(降序)。C)對(duì)數(shù)組a進(jìn)行選擇排序(升序)。D)對(duì)數(shù)組a進(jìn)行選擇排序(降序)。N25.執(zhí)行如下程序段,當(dāng)輸入為Iam<CR>時(shí),輸出的結(jié)果是。charstr[80J;scanf("%s”,str);strcat(str,nsad!");printf(**%s",str);A)Iamsad!B)Isad!C)Isad!D)sad!兔4、main(){inta[10]={1,2,3,-4,5,6,7,-8,9,10},s=0;for(inti=0;i<10;i++){if(a[i]<0)break;s+=a[i];}printf("%d”,s);}(3)下面程序的輸出是include“stdio.h"include"stdlib.h"main(){charstrl[20],str2[20];scanf("%s",strl);〃從鍵盤(pán)輸入helloworldprintf("%s”,strl);〃輸出結(jié)果!fflush(stdin);gets(str2);〃從鍵盤(pán)輸入crazyenglishprintf("%s”,str2);〃輸出結(jié)果2輸出結(jié)果1是:(A)Hello(B)World(C)HelloWorld(D)WorldHello輸出結(jié)果2是:(A)Hello(B)World(C)HelloWorld(D)WorldHello7..選擇下面程序運(yùn)行的結(jié)果:#include"stdio.h"intm[3][3]={{l},{2M3});int川3][引={1,2,3};main()(printf(M%d\nH,m[l][0]+n[0][0]);printf(H%d\nn,m[0][1]+n[1][0]);)第1條printf語(yǔ)句行輸出的結(jié)果為( )A、0 B、1C、3D、2.還是剛オ1題那個(gè)程序,第2條printf語(yǔ)句行輸出的結(jié)果為( )A、2 B、4C、6D、〇.函數(shù)調(diào)用:strcat(strcpy(strl,str2),str3)的功能是( )A、將串strl復(fù)制到串str2中后再連接到串str3之后:B、將串str!連接到串str2之后再?gòu)?fù)制到串str3之后;C、將串str2復(fù)制到串str!中后再將串str3連接到串strl之后;C、將串strl復(fù)制到串str2中后再將串str3連接到串str2之后;三、程序填空題F1整型數(shù)組求和inta[lO]={0,1,2,3,4,56,7,8,9},sum=O,*pa;pa=a;for(pa=a;(<(pa-a)<10>);(<pa++>))sum=sum+*pa;F2.下面函數(shù)的功能是將一個(gè)字符串逆序存放,請(qǐng)?zhí)羁铡?include"stdio.h"#includeustring.hwvoidfun(charstr[])(<intm>;inti,j;for(i=0,j=strlen(str);i<j;i++,j-)(m=strfi];str[i]=<str[j-l]>;str[j-l]=m;)printf("%s\n,',str);)R3.下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請(qǐng)?zhí)羁?。main(){inti,a[20],sun,count;suum=count=0;for(i=0;i<20;i++)scanf(n%du,<&a[i]>);{if(a[i]>0){count++;sum+=<a[i]>;)}printf(,,sum=%d,count=%d\n,',sum,count);F4.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如ド111121133114641其構(gòu)成規(guī)律是:第0列元素和主對(duì)角線無(wú)素均為1其余元素為其左上方和正上方元素之和數(shù)據(jù)的個(gè)數(shù)每行遞增I請(qǐng)將程序補(bǔ)充完整。#defintN6voidYangHui(int*[N][N]){inti,j;x[0][0]=lfor(i=l;i<N;i++){x[i][0]=<x[i][i]>=l;for(j=l;j<i;j++)x[i][j]=<x[i-l]U-l]>+X[i-l]U];))F5、以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf456gh,執(zhí)行程序后輸出:123456。#includeustdio.hn#include"string.h"main(){chars[80],d[80];inti,j;getsG);for(i=j=0;s[i]!=,\0,;i++)if(s[i]>=>0,<&&>sli]<=,9'){d[j]=s[i];j++;)d[j]=<W>;puts(d);}R6.將60分以下的所有成績(jī)顯示到屏幕上intscorefl0]={56,76,65,43,98,67,34,89,90,76},i;for(i=0;(<i<10>);i++)if(<score[i]<60>)printf("<score[%d]=%d\nw,i,score[i]);ド7.在n行n列的矩陣中,每行都有最大的數(shù),本程序求這n個(gè)最大數(shù)中的最小一個(gè)。#include<stdio.h>#defineN100intafNJfNJvoidmain(){introw,col,max,min,n;/?輸入合法n(vlOO),和輸入n*n個(gè)整數(shù)到數(shù)組a的代碼略?/for(row=0;row<n;row++){for(max=a[row][0],col=l;col<n;col++)if(max<a[row][col])max=a[row][col];if(<row==0>)min=max;elseif(min>max)<min=max>;)printf("theminofmaxnumbersif%d\n”,min);}四求字符串中字符的個(gè)數(shù)char*p="HelloWorld”;intnum=0,k=0;while(*(p+k)!=<?、〇'>)(num=<num+l>;k++;}printf("num=%d”,num);N10(4)統(tǒng)計(jì)字符串的單詞數(shù)量(單詞用空格分隔)charstr[30J={"Welcomemyfriend!”};inti,num;for(i=l;str[i]!=<,、〇'>;i++)(if(str[i]!=,,&&str[i-l]=<,,>)num++;)printf("num=%d”,num);(2)(3)求字符串中字符的個(gè)數(shù)char*p="HelloWorld";intnum=0,k=0;TOC\o"1-5"\h\zwhile(*(p+k)!=(01 )){(02 )(03 )}printf("num=%d”,num);(4)統(tǒng)計(jì)字符串的單詞數(shù)量(單詞用空格分隔)charstr[30]={uWelcomemyfriend!);inti,num;for(i=l;str[i]!=(01 );i++)(if(str[i]!=(O2)&&str[i-l]==(O3 ))num++;)prinlf("num二%d"mum);折半査找法:設(shè)數(shù)組長(zhǎng)度為n,則將輸入的數(shù)m與a[n/2]比較,若m<a[n/2],則將a⑼到a[n/2-l]的數(shù)繼續(xù)折半進(jìn)行查找:若m=a[n/2],則表示找到該數(shù)的位置;若m>a[n/2],則將a[n/2+l]到a[n]的數(shù)繼續(xù)折半進(jìn)行查找。.程序功能:有10個(gè)數(shù)按升序放在一個(gè)數(shù)組中,輸入ー個(gè)數(shù),要求用折半査找該數(shù)是數(shù)組中的第幾個(gè)元素,如果該數(shù)不在數(shù)組中,打印出“NO"。include“sldio.h"voidmain()(inta[10]={12,32,45,62,71,76,80,85,90,95);intnum,bott,top,mid;scanfC'%dn,&num);bott=0,top=9;while(bott小于等于top){mid=(bott+top)/2;if(num==a[mid]){printf(H%disthe%dnumber\n",num,mid);break;}elseif(num小于a[mid])<top=mid-l>;elsebott=mid+l;}if(vbott>大于top)printf("NO\n");}第四章函數(shù)ー、 判斷題RI.C程序中,函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套。R2.C程序中,若對(duì)函數(shù)類(lèi)型未加顯示說(shuō)明,則函數(shù)的隱含類(lèi)型為“im”。3.在調(diào)用函數(shù)時(shí),只能將實(shí)參的值傳遞給形參,形參的值不能傳遞給實(shí)參。R4.函數(shù)的返回值是通過(guò)函數(shù)中的return語(yǔ)句獲得的。5.用數(shù)組名作函數(shù)參數(shù)時(shí)傳遞的是數(shù)組的值。.全局變量可以被任何ー個(gè)函數(shù)中的任何ー個(gè)表達(dá)式使用。.一個(gè)函數(shù)可以帶回一個(gè)整型值、字符值、實(shí)型值等,也可以帶回指針型的數(shù)據(jù)。.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用.( ).C語(yǔ)言規(guī)定,函數(shù)的實(shí)參應(yīng)與其對(duì)應(yīng)的形參類(lèi)型一致。().若全局變量和局部變量同名,則全局變量被遮蔽。〇.若要在函數(shù)f中修改變量a的值,應(yīng)該把a(bǔ)的地址傳遞給f。().當(dāng)數(shù)組做為參數(shù)傳遞給函數(shù)時(shí),是把數(shù)組中的所有元素都傳遞給了該函數(shù)。〇N13.給局部變量加上static屬性后,其生存期和作用域都擴(kuò)展了。()14、在某個(gè)變量前用extern聲明,可以擴(kuò)展變量的作用域;15、外部變量采用靜態(tài)存儲(chǔ),內(nèi)部變量采用動(dòng)態(tài)存儲(chǔ):16、靜態(tài)外部變量只能在本文件使用,其他文件不能使用該變量;17(1)不同函數(shù)內(nèi)的變量,可以用相同的名字N18(2)設(shè)函數(shù)調(diào)用表達(dá)式為:fun(fun(a,b),c),則函數(shù)fun帶3個(gè)參數(shù)。19(4)C語(yǔ)言中,函數(shù)返回值的類(lèi)型是由定義函數(shù)時(shí)所指定的函數(shù)類(lèi)型決定的20(5)在main函數(shù)內(nèi)定義的變量在整個(gè)程序范圍內(nèi)有效21(10)靜態(tài)外部變量,不允許其它文件中的函數(shù)訪問(wèn)22(1)不同函數(shù)內(nèi)的變量,可以用相同的名字N23(2)設(shè)函數(shù)調(diào)用表達(dá)式為:add(sub(a,b),c),則函數(shù)add帶3個(gè)參數(shù)。24,在C程序中return語(yǔ)句最多可以返回一個(gè)值。().若函數(shù)類(lèi)型和return語(yǔ)句中表達(dá)式類(lèi)型不一致時(shí),返回類(lèi)型以函數(shù)類(lèi)型為準(zhǔn)。().在C語(yǔ)言中實(shí)參和與其對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元。()2?由一個(gè)函數(shù)調(diào)用另ー個(gè)函數(shù),被調(diào)用的函數(shù)又調(diào)用其他函數(shù)的關(guān)系,稱(chēng)為函數(shù)的嵌套調(diào)用。⑴28ー個(gè)函數(shù)直接或者間接地自己調(diào)用自己的過(guò)程成為遞歸調(diào)用。(T)29使用遞歸方法解決問(wèn)題,必須要有?個(gè)明確的結(jié)束遞歸的條件。(T)30遞歸調(diào)用也稱(chēng)為循環(huán)定義,即用其自身來(lái)定義自己的過(guò)程。(T)二、 單項(xiàng)選擇題1、C語(yǔ)言規(guī)定,簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是()A.地址傳遞 B.單向值傳遞C.由實(shí)參傳給形參,再由形參傳回給實(shí)參 D.由用戶指定傳遞方式R2、若調(diào)用ー個(gè)函數(shù),且此函數(shù)中沒(méi)有return語(yǔ)句,則正確的說(shuō)法是〇該函數(shù)A.沒(méi)有返回值B.返回若干個(gè)系統(tǒng)默認(rèn)值C.能返回一個(gè)用戶所希望的函數(shù)值D.返回一個(gè)不確定的值R3、C語(yǔ)言允許函數(shù)值類(lèi)型缺省定義,此時(shí)該函數(shù)值隱含的類(lèi)型是()A.float型B.int型C.long型D.double型R4、在C語(yǔ)言程序中,以下描述正確的是()A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套D.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套5.voidmain(){intf(int);intw=2,k;for(k=0;k<3;k++)w=f(w);printf("%d\n”,w);
intf(intx){inty=0;staticintz=3;y++;Z++;return(x+y+z);}程序結(jié)束后,z的值為.(1)A)3 B)4 C)5 D)6R6.在ー個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,錯(cuò)誤的是()A、被調(diào)用函數(shù)中可以不用return語(yǔ)句B、被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句C、被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句D、被調(diào)用函數(shù)中,ー個(gè)return語(yǔ)句可返回多個(gè)值給調(diào)用函數(shù).以下程序輸出的結(jié)果是()。#include<stdio.h>intfunc(inta,intb){retum(a+b);)main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n”,r);)A、!2B、13C、14D、15(2)若有如下函數(shù)定義:add(floatx,floaty)則下列說(shuō)法正確的是( )B.函數(shù)返回值是floatB.函數(shù)返回值是float型D.函數(shù)返回值是void型C.函數(shù)返回值是int型intxl=30,x2=40;//xlx2是全局變量voidmain()intx3=10,x4=20;sub(x3,x4);sub(x2,xl);Ll:printf("%d,%d,%d,%d\n”,x3,x4,xl,x2);voidsub(intx,inty)xl=x;x=y;y=xl;L2:printf("%d,%d\n”,x,y);Ll行輸出結(jié)果為.(3)A)10,20,30,40 B)10,20,40,10C)20,10,40,30 D)10,20,40,40RIO.以下對(duì)C語(yǔ)言函數(shù)的描述中,正確的是()。A、C程序由一個(gè)或一個(gè)以上的函數(shù)組成B、C函數(shù)既可以嵌套定義又可以遞歸調(diào)用C、函數(shù)必須有返回值,否則不能使用函數(shù)D、C程序中調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)程序文件中11.以下函數(shù)值的類(lèi)型是()。fun(floatx){floaty;y=3*x-4;returny;)A,intB、不確定 C、voidD、float.?個(gè)C程序由函數(shù)A(),B(),C()和函數(shù)P()構(gòu)成,在函數(shù)A()中分別調(diào)用了函數(shù)B()和函數(shù)C(),在函數(shù)B()中調(diào)用了函數(shù)A0,且在函數(shù)P()中也調(diào)用了函數(shù)A0,則可以說(shuō)()?A、函數(shù)B0中調(diào)用的函數(shù)A()是函數(shù)A()的間接遞歸調(diào)用B、函數(shù)A()被函數(shù)B()調(diào)用是直接遞歸調(diào)用C、函數(shù)P()直接遞歸調(diào)用了函數(shù)A()D、函數(shù)P()中調(diào)用的函數(shù)A()是函數(shù)P()的嵌套.下面函數(shù)調(diào)用語(yǔ)句含有實(shí)參的個(gè)數(shù)為()。func((a,b,c,d),(e,f,g));A、1 B、2C、4D、以上都不對(duì).已有函數(shù)max(a,b)為了讓函數(shù)指針變量p指向函數(shù)max正是確的賦值方法是()。A、p=max; B、*p=max;C、p=max(a,b); D、*p=max(a,b);N15.下面程序運(yùn)行的結(jié)果為:#include<stdio.h>voidswap(inta,intb)(intt;t=a;a=b;b=t;)main(){intm=3,n=4;printf("Theold:m=%d,n=%d\n",m,n);swap(m,n);Printf("Thenew:m=%d,n=%d\n",m,n);A、3,4 B、m=3,n=4 C、3,4 D、m=3,n=43,4 m=3,n=4 4,3 m=4,n=3N16、選擇程序的運(yùn)行結(jié)果 。main(){intx;x=try(5);printf(,,%d\nn,x);)try(intn){if(n>0)return(n*try(n-2));else retum(l);}A)1 B) 15C)120 D)答案均是錯(cuò)誤的17.有以下程序viodfun(inta,intb,intc){a=456;b=567;c=678;)main(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n”,x,y,z);1輸出結(jié)果是()oAJO,20,10 B.10,20,30 C.456,567,678 D.678,567,45618.下列語(yǔ)句的執(zhí)行結(jié)果是()〇staticcharstr[10]={"china"};printf("%d”,strlen(str));A.10 B.6 C.5 D.ON19.讀程序,回答問(wèn)題。#include<stdio.h>inta=2;intf(intn)(staticinta=3;intt=0;if(n%2)staticinta=4;t+=a++;)elsestaticinta=5;t+=a++;returnt+a++;1voidmain()(ints=a,i;for(i=0;i<3;i++)s+=f(i);printf(M%d\n'\s);)程序運(yùn)行結(jié)果是()。A、26 B、2820.有如下程序intfunc(inta,intb)(retum(a+b);)mainO(intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);)該程序的輸出的結(jié)果是 A)12 B)13C、29 0C)14D、25D)15.有以下程序viodfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf(”%d,%d,%d\n”,x,y,z);!輸出結(jié)果是 〇A)30,20,10 B)、!0,20,30C)456,567,678.以下程序執(zhí)行之后sum的值是 〇main(){inti,sum;for(i=l;i<6;i++)sum+=i;printf("%d\n",sum);}A)15 B)14 C)不確定 D)〇D)678,567,456N23.voidmain(){intf(int);intw=2,k;for(k=0;k<3;k++)(w=f(w);primf("%d\n",w);))intf(intx){inty=0;staticintz=3;y++;z++;return(x+y+z);)程序結(jié)束后,w的值為。(2)A)20 B)7C)28D)13N24.intxl=30,x2=40;//xlx2是全局變量voidmain()(intx3=10,x4=20;sub(x3,x4);sub(x2,xl);Ll:printf("%d,%d,%d,%d\n”,x3,x4,xl,x2);voidsub(intx,inty)(x1=x;x=y;y=x1;L2:printf("%d,%d\n”,x,y);)L2行輸出結(jié)果為〇(4)A)10,20B)20,10C)10,20D)20,1040,10 10,40 10,40 40,1025、有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t」"+'A';s++;main(){charstr1[1OO]=,'abcddfefdbd,',c=,d';ss(strl,c);printf(H%s\nM,strl)y/?)程序運(yùn)行后的輸出結(jié)果是〇A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd三、程序填空題F1下列程序的功能是:將一個(gè)數(shù)字字符串轉(zhuǎn)換為ー個(gè)整數(shù)。例如,有字符串“-1234567”程序?qū)⑺D(zhuǎn)換為整數(shù)-1234567。#include<stdio.h>#include<string.h>longfs(char*p){inti=0.sign=l;longnum=0;if(p[i]=-')sign=<-l>;if(p[i]==,+'llp[i]==-,)i=l;elsei=0;while(p[i]!='\0')(<num*>=10;num+=p[i]-48;i++;)num=sign*num;retum(num);)voidmain(){chars[9];longn;printf("Enterastring:\n");gets(s);n=fs(s);printf("%d\n",n);)F2下列給定程序中,函數(shù)fun的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從小到大的順序進(jìn)行排序#include<stdio.h>#defineN20voidfun(inta[],intn){inti,j,t,p;for(j=O;j<n-ly++){P可;for(<i=j>;i<n;i++)if(a[pl>a[il)<a[p]=a[i]>;t=a[p];a[p]=a[j];a[j]=t;)1main()(inta[N]={9,6,8,3,-l},i,m=5;primf("排序前的數(shù)據(jù):");for(i=0;i<m;i++)printf(,,%d,,,a[i]);printf(H\nM);fun(a,m);printf("排序后的數(shù)據(jù):");for(i=0;i<m;i++)printf(”%d”,a[i]);printf(”ヽn”);1F3.下列給定程序中,函數(shù)fun的功能是:從n個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如,若輸入8名學(xué)生的成績(jī):80.5 60 72 90.5 98 51.5 88 64則低于平均分的學(xué)生人數(shù)為4(平均分為:75)〇#include<conio.h>#include<stdio.h>#defineN20intfun(float*s,intn,float*aver){floatave,t=0.0;intcount=0,k,i;for(k=0;kvn;k++)<t=t+s[k]>;(不可使用復(fù)合的賦值運(yùn)算符)ave=t/n;*aver=ave;for(i=0;ivn;i++)if(s[i]<ave)count++;<returncount>;main(){floats[30],aver;intm,i;printf(MnPleaseenterm:,';scanf(,*%d,,,&m);printf("nPleaseenter%dmark:n'\m);for(i=0;i<m;i++)scanf(n%r,s+i);printf(unThenumberofstudents:%dnu,fun(s,m,&aver));printf("Ave=%fn,,,aver);)N4.下列程序用遞歸算法實(shí)現(xiàn),輸入任意一個(gè)整數(shù),然后按從高到低輸出各個(gè)位上的數(shù)字。#include<stdio.h>voidmain()(longintn;voidfunc(long);scanf("%kT,&n);<func(n)>;1voidfunc(longm)(if(m>=10)<func(m/10)>;printf("%d”,m%10);)R5下面函數(shù)的功能是從鍵盤(pán)輸入ー組小寫(xiě)字母,并保存在字符數(shù)組str中。通過(guò)fun()函數(shù)把字符數(shù)組str中ASCII碼為奇數(shù)的小寫(xiě)字母轉(zhuǎn)換成對(duì)應(yīng)的大寫(xiě)字母,結(jié)果仍保存在原數(shù)組中。例如,輸入"abcdefg",輸出“AbCdEfG”。vodifun(chars[])(inti;for(_i=0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南省信陽(yáng)市淮濱縣2024-2025學(xué)年九年級(jí)上學(xué)期11月期中考試化學(xué)試題
- 廣東省佛山市順德區(qū)德勝學(xué)校2024-2025學(xué)年八年級(jí)上學(xué)期11月期中數(shù)學(xué)試題(含答案)
- 酶標(biāo)記制劑行業(yè)相關(guān)投資計(jì)劃提議范本
- 電磁波吸收材料相關(guān)行業(yè)投資規(guī)劃報(bào)告范本
- 銀釬料行業(yè)相關(guān)投資計(jì)劃提議范本
- 醫(yī)用X射線增強(qiáng)電視系統(tǒng)相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 負(fù)壓封閉引流技術(shù) 課件
- 學(xué)校防空演練方案
- 節(jié)日安全主題班會(huì)
- 通信設(shè)備LTE-FDD無(wú)線網(wǎng)絡(luò)新建(增補(bǔ))工程安全生產(chǎn)資料
- 《夏商周考古》第5章西周文化(4-6節(jié))
- 實(shí)驗(yàn)室內(nèi)部、外部風(fēng)險(xiǎn)源分析
- 輻射溫度計(jì)校準(zhǔn)規(guī)范
- 積累運(yùn)用表示動(dòng)作的詞語(yǔ)課件
- 雙培匯總表和工作臺(tái)賬
- 2022年安全員上崗證繼續(xù)教育考試答案
- Unit 4 Natural Disasters Discovering Useful Structures 定語(yǔ)從句課件-高一英語(yǔ)人教版 2019 必修第一冊(cè)
- 第6章景區(qū)導(dǎo)游服務(wù)程序與服務(wù)質(zhì)量《導(dǎo)游業(yè)務(wù)》(第五版)
- 快遞公司與菜鳥(niǎo)驛站合作協(xié)議【六篇】
- 人教版小學(xué)一年級(jí)上冊(cè)10以?xún)?nèi)加減法口訣表
- 2022年浙江出版聯(lián)合集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論