A、7 6
B、12 6
C、12 5
D、7 5
正确答案:D
8、以下程序的运行结果是()。 #define MAX(A,B) (A)>(B)?(A): (B) #define PRINT(Y) printf(“Y=%d ”,Y) #include “stdio.h” int main(void) { int a=1,b=2,c=3,d=4,t; t=MAX(a+b,c+d) PRINT(t); return 0; }
A、Y=3
B、Y=7
C、Y=0
D、存在语法错误
正确答案:B
9、以下程序的输出结果是()。 #include <stdio.h> #define MUL(x,y) (x)*y #include “stdio.h” int main(void) { int a=3,b=4,c; c=MUL(a++,b++); printf("%d",c); return 0; }
A、12
B、15
C、20
D、16
正确答案:A
10、用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是()。
A、#define f(x) 4*x*x+3*x+2
B、#define f 4*x*x+3*x+2
C、#define f(a) (4*(a)*(a)+3*(a)+2)
D、#define (4*a*a+3*a+2) f(a)
正确答案:C
第十二章测试
1、C语言规定结构体变量系统分配给它的存储空间是()。
A、该结构体中最后一个成员所需的存储空间
B、该结构体中所有成员所需存储空间的总和
C、该结构体中第一个成员所需的存储空间
D、该结构体中占用最大存储空间的成员所需的存储空间
正确答案:B
2、以下对结构体变量s 中成员age的合法法引用是()。 #include<string.h> struct student {int age; int num; } s,*p; p=&s;
A、student.s.age
B、student.age
C、p->age
D、s->age
正确答案:C
3、有如下定义: struct date {int y ; int m ; int d ;}; struct person { char name[20]; char sex; struct date birthday; }a; 对结构体变量a的出生年份进行赋值时,下面正确的赋值语句是()。
A、y =1958
B、birthday.y=1958
C、a.birthday.y =1958
D、a.y =1958
正确答案:C
4、设有以下说明语句 struct stu { int a; float b; }stutype; 则以下叙述不正确的是()。
A、struct 是结构体类型的关键字
B、struct stu 是用户定义的结构体类型名
C、stutype 是用户定义的结构体类型名
D、a 和 b 都是结构体成员名
正确答案:B
5、以下结构体类型说明和变量定义中正确的是()。
A、typedef struct {int n; char c;} REC; REC x,y;
B、struct REC; {int n; char c;}; REC x,y;
C、typedef struct REC ; {int n=0; char c=’A’; } x,y;
D、struct {int n; char c; } REC x,y;
正确答案:A
6、下面程序的运行结果是()。 struct st { int n; int a[20]; }; void f(int *a, int n) { int i; for(i=0;i<n;i++) a+=I; } int main() { int i; struct st x={10,{2,3,1,6,8,7,5,4,10,9}}; f(x.a, x.n); for(i=0;i<s.n;i++) printf(”%d,”,x.a); }