上海大學(xué)機(jī)卷B試題和答案_第1頁
上海大學(xué)機(jī)卷B試題和答案_第2頁
上海大學(xué)機(jī)卷B試題和答案_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、(092)上海大學(xué)2009-2010年冬季學(xué)期上機(jī)卷(B)2010.3課程名:程序設(shè)計基礎(chǔ)(C語言)課程,:00863006學(xué)分:5上機(jī)操作題,3題,共30分第1題(10分,源程序文件E:answer1-B-1.C)上機(jī)要求:下列程序包含3個錯誤(分布在不同的3行上),請輸入該程序的代碼,找出并更正程序錯誤,在修改行代碼后增加“/*/”注釋,將修改后的源程序保存到E:answer1-B-1.C中。程序功能:從鍵盤上輸入n(設(shè)0<n<20)和n個整數(shù),按每行3個數(shù)的格式輸出n個整數(shù)中小丁60的整數(shù)。如輸入:1150607090409955956959100則輸出:50405559示例

2、說明:輸入行中的第一個11對應(yīng)n,表示緊接著應(yīng)輸入11個整數(shù),而后11個整數(shù)中有4個小丁60的數(shù),按第一行3個,第二行1個的方式輸出。再如輸入:4-11060160100則輸出:-110示例說明:輸入數(shù)據(jù)可分多行,可為負(fù)數(shù),正數(shù)可超過100。帶錯誤原程序:修改后程序:#include<stdio.h>#include<stdio.h>intsca_n(inta)intsca_n(inta)intn,i;intn,i;scanf("%d”,&n);scanf("%d",&n);for(i=0;i<n;i+)for(i=0

3、;i<n;i+)scanf("%d”,&ai)scanf("%d",&ai);/*/returnn;returnn;intselect_b(intb,inta,intn,intx)intselect_b(intb,inta,intn,intx)intk=0;inti,k=0;/*/for(i=0;i<n;i+)for(i=0;i<n;i+)if(ai<x)if(ai<x)bk+=ai;bk+=ai;returnk;returnk;voidprt_m(inta,intn,intm)voidprt_m(inta,intn,

4、intm)inti;inti;for(i=0;i<n;i+)for(i=0;i<n;i+)if(i%m=m-1|i=n-1)printf("%dn”,ai);elseprintf("%dt”,ai);main()inta100,b100,n,k;n=sca_n(a);k=select_b(b,a,n,60);prt_m(b,k,3);if(i%m=m-1|i=n-1)/*/printf("%dn",ai);elseprintf("%dt",ai);main()inta100,b100,n,k;n=sca_n(a);k=se

5、lect_b(b,a,n,60);prt_m(b,k,3);錯誤點原代碼修改后代碼修改說明1scanf("%d",an)scanf("%d”,&an);語句缺少“;”2intk=0;inti,k=0;變量i未定義3if(i%m=m-1|i=n-1)if(i%m=m-1|i=n-1)判斷相等應(yīng)使用雙等號第2題(10分,源程序文件E:answer1-B-2.C)上機(jī)要求:按程序功能要求編寫程序,并將程序代碼保存到E:answer1-B-2.C中。程序功能:從鍵盤上輸入5個整數(shù)(設(shè)每個整數(shù)取值1至5),按示例格式輸出5行數(shù)字圖形,每行的數(shù)字及數(shù)字個數(shù)與輸入數(shù)相對

6、應(yīng)。如輸入:54321則輸出(口表示空格,/表示回車):55555/ 4D4D4D4/ 333/202/ 1/示例說明:輸出共5行,右對齊形狀。輸入的第1個數(shù)為5,則輸出的第1行有5個5,數(shù)字之間含有1個空格,第1個5之前有2*(5-5)=0個空格;輸入的第2個數(shù)為4,則輸出的第2行有4個4,數(shù)字之間含有1個空格,第1個4之前有2*(5-4)=2個空格;以此類推。再如輸入:23432則輸出(口表示空格,/表示回車):2:1233:13444:3433:132:12示例說明:輸出共5行,右對齊形狀。輸入的第1個數(shù)為2,則輸出的第1行有2個2,數(shù)字之間含有1個空格,第1個2之前有2*(5-2)=6

7、個空格;以此類推。參考程序1,非數(shù)組、嚴(yán)格樣式法說明參考程序2,非數(shù)組、函數(shù)法說明#include<stdio.h>voidprtline(intm)(inti;for(i=1;i<=2*(5-m);i+)printf("");for(i=1;i<=m;i+)(printf("%d",m);if(i<m)printf("");printf("n");main()(intm,i;for(i=1;i<=5;i+)(scanf("%d",&m);prtlin

8、e(m);設(shè)計函數(shù)prtline,輸出某一行參數(shù):數(shù)值m 循環(huán)2*(5-m)次,對應(yīng)前導(dǎo)空格輸出一個空格 循環(huán)m次,對應(yīng)m個整數(shù)先輸出整數(shù),m再輸出中間空格 輸出換行 循環(huán)5次,對應(yīng)5行 輸入整數(shù)tm 輸出m對應(yīng)的行#include<stdio.h>main()(intm,i,j;for(i=1;i<=5;i+)(scanf("%d",&m);for(j=1;j<=2*(5-m);j+)printf("");for(j=1;j<=m;j+)(printf("%d",m);if(j<m)pri

9、ntf("");printf("n"); 循環(huán)5次,對應(yīng)5行輸入整數(shù)tm循環(huán)2*(5-m)次,對應(yīng)前導(dǎo)空格輸出一個空格循環(huán)m次,對應(yīng)m個整數(shù)先輸出整數(shù),m再輸出中間空格輸出換行參考程序3,數(shù)組、保持樣式法說明參考程序4,switch語句、直接法說明#include<stdio.h>main()(intm,i;for(i=1;i<=5;i+)(scanf("%d",&m);switch(m)(case1:printf("1n");break;case2:printf("22n&qu

10、ot;);break;case3:printf("333n");break;case4:printf("4444n");break;case5:printf("55555n");break; 循環(huán)5次,對應(yīng)5行 輸入整數(shù)tm 根據(jù)m分支為1時顯示內(nèi)容為2時顯示內(nèi)容為3時顯示內(nèi)容為4時顯示內(nèi)容為5時顯示內(nèi)容第3題(10分,源程序文件E:answer1-B-3.C)上機(jī)要求:按程序功能要求編寫程序,并將程序代碼保存到E:answer1-B-3.C中。程序功能:輸入10個整數(shù)(存貯在一維數(shù)組a中),按示例格式計算并輸出以下結(jié)果。(1) 輸出

11、最小值及其出現(xiàn)次數(shù);輸出出現(xiàn)次數(shù)最少的整數(shù)及其出現(xiàn)次數(shù)(如果有不同2數(shù)而出現(xiàn)次數(shù)同樣最少,則輸出其中最早出現(xiàn)的數(shù))。如輸入:#include<stdio.h>main()(inta5,i,j;for(i=0;i<5;i+)scanf("%d”,&ai);for(i=0;i<5;i+)(for(j=1;j<=2*(5-ai);j+)printf("");for(j=0;j<ai;j+)printf("%d",ai);printf("n");定義數(shù)組,a5輸入至數(shù)組,for+scanf

12、循環(huán)5次,對應(yīng)5行 循環(huán)2*(5-ai)次,對應(yīng)前導(dǎo)空格 循環(huán)ai次,對應(yīng)該行整數(shù)整數(shù)后跟一個空格 輸出換行78906095786078957860則輸出:Min:60(3)90(1)示例說明:輸入10個整數(shù),95出現(xiàn)2次,90出現(xiàn)1次,78出現(xiàn)4次,60出現(xiàn)3次。其中最小值為60,出現(xiàn)3次,而出現(xiàn)次數(shù)最少的數(shù)為90,僅出現(xiàn)了1次。如輸入:95789058785890957895則輸出:Min:58(2)90(2)示例說明:輸入10個整數(shù),58與90各出現(xiàn)2次,78與95各出現(xiàn)3次。其中最小值為58,出現(xiàn)2次,出現(xiàn)次數(shù)最少的2個數(shù)中90最早出現(xiàn)。參考程序1,非函數(shù)、單數(shù)組法說明#include

13、<stdio.h>main()inta10,x,k,i,j,ct,ctx,dtx;for(i=0;i<10;i+)scanf("%d”,&ai);x=a0;for(i=1;i<10;i+)if(x>ai)x=ai;主函數(shù),main定義變量 輸入數(shù)組,tafor循環(huán)+scanf輸入 求數(shù)組最小值,Tx初始+for循環(huán)+if條件+賦值k=0;for(i=0;i<10;i+)if(ai=x)k+;求最小值的出現(xiàn)次數(shù),tk初始+for循環(huán)+if條件+遞增printf("Min:%d(%d)",x,k);ctx=10;輸出第一階段

14、結(jié)果for(i=0;i<10;i+)ct=0;for(j=0;j<10;j+)if(ai=aj)ct+; 求出現(xiàn)次數(shù)最少,tctx/dtx初始+for循環(huán)+計算+if條件+賦值 求亡出現(xiàn)次數(shù),tct初始+for循環(huán)+if條件+遞增if(ctx>ct)ctx=ct;dtx=ai;printf("%d(%d)n",dtx,ctx); 求最少出現(xiàn)次數(shù)if條件+賦值 輸出第二階段結(jié)果參考程序2,函數(shù)、雙數(shù)組法說明#include<stdio.h>voidsca(inta,intn)輸入數(shù)組函數(shù),sca(inti;for(i=0;i<n;i+)sc

15、anf("%d",&ai);intmin(inta,intn)(intx,i;x=a0;for(i=0;i<n;i+)if(x>ai)x=ai;returnx;intcount(inta,intn,intx)(intct=0,i;for(i=0;i<n;i+)if(ai=x)ct+;returnct;intfind(inta,intn,intx)(inti;for(i=0;i<n;i+)if(ai=x)returni;return-1;main()(inta10,b10,x,k,i,ctx;sca(a,10);x=min(a,10);k=count(a,10,x);printf("Min:%d(%d)",x

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論