


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、三級(jí)數(shù)據(jù)庫技術(shù)機(jī)試 -234( 總分: 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() ,其功能是:把個(gè)位數(shù)字和千位數(shù)字重新組成一個(gè)新的十位數(shù) ( 新十位數(shù)的十位數(shù)字是原四位 數(shù)的個(gè)位數(shù)字, 新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的千位數(shù)字 ) ,以及把百位數(shù)字和十位數(shù)字組成另一個(gè)新的 十位數(shù) ( 新十位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字 ),如果 新組成的兩個(gè)十位數(shù)一個(gè)是
2、奇數(shù), 另一個(gè)為偶數(shù)并且兩個(gè)十位數(shù)中至少有一個(gè)數(shù)能被 17 整除,同時(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 <
3、 stdio.h >#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&qu
4、ot;,cnt);for(i=0; i < cnt;i+) fprintf(fp,"%d/n",bi); fclose(fp);void main()int i;readDat();J sVal();printf(" 滿足條件的數(shù) =%d/n",cnt);for(i=0;i < cntj i+)printf("%d",bi);printf("/n"); writeDat();分?jǐn)?shù): 20.00 ) 正確答案: (void jsVal ()int i,thou,hun,ten,data,j;int ab,
5、cd;for(i=0;i v 200;i+) /*循環(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(data=0| hun=0) /* 若個(gè)位或百位為 0*/ continue; / 術(shù)則組成的新數(shù)至少有一個(gè)十位為 0, 不符合題意繼續(xù)循環(huán) */ ab=10*data+thou; /* 把個(gè)位數(shù)字和千位數(shù)字重新組成一個(gè)新的十位數(shù) */ cd=10*hun+te
6、n; /* 把百位數(shù)字和十位數(shù)字重新組成一個(gè)新的十位數(shù) */ if(ab-cd)%2!=0 (ab*cd)%17=0) /* 如果新組成的兩個(gè)數(shù)一奇一偶且至少有一個(gè)能被 17整除的話 */bcnt=ai; /* 將此數(shù)存入數(shù)組 b*/cnt+; /* 讓計(jì)數(shù)值 cnt 增 1*/* 對(duì)數(shù)組 b 的前 cnt 個(gè)數(shù)進(jìn)行選擇排序 */for(i=0;i v cnt-1;i+)for(j=i+1;j v cnt;j+)if(bi v bj) /* 前面的數(shù)小于后面的數(shù)則交換 ,即降序排列 */data=bi;bi=bj;bj=data;)解析:2. 已知數(shù)據(jù)文件 IN.DAT 中存有 200 個(gè)四位
7、數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請(qǐng)編寫 函數(shù) jsVal() ,其功能是:把一個(gè)四位數(shù)的千位數(shù)字上的值加上十位數(shù)字上的值恰好等于百位數(shù)字上的值 加上個(gè)位數(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。請(qǐng)勿改動(dòng)數(shù)據(jù)文件 IN.DAT 中的任何數(shù)據(jù)及主函數(shù) main() 、讀函數(shù) readDat
8、() 和寫函數(shù) writeDat() 的內(nèi)容。 #include v stdio.h >#define MAX 200int aMAX,bMAX,cnt=0;void jsVal()void readDat()int i;FILE *fp; fp=fopen("IN.DAT","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"
9、); 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(" 滿足條件的數(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,
10、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ù)字 */ data=ai%10; /* 取當(dāng)前數(shù)的個(gè)位數(shù)字 */ if(thou+ten=hun+data) ai%2 !=1) /* 如果千位加十位等于百位加個(gè)位且該數(shù)為偶數(shù)的話 */ bcnt=ai; /* 將此數(shù)存入數(shù)組 b*/cnt+; /* 讓計(jì)數(shù)值 cnt 增 1*/* 對(duì)數(shù)組 b 的前 cnt 個(gè)數(shù)進(jìn)行選
11、擇排序 */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;)解析:3. 已知數(shù)據(jù)文件 IN.DAT 中存有 200 個(gè)四位數(shù),并已調(diào)用讀函數(shù) readDat() 把這些數(shù)存入數(shù)組 a 中。請(qǐng)編寫 函數(shù) jsVal() ,其功能是:若一個(gè)四位數(shù)的千位數(shù)字上的值大于等于百位數(shù)字上的值,百位數(shù)字上的值大 于等于十位數(shù)字上的值,以及十位數(shù)字上的值大于等于個(gè)位數(shù)字上的值,并且原四位數(shù)是奇數(shù),則統(tǒng)計(jì)出 滿足此條件的個(gè)數(shù) cnt 并
12、把這些四位數(shù)按從小到大的順序存入數(shù)組 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=fo
13、pen("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",bi); fclose(fp);void main() int i;
14、readDat();jsVal();printf(" 滿足條件的數(shù) =%d/n",cnt);for(i=0;i < ent; 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 < MAX;i+) /*循環(huán)以遍歷數(shù)組 a中的所有四位數(shù)*/ thou=ai/1000; /* 取當(dāng)前數(shù)的千位數(shù)字 */hun=ai%1000/100; /* 取當(dāng)前數(shù)的百位數(shù)字
15、*/ ten=ai%100/10; /* 取當(dāng)前數(shù)的十位數(shù)字 */ data=ai%10; /* 取當(dāng)前數(shù)的個(gè)位數(shù)字 */if(thou > =hun) && (hun > =ten) && (ten > =data) && ai%2 ! =0) /* 如果千位不小于百位、百位不小于十位、十位不小于個(gè)位且該數(shù)為奇數(shù)的話*/bent=ai; /* 將此數(shù)存入數(shù)組 b*/ent+; /* 讓計(jì)數(shù)值 ent 增 1*/* 對(duì)數(shù)組 b 的前 ent 個(gè)數(shù)進(jìn)行選擇排序 */for(i=0;i < ent-1;i+)for(j=i+1
16、;j < ent;j+)if(bi > bj) /* 前面的數(shù)大于后面的數(shù)則交換 ,即升序排列 */data=bi;bi=bj;bj=data;)解析:4. 請(qǐng)編寫函數(shù)countValue(),其功能是:求出11000之內(nèi)能被7或11整除但不能同時(shí)被7或11整除的 所有整數(shù),將它們放在數(shù)組a中,并通過n返回這些數(shù)的個(gè)數(shù)。主函數(shù)最后調(diào)用函數(shù) writeDAT() 把計(jì)算結(jié)果輸出到 out.dat 文件中。 注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 和輸出數(shù)據(jù)函數(shù) writeDAT() 的內(nèi)容。 #include < conio.h >#include <
17、; stdio.h >void countValue(int*a,int*n)void writeDAT() int aa1000,n,k;FILE 正確答案: (void countValue(int *a,int *n)int i;*n=0; /* 將指針 n 所指的內(nèi)容清 0*/for(i=1;i < =1000;i+)/* 循環(huán)遍歷 1 1000 之間的數(shù) */if(i%7=0 i%11)| (i%7 i%11=0) /* 若當(dāng)前數(shù)能被 7 或 11 整除但不能同時(shí)被 7 或 1l 整除的話術(shù) /*a=i; /* 將此數(shù)存入指針 a 所指處 */ n=*n+1; /* 將指
18、針 n 所指的內(nèi)容增 1*/a+; /* 將指針 a 向后移動(dòng)一位 , 以便存放下一個(gè)數(shù) */)解析:5. 已知數(shù)據(jù)文件 in.dat 中存有 300 個(gè)四位數(shù),并已調(diào)用讀函數(shù) ReadDat() 把這些數(shù)存入數(shù)組 a 中。請(qǐng)編寫 函數(shù) jsValue() ,其功能是:求出個(gè)位數(shù)上的數(shù)減千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個(gè)數(shù)ent,再求出所有滿足此條件的四位數(shù)平均值pjzl,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù) writeDat() ,把結(jié)果輸出到 out.dat 文件中。例如:1239, 9-1-2-3 >0,則該數(shù)滿足條件計(jì)算平均值pjzl,且個(gè)數(shù)en
19、t=ent+1。8129, 9-8-1-2 < 0,則該數(shù)不滿足條件計(jì)算平均值 pjz2 。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組: a300 ;已定義變量: ent , pjz1 , pjz2 。請(qǐng)勿改動(dòng)主函數(shù) main() 、讀函數(shù) ReadDat() 和寫函數(shù) writeDat() 的內(nèi)容。#inelude < stdio.h >int a300,ent=0;正確答案: (void jsValue ()int i,thou,hun,ten,data,n=0;for(i=0;i(300;i+) /*循環(huán)以遍歷數(shù)組 a中的所有300個(gè)四位數(shù)*/thou=ai/1000;
20、 /* 取當(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(data-thou-hun-ten > 0) /* 如果個(gè)位減去其他位的和還大于 0的話*/ cnt+; /* 讓計(jì)數(shù)值 cnt 增 1*/ pjzl+=ai; /* 將此數(shù)累加到 pjzl 中*/else /* 否則的話 , 讓計(jì)數(shù)值 n 增 1, 將此數(shù)累加到 pjz2 中 */n+;pjz2+=ai;fp; fp=fopen("out.dat","w"); countValue(aa, n);for(k=0;k < n; k+) if(k+1)%10=0) fprintf(fp,"%5d/n",aak);else fprintf(fp,"%5d",aak);fprintf(fp,"/n");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國有企業(yè)員工績效評(píng)估及激勵(lì)合同
- 2025年度環(huán)保項(xiàng)目評(píng)估外聘專家合作協(xié)議
- 二零二五年度日租房短租與藝術(shù)展覽合作協(xié)議
- 二零二五年度家長參與校園安全責(zé)任協(xié)議書反饋流程
- 環(huán)保能源行業(yè)項(xiàng)目投資風(fēng)險(xiǎn)免責(zé)
- 農(nóng)業(yè)行業(yè)精準(zhǔn)農(nóng)業(yè)技術(shù)支持平臺(tái)搭建方案
- 幼兒園繪本故事集征文
- 電商平臺(tái)商戶退換貨規(guī)則協(xié)議
- 高考語文大一輪總復(fù)習(xí) 文言文閱讀 文言實(shí)詞題題組訓(xùn)練試題
- 高考語文備考文言文閱讀專項(xiàng)練習(xí)之文言文斷句
- 2025年湖南理工職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫一套
- 2025年專利權(quán)侵權(quán)和解協(xié)議書范本
- 2024中考百日誓師大會(huì)動(dòng)員講話稿
- 2025年中國廣州軌道交通行業(yè)市場全景評(píng)估及投資前景展望報(bào)告
- 2025年中國電力中電華創(chuàng)電力技術(shù)研究有限公司招聘筆試參考題庫附帶答案詳解
- 教職工開學(xué)安全第一課培訓(xùn)
- 2025年貴州貴安發(fā)展集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2024-2025學(xué)年北京西城區(qū)八年級(jí)初二(上)期末英語試卷(含答案)
- 《家庭護(hù)士》課件
- 2024年社區(qū)工作者考試時(shí)事政治模擬題及答案
- 物業(yè)服務(wù)行業(yè)禮儀培訓(xùn)
評(píng)論
0/150
提交評(píng)論