C是错误的,本题应选答案C。 【参考答案】C
70.执行下列程序后的输出结果是( ) #define M(a,b)(a)>(b)?(a):(b) main() { int i=10,i=15; printf("%d\n",10*M(i,j)); } A.10 B.15 C.100 D .150
【解析】本题要输出的表达式是“10*M(i,j)”,其中的“M(i,j)”是带参数的宏调用,宏替换后,表达式的结果是“10*(i)>(j)?(i):(j)”,而变量i值为10、变量j值为15,带入整个要输出的表达式后结果是“10*(10)>(15)?(10):(15)”,,其中的条件“10*10>15”是成立的,结果等于10。所以本题答案应选A 【参考答案】A
71.执行下列程序后的输出结果是( ) int fun(int x1,int x2) { int x;x1>x2?(x=3):(x=4);return(x+x1); } main() { printf("%d\n",fun( 7,8));} A.9 B.10 C.11 D.12
【解析】本程序的输出是函数调用“fun(7,8)”的返回值。分析函数调用“fun(7,8)”的过程如下:将实参7传给形参x1,实参8传给形参x2,然后执行函数体。由于x1>x2的条件不成立,所以执行“:”号后的赋值表达式:x=4。返回语句中的表达式是“x+x1”,返回值是:4+7=11。所以本题答案应选C. 【参考答案】C
72.下列程序段的输出是( ) typedef union{ long x[2]; short y[4][5]; char z[10]; }TYPE1; TYPE1 u1; printf("%d\n", sizeof(u1)); A.8 B.10 C.40 D.58
【解析】程序的开始用“typedef"定义了用户自定义数据类型符“TYPE1”,这个用户自定义的数据类型符对应的是一个共用型。然后使用"TYPE1",定义了共用型变量u1,本段程序的输出就是这个共用型变量所占用的字书数。共用型变量占用的字节数就是其成员中占用字节数最多的成员占用的字节数。分析这个共用型的成员有3个:第1个成员是长整型数组,占用字节数为4*2=8;第2个成员是短整型数组,占用字节数为2*4*5=40;第3个成员是字符型数组,占用的字节数为1*10=10。其中占用字节数最多的成员是第2个成员,其占用的字节数等于40。所以本题答案应选C。 【参考答案】C |