工学

单选题若num、a、b、和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为()。A 4B 16C 32D 52

题目
单选题
若num、a、b、和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为()。
A

4

B

16

C

32

D

52

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

第1题:

有以下程序:include<stdio.h>void func(int n){ static int num=1);num=num+n;printf(&quo

有以下程序:

include<stdio.h>

void func(int n)

{ static int num=1);

num=num+n;printf("%d",num);

}

main( )

{ funo(3);func(4);printf("n"); }

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

A.4 8

B.3 4

C.3 5

D.4 5


正确答案:A

第一调用func函数时输出4,第二次调用func函数时num的值并不会释放,仍然是上次修改后的值4,第二次调用结果为8,所以输出结果是4 8。

第2题:

阅读如下程序段,则执行后程序的输出结果是

#include

main()

{structa{int x; int y;}num[2]={{20,5},{6,7}};

printf("%d\n",num[0].x/num[0].y*num[1].y);}

A.0

B.28

C.20

D.5


正确答案:B

第3题:

下面程序的运行结果是 include Void main( ) { int num=1; int &ref=num;ref=

下面程序的运行结果是

#include<iostream.h>

Void main( )

{

int num=1;

int &ref=num;

ref=ref+2;

cout < < num;

num=num+3;

cout < < ref < <endl;

}

A.13

B.16

C.36

D.33


正确答案:C
解析:本题考查的是考生对引用的掌握,ref实际上就是变量num的别名,所以ref=ref+2时,num已经变成了3。

第4题:

下列给定程序中,函数fun()的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入 49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。

请改正函数fun()中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

int fun(int a, int b)

{ int r,t;

if(a<b)

/******************found*****************/

{ t=a; b=a; a=t;}

r=a%b;

while(r!=0)

{ a=b; b=r; r=a%b;}

/******************found*****************/

return(a);

}

main()

{ int num1, num2, a;

printf("Input num1 num2:"); scanf("%d %d",&num1, &num2);

printf("num1=%d num2=%d\n\n",num1, num2);

a=fun(num1, num2);

printf("The maximun common divisor is %d\n\n", a);

}


正确答案:(1)错误:{t=a;b=a;a=t;} 正确:{t=a;a=b;b=t;} (2)错误:return(a); 正确:return(b);
(1)错误:{t=a;b=a;a=t;} 正确:{t=a;a=b;b=t;} (2)错误:return(a); 正确:return(b); 解析:若求两个数的最大公约数,如果b除a的非零余数能够整除a,那么该余数就是最大公约数;若余数为0,则最大公约数为a。该题程序中采用了循环语句,若b除以a的余数不等于0,则继续用a除以所得余数,直至余数为0,如此可以得到 a,b的最大公约数。关于“交换原则”我们在前面已经讲述过了,这里就不再赘述。

第5题:

以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值是()。

A. 7

B. 8

C. 9

D. 10


正确答案:B

第6题:

下面程序的运行结果是

#include

void main()

{

int num=1;

int &ref=num:

ref=ref+2;

cout<(num;

num=num+3;

cout<<

}

A.13

B.16

C.36

D.33


正确答案:C

第7题:

若当前工作区为A,执行以下命令后结果()REPLACE NUM WITH 20 STORE 0 TO NUM ?NUM,A- >NUM,M.NUM

A、0020

B、0200

C、000

D、20200


参考答案:D

第8题:

有以下程序段:

char name[20】;int num;

scanf("name=%S num=%d",name,&num);

当执行上述程序段,并从键盘输入:name=Lili mum=1001<回车>后,name的值为( )。

A.Lili

B.name=Lili

C.Lili num=

D.name=Lili num=1001


正确答案:A

考查简单的C程序。由题可知,程序中输入name的值为Lili,所以输出的必定是Lili,答案选择A。

第9题:

若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()。

A.num%2==1

B.!(num%2==0)

C.!(num%2)

D.num%2


参考答案C

第10题:

阅读以下说明和C语言函数。

[说明]

函数change(int num)的功能是对四位以内(含四位)的十进制正整数num进行如下的变换:将num的每一位数字重复一次,并返回变换结果。例如,若num=5234,则函数的返回值为55223344,其变换过程可描述为:

(4*10+4)*1+(3*10+3)*100+(2*10+2)*10000+(5*10+5)*1000000=55223344

[C语言函数]

long change(int num)

{

ind,m=num;

long result mul;

if (num<=0||(1) /*若num不大于0或num的位数大于4,则返回-1*/

retum-1;

mul=1;

(2)

while(m>0){

d=m%10;

m=(3);

result=result+( (4) ) *mul;

mul=(5);

}

return result;

}


正确答案:(1)num/10000>0或num>9999或num>=10000或其等价形式 (2)result=0 (3)m/10或(m-d)/10或其等价形式 (4)d*10 +d或其等价形式 (5)mul*100或其等价形式
(1)num/10000>0,或num>9999,或num>=10000,或其等价形式 (2)result=0 (3)m/10,或(m-d)/10,或其等价形式 (4)d*10 +d,或其等价形式 (5)mul*100,或其等价形式 解析:本题考查简单运算的程序实现。对于这类题目,应将题干部分描述的运算过程理解透彻。
函数change(int num)的功能是对四位以内(含四位)的十进制正整数num的每一位重复一次。显然,num的位数大于4的直接表示是num>9999或nam>10000,或 num/10000>0。
从题干部分给出的变换公式看,最后的结果是累加获得的,而且代码中用于保存累加结果的变量是result,该变量的初值应为0。所以空(2)处应填入“result=O”。分析对 5234的变化过程可知,首先取出个位,其次是十位上的数字,以此类推,并且将每次取出的数字d乘以10再加上该数字d,因此空(4)处应填入“d*10+d” 。显然mul的值以100进行累乘,因此空(5)处填入“mul*100"。由于跳出循环的条件为“m=0”,所以结合“d=m%10”可知,空(3)处应填入“m/10”。

更多相关问题