C语言全部章节习题集(本)

#define NUM (M+1)*M/2 void main() { int i; for(i=1;i<=NUM;i++); printf(“%d\\n”,i); }

2、以下程序的输出结果是 。 #define A 3

#define B(a) ((A+1)*a) void main() {

int x;

x=3*(A+B(7));

printf(“x=%d\\n”,x);

}

三、判断题

( )1、宏替换时先求出实参表达式的值,然后代入形参运算求值。 ( )2、宏名无类型,其参数也无类型。

( )3、使用宏次数多时,宏展开后源程序不会变长。

( )4、调用函数只能得到一个返回值,而用宏可以得到几个结果。

( )5、在一被包含文件中又可以包含另一被包含文件,文件包含是可以嵌套的。

( )6、用一个指定的标识符来代表一个字符串,它的一般形式为 #define 标识符 字符串;

( )7、在宏定义#define PI 3.l4l59中,如果将1误输成小写的L,则编译时不出错,运行时出错。

( )8、取消PI的宏定义为 #undef PI 0 ( )9、#include和 #define不是C语句。

10 指针

一、单项选择题

1、若有定义:int x,*pb;则以下正确的表达式是( ) A.pb=&x B.pb=x C.*pb=&x D.*pb=*x 2、以下程序的输出结果是( )

A.因变量无定义输出不定值 B.0 C.-1 D.1

- 31 -

#include void main()

{printf(“%d\\n”,NULL);}

3、以下程序的输出结果是( )

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); }

4、以下程序的输出结果是( ) A.4 B.6 C.8 D.10 #include void main() {

int k=2,m=4,n=6;

int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\\n”,n); }

5、已知指针p的指向(图一)的a[1],则执行语句*p++;后,*p的值是(A.20 B.30 C.21 D.31 a[0] a[1] a[2] a[3] a[4]

10 20 30 40 50 (图一)

6、已知指针p的指向(图一)的a[1],则表达式*++p的值是( )。 A.20 B.30 C.21 D.31

7、已知指针p的指向(图一)的a[1],则表达式++*p的值是( )。 A.20 B.30 C.21 D.31 8、以下程序的输出结果是( )。

A.23 B.24 C.25 D.26

#include void prtv(int *x)

{printf(“%d\\n”,+

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4