一 选择题(7 分,每小题0.5 分) 1.设a 为整型变量,初值为12,执行完语句 a+=a-=a*a 后,a 的值是( D )。 A 552 B 144 C 264 D -264 2.下列标识符中,不能作为合法的C 用户定义标识符的是( D )。 A a3_b3 B void C _123 D IF 3.下列整数值中,不正确的八进制或十六进制数值常量是( C )。 A 0xcd B -017 C -ox123 D 0xfdc 4.若给定条件表达式(M)?(a++):(a--),则其中表达式M 和( A )等价。 A M==0 B M=1 C M!=1 D M!=0 5.在C 语言中,if 语句后的一对圆括号中,用以决定分支流程的表达式为( C )。 A 只能是逻辑表达式 B 只能是关系表达式 C 只能是逻辑表达式或关系表达式 D 可以是任意表达式 6.以下程序的输出结果为( A )。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 7.数组名作为实参数传递给函数时,数组名被处理为( C )。 A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值 8.关于 return 语句,下列正确的说法是( )。 A 可以在同一函数中出现多次 B 在主函数中不能出现 C 必须在每个函数中出现 D 只能在除主函数之外的函数中出现一次 9.以下程序的输出结果为( B )。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 10.设有以下定义,则以下对变量w 的赋值( )是错误的。 enum week{sun,mon=4,tue,wed,thu,fri,sat}w; A w=sun; B w=(enum week)4; C w=san; D w=(enum week)9; 11.以下定义结构体类型st1,其中正确的是( )。 A typedef struct student { int num; int age; }STD; STD st1; B struct st1{int num,age;}s; C struct { int num; float age;}st1; D struct st1 {int num; int age; } 12.若有下面的变量定义,以下语句中合法的是( B )。 int i,a[10],*p; A p=a+2; B p=a[5]; C p=a[2]+2; D p=&(i+2); 13.若有以下定义和语句,则值为12 的表达式是( )。 struct wc{ int a;int *b;}...