当用户输入为3时,以下程序的运行结果为_________。 n=int(input("请输入一个整数:")) s=0 for i in range(-1,n): s=s+i print(s)

题目

当用户输入为3时,以下程序的运行结果为_________。 n=int(input("请输入一个整数:")) s=0 for i in range(-1,n): s=s+i print(s)


相似考题
更多“当用户输入为3时,以下程序的运行结果为_________。 n=int(input("请输入一个整数:")) s=0 for i in range(-1,n): s=s+i print(s)”相关问题
  • 第1题:

    下列程序用来计算1+2+…n,当和大于100时停止计算,请填空。

    Private Sub Form_Click()

    Dim n as integer,s as integer,I as integer,k as integer

    s=0

    k=0

    n=inputbox(″请输入n的值)

    For i=1 to 100

    k=k+1

    s=s+I

    【 】

    Next i

    Print s

    End Sub


    正确答案:if s>100 then exit for
    if s>100 then exit for 解析:依题意,用变量S来记录1到n的累加和,当累加和S大于100时停止计算,故加入退出循环条件"if s>100 then exit for"

  • 第2题:

    下列程序段的时间复杂度为()。i=0,s=0;while(sn){s=s+i;i++;}

    A、O(n1/2)

    B、O(n1/3)

    C、O(n)

    D、O(n2)


    参考答案:A

  • 第3题:

    阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    [说明]

    编写一个函数,输入为偶数时,调用函数求1/2+?/+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n (利用指针函数)。

    [函数]

    include "stdio. h",

    main()

    {

    float peven (),podd (),dcall ();

    float sum;

    int n;

    while (1)

    {

    scanf("%d",&n);

    if (n>1)

    break;

    }

    if(n%2==0)

    {

    printf("Even="):

    (1);

    }

    else

    {

    pfinff("Odd=");

    (2);

    }

    printf("%f",sum);

    }

    float peven (int n)

    {

    float s;

    int i

    s=1;

    for(i=2;i<=n;i+=2)

    (3);

    return (s);

    }

    float podd (n)

    int n;

    {

    float s;

    int i;

    s=0;

    for(i=1 i<=n;i+=2)

    (4);

    return (s);

    }

    float dcall(fp,n)

    float (*fp) ();

    int n;

    {

    float s;

    (5);

    returu (s);

    }


    正确答案:(1)array+10 (2)array+1 (3)*p>*max (4)k=*max (5)*p=array[0]
    (1)array+10 (2)array+1 (3)*p>*max (4)k=*max (5)*p=array[0]

  • 第4题:

    下列程序的运行结果是______。

    main()

    { int s=0,i=1;

    while(s<= 10)

    { s=s+i*i;

    i++;

    }

    printf("%d",-i);

    }


    正确答案:3
    3 解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14, i=4;循环条件不成立输出i,--i使i的值减1,轴出结果为3。

  • 第5题:

    有以下程序 int f (int A) { return a%2; } main ( ) { int s[8]={1,3,5,2,4,6),i,d=0; for (i=0; f(s[i]; i++) d +=s[i]; print f ("%d\n", D) ; } 程序运行后的输出结果是

    A.9

    B.11

    C.19

    D.21


    正确答案:A
    解析:本题考核的知识点是一维数组的定义,初始化和数组中元素的引用。函数f()的作用是形参a为偶数的时候返回0,主函数中首先定义了一个长度为8的一维数组,然后给它赋初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他没有赋值的数组元素将自动赋值为0。for循环中,当s[1]不为偶数的时,将s[i]相加,即当i=3时,s[i]=2为偶数,退出循环,此时d的值为d=s101+s[1]+s[2]=1+3+5=9,因此最后输出的d的值为9。所以,4个选项中选项A符合题意。

  • 第6题:

    下面程序的运行结果是( )。 include main() {int a,s,n,m; a=2;s=0;n=1;m=1; while(m<=4

    下面程序的运行结果是( )。 include<stdio.h> main() {int a,s,n,m; a=2;s=0;n=1;m=1; while(m<=4){n=n*a;s=s+n;++m;} printf("s=%d",s); }


    正确答案:s=30
    s=30 解析:分析循环条件“m=1,m=4”,所以循环4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。

  • 第7题:

    有以下程序main(int argc,char *argv[]){ int n,i=0; while(argv[1][i]!=’\0’) { n=fun(); i++;} printf("%d\n",n*argc);}int fun (){ static int s=0; s+=1; return s;}假设程序经编译、连接后生成可执行文件exam.exe,若输入以下命令行exam 123<回车>则程序的运行结果是A.6 B.8 C.3 D.4


    正确答案:A
    通常,main函数都是写成main()的形式,实际上,main函数是可以有形参的,格式为main(argc,argv),其中argc是命令行中参数的个数,argv是一个指向字符串的指针数组。命令行的所有参数都要是字符串。题目中输入exam和123,则argc的值为2,argv[0]存放字符串exam,argv[1]存放字符串123。while语句的判别式为argv[1][i]!=’\0’,而argv[1]存放的是字符串123,故i的值最大为2,while语句能够循环3次。由题中可以知道,语句n=fun()也执行了3次。对fun函数进行分析,fun函数用static语句定义了一个局部变量,该变量的值不会在调用函数结束后消失,而是能够保存下来。下次函数调用时,该变量已有值,为上一次函数结束时的值。初始时局部变量s的值为0,经过第1次fun函数被调用后,s的值变为1,当第2次调用fun函数时,s的初始值为2,而不是0。经过3次调用,s的值变为3,即main函数中变量n的值为3,又因为argc的值为2,则输出结果为3*2=6。

  • 第8题:

    假定输入28,那么程序运行的结果是【】。 include void main() {int n,i,k=0;cout<<“请

    假定输入28,那么程序运行的结果是【 】。

    include<iostream.h>

    void main() {

    int n, i,k=0;

    cout<<“请输入整数”;

    cin>>n; for(i=1;i<n;i++)

    if(n%i= =0) k=k+i;

    if(n= =k)cout<<n<<“是完数\n”;

    else cout<<n<<“不是完数\n”;

    }


    正确答案:请输入整数: 28 28是完数
    请输入整数: 28 28是完数

  • 第9题:

    有以下程序 main(int argc,char *argv[]) { int n,i=0; while(argv[1][i]!='\0') { n=fun();i++;} printf("%d\n",n*argc) ; } int fun() { static int s=0; s=-1; return s; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行 cxam123<回车> 则运行结果为

    A.6

    B.8

    C.3

    D.4


    正确答案:A
    解析:主函数的第一个参数argc为整型参数,记下从命令行输入的参数的个数:第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为2,argv[0]指向字符串“exam”,argv[1]指向参数字符串“123”。在main()函数中,while循环执行了3次,调用了3次fun()函数:第一次调用fun()函数时,定义了一个静态变量s并赋初值0,加1后作为函数值返回,n伪值为1;第二次调用fun()函数时,静态变量s的值将保留上一次退出时的值1,再加1为2,作为函数值返回,n的值为2;同理第三次调用返回后,n的值为3。输出n*argc的值为6。

  • 第10题:

    有以下程序 int a=2; int f(int n) { static int a=3; int t=0; if(n%2) {static int a=4; t+=a++;} else {static int a=5; t+=a++;} return t+a++; } main ( ) { int s=a, i; for (i=0;i<3; i++) s+=f (i) print f ("%d\n" , s ); } 程序运行后的输出结果是

    A.26

    B.28

    C.29

    D.24


    正确答案:C
    解析:全局变量的生存期是整个程序的运行期间,作用域是从变量定义的位置开始,到整个源文件结束止。但是,若全局变量和某一函数或语句块中的局部变量同名,则在该函数或语句块中,此全局变量被屏蔽,即在该函数或语句块内,访问的是局部变量,与同名的全局变量不发生任何关系。静态局部变量的生存期与全局变量相同,作用域和局部变量一样都是整个函数成语旬块内有效。程序第一行定义了一个全局变量a,在f()函数开头也定义了一个静态局部变量a,而且在后面if语句的两个子句中都定义了静态局部变量a。这4个变量a虽然名字一样,但却是4个独立的变量,而且在整个程序运行期都存在。在主函数中,在定义变量s时将s初始化为全局变量a的值2,然后使用一个for循环分别调用了3次f(0)、f(1)、f(2),并将得到的值累加到变量s中。第1次调用n=0为偶数,执行else子句,此时t累加的是else子句中的变量a,所以执行后else子句中的a变为6,t变为5,然后return语句中的a是函数f()开头定义的a,执行后函数开头的a变为4,所以返回值是5+3=8。第2次调用n为1是奇数,执行if子句,所以t变为4,if子句中的a变为5,然后返回时函数开头的a变为5,返回值是4+4=8。第3次调用n为2是偶数,又执行else子句,else子句中的a现在还是上次执行后的值6,所以t=6,然后返回时加上函数开头的a的当前值5,最后返回11。所以s最终的值是2+8+8+11=29。故应该选择C。

  • 第11题:

    有以下程序: main(int arge,char*argv[]) { int n,i=0; while(arv[1][i]!='\0' { n=fun( );i++; } printf("%d\n",n*argc) } int fun() { static int s=0; s+=1; return s; } 假设程序经编译、连接后生成可执行文件exam.exe,若输入以下命令行 exam 123<回车> 则运行结果为( )。

    A.6

    B.8

    C.3

    D.4


    正确答案:A
    解析:主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为2,argv[0]指向字符串“exam”,argv[1]指向参数字符串“123”。在main()函数中,while循环执行了3次,调用了3次fun()函数;第一次调用了fun()函数时,定义了一个静态变量s并赋初值0,加1后作为函数值返回,n的值为1;第二次调用fun()函数时,静态变量s的值将保留上一次退出时的值1,再加1为2,作为函数值返回,n的值为2;同理第三次调用返回后,n的值为3。输出n*argc的值为6所以,A选项为所选。

  • 第12题:

    当运行以下程序时,输入abcd,程序的输出结果是:( )。

    insert(char str[])

    {int i;

    i=strlen(str);

    while(i>0)

    {str[2*i]=str[i];str[2*i-1]='*';i--;}

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

    }

    main()

    {char str[40];

    scanf("%s",str);insert(str);

    }


    正确答案:a*b*c*d*
    a*b*c*d* 解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\0’在内。因此,函数insert()实现了将字符数组中每个非‘\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

  • 第13题:

    程序段s=i=0;do{i=i+1;s=s+i;}while(i=n);的时间复杂度为()。

    A、O(n)

    B、O(nlog2n)

    C、O(n)

    D、O(n/2)


    参考答案:A

  • 第14题:

    下列Application程序输入一个整数,求出它的所有因子,请根据注释,将程序补充完整。

    public class test19_2 {

    public static void main(String args[])throws IOException {

    int n;

    //下面7行语句的作用是从键盘输入n的值

    InputStreamReader ir;

    BufferedReader in;

    ir=new lnputStreamReader(System.in);

    in=new BufferedReader(ir);

    System.out.println("Input n is:");

    String s=in.______;//读取1行字符

    n=Integer.parseInt(s);

    //下面求n的所有因子

    ______(int i=1;i<=n;i++) {

    if(n%i!=0)

    ______;//跳过打印语句回到循环起始

    System.out.print(i+””);

    }

    System.out.print(“\n”);

    }


    正确答案:readLine( ) for continue
    readLine( ) for continue

  • 第15题:

    以下程序运行后的输出结果是()。includevoid reverse(int a[],int n){int i,t;for(i=0;

    以下程序运行后的输出结果是( )。 #include<stdio.h> void reverse(int a[],int n) {int i,t; for(i=0;i<n/2;i++) {t==a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() {int b[10]={10,9,8,7,6,5,4,3,2,1};int i,s=0; reverse(b,10); for(i=0;i<3;i++)s+=b[i]; printf("%d\n",s); }

    A.27

    B.6

    C.25

    D.30


    正确答案:B
    解析:本题考查函数调用时的参数传递。函数reverse将数组b进行了逆置,此时b[10]={10,9,8,7,6,5,4,3,2,1),后面for语句的功能是将b中的后3个数累加,并将结果放在s中,最后将s输出,结果s=1+2+3=6。

  • 第16题:

    以下程序运行后输入: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()的功能。经过分析可知,每次调用该函数时,都是把最后一个字符移到串的最前端,而原先的第一个字符至倒数第二个字符顺次后移。

  • 第17题:

    当运行以下程序时,从键盘输入AhaMA(空格)Aha,则下面程序的运行结果是includemain(

    当运行以下程序时,从键盘输入AhaMA(空格)Aha<CR>,则下面程序的运行结果是 #include<stdio.h> main() {char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\n\) {if(s[i]]==c)s[i]-32; else if(s[i]==c-32)s[i]=s[i]+32; i++;} puts(s);}

    A.ahaMa

    B.AbAMa

    C.A11AMa[空格]aha

    D.ahAMa[空格]ahA


    正确答案:A
    解析: 本题主要考查的知识点是大写字母比它对应的小写字母ASCII码值小32,并且字符可以看作整数进行算术运算等操作。

  • 第18题:

    有以下程序 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符合题意。

  • 第19题:

    假定n=3,,下列程序的运行结果是()。includeint Fun(int m)void main(){cout<<"Pleas

    假定n=3,,下列程序的运行结果是( )。 #include<iostream.h> int Fun(int m) void main() { cout<<"Please input a number:"; int n,s=0; cin>>n; s=Fun(n); cout<<s<<endl; } int Fun(int m) { iht p=1,s=0; for (int I=1;I<=m;I++) { p*=I; S+=p; } return s; }

    A.7

    B.9

    C.8

    D.10


    正确答案:B

  • 第20题:

    有以下程序includevoid main(){char s[]={"01aXy"};int i,n=0;for(i=0;s[i]!=0;i++)if

    有以下程序 #include<stdio.h> void main() { char s[]={"01aXy"};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]<='a'&&s[i]>='z')n++; printf("%d\n",n); } 程序运行后的输出结果是( )。

    A.0

    B.2

    C.3

    D.5


    正确答案:A

  • 第21题:

    执行如下程序SET TALK OFFS=0I=1INPUT "N=" TO NDO WHILE S<=NS=S+II=I+1ENDDO

    执行如下程序

    SET TALK OFF

    S=0

    I=1

    INPUT "N=" TO N

    DO WHILE S<=N

    S=S+I

    I=I+1

    ENDDO

    ?S

    SET TALK ON

    如果输入值为5,则最后S的显示值是( )。

    A.1

    B.3

    C.5

    D.6


    正确答案:D

  • 第22题:

    有以下程序:includemain(){int s=0,a=1,n; scanf("%d",&n); do {s+=1;a=a-2;} whi

    有以下程序: #include <stdio.h> 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
    解析:本题考查do-while语句。当n=-1时,s+=1,s=1;a=a-2=-1;a!=n不成立,结束循环,此时s值为1,不符合题意;当n=-3时,s+=1,s=1;a=a-2=-1;a!=n成立,继续循环,s=s+1=2,a=a-2=-3;a!=n不成立,此时s值为2,符合题意。

  • 第23题:

    若输入 "I am a boy!",下列程序的运行结果为______。 char connect(string1,string2,string) char string1[],string2[],string[]; { int i,j; for (i=0;stringl[i] !='\0';i++) string[i]=stringl[i]; for (j=0;string2[j] !='\0';j++) string[i+j]=string2[j]; string[i+j ] ='\0'; } main ( ) { char s1 [100] , s2 [100] , s [100]; printf ("\n 输入 string1: \n"); scanf("%s",s1); printf (" \n 输入 string2: \n" ); scanf ("%s", s2); connect (s1, s2, s); printf ("%s\n", s); }

    A.I am a boy!

    B.输入string2:

    C.I am

    D.I am a boy!


    正确答案:C

  • 第24题:

    下列程序的运行结果是______。include int Func(int *a,int n) {int s=1; for(int i=0

    下列程序的运行结果是______。

    include<iomanip.h>

    int Func(int *a,int n)

    {int s=1;

    for(int i=0;i<n;i++)

    s*=*a++;

    returns;}

    void main()

    {inta[]:{1,2,3,4,5,6,7,8};

    intb=Func(a,6)+Func(&a[5],2);

    cout<<“b=“<(b<<endl;}


    正确答案:b=762。
    b=762。 解析: 本题考查了。a++的用法。*a++作为表达式时,先计算*a作为表达式的值,然后使指针变量 a本身增1,在本惠中,s*=*a++等同于3=s**a,a++,S后面第一个*是乘号。