以下程序用于输出给定三位正整数的逆序数(比如输入123,输出为321),则空白部分应该填写的内容为: n=input("请输入一个三位正整数:") s="" for i in n: ____________ print(s)A.s=s*iB.s=i*sC.s=s+iD.s=i+s

题目

以下程序用于输出给定三位正整数的逆序数(比如输入123,输出为321),则空白部分应该填写的内容为: n=input("请输入一个三位正整数:") s="" for i in n: ____________ print(s)

A.s=s*i

B.s=i*s

C.s=s+i

D.s=i+s


相似考题
更多“以下程序用于输出给定三位正整数的逆序数(比如输入123,输出为321),则空白部分应该填写的内容为: n=input("请输入一个三位正整数:") s="" for i in n: ____________ print(s)”相关问题
  • 第1题:

    下面程序的功能是:从输入的正整数中选3个数进行输出,要求这些数都是2的倍数,请填空。

    main()

    { int a,i=0;

    scanf("%d",&A);

    do

    { if(a>0&&a%2==0)

    {printf("%d\n",A);i++;}

    if(i!=3)

    { scanf("%d",&A);}

    }while(( ));

    }


    正确答案:i3
    i3

  • 第2题:

    如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如: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的长度要长了。因此要对越界进行判断。

  • 第3题:

    执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。 mein(){char s[100]; int c

    执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。 mein() { char s[100]; int c, i; scanf("% c", &C) ; scanf("% d", &i); scanf("% s", s); printf("% c, % d, % s\n", c, i, s); }

    A.123, 456, 789

    B.1, 456, 789

    C.1, 23, 456, 789

    D.1, 23, 456


    正确答案:D
    解析:根据给定的数据输入格式:123空格>456空格>789回车>,第一个scanf语句中,格式字符为“%c”,只能得到一个字符'1',第二个scanf语句中格式字符为“%d”,变量i得到的数值为23,第三个scanf语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组s得到的是"456\0"。因而正确答案为选项D。

  • 第4题:

    运行下列程序时,若输入数据为“321”,则输出结果是( )。 main() {int num,i,j,k,s; scanf("%d",&num); if(num>99) s=3; else if(num>9) s=2; else s=1; i=num/100; j=(num-i*100)/10; k=(num-i*100-j*10); switch(s) {case 3:printf("%d%d%d\n",k,j,i); break; case 2:printf("%d%d\n",k,j); case 1:printf("%d\n",k); } }

    A.123

    B.1,2,3

    C.321

    D.3,2,1


    正确答案:A
    解析:本题考查if-else语句和switch语句。scan函数通过键盘读入nUm的值。因为num=321>99,所以s=3,i=3,i=2k=1。因为s=3,所以执行case 3,输出k,j,i的值,然后通过breed结束程序。

  • 第5题:

    有以下程序 main() { int s=0, a=1, n; scanf ( "%d", &n); do { s+=l; a=a-2; } while (a! =n); print f ( "%d\n" , s ); 若要使程序的输出值为2,则应该从键盘给n输入不敷出值是

    A.-1

    B.-3

    C.-5

    D.0


    正确答案:B
    解析:本题考核的知识点是do-while循环的简单应用。根据题目要求,最后要使输出的s值为2,在程序中改变s的值语句只有循环体中的s+=1;语句,而初始s的值为0,显然要使s的值变为2,该语句必须执行两次,即do-while循环中的循环体要执行两次,而在do-while中,首先不进行条件而执行do后面的循环体语句,然后在判断while循环条件。所以说不管循环判断条件是否为真s+=1;语句至少执行一次,根据分析,只需要while后面括号的循环判断表达式的值为真成立一次且只能为真一次,将四个选项中的内容依次代入该程序中不难得到只有n=-3刚好使循环判断条件a!=n为真一次.故4个选项中选项B符合题意。

  • 第6题:

    下面的程序执行时,可以从键盘输入一个正整数,然后把该数的每位数字按逆序输出。例如:输入7685,则输出5 8 6 7;输人1000,则输出0 0 0 1。请填空。 Private Sub Command1_Click Dim x As Integer X=InputBox(“请输入一个正整数”) While x> 【11】 Print x Mod 10; x=x\10 Wend Print 【12】 End Sub


    正确答案:
    void Base::fun ; virtual display==0;

  • 第7题:

    有以下程序:includemain(){int i,s=0; for(i=1;i<10;i+ =2) s+ =i+1; printf("%d\n",s

    有以下程序: #include <stdio.h> main() { int i,s=0; for(i=1;i<10;i+ =2) s+ =i+1; printf("%d\n",s); } 程序执行后的输出结果是( )。

    A.正整数1~9的累加和

    B.正整数1~10的累加和

    C.正整数1~9中奇数之和

    D.正整数1~10中偶数之和


    正确答案:D
    解析:通过for(i=1;i10;i+=2)可知,i取值为1~10的奇数,即1,3,5,7,9,i+1即为2,4,6,8,10。因此,程序的功能是计算并输出1~10中的偶数之和,s+=i+1就是累加这些偶数。

  • 第8题:

    执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是 main() {cha

    执行下列程序时输入123<空格>456<空格>789<回车>,输出结果是 main() {char s[100]; int c. i; scanf("%c", &c); scanf("%d", &i); scan{("%s", s); printf("%c, %d, %s\n", c,i,s); }

    A.123,456,789

    B.1,456.789

    C.1,23,456,789

    D.1,23,456


    正确答案:D
    解析:本题实质是考察C语言中的格式化输入和输出。在C++中,输入和输出控制的简易性有了很大提高,无需用户小心输入,而是由编译系统判断其辅人和输出格式。自行进行相应的处理。

  • 第9题:

    通过键盘输入一个高精度的正整数n(n的有效位数≤240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13


    正确答案: 为了尽可能地逼近目标,我们选取的贪心策略为:每一步总是选择一个使剩下的数最小的数字删去,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字,否则删除第一个递减区间的首字符。然后回到串首,按上述规则再删除下一个数字。重复以上过程s次,剩下的数字串便是问题的解了。
    具体算法如下:
    输入s,n;
    while(s>0)
    {i=1; //从串首开始找
    while(i
    {i++;}
    delete(n,i,1); //删除字符串n的第i个字符
    s--;
    }
    while(length(n)>1)&&(n[1]=‘0’)
    delete(n,1,1); //删去串首可能产生的无用零
    输出n;

  • 第10题:

    编一个程序,输入一个正整数n,把它转换为二进制数,并输出。提示:应该利用数组。


    正确答案: int[]a=newint[80];
    inti,j,n=0;
    while(n<=0)
    {
    Console.WriteLine("请输入一个正整数:");
    n=int.Parse(Console.ReadLine());
    }
    i=0;
    Console.Write("/n正整数{0}转换为二进制数:",n);
    while(n>0)
    {
    a[++i]=n%2;
    n=n/2;
    }
    for(j=i;j>0;j--)Console.Write(a[j]);
    Console.WriteLine();

  • 第11题:

    问答题
    编一个程序,输入一个正整数n,把它转换为二进制数,并输出。提示:应该利用数组。

    正确答案: int[]a=newint[80];
    inti,j,n=0;
    while(n<=0)
    {
    Console.WriteLine("请输入一个正整数:");
    n=int.Parse(Console.ReadLine());
    }
    i=0;
    Console.Write("/n正整数{0}转换为二进制数:",n);
    while(n>0)
    {
    a[++i]=n%2;
    n=n/2;
    }
    for(j=i;j>0;j--)Console.Write(a[j]);
    Console.WriteLine();
    解析: 暂无解析

  • 第12题:

    问答题
    编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约数。

    正确答案: Console.WriteLine("请输入一个正整数:");
    uinti,n,flag;
    boolf=true;
    n=uint.Parse(Console.ReadLine());
    //uint.TryParse(Console.ReadLine(),outn);
    for(i=2;i{
    if(n%i==0){f=false;break;}
    }
    if(f)Console.WriteLine("{0}是一个素数。",n);
    else
    {
    Console.Write("{0}不是一个素数。/n{1}=",n,n);
    i=2;
    flag=0;
    while(i<=n)
    {
    while(n%i==0)
    {
    n=n/i;
    if(flag!=0)Console.Write(’*’);
    flag=1;
    Console.Write("{0}",i);
    }
    i++;
    }
    }
    解析: 暂无解析

  • 第13题:

    下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

    例如:输入352,则输出应该是38;若输入328,则输出应该是77。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    include <conio.h>

    long fun(long num)

    {

    /*+**+*+*+*found************/

    long k=1;

    do

    {

    k+=(num%10)*(num%10);

    num/=10;

    /*********+found*+**+*+******/

    }while(num)

    return(k);

    }

    main()

    {

    long n;

    clrscr();

    printf("\Please enter a number:");

    scanf("%ld",&n);

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

    }


    正确答案:(1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num);
    (1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num); 解析:错误1:k用来存放各位数字的平方和,初值应为0。
    错误2:do-while语句的语法,while()后加分号。

  • 第14题:

    有以下程序

    main( )

    { int s=0,a=1,n;

    scanf("%d",&n);

    do

    { s+=1; a=a-2; }

    while(a!=n);

    printf("%d\n",s);

    }

    若要使程序的输出值为2,则应该从键盘给n输入的值是

    A.-1

    B.-3

    C.-5

    D.0


    正确答案:B
    解析:本题考查了循环的执行,因s在程序中起一个计数变量的作用,即记录循环执行的次数,若循环执行  两次,a的值等于n时退出循环,即a减两次2后应等于n,可推算出n的值为-3。

  • 第15题:

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】include move(char *str,

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】

    include <string.h>

    move(char *str, int n)

    { char temp; int i;

    temp=str[n-1];

    for(i=n-1;i>0;i--) str[i]=str[i-1];

    str[0]=temp;

    }

    main( )

    { char s[50]; int n, i, z;

    scanf("%d,%s",&n,s);

    z=strlen(s);

    for(i=1; i<=n; i++) move(s, z);

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

    }


    正确答案:cdeab
    cdeab 解析:本题主要考查函数move()的功能。经过分析可知,每次调用该函数时,都是把最后一个字符移到串的最前端,而原先的第一个字符至倒数第二个字符顺次后移。

  • 第16题:

    执行以下程序段,并输入1.23,则程序的输出结果应是【 】。

    N=Str(InputBox(“请输入一个实数:”))

    p=IiaStr(N,".")

    Print Mid(N,p)


    正确答案:.23
    .23 解析:InStr函数、Mid函数
    InStr([首字符位置]字符串1,字符串2[,n])用来在“字符串1”中查找“字符串2”,如果找到,则返回“字符串2”的第一个字符在“字符串广中的位置。
    如果带有参数“首字符位置”,则从该位置开始查找,否则从“字符串1”的起始位置查找。可选参数“n”用来指定字符串比较方式,可以取0、1或2。如为0,则进行在比较时区分大小写:如为1,则在比较时忽略大小写;如为2,则基于数据库中包含的信息进行比较。
    Mid(字符串,p,n)函数用来在“字符串”中从第p个字符开始,向后截取n个字符。如果省略参数n,则从第p个字符开始,向后截取到字符串的末尾。
    跟踪程序:
    n="1.23"
    p=InStr(n,".")=InStr("1.23",".")
    p=2
    所以,Mid("1.23",2)所截取的字符是:“.23”。
    最终的输出结果是:.23。

  • 第17题:

    请补充函数fun(),该函数的功能是;删除字符数组中小于等于指定字符的字符,指定字符从键盘输入,结果仍保存

    例如,输入“abcdefghij”,指定字符为‘d’,则结果输出“defghij”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include <stdio. h>

    define N 80

    void fun (char s[], char ch)

    {

    int i=0, j=0;

    while (s [i] )

    {

    if (s Iii<ch)

    【 】;

    else

    {

    【 】

    i++;

    }

    }

    【 】

    }

    main ()

    {

    char str [N], ch;

    clrscr ();

    printf("\n Input a string:\n");

    gets (str);

    printf("\n*** original string ***\n");

    puts (str);

    printf("\n Input a character:\n");

    scanf ("%c", &ch);

    fun(str, ch);

    printf("\n*** new string ***\n");

    puts (str);

    }


    正确答案:i++ s[j++]=s[i] s[j]='\0'
    i++ s[j++]=s[i] s[j]='\0' 解析:第一空:如果当前字符比指定字符小,则什么都不做,通过i++访问下一个字符。第二空,如果当前字符大于等于指定字符,则将它保存在字符数组s中。第三空:通过保存比指定字符大或相等的字符,来实现删除比指定字符小的字符。处理结束后,在字符串s最后要加上结束标记符‘\0’。

  • 第18题:

    阅读下面的程序,当输入分别为111和222时,程序输出为 ______。 n1=InputBox(”请输入第一个数:”) n2=Val(1nputBox("请输入第二个数:")) Print n1+n2

    A.111222

    B.222

    C.333

    D.程序出错


    正确答案:C
    解析:由于InputBox函数的默认返回值是字符串,因此n1的值为111,n2经过函数Val转换后成为数值型,其值为222。按照Visual Basic自动结合的原则,n1会先自动转换为数值型再和n2进行运算,最终输出结果为333。
      为了提高程序的可读性,最好对每一个变量都进行定义。故在程序的最前面加上:
      Dim n1 As Integer
      Dim n2 As Integer

  • 第19题:

    请编写一个函数fun(),它的功能是求出一个正整数的所有因子。例如,若输入72, 则程序应该输出:72=2*2*2*3*3。

    注意:部分源程序已存在文件PROC14。CPP中。

    请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。

    文件PROC14.cpp的内容如下:

    //PROC14. cpp

    include <iostream>

    using namespace std;

    void fun(int number);

    int main ( )

    {

    int n;

    cout<<"Please enter a number \n";

    cin>>n;

    cout<<n<<"=";

    fun (n);

    return 0;

    }

    void fun(int number)

    {

    //* * * * * * *

    }


    正确答案:

  • 第20题:

    阅读以下说明和C语言函数,将解答填入对应栏内。

    【说明】

    下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。

    下面给出的C程序代码中有五个错误,请指出所有的错误。

    【C程序代码】

    01 include <stdio.h>

    02

    03 int main()

    04 {

    05 long n, num;

    06 int i;

    07

    08 do {

    09 printf("请输入一个正整数:");

    10 scanf("%ld", n);

    11 }while(n <= 0);

    12 k = 1;

    13 for (i = 1; n >= 0; i++) {

    14 if (i % 2 = 1) {

    15 num= num+ (n % 10) * k;

    16 k = k * 10;

    17 }

    18 n = n / 10;

    19 }

    20 printf("新数据为: %d \n",num);

    21 return 0;

    22 }


    正确答案:错误1:变量k没有声明(或定义)。 错误2:变量num没有初始化或者num应初始化为0。 错误3:第10行scanf函数参数错或者“scanf("%1d"n);”中的n应该为“&n”;或者n之前应加取地址符号。 错误4:第13行循环条件错或改为“n>0”。 错误5:第14行if语句条件错将“=”改为“==”;或者将“1%2=1”改为“i% 2==1 ”
    错误1:变量k没有声明(或定义)。 错误2:变量num没有初始化,或者num应初始化为0。 错误3:第10行scanf函数参数错,或者“scanf("%1d",n);”中的n应该为“&n”;或者n之前应加取地址符号。 错误4:第13行循环条件错,或改为“n>0”。 错误5:第14行if语句条件错,将“=”改为“==”;或者将“1%2=1”改为“i% 2==1 ” 解析:本题考查程序检错和排错能力。
    程序错误一般分成语法错误和语义错误两种类型,其中语法错误是形式上的错误,语义错误是含义上的错误,编译程序能够发现程序中的所有语法错误。
    语义错误又可分为静态语义错误和动态语义错误,静态语义错误编译时检查,而动态语义错误在程序运行时表现。
    C程序中,常见的错误有:使用的变量没有定义、变量没有赋值初就直接使用、输入输出的数据类型与所用格式说明符不一致、超出数据范围、输入时数据的组织方式与要求不符、误把“=”作为关系运算符“等于”、语句的分号缺少或放置错误、缺少“{}”、符号引用错误,“(、)、[、]”括号不配对、引用数组元素超界等。
    在本题的程序中,使用变量num的语句为“num=num+(n%10)*k;”。由于变量 num没有赋初值,该语句运行的结果导致num的值是不确定的。
    在本题给出的程序中,出现了如下错误。
    (1)使用的变量k没有定义(语法错误,编译程序报告:k是未定义的标识符)。
    (2)变量num没有赋初始值就直接使用(动态语义错误),应将其初始值设为0。由于num是局部变量,使用变量num的语句为“num=num+(n%10)*k”,系统不保证对其进行初始化,导致程序的运行结果不确定。
    (3)第14行,误把“=”作为关系运算符“等于”(语法错误),
    (4)第10行,输入变量时忘记使用地址符号(动态语义错误),运行时变量n不能正确接收输入的数据。
    (5)第13行,循环条件错误,导致无穷循环。
    考生应多上机调试程序,这样就可以熟悉常见的程序错误,从而提高编程水平和效率。

  • 第21题:

    算法可以有0~n(设n、m为正整数)个输入,有()个输出。

    • A、0~m
    • B、0
    • C、1~m
    • D、1

    正确答案:C

  • 第22题:

    编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约数。


    正确答案: Console.WriteLine("请输入一个正整数:");
    uinti,n,flag;
    boolf=true;
    n=uint.Parse(Console.ReadLine());
    //uint.TryParse(Console.ReadLine(),outn);
    for(i=2;i{
    if(n%i==0){f=false;break;}
    }
    if(f)Console.WriteLine("{0}是一个素数。",n);
    else
    {
    Console.Write("{0}不是一个素数。/n{1}=",n,n);
    i=2;
    flag=0;
    while(i<=n)
    {
    while(n%i==0)
    {
    n=n/i;
    if(flag!=0)Console.Write(’*’);
    flag=1;
    Console.Write("{0}",i);
    }
    i++;
    }
    }

  • 第23题:

    判断题
    若一个栈的输入序列为123…n,其输出序列的第一个元素为n,则其输出序列的每个元素ai一定满足ai=n-i+1。(i=1,2..…n)。
    A

    B


    正确答案:
    解析:

  • 第24题:

    问答题
    通过键盘输入一个高精度的正整数n(n的有效位数≤240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13

    正确答案: 为了尽可能地逼近目标,我们选取的贪心策略为:每一步总是选择一个使剩下的数最小的数字删去,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字,否则删除第一个递减区间的首字符。然后回到串首,按上述规则再删除下一个数字。重复以上过程s次,剩下的数字串便是问题的解了。
    具体算法如下:
    输入s,n;
    while(s>0)
    {i=1; //从串首开始找
    while(i
    {i++;}
    delete(n,i,1); //删除字符串n的第i个字符
    s--;
    }
    while(length(n)>1)&&(n[1]=‘0’)
    delete(n,1,1); //删去串首可能产生的无用零
    输出n;
    解析: 暂无解析