版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、三級(jí)數(shù)據(jù)庫(kù)技術(shù)機(jī)試 -232( 總分: 100.00 ,做題時(shí)間: 90 分鐘 )一、上機(jī)題( 總題數(shù): 5,分?jǐn)?shù): 100.00)1. 已知數(shù)據(jù)文件 IN.DAT 中存有 200 個(gè)四位數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請(qǐng)編寫 函數(shù) jsVal() ,其功能是: 把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù) ab( 新十位數(shù)的十位數(shù)字是原四 位數(shù)的千位數(shù)字, 新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字 ) ,以及把個(gè)位數(shù)字和百位數(shù)字組成另一個(gè)新 的十位數(shù) cd( 新十位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的百位數(shù)字 ) , 如果ab>
2、cd , ab必須是偶數(shù)且能被5整除,cd必須是奇數(shù),同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為零,則將滿 足此條件的四位數(shù)按從大到小的順序存入數(shù)組 b 中,并計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù) cnt 。最后 main() 函數(shù)調(diào)用寫函數(shù) writeDat(),把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a200 , b200 ;已定義變量: cnt。請(qǐng)勿改動(dòng)數(shù)據(jù)文件 IN.DAT 中的任何數(shù)據(jù)及主函數(shù) main() 、讀函數(shù) readDat() 和寫函數(shù) writeDat() 的內(nèi)容。 #include < stdio.h >
3、#define MAX 200int 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(
4、i=0;i < cnt;i+)fprintf(fp,"%d/n",bi);fclose(fp);void main()int i;readDat(); jsVal();printf(:滿足條件的數(shù) =%d/n",cnt);for(i=0; i < cnt;i+)printf("%d",bi);printf("/n"); writeDat();分?jǐn)?shù): 20.00 ) 正確答案: (void jsVal()int i,thou,hun,ten,data,j;int ab.cd;for(i=0;i < 200;i
5、+) /*循環(huán)以遍歷數(shù)組 a中的所有200個(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; /* 取當(dāng)前數(shù)的個(gè)位數(shù)字 */if(thou=0|data=0)/* 若干位或個(gè)位為 0*/continue; /* 則組成的新數(shù)至少有一個(gè)十位為 0, 不符合題意繼續(xù)循環(huán) */ ab=10*thou+ten; /* 把千位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù)*/cd=10*data+hun; /* 把個(gè)位數(shù)字和百位數(shù)字重新組成一個(gè)新
6、的十位數(shù)*/if(ab >cd && ab%2=0& & ab%5=Qk & cd%2!=0) /*若新組成的兩個(gè)數(shù) ab> cd且ab為偶數(shù)并能被5整除并且cd是奇數(shù)的話*/bcnt=ai; /* 將此數(shù)存入數(shù)組 b*/cnt+; /* 讓計(jì)數(shù)值 cnt 增 1*/* 對(duì)數(shù)組 b 的前 cnt 個(gè)數(shù)進(jìn)行選擇排序 */for(i=0;i < cnt-1;i+)for(j=i+1;j < cnt;j+)if(bi < bj) /* 前面的數(shù)小于后面的數(shù)則交換 ,即降序排列 */data=bi;bi=bj;bj=data;)解析
7、:2. 已知數(shù)據(jù)文件in.dat中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù) readDat()把這些數(shù)存入數(shù)組 a中。請(qǐng)編寫 函數(shù)jsValue(),其功能是:求出干位數(shù)上的數(shù)加個(gè)位數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個(gè)數(shù)cnt ,再求出所有滿足此條件的四位數(shù)平均值 pjz1 ,以及不滿足此條件的四位數(shù)平均值 pjz2 ,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果輸出到 out.dat 文件中。例如: 6712, 6+2=7+1,則該數(shù)滿足條件計(jì)算平均值 pjz1 ,且個(gè)數(shù) cnt=cnt+1 。8129, 8+9<> 1+2,則該數(shù)不滿足條件計(jì)算平均值pjz2 。注意:部分源程序已經(jīng)
8、給出。程序中已定義數(shù)組: a300 ;已定義變量: cnt 、pjz1 、pjz2 。請(qǐng)勿改動(dòng)主函數(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","r");for(i=0;i v 300;i+)fscanf(fp,"%d,",ai);fclos
9、e(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 不滿足條件的平均值 pzj2=%7.2f/n",cnt,pjz1,pjz2);分?jǐn)?shù): 20.00 ) 正確答案: (void jsVahe (
10、)int i,n=0,thou,hun,ten,data;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; /* 取當(dāng)前數(shù)的個(gè)位數(shù)字 */if(thou+data=hun+ten) /* 如果千位加個(gè)位等于百位加十位的話 */ cnt+; /* 讓計(jì)數(shù)值 cnt 增 1*/ pjz1+=ai; /* 將此數(shù)累加到 pjz1 中*/ else /* 否
11、則讓計(jì)數(shù)值 n 增 1, 將此數(shù)累加 Npjz2 中 */n+;pjz2+=ai;pjz1/=cnt; /* 計(jì)算符合條件的數(shù)的平均值 */pjz2/=n; /* 計(jì)算不符合條件的數(shù)的平均值 */)解析:3. 函數(shù)ReadDat()實(shí)現(xiàn)從IN.DAT文件中讀取一篇英文文章并存入字符串?dāng)?shù)組xx中。請(qǐng)編寫函數(shù)SortCharA() ,其功能是: 以行為單位對(duì)字符按從小到大的順序進(jìn)行排序, 排序后的結(jié)果仍按行重新存入字 符串?dāng)?shù)組xx中,最后調(diào)用函數(shù) WriteDat(),把結(jié)果xx輸出到OUT.DAT文件中。例如,原文: dAe, BfCCCbbAA結(jié)果: ,.ABCdefAACCbb原始數(shù)據(jù)文件存
12、放的格式是:每行的寬度均小于 80 個(gè)字符 ( 含標(biāo)點(diǎn)符號(hào)和空格 )。 注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 、讀數(shù)據(jù)函數(shù) ReadDat() 和輸出數(shù)據(jù)函數(shù) WriteDat() 的內(nèi)容。#include < stdio.h #include < string.h#include < conio.h文章的總行數(shù) */char xx5080; int maxline=0; /* int ReadDat(void); void WriteDat(void); void SortCharA(void) void main()if(ReadDat()printf(
13、" 數(shù)據(jù)文件 IN.DAT 不能打開(kāi) !/n/007");return;SortCharA();WriteDat();int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen("IN.DAT","r")=NULL)return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,'/n');if(p)*p=0;i+;maxline=i;fclose(fp);return 0;void WriteDat(void)FILE *fp;in
14、t i;fp=fopen("OUT.DAT","w");for(i=0;i < maxline; i+)printf("%s/n",xxi);fprintf(fp,"%s/n",xxi);fclose(fp);分?jǐn)?shù): 20.00 ) 正確答案: (void SortCharA(void)int i,j,k,Strl;char eh;/* 循環(huán)以遍歷英文文章的每一行 */for(i=0;i < maxline;i+)strl=strlen(xxi);/* 用選擇排序法對(duì)當(dāng)前行進(jìn)行排序 */for(j=0;
15、j < strl-1;j+)for(k=j+1;k< strl;k+)if(xxij> xx【i【k) /* 前面的字符大于后面的字符則交換兩者 , 所以此排序是升序排序 */ch=xxij;xxij=xxik;xxik=ch;)解析:4. 已知數(shù)據(jù)文件 IN.DAT 中存有 200 個(gè)四位數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請(qǐng)編寫 函數(shù) jsVal() ,其功能是:把一個(gè)四位數(shù)的千位數(shù)字上的值加上個(gè)位數(shù)字上的值恰好等于百位數(shù)字上的值 加上十位數(shù)字上的值,并且原四位數(shù)是奇數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)cnt 并把這些四位數(shù)按從小到大的順序存入數(shù)組
16、b 中,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果 cnt 以及數(shù)組 b 中符合條件的四位數(shù)輸出到 OUT.DAT文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a200 ,b200 ;已定義變量: cnt 。請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN . DAT中的任何數(shù)據(jù)及主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include < stdio.h >#define MAX 200int aMAX,bMAX,cnt=0;void jsVal()void readDat()int i;FILE *fp; fp=fopen("IN.DAT&qu
17、ot;,"r");for(i=0;i v 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 v cnt; i+)fprintf(fp,"%d/n",bi);fclose(fp);void main()int i;readDat();jsVal();printf("
18、滿足條件的數(shù) =%d/n",cnt);for(i=0;i v cnt;i+)printf("%d",bi); printf("/n"); writeDat();分?jǐn)?shù): 20.00 ) 正確答案: (void jsVal ()int i,thou,hun,ten,data,j;for(i=0;i v MAX;i+) /*循環(huán)以遍歷數(shù)組 a中的所有四位數(shù)*/thou=ai/1000; /* 取當(dāng)前數(shù)的千位數(shù)字 */ hun=ai%1000/100; /* 取當(dāng)前數(shù)的百位數(shù)字 */ ten=ai%100/10; /* 取當(dāng)前數(shù)的卜位數(shù)字 */ dat
19、a=ai%10; /* 取當(dāng)前數(shù)的個(gè)位數(shù)字 */ if(thou+data=hun+ten) ai%2=1) /* 若干位加個(gè)位等于百位加十位且原數(shù)為奇數(shù)的話 */ bcnt=ai; /* 將此數(shù)存入數(shù)組 b*/Grit+; /* 讓計(jì)數(shù)值 ent 增 1*/* 對(duì)數(shù)組 b 的前 cnt 個(gè)數(shù)進(jìn)行選擇排序 */for(i=0;i(cnt-1;i+)for(j=i+1;j(cnt;j+)if(bi > bj) /* 前面的數(shù)大于后面的數(shù)則交換 , 即升序排列 */data=bi;bi=bj;bj=data;)解析:5. 下列程序的功能是:將一正整數(shù)序列K1, K2,,K9重新排列成一個(gè)新的
20、序列。新序列中,比K1小的數(shù)都在K1的前面(左邊),比K1大的數(shù)都在K1的后面(右邊)。要求編寫函數(shù)jsValue()實(shí)現(xiàn)此功能,最后 調(diào)用 writeDat() 函數(shù)將新序列輸出到 out.dat 文件中。說(shuō)明:在程序中已給出了 10 個(gè)序列,每個(gè)序列有 9個(gè)正整數(shù),并存入數(shù)組 a109 中,分別求出這 10 個(gè) 新序列。例如:序列 6, 8, 9, 1, 2, 5, 4, 7, 3經(jīng)重排后成為 3, 4, 5, 2, 1 , 6, 8, 9, 7注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 和寫函數(shù) writeDat() 的內(nèi)容。#include < stdio.h >jsValue(int a109)void writeDat(int a109)FILE *fp;int i,j;fp=fopen("out.dat","w");for(i=0; i < 10; i+)for(j=0;j < 9;j+)fprintf(fp,"%d",aij);if(j < =7)fprintf(fp,",&qu
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于2025年度區(qū)塊鏈技術(shù)應(yīng)用合作協(xié)議3篇
- 2025年度汽車租賃市場(chǎng)拓展合作協(xié)議合同4篇
- 2025年度二零二五年度獼猴桃包裝設(shè)計(jì)及品牌推廣合同4篇
- 二零二五版建筑工程安全施工許可證申請(qǐng)合同3篇
- 2025版信托資金借貸合同爭(zhēng)議解決爭(zhēng)議管轄條款3篇
- 2025年度健康管理機(jī)構(gòu)臨時(shí)健康管理師勞動(dòng)合同4篇
- 二零二五年度海上旅游船租賃服務(wù)合同范本3篇
- 個(gè)人住宅買賣法律合同(2024年修訂)版B版
- 2025年度戶外運(yùn)動(dòng)用品門店承包管理服務(wù)協(xié)議4篇
- 二零二五年柑桔加工副產(chǎn)品回收利用合同2篇
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場(chǎng)營(yíng)銷策略考核試卷
- 票據(jù)業(yè)務(wù)居間合同模板
- 承包鋼板水泥庫(kù)合同范本(2篇)
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 公司沒(méi)繳社保勞動(dòng)仲裁申請(qǐng)書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫(kù)及完整答案(考點(diǎn)梳理)
- 車借給別人免責(zé)協(xié)議書
- 應(yīng)急預(yù)案評(píng)分標(biāo)準(zhǔn)表
評(píng)論
0/150
提交評(píng)論