


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、三級數(shù)據(jù)庫技術(shù)機(jī)試 -233( 總分: 100.00 ,做題時(shí)間: 90 分鐘 )、上機(jī)題( 總題數(shù): 5,分?jǐn)?shù): 100.00)1. 已知數(shù)據(jù)文件 in.dat 中存有 300 個(gè)四位數(shù),并已調(diào)用讀函數(shù) ReadDat() 把這些數(shù)存入數(shù)組 a 中。請編寫 函數(shù) jsValue() ,其功能是: 求出千位數(shù)上的數(shù)加百位數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)的個(gè)數(shù) cnt ,再 求出所有滿足此條件的四位數(shù)平均值 pjz1 ,以及不滿足此條件的四位數(shù)平均值 pjz2 ,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果輸出到 out.dat 文件中。例如: 7153, 7+1=5+3,則該數(shù)滿足條件計(jì)算平
2、均值pjz1 ,且個(gè)數(shù) cnt=cnt+1 。8129, 8+1 o 2+9,則該數(shù)不滿足條件計(jì)算平均值pjz2。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a300 ;已定義變量: cnt , pjz1 , pjz2 。請勿改動主函數(shù) main() 、讀函數(shù) ReadDat() 和寫函數(shù) writeDat() 的內(nèi)容。#include < stdio.h >int a300,cnt=0;double pjz1=0.0,pjz2=0.0;void jsValue() void ReadDat()FILE *fp;int i;fp=fopen("in.dat",
3、"r");for(i=0;i < 300;i+)fscanf(fp,"%d,",ai);fclose(fp);void writeDat()FILE *fp;fp=fopen("out.dat","w");fprintf(fp,"%d/n%7.2f/n%7.2f/n",cnt,pjz1,pjz2);fclose(fp);main()ReadDat();jsValue();writeDat();printf("cnt=%d/n 滿足條件的平均值 pzj1=%7.2f/n 不滿足條件
4、的平均值 pzj2=%7.2f/n",cnt,pjz1,pjz2);分?jǐn)?shù): 20.00 ) 正確答案: (void jsValue ()int i,thou,hun,ten,data,n=0;for(i=0;i v 300;i+)/*循環(huán)以遍歷數(shù)組 a中的所有300個(gè)四位數(shù)*/thou=ai/1000; /* 取當(dāng)前數(shù)的千位數(shù)字 */ hun=ai%1000/100; /* 取當(dāng)前數(shù)的百位數(shù)字 */ ten=ai%100/10; /* 取當(dāng)前數(shù)的十位數(shù)字 */ data=ai%10; / 術(shù)取當(dāng)前數(shù)的個(gè)位數(shù)字術(shù) /if(thou+hun=ten+data) /* 如果千位加百位等于十
5、位加個(gè)位的話 */cnt+; /* 讓計(jì)數(shù)值 cnt 增 1*/pjz1+=ai; /* 將此數(shù)累加到 pjz1 中*/else /* 否則的話 , 讓計(jì)數(shù)值 n 增 1, 將此數(shù)累加到 pjz2 中 */n+;pjz2+=ai;pjz1/=cnt; /* 計(jì)算滿足條件的數(shù)的平均值 */pjz2/=n; /* 計(jì)算不滿足條件的數(shù)的平均值 */)解析:2. 已知數(shù)據(jù)文件in.dat中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù) ReadDat()把這些數(shù)存入數(shù)組 a中。請編寫 函數(shù)jsValue(),其功能是:求出所有這些四位數(shù)是素?cái)?shù)的個(gè)數(shù)cnt,再求出所有滿足此條件的四位數(shù)平均值pjz1以及不滿足此條件
6、的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù) writeDat(),把結(jié)果cnt、pjz1、pjz2輸出到 out.dat 文件中。例如: 5591 是素?cái)?shù),則該數(shù)滿足條件計(jì)算平均值 pjz1 ,且個(gè)數(shù) cnt=cnt+1 。9812 是非素?cái)?shù),則該數(shù)不滿足條件計(jì)算平均值 pjz2 。 注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a300 ;已定義變量: cnt 、 pjz1 、 pjz2 。請勿改動主函數(shù) main() 、讀函數(shù) ReadDat() 和寫函數(shù) writeDat() 的內(nèi)容。#include v stdio.h >int a300,cnt=0;double pjz1=0.0,
7、pjz2=0.0;int isP(int m)int i;for(i=2;i v m;i+)if(m%i=0)return 0;return 1;void jsValue() void ReadDat()FILE *fp;int i;fp=fopen("in.dat","r");for(i=0;i v 300;i+)fscanf(fp,"%d,", & ai);fclose(fp);void writeDat()FILE *fp;fp=fopen("out.dat","w");fprin
8、tf(fp,"%d/n%7.2f/n%7.2f/n",cnt,pjz1,pjz2);fclose(fp);main()ReadDat();jsValue();writeDat();printf("cnt=%d/n滿足條件的平均值 pzj仁%7.2f/n 不滿足條件的平均值pzj2=%7.2f/n",cnt,pjz1,pjz2);(分?jǐn)?shù):20.00 ) 正確答案:(void jsValue ()int i;for(i=0;i(300;i+) /*循環(huán)以遍歷數(shù)組a中的所有300個(gè)數(shù)*/if(i sP(a【i) /*如果是素?cái)?shù),則將此數(shù)累加Npjz1中,并讓計(jì)
9、數(shù)值cnt增1*/pjz1+=ai;cnt+; elsepjz2+=ai; /*否則將其累加到pjz2中*/pjz1=pjz1/cnt; /*計(jì)算所有素?cái)?shù)的平均值*/pjz2=pjz2/(300-cnt); /*計(jì)算所有非素?cái)?shù)的平均值*/)解析:3. 函數(shù)ReadDat()實(shí)現(xiàn)從IN.DAT文件中讀取1000個(gè)十進(jìn)制整數(shù)到數(shù)組 xx中。請編寫函數(shù) Compute。分別 計(jì)算出xx中奇數(shù)的個(gè)數(shù)odd,奇數(shù)的平均值ave1,偶數(shù)的個(gè)數(shù)even,偶數(shù)的平均值 ave2以及所有奇數(shù)的 方差totfc的值,最后調(diào)用函數(shù) WriteDat(),把結(jié)果輸出到 OUT.DAT文件中。計(jì)算方差的公式如下:其中:
10、N為奇數(shù)的個(gè)數(shù),xxi為奇數(shù),ave1為奇數(shù)的平均值。原始數(shù)據(jù)文件存放的格式是:每行存放10個(gè)數(shù)(每個(gè)數(shù)均大于0且小于等于2000),并用逗號隔開注意:部分源程序已經(jīng)給岀。請勿改動主函數(shù) main()、讀函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù) WriteDat()的內(nèi)容。#include v string.h >int xxMAX,odd=0,even=0;double ave1=0.0,ave2=0.0,totfc=0.0;void WriteDat(void);int ReadDat(void)FILE *fp;int i,j;if(fp=fopen("IN.DAT"
11、;,"r")=NULL)return 1;for(i=0;iv 100; i+)for(j=0;jv 10;j+)fscanf(fp,"%d,", xxi*10+j);fscanf(fp,"/n");if(feof(fp)break;fclose(fp);return 0;void Compute(void)void main()int i;for(i=0;i v MAX;i+)xxi=0;if(ReadDat()printf(" 數(shù)據(jù)文件 IN.DAT 不能打開 !/007/n");return;Compute(
12、);printf("ODD=%d/nEVEN=%d/nAVE1=%f/nAVE2=%f/nTOTFC=%f/n",odd,even,avel,ave2,totfc); WriteDat();void WriteDat(void)FILE *fp;fp=fopen("OUT.DAT","w");fprintf(fp,"%d/n%d/n%f/n%f/n%f/n", odd, even, ave1, ave2,totfc);fclose(fp);(分?jǐn)?shù): 20.00 ) 正確答案: (void Compute(void)
13、int i,yyMAX;for(i=0;i v1000;i+) /* 循環(huán)以遍歷數(shù)組 xx 的所有 1000個(gè)數(shù)*/ if(xxi%2) /* 如果當(dāng)前數(shù)為奇數(shù) */odd+; /* 讓計(jì)數(shù)值 odd 增 1*/avel+=xxi; /* 將此數(shù)累加至 ave1 中 */yyodd-1=xxi;/* 將此數(shù)保存到數(shù)組 yy 中*/else /* 否則讓計(jì)數(shù)值 even 增 1 并將此數(shù)累加至 ave2 中 */even+;ave2+=xxi;ave1/=odd; /* 計(jì)算奇數(shù)的平均值 */ave2/=even; /* 計(jì)算歐數(shù)的平均值 */for(i=0;i < odd;i+)/*循環(huán)
14、以求所有奇數(shù)的方差*/totfc+=(yyi-avel)*(yyi-avel)/odd;)解析:4. 現(xiàn)有一個(gè)10個(gè)人100行的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是:每條記錄的長度均為10位,第一位表示第一個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,以此類推;內(nèi)容均為字符0和 1, 1 表示此人被選中, 0 表示此人未被選中,若一張選票人數(shù)大于 5 個(gè)人時(shí)被認(rèn)為無效的選票。給定函數(shù) ReadDat() 的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組 xx 中。請編寫函數(shù) CountRs() 來統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依 次存入yy0到y(tǒng)y9中。把結(jié)果yy輸出到OUT.DAT文件中。注意:部分
15、源程序已經(jīng)給出。請勿改動主函數(shù) main() 、讀數(shù)據(jù)函數(shù) ReadDat() 和輸出數(shù)據(jù)函數(shù) WriteDat() 的內(nèi)容。#include < stdio.h >char xx10011;int yy10;int ReadDat(void);void WriteDat(void);void CountRs(void)void main()int i;for(i=0;i <10;i+)yyi=0;if(ReadDat()printf(" 選票數(shù)據(jù)文件 IN.DAT 不能打開 !/n/007");return;CountRs();WriteDat();in
16、t ReadDat(void)FILE *fp;int i;if(fp=fopen("IN.DAT","r")=NULL)return 1;for(i=0;i < 100;i+) if(fgets(xxi,12,fp)=NULL)return 1;xxi10='/0'fclose(fp);return 0;void WriteDat(void)FILE *fp;int i;fp=fopen("OUT.DAT","w");for(i=0;i <10;i+)fprintf(fp,"
17、%d/n",yyi);printf(”第4 個(gè)人的選票數(shù)=%d/n",i+1,yyi);fclose(fp);分?jǐn)?shù): 20.00 ) 正確答案: (void CountRs(void)int i,count,j;char*pf;for(i=0;i <10;i+) /* 循環(huán)以遍歷數(shù)組 yy*/yyi=0; /* 清零 yy 中的元素 (10 人的得票數(shù) )*/for(i=0;i <100;i+) /* 循環(huán)以遍歷 100 行選票數(shù)據(jù) */pf=xxi; /* 用字符指針 pf 指向當(dāng)前選票行 */count=0; /* 清零計(jì)數(shù)值 count 用以統(tǒng)計(jì)當(dāng)前行選票
18、數(shù) */while(*pf) /* 以指針 pf 遍歷整個(gè)選票行 */if(*pf='1')count+; /* 若遍歷到字符 '1', 則讓計(jì)數(shù)值 count 增 1*/pf+; /* 繼續(xù)遍歷下一個(gè)字符 */if(count < =5)for(j=0;j <10;j+) /* 循環(huán)遍歷選票行 */yyj+=xxij-'0' /*將選票位換算成數(shù)值累加進(jìn)數(shù)組 yy*/)解析:5. 已知數(shù)據(jù)文件 IN.DAT 中存有 200 個(gè)四位數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請編寫 函數(shù) jsVal() ,其功能
19、是:把一個(gè)四位數(shù)的個(gè)位數(shù)字上的值減去千位數(shù)字上的值再減去百位數(shù)字上的值最 后減去十位數(shù)字上的值,如果得出的值大于等于零且原四位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt 并把這些四位數(shù)按從小到大的順序存入數(shù)組 b 中,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果 cnt 以及數(shù)組 b 中符 合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a200 ,b200 ,已定義變量: cnt 。的內(nèi)容。請勿改動數(shù)據(jù)文件 IN.DAT 中的任何數(shù)據(jù)、 主函數(shù) main() 、讀函數(shù) readDat() 和寫函數(shù) writeDat() #include < st
20、dio.h >#define MAX 200 int aMAX,bMAX,cnt=0; void jsVal() void readDat()int i;FILE *fp; fp=fopen("IN.DAT","r"); for(i=0;i < MAX;i+) fscanf(fp,"%d,",ai);fclose(fp);void writeDat()FILE *fp;int i;fp=fopen("OUT.DAT","w"); fprintf(fp,"%d/n",cnt);for(i=0; i < cnt;i+) fprintf(fp,"%d/n"
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)文化建設(shè)對法律風(fēng)險(xiǎn)預(yù)防的作用
- 2025年銀行業(yè)同業(yè)貸款協(xié)議規(guī)范文本
- 2025年雙方協(xié)商的離婚安置協(xié)議范本
- 企業(yè)跨境經(jīng)營中的責(zé)任問題與應(yīng)對
- 統(tǒng)籌推進(jìn)教師教育能力提升的面臨的問題、機(jī)遇與挑戰(zhàn)
- 構(gòu)建出版業(yè)融合發(fā)展風(fēng)險(xiǎn)管理評估
- 綠色能源與抽水蓄能的深度融合
- 智能農(nóng)業(yè)的新紀(jì)元
- 地理學(xué)全景解讀
- 構(gòu)筑智慧城市藍(lán)圖
- 新自編市政道路橋梁排水工程實(shí)測實(shí)量評分表
- 萬里國際南寧汽配城物業(yè)管理方案
- 國家開放大學(xué)本科《機(jī)器人技術(shù)及應(yīng)用》形考期末考試題及答案匯總
- PHC管樁有效預(yù)應(yīng)力
- 出院證(標(biāo)準(zhǔn)模板)
- 深圳市視頻門禁報(bào)警系統(tǒng)聯(lián)網(wǎng)數(shù)據(jù)規(guī)范
- 急性上消化道出血課件
- 不飽和聚酯樹脂化學(xué)品安全技術(shù)說明書MSDS
- 氣田磨溪區(qū)塊外圍地區(qū)龍王廟組儲層特征描述
- 學(xué)生請假安全承諾書
- (最新整理)模板-消防安全評估質(zhì)量過程控制體系(山東)
評論
0/150
提交評論