计算机二级

若运行时给变量x赋值12,则以下程序的运行结果是()。includemain(){int x,y; scanf("%d"若运行时给变量x赋值12,则以下程序的运行结果是( )。 #include<stdio.h> main() { int x,y; scanf("%d",&x); y=x>12? x+10:x-12; printf("%d\n",y); }A.0B.22C.12D.10

题目
若运行时给变量x赋值12,则以下程序的运行结果是()。includemain(){int x,y; scanf("%d"

若运行时给变量x赋值12,则以下程序的运行结果是( )。 #include<stdio.h> main() { int x,y; scanf("%d",&x); y=x>12? x+10:x-12; printf("%d\n",y); }

A.0

B.22

C.12

D.10

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

第1题:

若运行时给变量x输入12,则以下程序的运行结果是

main()

{int x,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

}

A.0

B.22

C.12

D.10


正确答案:A

第2题:

有以下程序:

int sub(int n) { return(n/10+n%10); }

main()

{ int x, y;

scanf("% d", &x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是【 】。


正确答案:10
10 解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

第3题:

有以下程序:int sub(int n) { return(n/10+n%10); }void main(){ int x,y; scanf("%d",&x); y=sub(sub(sub(x))); printf("%d\n",y);}若运行时输入:4321<回车>,程序的输出结果是。


正确答案:10
n/10是求n的去掉个位数上的数字之外的部分,而n%10是求个位数字,所以函数的功能是将去掉个位外的数和个位相加的结果返回。第一次432+1=433,43+3=46,4+6=10.

第4题:

下列程序的输出结果是()。 include defineF(x)2.84+x definew(y)printf("%d",(int(y)

下列程序的输出结果是( )。

#include<stdio.h>

#defineF(x)2.84+x

#definew(y)printf("%d",(int(y))

#defineP(y)w(y)pmchar('\n'》

main()

{int x=2;

P(F(5)*x);

}

A.12

B.13

C.14

D.16


正确答案:A
解析:本题考查带参数的宏的定义及相关运算。P(F(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。

第5题:

有以下程序#include <stdio.h>main{ int x,y; scanf("%2d%ld",&x,&y); printf("%d\n",x+y);}程序运行时输入:1234567,程序的运行结果是


正确答案:15
本题主要考查我们对输入/输出语句的掌握情况。程序中首先定义了两个整型变量,然后分别给其输入值,给x输入的输入格式是“%2d”,这表示取输入的两位,给变量y输入的输入格式是“%1d”,表示输入1位。最后程序输出的是变量x和y的和。从程序运行时输入1234567我们可以知道,x只取前两位,那么其值为12,而y只取1位,其值为3,因此,最后的输出结果为15。

第6题:

有以下程序 include define F(X,Y) (X)*(Y) main( ) { int a=3, b=4; prin

有以下程序

#include <stdio.h>

#define F(X,Y) (X)*(Y)

main( )

{ int a=3, b=4;

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

}

程序运行后的输出结果是

A.12

B.15

C.16

D.20


正确答案:A
解析:本题考查了带参数的宏定义。参数只是进行简单的替换而不是把其值求出后替换形式参数。本题中用a++替换X,用b++替换Y,再求(a++)*(b++)的值。

第7题:

若运行时给变量x输入12,则以下程序的运行结果是 include void main( ) { int

若运行时给变量x输入12,则以下程序的运行结果是 #include<iostream.h> void main( ) { int x,y; cin > > x; y=x > 12? x+lO:x-12; cout < < y; cout < < end1; }

A.0

B.22

C.12

D.10


正确答案:A
解析:三目运算符的表达式为(表达式1)?(表达式2):(表达式3),运算过程是当(表达式1)的值为真时,求(表达式2)的值为整个表达式的值;如果(表达式1)的值为假,则求(表达式3)的值为整个表达式的值。题中,表达式x>12的结果为假,所以执行的语句是x-12,最终结果应该是0。注意:“?:”的优先级高于“=”运算符的优先级。

第8题:

以下程序段的运行结果是( )。 include main() {int x=2,y=1: switch(x) {case 1: switch

以下程序段的运行结果是( )。 include<stdio.h> main() {int x=2,y=1: switch(x) {case 1: switch(y) {case 0:printf("x=2,y=1\n");break; case 1:printf("y=1\n");break; } case 2:printf("x=2\n"); } }


正确答案:x=2
x=2

第9题:

有以下程序includedefine F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b++

有以下程序 #include<stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); 程序运行后的输出结果是

A.12

B.15

C.16

D.20


正确答案:A
解析:在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++) *(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。

第10题:

有以下程序includeint fun(int x;int y){if(x=y)reurn(x); elsereturn((x+y)/2);}main

有以下程序 #include<stdio.h> int fun(int x;int y) { if(x=y)reurn(x); else return((x+y)/2); } main() { int a=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是______。

A.3

B.6

C.8

D.12


正确答案:B
解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。

更多相关问题