#6124. gesp二级真题分类九:数论基础
gesp二级真题分类九:数论基础
九、数论基础(素数、因数、回文、数位等)(共12题)
题目
1. 下面代码用于判断N是否为质数,说法正确的是( )。
cin>>N;
for(i=2;i<N/2;i++)
if(N%i==0){
cout<<"不是质数";
break;
}
if(i>=N/2) cout<<"是质数";
{{ select(1) }}
- 代码能正确判断
- 代码总是不能判断
- 删除break就能正确判断
- 边界存在问题,应将N/2改为N/2+1
2. 下面代码用于输出N和M之间的孪生素数,横线处应填( )。
for(int i=N; i<________; i++)
if(isPrime(i) && isPrime(i+2))
printf("%d %d\n",i,i+2);
{{ select(2) }}
- M-2
- M-1
- M
- M+1
3. 下面代码用于判断一个数是否为回文数,横线处应填( )。
int n,a=0,k;
cin>>n;
k=n;
while(n>0){
a=________;
n/=10;
}
if(a==k) cout<<"是回文数";
{{ select(3) }}
- 10*a+n%10
- a+n%10
- 10*a+n/10
- a+n/10
4. 下面代码用于求1到N之间正整数中含有3的数的个数,横线处应填( )。
for(i=1;i<=N;i++){
j=i;
while(j!=0){
if(j%10==3){
cnt++;
________;
}
________;
}
}
{{ select(4) }}
- continue; j/=10
- break; j/=10
- continue; j%=10
- break; j%=10
5. 下面代码用于求正整数各位数字之和,横线处不应填入( )。
int tnt=0,N;
cin>>N;
while(N!=0){
________;
N/=10;
}
cout<<tnt;
{{ select(5) }}
- tnt=tnt+N%10
- tnt+=N%10
- tnt=N%10+tnt
- tnt=N%10
6. 判断一个数是否为自守数(平方的尾数等于本身)。相关说法错误的是( )。
{{ select(6) }}
- 如果Flag在循环中不被改为false,则是自守数
- 代码if(N1%10!=M1%10)用于判断个位数是否相等
- 代码N1=N1/10; M1=M1/10; 将个位数去掉
- 将N1>0改为N>0效果相同
7. 下列哪个数既是回文数又是质数?( )
{{ select(7) }}
- 101
- 121
- 123
- 131
8. 在1~1000中,能被7整除但不能被3整除的数有多少个?( )
{{ select(8) }}
- 95
- 96
- 97
- 98
9. 一个数的所有数位都是偶数,则称其为“偶位数”。下列哪个是偶位数?( )
{{ select(9) }}
- 1234
- 2468
- 1357
- 2023
10. 下面代码用于判断一个正整数是否为完全平方数,横线处应填( )。
int n;
cin>>n;
int s=sqrt(n);
if(________) cout<<"是";
else cout<<"不是";
{{ select(10) }}
- s*s==n
- s==n
- s*2==n
- s==sqrt(n)
11. 下面代码用于输出0-100之间能被7整除但不能被3整除的数,横线处不能填入的是( )。
for(i=0;i<100;i++)
if(________)
cout<<i<<endl;
{{ select(11) }}
- i%7==0 && i%3!=0
- (i%7) && i%3!=0
- i%7 && i%3
- i%70 && i%30
12. 下面代码用于判断正整数各位数字之和,横线处不应填入的是( )。
int tnt=0,N;
cin>>N;
while(N!=0){
________;
N/=10;
}
cout<<tnt;
{{ select(12) }}
- tnt=tnt+N%10
- tnt+=N%10
- tnt=N%10+tnt
- tnt=N%10