全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)信息、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)上機(jī)編程題15道

時(shí)間:2024-08-13 11:23:02 學(xué)人智庫(kù) 我要投稿
  • 相關(guān)推薦

全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)信息、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)上機(jī)編程題15道

1、下列程序的功能是:把s字符串中的所有字母改寫成該字母的下一個(gè)字符,字母z改寫成字母a。要求大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不做改變。請(qǐng)編寫函數(shù)chg(char *s)實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)readwriteDat()把結(jié)果輸出到文件out.dat中。

全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)信息、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)上機(jī)編程題15道

??例如:s字符串中原有的內(nèi)容為:Mn.123Zxy,則調(diào)用該函數(shù)后,結(jié)果為No.123Ayz。

??

??注:該題的思路比較明顯,先判斷是否是#39;z#39;或#39;Z#39;,若是則轉(zhuǎn)成相應(yīng)的#39;a#39;或#39;A#39;,否則再判斷是不是字母(已除#39;z#39;或#39;Z#39;)。

??void chg(char *s)

??{

??int i,j,k;

??k=strlen(s);

??for(i=0;i??{if(s[i]==#39;z#39;//s[i]==#39;Z#39; )

??s[i]-=25;

??else

??if(isalpha(s[i]))

??s[i]+=1;

??}}

??

??2、現(xiàn)有一個(gè)10個(gè)人100行的選票數(shù)據(jù)文件IN.DAT,其數(shù)據(jù)存放的格式是每條記錄的長(zhǎng)度均為10位,第一位表示第一個(gè)人的選中情況,第二位表示第二個(gè)人的選中情況,依此類推 :內(nèi)容均為字符0和1,1表示此人被選中,0表示此人未被選中,若一張選票人數(shù)小于等于5個(gè)人時(shí)被認(rèn)為無(wú)效的選票。給定函數(shù)ReadDat()的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)CountRs()來(lái)統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[0]到y(tǒng)y[9]中。把結(jié)果yy輸出到文件OUT.DAT中。

??

??/*注:題目要求將那些選了不超過(guò)5人的選票視為無(wú)效票,即一張選票中如果‘1’不超過(guò)5個(gè)則為無(wú)效選票。該題先用for()循環(huán)對(duì)100行選票進(jìn)行循環(huán),在循環(huán)內(nèi)先進(jìn)行用for()循環(huán)數(shù)出這張選票中選中的人數(shù)(count)再用if()判斷,如果選中人數(shù)小于等于5則continue即判斷下一張選票,否則用內(nèi)嵌的for()對(duì)行內(nèi)的數(shù)據(jù)進(jìn)行判斷,注意如果數(shù)據(jù)為‘1’時(shí)才對(duì)對(duì)應(yīng)的人增加1。*/

??void countrs(void)

??{

??int i,j,count;

??for(i=0;i<300;i++)

??{count=0;

??for(j=0;j<10;j++)

??if(xx[i][j]==#39;1#39;)

??count++;

??if(count<=5)

??continue;

??for(j=0;xx[i][j];j++)

??if(xx[i][j]==#39;1#39;) yy[j]++;

??}}

??3、函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請(qǐng)

??編制函數(shù)STROR(),其函數(shù)功能是:以行為單位把字符串中的所有小寫字母O左邊的字符串

??內(nèi)容移到該串的右邊存放,然后并把小寫字母O刪除,余下的字符串內(nèi)容移到已處理字符串

??的左邊存放.最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WRIT

??EDAT()把結(jié)果XX輸出到文件OUT5.DAT中.

??例如:原文:You can create an index on any field.

??you have the correct record.

??結(jié)果:n any field.You can create an index

??rd.yu have the crrect rec

??原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格.

??

??/* 注:題目要求的字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,即將串中“最后”一個(gè)字母o左右兩側(cè)的內(nèi)容互換。題中第一個(gè)while()特環(huán)的作用是讓p1指向最后一個(gè)字母#39;o#39;。第一個(gè)ctrcat()函數(shù)的作用是將p1以后的字符都放到新串t中,第二個(gè)strcat()函數(shù)的作用是將p1以前的字符連接到新串t的后面(注意:在些之前要讓p1所指的單元成為p1前面字符串的結(jié)束位置*p1=#39;0#39;)。這時(shí)完成左右互換。最后一個(gè)while()循環(huán)的作用是刪除新串中的所有小寫字母#39;o#39;,采用的刪除方法是不是#39;

??o#39;的字母一律留下,否則不留(即相當(dāng)于刪除。*/

??void StrOR(void)

??{

??int i;

??char *p1,*p2,t[80];

??for(i=0;i??{t[0]=#39;0#39;;

??p2=xx[i];

??while(*p2)

??{if(*p2==#39;o#39;) p1=p2;

??p2++;

??}

??strcat(t,p1+1);

??*p1=#39;0#39;;

??strcat(t,xx[i]);

??p1=xx[i];

??p2=t;

??while(*p2)

??{if(*p2!=#39;o#39;) *p1++=*p2;

??p2++;

??}

??*p1=#39;0#39;;

??}

??}

??

??4、函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請(qǐng)編制函數(shù)CONVERTCHARA(),其函數(shù)功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個(gè)字母,如果是字母Z,則改寫成字母A.大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變.把已處理的字符串仍按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果XX輸出到文件OUT.DAT中.

??例:原文:Adb.Bcdza

??abck.LLhj

??結(jié)果:Aec.Bdeab

??bcdl.LLik

??/* 注:注意本題中不能將第一個(gè)if()的else去掉,若不用else則經(jīng)過(guò)第一個(gè)if()后原來(lái)字符#39;z#39;變成了#39;a#39;,當(dāng)再經(jīng)過(guò)第二個(gè)if()時(shí)又將已變成#39;a#39;的字符改成了#39;b#39;,即實(shí)際上字母#39;z#39;變成了字母#39;b#39;,這是不行的。*/

??void ConvertCharA(void)

?? {int I,j,str;

?? for(I=0;I?? {str =strlen(xx[I]);

??for(j=0;j??if(xx[I][j]==#39;z#39;)xx[I][j]=#39;a#39;;

??else if(xx[I][j]>=#39;a#39;&&xx[I][j]<=#39;y#39;) xx[I][j]+=1;

?? }

?? }

??}

??5、已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價(jià)dj(整型),數(shù)量sl(整型),金額je(長(zhǎng)整型)四部分組成。其中:金額=單價(jià)*數(shù)量計(jì)算得出。函數(shù)ReadDat()是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相等,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT7.DAT中。

??請(qǐng)勿改動(dòng)主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。 #include

??#define MAX 100

??typedef struct{

??char dm[5]; /*產(chǎn)品代碼*/

??char mc[11]; /*產(chǎn)品名稱*/

??int dj; /*單價(jià)*/

??int sl; /*數(shù)量*/

??long je; /*金額*/

??}PRO;

??PRO sell[MAX];

??

??void SortDat( )

?? {int I,j;

?? PRO xy;

?? for(I=0;I<99;I++)

?? for(j=I+1;j<100;j++)

?? if(strcmp(sell[I].dm,sell[j].dm)<0)

??{xy=sell[I];

??sell[I]=sell[j];

??sell[j]=xy;}

?? else if(strcmp(sell[I].dm,sell[j].dm)==0)

?? if(sell[I].je?? {xy=sell[I];

?? sell[I]=sell[j];

?? sell[j]=xy;}

??}

??

??6、編寫函數(shù),功能是以行為單位對(duì)行中的以空格或標(biāo)點(diǎn)符號(hào)為分隔的單詞倒排,最后把已經(jīng)處理的字符串(不含標(biāo)點(diǎn)符號(hào))仍按行從新存入字符串?dāng)?shù)組中,例如:

??原文:You He Me

??結(jié)果:Me He You

??void StrOL(void)

??{int I,j,k,strl,l;char c;

??for(I=0;I?? for(j=0;j?? {c=xx[I][j];

?? if ((c>=#39;A#39;&&c<=#39;Z#39;)||(c>=#39;a#39;&&c<=#39;z#39;)||c==#39; #39;)

?? ;

?? else xx[I][j]=#39; #39;;

?? }

?? for(l=0;l??{char ch[80]={0};

?? char pp[80]={0};

?? strl=strlen(xx[l]);

?? I=strl-1;

?? k=1;

?? while(1)

?? {while (((xx[l][I]>=#39;a#39;&&xx[l][I]<=#39;z#39;)||(xx[l][I]>=#39;A#39;&&xx[l][I]<=#39;z#39;))&&I>=0)

??{for(j=k;j>=0;j--)

?? pp[j+1]=pp[j];

?? pp[0]=xx[l][I];

?? k++;I--;

?? }

??strcat(ch,pp);

??strcpy(pp, "");

??k=1;

??if(I==-1)break;

?? while((xx[l][I]<#39;A#39;||xx[l][I]>#39;z#39;)&&I>=0)

?? {for(j=k;j>=0;j--)

?? pp[j+1]=pp[j];

?? pp[0]=xx[l][I];

?? k++;

?? I--;}

?? strcat(ch,pp);

?? strcpy(pp,"");

?? k=0;

?? if(I==-1)break;}

?? strcpy(xx[l],ch);

?? }

??}

????

??7、

??有200個(gè)正整數(shù)已經(jīng)存入數(shù)組a,他們都是1000—9999的正整數(shù),編寫函數(shù),功能是如果四位數(shù)各位上的數(shù)字均為0/2/4/6/8,則統(tǒng)計(jì)滿足條件的個(gè)數(shù)cnt,并且把這些四位數(shù)按從大到小的順序存入數(shù)組b。注意a,b數(shù)組已經(jīng)定義。cnt已經(jīng)定義并已經(jīng)賦值為0

??void jsVal()

??{

??int bb[4];

??int I,j,k,flag;

??for (I=0;I<200;I++)

?? {bb[0]=a[I]/1000;

?? bb[1]=a[I]%1000/100;

?? bb[2]=a[I]%100/10;

?? bb[3]=a[I]%10;

?? for (j=0;j<4;j++)

?? {if (bb[j]%2= =0)

?? flag=1;

?? else

?? {flag=0;break;}

?? }

?? if (flag= =1)

?? { b[cnt]=a[I];

?? cnt ++;}

?? }

??for(I=0;I?? for(j=I+1;j?? if (b[I]?? {k=b[I];

?? b[I]=b[j];

?? b[j]=k;}

??}

??

??8、有200個(gè)正整數(shù)已經(jīng)存入數(shù)組aa,他們都是1000—9999的正整數(shù),編寫函數(shù),功能是按照每個(gè)數(shù)的后三位的大小進(jìn)行升序排列,將排序后的前10個(gè)數(shù)存入數(shù)組bb。如果數(shù)組bb中出現(xiàn)后三位相等的數(shù)值,則按照原值降序排列。注意aa,bb數(shù)組已經(jīng)定義。

??例如: 前 :6012 5099 9012 7025 8088

?? 后:9012 6012 7025 8088 5099

?? void jsSort()

??{

??int I,j,data;

??for(I=0;I<199;I++)

?? for(j=I+1;j<200;j++)

?? {if (aa[I]%1000>aa[j]%1000)

?? {data=aa[I];

?? aa[I]=aa[j];

?? aa[j]=data;}

?? else if(aa[I]%1000==aa[j]%1000)

?? if(aa[I]?? {data=aa[I];

?? aa[I]=aa[j];

?? aa[j]=data;}

?? }

?? for(I=0;I<10;I++)

?? bb[I]=aa[I];

??}

??

??

??9、左降序,右升序的程序:

??void jsSort()

??{int I,j,k,strl,half;

?? char ch;

?? for(I=0;I<20;I++)

?? {strl=strlen(xx[I]);

?? half=strl/2;

?? for(j=0;j?? for(k=j+1;k?? if (xx[I][j]?? {ch=xx[I][j];

??xx[I][j]=xx[I][k];

??xx[I][k]=ch;}

??if (strl%2) half++; /* 判斷奇數(shù)

?? for(j=half;j?? for(k=j+1;k?? if (xx[I][j]>xx[I][k])

?? {ch=xx[I][j];

?? xx[I][j]=xx[I][k];

?? xx[I][k]=ch;}

?? }

??(注意此處加half=strl/2;)

??for(j=half-1,k=strl-1;j>=0;j--,k--)

?? {ch=xx[I][j];

?? xx[I][j]=xx[I][k];

?? xx[I][k]=ch;}

??}

??

??10、從文件中讀入200個(gè)整數(shù)放入XX數(shù)組中,求數(shù)組中的奇數(shù)個(gè)數(shù)cnt1和偶數(shù)個(gè)數(shù)cnt2以及XX下標(biāo)為奇數(shù)的元素值的算術(shù)平均值PJ(保留2位小數(shù))

??void main()

??{int cnt1,cnt2,xx[N];

?? float pj;

?? FILE *fw;

?? int I,k=0,j=0;

?? cnt1=0;cnt2=0;pj=0.0;

?? fw=fopen("out.dat", " w");

?? clrscr();

?? read_dat(xx);

?? for(I=0;I?? { if (xx[I]%2) cnt1++;

?? else cnt2++;

?? if (I%2) {k+=xx[I];j++;}

?? }

?? pj=(float)(k*100/j)/100;

?? printf("ncnt1=%d,cnt2=%d,pj=%6.2fn",cnt1,cnt2,pj);

?? fprintf(fw, "%dn%dn%6.2fn",cnt1,cnt2,pj);

?? fclose(fw);

??}

??

??11、從文件中讀入200個(gè)整數(shù)放入XX數(shù)組中,求數(shù)組中的最大數(shù)max和最大數(shù)個(gè)數(shù)cnt和XX數(shù)組中能被3或7整除的元素值的算術(shù)平均值PJ(保留2位小數(shù))

??

??

??void main()

??{

?? int cnt, xx[N], max ;

?? float pj ;

?? FILE *fw ;

?? long j=0;

?? clrscr();

?? fw=fopen("out.dat","w");

?? read_dat(xx);

?? max=xx[0];

?? for(I=1,k=0;I?? {if (xx[I]>max) max=xx[I];

?? if (xx[I]%3==0||xx[I]%7==0)

?? {j+=xx[I];k++;}

?? }

?? for(I=0,cnt=0;I?? if (xx[I]==max) cnt++;

?? pj=(float)(j*100/k)/100;

?? printf("nnmax=%d,cnt=%d,pj=%6.2fn", max, cnt, pj) ;

?? fprintf(fw, "%dn%dn%6.2fn", max, cnt, pj) ;

?? fclose(fw) ;

??}

??

??12、下列函數(shù)的功能是在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組[]中;它既是完全平方數(shù),又有兩位數(shù)字相同,例如144、676等。

??

??int jsValue(int bb[])

??{int I,j,k=0;

??int hun,ten,data;

??for(I=100;I<=999;I++)

??{j=10;

??while(j*j<=I)

??{if (I==j*j)

??{hun=I/100;

??data=I-hun*100;

??ten=data/10;

??data=data-ten*10;

??if(hun==ten||hun==data||ten==data)

??{bb[k]=I;k++;}

??}

??j++;

??}

??}

??return k;

??}

??

??13、

??已知在文件IN.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱mc(字符型10位)、單價(jià)dj(整型)、數(shù)量sl(整型)、金額je(長(zhǎng)整型)幾部分組成。其中:金額=單價(jià)*數(shù)量可計(jì)算得出。函數(shù)ReadDat()的功能是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT10.DAT中。資料來(lái)源:東方教育http://www.eastedu.com.cn

??

??注意:部分源程序已給出。

??#define MAX 100

??typedef struct{

??char dm[5]; /*產(chǎn)品代碼*/

??char mc[11]; /*產(chǎn)品名稱*/

??int dj; /*單價(jià)*/

??int sl; /*數(shù)量*/

??long je; /*金額*/

??}PRO;

??PRO sell[MAX];

??

??void SortDat( )

??{int I,j;

??PRO xy;

??for(I=0;I<99;I++)

??for(j=I+1;j<100;j++)

??if(strcmp(sell[I].dm,sell[j].dm)<0)

??{xy=sell[I];

??sell[I]=sell[j];

??sell[j]=xy;}

??else if(strcmp(sell[I].dm,sell[j].dm)==0)

??if(sell[I].je??{xy=sell[I];

??sell[I]=sell[j];

??sell[j]=xy;}

??}

??

??14、函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請(qǐng)編制函數(shù)StrOL(),該函數(shù)的功能是:以行為單位對(duì)行中以空格或標(biāo)點(diǎn)符號(hào)或標(biāo)點(diǎn)符號(hào)為分隔的所有單詞進(jìn)行倒排。最后把已處理的字符串(應(yīng)不含標(biāo)點(diǎn)符號(hào))仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT6.DAT中。

??例如:原文:You He Me

?? I am a student.

??結(jié)果:Me He You

?? student a am I

??試題程序:

??char xx[50][80];

??int maxline=0;/*文章的總行數(shù)*/

??int ReadDat(void);

??_______________________________

??

??void StrOL(void)

??{int I,j,k,strl,l;char c;

??for(I=0;I??for(j=0;j??{c=xx[I][j];

??if ((c>=#39;A#39;&&c<=#39;Z#39;)||(c>=#39;a#39;&&c<=#39;z#39;)||c==#39; #39;)

??;

??else xx[I][j]=#39; #39;;

??}

??for(l=0;l??{char ch[80]={0};

??char pp[80]={0};

??strl=strlen(xx[l]);

??I=strl-1;

??k=1;

??while(1)

??{while (((xx[l][I]>=#39;a#39;&&xx[l][I]<=#39;z#39;)||(xx[l][I]>=#39;A#39;&&xx[l][I]<=#39;z#39;))&&I>=0)

??{for(j=k;j>=0;j--)

??pp[j+1]=pp[j];

??pp[0]=xx[l][I];

??k++;I--;

??}

??strcat(ch,pp);

??strcpy(pp, "");

??k=1;

??if(I==-1)break;

??while((xx[l][I]<#39;A#39;||xx[l][I]>#39;z#39;)&&I>=0)

??{for(j=k;j>=0;j--)

??pp[j+1]=pp[j];

??pp[0]=xx[l][I];

??k++;

??I--;}

??strcat(ch,pp);

??strcpy(pp,"");

??k=0;

??if(I==-1)break;}

??strcpy(xx[l],ch);

??}}

??

??

??15、函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請(qǐng)編制函數(shù)StrOR(),該函數(shù)的功能是:以行為單位把字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,然后并把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。資料來(lái)源:東方教育http://www.eastedu.com.cn

??例如:原文:You can creat an index on any field.

??you have the correct record.

??

??

??結(jié)果:n any field. Yu can creat an index

??rd.yu have the crrect rec

??

??char xx[50][80];

??int maxline=0;/*文章的總行數(shù)*/

??int ReadDat(void);

??void WriteDat(void);

??________________________

??void StrOR(void)

??{int I,j,k,index,strl;

??char ch;

??for(I=0;I??{strl=strlen(xx[I]);

??index=strl;

??for(j=0;j??if(xx[I][j]==#39;o#39;)

??{for(k=j;k??xx[I][k]=xx[I][k+1];

??xx[I][strl-1]= #39; #39;;

??index=j;}

??for(j=strl-1;j>=index;j--)

??{ch=xx[I][strl-1];

??for(k=strl-1;k>0;k--)

??xx[I][k]=xx[I][k-1];

??xx[I][0]=ch;}

??}

??}

http://m.clearvueentertainment.com/

【全國(guó)計(jì)算機(jī)等級(jí)考試三級(jí)信息、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)上機(jī)編程題15道】相關(guān)文章:

全國(guó)計(jì)算機(jī)等級(jí)考試一級(jí)Photoshop考試大綱09-20

全國(guó)計(jì)算機(jī)等級(jí)考試常見(jiàn)的五大誤區(qū)11-22

全國(guó)計(jì)算機(jī)等級(jí)考試報(bào)名須知:如何上傳照片02-20

計(jì)算機(jī)等級(jí)考試須知03-15

遼寧省全國(guó)英語(yǔ)等級(jí)考試報(bào)考簡(jiǎn)章04-24

12月上海建橋?qū)W院計(jì)算機(jī)等級(jí)考試報(bào)名11-01

計(jì)算機(jī)等級(jí)考試二級(jí)MS試題含答案07-15

三級(jí)安全教育考試試題及答案版04-29

全國(guó)教師信息管理介紹09-11

心理問(wèn)題等級(jí)劃分08-04