




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、試題1“數(shù)學(xué)黑洞”:任意一個4位自然數(shù),將組成該數(shù)的各位數(shù)字重新排列,形成一個最大數(shù)和一個最小數(shù),之后兩數(shù)相減,其差仍為一個自然數(shù)。重復(fù)進(jìn)行上述運(yùn)算,最終會出現(xiàn)一個神秘的數(shù),請編程輸出這個神秘的數(shù)。clear;a=input('請輸入一個四位正整數(shù):'); str_a=num2str(a); %將a轉(zhuǎn)化為一個字符串 b_min=str2double(sort(str_a); %形成最小數(shù)b_max=str2double(sort(str_a,'descend'); %形成最大數(shù) b=b_max-b_min; %求最大數(shù)與最小數(shù)之差 while (b=a) a=b
2、; str_a=num2str(a); %將a轉(zhuǎn)化為一個字符串 b_min=str2double(sort(str_a); %形成最小數(shù) b_max=str2double(sort(str_a,'descend'); %形成最大數(shù) b=b_max-b_min; %求最大數(shù)與最小數(shù)之差 endb試題2將數(shù)字1、2、3、4、5、6填入一個2行3列的表格中,要使得每一列右邊的數(shù)字比左邊的數(shù)字大,每一行下面的數(shù)字比上面的數(shù)字大。請編寫程序求出按此要求可有幾種填寫方法。a(1)=1;a(6)=6;count=0; %用來計(jì)數(shù)b=perms('2345'); %產(chǎn)生2345
3、的全排列m,n=size(b); for i=1:m temp=b(i,:); a(2)=str2double(temp(1); a(3)=str2double(temp(2); a(4)=str2double(temp(3); a(5)=str2double(temp(4); if (a(4)>a(2)&&(a(4)>a(3)&&(a(5)>a(3) count=count+1; c=reshape(a,2,3); %將a向量轉(zhuǎn)化為2*3矩陣輸出 disp(c); end end disp('共有',num2str(count
4、),'種填寫方法'); %輸出填寫方法的種數(shù)試題3編寫成績排序程序。按學(xué)生的序號輸入學(xué)生的成績,按照分?jǐn)?shù)由高到低的順序輸出學(xué)生的名次,該項(xiàng)名次的分?jǐn)?shù)、相同名次的人數(shù)和學(xué)號;同名次的學(xué)號輸出在同一行中,一行最多輸出10個學(xué)號。clear;a=zeros(1,2); %用a矩陣來存放學(xué)生的學(xué)號和成績,每一行代表一個學(xué)生 num=input('請輸入學(xué)號:');score=input('請輸入成績:');i=0; while (isempty(num) i=i+1; a(i,1)=num; a(i,2)=score; num=input('請輸
5、入學(xué)號:'); score=input('請輸入成績:');end b=sortrows(a,-2); %按第2列進(jìn)行降序排列mc=(1:i)'b=mc,b; %加了名次之后的學(xué)生成績,且已按高分到低分排序,第1列表示名次,第2列表示學(xué)號,第3列表示成績 %b矩陣共有i行 %下面處理并列名次for j=2:i if (b(j,3)=b(j-1,3) %若成績相等,則名次應(yīng)相同 b(j,1)=b(j-1,1); endend %下面輸出矩陣disp('名次',' 學(xué)號 ',' 成績 ',' 人數(shù) ')
6、;j=1; %從第1名開始while (j<=i) k=find(b(:,1)=j); len=length(k); if (len=0) string1=num2str(b(k(1),1); %將名次字符串化 %處理同名次的學(xué)號問題 string2='' for j1=1:len string2=strcat(string2,num2str(b(k(j1),2),','); end string3=num2str(b(k(1),3); %將成績字符串化 string4=num2str(len); disp(string1,' ',stri
7、ng2,' ',string3,' ',string4); end j=j+1;end試題4輸入一個字符串,內(nèi)有數(shù)字和非數(shù)字字符,如:gs 423cd156 7896>?df12345,將其中連續(xù)的數(shù)字作為一個整數(shù),依次存放到一向量a中,例如:423放在a(1),156放在a(2),。統(tǒng)計(jì)共有多少個整數(shù),并輸出這些數(shù)。clear;str=input('請輸入一個字符串:','s');len=length(str);i=0; %a向量的下標(biāo)num=0; %統(tǒng)計(jì)整數(shù)的個數(shù)flag=0; %標(biāo)志位,為1代表出現(xiàn)數(shù)字,為0代表出現(xiàn)非
8、數(shù)字字符s=0; %存放出現(xiàn)的一個個整數(shù) for j=1:len ch=str(j); if (ch>='0'&&ch<='9') if (flag=0) %判斷上一個字符是不是非數(shù)字 flag=1; num=num+1; end temp=str2double(ch); s=s*10+temp; if (j=len) i=i+1; a(i)=s; end else if (flag=1) %判斷上一個字符是不是數(shù)字 flag=0; i=i+1; a(i)=s; s=0; %s重新置為0,為接收下一個整數(shù)作準(zhǔn)備 end endendd
9、isp('共有',num2str(num),'個整數(shù),如下:');disp(a);試題5:輸入一字符串,編寫程序?qū)崿F(xiàn)如下功能:1)將字符串的內(nèi)容顛倒過來并進(jìn)行輸出。如:“abc”改為“cba”。2)統(tǒng)計(jì)輸入文本中單詞的個數(shù),單詞之間用空格符、換行符、跳格符隔開。3)找出字符串中所有相同的字母,輸出并顯示其出現(xiàn)次數(shù)。clear;str=input('請輸入一個字符串:','s');len=length(str); flag=0; %標(biāo)志,出現(xiàn)空格符、換行符、跳格符,值為0,否則,值為1num=0; %統(tǒng)計(jì)單詞的個數(shù)for j=1:l
10、en ch=str(j); if (ch>='a'&&ch<='z')|(ch>='A'&&ch<='Z') if (flag=0) flag=1; num=num+1; end else flag=0; endenddisp('輸入文本中共有',num2str(num),'個單詞');試題6:調(diào)用隨機(jī)函數(shù)產(chǎn)生54的矩陣,要求每一個元素為0,100的整數(shù)。 編寫程序,實(shí)現(xiàn)如下功能:1)求出每行元素之和的平均值,并將平均值最大的一行元素與平均值最
11、小的一行元素對調(diào)。輸出該矩陣。2)逆置該矩陣并輸出。即將第一列的元素放在第一行上、第二列的元素放在第二行上、其它依次類推。3)找出每一行最小的數(shù),輸出其所在的列號。a=fix(101*rand(5,4);disp(a); %第1小題a1=a;aver=sum(a1,2)/4;max_aver=aver(1); i=1; %max_aver存放最大平均值,i記錄其所在的行min_aver=aver(1); j=1; %min_aver存放最小平均值,j記錄其所在的行 for k=2:5 if (aver(k)>max_aver) max_aver=aver(k); i=k; end if
12、(aver(k)<min_aver) min_aver=aver(k); j=k; endend%將第i行和第j行互換for k=1:4 t=a1(i,k); a1(i,k)=a1(j,k); a1(j,k)=t;enddisp(a1); %第2小題disp(a'); %第3小題Y,U=min(a,2); %每行最小的數(shù)存放在Y中,其所在的列號存放在U中for k=1:5 disp('第',num2str(k),'行最小的數(shù)是:',num2str(Y(k),',其位于第',num2str(U(k),'列');end試
13、題7:輸入一行數(shù)字字符(用回車結(jié)束),每個數(shù)字字符的前后都有空格,編寫程序?qū)崿F(xiàn)如下功能。1)按大小順序輸出每個數(shù)字字符及與之對應(yīng)的ASCII代碼值,每行輸出三對。2)將這一行中的數(shù)字轉(zhuǎn)換成一個整數(shù),例如:若輸入2 4 8 3 <CR>,則輸出24833)將該數(shù)字字符串中的所有偶數(shù)數(shù)字字符刪除。clear;str=input('請輸入一行數(shù)字字符(用回車結(jié)束)','s'); %第1小題a1=str;k=a1=' 'a1(k)=; a1=sort(a1); %對a1中的各數(shù)字字符排序len=length(a1);i=1;while (i+
14、2<=len) %控制每行輸出3對 disp(a1(i),'對應(yīng)的ASCII代碼值是',num2str(abs(a1(i),' ',a1(i+1),'對應(yīng)的ASCII代碼值是',num2str(abs(a1(i+1),' ',a1(i+2),'對應(yīng)的ASCII代碼值是',num2str(abs(a1(i+2); i=i+3;end %輸出余下的1對或2對if (i=len) disp(a1(i),'對應(yīng)的ASCII代碼值是',num2str(abs(a1(i);else if(i+1=len)
15、 disp(a1(i),'對應(yīng)的ASCII代碼值是',num2str(abs(a1(i),' ',a1(i+1),'對應(yīng)的ASCII代碼值是',num2str(abs(a1(i+1); endend %第2小題a2=str;k=a2=' 'a2(k)=;disp(a2); %第3小題a3=str;k=a3=' 'a3(k)=;for j=1:length(a3) ch=a3(j); if (fix(str2double(ch)/2)=str2double(ch)/2) %判斷是否是偶數(shù) a3(j)='
16、39; endendk=a3=' 'a3(k)=;disp(a3)試題8:輸入任意整數(shù),編程實(shí)現(xiàn)如下功能。1)編寫函數(shù),驗(yàn)證任意偶數(shù)為兩個素?cái)?shù)之和并輸出這兩個素?cái)?shù)。2)編寫函數(shù),判斷整數(shù)x是否是同構(gòu)數(shù),所謂“同構(gòu)數(shù)”是指,它出現(xiàn)在它的平方數(shù)的右邊。例如:輸入整數(shù)5,5的平方數(shù)是25,5是25中右側(cè)的數(shù),所以5是同構(gòu)數(shù)。x的值由主函數(shù)從鍵盤讀入,要求不大于100。3)編寫函數(shù),將輸入的10進(jìn)制整數(shù)轉(zhuǎn)化為它所對應(yīng)的二進(jìn)制數(shù)。function flag=shiti8t2(x)m=fix(log10(x)+1; %求x的位數(shù) if(mod(x2,10m)=x) flag=1;else
17、flag=0;end試題9:求兩個正整數(shù)的最小公倍數(shù)和最大公約數(shù)function gbs,gys=shiti9(m,n)%gbs是m,n的最小公倍數(shù),gys是m,n的最大公約數(shù)%先求最大公約數(shù)for i=min(m,n):-1:1 if (mod(m,i)=0&&mod(n,i)=0) break; endendgys=i;%求最小公倍數(shù)for i=max(m,n):m*n if (mod(i,m)=0&&mod(i,n)=0) break; endendgbs=i;試題10:輸出9*9口訣for i=1:9 A=; for j=1:i A=A,sprintf(
18、'%d×%d=%2d ',j,i,i*j); end disp(A)end試題11:在xy平面中隨機(jī)取一些點(diǎn),并按照順序依次相連接,那么我們得到一個多邊形。這個多邊形普遍情況下會出現(xiàn)邊與邊的相交。現(xiàn)在找到多邊形所有邊的中點(diǎn),并且將這些中點(diǎn)連成一個新的多邊形,如此重復(fù)下去。 要求:先隨機(jī)生成一個50個頂點(diǎn)的多邊形并畫出其圖形(可使用rand()函數(shù)隨機(jī)初始化頂點(diǎn)的坐標(biāo)),然后將上面取中點(diǎn)生成新多邊形的過程重復(fù)10遍,輸出最后多邊形的圖形。clear;a=fix(20*rand(50,2);b=a;a(1,:); %目的是讓第1個頂點(diǎn)與最后一個頂點(diǎn)連線subpl
19、ot(3,4,1);plot(b(:,1),b(:,2);axis(0 20 0 20);grid onbox on %重復(fù)10次for i=1:11 m1=a; m2=a(2:50,:);a(1,:); a=(m1+m2)/2; %取其中點(diǎn) b=a;a(1,:); subplot(3,4,i+1); plot(b(:,1),b(:,2); end試題12:在4×4的棋盤上安置4個皇后,要求任意兩個皇后不在同一行、不在同一列、不在同一對角線上,輸出所有的方案。tic;N=4;a=perms(1:N); %產(chǎn)生一個全排列b=zeros(N); %產(chǎn)生一個全0矩陣,即一個棋盤,有皇后的地
20、方為1,其余為0,初始值都為0count=0; %記下符合要求方案的個數(shù) for i=1:size(a,1) flag=1; %標(biāo)志 temp=a(i,:); queen=1:N;temp' %queen是一個N*2的矩陣,每一行代表一個皇后的所處的行數(shù)和列數(shù),第i行就代表第i個皇后 Nqueen2=combntns(1:N,2); %從N個皇后中隨機(jī)選擇兩個皇后。Nqueen2是一個n行2列的矩陣,每一行表示選擇的兩個皇后,n就是從N皇后選擇2個皇后的組合數(shù) %對任意選擇的兩個皇后作測試,看是否符合不在同一對角線上的要求 for k=1:size(Nqueen2,1) q1=Nque
21、en2(k,1); q2=Nqueen2(k,2); %q1和q2中選擇的兩個皇后 row1=queen(q1,1); col1=queen(q1,2); %記下q1皇后所在的行數(shù)和列數(shù) row2=queen(q2,1); col2=queen(q2,2); %記下q2皇后所在的行數(shù)和列數(shù) if (row1-row2=col1-col2)|(row1+col1=row2+col2) flag=0; break; end end if (flag=0) continue; end for j=1:N b(j,temp(j)=1; end disp(b); %顯示棋盤 count=count+1;
22、 %方案數(shù)加1 b=zeros(N); %重新初始化棋盤enddisp('共有',num2str(count),'種方案');toc;試題13:現(xiàn)有21根火柴,兩人輪流取,每人每次可取走1- 4根,不可多取,也不能不取,誰取最后一根火柴則誰輸。請編寫一個程序進(jìn)行人機(jī)對弈,要求人先取,計(jì)算機(jī)后??;計(jì)算機(jī)一方為“常勝將軍” clear;clc;num=21;while 1 disp('現(xiàn)在還剩',num2str(num),'根火柴;'); a=input('請輸入您取走的火柴根數(shù)(1-4):');
23、while a<1|a>4|a=fix(a)|a>num %如果用戶輸入的數(shù)大于4或小于1或?yàn)樾?shù)或大于剩余的火柴根數(shù),重新輸入 a=input('您輸入的數(shù)據(jù)格式不對,請重新輸入:'); end num=num-a; if num=0 disp('您輸了!謝謝您的參與!'); break; end disp('現(xiàn)在還剩',num2str(num),'根火柴;'); b=5-a; %計(jì)算機(jī)取的火柴數(shù) disp('計(jì)算機(jī)取',num2str(b),'根火柴;'); num=num-b
24、; end試題14:自動發(fā)牌:一副撲克有52張牌,打橋牌時應(yīng)將牌分給四個人。請?jiān)O(shè)計(jì)一個程序完成自動發(fā)牌的工作。要求:黑桃用S(Spaces)表示;紅桃用H(Hearts)表示;方塊用D(Diamonds)表示;梅花用C(Clubs)表示。clear;clc; b=1:52; %表示一副撲克牌,113表示黑桃A黑桃K;1426表示紅桃A紅桃K;依此類推 a1=; %表示第1個人應(yīng)得的牌,初始為空,牌發(fā)完后,a1應(yīng)是一個包含13個元素的向量a2=;a3=;a4=; num=0;while isempty(b) num=num+1; len=length(b); serial=fix(len*ran
25、d(1)+1; %產(chǎn)生一個1len的隨機(jī)數(shù) switch mod(num,4) case 1 a1=a1,b(serial); case 2 a2=a2,b(serial); case 3 a3=a3,b(serial); case 0 a4=a4,b(serial); end b(serial)=; enddisp(sort(a1);disp(sort(a2);disp(sort(a3);disp(sort(a4);試題15:一個正整數(shù)有可能可以被表示為n(n>=2)個連續(xù)正整數(shù)之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8
26、;請編寫程序,根據(jù)輸入的任何一個正整數(shù),找出符合這種要求的所有連續(xù)正整數(shù)序列。clear;clc;a=input('請輸入一個正整數(shù):');n=2; %n表示連續(xù)正整數(shù)的個數(shù)while 1 if sum(1:n)>a break; end if mod(a-sum(1:n),n)=0 %a能夠表示成n個連續(xù)正整數(shù)之和 b=(1:n)+(a-sum(1:n)/n; %b向量各元素為連續(xù)整數(shù)且和為a %顯示等式 str=num2str(a),'=',num2str(b(1); for i=2:length(b) str=str,'+',num2
27、str(b(i); end disp(str); end n=n+1;end 試題16:N個教徒和N個非教徒在深海上遇險,必須將一半的人投入海中,其余的人才能幸免于難,于是他們想了一個辦法:2N個人圍成一圈,從第一個人開始依次循環(huán)報(bào)數(shù),每數(shù)到第9個人就將他扔進(jìn)大海,如此循環(huán)直到只剩下N個人為止。問怎樣的站法,才能使得每次投入大海的都是非教徒。輸入:輸入文件由一行構(gòu)成,就是N的值輸出:輸出文件是一行字符串,字符串由N個''字符(代表教徒)和N個'+'字符(代表非教徒)排列組成。該排列使得按照提述方法每次投入大海的都是非教徒。如輸入樣本:15輸出樣本:+clear;clc;N=input('N=');ticn=2*N;f(1:n)='' i=0; %i為計(jì)數(shù)器,從0不斷變到9j=0; %j為f向量的下標(biāo),從1不斷變到2*N,循環(huán)不斷count=0; %找到非教徒位置的個數(shù),到N結(jié)束
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)生拒絕零食課件
- 教科版五年級科學(xué)上冊教案((全冊))
- 遼寧省建筑安全員知識題庫附答案
- 醫(yī)院財(cái)務(wù)分析指標(biāo)的選擇與實(shí)踐運(yùn)用
- 施工企業(yè)研發(fā)費(fèi)用加計(jì)扣除的稅務(wù)籌劃
- 全國版2024年中考數(shù)學(xué)復(fù)習(xí)第二單元方程組與不等式組課時訓(xùn)練05一次方程組及其應(yīng)用
- 陜西省安全員-C證考試(專職安全員)題庫及答案
- 神經(jīng)網(wǎng)絡(luò)的優(yōu)化學(xué)習(xí)
- 朗讀的技巧訓(xùn)練共34張
- 公知培訓(xùn)課件
- 股權(quán)架構(gòu)設(shè)計(jì)合同
- HJ1209-2021工業(yè)企業(yè)土壤和地下水自行監(jiān)測技術(shù)指南(試行)
- 《跨境電商英語》課程標(biāo)準(zhǔn)
- 2024年湖南電氣職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 幼兒園衛(wèi)生保健工作匯報(bào)
- 第一課 追求向上向善的道德(課時1)(課件)
- 流行音樂(中國)
- 合規(guī)管理體系實(shí)務(wù)培訓(xùn)測試題附有答案
- 《職場與求職渠道》課件
- 民主(組織)生活會批評和自我批評示例31個
- 課程思政融入專業(yè)課程的
評論
0/150
提交評論