如果int C=3,d=4,k=0,下列描述正确的是( )。A.c>d!=k和c>(d!=k)的执行顺序是一样的B.c&

题目

如果int C=3,d=4,k=0,下列描述正确的是( )。

A.c>d!=k和c>(d!=k)的执行顺序是一样的

B.c&&d>k的结果为假

C.c||(d=k)执行后d的值为0

D.!c!=(d!=k)表达式的值为1

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有下列程序段: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)为正确答案。

第2题:

下面程序段的执行结果为( )。 int i=3,j=0,k=0; for(;i>0;--i) { ++k; do { ++j; if (i!=j) break; ++k; }while(j<5); } printf("i=%d j=%d k=%d\n",i,j,k);

A.i=0 j=4 k=12

B.i=0 j=5 k=5

C.i=0 j=4 k=4

D.i=0 j=3 k=3


正确答案:C
解析:程序开始时(i,j,k)三个值分别为(3,0,0),然后进入for循环,由于for的第一条语句空缺,所以不做初始化,此时i为3满足循环条件,进入循环体。然后执行“++k;”使k变成1,再无条件进入do-while循环体执行“++j;”使j变成1,此时i和j不相等所以执行break;语句跳出do-while循环。准备开始第二遍for循环,i的值被减1,此时3个值分别为(2,1,1),i为2满足循环条件,进入循环体。然后依次执行++k;和++j;使它们增1,此时i和j同为2相等,所以跳过break;语句再执行一次++k;使k为3,由于此时j满足do-while的循环条件,所以下一步回到前面执行do后面的++j;语句,使j为3,此时i和j不相等,所以执行break;跳出do-while循环。准备开始第三遍for循环,i的值被减1,此时3个值分别为(1,3,3),i为1满足循环条件,进入循环体。然后依次执行++k;和++j;使它们增1,此时i和j不相等,所以执行break;跳出do-while循环。准备开始第四遍for循环,i的值被减1,此时3个值分别为(0,4,4),i为0不满足for语句的循环条件,所以执行循环体后面的printf()函数输出3个值,故正确答案为C。

第3题:

以下程序的执行结果是______ includevoid func(int); void main(){ int k=4 func(k)

以下程序的执行结果是______

include<iostream.h>

void func(int);

void main()

{

int k=4

func(k) ;

func(k) :

cout<<end1;

}

void func(int a)

{

static int m=0;

m+=a;

cout<<m<<" ";

}


正确答案:48
48

第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题:

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

第6题:

下列程序的输出结果是______。 main() { char *s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } vii]++; } for(k=O;k<4;k++) printf("%d ",v[k]); }

A.4211

B.0008

C.4678

D.8888


正确答案:B

第7题:

下列程序执行之后,输出的结果是______。 public class exl0 { public static void main(String[] args) { int j=0; a1: for (int i=3;i>0; i--) { j+=i; a2: for (int k=l; k<3; k++) { j*=k; if(i==k) break a1; } } System.out.println(j); } }

A.18

B.16

C.14

D.0


正确答案:B

第8题:

设有程序段: int k=12; while(k=1) k=k-1; 则下列描述中正确的是( )。

A.0

B.1

C.TRUE

D.FALSE


正确答案:B
解析: 本题考查C语言3个知识点:①将一个字符赋给一个字符变量时,并不是将该字符本身存储到内存中,而是将该字符对应的ASCII码存储到内存单元中;②大写字母的ASCII码值小于其对应小写字母的ASCII码值;③只要逻辑与运算符&&的两个运算对象都为非零,返回值就是1。

第9题:

执行下列程序后,输出的结果是()。 includedefine S(X) X*Xvoid main(){int a=9,k=3,m=

执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X) X*X void main() { int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); }

A.1

B.4

C.9

D.0


正确答案:D
解析:本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下:a=a/S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m=9/(3+2*3+2/3+2*3+2)=0。

第10题:

下列程序的运行结果是includevoid fun(int * a,int * b){int * k; k=a; a=b; b=k;}

下列程序的运行结果是 #include<iostream.h> void fun(int * a,int * b) { int * k; k=a; a=b; b=k; } void main( ) { int a=3,b=6, * x=&a, * y=&b; fun(x, y) ; cout < < a < < " " < < b; }

A.6 3

B.3 6

C.编译出错

D.0 0


正确答案:B
解析:函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中去。在本题解析中,我们试图将这一问题解释清楚!
  大家可以考虑一下利用下面这函数可不可以实现 a和b的互换。
  swap(int x, int y)
  { int;
   t=X;
   x=y;
   y=t;
  }
  如果在main函数中用swap(a, b) ,会有什么结果呢?在函数调用开始时,a的值传送给x,b的值传递给 y。执行完swap( ) 函数后,x和y的值是互换了,但 main( ) 函数中的a和b并未互换。也就是说由于“单向传递”的“值传递”方式,形参值的改变无法传递给实参。
  为了使在函数中改变了的变量值能被main( ) 函数所用,不能采取上述办法,而应该用指针变量作函数参数。在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化被保留下来,这样就实现了调用函数改变变量的值,在主调函数中使用这些改变了的值的目的。
  swap(int * p1,int * p2)
  { int p;
   p= * p1;
   * p1= * p2;
   * p2=p;
  }
  注意交换 * p1和 * p2的值是如何实现的,如果写成下面这样就有问题了!
  swap(int * p1,int * p2)
  { int * p;
   * p=p1;/ * 此语句有问题 * /
   * p1= * p2;
   * p2= * p;
}
  * p1就是a,是整型变量。而 * p是指针变量p所指向的变量,但p中并无确切地址,用 * p可能会破坏系统的正常工作状态。应该将。p1的值赋给一个整型变量,用整型变量作为过渡变量实现,p1和 * p2的交换。

更多相关问题