




已閱讀5頁,還剩35頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言習題集 習題一 一.填空題 1.C程序是由( )構成的,一個C程序中至少包含( ) .因此,( ) 是C程序 的基本單位. 2.C程序注釋是由( ) 和( ) 所界定的文字信息組成的. 3.函數體一般包括( ) 和( ) . 二.判斷題 1.一個C程序的執行總是從該程序的main函數開始,在main函數最后結 束. 【 】 2.main函數必須寫在一個C程序的最前面. 【 】 3.一個C程序可以包含若干的函數.【 】 4.C程序的注釋部分可以出現在程序的任何位置,它對程序的編譯和運行 不起任何作用.但是可以增加程序的可讀性.【 】 5.C程序的注釋只能是一行.【 】 6.C程序的注釋不能是中文文字信息.【 】 8.可以使用Turbo C來編譯和連接一個C程序.【 】 9.可以使用Turbo C來運行一個C程序.【 】 10.可以使用Turbo C來實時調試(即動態調試)一個C程序.【 】 三.簡答題 1. 寫出一個C程序的基本結構. 2. 簡要敘述使用Turbo C 2.0編譯和運行一個程序的步驟. 四.編程題 1. 提高題:參照課本例1.1,試編寫一個C程序,輸出如下信息.(提示:使 用鍵盤上的一些符號). 2. 提高題:試編寫一個C程序,輸出如下信息. 試試看,可以輸出其他組合圖案嗎 習題二 一.選擇題 1,合法的字符常量是 . A) t B) “A“ C) a D)x32 2, 合法的字符常量是 . A) 084 B) 84 C) ab D)x43 3,是C語言提供的合法的數據類型關鍵字. A) Float B) signed C) integer D)Char 4,在以下各組標識符中,合法的標識符是. (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,下面選項中,不是合法整型常量的是 . A)160 B)-0xcdg C)-01 D)-0x48a 7,判斷int x = 0xaffbc;x的結果是 . A)賦值非法 B)溢出 C)為affb D)為ffbc 8,下面選項中,均是合法浮點數的是 . 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語言中,要求參加運算的數必須時整數的運算符是 . A)/ B)* C)% D) = 10,在C語言中,字符型數據在內存中以 形式存放. 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語言轉義字符. A)b B) 0xf C)037 D) 13,對于語句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判斷中, 是正確的. A)語法錯誤 B)f為5.0 C)f為0.0 D)f為2.0 14,與代數式(x*y)/(u*v) 不等價的C語言表達式是. A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15,在C語言中,數字029是一個. A)八進制數 B)十六進制數 C)十進制數 D)非法數 16,C語言中整數-8在內存中的存儲形式為 . A)1111111111111000 B)100000000001000 C)000000000001000 D)1111111111110111 17,對于char cx= 039;語句,正確的是. A)不合法 B)cx的ASCII值是33 C)cx的值為四個字符 D)cx的值為三個字符 18,若int k=7,x=12;則能使值為3的表達式是 . A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 19,為了計算s=10!(即10的階乘),則s變量應定義為 . A)int B)unsigned C)long D)以上三種類型均可 20,以下所列的C語言常量中,錯誤的是. A)0xFF B)1.2e0.5 C)2L D)72 21,假定x和y為double型,則表達式x=2,y=x+3/2的值是 . A)3.500000 B)3 C)2.000000 D)3.000000 22,設變量n為float型,m為int類型,則以下能實現將n中的數值保留小數 點后兩位,第三位進行四舍五入運算的表達式是 . 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,下選項中不屬于C語言的類型是 . A)signed short int B)unsigned long int B)unsigned int D)long short 25,設以下變量均為int類型,則值不等于7的表達式是 . 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編譯系統上,若定義long a;,則能給a賦40000的正確語句是 . A)a=20000+20000; B)a=4000*10; C)30000+10000; D)a=4000L*10L; 二.填空題 1.在C語言中(以16位PC機為例),一個char數據在內存中所占字節數為 , 其數值范圍為 ;一個int數據在內存中所占字節數為 ,其數值范圍為 ; 一個long數據在內存中所占字節數為 ,其數值范圍為 ;一個float數據 在內存中所占字節數為 ,其數值范圍為 . 2.C語言的標識符只能由大小寫字母,數字和下劃線三種字符組成,而且 第一個字符必須為 . 3.字符常量使用一對 界定單個字符,而字符串常量使用一對 來界定若 干個字符的序列. 4.在C語言中,不同運算符之間運算次序存在 的區別,同一運算符之間運 算次序存在 的規則. 5.設x,i,j,k都是int型變量,表達式x=(i=4,j=16,k=32)計算后,x的值為 . 6.設x=2.5,a=7,y=4.7, 則x+a%3*(int)(x+y)%2/4為 . 7.設a=2,b=3,x=3.5,y=2.5,則(float)(a+b)/2+(int)x%(int)y為 . 8.數學式子 的C語言表達式為 . 9.數學式子 的C語言表達式為 . 10.已知:char a=a,b=b,c=c,i;則表達式i=a+b+c的值為 . 11.已知int a=12,n=5;則:表達式運算后a的值各為 . a+=a a-=2 a*=2+3 a/=a+a n%=(n%=2) a+=a-=a*=a 12.設int a; float f; double i ;則表達式10+a+i*f值的數據類型 是 . 13.若a為int型變量,則表達式 (a=4*5,a*2) , a+6的值為 . 14.假設所有變量均為整型,則表達式(a=2,b=5,a+,b+,a+b)的值為 . 15.已知a,b,c是一個十進制數的百位,十位,個位,則該數的表達式是 . 16.定義:double x=3.5,y=3.2;則表達式(int)x*0.5的值是 ,表達式 y+=x+的值是 . 17.定義:int m=5, n=3;則表達式m/=n+4的值是 ,表達式m=(m=1,n=2,n- m)的值是 ,表達式m+=m-=(m=1)*(n=2)的值是 . 18.表達式5%(-3)的值是 ,表達式-5%(-3)的值是 . 19.若a是int變量,則執行表達式a=25/3%3后,a的值是 . 20.數學式子 的C語言表達式為: . 三.判斷題 1.在C程序中對用到的所有數據都必須指定其數據類型.【 】 2.一個變量在內存中占據一定的存儲單元.【 】 3.一個實型變量的值肯定是精確的.【 】 4.對幾個變量在定義時賦初值可以寫成:int a=b=c=3;【 】 5.自增運算符(+)或自減運算符(-)只能用于變量,不能用于常量或表 達式.【 】 6.在C程序的表達式中,為了明確表達式的運算次序,常使用括號“()“.【 】 7.%運算符要求運算數必須是整數.【 】 8.若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型 數.【 】 9.在C程序中,逗號運算符的優先級最低.【 】 10.C語言不允許混合類型數據間進行運算.【 】 四.簡答題 1.為什么C語言的字符型可以進行數值運算 2.簡述a和“a“的區別. 3.程序:int m=12; m=15;為什么整型變量m的值在運算后不是當初的12, 而是15 4.將下面各數用八進制和十六進制數表示: 十進制 32 -1 -32768 2002 -128 0 八進制 十六進制 6.華氏溫度F與攝氏溫度c的轉換公式為:c=(F-32)*5/9 ,則float c, F; c=5/9*(F-32)是其對應的C語言表達式嗎 如果不是,為什么 五.程序閱讀題 1.寫出以下程序運行的結果. 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.寫出以下程序運行的結果. main ( ) int i,j,m,n; i=8; j=10; m=+i; n=j+; printf(“%d,%d,%d,%d“,i,j,m,n); 六.編程題 1.假設m是一個三位數,則寫出將m的個位,十位,百位反序而成的三位數 (例如:123反序為321)的C語言表達式. 2.已知int x=10,y=12;寫出將x和y的值互相交換的表達式. 習題三 一.選擇題 1.C語言的程序一行寫不下時,可以. A)用逗號換行 B)用分號換行 C)在任意一空格處換行 D)用回車符換行 2.putchar ( )函數可以向終端輸出一個. A)整型變量表達式值 B)實型變量值 C)字符串 D)字符或字符型變量值 3.執行下列程序片段時輸出結果是. unsigned int a=65535; printf(“%d“,a); A)65535 B)-1 C)-32767 D)1 4.執行下列程序片段時輸出結果是. 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,當從第一列開始輸入數據時,正確的數據輸入方式是 . 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,則應按 方式輸入數據. 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.執行下列程序片段時輸出結果是. int x=13,y=5; printf(“%d“,x%=(y/=2); A)3 B)2 C)1 D)0 8.下列程序的輸出結果是. main ( ) int x=023; printf(“%d“,-x); A)17 B)18 C)23 D)24 9.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和 B,當從第一列開始輸入數據時,正確的輸入方式是. 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.執行下列程序片段時輸出結果是. 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.若運行時輸入:12345678,則下列程序運行結果為. main ( ) int a,b; scanf(“%2d%2d%3d“, printf(“%dn“,a+b); A)46 B)579 C)5690 D)出錯 13.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3,使I的值為1,j的值為 2,k的值為3,以下選項中正確的輸入語句是. 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函數調用語句是 . 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,則正確的數據輸入方式是 . A)132 B)1,3,2 C)a=1 b=3 c=2 D)a=1,b=3,c=2 二.填空題 1.一個C程序由若干個 文件組成,而一個這樣的文件可以由若干個 和 以及 組成. 2.C語句可以分為 , , , 和 等5種類型. 3.C控制語句有 種. 4.一個表達式要構成一個C語句,必須 . 5.復合語句是用一對 界定的語句塊. 6.printf函數和scanf函數的格式說明都使用 字符開始. 7.scanf處理輸入數據時,遇到下列情況時該數據認為結束:(1) , (2) ,(3) . 8.已有int i,j; float x;為將-10賦給i,12賦給j,410.34賦給x;則對應 以下scanf函數調用語句的數據輸入形式是 . 9.C語言本身不提供輸入輸出語句,其輸入輸出操作是由 來實現的. 10.一般地,調用標準字符或格式輸入輸出庫函數時,文件開頭應有以下 預編譯命令: . 三.程序閱讀題 1.用下面的scanf函數輸入數據,使 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.寫出以下程序的輸出結果. main ( ) int y=3,x=3,z=1; printf(“%d %dn“,(+x,y+),z+2); 3.寫出以下程序的輸出結果. main ( ) int a=12345; float b=-198.345, c=6.5; printf(“a=%4d,b=%-10.2e,c=%6.2fn“,a,b,c); 4.寫出以下程序的輸出結果. main ( ) int x=-2345; float y=-12.3; printf(“%6D,%06.2F“,x,y); 5. 寫出以下程序的輸出結果. main ( ) int a=252; printf(“a=%o a=%#on“,a,a); printf(“a=%x a=%#xn“,a,a); 6. 寫出以下程序的輸出結果. main ( ) int x=12; double a=3.1415926; printf(“%6d#,%-6d#n“,x,x); printf(“%14.101f#n“,a); 四.程序填空題 1.下列程序的輸出結果是16.00,請填(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兩個變量中的值互換的程序來. 2.若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=a,c2=b. 想得到以下的輸出格式和結果,請寫出程序(包括定義變量類型和設計輸 出). 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.設圓半徑r=1.5,圓柱高h=3,求圓周長,圓面積,圓球表面積,圓球體積, 圓柱體積.用scanf輸入數據,輸出計算結果;輸出時要求有文字說明,取 小數點后2位數字,請編寫程序. 4.編程序:用getchar函數讀入兩個字符給c1,c2,然后分別用putchar和 printf函數輸出這兩個字符.并思考以下問題:(1)變量c1,c2應定義為字 符型或整型 或兩者皆可 (2)要求輸出C1和C2值的ASCII碼,應如何處理 用putchar函數還是printf函數 (3)整型變量與字符型變量是否在任何 情況下都可以互相替代 如: char c1,c2 與 int c1,c2 是否無條件地等價 習題四 一.選擇題 1.邏輯運算符兩側運算對象的數據類型. A)只能是0或1 B)只能是0或非0正數 C)只能是整型或字符型數據 D)可以是任何類型的數據 2.下列表達式中, 不滿足“當x的值為偶數時值為真,為奇數時值為假“的 要求. 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.能正確表示“當x的取值在1,10和200,210范圍內為真,否則為 假“的表達式是. 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)有語法錯誤,不能通過編譯 B)若輸入3和4,則輸出4和5 C)若輸入4和3,則輸出3和4 D)若輸入4和3,則輸出4和5 10.若w=1,x=2,y=3,z=4,則條件表達式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.下述程序的輸出結果是 . main ( ) int x=-1,y=4,k; k=x+B 則表達式(x else x=1; else x=0; 五.程序閱讀題 1.若運行時輸入100,寫出以下程序的運行結果. main ( ) int a ; scanf(“%d“, printf(“%s“,(a%2!=0) “No“:“Yes“); 2.寫出以下程序的運行結果. main ( ) int a=2,b=7,c=5; switch (a0) case 1: switch (b=A | | c=0); while (s) ; -s ; 7.下述程序段的運行結果是 . 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.寫出下面程序運行的結果. main ( ) int i,j,k=19; while (i=k-1) k-=3 ; if (k%5=0) i+ ; continue ; else if (k0) 22.下面敘述正確的是 . A)兩個字符串所包含的字符個數相同時,才能比較字符串 B)字符個數多的字符串比字符個數少的字符串大 C)字符串“STOP “與“STOP“相等 D)字符串“That“小于字符串“The“ 23.下面有關字符數組的描述中錯誤的是 . A)字符數組可以存放字符串 B)字符串可以整體輸入,輸出 C)可以在賦值語句中通過賦值運算對字符數組整體賦值 D)不可以用關系運算符對字符數組中的字符串進行比較 24.下面程序的輸出結果是 . 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.下面程序的輸出結果是 . 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語言中,二維數組的元素在內存中的存放順序是 . 2.若有定義:double x35,則x數組中行下標的下限為 ,列下標的 下限為 . 3.若有定義:int a34=1,2,0,4,6,8,10;則初始化 后,a12的值為 ,a21得到的值為 . 4.字符串“abn012“的長度是 . 5.下面程序段的運行結果是 . char x =“the teacher“; int i=0; while (x+i!=0) if (xi-1=t) printf(“%c“,xi); 6.欲為字符串S1輸入“Hello World!“,其語句是 . 7.欲將字符串S1復制到字符串S2中,其語句是 . 8.如果在程序中調用了strcat函數,則需要預處理命令 .如果調用了 gets函數,則需要預處理命令 . 9.C語言數組的下標總是從 開始,不可以為負數;構成數組各個元素具 有相同的 . 10.字符串是以 為結束標志的一維字符數組.有定義:char a=“;則 a數組的長度是 . 三.程序閱讀題 1.寫出下面程序的運行結果. 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.下面程序為數組輸入數據并輸出結果;判斷下面程序的正誤,如果錯 誤請改正過來. main ( ) int a3=3*0 ; int i; for (i=0; i4; i+) scanf(“%d“, for (i=0; i4; i+) printf(“%d“,ai); 2.下面程序為數組輸入數據并輸出結果;判斷下面程序的正誤,如果錯 誤請改正過來. main ( ) int a3=1,2,3 , i; scanf(“%d%d%d“, for (i=0; i3; i+) printf(“%d“,ai); 3.下面程序的功能是:先將在字符串s中的字符按逆序存放到t串中,然 后把s中的字符按正序連接到t串的后面.例如,當s中的字符串 為:“ABCDE“時則t中的字符串應為:“EDCBAABCDE“;判斷下面程序的正 誤,如果錯誤請改正過來. main ( ) char s80,t200; int i,sl ; gets(s); sl = strlen(s); for (i=0; i for (i=0; i puts(t); 4.下面程序的功能是:將n各無序整數從小到大排序;判斷下面程序的正 誤,如果錯誤請改正過來. 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的主對角線上的元素之和,請填(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.下面程序將十進制整數base轉換成n進制,請填(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個數,找出最大值和最小值所在的位置,并 把兩者對調,然后輸出調整后的10個數,請填(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.下面程序用“插入法“對數組a進行由小到大的排序,請填(3)空使程序 完整. 經典算法提示: 簡單插入排序算法的基本思想使將數組處理n-1次,第k次處理是將第k 個元素插入到目前的位置.第k次的元素是這樣插入的:在第k次處理時, 前面的元素a0,a1,ak-1必定已排成了升序,將ak與ak- 1,ak-2,a0逐個比較(由后向前),若有ajaj ) 【2 】; j-; 【3 】=k ; for (i=0; i10; i+) printf(“%d“,ai); 5.下面程序用“兩路合并法“把兩個已按升序(由小到大)排列的數組合 并成一個新的升序數組,請填(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.下面程序的功能是在一個字符串中查找一個指定的字符,若字符串中 包含該字符則輸出該字符在字符串中第一次出現的位置(下標值),否則 輸出-1,請填(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.下面程序用“順序查找法“查找數組a中是否存在某一關鍵字,請填(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的乘積,結果存放在矩陣C中并按矩陣形式輸 出,請填(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,輸出一個正數;如果S1=S2,輸出0;如果S1 以上程序均使用gets或puts函數輸入,輸出字符串.不能使用string.h 中的系統函數. 習題七 一.選擇題 1.以下正確的說法是. A)用戶若需要調用標準庫函數,調用前必須重新定義 B)用戶可以重新定義標準庫函數,如若此,該函數將失去原有定義 C)系統不允許用戶重新定義標準庫函數 D)用戶若需要使用標準庫函數,調用前不必使用預處理命令將該函數所 在的頭文件包含編譯,系統會自動調用. 2.以下正確的函數定義是. 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)實參和與其對應的形參各占用獨立的存儲單元 B)實參和與其對應的形參共占用一個存儲單元 C)只有當實參和與其對應的形參同名時才共占用相同的存儲單元 D)形參時虛擬的,不占用存儲單元 4.以下正確的函數定義是 . 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.若調用一個函數,且此函數中沒有return語句,則正確的說法是 . A)該函數沒有返回值 B)該函數返回若干個系統默認值 C)能返回一個用戶所希望的函數值 D)返回一個不確定的值 6.以下不正確的說法是. A)實參可以是常量,變量或表達式 B)形參可以是常量,變量或表達式 C)實參可以為任意類型 D)如果形參和實參的類型不一致,以形參類型為準 7.C語言規定,簡單變量做實參時,它和對應的形參之間的數據傳遞方式 是. A)地址傳遞 B)值傳遞 C)有實參傳給形參,再由形參傳給實參 D)由用戶指定傳遞方式 8.以下程序由語法錯誤,有關錯誤原因的正確說法是. A)語句void prt_char( );有錯,它是函數調用語句,不能用void說明 B)變量名不能使用大寫字母 C)函數說明和函數調用語句之間有矛盾 D)函數名不能使用下劃線 9.C語言規定,函數返回值的類型是由 決定的. A)return語句中的表達式類型 B)調用該函數時的主調函數類型 C)調用該函數時由系統臨時 D)在定義函數時所指定的函數類型 10.以下正確的描述是. A)函數的定義可以嵌套,但函數的調用不可以嵌套 B)函數的定義不可以嵌套,但函數的調用可以嵌套 C)函數的定義和函數的調用均不可以嵌套 D)函數的定義和函數的調用均可以嵌套 11.若用數組名作為函數調用的實參,傳遞給形參的是. A)數組的首地址 B)數組中第一個元素的值 C)數組中的全部元素的值 D)數組元素的個數 12.假設調用函數有以下定義和函數f調用,則函數f中對形參數組錯誤 定義的是. 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.如果在一個函數中的復合語句中定義了一個變量,則該變量. A)只在該復合語句中有定義 B)在該函數中有定義 C)在本程序范圍內有定義 D)為非法變量 14.以下不正確的說法是. A)在不同函數中可以使用相同名字的變量 B)形式參數是局部變量 C)在函數內定義的變量只在本函數范圍內有定義 D)在函數內的復合語句中定義的變量在本函數范圍內有定義 15.以下不正確的說法是. A)形參的存儲單元是動態分配的 B)函數中的局部變量都是動態存儲 C)全局變量都是靜態存儲 D)動態分配的變量的存儲空間在函數結束調用后就被釋放了 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.已知一個函數的定義如下: double fun(int x, double y) 則該函數正確的函數原型聲明為: A)double fun (int x,double y) B)fun (int x,double y) C)double fun (int ,double ); D)fun(x,y) ; 18.關于函數聲明,以下不正確的說法是. A)如果函數定義出現在函數調用之前,可以不必加函數原型聲明 B)如果在所有函數定義之前,在函數外部已做了聲明,則各個主調函數 不必再做函數原型聲明 C)函數再調用之前,一定要聲明函數原型,保證編譯系統進行全面的調 用檢查 D)標準庫不需要函數原型聲明 19.以下不正確的說法是 . A)全局變量,靜態變量的初值是在編譯時指定的 B)靜態變量如果沒有指定初值,則其初值為0 C)局部變量如果沒有指定初值,則其初值不確定 D)函數中的靜態變量在函數每次調用時,都會重新設置初值 20.以下不正確的說法是. A)register變量可以提高變量使用的執行效率 B)register變量由于使用的是CPU的寄存器,其數目是有限制的 C)extern變量定義的存儲空間按變量類型分配 D)全局變量使得函數之間的“耦合性“更加緊密,不利于模塊化的要求 二.填空題 1.C語言函數返回類型的默認定義類型是 . 3.函數的實參傳遞到形參有兩種方式: 和 . 4.在一個函數內部調用另一個函數的調用方式稱為 .在一個函數內部 直接或間接調用該函數成為函數 的調用方式. 5.C語言變量按其作用域分為 和 .按其生存期分為 和 . 6.已知函數定義:void dothat(int n,double x) ,其函數聲 明的兩種寫法為 , . 7.C語言變量的存儲類別有 , , 和 . 8.凡在函數中未指定存儲類別的局部變量,其默認的存儲類別為 . 9.在一個C程序中,若要定義一個只允許本源程序文件中所有函數使用 的全局變量,則該變量需要定義的存儲類別為 . 10.變量被賦初值可以分為兩個階段:即 和 . 三.程序閱讀題 1.寫出下面程序的運行結果. 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.寫出下面程序的運行結果. # define MAX 10 int aMAX, i ; su
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 低空經濟與消費模式的關系探索
- 地區經濟發展趨勢表
- 農村合作社農業資源保護利用合同
- 統編人教版三年級語文下冊古詩三首《元日》示范公開課教學課件
- 【流動式起重機司機】復審考試題及答案
- 大連某地產錦繡花城項目報告
- 加油站加氣站雷電防護規章制度
- 北師大版小學二年級數學下冊教學工作計劃
- 預測未來交通無人駕駛汽車技術發展趨勢
- 項目進度管理與風險控制在數據分析中的應用
- 突發公共衛生事件衛生應急
- 中國人民大學-政治經濟學-第12章-社會主義基本經濟制度
- 2023年學校管理心理學考試復習題庫(含答案)
- 北京石油化工學院《數據采集與預處理》2022-2023學年第一學期期末試卷
- 2024年度技術服務合同服務內容及其費用3篇
- 2024年安徽省高校分類對口招生考試數學試卷真題
- 2024年黨建知識競賽培訓題庫及答案
- PVC膜生產工藝流程
- 清華版六年級信息技術下冊全冊教案
- 河北省邯鄲市(2024年-2025年小學四年級語文)部編版小升初模擬((上下)學期)試卷及答案
- 四川省大邑中學2024-2025學年高一新生上學期入學分班質量檢測數學試題
評論
0/150
提交評論