C語言習(xí)題集.pdf_第1頁
C語言習(xí)題集.pdf_第2頁
C語言習(xí)題集.pdf_第3頁
C語言習(xí)題集.pdf_第4頁
C語言習(xí)題集.pdf_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言習(xí)題集 習(xí)題一 一.填空題 1.C程序是由( )構(gòu)成的,一個(gè)C程序中至少包含( ) .因此,( ) 是C程序 的基本單位. 2.C程序注釋是由( ) 和( ) 所界定的文字信息組成的. 3.函數(shù)體一般包括( ) 和( ) . 二.判斷題 1.一個(gè)C程序的執(zhí)行總是從該程序的main函數(shù)開始,在main函數(shù)最后結(jié) 束. 【 】 2.main函數(shù)必須寫在一個(gè)C程序的最前面. 【 】 3.一個(gè)C程序可以包含若干的函數(shù).【 】 4.C程序的注釋部分可以出現(xiàn)在程序的任何位置,它對程序的編譯和運(yùn)行 不起任何作用.但是可以增加程序的可讀性.【 】 5.C程序的注釋只能是一行.【 】 6.C程序的注釋不能是中文文字信息.【 】 8.可以使用Turbo C來編譯和連接一個(gè)C程序.【 】 9.可以使用Turbo C來運(yùn)行一個(gè)C程序.【 】 10.可以使用Turbo C來實(shí)時(shí)調(diào)試(即動態(tài)調(diào)試)一個(gè)C程序.【 】 三.簡答題 1. 寫出一個(gè)C程序的基本結(jié)構(gòu). 2. 簡要敘述使用Turbo C 2.0編譯和運(yùn)行一個(gè)程序的步驟. 四.編程題 1. 提高題:參照課本例1.1,試編寫一個(gè)C程序,輸出如下信息.(提示:使 用鍵盤上的一些符號). 2. 提高題:試編寫一個(gè)C程序,輸出如下信息. 試試看,可以輸出其他組合圖案嗎 習(xí)題二 一.選擇題 1,合法的字符常量是 . A) t B) “A“ C) a D)x32 2, 合法的字符常量是 . A) 084 B) 84 C) ab D)x43 3,是C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字. A) Float B) signed C) integer D)Char 4,在以下各組標(biāo)識符中,合法的標(biāo)識符是. (1)A)B01 B)table_1 C) 0_t D) k% (2)A)Fast_ B) void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR (4) A) sj B)Int C)_xy D)w_y23 5,屬于合法的C語言長整型常量的是 . A)5876273 B)0L C)2E10 D)(long)5876273 6,下面選項(xiàng)中,不是合法整型常量的是 . A)160 B)-0xcdg C)-01 D)-0x48a 7,判斷int x = 0xaffbc;x的結(jié)果是 . A)賦值非法 B)溢出 C)為affb D)為ffbc 8,下面選項(xiàng)中,均是合法浮點(diǎn)數(shù)的是 . A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9,在C語言中,要求參加運(yùn)算的數(shù)必須時(shí)整數(shù)的運(yùn)算符是 . A)/ B)* C)% D) = 10,在C語言中,字符型數(shù)據(jù)在內(nèi)存中以 形式存放. A)原碼 B)BCD碼 C)反碼 D)ASCII碼 11,下列語句中,符合語法的賦值語句是 . A)a=7+b+c=a+7; B)a=7+b+=a+7; C)a=(7+b,b+,a+7); D)a=7+b,c=a+7; 12,是非法的C語言轉(zhuǎn)義字符. A)b B) 0xf C)037 D) 13,對于語句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判斷中, 是正確的. A)語法錯(cuò)誤 B)f為5.0 C)f為0.0 D)f為2.0 14,與代數(shù)式(x*y)/(u*v) 不等價(jià)的C語言表達(dá)式是. A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15,在C語言中,數(shù)字029是一個(gè). A)八進(jìn)制數(shù) B)十六進(jìn)制數(shù) C)十進(jìn)制數(shù) D)非法數(shù) 16,C語言中整數(shù)-8在內(nèi)存中的存儲形式為 . A)1111111111111000 B)100000000001000 C)000000000001000 D)1111111111110111 17,對于char cx= 039;語句,正確的是. A)不合法 B)cx的ASCII值是33 C)cx的值為四個(gè)字符 D)cx的值為三個(gè)字符 18,若int k=7,x=12;則能使值為3的表達(dá)式是 . A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 19,為了計(jì)算s=10!(即10的階乘),則s變量應(yīng)定義為 . A)int B)unsigned C)long D)以上三種類型均可 20,以下所列的C語言常量中,錯(cuò)誤的是. A)0xFF B)1.2e0.5 C)2L D)72 21,假定x和y為double型,則表達(dá)式x=2,y=x+3/2的值是 . A)3.500000 B)3 C)2.000000 D)3.000000 22,設(shè)變量n為float型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù) 點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是 . A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0 23,以下合法的賦值語句是 . A)x=y=100 B)d C)x+y D)c=int(a+b) 24,下選項(xiàng)中不屬于C語言的類型是 . A)signed short int B)unsigned long int B)unsigned int D)long short 25,設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是 . A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1) C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1) 26,在16位C編譯系統(tǒng)上,若定義long a;,則能給a賦40000的正確語句是 . A)a=20000+20000; B)a=4000*10; C)30000+10000; D)a=4000L*10L; 二.填空題 1.在C語言中(以16位PC機(jī)為例),一個(gè)char數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)為 , 其數(shù)值范圍為 ;一個(gè)int數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)為 ,其數(shù)值范圍為 ; 一個(gè)long數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)為 ,其數(shù)值范圍為 ;一個(gè)float數(shù)據(jù) 在內(nèi)存中所占字節(jié)數(shù)為 ,其數(shù)值范圍為 . 2.C語言的標(biāo)識符只能由大小寫字母,數(shù)字和下劃線三種字符組成,而且 第一個(gè)字符必須為 . 3.字符常量使用一對 界定單個(gè)字符,而字符串常量使用一對 來界定若 干個(gè)字符的序列. 4.在C語言中,不同運(yùn)算符之間運(yùn)算次序存在 的區(qū)別,同一運(yùn)算符之間運(yùn) 算次序存在 的規(guī)則. 5.設(shè)x,i,j,k都是int型變量,表達(dá)式x=(i=4,j=16,k=32)計(jì)算后,x的值為 . 6.設(shè)x=2.5,a=7,y=4.7, 則x+a%3*(int)(x+y)%2/4為 . 7.設(shè)a=2,b=3,x=3.5,y=2.5,則(float)(a+b)/2+(int)x%(int)y為 . 8.數(shù)學(xué)式子 的C語言表達(dá)式為 . 9.數(shù)學(xué)式子 的C語言表達(dá)式為 . 10.已知:char a=a,b=b,c=c,i;則表達(dá)式i=a+b+c的值為 . 11.已知int a=12,n=5;則:表達(dá)式運(yùn)算后a的值各為 . a+=a a-=2 a*=2+3 a/=a+a n%=(n%=2) a+=a-=a*=a 12.設(shè)int a; float f; double i ;則表達(dá)式10+a+i*f值的數(shù)據(jù)類型 是 . 13.若a為int型變量,則表達(dá)式 (a=4*5,a*2) , a+6的值為 . 14.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,a+,b+,a+b)的值為 . 15.已知a,b,c是一個(gè)十進(jìn)制數(shù)的百位,十位,個(gè)位,則該數(shù)的表達(dá)式是 . 16.定義:double x=3.5,y=3.2;則表達(dá)式(int)x*0.5的值是 ,表達(dá)式 y+=x+的值是 . 17.定義:int m=5, n=3;則表達(dá)式m/=n+4的值是 ,表達(dá)式m=(m=1,n=2,n- m)的值是 ,表達(dá)式m+=m-=(m=1)*(n=2)的值是 . 18.表達(dá)式5%(-3)的值是 ,表達(dá)式-5%(-3)的值是 . 19.若a是int變量,則執(zhí)行表達(dá)式a=25/3%3后,a的值是 . 20.數(shù)學(xué)式子 的C語言表達(dá)式為: . 三.判斷題 1.在C程序中對用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類型.【 】 2.一個(gè)變量在內(nèi)存中占據(jù)一定的存儲單元.【 】 3.一個(gè)實(shí)型變量的值肯定是精確的.【 】 4.對幾個(gè)變量在定義時(shí)賦初值可以寫成:int a=b=c=3;【 】 5.自增運(yùn)算符(+)或自減運(yùn)算符(-)只能用于變量,不能用于常量或表 達(dá)式.【 】 6.在C程序的表達(dá)式中,為了明確表達(dá)式的運(yùn)算次序,常使用括號“()“.【 】 7.%運(yùn)算符要求運(yùn)算數(shù)必須是整數(shù).【 】 8.若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型 數(shù).【 】 9.在C程序中,逗號運(yùn)算符的優(yōu)先級最低.【 】 10.C語言不允許混合類型數(shù)據(jù)間進(jìn)行運(yùn)算.【 】 四.簡答題 1.為什么C語言的字符型可以進(jìn)行數(shù)值運(yùn)算 2.簡述a和“a“的區(qū)別. 3.程序:int m=12; m=15;為什么整型變量m的值在運(yùn)算后不是當(dāng)初的12, 而是15 4.將下面各數(shù)用八進(jìn)制和十六進(jìn)制數(shù)表示: 十進(jìn)制 32 -1 -32768 2002 -128 0 八進(jìn)制 十六進(jìn)制 6.華氏溫度F與攝氏溫度c的轉(zhuǎn)換公式為:c=(F-32)*5/9 ,則float c, F; c=5/9*(F-32)是其對應(yīng)的C語言表達(dá)式嗎 如果不是,為什么 五.程序閱讀題 1.寫出以下程序運(yùn)行的結(jié)果. main ( ) char c1=a,c2=b,c3=c,c4=101,c5=116; printf(“a%c b%ctc%ctabcn“,c1,c2,c3); printf(“tb%c %c“,c4,c5); 2.寫出以下程序運(yùn)行的結(jié)果. main ( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“%d,%d,%d,%d“,i,j,m,n); 六.編程題 1.假設(shè)m是一個(gè)三位數(shù),則寫出將m的個(gè)位,十位,百位反序而成的三位數(shù) (例如:123反序?yàn)?21)的C語言表達(dá)式. 2.已知int x=10,y=12;寫出將x和y的值互相交換的表達(dá)式. 習(xí)題三 一.選擇題 1.C語言的程序一行寫不下時(shí),可以. A)用逗號換行 B)用分號換行 C)在任意一空格處換行 D)用回車符換行 2.putchar ( )函數(shù)可以向終端輸出一個(gè). A)整型變量表達(dá)式值 B)實(shí)型變量值 C)字符串 D)字符或字符型變量值 3.執(zhí)行下列程序片段時(shí)輸出結(jié)果是. unsigned int a=65535; printf(“%d“,a); A)65535 B)-1 C)-32767 D)1 4.執(zhí)行下列程序片段時(shí)輸出結(jié)果是. float x=-1023.012 printf(“n%8.3f,“,x); printf(“%10.3f“,x); A)1023.012, -1023.012 B)-1023.012,-1023.012 C)1023.012,-1023.012 D)-1023.012, -1023.012 5.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和 B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是 . int a1,a2; char c1,c2; scanf(“%d%c%c“, A)10A 20B B)10 A 20 B C)10A20B C)10A20 B 6.對于下述語句,若將10賦給變量k1和k3,將20賦給變量k2和k4,則應(yīng)按 方式輸入數(shù)據(jù). int k1,k2,k3,k4; scanf(“%d%d“, scanf(“%d,%d“, A)1020 B)10 20 C)10,20 D)10 20 1020 10 20 10,20 10,20 7.執(zhí)行下列程序片段時(shí)輸出結(jié)果是. int x=13,y=5; printf(“%d“,x%=(y/=2); A)3 B)2 C)1 D)0 8.下列程序的輸出結(jié)果是. main ( ) int x=023; printf(“%d“,-x); A)17 B)18 C)23 D)24 9.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和 B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的輸入方式是. int a1,a2; char c1,c2; scanf(“%d%d“, scanf(“%c%c“, A)1020AB B)10 20 AB C)10 20 AB D)10 20AB 10.執(zhí)行下列程序片段時(shí)輸出結(jié)果是. int x=5,y; y=2+(x+=x+,x+8,+x); printf(“%d“,y); A)13 B)14 C)15 D)16 11.若定義x為double型變量,則能正確輸入x值的語句是. A)scanf(“%f“,x); B)scanf(“%f“, C)scanf(“%lf“, D)scanf(“%5.1f“, 12.若運(yùn)行時(shí)輸入:12345678,則下列程序運(yùn)行結(jié)果為. main ( ) int a,b; scanf(“%2d%2d%3d“, printf(“%dn“,a+b); A)46 B)579 C)5690 D)出錯(cuò) 13.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3,使I的值為1,j的值為 2,k的值為3,以下選項(xiàng)中正確的輸入語句是. A)scanf(“%2d%2d%2d“, B)scanf(“%d_%d_%d“, C)scanf(“%d,%d,%d“, D)scanf(“i=%d,j=%d,k=%d“, 14.若int x,y; double z;以下不合法的scanf函數(shù)調(diào)用語句是 . A)scanf(“%d%lx,%le“, B)scanf(“%2d*%d%lf“, C)scanf(“%x%*d%o“, D)scanf(“%x%o%6.2f“, 15.有輸入語句:scanf(“a=%d,b=%d,c=%d“,為使變量 a的值 為1,b的值為3,c的值為2,則正確的數(shù)據(jù)輸入方式是 . A)132 B)1,3,2 C)a=1 b=3 c=2 D)a=1,b=3,c=2 二.填空題 1.一個(gè)C程序由若干個(gè) 文件組成,而一個(gè)這樣的文件可以由若干個(gè) 和 以及 組成. 2.C語句可以分為 , , , 和 等5種類型. 3.C控制語句有 種. 4.一個(gè)表達(dá)式要構(gòu)成一個(gè)C語句,必須 . 5.復(fù)合語句是用一對 界定的語句塊. 6.printf函數(shù)和scanf函數(shù)的格式說明都使用 字符開始. 7.scanf處理輸入數(shù)據(jù)時(shí),遇到下列情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:(1) , (2) ,(3) . 8.已有int i,j; float x;為將-10賦給i,12賦給j,410.34賦給x;則對應(yīng) 以下scanf函數(shù)調(diào)用語句的數(shù)據(jù)輸入形式是 . 9.C語言本身不提供輸入輸出語句,其輸入輸出操作是由 來實(shí)現(xiàn)的. 10.一般地,調(diào)用標(biāo)準(zhǔn)字符或格式輸入輸出庫函數(shù)時(shí),文件開頭應(yīng)有以下 預(yù)編譯命令: . 三.程序閱讀題 1.用下面的scanf函數(shù)輸入數(shù)據(jù),使 a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,問在鍵盤上如何輸入 main ( ) int a,b; float x,y; char c1,c2; scanf(“a=%d b=%d“, scanf(“ %f %e“, scanf(“ %c %c“, 2.寫出以下程序的輸出結(jié)果. main ( ) int y=3,x=3,z=1; printf(“%d %dn“,(+x,y+),z+2); 3.寫出以下程序的輸出結(jié)果. main ( ) int a=12345; float b=-198.345, c=6.5; printf(“a=%4d,b=%-10.2e,c=%6.2fn“,a,b,c); 4.寫出以下程序的輸出結(jié)果. main ( ) int x=-2345; float y=-12.3; printf(“%6D,%06.2F“,x,y); 5. 寫出以下程序的輸出結(jié)果. main ( ) int a=252; printf(“a=%o a=%#on“,a,a); printf(“a=%x a=%#xn“,a,a); 6. 寫出以下程序的輸出結(jié)果. main ( ) int x=12; double a=3.1415926; printf(“%6d#,%-6d#n“,x,x); printf(“%14.101f#n“,a); 四.程序填空題 1.下列程序的輸出結(jié)果是16.00,請?zhí)?1)空使程序完整. main ( ) int a=9,b=2; float x= 1 , y=1.1 , z; z=a/2+b*x/y+1/2; printf(“%5.2fn“,z); 五.編程題 1.已知a,b均是整型變量,寫出將a,b兩個(gè)變量中的值互換的程序來. 2.若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b. 想得到以下的輸出格式和結(jié)果,請寫出程序(包括定義變量類型和設(shè)計(jì)輸 出). a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.60 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=a or 97(ASCII) c2=b or 98(ASCII) 3.設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長,圓面積,圓球表面積,圓球體積, 圓柱體積.用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)果;輸出時(shí)要求有文字說明,取 小數(shù)點(diǎn)后2位數(shù)字,請編寫程序. 4.編程序:用getchar函數(shù)讀入兩個(gè)字符給c1,c2,然后分別用putchar和 printf函數(shù)輸出這兩個(gè)字符.并思考以下問題:(1)變量c1,c2應(yīng)定義為字 符型或整型 或兩者皆可 (2)要求輸出C1和C2值的ASCII碼,應(yīng)如何處理 用putchar函數(shù)還是printf函數(shù) (3)整型變量與字符型變量是否在任何 情況下都可以互相替代 如: char c1,c2 與 int c1,c2 是否無條件地等價(jià) 習(xí)題四 一.選擇題 1.邏輯運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)類型. A)只能是0或1 B)只能是0或非0正數(shù) C)只能是整型或字符型數(shù)據(jù) D)可以是任何類型的數(shù)據(jù) 2.下列表達(dá)式中, 不滿足“當(dāng)x的值為偶數(shù)時(shí)值為真,為奇數(shù)時(shí)值為假“的 要求. A)x%2=0 B)!x%2!=0 C)(x/2*2-x)=0 D)!(x%2) 3.以下程序片段. int x=2,y=3; printf( ); A)什么都不輸出 B)輸出為:*x=2 C)輸出為:#y=2 D)輸出為:#y=3 4.能正確表示“當(dāng)x的取值在1,10和200,210范圍內(nèi)為真,否則為 假“的表達(dá)式是. A)(x=1) ) A)if (a=b) x+; B)if (a=y) x=y;y=x; else x+;y+; printf(“%d,%d“,x,y); A)有語法錯(cuò)誤,不能通過編譯 B)若輸入3和4,則輸出4和5 C)若輸入4和3,則輸出3和4 D)若輸入4和3,則輸出4和5 10.若w=1,x=2,y=3,z=4,則條件表達(dá)式w0) +c; printf(“%d,%d,%d“,a,b,c); A)0,0,0 B)1,1,1 C)1,0,1 D)0,1,1 13.下述程序的輸出結(jié)果是 . main ( ) int x=-1,y=4,k; k=x+B 則表達(dá)式(x else x=1; else x=0; 五.程序閱讀題 1.若運(yùn)行時(shí)輸入100,寫出以下程序的運(yùn)行結(jié)果. main ( ) int a ; scanf(“%d“, printf(“%s“,(a%2!=0) “No“:“Yes“); 2.寫出以下程序的運(yùn)行結(jié)果. main ( ) int a=2,b=7,c=5; switch (a0) case 1: switch (b=A | | c=0); while (s) ; -s ; 7.下述程序段的運(yùn)行結(jié)果是 . int a=1,b=2, c=3, t; while (a A)c=getchar( ) B)getchar( ) C)c=getchar( ) D)scanf(“%c“, while (k+50) break ; while (a=14) ; printf(“a=%d y=%dn“,a,y) ; 8.寫出下面程序運(yùn)行的結(jié)果. main ( ) int i,j,k=19; while (i=k-1) k-=3 ; if (k%5=0) i+ ; continue ; else if (k0) 22.下面敘述正確的是 . A)兩個(gè)字符串所包含的字符個(gè)數(shù)相同時(shí),才能比較字符串 B)字符個(gè)數(shù)多的字符串比字符個(gè)數(shù)少的字符串大 C)字符串“STOP “與“STOP“相等 D)字符串“That“小于字符串“The“ 23.下面有關(guān)字符數(shù)組的描述中錯(cuò)誤的是 . A)字符數(shù)組可以存放字符串 B)字符串可以整體輸入,輸出 C)可以在賦值語句中通過賦值運(yùn)算對字符數(shù)組整體賦值 D)不可以用關(guān)系運(yùn)算符對字符數(shù)組中的字符串進(jìn)行比較 24.下面程序的輸出結(jié)果是 . main ( ) char ch7=“12ab56“; int i,s=0; for (i=0;chi0i+=2) s=10*s+chi-0; printf(“%dn“,s); A)1 B)1256 C)12ab56 D)ab 25.下面程序的輸出結(jié)果是 . main ( ) char str =“SSWLIA“ , C; int k; for (k=2;(c=strk)!=0;k+) switch (c) case I : +k; break ; case L: continue; default : putchar(c) ; continue ; putchar(*); A)SSW B)SW* C)SW*A D)SW 二.填空題 1.在C語言中,二維數(shù)組的元素在內(nèi)存中的存放順序是 . 2.若有定義:double x35,則x數(shù)組中行下標(biāo)的下限為 ,列下標(biāo)的 下限為 . 3.若有定義:int a34=1,2,0,4,6,8,10;則初始化 后,a12的值為 ,a21得到的值為 . 4.字符串“abn012“的長度是 . 5.下面程序段的運(yùn)行結(jié)果是 . char x =“the teacher“; int i=0; while (x+i!=0) if (xi-1=t) printf(“%c“,xi); 6.欲為字符串S1輸入“Hello World!“,其語句是 . 7.欲將字符串S1復(fù)制到字符串S2中,其語句是 . 8.如果在程序中調(diào)用了strcat函數(shù),則需要預(yù)處理命令 .如果調(diào)用了 gets函數(shù),則需要預(yù)處理命令 . 9.C語言數(shù)組的下標(biāo)總是從 開始,不可以為負(fù)數(shù);構(gòu)成數(shù)組各個(gè)元素具 有相同的 . 10.字符串是以 為結(jié)束標(biāo)志的一維字符數(shù)組.有定義:char a=“;則 a數(shù)組的長度是 . 三.程序閱讀題 1.寫出下面程序的運(yùn)行結(jié)果. main ( ) int a66,i,j ; for (i=1; i6 ; i+) for (j=1 ; j6 ; j+) aij=(i/j)*(j/i) ; for (i=1;i=0 ; i-) c=s0i+s1i-2*0; s0j = c % 10 + 0 ; for (i=0; i=0; j-) aj+1=aj ; a0=k; for (m=0 ; m6 ; m+) printf(“%d “,am); printf(“n“); 四.程序判斷題 1.下面程序?yàn)閿?shù)組輸入數(shù)據(jù)并輸出結(jié)果;判斷下面程序的正誤,如果錯(cuò) 誤請改正過來. main ( ) int a3=3*0 ; int i; for (i=0; i4; i+) scanf(“%d“, for (i=0; i4; i+) printf(“%d“,ai); 2.下面程序?yàn)閿?shù)組輸入數(shù)據(jù)并輸出結(jié)果;判斷下面程序的正誤,如果錯(cuò) 誤請改正過來. main ( ) int a3=1,2,3 , i; scanf(“%d%d%d“, for (i=0; i3; i+) printf(“%d“,ai); 3.下面程序的功能是:先將在字符串s中的字符按逆序存放到t串中,然 后把s中的字符按正序連接到t串的后面.例如,當(dāng)s中的字符串 為:“ABCDE“時(shí)則t中的字符串應(yīng)為:“EDCBAABCDE“;判斷下面程序的正 誤,如果錯(cuò)誤請改正過來. main ( ) char s80,t200; int i,sl ; gets(s); sl = strlen(s); for (i=0; i for (i=0; i puts(t); 4.下面程序的功能是:將n各無序整數(shù)從小到大排序;判斷下面程序的正 誤,如果錯(cuò)誤請改正過來. main ( ) int a100, i, j, p, t, n=20 ; for (j = 0; j for (j = 0;j p = j; for ( i=j+1; iai) t=i; if (p!=j) t = aj; aj = ap; ap=t; for ( j = 0; j 五.程序填空題 1.下面程序可求出矩陣a的主對角線上的元素之和,請?zhí)?2)空使程序完 整. main ( ) int a33=1,3,5,7,9,11,13,15,17 , sum=0, i, j ; for (i=0 ; i3 ; i+) for (j=0 ; j3 ; j+) if (【1 】) sum=sum+【2 】; printf(“sum=%d“,sum); 2.下面程序?qū)⑹M(jìn)制整數(shù)base轉(zhuǎn)換成n進(jìn)制,請?zhí)?3)空使程序完整. main ( ) int i,base,n,j,num20 ; scanf(“%d“, scanf(“%d“,base) ; do i+; numi=【1 】; n=【2 】; while (n!=0); for (【3 】) ; printf(“%d“,numj) ; 3.下面程序的功能是輸入10個(gè)數(shù),找出最大值和最小值所在的位置,并 把兩者對調(diào),然后輸出調(diào)整后的10個(gè)數(shù),請?zhí)?3)空使程序完整. main ( ) int a10,max,min,i,j,k ; for (i=0; i10; i+) scanf(“%d“, max=min=a0; for (i=0; i10; i+) if (aimax) max=ai; 【2 】; 【3 】; for (i=0; i10; i+) printf(“%d“,ai); 4.下面程序用“插入法“對數(shù)組a進(jìn)行由小到大的排序,請?zhí)?3)空使程序 完整. 經(jīng)典算法提示: 簡單插入排序算法的基本思想使將數(shù)組處理n-1次,第k次處理是將第k 個(gè)元素插入到目前的位置.第k次的元素是這樣插入的:在第k次處理時(shí), 前面的元素a0,a1,ak-1必定已排成了升序,將ak與ak- 1,ak-2,a0逐個(gè)比較(由后向前),若有ajaj ) 【2 】; j-; 【3 】=k ; for (i=0; i10; i+) printf(“%d“,ai); 5.下面程序用“兩路合并法“把兩個(gè)已按升序(由小到大)排列的數(shù)組合 并成一個(gè)新的升序數(shù)組,請?zhí)?3)空使程序完整. main ( ) int a3=5,9,10 ; int b5=12,24,26,37,48 ; int c10,i=0,j=0,k=0 ; while (i3 k+ ; j+ ; else ck=aj ; k+ ; i+ ; while (【2 】) ck=aj ; i+ ; k+ ; while (【3 】) ck=bj ; j+ ; k+ ; for (i=0; i 【1 】; printf(“n“); for (【2 】) bi0=ai2; for (i=0; i2 ; i+) for (j=0; i3 ; j+) printf(“%5d“,bij); 【3 】; printf(“n“); 7.下面程序的功能是在一個(gè)字符串中查找一個(gè)指定的字符,若字符串中 包含該字符則輸出該字符在字符串中第一次出現(xiàn)的位置(下標(biāo)值),否則 輸出-1,請?zhí)?2)空使程序完整. # include main ( ) char c=a ; /* 需要查找的字符*/ char t50 ; int i,j,k; gets(t) ; i = 【1 】; for (k=0; k if (【2 】) j = k ; break ; else j=-1; printf(“%d“,j); 8.下面程序用“順序查找法“查找數(shù)組a中是否存在某一關(guān)鍵字,請?zhí)?2) 空使程序完整. main ( ) int a10=25,57,48,371,123,291,18,22,44; int i=0,x ; scanf(“%d“, 【1 】; while (ai!=x) i+ ; if (【2 】) printf(“found=%dn“,i); else printf(“cant found!n“); 9.以下程序是求矩陣a,b的乘積,結(jié)果存放在矩陣C中并按矩陣形式輸 出,請?zhí)?3)空使程序完整. main ( ) int a23=2,10,9,4,5,119, b22=-1,-2,-3,-4; int i,j,k,s,c32; for (i=0; I3; i+) for (j=0; j2; j+) 【1 】 for (k=0; k2; k+) s+=【2 】; cij=s; for (i=0; i3; i+) for (j=0; jS2,輸出一個(gè)正數(shù);如果S1=S2,輸出0;如果S1 以上程序均使用gets或puts函數(shù)輸入,輸出字符串.不能使用string.h 中的系統(tǒng)函數(shù). 習(xí)題七 一.選擇題 1.以下正確的說法是. A)用戶若需要調(diào)用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前必須重新定義 B)用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),如若此,該函數(shù)將失去原有定義 C)系統(tǒng)不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù) D)用戶若需要使用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前不必使用預(yù)處理命令將該函數(shù)所 在的頭文件包含編譯,系統(tǒng)會自動調(diào)用. 2.以下正確的函數(shù)定義是. A)double fun(int x, int y) B)double fun(int x,y) z=x+y ; return z ; int z ; return z ; C)fun (x,y) D)double fun (int x, int y) int x, y ; double z ; double z ; z=x+y ; return z ; return z ; 3.以下正確的說法是. A)實(shí)參和與其對應(yīng)的形參各占用獨(dú)立的存儲單元 B)實(shí)參和與其對應(yīng)的形參共占用一個(gè)存儲單元 C)只有當(dāng)實(shí)參和與其對應(yīng)的形參同名時(shí)才共占用相同的存儲單元 D)形參時(shí)虛擬的,不占用存儲單元 4.以下正確的函數(shù)定義是 . A)double fun(int x , int y) B)double fun(int x ; int y) C)double fun(int x , int y) ; D)double fun(int x,y) 5.若調(diào)用一個(gè)函數(shù),且此函數(shù)中沒有return語句,則正確的說法是 . A)該函數(shù)沒有返回值 B)該函數(shù)返回若干個(gè)系統(tǒng)默認(rèn)值 C)能返回一個(gè)用戶所希望的函數(shù)值 D)返回一個(gè)不確定的值 6.以下不正確的說法是. A)實(shí)參可以是常量,變量或表達(dá)式 B)形參可以是常量,變量或表達(dá)式 C)實(shí)參可以為任意類型 D)如果形參和實(shí)參的類型不一致,以形參類型為準(zhǔn) 7.C語言規(guī)定,簡單變量做實(shí)參時(shí),它和對應(yīng)的形參之間的數(shù)據(jù)傳遞方式 是. A)地址傳遞 B)值傳遞 C)有實(shí)參傳給形參,再由形參傳給實(shí)參 D)由用戶指定傳遞方式 8.以下程序由語法錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說法是. A)語句void prt_char( );有錯(cuò),它是函數(shù)調(diào)用語句,不能用void說明 B)變量名不能使用大寫字母 C)函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾 D)函數(shù)名不能使用下劃線 9.C語言規(guī)定,函數(shù)返回值的類型是由 決定的. A)return語句中的表達(dá)式類型 B)調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型 C)調(diào)用該函數(shù)時(shí)由系統(tǒng)臨時(shí) D)在定義函數(shù)時(shí)所指定的函數(shù)類型 10.以下正確的描述是. A)函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套 B)函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套 C)函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套 D)函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套 11.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是. A)數(shù)組的首地址 B)數(shù)組中第一個(gè)元素的值 C)數(shù)組中的全部元素的值 D)數(shù)組元素的個(gè)數(shù) 12.假設(shè)調(diào)用函數(shù)有以下定義和函數(shù)f調(diào)用,則函數(shù)f中對形參數(shù)組錯(cuò)誤 定義的是. char c5=a,b,0,c,0; printf(“%s“,c); A)f(int array6) B)f(int array3) C)f(itn array4) D)f(int array25) 13.如果在一個(gè)函數(shù)中的復(fù)合語句中定義了一個(gè)變量,則該變量. A)只在該復(fù)合語句中有定義 B)在該函數(shù)中有定義 C)在本程序范圍內(nèi)有定義 D)為非法變量 14.以下不正確的說法是. A)在不同函數(shù)中可以使用相同名字的變量 B)形式參數(shù)是局部變量 C)在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有定義 D)在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有定義 15.以下不正確的說法是. A)形參的存儲單元是動態(tài)分配的 B)函數(shù)中的局部變量都是動態(tài)存儲 C)全局變量都是靜態(tài)存儲 D)動態(tài)分配的變量的存儲空間在函數(shù)結(jié)束調(diào)用后就被釋放了 16.下面程序的輸出是. int i=2 ; printf(“%d%d%d“,i*=2,+i,i+) ; A) 8,4,2 B)8,4,3 C)4,4,5 D)4,5,6 17.已知一個(gè)函數(shù)的定義如下: double fun(int x, double y) 則該函數(shù)正確的函數(shù)原型聲明為: A)double fun (int x,double y) B)fun (int x,double y) C)double fun (int ,double ); D)fun(x,y) ; 18.關(guān)于函數(shù)聲明,以下不正確的說法是. A)如果函數(shù)定義出現(xiàn)在函數(shù)調(diào)用之前,可以不必加函數(shù)原型聲明 B)如果在所有函數(shù)定義之前,在函數(shù)外部已做了聲明,則各個(gè)主調(diào)函數(shù) 不必再做函數(shù)原型聲明 C)函數(shù)再調(diào)用之前,一定要聲明函數(shù)原型,保證編譯系統(tǒng)進(jìn)行全面的調(diào) 用檢查 D)標(biāo)準(zhǔn)庫不需要函數(shù)原型聲明 19.以下不正確的說法是 . A)全局變量,靜態(tài)變量的初值是在編譯時(shí)指定的 B)靜態(tài)變量如果沒有指定初值,則其初值為0 C)局部變量如果沒有指定初值,則其初值不確定 D)函數(shù)中的靜態(tài)變量在函數(shù)每次調(diào)用時(shí),都會重新設(shè)置初值 20.以下不正確的說法是. A)register變量可以提高變量使用的執(zhí)行效率 B)register變量由于使用的是CPU的寄存器,其數(shù)目是有限制的 C)extern變量定義的存儲空間按變量類型分配 D)全局變量使得函數(shù)之間的“耦合性“更加緊密,不利于模塊化的要求 二.填空題 1.C語言函數(shù)返回類型的默認(rèn)定義類型是 . 3.函數(shù)的實(shí)參傳遞到形參有兩種方式: 和 . 4.在一個(gè)函數(shù)內(nèi)部調(diào)用另一個(gè)函數(shù)的調(diào)用方式稱為 .在一個(gè)函數(shù)內(nèi)部 直接或間接調(diào)用該函數(shù)成為函數(shù) 的調(diào)用方式. 5.C語言變量按其作用域分為 和 .按其生存期分為 和 . 6.已知函數(shù)定義:void dothat(int n,double x) ,其函數(shù)聲 明的兩種寫法為 , . 7.C語言變量的存儲類別有 , , 和 . 8.凡在函數(shù)中未指定存儲類別的局部變量,其默認(rèn)的存儲類別為 . 9.在一個(gè)C程序中,若要定義一個(gè)只允許本源程序文件中所有函數(shù)使用 的全局變量,則該變量需要定義的存儲類別為 . 10.變量被賦初值可以分為兩個(gè)階段:即 和 . 三.程序閱讀題 1.寫出下面程序的運(yùn)行結(jié)果. func (int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return (m); main ( ) int k=4,m=1,p1,p2; p1=func(k,m) ; p2=func(k,m) ; printf(“%d,%dn“,p1,p2) ; 2.寫出下面程序的運(yùn)行結(jié)果. # define MAX 10 int aMAX, i ; su

溫馨提示

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

最新文檔

評論

0/150

提交評論