i=10;j=15;k=10*MIN(i,j); printf(“%d\\n”,k); }
4、以下叙述中正确的是(D)
用#include包含的文件的后缀必须是“.h”。
若一些源程序中包含某个头文件;当该文件有错时,只需对该头文件进行修改,包件的所有源程序不必重新进行编译。 宏命令行可以看作是一行C语句。 预处理是在编译之前进行的。 5、以下叙述中正确的是(C) A、源程序中所有的行都参加编译。
B、宏定义常量与const定义常量是一样的。
C、宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符 D、以上都不正确。 二、填空题
以下程序中for 循环执行的次数是 6 。 #define N 2
#define M N+1
#define NUM (M+1)*M/2 void main() {
int i;
for(i=1;i<=NUM;i++); printf(“%d\\n”,i); }
2、以下程序的输出结果是 x=93 #define A 3
#define B(a) ((A+1)*a) void main() { int x; x=3*(A+B(7));
。
printf(“x=%d\\n”,x); }
B部分(本科必做)
编程:请写出一个宏定义MYALPHA(c),用以判断c是否是字母字符,若是,得1得0。
解:#define MYALPHA(c) ((c>=’A’&&c<=’Z’)||( c>=’a’&&c<=’z’)?1:
第十章 指针 A部分(本、专科必做) 一、选择题
1、若有定义:int x,*pb;则以下正确的表达式是(A) A、pb=&x B、pb=x C、*pb=&x D、*pb=*x
2、以下程序的输出结果是(B)
A、因变量无定义输出不定值 B、0 C、-1 D、1 #include
{printf(“%d\\n”,NULL);} 3、以下程序的输出结果是(B)
A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7 #include
void sub(int x,int y,int *z) {*z=y-x;} void main() {
int a,b,c;
sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%d\\n”,a,b,c);