




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、上海理工大學上海市計算機二級考試 (C 語言 )復習資料題目C 語言是一種面向過程的程序設計語言,函數(shù)、指針、地址和遞歸概念是它 的難點。本復習資料以教學大綱為依據(jù), 提供各類題型和練習, 重在“基本概念”、 “常用算法”、“閱讀分析程序”、“編程技能”等諸方面的強化訓練,按照上海市 計算機二級考試( C 語言)的框架,提供“基礎知識、讀程序寫結果、改錯、編 程序和程序指令填空”幾部份,供學生學習參考,文末附習題參考解答。1. B2. C3. C4. B5. D6. A7. A8. C9. C10.A11.C12. A13. B14. B15. C16. B17. D18.B19. A20.C
2、21.C22. B23. B24. C25. D26. B27. B28. D29. C30.C31.D32. C33. C34. B35. C36. D37. C38. B39. C40.B41.C42. B43. C44. B45. B46. A47. D48. D49. D50. D51. A 52. C第一部份:基礎知識1. 下述循環(huán)的循環(huán)次數(shù)是()int k=2;while(k=0) printf(%d, k); k-;printf(n);A、無限次B、0次C、 1 次D、 2 次2. 在下列選項中,沒有構成死循環(huán)的程序段是()A、int i=100 ;B、for(;)while(1
3、)i=i%100+1 ;if (i100)break;C、int k=1000;D、 int s=36;do +k ; while (k=10000);while (s);-s;3.若有以下定義和語句,且0=i10,則對數(shù)組元素的錯誤引用是()int a=0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, *p, i;p=a;A、*( a+i)B、ap-aC、p+iD、*( &ai )4.下面能正確將字符串 Boy 進行完整賦值操作的語句是( B)A、char s3=B, o, y;B、char s =Boy;C、char s3=Boy ;D、char s3;s0=B;s1=o;s2
4、=y;D、 ABCDBCDCDDD、FEOF9. C語言規(guī)定:在一個源程序中,A、必須在最開始C、可以任意A、AB、floatC、b-aD、 _123tempINTD、 0101 x1f B、一個整型表達式D、一個不合法的表達式5.以下程序段的輸出結果是(D)char arr =ABCD; char*ptr;for (ptr=arr; ptrarr+4 ; ptr+)printf (%sn, ptr);A、ABCDB、 AC、 D6. C語言的auto型變量是(A)A、 存儲在動態(tài)存儲區(qū)中。B、 存儲在靜態(tài)存儲區(qū)中。C、 存儲在計算機CPU的寄存器中。D、 存儲在外存儲器中。7.測試文件是否結
5、束函數(shù)的函數(shù)名是(A)A、feofB、EOFC、eof8.下面程序段的輸出結果是(C)int a4=1,2,3,4,5,6,7,8,9,10,11,12,(*p)4;p=a;printf(“d,*(*(p)+2);A、1B、5C、3ma in函數(shù)的位置是(C)B、必須在系統(tǒng)調用的函數(shù)的后面D、必須在最后10.一個C程序的執(zhí)行是從(A)A、本程序的main函數(shù)開始,到main函數(shù)結束B、本程序的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結束C、本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結束D、 本程序文件的第一個函數(shù)開始,到本程序 main函數(shù)結束11.下面的四個選項中,均是不合法的用
6、戶標識符的選項是(C)P_0la0gotodo_Aint12.下面四個選項中,均是合法轉義字符的選項是(A)A、B、C、018017f xab13. sizeof(float)是(B)A、一個雙精度型的表達式C、一種函數(shù)調用14.下述循環(huán)的循環(huán)次數(shù)是(B)int k=2 ;while (k=0) printf (%d,k);k- ; printf (n);A、無限次B、0次C、1次D、2次15.若有以下定義和語句,且0=i10,則對數(shù)組元素的錯誤引用是(C)int a=0,1, 2, 3, 4, 5, 6, 7, 8, 9,*p,i ;P=a;A、*( a+i)B、ap-aC、p+iD、* (
7、& ai)16.若二維數(shù)組a有m列,則在aij前的元素個數(shù)為(B)A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+117.對兩個數(shù)組a和b進行如下初始化char a =” ABCDEF ;char b = A , B , C , D , E , F ;則以下敘述正確的是(D)A、a與b數(shù)組完全相同B、a與b長度相同Cj a和b中都存放字符串D、a數(shù)組比b數(shù)組長度長18. C語言中有關全局變量的說法,正確的是(B)A、 在使用到它的所有文件中均需定義B、 在函數(shù)體外定義一次Cj 在main函數(shù)中定義D.在main函數(shù)外定義19.若有數(shù)組名作為函數(shù)調用時的實參,則傳遞給該函數(shù)形參的是
8、( A)A、數(shù)組的首地址B、數(shù)組的第一個元素的值C、 數(shù)組中全部元素的值D、數(shù)組元素的個數(shù)20.下面程序段的輸出結果是(C)int a3=1,2,3,4,5,6,7,8,9,10,11,12,(*p)3;P=a;printf(“r%d,*(*(pM)+2);A、3Bj 4Cj 6D、721.不屬于C語言程序基本結構的是(C)A)順序結構B)選擇結構C)函數(shù)結構D)循環(huán)結構22.若有定義及賦值:int a66 , *p ; p=*a;則下列各式中能表示元素a01列地址的表達式是 _B _ 。A) &a0+1B) a0+1 C) *(p+1)D) p+123.十進制數(shù)123轉換成十六進制數(shù)是B_
9、。A) 7AHB) 7BHC) 7CHD)7DH24. C語言中合法的字符常量是_C 。A) 058B) abC) xabD) ” 0”25.下列字符中,ASC U碼值最小的是D。A) AB) aC) 0D)空格26.下面程序輸出結果是 _B_mai n()int k=0; char c=A;do switch( C+ ) case A: k+; break;case B: k-;case C: k+=2; break;case D: k=k%2; continue;case E: k=k*10; break; default: k=k/3;k+;while( cvG);prin tf( k=
10、%dn,k);A)k=3D)k=0B)k=4C)k=227.設有如下定義:int x=l , y=-1 ;,則語句:printf(%dn, (x-&+y);的輸出結果是(B)A)1B)0C)-1D)228. C語言規(guī)定, 函數(shù)返回值的類型是由DoA)return語句中的表達式類型所決定B)調用函數(shù)時的主調函數(shù)類型所決定C)調用函數(shù)時系統(tǒng)臨時決定D)在定義該函數(shù)時所指定的函數(shù)類型所決定29.下列定義中,不是指針數(shù)組定義的是C_oA) int *p5 ;B) float *q4 ;C) int (*r)6 ;D) char *w7;30.以下程序運行結果為 _C _#defi ne PT 3.5#
11、defi ne S(x) PT*x*xmai n() int a=1, b=2;prin tf(%4.1fn,S(a+b);A)14.0B)31.5C)7.5D)10.531.下面程序輸出結果是(D)mai n() char a=ABCDEFG, k, *p;fun (a, 0, 2); fun (a, 4, 6);prin tf(%sn, a);fun(char *s, int p1, int p2) char c;while(p1p2)c=sp1; sp1=sp2;sp2=c; p1+; p2-;A)ABCDEFG B)DEFGABC C)GFEDCBA D)CBADGFE32.以下程序的
12、輸出結果是 (C )main() int a=1,i;for(i=0;i4;i+) printf(%d,func(a);func(a)int a; int b=0; static int c=1;b+;c+; return(a+b+c);A)4444 B)4455 C)4567 D)567833.執(zhí)行下面的程序后 , y 的值是 _ C_ (不應該錯!)main() int a=2,4,6,8,10;int y=1, x, *p=a+1;for( x=0; x3; x+ ) y+=*(p+x);printf( %dn, y );A)17 B)18 C)19 D)2034.若使用下述程序段將整數(shù)
13、30和浮點數(shù)5.5分別賦給變量a和b,那么輸 入應該是 ( B)int a;float b;scanf(a=%d,b=%f,&a,&b);A) 30 5.0 B) a=30,b=5.5 C) 30,5.5 D) a=30 b=5.535.設有如下定義 :int (*ptr)();則以下敘述中正確的是 ( C ) (是圓括號不是方括號)A) ptr 是指向一維數(shù)組的指針變量B) ptr 是指向 int 型數(shù)據(jù)的指針變量C) ptr 是指向函數(shù)的指針 , 該函數(shù)返回一個 int 型數(shù)據(jù)D)ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針36.設有以下定義:int a43=1,2,3,4,
14、5,6,7,8,9,10,11,12;int (*ptr)3=a, *p = a0;則以下能夠正確表示數(shù)組元素a12的表達式的是(D )A)*(*pt 葉1)2B)*(*(p+5)C)(*pt 葉1)+2D)*(*(a+1)+2)37. 若有以下定義和語句,且0=i10,則對數(shù)組元素的錯誤引用是(C )int a=0 , 1, 2, 3, 4, 5, 6, 7, 8, 9, *p, i; p=a;A) *(a+i)B) ap-aC) p+iD) *(&ai)38.執(zhí)行下面的程序后,a的值是(B )#defi ne SQR(X) X*Xmai n() int a=10,k=2,m=1; a/=S
15、QR(k+m)/SQR(k+m);prin tf(%dn,a);解法如下!宏展開后類似于這樣a /= k+m*k+m/K+m*k+m;a / = 2+1 * 2 +1/2+1*2+1;a/ =7;a= 10/7 = 1;整數(shù)除法,忽略小數(shù)A)10B)1C)9D)039.表達式18/4*sqrt(4.0)/8的值的數(shù)據(jù)類型為(C)(在編譯器里自動轉為double)A/ intB/ floatC/ doubleD/ 不確定40.當a=1,b=3,c=5,d=4時,執(zhí)行完下面一段程序后x的值是(B ) if (ab)if (cd)x=1;elseif (ac)if (bd)x=2;else x=3;
16、else x=6;else x=7;A) 1 B)2 C)3 D)641.判斷 char 型變量 ch 是否為大寫字母的正確表達式 ( C )A) A =ch= A )and (ch = A)&(ch = Z)D) (A=ch)42.以下程序的輸出結果是 ( B )main() int i, k, a10, p3; k = 5;for(i = 0;i10;i+) ai=i;for(i = 0;i3;i+) pi=ai*(i+1);for(i = 0;i=0&chi=9;i+=2)s=10*s+chi-0;printf(%dn,s); A)12ba56B)6521C)6D)6244.以下程序運行
17、后的結果是 ( B)。main() char s=12345678; int v4=0,1,1,0,k,i;for (k=0; sk;k+)switch (sk)case1: i=0;case2: i=1;case3: i=2;case4: i=3; vi+;for(k=0;k4;k+) printf(%d ,vk);A)0 1 2 3B)0 1 1 8C)5 6 7 8D)0 2 4 645.下面程序輸出結果是 ( B ) (+- 運算符的先后順序!)main()int k=0; char c=A;do switch( c+ ) case A: k+; break; case B: k-;A
18、)50B) 6650.下面程序輸出結果是 ( D ) void prtv(int *x) printf(%dn,+*x);main() int a=25;prtv(&a);A)23B)2451.下面程序的輸出是 ( A ) int aa33 = 2,4,6;main() int i, *p = &aa00;for (i = 0; i 2; i+)if(i = 0)aaii+1 = *p + 1;C) 52D) 68+- 運算符的先后順序)C)25D)26case C: k+=2; break; case D: k=k%2; continue; case E: k=k*10; break; de
19、fault: k=k/3;k+;while( c=0 II b=0)&(a0 II b=0&b=0)&(a0&b0)&(a+b048.要把高級語言編寫的源程序轉換為目標程序,需要使用 ( D )A) 編輯程序B) 驅動程序C) 診斷程序D) 編譯程序49.英文小寫字母 d 的 ASCII 碼為 100(十進制) ,英文大寫字母 D 的 ASCII 碼 為 ( D )else+p;printf(%d, *p);A)23B)26C)33D)3652.該程序的執(zhí)行結果是(B )#i nclude #include mai n() int fun (char*,i nt);char *p;p=1234
20、567;fun (p,strle n(p);puts(p);int fun( char *w,i nt n) char t,*s1,*s2;s1=w; s2=w+n-1;while (s1s2) t=*s1+;*s1=*s2-;*s2=t;A) 1234567B) 7654321C)1711717D )717717153.試寫出下列數(shù)學表達式的 C語言表達式x x y2(x y)(sqrt(x)+sqrt(y)/(2*(x+y);54.下面程序的輸出結果是()#i nclude mai n() char *a=1234; fun (a); prin tf(n); fun( char *s) c
21、har t;if (*s) t=*+s; putchar(t); fun( s); 23455.若有定義及賦值:int a66,*p ; p=*a;則下列各式中能表示元素a01列地址的表達式是(D )A)&a0+1B)a0+1 C)*(p+1)D)p+1?56.如果用八位二進制補碼表示帶符號的定點整數(shù),則能表示的十進制數(shù)的范A) 1B) 261. C 語言中最基本的數(shù)據(jù)類型包括A)整型、實型、邏輯型C)整型、字符型、邏輯型C) 3D) 4( B )B)整型、實型、字符型D)整型、實型、邏輯型、字符型9, *p, i; p=a;C) p+iD) *(&ai)C) DD) ABCDBCD圍是 (
22、C )A) -127 到+127B) -128 到+128C) -127 到+128D) -128 到+12757. 若有定義及賦值:int y,*p, *p1; p=&y ; p1=p; *p1=4 ;則可以輸出變量 y 的地址的語句是 ( D )A) printf ( un,y);B) printf (un,*p1);C)printf(un,*p);D)printf(un,&y );?58.設有int y, u=0, x=15,下列各項中不能使y值為0的是()A) y=x A x;B、y=x I u;C、y=x4;Dy=x&u ;59.二進制數(shù)1111111.101B轉換成十六進制數(shù)是(D
23、 )A) FF.AHB) FF.5HC)7F.AHD)7F.5H60 .字符串” 1 23在”計算機內所占用的字節(jié)數(shù)是( C ) 個。62. C 語言中有關 dowhile 循環(huán)的說法,正確的是 ( D )A)在if語句內不能再使用do-while語句構成的循環(huán)B)do-while語句構成的循環(huán)必須用break語句才能退出C)do-while 語句構成的循環(huán),當 while 語句中的表達式值為非零時結束循環(huán)D)do-while 語句構成的循環(huán),當 while 語句中的表達式值為零時結束循環(huán)63.在C語言中,不正確的int類型的常數(shù)是(D )A) 32768B) 0C) 037D) Xaf!64
24、. 設有如下定義 :int a=2,b=1,c=3,d=4,m=2,n=2;則執(zhí)行表達式:(m=ab)&(n=cd)后,n的值為(D )A) 1B) 2C) 3D) 065.設a,b類型正確,語句:printf(%d , (a=2)&(b= -2);的執(zhí)行結果是(C )A) 2B) -C) 1D) 066. 設有如下定義:int x=l , y=-1 ;,則語句:printf(%dn , (x-&+y);的輸出 結果是 ()A)1B)0C)-1D)267.若有以下定義和語句,且0=i10,則對數(shù)組元素的錯誤引用是()int a=0, 1, 2, 3, 4, 5, 6, 7, 8, A) *(a
25、+i)B) ap-a68.以下程序段的輸出結果是 ()char arr =ABCD ;char *ptr;for( ptr=arr; ptr=y=z, 應使用 C 語言表達式 ( ) A)(x=y)&(y=z) B)(x=y)AND(y=z)C)(x=y=z) D)(x=y)&(y=z)73.以下不能對二維數(shù)組 a 進行正確初始化的語句是 ( )A) int a23 = 0;B) int a 3 = 1,2,0;C) int a23 = 1,2,3,4,5,6;D) int a 3 = 1,2,3,4,5,6;74.以下不正確的描述是 ( )A)break 語句不能用于循環(huán)語句和 switch
26、 語句外的任何其它語句B)在 switch 語句中使用 break 語句或 continue 語句的作用相同C)在循環(huán)語句中使用 continue 語句結束本次循環(huán) , 但不會終止整個循環(huán)D)在循環(huán)語句中使用break語句是,會跳出循環(huán)體,提前結束循環(huán)75.若有以下定義和語句char s12=a book!;printf(%d,strlen(s);則輸出結果是 ( )A)12B)8C)7D)676.以下程序的輸出結果是 ( )main() int a=2,i;for(i=0;i3;i+) printf(%d,func(a);func(a)int a; int b=0; static int c
27、=3;b+;c+;return(a+b+c);A)777B)7 7 7C)789D)7 8 977.執(zhí)行下面的程序后 , y 的值是 ( ) main() int a=2,4,6,8,10;int y=1, x, *p=a+1;for( x=0; x3; x+ ) y+=*(p+x);printf( %dn, y );A)17 B)18 C)19 D)2078.下面程序的輸出是 ( )int aa33 = 2,4,6; main() int i, *p = &aa00;for (i = 0; i 2; i+)if(i = 0) aaii+1 = *p + 1;else+p;printf(%d,
28、 *p);A)23 B)26 C)33 D)3679.設有以下定義:int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*ptr)3=a, *p = a0;則以下能夠正確表示數(shù)組元素 a12 值的表達式的是 ( ) A)*(*ptr+1)2B)*(*(P+5)C)(*ptr+1)+2D)*(*(a+1)+2)80.設有如下的程序段: char str=Hello;char *ptr;ptr=str; 執(zhí)行完上面的程序段后, *(ptr+5) 的值為 ( )A)o B)0 C)不確定的值 D)o的地址81. 假設已定義 char a10 ( )和 char *p=a,
29、下面的賦值語句中,正確的是( )A)a10=Turbo CB)a=Turbo CC)*p=Turbo CD)p=Turbo C82. 下面程序輸出結果是 ()main()C)GFEDCBA D)CBADGFE )D)4 6 char a=ABCDEFG, k, *p; fun(a, 0, 2); fun(a, 4, 6); printf(%sn, a);fun(char *s, int p1, int p2) char c;while(p1p2) c=sp1; sp1=sp2;sp2=c; p1+; p2-;A)ABCDEFG B)DEFGABC83.下列程序的輸出結果是 ( main() i
30、nt a5=2,4,6,8,10,*p,*k; p=a; k=&p; printf(%d ,*(p+); printf(%dn,*k);A)4 4 B)2 2 C)2 484.如有 struct student int no;char name20;char sex; struct int year;int month;int day; birth;struct student s;對變量 s 賦值1984 年11 月 11 日正確方式是( ) A)year=1984; month=11; day=11;B)birth.year=1984; birth.month=11; birth.day=
31、11;C)s.year=1984; s.month=11; s.day=11;D)s.birth.year=1984; s.birth.month=11; s.birth.day=11;85.以下程序的輸出結果是 ( )main() unionchar i2;int k;r;r.i0=0; r.i1=2;printf(%d n, r.k);A)2 B)512 C)0 D) 不確定86. C 語言中,文件由 _A) 記錄組成 B) 由數(shù)據(jù)行組成C)由數(shù)據(jù)塊組成D)由字符(字節(jié))序列組成87.要判斷char型變量m是否是數(shù)字字符,可以使用表達式()A) 0=m & m=9B) 0=m & m=9C
32、) 0=m & m=9 D) 0=m & m=988.以下正確的語句是 ( )A) int a14 = 1,2,3,4,5;B) float x3 = 1,2,3;C) long b23 = 1,1,2,1,2,3;D) double y 3 = 0;89.執(zhí)行下面的程序后, a 的值為 ( )main() int a,b;for(a=1,b=1;a=20) break;if(b%3=1)b+=3;continue; b-=5;A)7B)8C)9D)1090.下面程序的運行結果是 ( )main() char ch7=65ab21;int i,s=0;for(i=0;chi=0&chiage9
33、3.若有以下的說明,則輸出結果為() union unint a;char c2;w;w.c0=0 x49;w.c1=0 x48;prin tf(%xn,w.a);A)4948B)4849C)480049D)49004894. C 語言中的文件類型只有()A)索引文件和文本文件兩種 B)ASCII文件和二進制文件兩種C)文本文件一種D)二進制文件一種95.請寫出將整數(shù)n (0 nw)9轉化為數(shù)字字符(ASCII字符)的表達式96.寫出表達式(0 x1234 & 0 xDF) 8 的16進制結果。97.分別寫出下面兩式的計算結果(括號內是二進制數(shù)):(11010101)&(01001011)和(
34、11010101)&(01001011)98.試計算以下表達式的值(int) ( float )32 / 5 + (int )(6.8) * 2.5 ) * 4)99.表達式(11A5)的結果為:100.設有如下定義int x = 6;執(zhí)行語句x+=x =x*x;后請寫出x的值第二部分讀程序,寫結果1.設有數(shù)組a的定義:int a=1,2,3,4;語句:a3=-a0?a1+:a2+;執(zhí)行后,數(shù)組a的各元素依次為 _2.下面的程序段執(zhí)行后,#defi neROUND3(x)(in t)(x*1000+0.5)/1000.0printf(“f” ,ROUND3(3.1416);輸出的結果是 _。3
35、.設有函數(shù)段如下:int efg(i nt a,i nt b) if (a%b=O)return b;elsereturn efg(b,a%b);c=efg(48,8);則c的值是 _。4. 假設m是一個三位數(shù),從左到右用 a, b, c表示各位上的數(shù)字,現(xiàn)將該三位 數(shù)上的百位數(shù)與十位數(shù)交換,則從左到右各位數(shù)字是bac的三位數(shù)其表達式5.執(zhí)行下面的程序后,#include mai n() char *p1,*p2;p仁How_are_you?; p2=p1+strle n(p1)-1;while(p2=p1)prin tf(%c,*p2-);for (p2=p1; *p2!=0;p2=p2+2
36、)prin tf(%c,*p2);prin tf(n);輸出的結果是 _。6.以下程序運行后,struct ks int a;int *b; s4,*p;mai n() int n=1,i;prin tf(n);for (i=0;ia,(p+)-a); 則結果是 _。7.從鍵盤上輸入123回車,該程序的輸出結果是 _ 。#i ncludemai n() int c;while(c=getchar()!=n) switch(c-1) case 0:case 1: putchar(c+4);case 2: putchar(c+3);break;case 3: putchar(c+2);case 4
37、: putchar(c+1);break; prin tf(n);8.以下程序運行時,輸入10個整型數(shù),輸出結果是 _int a,b;void foun d_value(i nt array,i nt n) int *p,*array_e nd;array_e nd=array+n;a=b=*array;for (p=array+1;pa) a=*p;else if (*pb) b=*p;return;mai n() int i,nu mber10;printf(” en ter 10 in teger nu mbers : n ”);for(i=0;i10;i+)scan f(%d,&n u
38、mberi);foun d_value( nu mber,10);prin tf(n a=%d, b=%dn,a,b);9.執(zhí)行該程序時,輸出結果是 _ 。mai n() int y=10;do y-; while (-y);prin tf(%dn,+y);10.運行以下程序,從鍵盤上輸入 chin a#,則輸出結果是 _#i nclude mai n() in t v1=0,v2=0;char ch;while (ch=getchar()!=#)switch(ch) case a :case h :default : v1+;case o : v2+;printf(%d,%dn,v1,v2)
39、;11. #include void printletter() static int c=57;if (c=48) putchar(c);c-;printletter();main() printletter();12. main() int a5=1,3,5,7,9;int *num5;int *p,i;for (i=0;i5;i+)numi=&ai;p=num;for (i=0;i5;i+) printf(%3d,*p); p+;13. main() int fun (int *, int );int j = 1 , m =4, k ;k = fun(&j, m ) ;printf( “
40、j=%d m=%dn ” ,j,m); printf( “The first k: %d n”, k );k = fun(&j, m);printf( “j=%d m=%dn ” ,j,m); printf( “The second k: %d n”, k) ;int fun (int *x , int y ) static int k = 2;k += *x + 1;*x = k- y;return k;14. #include int count, position, data;void search( int *p, int n, int st ) if ( *p = data ) co
41、unt +; position = st;if ( n 1 )search( p+1, n-1, st+1 );main() int a5 = 10, 30, 50, 30, 20 ;count = 0;data = 25;search( a, 15, 1 );printf( count=%d,position=%dn, count, position );15. int sumadd( int func, int data ) static int sum;switch ( func ) case 0 : sum = data; break; case 1 : sum += data; br
42、eak; case 2 : sum -= data; break;return sum;main() sumadd( 1, 10 );printf( “%d”, sumadd(2,10);sumadd( 2, 20 );printf(“%d”, sumadd(2,10);16. void s ( int a, int n ) int i, j, t ;for ( i = 0; i = 0 & t aj ; j - )aj+1 = aj;aj+1 = t ;main() int i , b6 =24, 12, 14, 32, 22, 34 ;s ( b, 6) ;for ( i = 0; i 6
43、 ; i +)printf( “%4d”, bi );printf( “ n” ) ;17. void p ( int k ) int m , i;for ( m = 2; m = k ; m +) for ( i = 2; i = m; i +) if ( !(m % i ) break ;if ( i = = m ) printf(“%4d”, m);printf( “ n”);main() p (13) ; 18. include main() int a=0,10,20,30,;int n=0, *p;p=a+1;n+=*(p+);n+=(*p)+;n+=*(+p);n+=+(*p);
44、printf( “ n=%d, a=%d, %d, %d, n%”d, n, a0, a1, a2, a3);19. #include void strselect(char *strs, int n, char *dest) int i;for(i=0; in; i+)*(dest+i) =* (strsi+i);*(dest+i)= 0;main() char *strs= “First ”, “Second”, “Third ” , “Forth “Fifth ”;char rst81;strselect(strs, 5, rst);printf( “%sn” , rst);20.#in
45、clude struct node int n;struct node *next;void insert(struct node *head, int newn) struct node *p, *q ;for(p=head; p-next!=NULL; p=p-next ) q=p-next; if(newn%10)n%10) break;q=(struct node*)malloc(sizeof(struct node); q-n=newn;q-next=p-next; p-next=q;main() struct node head, *p, *q; head.next=NULL; i
46、nsert(&head, 56); insert(&head, 38); insert(&head, 72); insert(&head, 49);for(p=head.next; p!=NULL; p=p-next) printf( “%d ”, p -n);printf( “ n”); for(p=head.next; p!=NULL;) q=p;p=p-next; free(q);21. #include #include main() int fun(char*,int);char *p;p=87654321;fun(p,strlen(p);puts(p);int fun(char *
47、w,int n) char t,*s1,*s2;s1=w; s2=w+n-1; while (s12);sca nf(%d,&i);devide(i);prin tf(n);第三部分 程序改錯改正下列程序中的錯誤,并以將#乂乂行改為YYY的形式進行解答,代碼左 邊的#1、#2、是附加的行號(下同)。1本程序用二分法在一個單調不減次序排列的數(shù)組中查找某個數(shù)。若存在,輸 出該數(shù)及它的下標位置;若不存在,輸出表示找不到該數(shù)的信息(本程序有3個錯)。#1 main()#2 int a10=2,5,6,8,11,15,18,22,60,88;#3 int low,high,m,i,x;#4 scanf(
48、%f,&x);#5 low=0;#6 high=10;#7 while(lowam) high=m+1;#11 else low=m-1;#12 #13 if (low=high)#14 printf(%d is found, the position is %dn,x,m);#15 else#16 printf(%d is not foundn,x);#17 2.由鍵盤輸入長度不超過 80的字符串,在按原樣輸出。 (本題有 2個錯)#1 #include #2 main()#3 char str80;#4 int i=0;#5 clrscr();#6 while(1)#7 scanf(%s,
49、stri);#8 if (stri+=n) return;#9 #10 stri=0;#11 printf(%sn,str);#12 3.以下程序用遞歸算法求 燈,要求n=0,請?zhí)羁?本題3個錯)。#1 main()#2 float xn(float,int);#3 float x,y; int n;#4 printf(Input x n :n);#5 scanf(%f%d,&x,&n); #6 if (x!=0)#7 y=x n(x); prin tf(xA n=%fn,y);#8 else printf( x wrong! n);#9 #10 float xn(float x,int n)
50、#11 float z;#12 if (n0) printf( n wrong !n); exit(0); #13 if (n!=0) z=1;#14 else if (n=1) z=x;#15 else z= xn(x,n) ;#16 return z ;#17 4.求ex的數(shù)學公式是ex1+x+/2!+x 3/3!+xn/n!,對下面的程序填空, 設 n=15。(本題 2 個錯)#1 double ex(float x)#2 double s=1.0,t=1.0;#3 int i=1;#4 while (i=15)#5 t= x/i ;#6s=s+t;#7i+ ;#8 #9 return
51、s;#10 #11 main()#12 float x;#13 double e;#14 scanf(%f,&x);#15 e=ex(x,n) ;#16 printf(e(%f)=%lfn,x,e);#17 5.本程序用二分法在一個單調不減次序排列的數(shù)組中查找某個數(shù)。若存在,輸出該數(shù)及它的下標位置;若不存在,輸出表示找不到該數(shù)的信息(本程序有3個錯)。#1 main()#2 int a10=2,5,6,8,11,15,18,22,60,88;#3 int low,high,m,i,x;#4 scanf(%f,&x);#5 low=0;#6 high=10;#7 while(lowam) hig
52、h=m+1;#11 else low=m-1;#12 #13 if (low=high)#14 printf(%d is found, the position is %dn,x,m);#15 else#16 printf(%d is not foundn,x);#17 6.以下程序的功能是:從鍵盤上輸入一個字符串后,輸出其長度。 (本題有 3 個錯)#1 #include #2 #include #3 func(char *str)#4 int num=0;#5 while (*(str+num)!=n) num+;#6 return num;#7 #8 main()#9 char str1
53、0,*p;#10 gets(p); printf(%dn,func(p);#11 7.本程序用于輸入 n 個-100100 間的整數(shù),輸入數(shù)據(jù)不對則重輸,并計算其中 的正整數(shù)之和(有 2 個錯)。#1 #define N 10#2 int sum(int x,int n)#3 int i=0,s=0;#4 while (i0) s=s+xi; i+; #6 return s;#7 #8 main()#9 int i=0,s,aN,flag=1;#10 do#11 printf(Enter %d numbers (-100=n=100) n,i+1);#12 scanf(%d,&ai);#13
54、while(flag)#14 if(-100=ai)&(ai=100) flag=1;#15 else#16 printf(data wrong! again input.n);#17 printf(%d,&ai);#18 #19 i+;#20 while (iN);#21s=sum(a,N);#22printf( sum=%dn,s);#238.以下程序的功能是:從鍵盤上輸入一個字符串后,輸出其長度。(本題有 3個錯)#1 #include #2 #include #3 func(char *str)#4 int num=0;#5 while (*(str+num)!=n) num+;#6
55、return num;#7 #8 main()#9 char str10,*p;#10 gets(p); printf(%dn,func(p);#11 9.以下程序的功能是:函數(shù) f 獲得十進制正整數(shù) n 為參數(shù)后,返回值是 n 的位 數(shù)(例如, 123就是個三位數(shù))。(本題有 3 個錯)#1 int f(long n)#2 int c=0;#3 do#4 c+;#5 n=n%10;#6 while (!n);#7 return c;#8 #9 main()#10 long n;#11 int num;#12 scanf(%d,n);#13 num=f(n);#14 printf(%ld ha
56、s %d numbersn,n,num);#15 10.本程序用二分法在一個單調不減次序排列的數(shù)組中查找某個數(shù)。 若存在,輸 出該數(shù)及它的下標位置;若不存在,輸出表示找不到該數(shù)的信息#1 main()#2 int a10=2,5,6,8,11,15,18,22,60,88;#3 int low,high,m,i,x;#4 scanf(%d,&x);#5 low=0;#6 high=10;#7 while(lowam) high=m+1;else low=m-1;#12 #13 if (low=high)#14 printf(%d is found, the position is %dn,x,
57、m);#15 else#16 printf(%d is not foundn,x);#17 11.以下程序求e = 1 + 1/1! + 1/2! + 1/n! + 的解,(本程序有 3個錯誤)。#1 #include #2 main()#3 double e, a;#4 int i=1;#5 e = 1.0;#6 a = 0.0;#7 do#8 a *= i;#9 a += e;#10 i = i + 1;#11 while ( a=1e-12 );#12 printf( %0.12fn, e );#13 12.程序 3.2是在 5 個字符串中求最小字符串并輸出結果。#1#include#2
58、#include #3main()#4 char *name5 = “EXPRESSIO”N, “VARIABLE”,#5“STATEMEN”T, “BLOC”K , “FUNCTIO”N ;#6char temp;#7int i ;#8temp = name0 ;#9 for ( i = 0; i *namei ) 0)#11temp = namei;#12printf( “%s n”, *temp );#1313.以下函數(shù)將一個16進制的字符串轉化為十進制數(shù),如“ 2A”轉化為42。字 符串應該僅由數(shù)字和大寫字母.A至F構成,若字符串中出現(xiàn)其它符號則返回-1。 (已知轉化的整數(shù)在有效范圍內
59、) ,本程序有 3個錯誤(含算法錯誤)#1 int hexvalue( char *str )#2 int data, i, n;#3 for ( i = 0; stri!= ” 0” ; i+ )#4 if ( stri=A & stri=0 & stri2)。(本題有3個錯)#1 #define N 10#2 main()#3 int aN,i,sum,max,min;#4 float aver;#5 for (i=0;in;i+)#6scanf(%d,&ai);#7 sum=max=min=0;#8 for (i=1;iN;i+)#9 if (maxai) min=ai;#11sum=s
60、um+ai; #12 aver=(sum-max-min)/(N-2);#13 printf(average=%fn,aver);#14 16.由鍵盤輸入長度不超過 80 的字符串,在按原樣輸出。 (本題有 2 個錯)#1 #include #2 main()#3 char str80;#4 int i=0;#5 clrscr();#6 while(1)#7 sca nf(%s,stri);#8 if (stri+=n) return;#9 #10 stri=0;#11 prin tf(%sn,str);#12 17.以下程序用遞歸算法求Xn,要求n=0,請?zhí)羁眨ū绢}3個錯) #1 ma in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國多功能汽車電噴嘴電腦檢測儀數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國五星水壺數(shù)據(jù)監(jiān)測研究報告
- 統(tǒng)編版三年級語文下冊期中達標測試卷(含答案)
- 吉林省長春市榆樹市2024-2025學年九年級上學期期末化學試題(含答案)
- 園林施工員試題及答案
- 2025年消防設施操作員之消防設備中級技能每日一練試卷A卷含答案
- 2025年消防設施操作員之消防設備基礎知識通關提分題庫(考點梳理)
- 2020年遼寧省沈陽市中考地理試卷(含答案)
- 2025年天津市專業(yè)技術人員公需考試試題-全面推動經濟與民生領域改革推動中國經濟高質量發(fā)展
- 高等教育自學考試《00074中央銀行概論》模擬試卷二
- 2025年湖南國防工業(yè)職業(yè)技術學院單招職業(yè)技能測試題庫完整版
- 2025年國電投核能限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 高中英語新課程標準解讀課件
- 初中數(shù)學知識競賽-完整版PPT
- 福建省危險化學品企業(yè)安全標準化(三級)考核評分標準指導意見(試行)
- 柱間支撐計算書
- 南方醫(yī)科大學研究生培養(yǎng)點評價簡況表
- 小學六年級體育教案(全冊48課時)
- 運籌學第3版熊偉編著習題答案
- 北碚區(qū)幼兒園
- 9宮格數(shù)獨題(word可打印)
評論
0/150
提交評論