國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷4(共9題)_第1頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷4(共9題)_第2頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷4(共9題)_第3頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷4(共9題)_第4頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷4(共9題)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷4(共9套)(共9題)國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第1套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN.dat中存有200個(gè)四位數(shù),并已調(diào)用讀函數(shù)Rdata()把這些數(shù)存入數(shù)組a中,請(qǐng)編寫函數(shù)NumCal(),其功能是:把一個(gè)四位數(shù)的千位數(shù)字上的值加上個(gè)位數(shù)字上的值恰好等于百位數(shù)字上的值加上十位數(shù)字上的值,并且原四位數(shù)是奇數(shù),則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)count并把這些四位數(shù)按從小到大的順序存入數(shù)組b中。最后調(diào)用寫函數(shù)Wdata(),把結(jié)果count以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.dat文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組a[200]b[200],已定義變量count。請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.dat中的任何數(shù)據(jù)及主函數(shù)main()、讀函數(shù)Rdata()和寫函數(shù)Wdata()的內(nèi)容。#include<stdio.h>#defineMAX200inta[MAX],b[MAX],count=0;voidNumCal(){}voidRdata(){inti;FILE*fp;fp=fopen("IN.dat","r");for(i=0;i<MAX;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}voidWdata(){FILE*fp;inti;fp=fopen("OUT.dat","w");fprintf(fp,"%d\n",count);for(i=0;i<count;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}voidmain(){inti;Rdata();NumCal();printf("滿足條件的數(shù)=%d\n",count);for(i=0;i<count;i++)printf("%d",b[i]);printf("\n");Wdata();}標(biāo)準(zhǔn)答案:voidNumCal(){inti,thou,hun,ten,data,j;for(i=0;i<MAX;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if((thou+data==hun+ten)&&a[i]%2==1){b[count]=a[i];count++;}}for(i=0;i<count-1;i++)for(j=i+1;j<count;j++)if(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}}[解題思路]對(duì)于每一個(gè)四位數(shù),用這個(gè)四位數(shù)除以1000,可得到這個(gè)四位數(shù)千位上的數(shù)字輸給變量thou;這個(gè)四位數(shù)對(duì)1000求余數(shù)然后再除以100,可得到這個(gè)四位數(shù)百位上的數(shù)字輸給變量hun;這個(gè)四位數(shù)對(duì)100求余數(shù)然后再除以10,可得到這個(gè)四位數(shù)十位上的數(shù)字輸給變量ten;這個(gè)四位數(shù)對(duì)10求余數(shù),可得到這個(gè)四位數(shù)個(gè)位上的數(shù)字輸給變量data。然后判斷表達(dá)式(thou+data==hun+ten)&&a[i]%2=1是否成立,如果成立,則把這個(gè)數(shù)賦給數(shù)組b,同時(shí)計(jì)數(shù)變量count加1。最后對(duì)數(shù)組b中元素進(jìn)行從小到大的排序。知識(shí)點(diǎn)解析:暫無解析國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第2套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN74.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中。請(qǐng)編制6數(shù)StrCharJL(),該函數(shù)的功能是:以行為單位把字符串中的所有字符的ASCII值左移4位,如果左移后,(字符的ASCII值小于等于32或大于100,則原字符保持不變,否則就把左移后的字符ASCII值再加上原字符的ASCII值,得到的新字符仍存入到原字符中對(duì)應(yīng)的位置。最后把已處理的字符串仍按行重新存入了符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WritcDat()把結(jié)果n輸出到文件OUT74.DAT中。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>charxx[50][80];intmaxline=0;intReadDat(void);voidWriteDat(void);voidStrCharfL(void){}voidmain(){Clrscr();if(ReadDat()){printf(“數(shù)據(jù)文件IN74.DAT不能打開\n\007”);return;}StrCharJL();WriteDat();}intReadDat(void){FILE*fp;inti=0;char*p;if((fp=fopen(“IN74.DAT”,“r”))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;}voidWriteDat(void){FILE*fp;inti;clrscr();fp=fopen("OUT74.DAt","w");for(i=0;i<maxline;i++){printf(”%s\n”,xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}標(biāo)準(zhǔn)答案:voidStrCharJL(void){inti,j,strl;for(i=0;i<maxline;i++){strl=strlen(xx[i]);/*求各行的總長(zhǎng)度*/for(j=0;j<strl;j++)if(xx[i][j]<<4<=32||xx[i][j]<<4>100);/*如果左移4位后字符的ASCII值小于等于32或大于100,則原字符保持不變*/elsexx[i][j]+=xx[i][j]<<4;/*否則就把左移后的字符ASCII值加上原字符的ASCII*/}}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)字符的計(jì)算。(2)左移運(yùn)算符“<<”的使用。(3)二維數(shù)組的訪問。(4)判斷結(jié)構(gòu)中多條件的布爾運(yùn)算。本題中,以行為單位處理字符串,首先要求得每行字符串的長(zhǎng)度,才可對(duì)每一行的字符依次進(jìn)行處理。字符可參與任何整數(shù)運(yùn)算,實(shí)際上是字符的ASCII碼參與了運(yùn)算。所以,可以直接將字符帶入計(jì)算。這里要使用到左移運(yùn)算符“<<”。“<<”是雙目運(yùn)算符,左側(cè)是要移動(dòng)的數(shù),右側(cè)是移動(dòng)的位數(shù)。左移后字符的ASCII碼的值小于等于32或大于100,這兩個(gè)條件滿足一個(gè)即可,所以兩條件之間用“或”運(yùn)算。使用循環(huán)實(shí)現(xiàn)對(duì)所有行的處理。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第3套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、讀函數(shù)readDat()的功能是從文件IN25.DAT中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(每行字符串長(zhǎng)度均小于80)。請(qǐng)編制函數(shù)jsSort(),該函數(shù)的功能是:以行為單位對(duì)字符串按下面給定的條件進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果xx輸出到文件OUT25.DAT中。條件:從字符串中間一分為二,左邊部分按字符的ASCII值升序排序,排序后,左邊部分與右邊部分按例子所示進(jìn)行交換。如果原字符串長(zhǎng)度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。例如:位置012345678源字符串dcbahgfe43219876處理后字符串hgfeabcd98761234注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#include〈stdio.h>#include〈string.h>#include〈conio.h>charxx[20][80];voidjsSort(){}main(){readDat();jsSort();writeDat();}readDat(){FILE*in;inti=0;char*p;in=fopen("IN25.DAT","r");while(i〈20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],’In’);if(p)*p=0;i++;}fclose(in);}writeDat(){FILE*out;inti;clrscr();out=fopen("OUT25.DAT","w");for(i=0;i〈20;i++){printf("%s\n",xx[i]);fprintf(out,"%s\n",xx[i]);}fclose(out);}標(biāo)準(zhǔn)答案:voidjsSort(){inti,j,k,str1,half;charch;for(i=0;i〈20;i++){str1=strlen(xx[i]);/*求字符串的長(zhǎng)度*/half=str1/2;/*確定各行中字符串的中間位置*/for(j=0;j〈half-1;j++)/*對(duì)中間位置以前的字符進(jìn)行升序排序*/for(k=j+1;k〈half;k++)if(xx[i][j]>xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}for(j=half-1,k=strl-1;j>=0;j--,k--)/*將左邊部分與右邊部分對(duì)應(yīng)的字符進(jìn)行交換*/{ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}知識(shí)點(diǎn)解析:本題考查對(duì)二維字符數(shù)組的處理。由于對(duì)二維字符數(shù)組的操作是按照先行后列的順序,因此,需要首先求得各行字符串的長(zhǎng)度(利用求字符串長(zhǎng)度的strlen()函數(shù)),然后借助循環(huán)結(jié)構(gòu)逐個(gè)訪問各行中的每一個(gè)字符。在本題中,應(yīng)先確定各行中字符串的中間位置(長(zhǎng)度的一半就是中間位置),然后先對(duì)中間位置以前的字符進(jìn)行升序排序,排序過程如下:依次用每一個(gè)位置的字符與它后面的所有字符(到中間位置前一個(gè)字符結(jié)束)進(jìn)行比較,如果發(fā)現(xiàn)某字符的ASCII碼值小于當(dāng)前被比較的字符的ASCII碼值,則將發(fā)現(xiàn)的字符與當(dāng)前字符進(jìn)行交換,交換后繼續(xù)與其后面的字符進(jìn)行比較。最終比較所得的結(jié)果是第一個(gè)位置總是存放著最小的字符,第二個(gè)位置總是存放著稍大的字符,以此類推就實(shí)現(xiàn)了從小到大的排序功能。接著要做的工作是把中間位置前的一個(gè)位置定為初始位置,字符串中的最后一個(gè)位置也視為初始位置,讓兩個(gè)位置所對(duì)應(yīng)的字符進(jìn)行交換,交換過后,這兩個(gè)位置值(也就是下標(biāo)值)分別前移,再進(jìn)行對(duì)應(yīng)位置字符的交換。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第4套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、請(qǐng)編寫函數(shù)voidcountValue(int*a,int*n),它的功能是:求出1到1000之內(nèi)能被7或11整除但不能同時(shí)被7和11整除的所有整數(shù)并存放在數(shù)組a中,并通過n返回這些數(shù)的個(gè)數(shù)。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和寫函數(shù)writeDAT()的內(nèi)容。試題程序:#include<conio.h>#include<stdio.h>voidcountValue(int*a,int*n){}main(){intaa[1000],n,k;clrscr();countValue(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){printf("%5d",aa[k]);printf("\n");}elseprintf("%5d",aa[k]);writeDAT();}writeDAT(){intaa[1000],n,k;FILE*fp;fp=fopen("out79.dat","w");countValue(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){fprintf(fp,"%5d",aa[k]);fprintf(fp,"\n");}elsefprintf(fp,"%5d",aa[k]);fclose(fp);}標(biāo)準(zhǔn)答案:voidcountValue(int*a,int*n){inti;*n=0;for(i=1;i<=1000;i++)if(i%7==0&&i%11)/*將能被7整除但不能被11整除的數(shù)存入數(shù)組a中*/{*a=i;*n-*n+1;/*統(tǒng)計(jì)個(gè)數(shù)*/a++;}elseif(i%7&&i%11==0)/*將能被11整除但不能被7整除的數(shù)存入數(shù)組a中*/{*a=i;*n=*n+1;/*統(tǒng)計(jì)個(gè)數(shù)*/a++;}}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)指針的使用。(2)“%”運(yùn)算符。(3)判斷結(jié)構(gòu)中多個(gè)條件的布爾運(yùn)算。本題中,函數(shù)countValue()以指針為參數(shù),這里就要涉及到指針的使用。a是指向數(shù)組的指針,初始時(shí),指向數(shù)組的第一個(gè)元素。地址每加1時(shí),依次指向后面的元素。一個(gè)數(shù)a若能被b整除,則a除以b取余得數(shù)為0。能被7或11整除,但不能被7和11同時(shí)整除,則有兩種情況,能被7整除但不能被11整除,能被11整除但不能被7整除。這里就要用到多個(gè)條件的布爾運(yùn)算。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第5套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN.dat中存有200個(gè)四位數(shù),并己調(diào)用讀函數(shù)rData()把這些數(shù)存入數(shù)組a中,請(qǐng)編寫函數(shù)spellNum(),其功能是:把個(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è)是奇數(shù),另一個(gè)為偶數(shù),并且兩個(gè)二位數(shù)中至少有一個(gè)數(shù)能被17整除,同時(shí)兩個(gè)新數(shù)的十位數(shù)字均不為0,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個(gè)數(shù)count。最后main()函數(shù)調(diào)用寫函數(shù)wData(),把結(jié)果count以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.dat文件中。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組a[200]、b[200],己定義變量count。請(qǐng)勿改動(dòng)數(shù)據(jù)文件IN.dat中的任何數(shù)據(jù)及主函數(shù)main()、讀函數(shù)rData()和寫函數(shù)wData()的內(nèi)容。#include<stdio.h>#defineMAX200inta[MAX],b[MAX],count=0;voidspellNum(){}voidrData(){inti;FILE*fp;fp=fopen("IN.dat","r");for(i=0;i<MAX;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}voidwData(){FILE*fp;inti;fp=fopen("OUT.dat","w");fprintf(fp,"%d\n",count);for(i=0;i<count;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}voidmain(){inti;rData();spellNum();printf("滿足條件的數(shù)=%d\n",count);for(i=0;i<count;i++)printf("%d",b[i]);printf("\n");wData();}標(biāo)準(zhǔn)答案:voidspellNum(){inti,thou,hun,ten,data,j;intab,cd;for(i=0;i<200;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if(data==0||hun==0)continue;ab=10*data+thou;cd=10*hun+ten;if((ab-cd)%2!=0&&(ab*cd)%17==0){b[count]=a[i];count++;}}for(i=0;i<count-1;i++)for(j=i+1;j<count;j++)if(b[i]<b[j]){data=b[i];b[i]=b[j];b[j]=data;}}[解題思路]對(duì)于每一個(gè)四位數(shù),用這個(gè)四位數(shù)除以1000,可得到這個(gè)四位數(shù)千位上的數(shù)字輸給變量thou;這個(gè)四位數(shù)對(duì)1000求余數(shù)然后再除以100,可得到這個(gè)四位數(shù)百位上的數(shù)字輸給變量hun;這個(gè)四位數(shù)對(duì)100求余數(shù)然后再除以10,可得到這個(gè)四位數(shù)十位上的數(shù)字輸給變量ten;這個(gè)四位數(shù)對(duì)10求余數(shù),可得到這個(gè)四位數(shù)個(gè)位上的數(shù)字輸給變量data。因?yàn)閐ata和hun作為新的兩個(gè)二位數(shù)字的十位上數(shù)字,所以其值不能為0,因而在組建兩個(gè)二位數(shù)之前,首先要判斷data和hun這兩個(gè)數(shù)字是否為0。然后用邏輯表達(dá)式(ab-cd)%2!=0&&(ab*cd)%17==0來判斷新組成的兩個(gè)二位數(shù)是否一個(gè)是奇數(shù),另一個(gè)為偶數(shù)并且至少有一個(gè)數(shù)能被17整除,如果上述邏輯表達(dá)式成立,則這個(gè)四位數(shù)是符合題目條件的一個(gè)數(shù)字,把其存入數(shù)組b中,同時(shí)計(jì)數(shù)變量count加1。最后利用兩重循環(huán)對(duì)數(shù)組b中的數(shù)字進(jìn)行從大到小的排序。知識(shí)點(diǎn)解析:暫無解析國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第6套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、編寫函數(shù),isValue,它的功能是:求以下數(shù)列中滿足t(K)=1的最小的k,結(jié)果由函數(shù)返回。其中數(shù)列t(n)的定義為:t(0)=m(m為給定正整數(shù),m<=300)t(n+1)=t(n)/2(當(dāng)t(n)為偶數(shù)時(shí))或t(n+1)=3*t(n)+1(當(dāng)t(n)為奇數(shù)時(shí))最后調(diào)用函數(shù)writeDat()讀取50個(gè)數(shù)據(jù)m,分別得出結(jié)果且把結(jié)果輸出到文件out.dar中。例如:當(dāng)t=299時(shí),函數(shù)值為117。已知對(duì)于m<=300,結(jié)果k不超過300部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。#include<stdio.h>intjsValue(intm){main(){intm;m=300;printf("m=%d,k-%d\n",m,jsValue(m));writeDat();writeDat(){FILE*in,*out;inti,m,s;in=fopen("in.dar","r");out=fopen("out.dar","w");for(i=0;i<50;i++){fscanf(in,"%d",&m);s=jsValue(m);printf("%d\n",s);fprintf(out,"%d\n",s);}fclose(in);fclose(out);標(biāo)準(zhǔn)答案:intisValue(intm){/*初值t(0)=m*/intfn=m,k=0;/*t(k)!=1,求t(k+1)*/while(fn>){if(fn%2==1)/*t(k)為奇數(shù)*/{fn-3*fn+1;}else/*t(k)為偶數(shù)*/{fn=fn/2;}k++;}/*t(k)==1,返回k*/returnk;}知識(shí)點(diǎn)解析:類型:序列計(jì)算。關(guān)鍵點(diǎn):分析序列定義,選擇合適的方法生成和存儲(chǔ)序列或序列中的特定值。根據(jù)序列定義,以及題目的輸出要求,可選擇保存序列中的所有值,也可以只保留與當(dāng)前項(xiàng)計(jì)算相關(guān)的幾項(xiàng),采用遞推的方式進(jìn)行計(jì)算。對(duì)于某些特殊序列,還可以求出通項(xiàng)公式,利用公式直接計(jì)算。此題只需要保存當(dāng)前項(xiàng),根據(jù)當(dāng)前項(xiàng)計(jì)算下一項(xiàng)。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第7套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:找出所有100以內(nèi)(含100)滿足I,I+4,I+10都是素?cái)?shù)的整數(shù)I(1+10也是在100以內(nèi))的個(gè)數(shù)cnt,以及這些I之和sum。請(qǐng)編制函數(shù)countValue()實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)writeDAT()把結(jié)果cnt和sum輸出到文件out64.dat中(數(shù)值1不是素?cái)?shù))。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDAT()的內(nèi)容。試題程序:#include<stdio.h>intcnt,sum;intisPrime(intnumber){inti,tag=1;if(number==1)return0;for(i=2;tag&&i<=number/2;i++)if(number%i==0)tag=0;returntag;}voidcountValue(){}voidmain(){cnt=sum=0;countValue();printf("滿足條件的整數(shù)的個(gè)數(shù)=%d\n",cnt);printf("滿足條件的整數(shù)的和值=%d\n",sum);writeDAT();}writeDAT(){FILE*fp;fp=fopen("out64.dat","w");fprintf(fp,"%d\n%d\n",cnt,sum);fclose(fp);}標(biāo)準(zhǔn)答案:voidcountValue(){inti,count=0,xx[30];intj,k,m;cnt=0;sum=0;for(i=2;i<90;i++)/*找數(shù)的范圍為100以內(nèi)*/if(isPrime(i))/*如果該數(shù)為素?cái)?shù),則將它存入數(shù)組xx中,并統(tǒng)計(jì)個(gè)數(shù)*/{xx[count]=i;count++;}for(i=0;i<count;i++)/*如果數(shù)組xx中的素?cái)?shù)加4和加10得到的數(shù)仍為素?cái)?shù)*/if(isPrime(xx[i]+4)&&isPrime(xx[i]+10)){cnt++;/*統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)*/sum+=xx[i];/*將滿足條件的數(shù)組xx中的數(shù)求和*/}}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)循環(huán)結(jié)構(gòu)與判斷結(jié)構(gòu)的嵌套使用。(2)判斷結(jié)構(gòu)中多個(gè)條件的布爾運(yùn)算。題中要求判斷在100以內(nèi),i,i+4,i+10都是素?cái)?shù)的個(gè)數(shù)。因?yàn)閕+10也必須在100以內(nèi),1不是素?cái)?shù),我們可以從2開始判斷到89即可(90是偶數(shù),明顯不是素?cái)?shù))??梢韵日页?到89之間素?cái)?shù)的個(gè)數(shù),再判斷這些素?cái)?shù)加4和加10后是否還是素?cái)?shù)。加4是素?cái)?shù)與加10是素?cái)?shù)必須同時(shí)滿足,所以兩個(gè)條件間用“與”運(yùn)算。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第8套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是;把s字符串中所有的字符左移一個(gè)位置,串中的第一個(gè)字符移到最后。請(qǐng)編制函數(shù)chg(char*s)實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)readwriteDat()把結(jié)果輸出到out63.dat文件中。例如;s字符串中原有內(nèi)容為Mn,123xyZ,則調(diào)用該函數(shù)后,結(jié)果為n,123xyZM。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和輸入輸出函數(shù)readwriteDAT()的內(nèi)容。試題程序:#include<conio.h>#include<stdio.h>#defineN81voidreadwriteDAT();voidchg(char*s){}main(){chara[N];clrscr();printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);chg(a);printf("Thestringaftermodified:");puts(a);readwriteDAT()}voidreadwriteDAT(){inti;chara[N];unsignedchar*p;FILE*rf,*wf;rf=fopen("in63.dat","r");wf=fopen("out63.dat","w");for(i=0;i<10;i++){fgets(a,80,rf);p=strchr(a,’\n’);if(p)*p=0;chg(a);fprintf(wf,"%s\n",a);}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:voidchg(char*s){inti,strl;charch;strl=strlen(s);/*求字符串的長(zhǎng)度*/ch=*s;/*將第一個(gè)字符暫賦給ch*/for(i=0;i<strt-1/i++)/*將字符依次左移*/*(s+i)=*(S+i+1);*(s+strl-1)=ch;/*將第一個(gè)字符移到最后*/}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)數(shù)組中元素的移動(dòng)。(2)指針的使用。我們可以使用一個(gè)循環(huán)實(shí)現(xiàn)數(shù)組中所有字符元素的左移。這里要注意的是第1個(gè)字符要移至最后1個(gè)字符處,所以首先要將第1個(gè)字符保存。在移動(dòng)時(shí),要從左到右依次移動(dòng),否則,左側(cè)的字符會(huì)在移動(dòng)前被其右側(cè)的字符覆蓋。在這里使用了指針,初始時(shí),指針指向數(shù)組的第1個(gè)元素,隨著地址的增加指針指向數(shù)組后面的元素。例如,若地址加2,則指向數(shù)組的第3個(gè)元素。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第9套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN82.DAT中存有300個(gè)4位數(shù),并已調(diào)用函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論