山東理工大學2017《程式設計基礎(B)I》期末上機測試第一場題解
#include <stdio.h> int main() { int n; scanf("%d",&n); if(n>=8)printf("Yes\n"); else printf("No\n"); return 0; }
皮卡丘的生日是? 考點:多重條件判斷+基礎迴圈。 解析:若當前日期在該年的2月27日以後時,年齡等於當前年份-1996,否則,年份等於當前年份-1997.
皮卡丘的屬性是? 考點:巢狀迴圈條件的使用。 解析:上下兩條斜線唯一的區別是下斜線比上斜線每行多一個空格,橫線的*號共有n+1個,之後注意迴圈條件的改變即可。#include <stdio.h> int main() { int y,m,d,a; while(~scanf("%d%d%d",&y,&m,&d)) { a=y-1996; if(m<2||(m==2&&d<27))a--; printf("%d\n",a); } return 0; }
皮卡丘的HP是? 考點:資料型別控制+基礎計算。 解析:int型可直接將所得結果向下取整,所以直接用int型即可,因為有兩次取整,所以將公式拆成兩部分計算。#include <stdio.h> int main() { int n,i,j; while(~scanf("%d",&n)) { for(i=n-1;i>=0;i--) { for(j=1;j<=i;j++) { printf(" "); } printf("*\n"); } for(i=1;i<=n+1;i++)printf("*"); printf("\n"); for(i=n;i>0;i--) { for(j=1;j<=i;j++) { printf(" "); } printf("*\n"); } printf("\n"); } return 0; }
#include <stdio.h>
int main()
{
int l,a,b,hp;
while(~scanf("%d%d%d",&l,&a,&b))
{
hp=70+a+b/4;
hp=hp*l/100+10+l;
printf("%d\n",hp);
}
return 0;
}
皮卡丘的編號是? 考點:一維陣列運用、基本排序方法的使用、基本查詢。
解析:此題有兩種做法。第一種:建立一個數組,將在圖鑑中記錄的寶可夢對應下標的資料用1表示,其餘的用0表示,列印時將資料為1的下標升序輸出。第二種:直接將編號加入陣列,每遇到一個新寶可夢,進行一次查詢,如果在陣列中找到,則不處理,否則將其加入陣列末端,並將元素個數加一,最後一起進行排序。 第一種:
#include <stdio.h>
int main()
{
int n,m,i,x,s,f;
int a[1010];
while(~scanf("%d%d",&n,&m))
{
for(i=0;i<=900;i++)a[i]=0;
while(n--)
{
scanf("%d",&x);
a[x]=1;
}
while(m--)
{
scanf("%d",&x);
a[x]=1;
}
s=0;
for(i=1;i<=807;i++)
{
if(a[i])s++;
}
printf("%d\n",s);
f=1;
for(i=1;i<=807;i++)
{
if(a[i])
{
if(f)printf("%d",i);
else printf(" %d",i);
f=0;
}
}
printf("\n");
}
return 0;
}
第二種:
#include <stdio.h>
int main()
{
int a[1010];
int n,m,i,j,t,f;
while(~scanf("%d%d",&n,&m))
{
for(i=0;i<n;i++)scanf("%d",&a[i]);
while(m--)
{
f=0;
scanf("%d",&t);
for(i=0;i<n;i++)
{
if(a[i]==t)
{
f=1;
break;
}
}
if(f==0)a[n++]=t;
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
printf("%d\n",n);
for(i=0;i<n;i++)
{
if(i==n-1)printf("%d\n",a[i]);
else printf("%d ",a[i]);
}
}
return 0;
}
皮卡丘的叫聲是?
考點:字串基礎匹配。
解析:判斷每個位置及其之後的6位是否滿足匹配到"pikachu"這個條件,若滿足,計數加一。
#include <stdio.h>
int main()
{
char b[]="pikachu";
char a[1010];
int i,j,ct,f;
while(~scanf("%s",a))
{
ct=0;
for(i=0;a[i];i++)
{
f=1;
for(j=0;j<7;j++)
{
if(a[i+j]!=b[j])f=0;
}
if(f)ct++;
}
printf("%d\n",ct);
}
return 0;
}
皮卡丘的敵人是: 考點:二維陣列基礎。 解析:首先找到小智(1)的座標,然後對二維陣列中的每個陷阱(2)進行距離最小的判斷,注意距離是一個正數,應該為座標差的絕對值。
#include <stdio.h>
int dis(int x1,int y1,int x2,int y2)
{
int y=0;
if(x1>x2)y+=x1-x2;
else y+=x2-x1;
if(y1>y2)y+=y1-y2;
else y+=y2-y1;
return y;
}
int main()
{
int n,m,x,y,i,j,s;
int a[30][30];
while(~scanf("%d%d",&n,&m))
{
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]==1)
{
x=i;
y=j;
}
}
}
s=m+n;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i][j]==2&&s>dis(x,y,i,j))s=dis(x,y,i,j);
}
}
printf("%d\n",s);
}
return 0;
}
皮卡丘的夥伴是: 考點:模擬實際問題、字元陣列、二維陣列的綜合運用。 解析:首先將字串對應成數字,再將屬性剋制關係用二維陣列表示,題目就簡化了很多。最後就是注意一下同屬性有一個50%的加成,最後比大小時用的是浮點數即可。
#include <stdio.h>
#include <string.h>
int main()
{
char na[4][10]={"Water","Fire","Grass","Electric"};
char a[10],b[10],c[10];
int aa,bb,cc,i;
double x1,x2,x3,max;
int y;
double t[4][4]={0.5,2,0.5,1,0.5,0.5,2,1,2,0.5,0.5,1,2,1,0.5,0.5};
while(~scanf("%s %s",a,b))
{
scanf("%lf %lf",&x1,&x2);
scanf("%s",c);
x3=60;
x1*=1.5;
for(i=0;i<4;i++)
{
if(strcmp(a,na[i])==0)aa=i;
if(strcmp(b,na[i])==0)bb=i;
if(strcmp(c,na[i])==0)cc=i;
}
x1*=t[aa][bb];
x3*=t[cc][bb];
max=x1;
y=1;
if(x2>max){y=2;max=x2;}
if(x3>max){y=3;max=x3;}
printf("%d\n",y);
}
return 0;
}
相關推薦
山東理工大學2017《程式設計基礎(B)I》期末上機測試第一場題解
題目列表: sdutoj 4129 皮卡丘的主人是?題目連結 sdutoj 4130 皮卡丘的生日是?題目連結 sdutoj 4131 皮卡丘的屬性是?題目連結 sdutoj 4132 皮卡丘的HP是?題目連結 sdutoj 4133 皮卡丘的編號是?題目連結 sdutoj
Linux學習之shell 程式設計基礎(二)
一、bash環境變數 HOME、MAIL、SHELL、PATH 等,環境變數大都用大寫字母組成 [[email protected] dalianmao]# echo $SHELL /bin/bash [[email protected] dalianmao]# echo
Linux學習之shell 程式設計基礎(一)
一、linux中經常和正則表示式聯合使用的工具 grep sed awk(自己去研究吧). 二,以grep為例,有以下正則操作 特殊符號彙總 特殊符號 代表意義 [:alnum:] 代表英文
Linux-Shell指令碼程式設計基礎(1)
1. 我們一般在使用Linux系統的時候,都活接觸到shell指令碼的使用,例如我們經常在linux系統中使用的ls命令、cd命令等,都是衣蛾簡單而又基本的shell命令,在 linux系統中我們一般的使用如下的格式來進行shell指令碼的編寫: (1)格式 #!bin/bash e
Python語言程式設計基礎(7)—— 檔案和資料格式化
返回字串 file = input() #返回字串 fo = open(file,"r").read(6) print(fo) 返回列表形式 file = input() fo = open(file,"r") #print(fo) #返回列表形式 pr
Python語言程式設計基礎(5)—— 組合資料型別
tuple 元組(建立後不能修改) tuple = "cat","dog","tiger","human" print(tuple) def fun(x): return x,x*2 print(type(fun(3))) for x,y in ((2,0),(2,5),
shell程式設計基礎(轉載)
Shell程式設計基礎 原作者 Leal;請參閱頁面底部的編者列表。 授權許可: 創作共享署名協議 GNU 自由文件許可證 注意:本文仍然在持續的修訂之中,且錯漏之處可能較多。如果能夠閱讀英語的話,可以考慮試試較為完善的 Wooledge BashGuide。這個站點除了教程之外,還有一
Windows網路程式設計基礎(1)---郵槽
/* 2018-9-6 12:21:04 郵槽的使用 */ 預備知識:CreateFile,ReadFile的使用 關鍵的函式 CreateMailslot 如果建立失敗 返回一個無效的控制代碼值INVILID_HANDLE_VALUE 用一個有效的控制代碼建立了郵槽之後,便可開始資料的實際讀取
C程式設計基礎(一)
參考書籍介紹 作業系統之哲學原理() C程式設計(譚浩強) 計算機網路(謝希仁) 微機原理(清華大學出版社) 高階資料結構 C語言基本資料型別、運算子與表示式 基本型別及其所佔位元組 short(短整型) :2個儲存單位 int (整型) :4個儲存單
Linux C高階程式設計——網路程式設計基礎(1)
Linux高階程式設計——BSD socket的網路程式設計 宗旨:技術的學習是有限的,分享的精神是無限的。 一網路通訊基礎 TCP/IP協議簇基礎:之所以稱TCP/IP是一個協議簇,是因為TCP/IP包含TCP 、IP、UDP、ICMP等多種協議。下圖
MapReduce程式設計基礎(二)——數值概要(計算最大值、最小值、平均值)
數值概要 數值概要模式是計算資料集聚合統計的一般性模式 適用場景: 要處理的資料數值或者計數 資料可以按某些特定的欄位分組 數值概要的應用: 單詞計數 記錄計數 最大/最小值計數 平均值/中位數/標準差
JAVA Socket程式設計基礎(轉載)
Java Socket程式設計 對於Java Socket程式設計而言,有兩個概念,一個是ServerSocket,一個是Socket。服務端和客戶端之間通過Socket建立連線,之後它們就可以進行通訊了。首先ServerSocket將在服務端監聽某個埠,當發現客
Java程式設計基礎(1)
一、概述1、三大平臺(1)java ME:嵌入式應用(小型裝置,比如行動通訊,智慧卡,電視機頂盒等)(2)Java SE:桌面級應用(也就是Eclipse一類的應用,Java SE SDK也簡稱JDK)(3)Java EE:Java的企業級應用平臺2、跨平臺特性——得益於ja
linux網路程式設計基礎(一)
一、資料儲存順序:大端和小端 高位位元組儲存高位元組稱為小端模式,通常都計算機採用這個模式儲存。而網路則採用大端傳輸。所以需要轉換 面試有時會出這麼個題:寫一個程式判
第一篇:面向物件程式設計基礎(上)
面向物件程式設計(Object Oriented Programming),簡稱OOP。是java程式設計的核心,也是java web應用開發的核心。主要有三個概念:封裝,繼承,和多型。 簡要闡述下三個概念:1、封裝:封裝是OOP語言的優點之一。把一個物件的資
MFC介面程式設計基礎(28):直接訪問MySql API 連線 mysql
直接訪問MySql API 連線 mysql 第一步: 安裝MySql 第二步: 在工程檔案中新增mysql 標頭檔案 #include mysql.h 第三步: 在VS屬性中做如下配置: ①:附加包含標頭檔案mysql.h的目錄,即安裝目錄下的
MFC介面程式設計基礎(27):排序和篩選
上一篇:MFC介面程式設計基礎(26):更新記錄 下一篇:MFC介面程式設計基礎(28):直接訪問MySql API 連線 mysql CRecordView類有兩個重要的資料成員m_strFilter和m_str
MFC介面程式設計基礎(26):更新記錄
上一篇:MFC介面程式設計基礎(25):設計記錄操作介面 下一篇:MFC介面程式設計基礎(27):排序和篩選 更新記錄操作包括修改,新增和刪除記錄,CRecordSet類提供了AddNew()、Delete()、E
MFC介面程式設計基礎(25):設計記錄操作介面
上一篇:MFC介面程式設計基礎(24):建立資料庫應用框架 下一篇:MFC介面程式設計基礎(26):更新記錄 開啟資源管理器的 Dialog資料夾,選擇IDD_EXAM2_1_FORM,在對話方塊中按下圖新增靜態控
MFC介面程式設計基礎(24):建立資料庫應用框架
上一篇:MFC介面程式設計基礎(23):建立並註冊資料來源 下一篇:MFC介面程式設計基礎(25):設計記錄操作介面 使用MFC類嚮導可以方便地得到一個數據庫應用程式的框架,建立一個MFC單文件EXE應用程式Exa