Untitled Document

一：选择题
1．从下面的选项中选出正确的答案在宏定义：#define MAXINT 324中，宏名MAXINT代替的是：
a. 实型数
b. 整型数
c. 常量
d. 一串字符
2．分析下列叙述是正确的：
a. 在带参的宏定义中，形式参数是变量。
b. 在带参的宏定义中，形式参数是变量。
c. 宏替换不占用运行时间。
d. 在带参的宏定义中，要定义其形式参数的类型。
3．一个C++程序开始执行的位置是：
a. 程序开头
b. 预编译
c. main函数
d. 以上答案都不正确
4．下列叙述正确的是：
a． 一个程序中可以有多个#include命令行
b． 在#include命令行中，用双引号和用尖括号将被包含的文件名括起来没有区别
c． #include命令行只能放在程序开始位置
d． #include命令后也必须以分号结束
5．以下叙述不正确的是：
a． C++语言中，编译预处理命令行总以"#"开头
b． 编译预处理命令行可以根据需要出现在程序的任何一行的开始位置
c． C++编译中的编译预处理可以看作一行C++语句
d． C++中的预处理是在程序运行之前进行的
6．预处理命令在程序中都是以以下哪个符号开头的。
a.*
b.#
c.：
d./
7． 文件包含中被包含的文件的扩展名。
a.必须为 .h
b.不能用 .h
c.必须是 .c
d.不一定是 .h
8．带参数的宏定义中,程序中引用宏定义的参数是。
a.只能是常量
b.只能是整型量
c.只能是整型表达式
d.可以是任意表达式
9．在宏定义＃define PI 3.1415926中，用宏名PI代替是一个。
a.单精度数
b.双精度数
c.常量
d.字符串
10．以下对头文件叙述不正确的是。
a. 头文件可以自己编写。
b. 头文件可以系统提供。
c. 既可以自己编写，也可以系统提供。
d. 以上都不对。
二、简答与编程题：
1． 写出下面程序的输出结果：
#include "iostream.h"
#define PR(a) cout<<a
#define PRINT1(a) PR(a);cout<<endl
#define PRINT2(a,b) PR(a);PRINT1(b)
void main()
{
int k;
for(k=0;k<=100;k+=50)
PRINT2(k,k+12.4);
}
2． 写出下面程序的输出结果：
#include<iostream.h>
#define CIR(r) r*r
void main()
{
int x=1;
int y=2;
int z;
z=CIR(x+y);
cout<<z<<endl;
}
3． 写出下面程序的输出结果：
#include <iostream.h>
#define TEST
void main()
{
int x=0;
int y=1;
int z=1;
#ifdef TEST
cout<<x<<y;
#endif
cout<<z;
}
4． 下列程序执行时输入5，给出运行结果。
#include<iostream.h>
#define N -2
void main()
{
int n;
cin>>n;
#if N>0
cout<<"1"<<endl;
#else
cout<<"-1"<<endl;
#endif
#ifdef EOF
cout<<EOF<<endl;
#endif
}
5．设有宏定义如下：
#define N 3
#define Y(n) ((N+1)*n)
则执行语句：z=2*(N+Y(5+1));后，z的值是多少?
6．编写一个宏定义DIGIT(c)，用来判断c是不是数字字符，如果是得1，不是得0。