版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、三級(jí)數(shù)據(jù)庫技術(shù)機(jī)試 -237( 總分: 100.00 ,做題時(shí)間: 90 分鐘 )、上機(jī)題( 總題數(shù): 5,分?jǐn)?shù): 100.00)1. 已知在IN.DAT文件中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱me(字符型10位)、單價(jià)dj(整型)、數(shù)量sl(整型)、金額je(長整型)五部分組成。其中:金額 =單價(jià) x數(shù)量。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編寫函數(shù) SortDat(),其功能是:按金額從小到大進(jìn)行排列,若金額相同,則按產(chǎn)品代碼從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié) 構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteD
2、at(),把結(jié)果輸出到OUT.DAT文件中。注意:部分源程序已經(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 >#include < stdlib.h>#define MAX 100typedef structchar dm5; /* 產(chǎn)品代碼 */char mc11; /* 產(chǎn)品名稱 */int dj; /*單價(jià) */int sl; /*數(shù)量 */long j
3、e; /* 金額 */PRO;PRO sellMAX;void ReadDat();void WriteDat();void SertDat() void main()memset(sell,0,sizeof(sell); ReadDat();SortDat();WriteDat();void ReadDat()FILE *fp;char str80,ch11; int i; fp=fopen("IN.DAT","r"); for(i=0;i < 100;i+) fgets(str,80,fp);memcpy(selli.dm,Str,4);mem
4、cpy(selli.mc,str+4,10);memcpy(ch,str+14,4);ch4=0;selli.dj=atoi(ch);memcpy(ch,str+18,5);ch5=0;selli.sl=atoi(ch);selli.je=(long)selli.dj*selli.sl;fclose(fp);void WriteDat(void)FILE *fp;int i;fp=fopen("OUT.DAT","w");for(i=0;i v 100;i+)printf("%s%s%4d%5d%5d/n", selli.dm,sel
5、li.mc,selli.dj,selli.sl,selli.je); fprintf(fp,"%s%s%4d%5d%5d/n", selli.dm,selli.mc,selli.dj,selli.sl,selli.je);fclose(fp);分?jǐn)?shù): 20.00 ) 正確答案: (void SortDat ()int i,j;PRO xy;/* 對(duì)數(shù)組 sell 的所有 100 條記錄進(jìn)行選擇排序 */for(i=0;i v 99;i+)for(j=i+1;j v i00;j+)/* 按每條記錄 je 字段(產(chǎn)品金額 )的大小進(jìn)行升序排列 */if(selli.je>
6、 sell j.je)xy=selli;selli=sellj;sellj=xy;else if(selli.je=sellj.je) /*若je字段相等則按dm字段(代碼)的大小進(jìn)行降序排列*/if(strcmp(selli.dm,sellj.dm)v 0)xy=selli;selli=sellj;sellj=xy;) 解析:2. 函數(shù)ReadDat()實(shí)現(xiàn)從IN.DAT文件中讀取一篇英文文章并存入字符串?dāng)?shù)組xx中。請(qǐng)編寫函數(shù)encryptChar() ,按給定的替代關(guān)系對(duì)數(shù)組 xx 中的所有字符進(jìn)行替代后, 仍存入數(shù)組 xx 的對(duì)應(yīng)位置上, 最 后調(diào)用函數(shù) WriteDat(),把結(jié)果xx
7、輸出到OUT.DAT文件中。替代關(guān)系: f(p)=p*13 mod 256(p 是數(shù)組中某一個(gè)字符的 ASCII 值, f(p) 是計(jì)算后新字符的 ASCII 值),如 果計(jì)算后 f(p) 值小于等于 32 或其 ASCII 值是偶數(shù),則該字符不變,否則將 f(p) 所對(duì)應(yīng)的字符進(jìn)行替代。 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于 80 個(gè)字符。注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 、讀數(shù)據(jù)函數(shù) ReadDat() 和輸出數(shù)據(jù)函數(shù) WriteDat() 的內(nèi)容。#include < stdio.h >#include < string.h >#inc
8、lude < conio.h >#include < ctype.h >unsigned char xx5080;int maxline=0; /* 文章的總行數(shù) */int ReadDat(void);void WriteDat(void);void encryptChar()void main()if(ReadDat()printf(" 數(shù)據(jù)文件 IN.DAT 不能打開 !/n/007");return;encryptChar();WriteDat();int ReadDat(void)FILE *fp;int i=0;unsigned char
9、 *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 正確答案: (void encryptChar()int i;char*pf;/* 循環(huán)以遍歷英文文章的每一行 */for(i=0;i < maxline;i+)pf=xxi; /* 以字符指針指向當(dāng)前行行首 */wh
10、ile(*pf!=0) /* 若所指字符不為 0( 即字符串結(jié)束標(biāo)志 ) 則循環(huán) */ if(*pf*13%256)%2=0|*pf*13%256< =32) /* 若所指字符依題意計(jì)算后為偶數(shù)或小于等于 32*/pf+; /* 指向下一字符 */continue; /* 繼續(xù)循環(huán) */ pf=*pf*13%256; /* 否則以計(jì)算結(jié)果替換該字符 */pf+; /* 指向下一字符 , 準(zhǔn)備繼續(xù)循環(huán) */)解析:3. 下列程序的功能是:把 s 字符串中的所有字符左移一個(gè)位置,字符串中的第一個(gè)字符移到最后。請(qǐng)編寫函數(shù) chg(char * s) 實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù) readwrit
11、eDAT() 從 in.dat 文件中讀取 50 組數(shù)據(jù),分別得 出結(jié)果,且把結(jié)果輸出到 out.out 文件中。例如:s字符串中原有內(nèi)容為:Mn.123xyZ,調(diào)用該函數(shù)后結(jié)果為:n.123xyZM。注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 和輸出數(shù)據(jù)函數(shù) readwriteDAT() 的內(nèi)容。#include < string.h >#include < stdio.h >#define N 81void readwriteDAT();void chg(char*s)正確答案: (void chg(char*s)int i,strl;char ch;s
12、trl=strlen(s); /* 取 s 所指字符串的長度 */ch=*s; /* 將字符串首字符存入 ch*/for(i=0;i v strl-1;i+) /* 循環(huán)遍歷第 1 至倒數(shù)第 2 個(gè)字符 */*(s+i)=*(s+i+1); /* 將后一個(gè)字符賦給當(dāng)前字符 */*(s+strl-1)=ch; /* 將保存的第 1 個(gè)字符存入最后一個(gè)位置 */)解析:4. 下列程序的功能是:找出所有 100 以內(nèi)(含 100)滿足 i 、i+4、i+10 都是素?cái)?shù)的整數(shù) i(i+10 也在 100以 內(nèi))的個(gè)數(shù)ent以及這些i之和sum。請(qǐng)編寫函數(shù)countValue()實(shí)現(xiàn)程序要求的功能,最后
13、調(diào)用函數(shù) writeDat() ,把結(jié)果 cnt 和 sum 輸出到 out.dat 文件中。注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 和輸出數(shù)據(jù)函數(shù) writeDat() 的內(nèi)容。#include v stdio.h >正確答案: (void countValue()int i;for(i=2;i < =90;i+) /* 遍歷篩選范圍 2 90*/if(isPrime(i) && isPrime(i+4) && isPrime(i+10) /* 若同時(shí)滿足 i 、i+4 、i+10 都是素?cái)?shù) */cnt+; /* 計(jì)數(shù)值 cnt 加
14、 1*/sum+=i; /* 將i累加到sum中*/)解析:5. 已知在IN.DAT文件中存有若干個(gè)(< 200)四位數(shù)字的正整數(shù),函數(shù)ReadDat()讀取這若干個(gè)正整數(shù)并存入數(shù)組 xx 中。請(qǐng)編寫函數(shù) CalValue() ,其功能是: (1) 求出文件中的正整數(shù)個(gè)數(shù) totNum;(2) 求這些數(shù)中 的各位數(shù)字之和是奇數(shù)的個(gè)數(shù) totCnt ,以及滿足此條件的這些數(shù)的算術(shù)平均值 totPjz ,最后調(diào)用函數(shù) writeDat()把所求的數(shù)的結(jié)果輸出到OUTDA文件中。注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù) main() 、讀函數(shù) ReadDat() 和寫函數(shù) writeDat()
15、 的內(nèi)容。#include < stdio.h >#include < conio.h >正確答案: (void CalValue(void)fp;int 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 )main() char aN; printf("Enter a string : ");
16、 gets(a);printf("The original string is : "); puts(a);chg(a);printf("The string after modified: ");puts(a);readwriteDAT();void readwriteDAT()int i;char aN;FILE *rf,*wf; rf=fopen("in.dat","r"); wf=fopen("out.dat","w");for(i=0;i v 50; i+)fsca
17、nf(rf,"%s",a); chg(a);fprintf(wf,"%s/n",a);fclose(rf); fclose(wf);分?jǐn)?shù): 20.00 ) int cnt,sum;int isPrime(int number)int i,tag=1;for(i=2; tag && i < =number/2;i+)if(number%i=0)tag=0;return tag;void countValue()void wrlteDat()FILE *fp;fp=fopen("out.dat","w&qu
18、ot;); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp);void main()cnt=sum=0;countValue();printf(" 滿足條件的整數(shù)的個(gè)數(shù) =%d/n",cnt); printf(" 滿足條件的整數(shù)的和值 =%d/n",sum); writeDat();分?jǐn)?shù): 20.00 )#define MAXNUM 200int xxMAXNUM;int totNum=0; /*IN.DAT 文件中的正整數(shù)個(gè)數(shù) */ int totCnt=0; /* 符合條件的正整數(shù)個(gè)數(shù) */ d
19、ouble totPjz=0.0; /* 平均值 */ int ReadDat(void);void writeDat(void);void CalValue(void)void main()int i;for(i=0; i v MAXNUM; i+) xxi=0;if(ReadDat()printf(" 數(shù)據(jù)文件 IN.DAT 不能打開 !/007/n"); return;CalValue();printf("IN.DAT文件中的正整數(shù)個(gè)數(shù)=%d個(gè)/n",totNum);printf(”符合條件的正整數(shù)個(gè)數(shù) =%d個(gè)/n",totCnt);printf(" 平均值 =%.2f/n",totPjz);writeDat();int ReadDat(void)FILE *fp;int i=0; if(fp=fopen("IN.DAT","r")=NULL) return 1;while(!feof(fp) fscanf(fp,&q
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025新版七下單詞默寫表
- 2021高考英語單項(xiàng)選擇(2)及答案(武漢市)
- 【全程復(fù)習(xí)方略】2020年高考政治一輪單元評(píng)估檢測(cè)15-必修4-第三單元(廣東專供)
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案
- 【名師課堂-備課包】2013-2020學(xué)年高一下學(xué)期化學(xué)人教版必修2學(xué)案-第一章第3節(jié)
- 【名師一號(hào)】2020-2021學(xué)年高中地理必修一(中圖版)同步練習(xí):第三單元綜合檢測(cè)
- 《汽車底盤機(jī)械系統(tǒng)檢測(cè)與修復(fù)》-考試題庫及答案 項(xiàng)目三 轉(zhuǎn)向系統(tǒng)檢修試題及答案
- 缺乏適合中國國情的洪水風(fēng)險(xiǎn)管理規(guī)范-教學(xué)教案
- 《《黨委會(huì)的工作方法》導(dǎo)讀》課件
- ATS技術(shù)交流(新型發(fā)動(dòng)機(jī)智能恒溫節(jié)能冷卻系統(tǒng))100318
- 手術(shù)區(qū)皮膚的消毒和鋪巾ppt課件
- 日有所誦(二年級(jí))
- 2022年度培訓(xùn)工作總結(jié)
- 應(yīng)急照明裝置安裝施工方法
- 靜力觸探技術(shù)標(biāo)準(zhǔn)
- 鋼結(jié)構(gòu)、膜結(jié)構(gòu)安全技術(shù)交底
- DB34∕T 4057-2021 中小河流防汛特征水位分析規(guī)程
- 單肺通氣技術(shù)
- 學(xué)生基本情況分析(通用11篇)
- 明天會(huì)更好歌詞
評(píng)論
0/150
提交評(píng)論