单选题
下面的程序(a)________和程序(b)________运行后,y和c的值分别是(53)________。程序(a): #define f(x)x*x main() {int x=2;float y; v=x/f(x); ) 程序(b): main() {int i=l;c=3; switch(i) {case l:c++; case 2:c+12; default: c+=5;} }
【正确答案】
A
【答案解析】本题考查C语言编程基础知识。 define是宏定义,用来定义常量或宏,是一个符号替换概念,例如本题中的: #define f(x)=x*x 预编译时,会首先把程序中出现f(x)的地方,替换成x*x,因此,程序(a)运行结果y=2,而不是y=0.5。 程序(b)中,执行结果c=11,而不是期望的c=4,因为缺少break语句,c++:c+=2;c+5=:5这三条语句被顺序执行。