三峽學(xué)院機(jī)械工程專業(yè)大二的基礎(chǔ)考試及專業(yè)考試-全國計(jì)算機(jī)等級考試四級上機(jī)試題21_第1頁
三峽學(xué)院機(jī)械工程專業(yè)大二的基礎(chǔ)考試及專業(yè)考試-全國計(jì)算機(jī)等級考試四級上機(jī)試題21_第2頁
三峽學(xué)院機(jī)械工程專業(yè)大二的基礎(chǔ)考試及專業(yè)考試-全國計(jì)算機(jī)等級考試四級上機(jī)試題21_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、已知在文件 in.dat 中存有若干個(個數(shù)200)四位數(shù)字的正整數(shù),函數(shù) readdat()讀取這若干個正整數(shù)并存入數(shù)組xx 中。請編制函數(shù)calvalue(),其功能要求:1、求出這文件中共有多少個正整數(shù) totnum;2、求這些數(shù)右移1 位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個數(shù)totcnt,以及滿足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totpjz,最后調(diào)用函數(shù) writedat()把所求的結(jié)果輸出到文件 out.dat 中。部分源程序已給出。請勿改動主函數(shù) main()、讀數(shù)據(jù)函數(shù) readdat()和輸出數(shù)據(jù)函數(shù)writedat()的內(nèi)容。#include#include#define m

2、axnum 200int xxmaxnum;int totnum=0;int totcnt=0;double totpjz=0.0;int readdat(void);void writedat(void);void calvalue(void)void main()int i;clrscr();for(i=0;imaxnum;i+) xxi=0;if(readdat()printf(cant open the data file in.dat!007n);return;calvalue();printf(totnum=%dn,totnum);printf(totcnt=%dn,totcnt)

3、;printf(totpjz=%.2lfn,totpjz);writedat();int readdat(void)file *fp;int i=0;if(fp=fopen(in.dat,r)=null) return 1;while(!feof(fp)fscanf(fp,%d,&xxi+);fclose(fp);return 0;void writedat(void)file *fp;fp=fopen(out.dat,w);fprintf(fp,%dn%dn%.2lfn,totnum,totcnt,totpjz);fclose(fp);void calvalue(void)int i

4、,data;for(i=0;i0) totnum+;data=xxi1;if(data%2=0)totcnt+;totpjz+=xxi;totpjz/=totcnt;請編制程序,從文件 in.dat 中讀取 200 個整數(shù)至數(shù)組 xx 中,不計(jì)數(shù)組 xx 中值最大和最小的數(shù)(若有重復(fù)值,則都不計(jì)) ,再求出最大數(shù)max 及最大數(shù)的個數(shù) cnt1、最小數(shù) min 及最小數(shù)的個數(shù) cnt2 和所剩下 200-cnt1-cnt2 個數(shù)的算求平均值pj (保留 2 位小數(shù))。結(jié)果max,cnt1,min,cnt2,pj 輸出到out.dat 中。部分程序、讀數(shù)據(jù)函數(shù)read_dat(int xx200

5、)及輸出格式已給出。#include#include#define n 200void read_dat(int xxn)int i,j;file *fp;fp=fopen(in.dat,r);for(i=0;i20;i+)for(j=0;j10;j+)fscanf(fp,%d,&xxi*10+j);printf(%d ,xxi*10+j);printf(n);fclose(fp);void main()int cnt1,cnt2,xxn,max,min;float pj;file *fw;clrscr();fw=fopen(out.dat,w);read_dat(xx);printf

6、(nnmax=%d,cnt1=%d,min=%d,cnt2=%d,pj=%6.2fn,max,cnt1,min,cnt2,pj);fprintf(fw,%dn%dn%dn%dn%6.2fn,max,cnt1,min,cnt2,pj);fclose(fw);/* 注:該題是要在主函數(shù)中加程序行,注意本題要求去除最大和最小數(shù)后再求出去掉后的最大數(shù) max 和最小數(shù) min 及相應(yīng)的個數(shù)。因此程序中出現(xiàn)的max0和min0, 用來標(biāo)識所有數(shù)中的最大數(shù)和最小數(shù),后而求出次大數(shù)和次小數(shù)。 在求 max0 和 min0 時一定要給 max 和 min賦一個與 max0 和 min0 不同的數(shù)(該題用 es

7、le max=min=xxi),否則會出錯。對于一個浮點(diǎn)數(shù)要對其保留 2 位小數(shù)時,要將其乘 100 后轉(zhuǎn)換成整數(shù),最后再將其轉(zhuǎn)換成浮點(diǎn)數(shù)然后除100 即可。*/void main()int cnt1,cnt2,xxn,max,min;float pj;file *fw;int i,max0,min0;clrscr();fw=fopen(out.dat,w);read_dat(xx);max0=min0=xx0;pj=0;cnt1=cnt2=0;for(i=1;in;i+)if(max0 xxi) min0=xxi;else max=min=xxi;for(i=0;in;i+)if(maxxxi&xxixxi&xximin0) min=xxi;for(i=0;in;i+)if(xxi=max) cnt1+;else if(xxi=min) cnt2+;else pj+=xxi;pj=(float)(int)pj*100/(200-cnt1-cnt2)/100;printf(nnmax=%d,

溫馨提示

  • 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

提交評論