三级网络技术上机考题全已整理好可直接使用.docx
《三级网络技术上机考题全已整理好可直接使用.docx》由会员分享,可在线阅读,更多相关《三级网络技术上机考题全已整理好可直接使用.docx(53页珍藏版)》请在冰豆网上搜索。
三级网络技术上机考题全已整理好可直接使用
已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
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)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].mc,sell[j].mc)==0)
if(sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
,其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,
inti,j;
PROxy;
for(i=0;ifor(j=i+1;j{if(strcmp(sell[i].mc,sell[j].mc)<0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].mc,sell[j].mc)==0)
if(sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
功能要求:
按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,。
inti,j;
PROxy;
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;}
elseif(strcmp(sell[i].dm,sell[j].dm)==0)
if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,
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)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].mc,sell[j].mc)==0)
if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
其功能要求:
按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,
voidSortDat()
{
inti,j;
PROxy;
for(i=0;ifor(j=i+1;j{if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)
if(strcmp(sell[i].dm,sell[j].dm)>0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}}
其功能要求:
按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,
voidSortDat()
{inti,j;
PROxy;
for(i=0;ifor(j=i+1;j{if(strcmp(sell[i].dm,sell[j].dm)>0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].dm,sell[j].dm)==0)
if(sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}}
其功能要求:
按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,
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;}
elseif(sell[i].je==sell[j].je)
if(strcmp(sell[i].dm,sell[j].dm)<0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
}其功能要求:
按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列
voidSortDat()
{inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{if(sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)
if(strcmp(sell[i].dm,sell[j].dm)<0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}}
其功能要求:
按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,
voidSortDat()
{inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)
if(strcmp(sell[i].dm,sell[j].dm)>0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}}
已知数据文件IN10.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,
例如:
9123,9-1-2-3>0,则该数满足条件存入数组b,且个数cnt=cnt+1。
9812,9-8-1-2<0,则该数不满足条件,忽略。
jsValue()
{inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou-hun-ten-data>0)
{b[cnt]=a[i];cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}}
,其功能是:
求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,
例如:
6712,6+2=7+1,则该数满足条件存入数组bb中,且个数cnt=cnt+1。
8129,8+9≠1+2,则该数不满足条件,忽略。
voidjsValue()
{inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou+data==hun+ten)
{b[cnt]=a[i];cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}}
其功能是:
求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件。
例如:
1239,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
8129,9-8-1-2<0,则该数不满足条件,忽略。
voidjsValue()
{inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(data-thou-hun-ten>0)
{b[cnt]=a[i];cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]
其功能是:
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT13.DAT文件。
例如:
7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。
8129,8+1≠2+9,则该数不满足条件,忽略。
voidjsValue()
{inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou+hun==data+ten)
{b[cnt]=a[i];cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]
其功能是:
求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到OUT14.DAT文件。
例如:
5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
voidjsValue()
{intj,i,value;
for(i=0;i<300;i++)
if(isP(a[i])){b[cnt]=a[i];cnt++;}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){value=b[i];b[i]=b[j];b[j]=value;}}
其功能是:
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数的平均值pjz1,以及不满足此条件的四位数的平均值pjz2,最后调用写函数writeDat()把结果输出到OUT15.DAT文件。
例如:
9123,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。
jsValue()
{inti,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou-hun-ten-data>0)
{cnt++;pjz1+=a[i];}
else
{n++;pjz2+=a[i];}}
pjz1/=cnt;
pjz2/=n;}
其功能是:
求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT16.DAT文件。
例如:
1239,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
8129,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。
voidjsValue()
{inti,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(data-thou-hun-ten>0)
{cnt++;pjz1+=a[i];}
else
{n++;pjz2+=a[i];}}
pjz1/=cnt;
pjz2/=n;}
其功能是:
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT17.DAT文件。
例如:
7153,7+1=5+3,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
8129,8+1≠2+9,则该数不满足条件,计算平均值pjz2。
voidjsValue()
{inti,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou+hun==ten+data)
{cnt++;pjz1+=a[i];}
else
{n++;pjz2+=a[i];}}
pjz1/=cnt;
pjz2/=n;}
其功能是:
求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2,输出到OUT18.DAT文件中。
例如:
6712,6+2=7+1,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
8129,8+9≠1+2,则该数不满足条件,计算平均值pjz2。
voidjsValue()
{inti,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou+data==hun+ten)
{cnt++;pjz1+=a[i];}
else
{n++;pjz2+=a[i];}}
pjz1/=cnt;
pjz2/=n;}
其功能是:
求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DAT文件中。
例如:
5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,计算平均值pjz2。
voidjsValue()
{inti;
for(i=0;i<300;i++)
if(isP(a[i]))
{pjz1+=a[i];cnt++;}
elsepjz2+=a[i];
pjz1=pjz1/cnt;
pjz2=pjz2/(300-cnt);}
已知数据文件IN20.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT20.DAT文件中。
voidjsVal()
{
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;
ab=10*thou+ten;cd=10*data+hun;
if((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab/10!
=0&&cd/10!
=0)
{b[cnt]=a[i];cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]
其功能是:
把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,
voidjsVal()
{inti,j,gw,sw,bw,qw,temp,ab,cd;
for(i=0;i<200;i++)
{qw=a[i]/1000;
bw=a[i]/100%10;
sw=a[i]/10%10;
gw=a[i]%10;
ab=10*qw+sw;cd=10*gw+bw;
if((ab-cd>=10)&&(ab-cd<=20)&&ab%2==0&&cd%2==0&&ab/10!
=0&&cd/10!
=0)
{b[cnt]=a[i];
cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]
{temp=b[i];
b[i]=b[j];
b[j]=temp;}}
其功能是:
把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字)以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数均是素数,同时两个新数均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
voidjsVal()
{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;
ab=10*thou+ten;cd=10*data+hun;
if(isprime(ab)&&isprime(cd)&&ab!
=0&&cd!
=0)
{b[cnt]=a[i];cnt++;}}
for(i=0;ifor(j=i+1;jif(b[i]
其功能是:
把千位数字和个位数字重新组成一个新的两位数(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的个位数字),以及把十位数字和百位数字组成另一个新的两位数(新两位数的十位数字是原四位数的百位数字,新两位数的个位数字是原四位数的十位数字),如果新组成的两个两位数均是奇数并且两个两位数中至少有一个能被5整除,同时两个新数均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
jsVal()
{inti,tho