工学

问答题所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。

题目
问答题
所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。
参考答案和解析
正确答案: inti,j,m,n;
boolpos;
while(true)
{
n=-1;
while(n<=0)
{
if(n==0)return;
Console.WriteLine("请输入一个正整数或者0:");
n=int.Parse(Console.ReadLine());
}
if(n<10)pos=true;
else
{
m=n;
i=0;
pos=true;
while(m>0)
{
j=m%10;
m=m/10;
if(i>j)
{
pos=false;
break;
}
i=j;
}
}
if(pos)Console.WriteLine("{0}是降序数。",n);
elseConsole.WriteLine("{0}不是降序数。",n);
}
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如:9632是降序数,而8516则不是降序数)。现编写如下程序,判断输入的正整数是否为降序数。 Private Sub Command1 Click( ) Dim n As Long Dim flag As Boolean n=InputBox("输入一个正整数") S=Trim(Str(n)) For i=2 To Len(s) If Mid(s,i-1,1)<Mid(S,i,1)Then Exit For Next i If i=Len(S)Then flag=True Else flag=False If flag Then Print n;"是降序数" Else Print n;"不是降序数" End If End Sub 运行以上程序,发现有错误,需要对给flag变量赋值的If语句进行修改。以下正确的修改是( )。

A.If i=Len(s)+1 Then flag=False Else flag=True

B.If i=Len(s)+1 Then flag=True Else flag=False

C.If i=Len(s)-1 Then flag=False Else flag=True

D.If i=Len(s)-1 Then flag=True Else flag=False


正确答案:B
B。【解析】此题的考查点在for循环,当最后一次执行完Next的时候,i会越界。越界后是len(s)+1,已经比i的长度要长了。因此要对越界进行判断。

第2题:

试题二(共 15 分)

阅读以下说明和 C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

下面 C 程序代码的功能是:对于输入的一个正整数 n(100≤n<1000) ,先判断其是否是回文数(正读反读都一样的数) 。若不是,则将 n 与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278 不是回文数,其反序数为 872,相加后得到的 1150还不是回文数,再将 1150 与其反序数 511 相加,得到的 1661 是回文数。 函数 int isPalm(long m)的功能是:将正整数 m的各位数字取出存入数组中,然后判断其是否为回文数。若 m是回文数则返回 1,否则返回 0。

[C 程序代码]

#include <stdio.h>

#include <stdlib.h>

int isPalm(long m)

{ /*判断 m是否为回文数*/

int i = 0, k = 0;

char str[32];

while (m > 0) { /*从个位数开始逐个取出 m的各位数字并存入字符数组 str*/

str[k++] = (1) + '0';

m = m / 10;

}

for(i = 0; i < k/2; i++) /*判断 str中的 k 个数字字符序列是否是回文*/

if ( str[i] != str[ (2) ] ) return 0;

return 1;

}

int main( )

{

long n, a, t;

printf("input a positive integer:"); scanf("%ld",&n);

if (n < 100 || n > =1000) return -1 ;

while( (3) ) { /*n 不是回文数时执行循环*/

printf("%ld -> ", n);

for(a = 0, t = n; t > 0; ) { /*计算 n 的反序数并存入 a*/

a = (4) *10 + t % 10; t = t / 10;

} /*end of for*/

n = (5) ; /*与反序数求和*/

} /*end of while*/

printf("%ld\n",n);

system("pause"); return 0;

}


正确答案:


第3题:

β射线在高原子序数物质中的辐射能量损失比在低原子序数物质中的辐射能量损失要大,其主要原因是

A、高原子序数物质的核力更强

B、β射线在高原子序数物质中更容易发生弹性散射

C、高原子序数物质中含有更多的电子

D、高原子序数物质的质量较大

E、高原子序数物质的原子核电荷数较大


参考答案:E

第4题:

公文中的数字,除了成文日期、部分结构层次序数和在语句中作为词素的数字必须使用汉字外,应当使用阿拉伯数字。


正确答案:正确

第5题:

序数是表示集合中元素多少的数。


正确答案:错误

第6题:

阅读以下说明和C程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

下面C程序代码的功能是:对于输入的一个正整数n(100≤n<1000),先判断其是否是回文数(正读反读都一样的数)。若不是,则将n与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278不是回文数,其反序数为872,相加后得到的1150还不是回文数,再将1150与其反序数511相加,得到的1661是回文数。

函数int isPalm(long m)的功能是:将正整数m的各位数字取出存入数组中,然后判断其是否为回文数。若m是回文数则返回1,否则返回0。

【C程序代码】

include <stdio.h>

include <stdlib.h>

int isPalm(long m)

{ /*判断m是否为回文数*/

int i = 0, k = 0;

char str[32];

while (m > 0) { /*从个位数开始逐个取出m的各位数字并存入字符数组str*/

str[k++] =(1)+ '0';

m = m / 10;

}

for(i = 0; i < k/2; i++) /*判断str中的k个数字字符序列是否是回文*/

if ( str[i] != str[(2)] ) return 0;

return 1;

}

int main ( )

{

long n, a, t;

printf("input a positive integer:"); scanf("%ld",&n);

if (n < 100 || n > =1000) return -1 ;

while((3)) { /*n不是回文数时执行循环*/

printf("%ld-> ", n);

for(a = 0, t = n; t > 0; ) { /*计算n的反序数并存入a*/

a =(4)*10 + t % 10; t = t / 10;

} /*end of for*/

n =(5); /*与反序数求和*/

} /*end of while*/

printf ("%id\n",n);

system("pause"); return 0;

}


正确答案:(1) m%10或其等价表示 (2) k-1-i (3) !isPalm(n)或isPalm(n)!=1或isPalm(n)= =0 (4) a (5) n+a
(1) m%10,或其等价表示 (2) k-1-i (3) !isPalm(n),或isPalm(n)!=1,或isPalm(n)= =0 (4) a (5) n+a 解析:本题考查C程序设计的基本能力。
函数isPalm(long m)的功能是判断m是否为回文数,其方法是先将m的各位数字依次取出转换为对应的数字字符保存在数组str中,然后再判断str中的字符序列是否对称。代码如下:
while(m>0){/*从个位数开始逐个取出m的各位数字并存入字符数组str*/
str[k++] = m %10 +'0';
m=m/10;
}
因此,空(1)处应填入“m%10",将数m的个位数字取出。以上while循环结束时,k的值即为m取初始值时的位数。
若需判断str[0]、str[1]、…、str[k-1]中的k个数字字符序列是否对称,则应依次比较str[0]与str[k-1]、str[1]与str[k-2]、…str[k/2-1]与str[k2+1]是否相等,若都相等,则是回文数;若其中有一处不等,则不是回文数。代码如下:
for(i=0;ik/2;i++)
if ( str[i] !=str[(2)] )return 0;
因此,空(2)处应填入“k-1-i”。
根据题目描述,从最初输入的数开始,直到得到一个回文数时结束,因此对于数n,调用函数is Palm(n),根据返回值确定n是否为一个回文数,空(3)处应填入“!isPalm(n)”。
为了求一个数t的反序数,可从其个位数字开始,依次取出其各位数字并进行组合。下面以t=345举例说明通过整除取余“%”、整除“/”取出各位数字并组合出543的过程。
初始时:a=0t=345
下一步:345%10=>5a*10+5=>a=5t/10=345/10=>t=34
下一步:34%10=>4a*10+4=>a=54t/10=34/10=>t=3
下一步:3%10=>3a*10+3=>a=543t/10=3/10=>t=0
因此,可知空(4)处应填入“a”。
最后数n与其反序数a相加得到新的数,继续产生回文数的过程。空(5)处应填入“n+a”。

第7题:

同位素是()

  • A、原子序数相同,但质量数不同
  • B、原子序数及质量数均不同
  • C、原子序数相同,但中子数不同
  • D、原子序数及质量数均相同

正确答案:A,C

第8题:

γ衰变时( )

A.子核的质量数和原子序数均不变,仅能量状态有改变

B.子核的质量数改变,而原子序数不变

C.子核的质量数、原子序数及能量状态均不变

D.子核的质量数和原子序数均改变

E.子核的质量数不变,而原子序数改变


正确答案:A

第9题:

所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如:64,55,321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。


正确答案: inti,j,m,n;
boolpos;
while(true)
{
n=-1;
while(n<=0)
{
if(n==0)return;
Console.WriteLine("请输入一个正整数或者0:");
n=int.Parse(Console.ReadLine());
}
if(n<10)pos=true;
else
{
m=n;
i=0;
pos=true;
while(m>0)
{
j=m%10;
m=m/10;
if(i>j)
{
pos=false;
break;
}
i=j;
}
}
if(pos)Console.WriteLine("{0}是降序数。",n);
elseConsole.WriteLine("{0}不是降序数。",n);
}

第10题:

内填写相应的顺序数字,就能在学校门户网络导航栏按设置的顺序数字进行排序;子栏目排序,是在学校门户网络导航栏节点的下方,按设置的先后顺序排序。()


正确答案:正确

更多相关问题