版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、三級數(shù)據(jù)庫技術(shù)機(jī)試 -232( 總分: 100.00 ,做題時間: 90 分鐘 )一、上機(jī)題( 總題數(shù): 5,分?jǐn)?shù): 100.00)1. 已知數(shù)據(jù)文件 IN.DAT 中存有 200 個四位數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請編寫 函數(shù) jsVal() ,其功能是: 把千位數(shù)字和十位數(shù)字重新組成一個新的十位數(shù) ab( 新十位數(shù)的十位數(shù)字是原四 位數(shù)的千位數(shù)字, 新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字 ) ,以及把個位數(shù)字和百位數(shù)字組成另一個新 的十位數(shù) cd( 新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字 ) , 如果ab>
2、cd , ab必須是偶數(shù)且能被5整除,cd必須是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿 足此條件的四位數(shù)按從大到小的順序存入數(shù)組 b 中,并計算滿足上述條件的四位數(shù)的個數(shù) cnt 。最后 main() 函數(shù)調(diào)用寫函數(shù) writeDat(),把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a200 , b200 ;已定義變量: cnt。請勿改動數(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個四位數(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ù)的個位數(shù)字 */if(thou=0|data=0)/* 若干位或個位為 0*/continue; /* 則組成的新數(shù)至少有一個十位為 0, 不符合題意繼續(xù)循環(huán) */ ab=10*thou+ten; /* 把千位數(shù)字和十位數(shù)字重新組成一個新的十位數(shù)*/cd=10*data+hun; /* 把個位數(shù)字和百位數(shù)字重新組成一個新
6、的十位數(shù)*/if(ab >cd && ab%2=0& & ab%5=Qk & cd%2!=0) /*若新組成的兩個數(shù) ab> cd且ab為偶數(shù)并能被5整除并且cd是奇數(shù)的話*/bcnt=ai; /* 將此數(shù)存入數(shù)組 b*/cnt+; /* 讓計數(shù)值 cnt 增 1*/* 對數(shù)組 b 的前 cnt 個數(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個四位數(shù),并已調(diào)用讀函數(shù) readDat()把這些數(shù)存入數(shù)組 a中。請編寫 函數(shù)jsValue(),其功能是:求出干位數(shù)上的數(shù)加個位數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個數(shù)cnt ,再求出所有滿足此條件的四位數(shù)平均值 pjz1 ,以及不滿足此條件的四位數(shù)平均值 pjz2 ,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果輸出到 out.dat 文件中。例如: 6712, 6+2=7+1,則該數(shù)滿足條件計算平均值 pjz1 ,且個數(shù) cnt=cnt+1 。8129, 8+9<> 1+2,則該數(shù)不滿足條件計算平均值pjz2 。注意:部分源程序已經(jīng)
8、給出。程序中已定義數(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","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個四位數(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ù)的個位數(shù)字 */if(thou+data=hun+ten) /* 如果千位加個位等于百位加十位的話 */ cnt+; /* 讓計數(shù)值 cnt 增 1*/ pjz1+=ai; /* 將此數(shù)累加到 pjz1 中*/ else /* 否
11、則讓計數(shù)值 n 增 1, 將此數(shù)累加 Npjz2 中 */n+;pjz2+=ai;pjz1/=cnt; /* 計算符合條件的數(shù)的平均值 */pjz2/=n; /* 計算不符合條件的數(shù)的平均值 */)解析:3. 函數(shù)ReadDat()實現(xiàn)從IN.DAT文件中讀取一篇英文文章并存入字符串?dāng)?shù)組xx中。請編寫函數(shù)SortCharA() ,其功能是: 以行為單位對字符按從小到大的順序進(jìn)行排序, 排序后的結(jié)果仍按行重新存入字 符串?dāng)?shù)組xx中,最后調(diào)用函數(shù) WriteDat(),把結(jié)果xx輸出到OUT.DAT文件中。例如,原文: dAe, BfCCCbbAA結(jié)果: ,.ABCdefAACCbb原始數(shù)據(jù)文件存
12、放的格式是:每行的寬度均小于 80 個字符 ( 含標(biāo)點符號和空格 )。 注意:部分源程序已經(jī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 不能打開 !/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);/* 用選擇排序法對當(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 個四位數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請編寫 函數(shù) jsVal() ,其功能是:把一個四位數(shù)的千位數(shù)字上的值加上個位數(shù)字上的值恰好等于百位數(shù)字上的值 加上十位數(shù)字上的值,并且原四位數(shù)是奇數(shù),則統(tǒng)計出滿足此條件的個數(shù)cnt 并把這些四位數(shù)按從小到大的順序存入數(shù)組
16、b 中,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果 cnt 以及數(shù)組 b 中符合條件的四位數(shù)輸出到 OUT.DAT文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a200 ,b200 ;已定義變量: cnt 。請勿改動數(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ù)的個位數(shù)字 */ if(thou+data=hun+ten) ai%2=1) /* 若干位加個位等于百位加十位且原數(shù)為奇數(shù)的話 */ bcnt=ai; /* 將此數(shù)存入數(shù)組 b*/Grit+; /* 讓計數(shù)值 ent 增 1*/* 對數(shù)組 b 的前 cnt 個數(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重新排列成一個新的
20、序列。新序列中,比K1小的數(shù)都在K1的前面(左邊),比K1大的數(shù)都在K1的后面(右邊)。要求編寫函數(shù)jsValue()實現(xiàn)此功能,最后 調(diào)用 writeDat() 函數(shù)將新序列輸出到 out.dat 文件中。說明:在程序中已給出了 10 個序列,每個序列有 9個正整數(shù),并存入數(shù)組 a109 中,分別求出這 10 個 新序列。例如:序列 6, 8, 9, 1, 2, 5, 4, 7, 3經(jīng)重排后成為 3, 4, 5, 2, 1 , 6, 8, 9, 7注意:部分源程序已經(jī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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電梯課程設(shè)計范文
- 舞蹈機(jī)構(gòu)結(jié)業(yè)課程設(shè)計
- 游戲行業(yè)銷售人員工作總結(jié)
- 自閉癥科護(hù)士工作總結(jié)
- 2024年研學(xué)旅行指導(dǎo)師考試題庫(含答案)
- 2023-2024學(xué)年遼寧省大連二十四中高一(下)期中語文試卷
- 美發(fā)沙龍營業(yè)員技巧總結(jié)
- 2024年認(rèn)識星期教案
- 農(nóng)村安裝雨棚材料合同(2篇)
- 出版物銷售傭金合同(2篇)
- DLT 572-2021 電力變壓器運(yùn)行規(guī)程
- 教育部校企合作辦法
- “技能興威”第一屆威海市職業(yè)技能大賽農(nóng)產(chǎn)品食品檢驗員(海洋食品產(chǎn)業(yè)鏈)賽項規(guī)程
- 幼兒園故事繪本《賣火柴的小女孩兒》課件
- 中央2024年國家藥品監(jiān)督管理局中國食品藥品檢定研究院招聘筆試歷年典型考題及考點附答案解析
- 小學(xué)語文四年級上冊單元作業(yè)整體設(shè)計案例
- DB32-T 4752-2024 一體化污水處理設(shè)備通.用技術(shù)要求
- 2024年新高考Ⅰ卷作文審題立意及寫作指導(dǎo)+課件
- 2024年山東臨沂市恒源熱力集團(tuán)限公司高校畢業(yè)生招聘9人重點基礎(chǔ)提升難、易點模擬試題(共500題)附帶答案詳解
- 2024年房屋頂賬協(xié)議模板(二篇)
- 美國史智慧樹知到期末考試答案章節(jié)答案2024年東北師范大學(xué)
評論
0/150
提交評論