C#程序设计

设有说明语句:int k=1,m=2;double d=7.3;,以下表达式中错误的是()。A、k>=m=kB、k++C、k%(int)dD、d>m>k

题目

设有说明语句:int k=1,m=2;double d=7.3;,以下表达式中错误的是()。

  • A、k>=m=k
  • B、k++
  • C、k%(int)d
  • D、d>m>k
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序的执行结果是______ 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

第2题:

有以下程序 fun(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是______。

A.5,5

B.5,11

C.11,11

D.11,5


正确答案:B
解析:将j和m的值带入函数fun中,第—次调用完fun()后,m和i的值分别为5和3且要保留,并在第二次调用时使用,这是因为两者都是局部静态变量。所以最后的结果是5和11。

第3题:

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

int k=0;

void fun(int m)

{ m+=k; k+=m; printf("m=%d k=%d ",m,k++);}

main( )

{ int i=4;

fun(i++); printf("i=%d k=%d\n",i,k);

}


正确答案:

第4题:

以下程序的运行结果是______。 include fun(int a,int b) { int m=0,i=2; i+=m+1; m

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

include<iostrearn.b>

fun(int a,int b)

{

int m=0,i=2;

i+=m+1;

m=i+a+b;

return m;

}

void main()

{int k=4,m=1,p;

p=fun(k,m);cout<<p<<end1;

}


正确答案:8
8

第5题:

有下列程序:

fun(int x,int y)

{statlc int m=0,i=2;

i+=m+1;m=i+X+y;return m;

}

main()

{int j=1,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j,m);printf("%d\n",k);

}

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

A.5,5

B.5,11

C.11,11

D.11,5


正确答案:B
解析:子函数fun(int x,int y),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m=1”时,i的值为9,因此最终m的值为11。

第6题:

设有以下类和对象的定义: class A {public: int m; }; A k1,k2,*p1,*p2; 则下面针对成员变量m的引用,错误的是( )。

A.k1.m=1

B.k2->m=2

C.p1->m=3

D.(*p2).m=4


正确答案:B
解析: A*pl,A*p2为指向A类对象的指针,故p1→m=3,(*p2).m=4是正确的。但k2不是指针,k2→m的表示是错误的。

第7题:

设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是( )。

A.k=k>=k

B.-k++

C.k%int(f)

D.k>=f>=m


正确答案:C
解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项 B,先计算k++的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。

第8题:

已知int m;float k;正确的语句是

A.(int k)%m

B.int(k)%m

C.int(k%m)

D.(int)k%m


正确答案:D

第9题:

有以下程序:include<stdio.h>main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&a

有以下程序:

include<stdio.h>

main( )

{ int a,b,k,m,*pl,*p2;

k=1,m=8;

p1=&k,p2=&m;

a=/*pl-m;b=*p1+*p2+6;

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

}

编译时编译器提示错误信息,你认为出错的语句是( )。

A.a=/*pl-m;

B.b=*p1+*p2+6;

C.k=1,m=8;

D.pl=&k,p2-&m;


正确答案:A

本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。

第10题:

将下面的语句段(A) 补充完整,使其和语句段(B) 在功能上完全等价。

(a) double s=0.0;

【 】;

int k=0;

do{

s+=d;

k++;

d=1.0/(k*k+1);

}while(【 】);

(b) double s=1.0;

for(int k=1;k<=10;k++) s+=1.0/(k*(k+1));


正确答案:d=1.0 k=10
d=1.0 k=10 解析:本题考核while循环与for循环之间的转换。只要把握住循环的起始条件、结束条件和变量控制,就易解这种类型的题目。

更多相关问题