50、以下叙述中不正确的是(
)
A)预处理命令行都必须以#号开始
B)在程序中凡是以#号开始的语句行都是预处理命令行
C)C程序在执行过程中对预处理命令行进行处理
D)以下是正确的宏定义#define IBM-PC
51、以下叙述中正确的是( )
A)在程序的一行上可以出项多个有效的预处理命令行
B)使用带参的宏时,参数的类型应与宏定义时的一致
C)宏替换不占用运行时间,只占编译时间
D)在以下定义中CR是称为”宏名”的标识符
#define CR
045
52、在宏定义#define PI3.14159中,用宏名PI代替一个( )
A)常量
B)单精度数
C)双精度数
D)字符串
53、以下有关宏替换的叙述不正确的是( )
A)宏替换不占用运行时间
B)宏名无类型
C)宏替换知识字符替换
D)宏名必须用大写字母表示
54、以下叙述中不正确的是( )
A)预处理命令行都必须以#号开始
B)在程序中凡是以#号开始的语句行都是预处理命令行
C)C程序在执行过程中对预处理命令行进行处理
D)以下是正确的宏定义
#define IBM-PC
55、以下叙述中正确的是( )
A)在程序的一行上可以出项多个有效的预处理命令行
B)使用带参的宏时,参数的类型应与宏定义时的一致
C)宏替换不占用运行时间,只占编译时间
D)在以下定义中CR是称为”宏名”的标识符
#define CR
045
56、以下程序有错,错误的原因是(
)
main()
{int *p,i;char *q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;
A)p和q的类型不一致,不能执行*p=*q;语句
B)*p中存放的是地址值,因此不能执行*p=40;语句
C)q没有指向具体的存储单元,所以*q没有实际意义
D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句
57、已有定义 int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)。
A)k=*ptr1+*ptr2;
B)ptr2=k;
C)p1=*p2;
D)*p1=p2;
58、若已定义int a=5;下面对(1),(2)两个语句的正确解释是(
)
(1)int *p=&a;
(2) *p=a;
A)语句(1)和(2)中的 *p含义相同,都表示给指针变量p赋值
B)(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
C)(1)在对p进行说明的同时进行初始化,使p指向a
(2)将变量a的值赋给指针变量p
D)(1)在对p进行说明的同时进行初始化,使p指向a
(2)将变量a的值赋于*p
59、已知学生记录描述为
struct student
{int no;
char name[20];
char set;
struct
{int year;
int month;
int day;
}birth;
};
struct student s;
设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是( )
A)year=1984;
B)birth.year=1984;
month=11;
birth.month=11;
day=11;
birth.day=11;
C)s.year=1984;
D)s.birth.year=1984;
s.month=11;
s.birth.month=11;
s.day=11;
s.birth.day=11;
60、当说明一个结构体变量时系统分配给它的内存是(
)
A)各成员所需内存量的总和
B)结构中第一个成员所需内存量
C)成员中占内存量最大者所需的容量
D)结构中最后一个成员所需内存量
分多了也没什么用,回答的再加20分
|