全国计算机等级考试三级网络技术上机考试分类题型新思路.docx
《全国计算机等级考试三级网络技术上机考试分类题型新思路.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级网络技术上机考试分类题型新思路.docx(33页珍藏版)》请在冰豆网上搜索。
![全国计算机等级考试三级网络技术上机考试分类题型新思路.docx](https://file1.bdocx.com/fileroot1/2022-12/11/51cd32ad-f37d-4da1-a939-eebebebdb036/51cd32ad-f37d-4da1-a939-eebebebdb0361.gif)
全国计算机等级考试三级网络技术上机考试分类题型新思路
全国计算机等级考试三级网络技术上机考试南开100题分类的序号和题型
素数:
【1】将大于整数m且紧靠m的k个素数存入数组xx传回
intcnt=0;
while(cnt{
m++;
if(isP(m))
xx[cnt++]=m;
}
【2】300个四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1以及不满足此条件的四位数平均值pjz2
inti;
for(i=0;i<300;i++)
{
if(isP(a[i]))
{
pjz1+=a[i];
cnt++;
}
elsepjz2+=a[i];
}
pjz1/=cnt;
pjz2/=(300-cnt);
【3】找出所有100以内满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数以及这些I之和
inti;
for(i=3;i<90;i++)
{
if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10))
{
cnt++;
sum+=i;
}
}
【4】求出300个四位数是素数的个数,并从小到大进行排序
inti,j,ab;
for(i=0;i<300;i++)
{
if(isP(a[i]))
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;j{
if(b[i]>b[j])
{
ab=b[j];
b[j]=b[i];
b[i]=ab;
}
}
【5】选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数
inti,bw,sw,gw;
for(i=100;i<1000;i++)
{
gw=i%10;
bw=i/100;
sw=(i-bw*100)/10;
if((gw+sw)%10==bw&&isP(i))
{
cnt++;
sum+=i;
}
}
【6】计算500-800内素数的个数,按从大到小顺序计算其间隔加、减之和
inti,j=-1;
for(i=800;i>500;i--)
{
if(isPrime(i))
{
cnt++;
j*=-1;
sum+=j*i;
}
}
【7-8】
按每个数的后三位的大小进行升序排列,如果后三位的数值相等,按原先的数值进行降序排列,取前10个。
inti,j,ab;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++)
{
if((aa[i]%1000)>(aa[j]%1000))
{
ab=aa[j];
aa[j]=aa[i];
aa[i]=ab;
}
elseif((aa[i]%1000)==(aa[j]%1000))
{
if(aa[i]{
ab=aa[j];
aa[j]=aa[i];
aa[i]=ab;
}
}
}
for(i=0;i<10;i++)
bb[i]=aa[i];
按每个数的后三位的大小进行降序排列,如果后三位的数值相等,按原先的数值进行升序排列,取前10个。
【9-18】(MAX定义了就写i200个四位数,千位<=百位<=十位<=个位,四位数是偶数,个数cnt,从小到大的顺序存入数组b中
inti,j,qw,bw,sw,gw,ab;
for(i=0;i{
qw=a[i]/1000;
gw=a[i]%10;
bw=(a[i]-qw*1000)/100;
sw=(a[i]-qw*1000-bw*100)/10;
if((qw<=bw&&bw<=sw&&sw<=gw)&&(a[i]%2==0))
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j])
{
ab=b[j];
b[j]=b[i];
b[i]=ab;
}
200个四位数,千位>=百位>=十位>=个位,四位数是奇数,个数cnt,从小到大的顺序存入数组b中
if((qw>=bw&&bw>=sw&&sw>=gw)&&(a[i]%2))
200个四位数,千位-百位-十位-个位>=0,四位数是奇数,个数cnt,从小到大的顺序存入数组b中
if((qw-bw-sw-gw>=0)&&(a[i]%2))
200个四位数,千位-百位-十位-个位>=0,四位数是偶数,个数cnt,从小到大的顺序存入数组b中
if((qw-bw-sw-gw>=0)&&(a[i]%2==0))
200个四位数,千位+个位=百位+十位,四位数是奇数,个数cnt,从小到大的顺序存入数组b中
if((qw+gw-bw-sw==0)&&(a[i]%2))
200个四位数,千位+十位=百位+个位,四位数是偶数,个数cnt,从小到大的顺序存入数组b中
if((qw+sw-bw-gw==0)&&(a[i]%2==0))
200个四位数,千位-百位-十位-个位>0,个数cnt,从小到大的顺序存入数组b中
if(qw-bw-sw-gw>0)
200个四位数,个位-千位-百位-十位>0,个数cnt,从小到大的顺序存入数组b中
if(gw-qw-bw-sw>0)
200个四位数,千位+百位=十位+个位,个数cnt,从小到大的顺序存入数组b中
if(qw+bw-sw-gw==0)
200个四位数,千位+个位=十位+百位,个数cnt,从小到大的顺序存入数组b中
if(qw+gw-sw-bw==0)
【19】
1000-5000以内,千位+百位=十位+个位,且千位+百位=(个位-千位)的10倍.计算并输出这些四位自然数的个数cnt以及这些数的和sum
inti,qw,bw,sw,gw;
for(i=1000;i<5000;i++)
{
qw=i/1000;
gw=i%10;
bw=(i-qw*1000)/100;
sw=(i-qw*1000-bw*100)/10;
if(qw+bw-sw-gw==0&&(qw+bw)==(gw-qw)*10)
{
cnt++;
sum+=i;
}
}
【20-23】
300个四位数,个位-千位-百位-十位->0个数cnt,满足此条件数平均值pjz1,不满足此条件数平均值pjz2
inti,qw,bw,sw,gw;
for(i=0;i<300;i++)
{
qw=a[i]/1000;
gw=a[i]%10;
bw=(a[i]-qw*1000)/100;
sw=(a[i]-qw*1000-bw*100)/10;
if(gw-qw-bw-sw>0)
{
pjz1+=a[i];
cnt++;
}
elsepjz2+=a[i];
}
pjz1/=cnt;
pjz2/=(300-cnt);
300个四位数,千位-百位-十位-个位>0个数cnt,满足此条件数平均值pjz1,不满足此条件数平均值pjz2
if(qw-bw-sw-gw>0)
300个四位数,千位+个位=百位+十位,个数cnt,满足此条件数平均值pjz1,不满足此条件数平均值pjz2
if(qw+gw-bw-sw==0)
300个四位数,千位+百位=十位+十位,个数cnt,满足此条件数平均值pjz1,不满足此条件数平均值pjz2
if(qw+bw-sw-gw==0)
【24-31】
整数各位分解组合运算:
(200个四位数重组为2个两位数,十位数字不为0
注意:
newV1、newV2的组成方式,至少有一个是偶数用或运算。
一个奇数一个偶数要分两种情况。
)
如果新组成的ab-cd>=0且ab-cd<=10且两个数均是奇数,十位数字均不为零,满足条件的四位数按从大到小的顺序存入数组b中,计算满足条件的四位数的个数cnt
inti,j,qw,bw,sw,gw,newV1,newV2;
for(i=0;i{
qw=a[i]/1000;
gw=a[i]%10;
bw=(a[i]-qw*1000)/100;
sw=(a[i]-qw*1000-bw*100)/10;
newV1=qw*10+sw;
newV2=gw*10+bw;
if(qw&&gw&&(newV1-newV2>=0&&newV1-newV2<=10)&&(newV1%2)&&(newV2%2))
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
{
newV1=b[j];
b[j]=b[i];
b[i]=newV1;
}
千位+十位组合,素数且新数十位数字均不为零,从大到小的顺序存入数组b中,个数cnt
if(qw&&gw&&isprime(newV1)&&isprime(newV2))
两个十位数abif(qw&&gw&&(newV1两个十位数均是偶数并且至少有一个数能被9整除,同时两个新数的十位数字均不为零,按从大到小的顺序存入数组b中,个数cnt
if(qw&&gw&&(newV1%2==0)&&(newV2%2==0)&&(newV1%9==0||newV2%9==0))
组成的两个十位数必须是一个奇数,另一个为偶数并且至少有一个数能被17整除,新数的十位数字均不为零,按从大到小的顺序存入数组b中,计算cnt
if(qw&&gw&&(((newV1%2==0)&&(newV2%2)&&(newV1%17==0||newV2%17==0))||((newV1%2)&&(newV2%2==0)&&(newV1%17==0||newV2%17==0))))
组成的两个十位数均是奇数并且至少有一个数能被5整除,按从大到小的顺序存入数组b中,个数cnt
if(qw&&gw&&(newV1%2)&&(newV2%2)&&((newV1%5)==0||(newV2%5)==0))
组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,按从大到小的顺序存入数组b中,个数cnt
if(qw&&gw&&(newV1-newV2>=10&&newV1-newV2<=20)&&(newV1%2==0)&&(newV2%2==0))
ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,按从大到小的顺序存入数组b中,计算个数cnt
if(qw&&gw&&(newV1>newV2)&&(newV1%2==0&&newV1%5==0)&&(newV2%2))
【32-33】
200个四位数,各位上数字均是偶数,个数cnt,按从大到小的顺序存入数组b
inti,j,qw,bw,sw,gw,ab;
for(i=0;i{
qw=a[i]/1000;
gw=a[i]%10;
bw=(a[i]-qw*1000)/100;
sw=(a[i]-qw*1000-bw*100)/10;
if((qw%2==0)&&(bw%2==0)&&(sw%2==0)&&(gw%2==0))
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
{
ab=b[j];
b[j]=b[i];
b[i]=ab;
}
200个四位数,各位上数字均是奇数,个数cnt,按从大到小的顺序存入数组b
if((qw%2)&&(bw%2)&&(sw%2)&&(gw%2))
【34】完全平方数:
100至999中寻找符合条件的整数并依次从小到大存入数组中,它既是完全平方数,又是两位数字相同
intn,k,a,b,c,cnt=0;
for(k=10;;k++)
{
n=k*k;
if(n<100)continue;
if(n>999)break;
c=n%10;
a=n/100;
b=n%100/10;
if((a-b)*(b-c)*(c-a)==0)
{
printf("N=%d=%d*%d\n",n,k,k);
bb[cnt++]=n;
}
}
returncnt;
【35-38】
相邻数大小筛选排序(200个四位数比较后5个数,i=0;i连续小于后五个数且该数是偶数,从小到大的顺序,个数cnt
inti,j,ab;
for(i=0;i{
if((a[i]%2==0)&&a[i]b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j])
{
ab=b[j];
b[j]=b[i];
b[i]=ab;
}
大于前连续5个数,该数是偶数,从大到小排序
for(i=5;ia[i-1]&&a[i]>a[i-2]&&a[i]>a[i-3]&&a[i]>a[i-4]&&a[i]>a[i-5])
大于后连续5个数,该数是奇数,从小到大排序
for(i=0;ia[i+1]&&a[i]>a[i+2]&&a[i]>a[i+3]&&a[i]>a[i+4]&&a[i]>a[i+5])
大于前连续5个数,该数是奇数,且该数必须能被7整除,从大到小排序
for(i=5;ia[i-1]&&a[i]>a[i-2]&&a[i]>a[i-3]&&a[i]>a[i-4]&&a[i]>a[i-5]&&(a[i]%7==0))
级数运算:
【39】Sn=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中
inta1=1,a2=1,s=2,n=1,m=10,i,t;
for(i=0;i<3;i++)
{
m*=10;
while(s{
t=a1+2*a2;
s=s+t;
n=n+1;
a1=a2;
a2=t;
}
printf("m=%d,n=%d\n",m,n);
b[i]=n;
}
Fibonacci数列:
【40】求Fibonacci数列中大于t的最小的一个数while(fn<=t){...}returnfn;
intf0=0,f1=1,f2=1;
while(f2{
f0=f1;
f1=f2;
f2=f0+f1;
}
returnf2;
迭代方法求方程:
Xn+1=cos(Xn)while(fabs(x0-x1)>=0.000001);
【41】
doublex0,x1=0.0;
while
(1)
{
x0=x1;
x1=cos(x0);
if(fabs(x0-x1)<0.000001)
break;
}
returnx1;
【42-43】(N定义了,用上i200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组下标为偶数的元素值的算术平均值pj
inti;cnt1=0;cnt2=0;pj=0;
for(i=0;i{
if(xx[i]%2)cnt1++;
elsecnt2++;
if(i%2==0)
pj+=xx[i];
}
pj/=100.0;
200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组下标为奇数的元素值的算术平均值pj
if(i%2)
整数统计运算:
【44-45】求出正整数totNum个数以及这些数右移1位后产生的新数是偶数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz
inti,j;
longhe=0;
for(i=0;iif(xx[i])
totNum++;
for(i=0;i{
j=(xx[i]>>1);
if(j%2==0)
{
totCnt++;
he+=xx[i];
}
}
totPjz=(double)he/totCnt;
求出正整数totNum个数以及这些数右移1位后产生的新数是奇数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz
if(j%2)
【46-47】
求出正整数totNum个数以及这些数各位数字之和是偶数的数的个数totCnt和满足此条件的这些数的算术平均值totPjz
inti,j;
longhe=0;
charnum[5];
for(i=0;i<5;i++)
num[i]=0;
for(i=0;iif(xx[i])
totNum++;
for(i=0;i{
sprintf(num,"%04d",xx[i]);
j=num[0]-48+num[1]-48+num[2]-48+num[3]-48;
if(j%2==0)
{
totCnt++;
he+=xx[i];
}
}
totPjz=(double)he/totCnt;
求出正整数totNum个数以及这些数各位数字之和是奇数的数的个数totCnt和满足此条件的这些数的算术平均值totPjz
if(j%2)
方差运算:
【48-50】
计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值
inti,odd=0;
for(i=0;iif(xx[i]%2)
{
odd++;
ave1+=xx[i];
}
else
{
even++;
ave2+=xx[i];
}
ave1/=1.0*odd;
ave2/=1.0*even;
for(i=0;i{
if(xx[i]%2==0)
totfc+=(xx[i]-ave2)*(xx[i]-ave2);
}
totfc/=1.0*even;
计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值
if(xx[i]%2)
totfc+=(xx[i]-ave1)*(xx[i]-ave1);
计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值
inti;
for(i=0;i{
if(xx[i]%2)
odd++;
else
even++;
aver+=xx[i];
}
aver/=1000.0;
for(i=0;itotfc+=(xx[i]-aver)*(xx[i]-aver);
totfc/=1000.0;
平方根:
【51】求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s
inti;
doublesum=0.0;
for(i=7;iif(i%3==0&&i%7==0)
sum+=1.0*i;
sum=sqrt(sum);
returnsum;
【52】求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中
inti;
*n=0;
for(i=7;i<1000;i++)
if((i%7==0||i%11==0)&&(i%77!
=0))
a[(*n)++]=i;
【53】200个整数,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj
inti,cnt1=0;
max=0;cnt=0;pj=0.0;
for(i=0;i{
if((xx[i]%3)==0||(xx[i]%7)==0)
{
pj+=xx[i];
cnt1++;
}
if(xx[i]>max)
{
max=xx[i];
cnt=1;
}
elseif(xx[i]==max)
cnt++;
}
pj/=(float)cnt1;
【54-56】
选票:
内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选无效
inti,j;
for(i=0;i<100;i++)
{
if(strcmp(xx[i],"1111111111"))
{
for(j=0;j<10;j++)
if(xx[i][j]=='1')
yy[j]++;
}
}
内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时无效
inti,j,cnt;
for(i=0;i<100;i++)
{
cnt=0;
for(j=0;j<10;j++)
if(xx[i][j]=='1')
cnt++;
if(cnt<=5)
for(j=0;j<10;j++)
if(xx[i][j]=='1')
yy[j]++;
}
内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时无效
if(cnt>5)
【57-62】
结构体操作:
100个销售记录,strcmp
按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列
inti,j,len;
PROtmp;
len=sizeof(tmp);
memset((PRO*)&tmp,0,len);
for(i=0;i<100;i++)
for(j=i+1;j<100;j++)
{
if(strcmp(sell[i].dm,sell[j].dm)<0||(sell[i].je{
memcpy((PRO*)&tmp,(PRO*)&sell[i],len);
memcpy((PRO*)&sell[i],(PRO*)&sell[j],len);
memcpy((PRO*)&sell[j],(PRO*)&tmp,len);
}
}
按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列
if(strcmp(sell[i].dm,sell[j].dm)>0||(sell[i].je>s