1 C 語言第二次作業(選擇結構)參考答案語言第二次作業(選擇結構)參考答案 1、某年如果能被某年如果能被 4 整除整除,,但不能被但不能被 100 整除整除,,或者能被或者能被 400 整除的整除的 年是閏年。判斷從鍵盤輸入的年份是否為閏年。年是閏年。判斷從鍵盤輸入的年份是否為閏年。 #include int main() { intyear; printf(“請輸入年: “); scanf(“%d“, if(year%4==0 else printf(“%d 年不是閏年。\n“,year); return 0; } 2、某個自動加油站有某個自動加油站有 ‘‘a’’ ,, ‘‘b’’ ,, ‘‘c’’三種汽油品種,單價分別三種汽油品種,單價分別 為為 6.92,,7.37,,7.64(元元/公升公升),,也提供了也提供了““自己加自己加””或或““協助加協助加”” 兩個服務等級,這樣用戶可以得到兩個服務等級,這樣用戶可以得到 5%或或 10%的優惠,請編程的優惠,請編程 序針對用戶輸入加油量序針對用戶輸入加油量 m,,汽油品種汽油品種 y 和服務類型和服務類型 z(( ‘‘f’’—自自 動加動加,, ‘‘m’’—自己加自己加,, ‘‘e’’—協助加協助加)) ,, (注(注:: ‘‘f’’—自動加無自動加無 優惠優惠)) ,計算應付款,計算應付款 pay。。 (請用多分支選擇(請用多分支選擇 switch 語句語句)) 。。 2 #include int main() { double r1,r2,m,pay; char y,z; printf(“請輸入用戶輸入加油量,汽油品種和服務類 型: “); scanf(“%lf %c %c“, switch(y) { case 'a':r1=6.92;break; case 'b':r1=7.37;break; case 'c':r1=7.64;break; } switch(z) { case 'f':r2=0;break; case 'm':r2=0.05;break; case 'e':r2=0.1;break; } pay=m*r1*(1-r2); printf(“pay=%.2lf\n“,pay); } 3、輸入三角形三邊輸入三角形三邊,,判斷該三角形是什么三角形判斷該三角形是什么三角形((等邊等邊,,等腰等腰,,普普 通和直角)通和直角) 3 #include int main() { float a,b,c; printf(“請輸入三角型三邊: “); scanf(“%f %f %f“, if(a+bc else if(a==b||a==c||b==c) printf(“等腰三角形\n“); else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf(“直角三角形\n“); else printf(“一般三角形\n“); else printf(“不能組成三角形\n“); return 0; } 4. 編寫一個菜單程序編寫一個菜單程序,,輸入輸入 1~3 以進入相應的選擇項以進入相應的選擇項。。 ((請用請用 switch 語句)語句) 1、、FindNum 2、、Diamond 4 3、、Goodbye! Input 1-3: #include int main() { int a; printf(“1、FindNum\n“); printf(“2、Diamond\n“); printf(“3、Goodbye\n“); printf(“Input 1-3: \n“); scanf(“%d“, switch(a) { case 1: printf(“FindNum\n“); break; case 2: printf(“Diamond\n“); break; case 3: printf(“Goodbye!\n“); break; } 5 return 0; } 5.輸入輸入 4 個整數,要求按由小到大的順序輸出個整數,要求按由小到大的順序輸出 #include intmain() { int a,b,c,d,t; printf(“請輸入 4 個整數: “); scanf(“%d,%d,%d,%d“, if(ab) { t=a;a=b;b=t;} if(ac) {t=a;a=c;c=t;} if(ad) {t=a;a=d;d=t;} if(bc) {t=b;b=c;c=t;} if(bd) {t=b;b=d;d=t;} if(cd) {t=c;c=d;d=t;} printf(“由小到大排序結果是:“); printf(“%d,%d,%d,%d\n“,a,b,c,d); 6 return 0; } 6.求一元二次方程求一元二次方程 ax2+bx+c=0 的根。的根。 當當 b2-4ac0 為不相等的兩實根,為不相等的兩實根, 當當 b2-4ac=0 時為兩相等的實根,時為兩相等的實根, 當當 b2-4ac #include intmain() { double a,b,c,d,x1,x2,real,imag; printf(“請輸入 a,b,c:“); scanf(“%lf,%lf,%lf“, if(a==0) printf(“不是二次方程\n“); else { d=b*b-4*a*c; if(d==0) printf(“有兩個相等的實根是:%.4lf\n“,-b/(2*a)); else if(d0) {x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf(“兩個不相等實根是:x1=%.4lf,x2=%.4lf\n“,x1,x2); 7 } else { real=-b/(2*a); imag=sqrt(-d)/(2*a); printf(“兩個復根是:\n “); printf(“x1=%.4lf+%.4lfi\n“,real,imag); printf(“x2=%.4lf-%.4lfi\n“,real,imag); } } return 0; } 7、編制程序要求輸入整數編制程序要求輸入整數 a 和和 b,若若 a2+b2大于大于 100,則輸出則輸出 a2+b2 百位以上的數字,否則輸出兩數之和百位以上的數字,否則輸出兩數之和 #include int main() { int a,b,x,y; printf(“請輸入兩個整數: “); scanf(“%d %d“, x=a*a+b*b; if(x100){y=x/100;printf(“%d\n“,y);} else printf(“%d\n“,a+b); return 0; 8 } 8、、有三個整數有三個整數 a,b,c,由鍵盤輸入,輸出其中最大的數。由鍵盤輸入,輸出其中最大的數。 #include intmain() { int a,b,c,t,max; printf(“請輸入 a,b,c:“); scanf(“%d,%d,%d“, t=(ab)?a:b; max=(tc)?t:c; printf(“%d,%d,%d 中最大數是%d。\n“,a,b,c,max); return 0; } 9、有一個函數:、有一個函數:y= 寫程序,輸入寫程序,輸入 x 的值,輸出的值,輸出 y 相應的值。相應的值。 #include intmain() { float x,y; printf(“請輸入 x:“); scanf(“%f“, x (x=10) 9 if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(“x=%f,y=%f\n“,x,y); return 0; }
展開閱讀全文