江苏海洋大学c语言期末考试题库,海南热带海洋学院18级C语言期末考试PAT编程题...
寫給19屆的學弟學妹們
7-1 射擊成績
上圖是 10m 氣手槍靶紙。10 環的直徑為 11.5mm,9 環的直徑為 27.5mm,8 環的直徑為 43.5mm。7~10 環區為黑色,直徑為 59.5mm,外環直徑為 155.5mm。1~6 環區直徑差均為常數。
當所有環線標記都被擦除,你還能否判斷成績?
輸入格式:
輸入在一行中給出一個選手射擊的點到靶心的直線距離,以微米(10??3毫米)為單位。
輸出格式:
根據輸入的距離,輸出該選手得到的環值。注意:脫靶計 0 分。
輸入樣例 1:
13100
輸出樣例 1:
9
輸入樣例 2:
29750
輸出樣例 2:
7
輸入樣例 3:
78000
輸出樣例 3:
0
思路:很簡單的方法是用if語句單個判斷,需要注意的是要題中給的是直徑不是半徑,而題中要求輸入的數是半徑。
參考代碼:
#include
int main()
{
int length; //距離圓心的距離
int d=(155500-59500)/6; //1~6環的等距(在判斷時要除以2)
scanf("%d",&length);
if(length>=0&&length<=11500/2)//10環,判斷時記得除以2
printf("10\n");
else if(length>11500/2&&length<=27500/2)//9話
printf("9\n");
else if(length>27500/2&&length<=43500/2)//8環
printf("8\n");
else if(length>43500/2&&length<=59500/2)//7環
printf("7\n");
else if(length>59500/2&&length<=(59500+d)/2)//6環
printf("6\n");
else if(length>(59500+d)/2&&length<=(59500+2*d)/2)//5環
printf("5\n");
else if(length>(59500+2*d)/2&&length<=(59500+3*d)/2)//4環
printf("4\n");
else if(length>(59500+3*d)/2&&length<=(59500+4*d)/2)//3環
printf("3\n");
else if(length>(59500+4*d)/2&&length<=(59500+5*d)/2)//2環
printf("2\n");
else if(length>(59500+5*d)/2&&length<=(59500+6*d)/2)//1環
printf("1\n");
else//脫靶
printf("0\n");
return 0;
}
7-2 教超銷量
“教育超市”是拼題 A 系統的一個衍生產品,發布了各種試卷和練習供用戶選購。在試卷列表中,系統不僅列出了每份試卷的單價,還顯示了當前的購買人次。本題就請你根據這些信息計算教育超市所有試卷的總銷量(即購買人次的總和)和銷售額。
輸入格式:
輸入首先在第一行中給出一個正整數 N(≤100),隨后 N 行,每行給出一份卷子的單價(為不超過 100 的正整數)和購買人次(為不超過 10?4的非負整數)。
輸出格式:
在一行中輸出總銷量和總銷售額,其間以一個空格分隔。
輸入樣例:
4
39 10
19 38
9 332
95 7
輸出樣例:
387 4765
思路:……看代碼吧
參考代碼:
#include
int main()
{
int n,a,b;
int cnt_money=0,cnt=0; //總銷售額,總銷售量
scanf("%d",&n);//每種試卷
for(int i=0;i
scanf("%d%d",&a,&b);//輸入單價和數量
cnt+=b;//總銷售量
cnt_money+=a*b;//總銷售額
}
printf("%d %d\n",cnt,cnt_money);
return 0;
}
7-3 投票
本題請你實現一個簡單的投票統計工具:投票同意的人輸入 1,反對的人輸入 0。簡單多數勝。
輸入格式:
輸入在一行中給出一系列的投票值,1 表示同意,0 表示反對,-1 表示結束。
輸出格式:
統計并輸出投票的結果:如果同意的人多就輸出 Yes;反對的人多就輸出 No;平票就輸出 Tie。然后在第二行輸出同意的人數和反對的人數,其間隔 1 個冒號 :。
輸入樣例 1:
1 0 0 1 1 -1
輸出樣例 1:
Yes
3:2
輸入樣例 2:
0 0 0 1 -1
輸出樣例 2:
No
1:3
輸入樣例 3:
1 1 1 0 0 0 -1
輸出樣例 3:
Tie
3:3
思路:定義一個數組a[2]用來存放投票,a[0]表示反對,a[1]表示同意,要記得對數組進行初始化,如果投票是0則a[0]++,如果是1則a[1]++,-1則退出。
參考代碼:
#include
int main()
{
int a[2]={0},x;//初始化a
while(1){//循環輸入
scanf("%d",&x);//投票
if(x==-1) break;//-1退出
a[x]++;
}
if(a[0]>a[1])//反對
printf("No\n%d:%d\n",a[1],a[0]);
else if(a[1]>a[0])//同意
printf("Yes\n%d:%d\n",a[1],a[0]);
else//平
printf("Tie\n%d:%d\n",a[1],a[0]);
return 0;
}
7-4 月份翻譯機
本題要求你寫一個程序幫助不懂英文的用戶翻譯月份。已知英文的 12 個月份為:
一月:January
二月:February
三月:March
四月:April
五月:May
六月:June
七月:July
八月:August
九月:September
十月:October
十一月:November
十二月:December
輸入格式:
輸入包括若干行,每一行里給出一個英文單詞,長度不超過 10 個英文字母。
輸出格式:
對每一行的輸入,如果該單詞是一個英文的月份(不區分大小寫),則在一行中輸出這個月份對應的數字;否則輸出 ? 并結束程序。題目保證程序會結束。
輸入樣例:
october
MAY
what
aaaa
輸出樣例:
10
5
?
思路:用二維字符數組存儲月份,對于輸入的字符串,由于參雜著大小寫,建議先進行轉換,把他們都轉換成小寫字母,然后在把該字符串同每一個月份一一比較(月份定義時要設置它為小寫),若找到則輸出該月份,否則輸出?
參考代碼:
#include
#include
int main()
{
//定義月份
char month[12][20]={"january","february","march","april","may","june","july",
"august","september","october","november","december"};
char str[20];
int i;
while(gets(str)){//循環輸入字符串
for(i=0;i
if(str[i]>='A'&&str[i]<='Z')//如果有大寫字母則轉換成小寫
str[i]=str[i]-'A'+'a';
for(i=0;i<12;i++)//尋找
if(strcmp(str,month[i])==0)
break;
if(i==12){//找不到
printf("?\n");
return 0;
}
else //找到,則輸出i+1,因為下標從0開始
printf("%d\n",i+1);
}
return 0;
}
7-5 相生相克
古代先民認為,天下萬物皆由五類元素組成,分別是金、木、水、火、土,彼此之間存在相生相克的關系。
相生關系為:木生火,火生土,土生金,金生水,水生木。
相克關系為:金克木,木克土,土克水,水克火,火克金。
本題就請你編寫程序,判斷任意一對給定的元素之間的關系。
輸入格式:
輸入在一行中給出一個正整數 N(≤10),隨后 N 行,每行給出 2 個正整數 A 和 B,為兩種元素的編號。這里假設金、木、水、火、土的編號順次為 1、2、3、4、5。
輸出格式:
對輸入的每一對 A 和 B,如果 A 生 B,則輸出 A sheng B;如果 A 克 B,則輸出 A ke B。反之亦然。
輸入樣例:
2
4 2
5 3
輸出樣例:
2 sheng 4
5 ke 3
思路:和第一題類似,簡單模擬就行了,看代碼把……
參考代碼:
#include
int main()
{
int n,a,b;
scanf("%d",&n);
for(int i=0;i
scanf("%d%d",&a,&b);
if(a==4&&b==2||a==2&&b==4)
printf("2 sheng 4\n");
else if(a==4&&b==5||a==5&&b==4)
printf("4 sheng 5\n");
else if(a==1&&b==5||a==5&&b==1)
printf("5 sheng 1\n");
else if(a==1&&b==3||a==3&&b==1)
printf("1 sheng 3\n");
else if(a==3&&b==2||a==2&&b==3)
printf("3 sheng 2\n");
else if(a==1&&b==2||a==2&&b==1)
printf("1 ke 2\n");
else if(a==5&&b==2||a==2&&b==5)
printf("2 ke 5\n");
else if(a==5&&b==3||a==3&&b==5)
printf("5 ke 3\n");
else if(a==3&&b==4||a==4&&b==3)
printf("3 ke 4\n");
else if(a==1&&b==4||a==4&&b==1)
printf("4 ke 1\n");
}
return 0;
}
寫在最后,其實多刷算法題,鍛煉思維的話,做這些題目至少有一半的分,建議大家好好復習吧,雖然說學院不會掛很多人,但是去年200多個0分也是真的,最后祝大家期末考試順利~
總結
以上是生活随笔為你收集整理的江苏海洋大学c语言期末考试题库,海南热带海洋学院18级C语言期末考试PAT编程题...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java密码学原型算法实现——第三部分:
- 下一篇: 我的世界检测不到java_《我的世界》检