niusouti.com
更多“单选题执行以下程序段后,s的值为(  )。int a[]={1,2,3,4,5,6,7,8,9}, s=0,k;for(k=0;k8;k+=2) s+=*(a+k);A 13B 16C 17D 45”相关问题
  • 第1题:

    执行下面的程序段后,变量k的值为( )。 int k=3,s[2]; s[0]=k; k=s[1]*10;

    A.不定值

    B.33

    C.30

    D.10


    正确答案:A
    解析:本题考查数组元素的初值及其引用。若数组为auto型,且没有进行初始化,其元素的值为不确定。本程序中虽然给s[0]赋了一个初值,但s[1]的值依旧是不确定的,所以执行语句k=s[1]*10后,k的值也不确定的。

  • 第2题:

    执行下面的程序段,s的值为 【 】 。

    s=0:k=10

    While k

    s=s+10

    k=k-2

    Wend


    正确答案:50
    50 解析:While循环中的表达式>是—个数值表达式k,若k不等于0,则执行循环体;若k等于0,则结束循环。本题中循环体共被执行5次,每执行一次循环体,变量s将累加一次10,结果为“50”。

  • 第3题:

    有下列程序:main{int i,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(&qu

    有下列程序:

    main

    {int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

    for(i=0;i<9;i+=2)s+=*(t+i);

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

    }

    程序执行后的输出结果是( )。

    A.A.45

    B.20

    C.25

    D.36


    正确答案:C
    在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

  • 第4题:

    有以下程序段: int k=0,a=1,b=2,c=3; k=ac?c:k; 执行该程序段后,k的值是

    有以下程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a; k=k>c?c:k; 执行该程序段后,k的值是 ______。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:三目运算符的一般形式为(表达式1)?(表达式2):(表达式3),当(表达式1)值为真时,(表达式2)的值为整个表达式的值;当(表达式1)值为假时,(表达式3)的值为整个表达式的值。题中执行表达式“k=ab?b:a”后,k=2,将此值代入后一个表达式“k=k>c?c:k,由于“k>c”值为假,故k的值还等于原来k的值,即2。

  • 第5题:

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

    main()

    { int i=0,j=10,k=2,s=0;

    {i+=k;

    if(i>j)

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

    break;}

    s+=i;}}


    正确答案:

  • 第6题:

    有下列程序段:int k=0,a=1,b=2,c=3;k=ac?C:k;执行该程序段后,k的值是()。A.3B.2C.1D.0

    有下列程序段: int k=0,a=1,b=2,c=3; k=a<b?b:a;k=k>c?C:k; 执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析: 因为ab成立,所以条件表达式ab?b:a的值等于b的值等于2,因此变量k的值等于2。又因为k=2>c=3不成立,所以条件表达式k>c?c:k的值等于k的值等于2。把条件表达式k>c?c:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

  • 第7题:

    以下程序的输出结果是#include <stdio.h>main(){ int k=4,s=0; do{ if((k%3)==0) continue; s+=k;k++; }while(k>10); printf("s=%d\n",s);}


    正确答案:s=4
    在本题中,程序首先定义了两个整型变量k和s,其中k的初值为4,s为0。然后开始做do…while结构的循环。
    第一次循环时,变量k和s的值分别是4和0,条件判断语句的条件结果为假,执行s+=k,此时s的值变为4,而k的值变为5,此时k的值小于10,循环结束;最终输出变量s的结果为s=4。

  • 第8题:

    有以下程序段:int k=0,a=1,b=2,c=3;k=ac ? c:k;执行该程序段后,k的值是()。A.3B.2C

    有以下程序段: int k=0,a=1,b=2,c=3; k=a<b ? b:a; k=k>c ? c:k; 执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:本题中因为ab为“真”,所以第1个条件表达式的值为b的值2,所以k=2。然后又因为k>c为“假”,所以第2个表达式的值为k的值2。所以本题应该选择B。

  • 第9题:

    执行下面的程序段后,变量k中的值为 include void main( ) { int k=3,s[2]; s[

    执行下面的程序段后,变量k中的值为 #include<iostream.h> void main( ) { int k=3, s[2]; s[0]=k; k=s[1] *10; cout < < k;}

    A.不定值

    B.33

    C.30

    D.10


    正确答案:A
    解析:如果定义数组时没有进行初始化,则其各个成员的值不确定。注意:使用数组时应先赋初值。

  • 第10题:

    有以下程序:include main( ){int i,s=0,t[] = {1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)

    有以下程序:#include <stdio.h>main( ){ int i,s=0,t[] = {1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=*(t+i); prinff("% d \n ",s);

    A.45

    B.20

    C.25

    D.36


    正确答案:C
    解析:程序中的*(t+i)相当于t[i]。由于for循环变量的增量为2,因此i分别取值0,2,4,6,8,因为t[0]=1,t[2]=3,t[4]=5,t[6]=7,t[8]=9,对其进行求和运算,结果为25。

  • 第11题:

    下面程序的运行结果是【 】。

    main()

    { int i=0,j=10,k=2,s=0;

    for(;;)

    {i+=k;

    if(i>j)

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

    break; }

    s+=i; } }


    正确答案:30
    30 解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。

  • 第12题:

    单选题
    有以下程序#include main(){ int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2)s+=*(t+i); printf(%d,s);}程序执行后的输出结果是(  )。
    A

    25

    B

    20

    C

    45

    D

    36


    正确答案: B
    解析:
    *(t+i)等价于t[i],依次访问数组t中的偶数位元素,s = t[0]+t[2]+t[4]+t[6]+t[8] = 1+3+5+7+9 = 25。答案选择A选项。

  • 第13题:

    执行下面的程序段后,s的值为【 】。

    s = 0:k = 10

    While k

    s=s+10

    k=k-2

    Wend


    正确答案:50
    50 解析:While循环中的表达式>是一个数值表达式k,若k不等于0,则执行循环体;若k等于0,则结束循环。本题中循环体共被执行5次,每执行一次循环体,变量e将累加一次10,结果为50。

  • 第14题:

    以下程序运行后的输出结果是【】。includemain(){int k=1,s=0; do{ if((k%2)!=0)continue;

    以下程序运行后的输出结果是【 】。

    include<stdio.h>

    main()

    { int k=1,s=0;

    do{

    if((k%2)!=0) continue;

    s+=k; k++;

    }while(k>10);

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

    }


    正确答案:s=0
    s=0 解析:do-while循环结构的形式如下:
    do
    循环体
    while(表达式);
    循环的执行过程如下:
    ①执行do后面循环体中的语句。
    ②计算while后—对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。
    ③退出do-while循环。
    在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下—次的循环条件判定,由于没有改变k的值,k>10的不成立,退出do-while循环,执行后面的printf("s=%d\n",s);语句,因为s=0,所以输出结果为s=0。

  • 第15题:

    有以下程序段:int k=0, a=1, b=2, c=3;k=ac? c:k;执行该程序后,k的值是______。A.3B

    有以下程序段: int k=0, a=1, b=2, c=3; k=a<b? b:a; k=k>c? c:k; 执行该程序后,k的值是______。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:第一个表达式得到k=2,对于第二个表达式,因为k=23,k仍然赋值为k。因此最后k值为2。

  • 第16题:

    下列程序是用来计算1+2+3……+10的程序段,请补充该程序。

    Dim i, s, k As Integer

    s =0: k = 0

    For【 】To 1

    k=k+1

    s=s+ k

    Next i

    Print s


    正确答案:j=-10
    j=-10

  • 第17题:

    下列程序运行后的输出结果是 ______。 include void main(){ int s=0,k for(k=7;k>=0

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

    include<iostream.h>

    void main()

    {

    int s=0,k

    for(k=7;k>=0;k--)

    {

    switch(k)

    {

    case 1:

    case 4:

    case 7:s+ +;break:

    case 2:

    case 3:

    case 6:break;

    case 0:

    case 5:s+=2;break;

    }


    正确答案:s=7
    s=7

  • 第18题:

    执行下面的程序段,s的值为【 】。

    s=O:k=l0

    While k

    s=s+l0

    k=k-2

    Wend


    正确答案:50
    50 解析:本题考查While循环。While循环中的<表达式>,是一个数值表达式k,若k不等于0,则执行循环体;若k等于0,则结束循环。本题中循环体共被执行5次,每执行一次循环体,变量s将累加一次10,结果为“50”。

  • 第19题:

    有以下程序段:int k=0,a=1,b=2,c=3;k=ac?c:K;执行该程序段后,k的值是()。A.3B.2C.1D.0

    有以下程序段: int k=0,a=1,b=2,c=3; k=a<b? b:a; k=k>c? c:K; 执行该程序段后,k的值是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:由于ab成立,所以表达式ab?b:a取b的值2,得到k=2;由于k>c不成立,所以表达式k>c?c:k取k的值2,故k的值为2。

  • 第20题:

    执行以下程序段后,s的值为( )。 int a[ ]={1,2,3,4,5,6,7,8,9},s=0,k; for(k=0;k<8;k+=2)s+=*(a+k);

    A.13

    B.16

    C.17

    D.45


    答案:B
    解析:数组a中的元素为:a[0]=1,a[1]=2,…,a[8]=9。k=0时,s=s+*(a+0)=0+1=1;k=2时,s=1+*(a+2)=1+3=4;k=4时,s=4+5=9;k=6时,s=9+7=16。

  • 第21题:

    有以下程序段intk=0, a=1, b=2, c=3; k=ac? c:k;执行该程序段后,k的值是A.3B.2C.1

    有以下程序段 int k=0, a=1, b=2, c=3; k=a<b ? b:a; k=k>c ? c:k; 执行该程序段后,k的值是

    A.3

    B.2

    C.1

    D.0


    正确答案:B
    解析:本题考查的知识点是条件表达式.条件运算符?:是C语言中唯一的三目运算符,它的规则是先计算左边运算分量,如果为“真”(非0),则返回中间运算分量的值,否则返回右边运算分量的值。本题中因为ab为“真”,所以第1个条件表达式的值为b的值2,所以k=2。然后又因为k>c为“假’,所以第2个表达式的值为k的值2。所以本题应该选择B。

  • 第22题:

    有以下程序:mare(){int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=* (t+ i); printf ("%d\n",s);}程序执行后的输出结果是( )。

    A.45

    B.20

    C.25

    D.36


    正确答案:C
    解析:要获得数组t的第i个元素的内容,既可以使用常规的t[i]表达式,也可以将数组名t看作一个指针常量,使用表达式*(t+i)来获取数组t的第i个元素的内容。在本题中,for循环会循环5次,循环变量i从。开始,每次加2。所以,循环结束后,s中的值为t[0]+t[2]+t[4]+t[6]+t[6]+t[8]=1+3+5+7+9=25。故应该选择C。

  • 第23题:

    单选题
    执行下面的程序段后,变量k中的值为() int k=3,s[2]; s[0]=k; k=s[1]*10;
    A

    不定值

    B

    33

    C

    30

    D

    10


    正确答案: D
    解析: 暂无解析