




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、上海大學(xué)計(jì)算機(jī)學(xué)院 夏季學(xué)期 計(jì)算機(jī)編程實(shí)訓(xùn)上海大學(xué) 計(jì)算機(jī)學(xué)院夏季學(xué)期計(jì)算機(jī)編程實(shí)訓(xùn)題2012年6月25可信計(jì)算與軟件工程研究室目 錄1. 基礎(chǔ)題11.1 數(shù)據(jù)構(gòu)造及其基本操作11.1.1 動(dòng)態(tài)數(shù)組11.1.2 文件11.1.3 結(jié)構(gòu)體21.2 鏈表及應(yīng)用41.2.1 閱讀并完成單向鏈表程序41.2.2 單向鏈表綜合程序設(shè)計(jì)41.2.3 josephus問(wèn)題52. 規(guī)范題62.1 最大公約數(shù)和最小公倍數(shù)62.2 指數(shù)函數(shù)值72.3 圓盤(pán)找數(shù)82.4 回文串92.5 單向鏈表92.6 正讀反寫(xiě)112.7 字符串交換112.8 數(shù)組排序122.9 航空售票系統(tǒng)132.10 鞍點(diǎn)152.11 螺旋
2、方陣162.12 三角形個(gè)數(shù)172.13 水仙花數(shù)182.14 統(tǒng)計(jì)字符數(shù)字空格和其它字符個(gè)數(shù)192.15 完全數(shù)192.16 24點(diǎn)202.17 logistic映射中的周期點(diǎn)212.18 驗(yàn)證3n+1問(wèn)題222.19 newton迭代法解方程232.20 計(jì)算若干個(gè)整數(shù)的和241. 基礎(chǔ)題通過(guò)本節(jié)基礎(chǔ)題的訓(xùn)練,使學(xué)生進(jìn)一步掌握c程序設(shè)計(jì)的數(shù)組、指針、鏈表和文件操作。所涉及的語(yǔ)法主要包括:c語(yǔ)言中數(shù)組、指針、函數(shù)、結(jié)構(gòu)體、鏈表、文件。1.1 數(shù)據(jù)構(gòu)造及其基本操作1.1.1 動(dòng)態(tài)數(shù)組練習(xí)1.1 隨機(jī)產(chǎn)生n個(gè)50100之間的整數(shù),輸出其中與平均值最接近的元素的值及下標(biāo)。【要求】定義函數(shù)原型如下的
3、功能函數(shù),并在main函數(shù)中調(diào)用這些函數(shù)測(cè)試其功能,源程序文件名為“學(xué)號(hào)_01.c”。 調(diào)用calloc或malloc函數(shù)創(chuàng)建動(dòng)態(tài)數(shù)組,free釋放動(dòng)態(tài)數(shù)組說(shuō)明:標(biāo)準(zhǔn)c語(yǔ)言中,在定義數(shù)組時(shí),數(shù)組元素個(gè)數(shù)必須為常量(即在編譯時(shí)能確定的值)。而本題中的n為變量,是在程序運(yùn)行時(shí)確定的,為了“既不浪費(fèi)內(nèi)存空間,又沒(méi)有最大處理能力的限制”,應(yīng)采用動(dòng)態(tài)數(shù)組(相關(guān)標(biāo)準(zhǔn)函數(shù)原型在頭文件中聲明)。 void getdata(int *a, int n);功能:設(shè)置具有n個(gè)元素的數(shù)組a的各個(gè)元素值,要求元素值取自50至100之間的隨機(jī)整數(shù)(提示:為了獲得隨機(jī)性更好的隨機(jī)數(shù),請(qǐng)用語(yǔ)句srand(time(null)
4、;設(shè)置隨機(jī)數(shù)發(fā)生器的種子,然后調(diào)用原型為int rand();的函數(shù),它產(chǎn)生0rand_max之間的隨機(jī)整數(shù)。需要包含頭文件和)。 void display(int *a, int n);功能:輸出數(shù)組a的所有元素。 double getaverage(int *a, int n);功能:計(jì)算并返回包含n個(gè)元素的數(shù)組a的平均值。 int getindex1(int *a, int n, double x);功能:獲取與x的值最接近的數(shù)組元素的最小下標(biāo)值。 int getindex2(int *a, int n, double x);功能:獲取與x的值最接近的數(shù)組元素的最大下標(biāo)值。1.1.2 文
5、件練習(xí)1.2 在文本文件records.txt中已存儲(chǔ)學(xué)生信息(學(xué)生人數(shù)不超過(guò)n,可以認(rèn)為#define n 60),包括學(xué)號(hào)、姓名、身高三個(gè)數(shù)據(jù)項(xiàng)(數(shù)據(jù)項(xiàng)之間用字符t分隔,姓名中可能含有空格字符,每位學(xué)生的數(shù)據(jù)占一行),要求編程從文件中獲取學(xué)生的學(xué)號(hào)和身高數(shù)據(jù)后,按身高從低到高的順序排序,并輸出排序后的學(xué)號(hào)、姓名、身高表?!疽蟆渴紫扔脀indows系統(tǒng)的“記事本”或其他文本編輯軟件編輯records.txt文件,每行為學(xué)號(hào)(整數(shù)或數(shù)碼字符串)、t、姓名(不超過(guò)8個(gè)字符)、t、身高(浮點(diǎn)型數(shù)據(jù))、n。然后編寫(xiě)程序:定義函數(shù)原型如下的功能函數(shù),并在main函數(shù)中調(diào)用這些函數(shù)測(cè)試其功能,源程序文
6、件名為“學(xué)號(hào)_02.c”。 char *fgetline(file *fp, char *str, int n, char delim);功能:從文件fp中讀取字符串存入str,讀取的字符數(shù)不超過(guò)n,或遇到delim指定的字符為止,并將該字符換成串結(jié)束標(biāo)志字符。函數(shù)返回所讀到的字符串,若直接遇到文件結(jié)束則返回空地址(null)。 int getrecs(char *filename, struct students *s, int n);功能:從字符串filename為文件名所聯(lián)系的文件中讀取數(shù)據(jù)到結(jié)構(gòu)體數(shù)組s中,最多讀取n個(gè)元素,返回實(shí)際讀取的元素個(gè)數(shù)。 void sort(struct s
7、tudents *s, int n);功能:對(duì)結(jié)構(gòu)體數(shù)組s按身高從低到高排序。 void display(struct students *s, int n);功能:輸出結(jié)構(gòu)體數(shù)組s中所有元素的所有數(shù)據(jù)成員的值。1.1.3 結(jié)構(gòu)體練習(xí)1.3 已知頭文件seqlist.h給出學(xué)生信息順序表的類(lèi)型定義和基本函數(shù)原型(用于函數(shù)聲明);程序文件seqlist.c中給出基本函數(shù)定義。(1) 順序表類(lèi)型定義typedef struct int id;/* 學(xué)號(hào) */char name9;/* 姓名 */double height;/* 身高 */int sex;/* 性別,0為男生,1為女生 */ dat
8、atype;#define max 100typedef struct datatype datamax;/* 存放順序表元素的數(shù)組 */int last;/* 表示data中實(shí)際存放元素個(gè)數(shù) */ seqlist;(2) 基本操作函數(shù)的函數(shù)原型void initlist(seqlist *lp);/*置一個(gè)空表*/void createlist(seqlist *lp);/*建一個(gè)學(xué)生順序表*/void sort_id(seqlist *lp);/*按學(xué)號(hào)排序*/void error(char *s);/*自定義錯(cuò)誤處理函數(shù)*/void printlist(seqlist *lp);/*輸出
9、學(xué)生表*/void save(seqlist *lp, char *strname);/*保存學(xué)生順序表到指定文件*/(3) 要求 閱讀源代碼文件seqlist.h和seqlist.c(見(jiàn)電子文檔),理解順序表類(lèi)型seqlist和基本操作函數(shù)。 采用多文件結(jié)構(gòu),另外編寫(xiě)一個(gè)程序(文件名為“學(xué)號(hào)_03.c”),并將seqlist.h和seqlist.c移植到本程序中,完成如下測(cè)試:l 從給定的學(xué)生信息文件records.txt中讀取數(shù)據(jù),創(chuàng)建一個(gè)包含學(xué)生學(xué)號(hào)、姓名(姓名中可能含有空格字符)、身高、性別的學(xué)生信息表;輸出學(xué)生信息到屏幕;l 對(duì)已建立的學(xué)生身高信息表按學(xué)號(hào)從小到大排序,并把結(jié)果寫(xiě)入到
10、數(shù)據(jù)文件中(results.txt);l 從鍵盤(pán)輸入一位學(xué)生的相關(guān)信息插入到已排序的學(xué)生身高信息表中后仍然保持學(xué)號(hào)的有序性;l 對(duì)新的學(xué)生身高信息表進(jìn)行倒置,結(jié)果輸出在屏幕;l 從鍵盤(pán)輸入一個(gè)身高值,統(tǒng)計(jì)與該身高相同的學(xué)生個(gè)數(shù)并輸出在屏幕;l 將原學(xué)生表拆分為男生身高信息表和女生身高信息表,分別輸出在屏幕上。在程序文件“學(xué)號(hào)_03.c”需再定義以下5個(gè)功能函數(shù):(1) int pause(char *prompt)printf(%s, prompt);return getch();功能:以字符串prompt為提示信息輸出,等待用戶按任意鍵,并返回所按鍵的掃描碼(注:getch函數(shù)并非標(biāo)準(zhǔn)c語(yǔ)言
11、的函數(shù),一般在windows系列操作系統(tǒng)中的c語(yǔ)言集成開(kāi)發(fā)環(huán)境都提供該函數(shù),其原型在頭文件中聲明)。(2) void insert(seqlist *lp, datatype x);功能:在學(xué)號(hào)從小到大排序的學(xué)生表中插入值為x的學(xué)生仍保持學(xué)號(hào)的有序性。(3) void reverse(seqlist *lp);功能:對(duì)lp指向的順序表進(jìn)行倒置操作。(4) int count(seqlist *lp,double y);功能:統(tǒng)計(jì)學(xué)生表中身高值為y的學(xué)生數(shù)并返回。(5) void split(seqlist *lp, seqlist *lpm, seqlist *lpfm);功能:對(duì)原lp學(xué)生表
12、拆分成男生身高表lpm與女生身高表lpfm。1.2 鏈表及應(yīng)用1.2.1 閱讀并完成單向鏈表程序練習(xí)2.1 給定程序文件linklist.h和linklist.c及file4.c并將它們按mingw developer studio集成開(kāi)發(fā)環(huán)境組織成工程文件ex_04.msp。請(qǐng)閱讀、分析程序,并完成file4.c文件中待完成的3個(gè)函數(shù)的定義(要求將文件名“file4.c”改成“學(xué)號(hào)_04.c”,并修改工程文件): int count(struct node head, double height_fm, double height_m);功能:統(tǒng)計(jì)head為頭結(jié)點(diǎn)的學(xué)生鏈表中身高達(dá)標(biāo)(女生身
13、高、男生身高標(biāo)準(zhǔn)依次由第2、3個(gè)參數(shù)給定)人數(shù)并返回。 void split(struct node *head, struct node *hm, struct node *hfm);功能:將head為頭結(jié)點(diǎn)的學(xué)生鏈表拆分成男生鏈表hm與女生鏈表hfm。 void merge(struct node *hm, struct node *hfm, struct node *head);功能:將男生鏈表hm與女生鏈表hfm,合并成一條鏈表head?!舅伎紗?wèn)題】 頭文件中應(yīng)該編寫(xiě)什么內(nèi)容,不能編寫(xiě)什么內(nèi)容? 頭文件中#ifndef #endif的含義是什么,宏linklist_h的作用是什么? 為
14、什么有些函數(shù)的形式參數(shù)設(shè)計(jì)成指針,用于接收鏈表頭結(jié)點(diǎn)的地址?而另一些函數(shù)卻不需要傳遞地址,即采用單向的值傳遞? 鏈表的增、刪、改、查等函數(shù)的算法步驟描述。1.2.2 單向鏈表綜合程序設(shè)計(jì)練習(xí)2.2 建一個(gè)帶頭結(jié)點(diǎn)的學(xué)生信息(學(xué)號(hào)、姓名、成績(jī))單向鏈表,按成績(jī)降序排列,打印輸出,并計(jì)算及格人數(shù)。#define max_size 20typedef struct studentint stunum, score;char namemax_size;struct student *next;node, *linklist;【要求】采用多文件結(jié)構(gòu)(1個(gè)頭文件,2個(gè)源程序文件),定義功能函數(shù)實(shí)現(xiàn) 初始化
15、一個(gè)空鏈表; 從鍵盤(pán)輸入數(shù)據(jù)(學(xué)號(hào)為非正數(shù)時(shí)結(jié)束),創(chuàng)建新結(jié)點(diǎn)添加到鏈表中; 釋放所有結(jié)點(diǎn); 輸出所有結(jié)點(diǎn)的所有數(shù)據(jù); 計(jì)算并返回鏈表的結(jié)點(diǎn)數(shù); 計(jì)算及格(成績(jī)不低于60分)的人數(shù),輸出及格率; 將鏈表分割成及格結(jié)點(diǎn)、不及格結(jié)點(diǎn)組成的兩條鏈表; 在“學(xué)號(hào)_05.c”源程序文件中定義主函數(shù),調(diào)用上述函數(shù),測(cè)試其功能。1.2.3 josephus問(wèn)題設(shè)計(jì)一個(gè)循環(huán)單向鏈表,求解如下josephus問(wèn)題,程序文件文件名為“學(xué)號(hào)_06.c”。有1至 n編號(hào)的n 個(gè)人按順時(shí)針?lè)较驀蝗?,每人持有一個(gè)密碼(正整數(shù))做游戲。游戲開(kāi)始時(shí),以正整數(shù)m作為報(bào)數(shù)上限值,從第一個(gè)人開(kāi)始順時(shí)針?lè)较蜃?開(kāi)始順序報(bào)數(shù),報(bào)到
16、m時(shí)停止報(bào)數(shù),報(bào)m的人出列,將其密碼作為新的報(bào)數(shù)上限值,從其下一個(gè)人開(kāi)始重新報(bào)數(shù),如此下去,直至所有的人全部出列為止。要求產(chǎn)生記錄出列順序的表。如n=7,m=20,每個(gè)人的密碼依次是:3,1,7,2,4,8,4,則出列順序?yàn)?,1,4,7,2,3,5。2. 規(guī)范題2.1 最大公約數(shù)和最小公倍數(shù)問(wèn)題描述從輸入文件中讀入兩個(gè)整數(shù)a,b,求最大公約數(shù)gcd(a,b)和最小公倍數(shù)和lcm(a,b)。 輸入輸入有若干行,每行有兩個(gè)整數(shù)a和b,(|a|,|b|65536)。輸入直到文件輸入結(jié)束。輸出對(duì)每一行測(cè)試數(shù)據(jù),在一行上先輸出“case #:”,其中“#”是測(cè)試數(shù)據(jù)的行編號(hào)(從1開(kāi)始),接著在下面的兩
17、行上分別輸出這兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。如無(wú)最大公因數(shù),則輸出“no gcd”;如無(wú)最小公倍數(shù),則輸出“no lcm”;兩組輸出數(shù)據(jù)之間空一行。輸入樣例 6 110 06 9輸出樣例case 1:gcd(6,11) = 1lcm(6,11) = 66case 2:no gcdno lcmcase 3:gcd(6,9) = 3lcm(6,9) = 182.2 指數(shù)函數(shù)值問(wèn)題描述通過(guò)ex的無(wú)窮級(jí)數(shù)展開(kāi)公式ex= 1+x+x2/2!+x3/3!+x4/4!+計(jì)算ex的值。(a)編寫(xiě)一個(gè)函數(shù)exp1(x),已知x,取無(wú)窮級(jí)數(shù)的前20項(xiàng)計(jì)算ex的近似值;(b)編寫(xiě)一個(gè)函數(shù)exp2(x),已知x,
18、用無(wú)窮級(jí)數(shù)計(jì)算ex,當(dāng)某項(xiàng)的值小于10-6時(shí),則從1到這項(xiàng)之和為ex的近似值;編寫(xiě)程序,從文件中輸入一個(gè)x值,分別調(diào)用函數(shù)exp1(x)和exp2(x),并輸出ex的近似值。輸入輸入有若干行,每行有一個(gè)實(shí)數(shù)x,(-10.0x10.0)。輸入直到文件輸入結(jié)束。輸出對(duì)輸入中的每一個(gè)實(shí)數(shù)x,在一行上先輸出“e1(x) = ”,其中x以小數(shù)點(diǎn)后有3位小數(shù)的形式輸出,再將用函數(shù)exp1(x)計(jì)算的值以四舍五入方式保留5位小數(shù)輸出;同樣地,在第二行上先輸出“e2(x) = ”,其中x以小數(shù)點(diǎn)后有3位小數(shù)的形式輸出,再將用函數(shù)exp2(x)計(jì)算的值以四舍五入方式保留5位小數(shù)輸出。兩組輸出數(shù)據(jù)之間空一行。輸入
19、樣例 61輸出樣例e1(6.000) = 403.42664e2(6.000) = 403.42871e1(1.000) = 2.71828e2(1.000) = 2.718282.3 圓盤(pán)找數(shù)問(wèn)題描述如圖找出3個(gè)連續(xù)數(shù)(緊挨著的3個(gè)數(shù)),它們相加和最大,再找出和數(shù)最小的3個(gè)數(shù),試編一程序求之。輸入輸入的第一行有一個(gè)整數(shù)n,表示測(cè)試數(shù)據(jù)的組數(shù)。接下來(lái)有n行,每行有若干個(gè)整數(shù)a1,a2,,am,(-10000a1,a2,, am 10000),他們表示一個(gè)圓盤(pán)上的m個(gè)數(shù),(m1000)。輸入直到文件輸入結(jié)束。輸出對(duì)輸入中每一行表示的圓盤(pán),在一行上先輸出“case #:”,其中“#”是測(cè)試數(shù)據(jù)的行
20、編號(hào)(從1開(kāi)始),接著在下面的一行上分別輸出這三個(gè)相鄰數(shù)字之和中最大和與最小和,以及取得最大和與最小和對(duì)應(yīng)的那三個(gè)相鄰數(shù)字的第一個(gè)數(shù)的下標(biāo)maxindex與minindex。注:數(shù)的下標(biāo)約定從1開(kāi)始編起。假如這些數(shù)不到3個(gè),那么就無(wú)法按圓盤(pán)方式計(jì)算,此時(shí)輸出“no maximal and minimal!”輸入樣例 220 1 8 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 51 -2輸出樣例case 1:maximum = 42, minimum = 13, maxindex = 12, minindex = 2case 2:no maximal and
21、 minimal!2.4 回文串問(wèn)題描述編寫(xiě)一函數(shù)palindrome(char* s)用于判斷任一字符串是否是回文(即順序讀與反序讀一樣,例如“abcba”、“121”等)。輸入輸入文件有多組測(cè)試數(shù)據(jù)。第一行有一個(gè)整數(shù)n,它是測(cè)試數(shù)據(jù)組數(shù),(n10)。接下來(lái)有n行,每行至多有m個(gè)字符,(m1000)。但是,每一行末尾處的換行字符不能作為這一行的內(nèi)容。輸出對(duì)每一組測(cè)試數(shù)據(jù),在一行上輸出你的判斷結(jié)果。若是回文串,則輸出“yes!”,否則輸出“no!”。(主函數(shù)調(diào)用判別函數(shù)并輸出判別結(jié)果)。輸入樣例3abcba121abca輸出樣例yes!yes!no!2.5 單向鏈表問(wèn)題描述編程實(shí)現(xiàn)下述功能:編
22、一函數(shù)struct node *create(),建立如下形式的單鏈表,并把每次讀入的整數(shù)添加到鏈?zhǔn)?。head100-1050 20編寫(xiě)一函數(shù)sort(struct node *head),按將無(wú)序單鏈表中的整數(shù)data成員按大到小的次序變?yōu)橛行騿捂湵?。主函?shù)調(diào)用函數(shù)create創(chuàng)建一個(gè)單鏈表,并分別輸出排序前和排序后的單鏈表。輸入輸入文件有多組測(cè)試數(shù)據(jù)。第一行有一個(gè)整數(shù)n,它是測(cè)試數(shù)據(jù)組數(shù),(n20)。接下來(lái)有n行,每行至多有m個(gè)整數(shù),(m1000),整數(shù)之間有一個(gè)或多個(gè)空格。行尾無(wú)多余空格。每一行的數(shù)據(jù)輸入結(jié)束標(biāo)志為換行符號(hào)。輸出對(duì)每一組測(cè)試數(shù)據(jù),先在一行上先輸出“case #:”,其中“
23、#”是測(cè)試數(shù)據(jù)的行編號(hào)(從1開(kāi)始),接著的一行上輸出“before sorting:”,再在接下來(lái)的行上輸出排序前的單鏈表,每行10個(gè)結(jié)點(diǎn)值;然后在下面的一行上輸出“after sorting:”,再在接下來(lái)的行上輸出排序后的單鏈表,也是每行10個(gè)結(jié)點(diǎn)值。輸入樣例31 3 2 -11 2 1 012 3 4 5 67 8 9 1 2 34 5 67 28 19 0輸出樣例case 1:before sorting:-1 2 3 1 after sorting:3 2 1 -1 case 2:before sorting:0 1 2 1 after sorting:2 1 1 0 case 3:
24、before sorting:0 19 28 67 5 34 2 1 9 867 5 4 3 12 after sorting:67 67 34 28 19 12 9 8 5 54 3 2 1 02.6 正讀反寫(xiě)問(wèn)題描述順序讀入一串?dāng)?shù)據(jù),讓機(jī)器以相反的次序輸出所有的數(shù)值。例如,讀入:abcde,輸出:edcba。輸入輸入的第1行是一個(gè)整數(shù)n,表示有n組測(cè)試數(shù)據(jù)。接下來(lái)有n行,每行表示一組測(cè)試數(shù)據(jù),這一行由一串字符串構(gòu)成,字符串中允許出現(xiàn)空格,以回車(chē)符作為這一行的結(jié)束符。輸出對(duì)每一字符串表示的數(shù)據(jù),在一行上輸出對(duì)應(yīng)的逆序字符串。輸入樣例2abcde12輸出樣例edcba212.7 字符串交換問(wèn)題
25、描述交換兩個(gè)不同長(zhǎng)度的字符串指針,分別輸出之。要求:用函數(shù)調(diào)用的方式來(lái)實(shí)現(xiàn)。主函數(shù)中定義兩個(gè)字符串,然后調(diào)用交換函數(shù)。如將:x=“i am a good teacher.”與y=“hello good morning .”進(jìn)行交換。輸入輸入的第1行是一個(gè)整數(shù)n,表示有n組測(cè)試數(shù)據(jù)。接下來(lái)是n組測(cè)試數(shù)據(jù)的描述,每一組測(cè)試數(shù)據(jù)有2行,他們均由一串字符串構(gòu)成,字符串中允許出現(xiàn)空格,以回車(chē)符作為這一行的結(jié)束符。兩組測(cè)試數(shù)據(jù)之間有一個(gè)空行。輸出對(duì)輸入中的每一組2行測(cè)試字符串,先輸出“case #:”,其中“#”是測(cè)試數(shù)據(jù)的編號(hào)(從1開(kāi)始),接著按要求在下面的兩行上分別輸出這兩個(gè)經(jīng)過(guò)交換過(guò)的字符串。輸入樣
26、例2i am a good teacher.hello good morning .123abcdef輸出樣例case 1:hello good morning .i am a good teacher.case 2:abcdef1232.8 數(shù)組排序問(wèn)題描述任意給定整數(shù)n,及一組由下列公式定義的數(shù)組an:a1=25,a2=-25,ai=(ai-1*4627+ai-2*3581)/100%100-50(i=3,4,n),用選擇排序法把a(bǔ)重整為 a1a2an ,輸出結(jié)果。主函數(shù)調(diào)用排序函數(shù),排序應(yīng)盡量減少數(shù)據(jù)移動(dòng)的次數(shù)。輸入輸入文件的每一行上有一個(gè)整數(shù)n,(1n1000),表示你要處理的這一組測(cè)
27、試數(shù)據(jù)是由n個(gè)數(shù)組成的數(shù)組a。輸出對(duì)輸入中的每一個(gè)整數(shù)n,輸出數(shù)組a經(jīng)從小到大排序后的數(shù)組,元素之間有一個(gè)空格,尾部無(wú)多余空格。兩組輸出數(shù)據(jù)之間有一個(gè)空行。輸入樣例234輸出樣例-25 25-25 2 25-25 2 25 372.9 航空售票系統(tǒng)問(wèn)題描述為一個(gè)容器為m個(gè)座位飛機(jī)的航班之每次飛行分配座位。飛機(jī)上分了2個(gè)區(qū):吸煙區(qū)、無(wú)吸煙區(qū),吸煙區(qū)座位數(shù)為n,無(wú)吸煙區(qū)座位數(shù)為m-n。如果購(gòu)票人鍵入了數(shù)1,那么程序就在吸煙區(qū)給他分配一個(gè)座位(座號(hào)1n);如果鍵入0,程序就在無(wú)吸煙區(qū)給他分配一個(gè)座位(座號(hào)n+1m)。分配座位號(hào)按從小到大方式進(jìn)行。輸入輸入文件中有若干測(cè)試數(shù)據(jù)。每一組測(cè)試數(shù)據(jù)的第一行是
28、兩個(gè)整數(shù)m、n,他們分別是飛機(jī)座位數(shù)與吸煙區(qū)座位數(shù)。接下來(lái)有若干行,每行有兩個(gè)整數(shù)b、s。這里b=1或0,表示購(gòu)票人鍵入的數(shù);s=0表示購(gòu)票人吸煙區(qū)滿員后,購(gòu)票人愿意被分配到無(wú)吸煙區(qū)的座位;當(dāng)s不是0時(shí),系統(tǒng)不能將座位進(jìn)行調(diào)整。當(dāng)b=-1時(shí)表示這一組測(cè)試數(shù)據(jù)輸入結(jié)束。當(dāng)一行上的兩個(gè)整數(shù)m、n為0時(shí)表示文件輸入結(jié)束。輸出然后程序打印出該購(gòu)票者所得的座號(hào)以及座位是在無(wú)吸煙區(qū)還是在吸煙區(qū)。對(duì)輸入中的每一組測(cè)試數(shù)據(jù),先輸出“case #:”,其中“#”是測(cè)試數(shù)據(jù)的編號(hào)(從1開(kāi)始),接著按要求在下面的行上輸出每個(gè)購(gòu)票者的座位信息:分區(qū)與座位號(hào)。如在吸煙區(qū),那么輸出“smoking”, 如在無(wú)吸煙區(qū),那么
29、輸出“no smocking”。系統(tǒng)不能把已出售座位再分配給別人。當(dāng)無(wú)煙區(qū)或吸煙區(qū)滿員后,信息“next flight leaves 6 hours”。輸入樣例10 60 11 01 10 00 11 11 01 00 11 1-1 010 40 11 01 10 00 11 11 01 00 11 1-1 00 0輸出入樣例case 1:no smoking: 1smoking: 1smoking: 2no smoking: 2no smoking: 3smoking: 3smoking: 4smoking: 5no smoking: 4smoking: 6case 2:no smoking
30、: 1smoking: 1smoking: 2no smoking: 2no smoking: 3smoking: 3smoking: 4no smoking: 4no smoking: 5next flight leaves 6 hours2.10 鞍點(diǎn)問(wèn)題描述給定一個(gè)n*n矩陣a。矩陣a的鞍點(diǎn)是一個(gè)位置(i,j),在該位置上的元素是第i行上的最大數(shù),第j列上的最小數(shù)。一個(gè)矩陣a也可能沒(méi)有鞍點(diǎn)。你的任務(wù)是找出a的鞍點(diǎn)。輸入輸入文件的第1行是一個(gè)整數(shù)t,(1=t=20),表示下面有t個(gè)矩陣。接下來(lái)是t個(gè)矩陣的描述。每一個(gè)矩陣a由若干行組成,第1行上是一個(gè)正整數(shù)n, (1=n=100),然后有n
31、行,每一行有n個(gè),同一行上兩個(gè)元素之間有一個(gè)或多個(gè)空格。兩個(gè)矩陣描述之間空一行。輸入直到文件結(jié)束。輸出對(duì)輸入文件中的t個(gè)矩陣,輸出“yes”或“no”,如果一個(gè)矩陣a有鞍點(diǎn),那么輸出“yes”,否則輸出“no”。輸入樣例251 2 3 4 56 7 8 9 1087 45 98 65 378 94 34 67 589 65 88 50 4921 24 3輸出樣例noyes2.11 螺旋方陣問(wèn)題描述下面是一個(gè)5*5螺旋方陣。你的任務(wù)是按順時(shí)針?lè)较蛐M(jìn)的n*n螺旋方陣。1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9輸入輸入
32、文件有若干行,每一行上有一個(gè)整數(shù)n,(1=n=100)。 輸出對(duì)輸入文件中的每個(gè)整數(shù)n,按n行n列的方式輸出n*n螺旋方陣,行尾無(wú)空格,同一行上兩個(gè)數(shù)之間空一格。兩個(gè)螺旋方陣之間空一行。輸入樣例54輸出樣例1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 91 2 3 412 13 14 511 16 15 610 9 8 72.12 三角形個(gè)數(shù)問(wèn)題描述在平面中給出了n個(gè)點(diǎn)。這些點(diǎn)任三點(diǎn)不共線,并且每?jī)蓚€(gè)點(diǎn)之間都有一條線相連,求三角形的數(shù)目。輸入輸入文件只有一行,這一行有若干個(gè)整數(shù),相鄰兩個(gè)整數(shù)用一個(gè)空格隔開(kāi)。每個(gè)整數(shù)n滿足
33、(1=n=2,000,000)。 輸出輸出文件有若干行。對(duì)輸入文件中的每個(gè)整數(shù)n,輸出一行,輸出內(nèi)容是三角形的數(shù)目。輸入樣例3 4 5輸出樣例14102.13 水仙花數(shù)問(wèn)題描述水仙花數(shù)是一個(gè)三位數(shù),其各位數(shù)字立方和等于數(shù)本身。例如,153是一個(gè)水仙花數(shù),因?yàn)?53=。你的任務(wù)是判斷一個(gè)數(shù)n是否是水仙花數(shù)。輸入輸入文件有若干行,每一行上有一個(gè)整數(shù)n,(1=n=999)。 輸出輸出文件有若干行。對(duì)輸入文件中的每個(gè)整數(shù)n,在一行上輸出“yes”或“no”,如果數(shù)n是水仙花數(shù),那么輸出“yes”,否則輸出“no”。輸入樣例153100輸出樣例yesno2.14 統(tǒng)計(jì)字符數(shù)字空格和其它字符個(gè)數(shù)問(wèn)題描述一
34、行字符中有字符、數(shù)字、空格及其它字符。你的任務(wù)是統(tǒng)計(jì)這一行字符串中字符、數(shù)字、空格和其它字符的個(gè)數(shù)。輸入輸入文件有若干行,每一行上若干個(gè)字符組成的字符串。輸出輸出文件有若干行。對(duì)輸入文件中的每一行字符串,在一行上輸出字符、數(shù)字、空格和其它字符的個(gè)數(shù)之間空一個(gè)空格。輸入樣例123fe*&54 0934jdf *as輸出樣例3 9 1 24 0 1 12.15 完全數(shù)問(wèn)題描述一個(gè)數(shù)n如果恰好等于它的真因子之和,那么這個(gè)數(shù)就稱(chēng)為完全數(shù)。例如,6是一個(gè)完全數(shù),因?yàn)?=1+2+3。你的任務(wù)是判斷一個(gè)數(shù)n是否是完全數(shù)。輸入輸入文件有若干行,每一行上有一個(gè)整數(shù)n,(1=n=65535)。 輸出輸出文件有若干
35、行。對(duì)輸入文件中的每個(gè)整數(shù)n,先輸出數(shù)n,接著空一格后輸出“yes”或“no”,如果數(shù)n是完全數(shù),那么輸出“yes”,否則輸出“no”。輸入樣例369輸出樣例3 yes6 yes9 no2.16 24點(diǎn)問(wèn)題描述給定4個(gè)不超過(guò)10的正整數(shù)a,b,c,d(為了降低難度要求不改變其順序),在其間添加括號(hào)及運(yùn)算符+,-,*,/(浮點(diǎn)數(shù)除法)使其結(jié)果為24。輸入輸入數(shù)據(jù)文件中有若干行,每一行有4個(gè)正整數(shù)對(duì)應(yīng)一種情形。輸出對(duì)于每一種情形,要求先輸出“case #: ”(其中#為序號(hào)),然后輸出具體算式(有多種解法時(shí)僅需輸出一種),若不可能使計(jì)算結(jié)果為24,則輸出impossible!?!靖阶ⅰ?4個(gè)數(shù)需要
36、3次算術(shù)運(yùn)算(從4種運(yùn)算符中可重復(fù)地任選3個(gè)運(yùn)算符,共有4364種情形,可用3重循環(huán)實(shí)現(xiàn));添加括號(hào)共有5種可能情形(參見(jiàn)下面輸出樣例),其中,分別表示某種運(yùn)算符(a b) c da (b c) d(a b) (c d)a (b c) da b (c d)建議將運(yùn)算設(shè)計(jì)成函數(shù),利用指向函數(shù)的指針數(shù)組對(duì)自定義的add(加),sub(減),mul(乘),div(除)函數(shù)進(jìn)行有效地統(tǒng)一管理使用double (*op4)(double, double) = add, sub, mul, div; 若進(jìn)一步考慮交換a,b,c,d的次序,其全排列共有4!=24種; 還可以考慮可取113之間的整數(shù)。輸入樣例
37、1 2 3 45 1 5 56 8 7 52 3 4 55 5 1 55 5 5 1輸出樣例case 1: (1+2)+3*4 = 24case 2: 5-(1/5)*5 = 24case 3: (6*8)/(7-5) = 24case 4: 2*(3+4)+5 = 24case 5: 5*5-(1/5) = 24case 6: impossible!2.17 logistic映射中的周期點(diǎn)(1) 概述logistic映射是混沌學(xué)中的例子,指的是如下迭代計(jì)算其中參數(shù)。取便可以進(jìn)行迭代計(jì)算。對(duì)于某些給定的參數(shù),這個(gè)迭代過(guò)程可能收斂到一個(gè)點(diǎn)(即滿足,該點(diǎn)被稱(chēng)為不動(dòng)點(diǎn),或者周期為1的點(diǎn))此時(shí)稱(chēng)迭代的周期為1;而對(duì)于某些給定的參數(shù),這個(gè)迭代過(guò)程可能在兩個(gè)點(diǎn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際關(guān)系學(xué)院《工程力學(xué)與機(jī)械設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北環(huán)境工程學(xué)院《護(hù)理學(xué)基礎(chǔ)技術(shù)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京航空航天大學(xué)金城學(xué)院《細(xì)胞生物學(xué)課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城市職業(yè)學(xué)院《戰(zhàn)略管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東新安職業(yè)技術(shù)學(xué)院《生物化學(xué)及實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春師范大學(xué)《汽車(chē)底盤(pán)構(gòu)造與維修》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西華澳商貿(mào)職業(yè)學(xué)院《移動(dòng)通信技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大學(xué)生畢業(yè)實(shí)習(xí)計(jì)劃
- 大一新生軍訓(xùn)心得感悟(28篇)
- 農(nóng)村亂占耕地建房問(wèn)題整治工作匯報(bào)范文(3篇)
- 建設(shè)工程總承包EPC建設(shè)工程項(xiàng)目管理方案1
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標(biāo)準(zhǔn)
- (2024)竹產(chǎn)業(yè)生產(chǎn)建設(shè)項(xiàng)目可行性研究報(bào)告(一)
- 《零起點(diǎn)學(xué)中醫(yī)》課件
- 2024年度酒店智能化系統(tǒng)安裝工程合同
- 2025年春部編版四年級(jí)語(yǔ)文下冊(cè)教學(xué)計(jì)劃
- 扣好人生的第一??圩友葜v稿國(guó)旗下的講話
- 新質(zhì)生產(chǎn)力戰(zhàn)略下AIGC賦能的知識(shí)和情報(bào)服務(wù)創(chuàng)新:新機(jī)制、新風(fēng)險(xiǎn)與新路徑
- 高端醫(yī)療會(huì)所
- 課堂學(xué)習(xí)者差異化教學(xué)方案計(jì)劃
- 十八項(xiàng)醫(yī)療核心制度培訓(xùn)
評(píng)論
0/150
提交評(píng)論