全國計算機等級考試二級教程C語言程序設(shè)計課后習(xí)題答案_第1頁
全國計算機等級考試二級教程C語言程序設(shè)計課后習(xí)題答案_第2頁
全國計算機等級考試二級教程C語言程序設(shè)計課后習(xí)題答案_第3頁
全國計算機等級考試二級教程C語言程序設(shè)計課后習(xí)題答案_第4頁
全國計算機等級考試二級教程C語言程序設(shè)計課后習(xí)題答案_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、全國計算機等級考試二級教程-C語言程序設(shè)計課后習(xí)題答案第一章 1.1 EXE 1.2 C OBJ EXE 1.3 順序 選擇 循環(huán) 第二章 一. 選擇題 2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空題 2.14 11 12 2.15 4.2 4.2 2.16 定義 執(zhí)行語句 2.17 關(guān)鍵字 用戶標識符 2.18 int float double 2.19 float a1=1; float a2=1; 2.20 存儲單元 2.21 3.5 2.22 (a*b)/c

2、 a*b/c a/c*b 2.23 把常量10賦給變量s 2.24 位 1或0三. 上機改錯題 2.28 #include stdio.h; 刪除行尾的; main(); / * main function * / 刪除)后的;,注釋中的*要緊靠“/”,即應(yīng)為“/*”和“*/” 函數(shù)開始處遺失了一個“” float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注釋符號不可嵌套使用 r = 5.0 ; s = 3.14159 * r * r ; printf(%fn,s) 行尾遺失了“;” 函數(shù)結(jié)束處遺失了一個“” 2.29 #in

3、clude stdio.h main /* main function */ main后遺失了“()” float a,b,c,v; /*a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0 行尾遺失了“;” v=a*b*c; printf(%fn, v) 行尾遺失了“;” 第三章 一. 選擇題 3.1 C 3.2 C 3.3 D 3.4 C 3.5 D 3.6 B 3.7 C 3.8 D 3.9 A 3.10 B 3.11 C 3.12 D 3.13 D 3.14 A 3.15 C 3.16 C 3.17 C 3.18 無答案

4、 3.19 C 3.20 B 二. 填空題 3.21 (1)-2002500(2)i=-200,j=2500 (3)i=-200 j=2500 3.22 12 0 0 3.23 一條語句 ; 3.24 ; 3.25 100,25.81,1.89234 100 25.81 1.89234 100 25.81 1.89234 3.26 x=127,x= 127,x= 177,x= 7f,x= 127 3.27 x=127,x=127 ,x=$127 ,x=$000127,x=%06d 3.28 a=513.789215,a= 513.79,a= 513.78921500,a= 513.789215

5、00 三. 編程題和改錯題 3.29 修改后的程序如下: main() double a,b,c,s,v; printf(input a,b,c:); scanf(%lf%lf%lf,&a,&b,&c); s =a*b; v=a*b*c; printf(a=%f,b=%f,c=%fn, a,b,c); printf(s=%f,v=%fn,s,v); 3.30 #include main() int a=560,b=60; printf(560 minute is %d hour and %d minute.n,a/b,a%b); 3.31 #include main() int a,b; a=

6、1500;b=350; printf(a div b is : %dn,a/b); printf(a mod b is : %dn,a%b); 3.32 #include main() double a,b,c,ave; printf (input 3 double number : n); scanf (%lf%lf%lf,&a,&b,&c); printf (%.1fn,(a+b+c)/3); 3.33 #include void main() int a,b,c,t; printf(請依次輸入整數(shù)a,b,c:); scanf(%d%d%d,&a,&b,&c); printf(n你輸入的值

7、是: a=%d,b=%d,c=%dn,a,b,c); t=b;b=a;a=c;c=t; printf(交換之后的值是:a=%d,b=%d,c=%dn,a,b,c); 第四章 一. 選擇題 4.1 A 4.2 A 4.3 A 4.4 D 4.5 C 4.6 A 4.7 B 4.8 C 4.9 D 4.10 C 二. 填空題 4.11 非0 0 4.12 = =同級 = !=同級 4.13 ! & | 4.15 ! 4.16 a = b | a 4 | x -4 4.17 1 4.18 x 0 4.19 3 2 2 4.20 *# 三. 編程題 4.21 略 4.22 #include /* 檢查

8、日期的合法性 */ int checkdate(int year, int month, int day) if(year 2005) printf(輸入的年份無效!n); return 0; else if(month 12) printf(輸入的月份無效!n); return 0; else if(day 31) printf(輸入的日期無效!n); return 0; else switch(month) case 4: case 6: case 9: case 11: if(day 30) printf(輸入的日期無效!n); return 0; break; case 2: if(y

9、ear%4 = 0 & year%100 != 0) | year%400 = 0) if(day 29) printf(輸入的日期無效!n); return 0; else if(day 28) printf(輸入的出生日期無效!n); return 0; break; /* end of switch(m0)*/ return 1; void main() int y0, m0, d0; /* 生日 */ int y1, m1, d1; /* 當前日期 */ int years, months, days; /* 實足年齡*/ printf(請輸入學(xué)生的生日:); scanf(%d%d%d

10、, &y0,&m0,&d0); if(checkdate(y0, m0, d0) printf(請輸入當前日期:); scanf(%d%d%d, &y1,&m1,&d1); /*當前日期合法性檢查*/ if(!checkdate(y1, m1, d1) return; else if(y0 y1) printf(出生年份比當前年份晚!n); return; else if(y0 = y1) if(m0 m1) printf(出生年月比當前年月晚!n); return; else if(m0 = m1) if(d0 d1) printf(出生年月日比當前年月日晚!n); return; /* 計

11、算實足年齡 */ years = y1 - y0; months = m1 - m0; days = d1 - d0; /* 修正實足年齡天數(shù)*/ if(days 0) months-; switch(m1) case 1: case 5: case 7: case 10: case 12: days += 30; break; case 2: case 4: case 6: case 8: case 9: case 11: days += 31; break; case 3: if(y1%4 = 0 & y1%100 != 0) | y1%400 = 0) days += 29; else

12、days += 28; break; /* end of switch(m1) */ /* end of if(days 0) */ /* 修正實足年齡月數(shù)*/ if(months 0) months += 12; years-; /* end of if(months b)? a:b; max=(tempc)? temp:c; printf (n); printf (你輸入的數(shù)中最大的是 %d.n,max); 4.25 (1)不嵌套的if語句 #include void main() int x,y; printf(input x :); scanf(%d,&x); if ( x-5 & x

13、0 & x=10 | x=-5) printf(errorn); (2)嵌套的if語句 #include void main() int x,y; printf(input x :); scanf(%d,&x); printf(n); if(x -5) printf(y is %d.n,y=x); else printf(error!n); if(0 = x) printf(y is %d.n,y=x-1); if(x 0) if(x -5 & x0 & x10 ) printf(y is %d.n,y=x+1); else printf(error!n); (4)switch語句 #incl

14、ude void main() int x,y; printf(input x : ); scanf(%d,&x); switch (x) case -4: case -3: case -2: case -1: printf(y is %d.n,y=x); break; case 0: printf(y is %d.n,y=x-1); break; case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: printf(y is %d.n,y=x+1); break; default: printf(erro

15、r!n); 第五章 一. 選擇題 5.1 D 5.2 C 5.3 B 5.4 C 5.5 C 5.6 B 5.7 D 5.8 A 5.9 D 5.10 D 二. 填空題 5.11 5 4 6 5.12 死循環(huán) 5.13 -1 5.14 11 5.15 d=1.0 k+ k=0 x 三. 編程題 5.17 #include void main() int i; int sig = 1; int sum = 0; for(i=1; i=101; i+,i+) sum += sig*i; sig *= -1; printf(sum=%dn, sum); 5.18 (1) #include void

16、main() int i; double m=1.0; double e = 1.0; for(i=1; i= 0.0004) m *= i; e += 1/m; i+; printf(e=%fn,e); 5.19 #include void main() int year; int col = 0; for(year=1600; year=2000; year+) if(year%4 = 0 & year%100 != 0) | year%400 = 0) printf(%dt, year); col+; if(col%5 = 0) printf(n); printf(n); 5.20 #i

17、nclude #define N 7 void main() int i; int j; int m; int k = N/2; for(i=0; i m = i-k; if(m 0) m *= -1; for(j=0; j printf( ); for(j=0; j= 0 & striLoop = 9) num = 10*num + (striLoop - 0); iLoop+; printf(%dn,num); 6.22 #include #include #define N 80 void main() char strN; int num = -1; do gets(str); num

18、+; while(strcmp(str, EOF); printf(您輸入了%d行字符!n,num); 6.23 #include #define N 80 void main() char strN; int iLoop = 0; int num = 0; gets(str); while(striLoop & iLoop = a & striLoop = z) num+; iLoop+; printf(您輸入了字符中有%d個小寫字母!n,num); 6.24 #include void main() int line; int iLoop1; int iLoop2; printf(請輸入圖

19、案的行數(shù)(不大于26):); scanf(%d, &line); for(iLoop1 = 0; iLoop1 line; iLoop1+) for(iLoop2 = 0; iLoop2 line - iLoop1; iLoop2+) printf( ); for(iLoop2 = 0; iLoop2 2*iLoop1+1; iLoop2+) printf(%c,iLoop1 + A); printf(n); 第七章 一. 選擇題 7.1 C 7.2 C 7.3 B 7.4 C 7.5 A 7.6 D 7.7 A 二. 填空題 7.8 12 7.9 9.000000 7.10 4 7.11 n

20、=1 s 7.12 =y z*x 7.13 1 s*i 0 f(k) 三. 程序調(diào)試和編程題 7.14 fun(int n) int k,yes; for(k=2; k=n/2; k+) if(n%k = 0) yes = 0; break; else yes = 1; return yes; 7.15 int mymod(int a, int b) return a%b; 7.16 double fun(int n) double sum = 0; int iLoop; int sig = -1; for(iLoop=1; iLoop=n; iLoop+) sig *= -1; sum +=

21、 sig*1.0/iLoop; return sum; 7.17 double fun(int n) double t = 1.0; int iLoop; long tmp; for(iLoop=2; iLoop=n; iLoop+) tmp = iLoop*iLoop; t -= 1.0/tmp; return t; 7.18 #include #include double fun(double x) return x*x + 5*x + 4; void main() int x = 2; printf(y1=%fn, fun(x); printf(y2=%fn, fun(x+15); p

22、rintf(y3=%fn, fun(sin(x); 第八章 一. 選擇題 8.1 A 8.2 B 8.3 B 8.4 C 8.5 B 8.6 B 8.7 C 8.8 D 8.9 B 8.10 C 8.11 C 8.12 C 二. 填空題 8.13 110 8.14 7 1 8.15 (1)char *p=&ch; (2) p=&ch; (3)scanf(%c,p); (4)*p=A; (5)printf(%c,*p); 8.16 (1)s=p+3; (2)s=s-2 (3)50 (4)*(s+1) (5)2 (6)10 20 30 40 50 三. 編程題 8.17 void fun(doub

23、le x, double y, double *sum, double *div) *sum = x + y; *div = x - y; return; 8.18 void fun(double x, double y, double z, double *max, double *min) *max = x; *min = x; if(*max y) *max = y; if(*max y) *min = y; if(*min z) *min = z; return; 第九章 一. 選擇題 9.1 D 9.2 A 9.3 A 9.4 C 9.5 C 9.6 A 9.7 B 9.8 D 9.

24、9 C 9.10 C 9.11 C 9.12 D 9.13 D 9.14 A 9.15 A 9.16 A 9.17 C 9.18 C 二. 填空題 9.19 9 0 9.20 6 9.21 12 9.22 3 9.23 2721 9.24 -850,2,0 9.25 k=p k 9.26 (c=getchar() c-A 三. 編程題 9.27 #include #define N 81 int main() int counter10 = 0; int iLoop = 0; char strN; gets(str); while(striLoop) if(striLoop = 0 & str

25、iLoop = 9) counterstriLoop - 0+; iLoop+; for(iLoop=0; iLoop 10; iLoop+) printf(%d - %dn, iLoop, counteriLoop); return 0; 9.28 void fun(int array, int arraysize, int start) int iLoop; if(start arraysize-1) if(start =0) start = 1; for(iLoop = start; iLoop arraysize; iLoop+) arrayiLoop-1 = arrayiLoop;

26、for(iLoop = 0; iLoop arraysize; iLoop+) printf(No.%d = %dn, iLoop, arrayiLoop); 9.29 int fun(int arry1, int arry2, int arrysize) int iLoop; int counter = 0; for(iLoop = 0; iLoop arrysize; iLoop+) if(arry1iLoop % 2) arry2counter+ = arry1iLoop; return counter; 9.30 void fun(char array, int arraysize)

27、int iLoop1; int iLoop2; char temp; /* 冒泡排序 */ for(iLoop1 = 0; iLoop1 arraysize - 1; iLoop1+) for(iLoop2 = 0; iLoop2 arraysize - 1 - iLoop1; iLoop2+) if(arrayiLoop2 arrayiLoop2 + 1) temp = arrayiLoop2; arrayiLoop2 = arrayiLoop2 + 1; arrayiLoop2 + 1 = temp; 9.31 #include void fun(int array, int arrays

28、ize, int inertNumber) int iLoop; int iLoop2; if(array0 arrayarraysize-1) for(iLoop = 0; iLoop inertNumber) for(iLoop2 = arraysize - 1; iLoop2 = iLoop; iLoop2-) arrayiLoop2 + 1 = arrayiLoop2; arrayiLoop = inertNumber; break; if(iLoop = arraysize) arrayarraysize = inertNumber; else for(iLoop = 0; iLoo

29、p arraysize; iLoop+) if(arrayiLoop = iLoop; iLoop2-) arrayiLoop2 + 1 = arrayiLoop2; arrayiLoop = inertNumber; break; if(iLoop = arraysize) arrayarraysize = inertNumber; int main() int iLoop; int a20 = 7,6,5,3,2,1; for(iLoop = 0; iLoop 6; iLoop+) printf(%d , aiLoop); printf(n); fun(a, 6, 0); for(iLoo

30、p = 0; iLoop 7; iLoop+) printf(%d , aiLoop); printf(n); fun(a, 7, 4); for(iLoop = 0; iLoop 8; iLoop+) printf(%d , aiLoop); printf(n); fun(a, 8, 8); for(iLoop = 0; iLoop 9; iLoop+) printf(%d , aiLoop); printf(n); return 0; 9.32 int fun(int number, int array) int iLoop = 0; int iLoop2; int binLen; int

31、 midNumber; int div; int remain; midNumber = number; do div = midNumber/2; remain = midNumber%2; midNumber = div; arrayiLoop+ = remain; while(midNumber); binLen = iLoop; for(iLoop2 = 0, iLoop = binLen - 1; iLoop2 iLoop; iLoop2+, iLoop-) midNumber = arrayiLoop2; arrayiLoop2 = arrayiLoop; arrayiLoop =

32、 midNumber; return binLen; 9.33 #include #include #define N 15 void fun(int array, int arraysize) int x; int iLoop; int iLoop2; for(iLoop = 0; iLoop 0) x = rand()%20; iLoop2 = 0; iLoop2+; while(iLoop2 iLoop); arrayiLoop = x; int main() int aN; int iLoop; fun(a, N); for(iLoop = 0; iLoop N; iLoop+) pr

33、intf(%dn, aiLoop); return 0; 第十章 一. 選擇題 10.1 C 10.2 B 10.3 C 10.4 B 10.5 C 10.6 A 10.7 C 10.8 A 10.9 C 10.10 C 二. 填空題 10.11 GFEDCB 10.12 XYZ 10.13 SO 10.14 10 10.15 Itis 10.16 strlen(str)-1 j- 10.17 3 10.18 goodgood! 三. 編程題 10.19 char* mygets(char *str) int iLoop = 0; char ch; while(ch=getchar() !=

34、n) striLoop+ = ch; striLoop = 0; return str; char * myputs(char *str) int iLoop = 0; while(striLoop) putchar(striLoop+); putchar(n); return str; 10.20 #include #include int fun(char *str) int len; int iLoop1; int iLoop2; int result = 1; len = strlen(str); for(iLoop1 = 0, iLoop2 = len - 1; iLoop1 len

35、) return NULL; ch = strpos; for(iLoop = pos; iLoop len - 1; iLoop+) striLoop = striLoop + 1; strlen-1 = 0; return ch; 第十一章 一. 選擇題 11.1 D 11.2 B 11.3 A 11.4 C 二. 填空題 11.5 IJKLEFGHABCD 11.6 7 11.7 8 11.8 *(s+j) i+1 i 11.9 17 11.10 (*fun)() (*fun)(a+i*h)/h mypoly 三. 編程題 11.11 #include #include #define

36、N 81 int main(int argc, char *argv) char sig; int dig; int pos; char strN = 0; char outStrN = 0; if(argc 2) sig = -; dig = 10; else sig = argv10; dig = argv11 - 0; printf(請輸入一個字符串:); gets(str); if(sig = -) pos = strlen(str) - dig; if(pos dig) pos = dig; outStrpos = 0; printf(處理后的字串為:); printf(%sn, o

37、utStr); return 0; 11.12 #include #include void movebin(char *bin) int len; int iLoop; len = strlen(bin); for(iLoop = len; iLoop 0; iLoop-) biniLoop = biniLoop - 1; return; void fun(int n, char *bin) int pos; pos = strlen(bin); if(n = 0) return; if(n = 1) movebin(bin); bin0 = 1; return; movebin(bin);

38、 bin0 = (n%2) + 0; n /= 2; fun(n, bin); return; int main() int a = 4; char bin50 = ; fun(a, bin); printf(%sn, bin); return 0; 11.13 #include long fun(int n) if(n = 1) return n; else return fun(n-1) + n; int main() int num; int sum; printf(請輸入一個自然數(shù):); scanf(%d, &num); sum = fun(num); printf(結(jié)果是:%dn,

39、sum); return 0; 11.14 #include int fun(int n) if(n = 0 | n = 1) return 1; else return fun(n-1) + fun(n-2); int main() int num; int result; printf(請輸入一個自然數(shù):); scanf(%d, &num); result = fun(num); printf(斐波拉契級數(shù)為:%dn, result); return 0; 第十二章 一. 選擇題 12.1 B 12.2 B 12.3 A 12.4 C 12.5 D 12.6 B 12.7 A 12.8 A

40、 二. 填空題 12.9 2,5,1,2,3,-2 12.10 2468 第十三章 一. 選擇題 13.1 A 13.2 C 13.3 B 13.4 C 13.5 D 13.6 D 13.7 D 二. 填空題 13.8 ar=9 ar=9 ar=11 13.9 int* s *b 三. 編程題 13.10 #define MYALPHA(C) (C=A & C=a & C=z) ? 1 : 0 13.11 #define SWAP(t,x,y) t tmp; tmp=x; x=y; y=tmp; 13.12 #include #include int main() int *p; int tmp; int iLoop; int iLoop2; p = (int *)malloc(sizeof(int)*3); scanf(%d%d%d, p,p+1,p+2

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論