有以下程序#include <stdio.h>main{ int x,y;scanf("%2d%ld",&x,&y);printf("%d\n

题目

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

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

第1题:

有以下程序:include define 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。所以,4个选项中选项A符合题意。

第2题:

有以下程序:includemain(){int x=102,y=012; printf("%2d,%2d\n",x,y);}执行后的输出

有以下程序: #include <stdio.h> main() { int x=102,y=012; printf("%2d,%2d\n",x,y); } 执行后的输出结果是( )。

A.10,01

B.02,12

C.102,10

D.02,10


正确答案:C
解析:y=012是将八进制数12赋给变量y。格式符%d,用于输出十进制整数;%md,m为指定的输出值的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。本题是将八进制数12也按十进制数输出,八进制数12转换为十进制数为10,输出结果为102,10。

第3题:

以下程序的输出结果是()。includedefine F(x)2.84+xdefine w(y)printf("%d",(int)(y)

以下程序的输出结果是( )。 #include<stdio.h> #define F(x)2.84+x #define w(y)printf("%d",(int)(y)) #define P(y)w(y) main() {int x=2; P(F(5)*x); }

A.12

B.13

C.14

D.16


正确答案:A

第4题:

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

有以下程序: #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
解析:本题考查带参数的宏定义。对F(a++,b++)展开后,宏的返回值为3×4=12,这里a++,b++都是先使用变量值,再自增。

第5题:

有以下程序

include<stdio.h>

main( )

{int x,y;

scanf(”%2d%1d”,&x,&y);printf(”%d\n”,x+y);

}

程序运行时输入:1234567,程序的运行结果是______。


正确答案:15
15 解析:本题主要考查scanf函数的格式输出。其中%2d代表输入的两个字符作为一个数,%ld代表输入的一个字符作为一个数,所以结果为x+y=12+3=15。

第6题:

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

第7题:

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

有以下程序: #include<studio.h> #defme 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。所以,4个选项中选项A符合题意。

第8题:

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

有以下程序:#include <studio. 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。所以,4个选项中选项A符合题意。

第9题:

有以下程序

void f( int y, int *x)

{ y=y+*x; *X=*X+y; }

main()

{ int x=2,y=4;

f(y,&x);

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

}

执行后输出结果是______。


正确答案:8 4
8 4 解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数 f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。