全国计算机等级考试三级网络技术南开上机100题3140.docx

上传人:b****6 文档编号:6682465 上传时间:2023-01-08 格式:DOCX 页数:22 大小:20.55KB
下载 相关 举报
全国计算机等级考试三级网络技术南开上机100题3140.docx_第1页
第1页 / 共22页
全国计算机等级考试三级网络技术南开上机100题3140.docx_第2页
第2页 / 共22页
全国计算机等级考试三级网络技术南开上机100题3140.docx_第3页
第3页 / 共22页
全国计算机等级考试三级网络技术南开上机100题3140.docx_第4页
第4页 / 共22页
全国计算机等级考试三级网络技术南开上机100题3140.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试三级网络技术南开上机100题3140.docx

《全国计算机等级考试三级网络技术南开上机100题3140.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级网络技术南开上机100题3140.docx(22页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试三级网络技术南开上机100题3140.docx

全国计算机等级考试三级网络技术南开上机100题3140

★☆题目31(结构体运算题)

已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

其中:

金额=单价*数量计算得出。

函数ReadDat()是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:

按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。

    部分源程序存在文件prog1.c中。

  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include

#include

#include

#include

#include

#defineMAX100

typedefstruct{

chardm[5];/*产品代码*/

charmc[11];/*产品名称*/

intdj;       /*单价*/

intsl;       /*数量*/

longje;      /*金额*/

}PRO;

PROsell[MAX];

voidReadDat();

voidWriteDat();

voidSortDat()

{inti,j;

PROxy;

for(i=0;i<99;i++)

for(j=i+1;j<100;j++)     if(sell[i].je

        {xy=sell[i];sell[i]=sell[j];sell[j]=xy;}

}

voidmain()

{

memset(sell,0,sizeof(sell));

ReadDat();

SortDat();

WriteDat();

}

voidReadDat()

{

FILE*fp;

charstr[80],ch[11];

inti;

fp=fopen("IN.DAT","r");

for(i=0;i

    fgets(str,80,fp);

    memcpy(sell[i].dm,str,4);

    memcpy(sell[i].mc,str+4,10);

    memcpy(ch,str+14,4);ch[4]=0;

    sell[i].dj=atoi(ch);

    memcpy(ch,str+18,5);ch[5]=0;

    sell[i].sl=atoi(ch);

    sell[i].je=(long)sell[i].dj*sell[i].sl;

}

fclose(fp);

}

voidWriteDat(void)

{

FILE*fp;

inti;

fp=fopen("OUT4.DAT","w");

for(i=0;i

printf("%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);

fprintf(fp,"%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);

}

fclose(fp);

}

**************************************************************************

☆题目32(结构体运算题)

已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

其中:

金额=单价*数量计算得出。

函数ReadDat()是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:

按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中

,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。

    部分源程序存在文件prog1.c中。

  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include

#include

#include

#include

#include

#defineMAX100

typedefstruct{

chardm[5];/*产品代码*/

charmc[11];/*产品名称*/

intdj;       /*单价*/

intsl;       /*数量*/

longje;      /*金额*/

}PRO;

PROsell[MAX];

voidReadDat();

voidWriteDat();

voidSortDat()

{inti,j;

PROxy;

for(i=0;i<99;i++)

for(j=i+1;j<100;j++)     if(strcmp(sell[i].mc,sell[j].mc)<0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je)

        {xy=sell[i];sell[i]=sell[j];sell[j]=xy;}

}

voidmain()

{

memset(sell,0,sizeof(sell));

ReadDat();

SortDat();

WriteDat();

}

voidReadDat()

{

FILE*fp;

charstr[80],ch[11];

inti;

fp=fopen("IN.DAT","r");

for(i=0;i<100;i++){

    fgets(str,80,fp);

    memcpy(sell[i].dm,str,4);

    memcpy(sell[i].mc,str+4,10);

    memcpy(ch,str+14,4);ch[4]=0;

    sell[i].dj=atoi(ch);

    memcpy(ch,str+18,5);ch[5]=0;

    sell[i].sl=atoi(ch);

    sell[i].je=(long)sell[i].dj*sell[i].sl;

}

fclose(fp);

}

voidWriteDat()

{

FILE*fp;

inti;

fp=fopen("OUT7.DAT","w");

for(i=0;i<100;i++){

printf("%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);

fprintf(fp,"%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);

}

fclose(fp);

}

****************************************************************************

★☆题目33(方差运算题)

请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。

   计算方差的公式如下:

              N              2

     totfc=1/N∑(xx[i]-ave2)

              i=1

    设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。

    原始数据文件存放的格式是:

每行存放10个数,并用逗号隔开。

(每个数均大于0且小于等于2000)

    部分源程序存在文件prog1.c中。

    请勿改动主函数main()和输出数据函数writeDat()的内容。

#include

#include

#include

#defineMAX1000

intxx[MAX],odd=0,even=0;

doubleave1=0.0,ave2=0.0,totfc=0.0;

voidWriteDat(void);

intReadDat(void)

{inti;

FILE*fp;

if((fp=fopen("IN.DAT","r"))==NULL)return1;

/*********编制函数ReadDat()的部分************/

for(i=0;i

{fscanf(fp,"%d,",&xx[i]);

if((i+1)%10==0)

fscanf(fp,"\n");}

/*******************************************/

fclose(fp);

return0;

}

voidCompute(void)

{inti,yy[MAX];

for(i=0;i

      yy[i]=0;

for(i=0;i

      if(xx[i]%2==0){yy[even++]=xx[i];ave2+=xx[i];}

      else{odd++;    ave1+=xx[i];}

if(odd==0)ave1=0;

elseave1/=odd;

if(even==0)ave2=0;

elseave2/=even;

for(i=0;i

     totfc+=(yy[i]-ave2)*(yy[i]-ave2)/even;

}

voidmain()

{

inti;

for(i=0;i

if(ReadDat()){

    printf("数据文件IN.DAT不能打开!

\007\n");

    return;

}

Compute();

printf("OVEN=%d\nAVE1=%f\nAVER2=%f\nTOTFC=%f\n",even,ave1,ave2,totfc);

WriteDat();

}

voidWriteDat(void)

{

FILE*fp;

inti;

fp=fopen("OUT.DAT","w");

fprintf(fp,"%d\n%f\n%f\n%f\n",even,ave1,ave2,totfc);

fclose(fp);

}

*************************************************************************

题目34(素数题)

无忧id102题提供了求素数isPrime()函数

程序prog1.c的功能是:

选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。

计算并输出上述这些素数的个数cnt以及这些素数值的和sum。

请考生编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件bc10.out中。

    注意:

部分源程序存放在文件prog1.c中。

    请勿改动主函数main()和输出数据函数writeDAT()的内容。

#include

intcnt,sum;

intisPrime(intm)

{

inti;

for(i=2;i

    if(m%i==0)return0;

return1;

}

voidcountValue()

{inti,j,bw,sw,gw;

for(i=100;i<1000;i++)

    {bw=i/100;sw=i%100/10;gw=i%10;

            if(isPrime(i)&&(gw+sw)%10==bw){cnt++;sum+=i;}

    }

}

voidmain()

{

cnt=sum=0;

countValue();

printf("素数的个数=%d\n",cnt);

printf("满足条件素数值的和=%d",sum);

writeDAT();

}

writeDAT()

{

FILE*fp;

fp=fopen("bc10.out","w");

fprintf(fp,"%d\n%d\n",cnt,sum);

fclose(fp);

}

***************************************************************************

★☆题目35(级数运算题)

某级数的前两项A1=1,A2=1,以后各项具有如下关系:

     An=An-2+2An-1(注:

n-2与n-1为下标)

    下列程序prog1.c的功能是:

要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:

Sn=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。

    请勿改动主函数main()和写函数writeDat()的内容。

#include

intb[3];

jsValue()

{inta1=1,a2=1,a12,sn,k=2;

sn=a1+a2;

while

(1)

{a12=a1+2*a2;

    if(sn<100&&sn+a12>=100)b[0]=k;

    if(sn<1000&&sn+a12>=1000)b[1]=k;

    if(sn<10000&&sn+a12>=10000){b[2]=k;break;}

    sn=sn+a12;

    a1=a2;a2=a12;

    k++;

}

}

main()

{

jsValue();

printf("M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n",b[0],b[1],b[2]);

writeDat();

}

writeDat()

{

FILE*fp;

fp=fopen("out.dat","w");

printf("%d\n%d\n%d\n",b[0],b[1],b[2]);

fprintf(fp,"%d\n%d\n%d\n",b[0],b[1],b[2]);

fclose(fp);

}

运行结果为:

M=100,n=6

M=1000,n=9

M=10000,n=11

★题目36(字符替换题)

函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件pS6.DAT中。

  替代关系:

f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。

  部分源程序存在文件prog1.c中。

原始数据文件存放的格式是:

每行的宽度均小于80个字符。

  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include

#include

#include

#include

unsignedcharxx[50][80];

intmaxline=0;/*文章的总行数*/

intReadDat(void);

voidWriteDat(void);

voidencryptChar()

{inti,j;

for(i=0;i

    for(j=0;j

     if(xx[i][j]*11%256<=32||xx[i][j]*11%256>='0'&&xx[i][j]*11%256<='9')continue;

     elsexx[i][j]=xx[i][j]*11%256;

}

voidmain()

{

clrscr();

if(ReadDat()){

printf("数据文件ENG.IN不能打开!

\n\007");

return;

}

encryptChar();

WriteDat();

}

intReadDat(void)

{

FILE*fp;

inti=0;

unsignedchar*p;

if((fp=fopen("eng.in","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;

fp=fopen("ps6.dat","w");

for(i=0;i

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

*************************************************************************

题目37(字符替换题)

函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS7.DAT中。

  替代关系:

f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

  部分源程序存在文件prog1.c中。

原始数据文件存放的格式是:

每行的宽度均小于80个字符。

  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include

#include

#include

#include

unsignedcharxx[50][80];

intmaxline=0;/*文章的总行数*/

intReadDat(void);

voidWriteDat(void);

voidencryptChar()

{inti,j;

for(i=0;i

     for(j=0;j

       if(xx[i][j]*11%256<=32||xx[i][j]>='A'&&xx[i][j]<='Z')continue;

       elsexx[i][j]=xx[i][j]*11%256;

}

voidmain()

{

clrscr();

if(ReadDat()){

printf("数据文件ENG.IN不能打开!

\n\007");

return;

}

encryptChar();

WriteDat();

}

intReadDat(void)

{

FILE*fp;

inti=0;

unsignedchar*p;

if((fp=fopen("eng.in","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;

fp=fopen("ps7.dat","w");

for(i=0;i

     printf("%s\n",xx[i]);

     fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

*****************************************************************************

题目38(结构体运算题)

已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。

其中:

金额=单价*数量计算得出。

函数ReadDat()是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:

按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。

    部分源程序存在文件prog1.c中。

  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

#include

#incl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1