程式检定题库解答程度基本_第1页
程式检定题库解答程度基本_第2页
程式检定题库解答程度基本_第3页
程式检定题库解答程度基本_第4页
程式检定题库解答程度基本_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【程式檢定題庫解答程度:基本】A1、#include #include int main(void) int n,i=1,fact=1;/* 設定迴圈初值 */ do printf(請輸入n值 (n0): ); scanf(%d,&n); while (n=0);/* 當n=0時重複輸入n的值 */ do fact*=i+; while (i = n);/* 當i=n時執行累乘的動作 */ printf(%d!=%dn,n,fact); system(pause); return 0;A2、#include #include int main(void) /* i、j 為迴圈變數, n 是多項

2、式項數, sum 是總和 */ int i,j,n,sum=0; printf(計算多項式 (1+2)+(2+4)+(3+6).+(n+2*n) 的值n); printf(請輸入 n 值n); scanf(%d,&n); for(i=1,j=2;i=n,j=2*n;i+,j=j+2) /* 兩個變數的迴圈 */ sum=sum+(i+j);/* 計算總和 */ printf(%d+%d)+,i,j);/* 將多項式每一項從螢幕輸出 */ printf(b = %dn,sum); system(pause); return 0;A3、#include #include int main(void

3、) int num,n; printf(請輸入一個正整數: ); scanf(%d,&num); printf(%d的因數有 ,num); for(n=1;n=num;n+) if(num%n=0) printf(%d ,n); system(pause); return 0;A4、01 #include 02 #include 0304 int main(void)05 06 int i,num,sum=0;07 int x,y,z;0809 printf(Armstrong 數有 );10 for(num=100;num=999;num+)11 12 sum=0;13 x=num/100;

4、14 y=(num/10)%10;15 z=(num%100)%10;16 sum=x*x*x+y*y*y+z*z*z;17 if(sum=num)18 printf(%d ,num);19 2021 system(pause);22 return 0;23 /* OUTPUT-Armstrong 數有 153 370 371 407-*/A5、#include #include int palindrome(unsigned n);int reverse(unsigned n);main()unsigned n;printf(Please enter a positive integer:)

5、;while(scanf(%d,&n)if(palindrome(n)=1)printf(%d is a palindrome.n,n);elseprintf(%d is not a palindrome.n,n);printf(Please enter a positive integer:);return 0;int palindrome(unsigned n)if(n=reverse(n)return 1;elsereturn 0;int reverse(unsigned n)int reverse=0,a=0,b,i;for(i=1;i1)b=pow(10,a-1);reverse=r

6、everse+n%10*b;n/=10;a-;reverse+=n;return reverse;A6、#include main()int n,count,i,mask=1,x=0;count=8*sizeof(int)-1;printf(Please enter an integer, or enter -1 to exit:);while(scanf(%d,&n)&(n!=-1)printf(bit 1 at );for(i=0;i=count;i+)if(maski&n)!=0)printf(%d,i);printf(bn);for(i=0;i=count;i+)if(maski&n)

7、!=0)x=x+1;printf(bit 1 has %dn,x);x=0;printf(Please enter an integer, or enter -1 to exit:);if(x=-1)break;return 0;A7、#include #include using namespace std;void find(int , int, double *, double *); int main(void) int a, b; double aMean, gMean; cout a; cout b; cout endl; find(a, b, &aMean, &gMean); c

8、out 第一個整數為: a endl; cout 第二個整數為: b endl; cout 算數平均值為: aMean endl; if (gMean != -1) cout 幾何平均數為: gMean endl; else cout 幾何平均數為:實數值不存在! = 0) *gMean = pow(a * b, 0.5); else *gMean = -1; #include #include using namespace std;void find(int , int, double &, double &); int main(void) int a, b; double aMean,

9、 gMean; cout a; cout b; cout endl; find(a, b, aMean, gMean); cout 第一個整數為: a endl; cout 第二個整數為: b endl; cout 算數平均值為: aMean endl; if (gMean != -1) cout 幾何平均數為: gMean endl; else cout 幾何平均數為:實數值不存在! = 0) gMean = pow(a * b, 0.5); else gMean = -1; A8、#include #include int main(void) int hours; float salar

10、y; printf(工作時數=); scanf(%d,&hours); if (hours60 & hours=75) salary=60*75+(hours-60)*75*1.25; else salary=60*75+15*75*1.25+(hours-75)*75*1.75; printf(實領薪資=%10.1f元n,salary); system(pause); return 0;A9、#include #include int main(void) int i=1, j=1;/* 設定迴圈控制變數的初值 */ do/* 外層迴圈 */ do/* 內層迴圈 */ printf(%d*%

11、d=%2d ,j,i,i*j); j+; while (j=9); printf(n); i+; j=1; while (i=9); system(pause); return 0;A10、#include #include void sum(int), fac(int);/* 定義函數的原型 */int main(void) int n; printf(請輸入整數 n=); scanf(%d,&n); fac(n);/* 呼叫fac()函數 */ sum(n); /* 呼叫sum()函數 */ system(pause); return 0;void fac(int a)/* 自訂函數fac

12、(),計算a! */ int i,total=1; for(i=1;i=a;i+) total*=i; printf(fac(%d)=1*2*.*%d=%dn,a,a,total);/* 印出a!的結果 */void sum(int a)/* 自訂函數sum(),計算1+2+.+a的結果*/ int i,total=0; for(i=1;i=a;i+) total+=i; printf(sum(%d)=1+2+.+%d=%dn,a,a,total);/* 印出加總的結果 */A11、#include int main( void ) int a, b; int c = 4 + (a = 3 +

13、 (b = 4 + 5); float d = 10.0 + 2.0 * 4.0 - 6.0 / 3.0; int e = 10 % 3; int f = 5 + 3 * 8 / 2 + 3; int g = ( 5 + 3 ) * 8 / 2 + 3; int h = 2 * 4 3 * 5; printf(c= %dn, c); printf(d= %fn, d); printf(e= %dn, e); printf(f= %dn, f); printf(g= %dn, g); printf(h= %dn, h); getchar(); return 0;c= 16d= 16.000000

14、e= 1f= 20g= 35h= 0A12、 2x2 - 4x + 1,x = 3.0、4.0和2/3 = 7.0、17.0、1.0#include int main( void ) float x; printf(x=); scanf(%f, &x); printf(f= %fn, 2*x*x-4*x+1); system(PAUSE); return 0; a2 + b,a = 2.0、4.0和2/3,b = 10.0、5.0和12.0 = 14.0、21.0、4.0#include int main( void ) float a, b; printf(a,b=); scanf(%f,%

15、f, &a, &b); printf(f= %fn, a*a+b); system(PAUSE); return 0; 3y2 + 8y + 4,y = 2.0、4.0和2/3 = 32.0、84.0、32.0#include int main( void ) float y; printf(y=); scanf(%f, &y); printf(f= %fn, 3*y*y+8*y+4); system(PAUSE); return 0;A13、#include int main( void ) int a = 0277; int b = 0xcc; int c = 0xab; int d =

16、0333; int e = 0555; int f = 0xff; printf(a= %dn, a); printf(b= %dn, b); printf(c= %dn, c); printf(d= %dn, d); printf(e= %dn, e); printf(f= %dn, f); system(PAUSE); return 0;a= 191b= 204c= 171d= 219e= 365f= 255請按任意鍵繼續 . . .A14、#include int main( void ) int a = 200; printf(幾打= %dn, a/12); printf(剩幾個= %

17、dn, a%12); system(PAUSE); return 0;幾打= 16剩幾個= 8請按任意鍵繼續 . . .A15、#include int main(void) int a; printf(請輸入a的值: ); scanf(%d, &a); printf(十進位: %dn, a); printf(八進位: %on, a); printf(十六進位: %xn, a); system(PAUSE); return 0;A16、#include int main(void) int i, total = 0; for (i = 1; i = 45 & i = 67) total +=

18、i; printf(%dn, i); printf(總和: %dn, total); getchar(); return 0;454749515355575961636567總和: 672A17、#include int main(void) int i; for (i = 1; i = 20; i+) printf(%dt%dn, i, i*i); getchar(); return 0;1 12 43 94 165 256 367 498 649 8110 10011 12112 14413 16914 19615 22516 25617 28918 32419 36120 400A18、

19、#include int main(void) float amount; printf(輸入金額=); scanf(%f, &amount); if ( amount = 1000 ) amount *= 0.8; printf(付款金額: %fn, amount); system(PAUSE); return 0;輸入金額=2500付款金額: 2000.000000請按任意鍵繼續 . . .A19、#include int main(void) float weight, fee; printf(輸入重量=); scanf(%f, &weight); if ( weight 10運費: 5

20、99.000000請按任意鍵繼續 . . .A20、#include main() int i, j , k, t; t = 1; for ( i = 7; i = 1; i- ) for ( j = 1; j = i; j+ ) if ( j = i ) for ( k = 1; k = t; k+ ) printf(* ); else printf( ); t += 1; printf(n); getchar();A21、#include int sum(int n) if (n = 1) return n; else return n + sum(n-1);int main(void)

21、printf(sum(5) = %dn, sum(5); system( PAUSE ); return 0;sum(5) = 15請按任意鍵繼續 . . .A22、#include #define MAX(a, b) (a = b) ? a : b#define MIN(a, b) (a = b) ? a : bint main(void) printf(10, 15的最大值 = %dn, MAX(10,15); system( PAUSE ); printf(10, 15的最小值 = %dn, MIN(10,15); system( PAUSE ); return 0;A23、#inclu

22、de #define SQUARE(a) a*a#define CUBE(a) a*a*aint main(void) printf(10的平方 = %dn, SQUARE(10); printf(10的三次方 = %dn, CUBE(10); system( PAUSE ); return 0;A24、#include int main(void) int arr15 = 2, 34, 33, 23, 67; int arr25 = 3, 56, 10, 20, 73; int i, result5; for ( i = 0; i 5; i+ ) resulti = arr1i + arr2

23、i; printf(索引tarr1tarr2tresultn); for ( i = 0; i 5; i+ ) printf(%dt%d +t%d =t%dn,i,arr1i,arr2i,resulti); getchar(); return 0;A25、#include #include #define LEN 5int arrMax(int data, int len) int i, max = 0; /* 使用for迴圈找尋最小值 */ for ( i = 0; i max ) max = datai; return max;int main(void) int i, dataLEN =

24、 81,13,27,39,69 ; printf(陣列最大值: %dn, arrMax(data,LEN); getchar(); return 0;陣列最大值: 81A26、#include #include using namespace std;int main() int n, nMin = 1, nMax = 49; /* Seed the random-number generator with current time so that the numbers will be different every time we run. */ srand(unsigned)time(N

25、ULL); cout 開獎號碼:; /* Display the big lotto winners numbers. */ for (int i = 1; i 8; i+) n = (int)(double)rand() / (double)RAND_MAX * (nMax - nMin) + nMin); if (i != 7) cout n ; else cout 特別號: n endl; system(pause); return EXIT_SUCCESS;A27、/* prog7_12, 巢狀迴圈,將整數反過來列印 */#include #include int main(void)

26、 int a,r; while(1) do printf(Input an integer:); scanf(%d,&a); while (a=0); /* 必須輸入大於0的正整數 */ printf(The reverse is ); while (a!=0)/* 將正整數倒過來輸出 */ r=a%10;/* 計算a/10的餘數 */ a/=10;/* 計算a/10,再把結果設回給a */ printf(%d,r); printf(nn); system(pause); return 0;A28、#include #include int main(void) double x,power=

27、1.0, sum=0.0; int n,k,fac=1; printf(請輸入x=); scanf(%lf,&x); printf(請輸入n=); scanf(%d,&n); for(k=1;k=n;k+) power*=x; fac*=k; sum+=power/fac; printf(my_fun(%1f,%d)=%1fn,x,n,sum); system(pause); return 0;A29、#include#includeint main(void) /* * a b c 為三邊長 max mid min拿來儲存三邊長的最大最小值 */ int a, b, c, tmp; int

28、max, mid, min; do fflush(stdin); printf(請輸入第一個正整數:); tmp = scanf(%d, &a); while( (tmp = 0) | (a 1); do fflush(stdin); printf(請輸入第二個正整數:); tmp = scanf(%d, &b); while( (tmp = 0) | (b 1); do fflush(stdin); printf(請輸入第三個正整數:); tmp = scanf(%d, &c); while( (tmp = 0) | (c max ) max = b; if( c max ) max = c

29、; if( b min ) min = b; if( c min ) min = c; mid = tmp - max - min; /* * 從得到的min、mid、max來判斷是否為三角形 */ if( min + mid = max ) printf(無法形成三角形n); else if( max = min ) printf(正三角形n); else if( max = mid | mid = min ) printf(等腰三角形n); else printf(一般三角形n); system(pause); return 0;A30、參考程式碼-#include #include in

30、t main(void) int h, m; float degree_h, degree_m, angle; printf(請輸入現在時間 (小時:分鐘)n); scanf(%d:%d, &h, &m); degree_h = 30.0 * (h + m/60.0); degree_m = 6.0 * m; angle = degree_m - degree_h; if(angle 180) /角度應在0-180度間 angle = 360-angle; printf( %d 點 %d 分時,時針與分針之夾角為 %5.1f 度n, h, m, angle); system(pause); r

31、eturn 0;A31、#include int gcd(int, int);main()int num1,num2;printf(以遞迴方式求兩個正整數的最大公因數 gcd(a, b)n);printf(請輸入第一個正整數a:);scanf(%d, &num1);printf(請輸入第二個正整數b:);scanf(%d, &num2);printf(%d與%d的最大公因數=%dn,num1,num2,gcd(num1,num2);int gcd(int num1,int num2)if (num2 = 0)return num1;else if (num2 0)return gcd(num2

32、,num1%num2); A32、#include #include #include void bubble_sort(int *data, int n);void main(void) int i,N,*number; scanf(%d,&N); number = new intN; for(i=0;iN;i+) numberi= rand()%99; printf(%d ,numberi); bubble_sort(number,N); printf(n); for(i=0;iN;i+) printf(%d ,numberi); delete number; while ( getch(

33、)=n)void bubble_sort(int *data, int n) int i,j,temp; for(i=0;in-1;i+) for(j=0;jdataj+1) temp=dataj; dataj=dataj+1; dataj+1=temp; A33、#include #include #include #include void main(void) double a,b,c,D; scanf(%lf %lf %lf,&a,&b,&c); D=b*b-4*a*c; if(D=0) printf(X1=%lf X2=%lf,(-1*b+sqrt(D)/2/a,(-1*b-sqrt

34、(D)/2/a); else printf(X1=%lf+%lfi X2=%lf-%lfi,-1*b/2/a,sqrt(-1*D)/2/a ,-1*b/2/a,sqrt(-1*D)/2/a ); while ( getch()=n)A34、#include #include #include #include void main(void) int N,year=1; double X,R,amount; scanf(%lf %lf %d,&X,&R,&N); amount=0; do amount=amount+X; amount=amount*(1+R/100); year+; while

35、(year=N); printf(%d,(int)(amount+0.5); while ( getch()=n)A35、#include #include void main(void) int n, count = 0; int i, j; bool prime; scanf(%d,&n); for(i = 1; i = n; i+) prime = true; switch(i) case 1 : / 1 非質數 prime = false; break; case 2 :/ 2 是最小的質數 break; default : for(j = 2; j i; j+) if(i % j)

36、= 0)/ i 可被 j 整除,非質數 prime = false; break; else; if(prime = true)/ 印出質數 count +; printf(%d ,i); if(count % 10 = 0)/ 每印滿10個質數就跳下一行 printf(n); else; else; printf(nThere are %d primes,count); while ( getch()=n)A36、#include #include int main(void) int num1,num2;/* 要求最大公因數的兩個數 */ int a,b,c; /* 依次為除數、被除數、餘數 */ printf(請輸入兩個數字n); scanf(%d %d,&num1,&num2); c = n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论