计算机三级上机题目与答案.docx
《计算机三级上机题目与答案.docx》由会员分享,可在线阅读,更多相关《计算机三级上机题目与答案.docx(57页珍藏版)》请在冰豆网上搜索。
![计算机三级上机题目与答案.docx](https://file1.bdocx.com/fileroot1/2022-12/14/816fab70-c13f-42c9-bc85-8952df65f4c3/816fab70-c13f-42c9-bc85-8952df65f4c31.gif)
计算机三级上机题目与答案
jsValue
☆题目1
jsValue(intm,intk,intxx[])
将大于整数m且紧靠m的k个素数存入数组xx传回。
intisP(intm)
{
inti;
for(i=2;iif(m%i==0)return0;
return1;
}
voidnum(intm,intk,intxx[])
{ints=0;
for(m=m+1;k>0;m++)
if(isP(m)){xx[s++]=m;k--;}
}
*************************************************
★题目20(Fibonacci数列题)
jsValue
求Fibonacci数列中大于t的最小的一个数
intjsValue(intt)
{intf0=0,f1=1,fn;
fn=f0+f1;
while(fn<=t)
{f0=f1;
f1=fn;
fn=f0+f1;
}
returnfn;
}
*************************************************
★题目25(回文数问题)
int将svalue(longm)
寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数
intjsValue(longn)
{inti,strl,half;
charxy[20];
ltoa(n,xy,10);
strl=strlen(xy);
half=strl/2;
for(i=0;iif(xy[i]!
=xy[--strl])break;
if(i>=half)return1;
elsereturn0;
}
或者下面的解法:
intjsValue(longn)
{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,m*m*m=1367631
*************************************************
题目27(整数各位数字运算题)
jsValue()
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
jsValue()
{inti,j,qw,bw,sw,gw;
for(i=0;i<300;i++)
{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];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}
}
*************************************************
★☆题目35(级数运算题)
jsValue()
要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:
Sn=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中
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++;
}
}
运行结果为:
M=100,n=6
M=1000,n=9
M=10000,n=11
*************************************************
☆题目48(整数各位数字运算题)
jsValue()
求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
jsValue()
{inti,qw,bw,sw,gw,j;
for(i=0;i<300;i++)
{qw=a[i]/1000;bw=a[i]%1000/100;
sw=a[i]%100/10;gw=a[i]%10;
if(qw+gw==bw+sw)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}
}
*************************************************
题目49(整数各位数字运算题)
jsValue()
求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
jsValue()
{inti,qw,bw,sw,gw,n=0;
for(i=0;i<300;i++)
{qw=a[i]/1000;bw=a[i]%1000/100;
sw=a[i]%100/10;gw=a[i]%10;
if(qw-bw-sw-gw>0){cnt++;pjz1+=a[i];}
else{n++;pjz2+=a[i];}
}
if(cnt==0)pjz1=0;
elsepjz1/=cnt;
if(n==0)pjz2=0;
elsepjz2/=n;
}
*************************************************
☆题目53(整数各位数字运算题)
jsValue()
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
jsValue()
{inti,j,qw,bw,sw,gw;
for(i=0;i<300;i++)
{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];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}
}
*************************************************
题目54(整数各位数运算排序题)
jsValue()
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序
jsValue()
{inti,j,qw,bw,sw,gw;
for(i=0;i<300;i++)
{qw=a[i]/1000;bw=a[i]/100%10;
sw=a[i]%100/10;gw=a[i]%10;
if(qw+bw==sw+gw)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
}
*************************************************
题目55(素数统计排序题)
jsValue()
求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
intisP(intm){
inti;
for(i=2;iif(m%i==0)return0;
return1;
}
jsValue()
{inti,j,value;
for(i=0;i<300;i++)
if(isP(a[i]))b[cnt++]=a[i];
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){value=b[i];b[i]=b[j];b[j]=value;}
}
*************************************************
题目80(整数各位数运算题)
jsValue()
求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,
jsValue()
{inti,j,thou,hun,ten,data,n=0;
for(i=0;i<300;i++)
{thou=a[i]/1000;hun=a[i]/100%10;
ten=a[i]%100/10;data=a[i]%10;
if(data-thou-hun-ten>0){cnt++;pjz1+=a[i];}
else{n++;pjz2+=a[i];}
}
if(cnt==0)pjz1=0;
elsepjz1/=cnt;
if(n==0)pjz2=0;
elsepjz2/=n;
}
*************************************************
☆题目81(整数各位数运算题)
jsValue()
求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值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){cnt++;pjz1+=a[i];}
else{n++;pjz2+=a[i];}
}
if(cnt==0)pjz1=0;
elsepjz1/=cnt;
if(n==0)pjz2=0;
elsepjz2/=n;
}
*************************************************
★题目82(素数题)
jsValue()
求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
intisP(intm)
{inti;
for(i=2;iif(m%i==0)return0;
return1;
}
jsValue()
{inti;
for(i=0;i<300;i++)
if(isP(a[i])){pjz1+=a[i];cnt++;}
elsepjz2+=a[i];
if(cnt==0)pjz1=0;
elsepjz1/=cnt;
if(300-cnt==0)pjz2=0;
elsepjz2/=(300-cnt);
}
*************************************************
☆题目87(整数各位运算统计题)
jsValue()
求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
jsValue()
{inti,gw,sw,bw,qw,cnt2=0;
for(i=0;i<300;i++)
{gw=a[i]%10;sw=a[i]/10%10;
bw=a[i]/100%10;qw=a[i]/1000;
if((qw+gw)==(sw+bw)){cnt++;pjz1+=a[i];}
else{cnt2++;pjz2+=a[i];}
}
if(cnt==0)pjz1=0;
elsepjz1/=cnt;
if(cnt2==0)pjz2=0;
elsepjz2/=cnt2;
}
*************************************************
★题目90(整数排序题)
jsValue()
将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。
新序列中,比K1小的数都在K1的前面,比K1大的数都在K1的后面
jsValue(inta[10][9])
{inti,j,k,val,num;
for(i=0;i<10;i++)
{val=a[i][0];
for(j=0;j<9;j++)
if(a[i][j]{num=a[i][j];
for(k=j;k>0;k--)
a[i][k]=a[i][k-1];
a[i][0]=num;
}
}
}
*************************************************
jsVal()
☆题目2
jsVal()
如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
voidjsVal()
{inti,j,qw,bw,sw,gw;
for(i=0;i{qw=a[i]/1000;bw=a[i]/100%10;
sw=a[i]%100/10;gw=a[i]%10;
if(qw&&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]
}
★☆题目14(整数统计排序题)
jsVal()
依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,
voidjsVal()
{inti,j,flag;
for(i=0;i{for(j=i+1;j<=i+5;j++)
if(a[i]>a[j]&&a[i]%2)flag=1;
else{flag=0;break;}
if(flag==1)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){flag=b[i];b[i]=b[j];b[j]=flag;}
}
*************************************************
★题目15(整数各位数字运算排序题)
jsVal()
若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中
voidjsVal()
{inti,j;
intqw,bw,sw,gw;
for(i=0;i{qw=a[i]/1000;bw=a[i]%1000/100;
sw=a[i]%100/10;gw=a[i]%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]){qw=b[i];b[i]=b[j];b[j]=qw;}
}
*************************************************
★☆题目28(整数各位打散组合运算题)
jsVal()
把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
voidjsVal()
{inti,j,thou,hun,ten,data,ab,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&&cd>=10)
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
}
*************************************************
☆题目29(整数各位打散组合运算题)
jsVal()
把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
voidjsVal()
{inti,j,qw,bw,sw,gw,ab,cd;
for(i=0;i{qw=a[i]/1000;bw=a[i]/100%10;
sw=a[i]%100/10;gw=a[i]%10;
ab=qw*10+sw;cd=gw*10+bw;
if(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&qw!
=0&&gw!
=0)
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
}
*************************************************
☆题目30(整数统计排序题)
jsVal()
依次从数组a中取出一个四位数,如果该四位数连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中
voidjsVal()
{inti,j,flag;
for(i=0;i{for(j=i+1;j<=i+5;j++)
if(a[i]else{flag=0;break;}
if(flag==1)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){flag=b[i];b[i]=b[j];b[j]=flag;}
}
*************************************************
★题目45(数字统计排序题)
jsVal()
依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是偶数(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,
voidjsVal()
{inti,j,flag;
for(i=5;i{for(j=i-5;j
if(a[i]>a[j]&&a[i]%2==0)flag=1;
else{flag=0;break;}
if(flag==1)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
}
*************************************************
☆题目46(数字统计排序题)
jsVal()
依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是奇数,且该数必须能被7整除(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中
voidjsVal()
{inti,j,flag;
for(i=5;i{for(j=i-5;j
if(a[i]>a[j]&&a[i]%2&&a[i]%7==0)flag=1;
else{flag=0;break;}
if(flag==1)b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
}
*************************************************
★☆题目51(整数各位打