C语言程序设计

有以下程序段:intk=0,a=1,b=2,c=3;k=a+=b-=c;,执行该程序段后,k的值是()A、0B、1C、2D、3

题目

有以下程序段:intk=0,a=1,b=2,c=3;k=a+=b-=c;,执行该程序段后,k的值是()

  • A、0
  • B、1
  • C、2
  • D、3
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面程序段的循环次数是()intk=2;while(k==0)printf(″%d″,k);k--;printf(″\n″);

A.0次

B.1次

C.2次

D.无限次


正确答案:A

第2题:

有以下程序 main( ) { int a=0,i; for(i=1;i<5; i++) { switch (i) { case 0 case 3:a+ =2; case 1; case 2;a+=3; default, a+=5; } } printf("%d\n",a) ; }

A.31

B.13

C.10

D.20


正确答案:A

第3题:

以下程序的输出结果是

main()

{int a,i;a=0;

for(i=1;i<5;i++)

{switch(i)

{case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}printf("%d\n",a);

}

A.31

B.13

C.10

D.20


正确答案:A

第4题:

以下程序的输出结果是 include void main() { inta=0,i; for(i=1 ;i<5;i++) { swi

以下程序的输出结果是 #include <iostream.h> void main() { int a=0,i; for(i=1 ;i<5;i++) { switch(i) { case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; } } cout<<a<<end1; return; }

A.31

B.13

C.10

D.20


正确答案:A
解析:本题考核for语句和switch语句的综合运用。switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束。在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。因为每个case语句后面都没有break语句,所以,第1次循环(i=1)执行后,a的值为8。第2次循环(i=2)执行过后,a的值变为16。第3次循环(i=3)执行过后,a的值变为26。第4次循环执行过后,a的值变为31。然后执行i++,这的循环条件为假,结束循环。所以最后a的值为31。

第5题:

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

有下列程序段: 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?e:k的值等于k的值等于2。把条件表达式k>c?e:k的值赋给变量k,因而变量k的值等于2。因此,选项B)为正确答案。

第6题:

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

main()

{ int x=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int *a,int n,int k)

{ if(k<=n)sub(a,n/2,2*k);

*a+=k;

}


正确答案:7
7 解析:在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(&x,8,1)调用sub(&a,4,2),sub(&a,4,2)调用sub(&a,2,4),sub(&a,2, 4)中由于24,所以if后面括号里的判断为假,递归结束,执行其后的*a+=k;语句此时 x=x+k=0+4=4,回退到上一层调用函数sub(&x,4,2)中,执行后面的语句,x=x+k= 4+2=6,再回推到最上一层调用函数sub(&x,8,1)执行后面的语句,x=x+k=6+1=7,所以最后输出7。

第7题:

下列语句段中不是死循环的是()。

A、intI=100;while(1){I=I0+1;if(I=20)break;}

B、intI;sum=0;for(I=1;;I++)sum=sum+1;

C、intk=0;do{++k;}while(k>=0);

D、ints=3379;while(s++%2+3%2)s++;


参考答案:A

第8题:

以下程序的输出结果是

main()

{ int a,i;a=0;

for(i=1;i<5;i++)

{ switch(i)

{ case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5; }

}printf("%d\n",a);}

A.31

B.13

C.10

D.20


正确答案:A
解析:本题考查用于多分支选择的switch语句, 其一般形式为:
switch(表达式)
{
case常量表达式1: 语句1;
case常量表达式2: 语句2;

case常量表达式n: 语句n;
default : 语句n+1;
}
其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有 case后的语句;如表达式的值与所有case后的常量表达式均不相等时,则执行default后的语句。

第9题:

设执行以下程序段时依次输入2,4,6执行结果为 Dim a(4) As Integer,b(4) As Integer For k =0 To 2 a(k + 1) = Val(InputBox( "Enter data:" ) ) b(3 - k) =a(k + 1) Next Print b(k)

A.2

B.4

C.6

D.0


正确答案:A
解析:此程序段开始声明了两个整型数组a和b,其长度均为4。程序通过For…Next语句为其赋值,a(k+1)=Val(InputBox("Enterdata:")),b(3-k)=a(k+1)。当k=0时,输入2,a(1)二b(3):2;当k=1时,输入4,a(2);b(2):4;当k=2时,输入4,a(3)二b(1):6;当L=3时,中断循环,执行Print语句,即要求输出b(k)的值,而k的当前值为3,即要输出的值是b(3),其值为2。

第10题:

有以下程序段: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。

更多相关问题