第2次上機題目2018年10月12日 條件1
阿新 • • 發佈:2018-12-08
第2次上機題目2018年10月12日
以下內容僅供娛樂,歡迎隨時探討,請多指教!
⒈ 輸入一個年份,判斷其是否為閏年。
#include<stdio.h>
int main()
{
printf("輸入一個年份\n");
int year;
scanf("%d",&year);
if((year%4 == 0 && year%100 != 0) | |(year%400 == 0))
printf("Yes\n");
else
printf("No\n");
return 0;
}
⒉ 假設現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。請編寫程式,輸入顧客的加油量a,汽油品種b(90、93或97)和服務型別c(m為自助服務,e為協助服務),計算並輸出應付款(保留小數點後2位)。
#include<stdio.h>
#define type90 6.95
#define type95 7.44
#define type97 7.93
#define dm 0.95
#define de 0.97
int main()
{
printf("輸入顧客的加油量a,汽油品種b(90、93或97)"
"和服務型別c(m為自助服務,e為協助服務)\n");
double a,b;
char c;
scanf("%lf%lf",&a,&b);
getchar();c=getchar();
//注意字元包括空格 ,輸入時注意不要空格。
if('m' == c){
if(b == 90) printf("%.2lf",a*type90*dm);
else if(b == 93) printf("%.2lf",a*type95*dm);
else if(b == 97) printf("%.2lf",a*type97*dm);
}
else if('e' == c){
if(b == 90) printf("%.2lf",a*type90*de);
else if(b == 93) printf("%.2lf",a*type95*de) ;
else if(b == 97) printf("%.2lf",a*type97*de);
}
else printf("你輸錯了!");
return 0;
}
⒊ 給一個不多於5位的正整數,求出它是幾位數,並計算組成該整數的每位上的數字的和。
#include<stdio.h>
int main()
{
printf("輸入一個不多於5位的正整數\n");
int x,sum=0,count=0;
scanf("%d",&x);
//注意求單個數的方法,把數分解
if(x>0)count++,sum+=x%10,x/=10;
if(x>0)count++,sum+=x%10,x/=10;
if(x>0)count++,sum+=x%10,x/=10;
if(x>0)count++,sum+=x%10,x/=10;
if(x>0)count++,sum+=x%10,x/=10;
//以後可以用迴圈解決
printf("數字的和=%d\n位數=%d",sum,count);
return 0;
}
⒋ 輸入三角形的三邊a,b,c,判斷能否構成三角形,輸出直角、等邊或者等腰三角形。
#include<stdio.h>
int main()
{
double a,b,c;
printf("輸入三角形的三邊a,b,c\n");
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a){
printf("是三角形,");
if(a*a+b*b == c*c || a*a == b*b+c*c || a*a+c*c == b*b){
printf("這是直角三角形。\n");
}
if(a == b && b==c){
printf("這是等邊三角形。\n");
}
else if(a == b || b ==c || a == c){
printf("這是等腰三角形。\n");
}
}
else printf("不是三角形。\n") ;
return 0;
}
⒌ 輸入某學生語文課程的成績,輸出該成績的等級。判斷規則為:如果成績在90-100的範圍內,則等級為A;若成績在80-89的範圍內,則等級為B;若成績在70-79的範圍內,則等級為C;若成績在60-69的範圍內,則等級為D;若少於60分,則等級為F。(要求:用switch語句實現。)
#include<stdio.h>
int main()
{
printf("請輸入一個成績\n");
double s;
scanf("%lf",&s);//選好判斷量,整除10縮小
switch((int)(s/10)){
case 10:
case 9:
printf("等級為A\n");break;
case 8:
printf("等級為B\n");break;
case 7:
printf("等級為C\n");break;
case 6:
printf("等級為D\n");break;
default:
printf("等級為F\n");break;
}
return 0;
}
6、輸入四個整數,按大小順序輸出(要求按四個變數的輸入順序依次輸出)。
#include<stdio.h>
int main()
{
double t,a,b,c,d;
printf("請輸入4個數:\n");
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
//數學比較排序,用中間量,依次比較。
if(a<b) t=a,a=b,b=t;
if(a<c) t=a,a=c,c=t;
if(a<d) t=a,a=d,d=t;
if(b<c) t=b,b=c,c=t;
if(b<d) t=b,b=d,d=t;
if(c<d) t=c,c=d,d=t;
printf("由大到小輸出:%d %d %d %d\n",a,b,c,d);
return 0;
}
7、輸入一個一元二次方程,根據實際情況,判斷輸出等根、實根和虛根的值。
#include"math.h"
#include"stdio.h"
int main()
{
double a,b,c,d,n;
printf("請輸入3個數a,b,c(形如ax*x+bx+c=0)\n");
//ax*x+bx+c=0,注意數學求解方法
scanf("%lf%lf%lf",&a,&b,&c);
d= sqrt(b*b-4*a*c);
n=(int)d;
if(n>0) printf("%lf\n%lf\n",(-b+d/(2*a)),(-b-d/(2*a)));
else if(n == 0) printf("%lf\n",-(b/(2*a)));
else if(n<0) printf("實部%lf虛部%lf\n實部%lf虛部%lf\n"
,-b/(2*a),-d/(2*a),-b/(2*a),-d/(2*a));
return 0;
}
##3個題目寫實驗報告!##
8、輸入一個數,判斷是否能同時被3和5整除,輸出“YES”或“NO”。
#include<stdio.h>
int main()
{
int a;
printf("輸入一個數\n");
scanf("%d",&a);
if(a%3 == 0 && a%5 == 0) printf("YES\n");
else printf("NO\n");
return 0;
}
9、 已知三個數a,b,c,找出最大值放於max中。
#include<stdio.h>
int main()
{
double a,b,c,max;
printf("輸入3個數\n");
scanf("%lf%lf%lf",&a,&b,&c);
if(a>b) max=a;
else max=b;
if(max<c) max=c;
printf("max=%d",max);
return 0;
}
10、有一分段函式:用scanf函式輸入x的值(分別為x<1,1~10,>=10三種情況),求y值。
#include<stdio.h>
int main()
{
double x,y;
printf("輸入1個數\n");
scanf("%lf",&x);
y=(int)x;
if(y<1) printf("y=%lf\n",x);
else if(y >= 1 && x<10) printf("y=%lf\n",2*x-1);
else printf("y=%lf\n",3*x-11);
return 0;
}