全国计算机等级考试三级网络技术南开上机100题2130文档格式.docx
- 文档编号:22665656
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:19.40KB
全国计算机等级考试三级网络技术南开上机100题2130文档格式.docx
《全国计算机等级考试三级网络技术南开上机100题2130文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级网络技术南开上机100题2130文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
OUT17.DAT"
"
w"
);
fprintf(wf,"
fclose(wf);
注:
本题在无忧或捷成模拟盘中,需定义doublex0,x1;
才能通过,据实际上机抽到该题的考生反映,实际上机需按上面解法的定义方能通过,特此说明,供参考。
****************************************************************************
★题目22(平方根问题)
请编写函数countValue(),它的功能是:
求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。
例如若n为1000时,函数值应为:
s=153.909064。
部分源程序存在文件prog1.c中。
请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。
doublecountValue(intn)
{inti;
doubles=0.0;
for(i=1;
i<
n;
i++)
if(i%21==0)s+=i;
returnsqrt(s);
自然数之和的平方根=%f\n"
countValue(1000));
progReadWrite();
progReadWrite()
FILE*fp,*wf;
inti,n;
floats;
fp=fopen("
in.dat"
r"
if(fp==NULL){
printf("
数据文件in.dat不存在!
"
return;
out.dat"
for(i=0;
10;
i++){
fscanf(fp,"
%d\n"
&
n);
s=countValue(n);
fprintf(wf,"
s);
fclose(fp);
*********************************************************************
题目23(实数运算题)
已知在文件in.dat中存有N个(个数<
200)实数,函数readdat()读取这N个实数并存入数组xx中。
请编制函数calvalue(),其功能要求:
1、求出这N个实数的平均值aver;
2、分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。
注意:
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
#defineMAXNUM200
floatxx[MAXNUM];
intN=0;
/*文件IN.DAT中共有多少个实数*/
doubleaver=0.0;
/*平均值*/
doublesumint=0.0;
/*整数部分之和*/
doublesumdec=0.0;
/*小数部分之和*/
intReadDat(void);
voidWriteDat(void);
voidCalValue(void)
{inti;
for(i=0;
N;
{sumint+=(long)xx[i];
sumdec+=xx[i]-(long)xx[i];
aver+=xx[i];
aver/=N;
voidmain()
{inti;
clrscr();
for(i=0;
i<
MAXNUM;
i++)xx[i]=0;
if(ReadDat()){
数据文件IN.DAT不能打开!
\007\n"
);
return;
Calvalue();
文件IN.DAT中共有实数=%d个\n"
N);
平均值=%.2lf\n"
aver);
整数部分之和=%.2lf\n"
sumint);
小数部分之和=%.2lf\n"
sumdec);
WriteDat();
system("
pause"
intReadDat(void)
FILE*fp;
inti=0;
if((fp=fopen("
"
))==NULL)return1;
while(!
feof(fp)){
fscanf(fp,"
%d,"
&
xx[i++]);
fclose(fp);
return0;
voidWriteDat(void)
fp=fopen("
OUT.DAT"
fprintf(fp,"
%.2lf\n%.2lf\n%.2lf\n"
aver,sumint,sumdec);
题目24(完全平方数问题)
在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;
它既是完全平方数,又是两位数字相同,例如144、676等。
请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。
最后调用函数writeDat()把结果输出到文件out.dat中。
请勿改动主函数main()和写函数writeDat()的内容。
intjsValue(intbb[])
{inti,j,k=0;
inthun,ten,data;
for(i=10;
32;
{j=I*I;
hum=j/100;
ten=j%100/10;
data=j%10;
if(hum==ten||hum==data||ten==data)
bb[k++]=j;
returnk;
intb[20],num;
num=jsValue(b);
writeDat(num,b);
writeDat(intnum,intb[])
FILE*out;
inti;
out=fopen("
num);
fprintf(out,"
num;
i++){printf("
b[i]);
fclose(out);
*****************************************************************
★题目25(回文数问题)
下列程序的功能是:
寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。
所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。
满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。
请编制函数intsvalue(longm)实现此功能,如果是回文数,则函数返回1,反之则返回0。
最后把结果输出到文件out.dat中。
请勿改动主函数main()的内容。
intjsValue(longn)
{inti,strl,half;
charxy[20];
ltoa(n,xy,10);
/*注意这里不能使用itoa()函数,因为n是long型的*/
strl=strlen(xy);
half=strl/2;
half;
if(xy[i]!
=xy[--strl])break;
if(i>
=half)return1;
elsereturn0;
{longm;
for(m=11;
m<
1000;
m++)
{if(jsValue(m)&
&
jsValue(m*m)&
jsValue(m*m*m))
{printf("
m=%4ld,m*m=%6ld,m*m*m=%8ld\n"
m,m*m,m*m*m);
fprintf(out,"
}
或者下面的解法:
{longints=0,k;
k=n;
while(k)
{s=s*10+k%10;
k/=10;
if(s==n)return1;
if(s!
=n)return0;
输出结果为:
m=11,m*m=
121,m*m*m=
1331
m=101,m*m=10201,m*m*m=1030301
m=111,m*m=12321
★☆题目26(整数统计运算题)
已知在文件IN.DAT中存有若干个(个数<
200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
1、求出这文件中共有多少个正整数totNum;
2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
intxx[MAXNUM];
inttotNum=0;
/*文件IN.DAT中共有多少个正整数*/
inttotCnt=0;
/*符合条件的正整数的个数*/
doubletotPjz=0.0;
/*平均值*/
intReadDat(void);
voidwriteDat(void);
voidCalValue(void)
{inti,data;
MAXNUM;
if(xx[i]>
0)
{totNum++;
data=xx[i]>
>
1;
if(data%2==0){totCnt++;
totPjz+=xx[i];
}
if(totCnt==0)totPjz=0;
elsetotPjz/=totCnt;
i++)xx[i]=0;
if(ReadDat()){
CalValue();
文件IN.DAT中共有正整数=%d个\n"
totNum);
符合条件的正整数的个数=%d个\n"
totCnt);
平均值=%.2f\n"
totPjz);
FILE*fp;
inti=0;
if((fp=fopen("
IN.DAT"
))==NULL)return1;
feof(fp)){
xx[i++]);
return0;
voidwriteDat(void)
fprintf(fp,"
%d\n%d\n%6.2f\n"
totNum,totCnt,totPjz);
********************************************************************
题目27(整数各位数字运算题)
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。
例如:
9123,9-1-2-3>
0,则该数满足条件存入数组b中,且个数cnt=cnt+1。
9812,9-8-1-2>
0,则该数不满足条件忽略。
程序中已定义数组:
a[300],b[300],已定义变量:
cnt
inta[300],b[300],cnt=0;
jsValue()
{inti,j,qw,bw,sw,gw;
300;
{qw=a[i]/1000;
bw=a[i]/100%10;
sw=a[i]%100/10;
gw=a[i]%10;
if(qw-bw-sw-gw>
0)b[cnt++]=a[i];
cnt-1;
for(j=i+1;
j<
cnt;
j++)
if(b[i]>
b[j]){qw=b[i];
b[i]=b[j];
b[j]=qw;
readDat();
jsValue();
cnt=%d\n"
cnt);
i++)printf("
b[%d]=%d\n"
i,b[i]);
readDat()
i++)fscanf(fp,"
a[i]);
i++)fprintf(fp,"
************************************************************************
★☆题目28(整数各位打散组合运算题)
已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>
=0且ab-cd<
=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
a[200],b[200],已定义变量:
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#defineMAX200
inta[MAX],b[MAX],cnt=0;
voidjsVal()
{inti,j,thou,hun,ten,data,ab,cd;
200;
{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>
cd>
=10)
b[cnt++]=a[i];
for(j=i+1;
if(b[i]<
b[j]){thou=b[i];
b[j]=thou;
voidreadDat()
inti;
MAX;
i++)fscanf(fp,"
%d"
a[i]);
readDat();
jsVal();
满足条件的数=%d\n"
cnt);
cnt;
i++)printf("
%d"
b[i]);
\n"
writeDat();
i++)fprintf(fp,"
*************************************************************************
☆题目29(整数各位打散组合运算题)
=10且ab-cd<
=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
{inti,j,qw,bw,sw,gw,ab,cd;
MAX;
{qw=a[i]/1000;
ab=qw*10+sw;
cd=gw*10+bw;
if(ab-cd>
ab-cd<
=20&
ab%2==0&
cd%2==0&
qw!
gw!
=0)
b[j]){qw=b[i];
b[i]=b[j];
b[j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 三级 网络技术 南开 上机 100 2130
![提示](https://static.bdocx.com/images/bang_tan.gif)