全国计算机等级考试三级网络技术南开上机100题3140Word文档下载推荐.docx
- 文档编号:19699489
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:22
- 大小:20.55KB
全国计算机等级考试三级网络技术南开上机100题3140Word文档下载推荐.docx
《全国计算机等级考试三级网络技术南开上机100题3140Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级网络技术南开上机100题3140Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
}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<
sell[j].je||sell[i].je==sell[j].je&
&
strcmp(sell[i].dm,sell[j].dm)<
0)
{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"
);
MAX;
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)
OUT4.DAT"
w"
printf("
%s%s%4d%5d%5d\n"
sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fprintf(fp,"
**************************************************************************
☆题目32(结构体运算题)
按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中
,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。
if(strcmp(sell[i].mc,sell[j].mc)<
0||strcmp(sell[i].mc,sell[j].mc)==0&
sell[i].je>
sell[j].je)
voidWriteDat()
OUT7.DAT"
****************************************************************************
★☆题目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)
请勿改动主函数main()和输出数据函数writeDat()的内容。
#defineMAX1000
intxx[MAX],odd=0,even=0;
doubleave1=0.0,ave2=0.0,totfc=0.0;
voidWriteDat(void);
intReadDat(void)
{inti;
if((fp=fopen("
))==NULL)return1;
/*********编制函数ReadDat()的部分************/
{fscanf(fp,"
%d,"
&
xx[i]);
if((i+1)%10==0)
fscanf(fp,"
\n"
}
/*******************************************/
return0;
voidCompute(void)
{inti,yy[MAX];
yy[i]=0;
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;
even;
totfc+=(yy[i]-ave2)*(yy[i]-ave2)/even;
i++)xx[i]=0;
if(ReadDat()){
printf("
数据文件IN.DAT不能打开!
\007\n"
return;
Compute();
OVEN=%d\nAVE1=%f\nAVER2=%f\nTOTFC=%f\n"
even,ave1,ave2,totfc);
OUT.DAT"
%d\n%f\n%f\n%f\n"
*************************************************************************
题目34(素数题)
无忧id102题提供了求素数isPrime()函数
程序prog1.c的功能是:
选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。
计算并输出上述这些素数的个数cnt以及这些素数值的和sum。
请考生编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件bc10.out中。
注意:
部分源程序存放在文件prog1.c中。
请勿改动主函数main()和输出数据函数writeDAT()的内容。
intcnt,sum;
intisPrime(intm)
for(i=2;
m;
if(m%i==0)return0;
return1;
voidcountValue()
{inti,j,bw,sw,gw;
for(i=100;
1000;
{bw=i/100;
sw=i%100/10;
gw=i%10;
if(isPrime(i)&
(gw+sw)%10==bw){cnt++;
sum+=i;
cnt=sum=0;
countValue();
素数的个数=%d\n"
cnt);
满足条件素数值的和=%d"
sum);
writeDAT();
writeDAT()
FILE*fp;
fp=fopen("
bc10.out"
"
);
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+1>
=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。
请勿改动主函数main()和写函数writeDat()的内容。
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;
1000&
=1000)b[1]=k;
10000&
=10000){b[2]=k;
break;
sn=sn+a12;
a1=a2;
a2=a12;
k++;
main()
jsValue();
M=100,n=%d\nM=1000,n=%d\nM=10000,n=%d\n"
b[0],b[1],b[2]);
writeDat();
writeDat()
out.dat"
%d\n%d\n%d\n"
运行结果为:
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个字符。
ctype.h>
unsignedcharxx[50][80];
intmaxline=0;
/*文章的总行数*/
intReadDat(void);
voidencryptChar()
{inti,j;
maxline;
for(j=0;
strlen(xx[i]);
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;
clrscr();
数据文件ENG.IN不能打开!
\n\007"
return;
encryptChar();
inti=0;
unsignedchar*p;
eng.in"
while(fgets(xx[i],80,fp)!
=NULL){
p=strchr(xx[i],'
\n'
if(p)*p=0;
i++;
maxline=i;
ps6.dat"
%s\n"
xx[i]);
题目37(字符替换题)
请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS7.DAT中。
f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
=32||xx[i][j]>
A'
xx[i][j]<
Z'
ps7.dat"
fprintf(fp,"
*****************************************************************************
题目38(结构体运算题)
按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。
#incl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 三级 网络技术 南开 上机 100 3140