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

#include

void find(float *p, int max, int min, int n) {

int k;

*max=*p; for(k=1;k

t=*(p+k);

if( ) *max=t; if(t<*min) *min=t; } }

五、选做题

1、写出下列程序运行结果 main() {

int i=1,p; p=fun(i,i+1); printf(\ }

int fun(int a,int b) {

int f; if(a>b) f=1;

else if(a==b) f=0; else f=-1; return f; }

2、键盘输入 abcdef #include void fun( ) {

char c ;

if((c=getchar( ))!='\\n')

- 26 -

fun( ) ; putchar(c); }

void main( ) { fun( ); }

3、写出下列程序运行结果 #include #define C 5 int x=1,y=C; void main( ) {

int x;

x=y++; printf(\

if(x>4) { int x ; x=++y; printf(\ x+=y--;

printf(\}

4、写出下列程序运行结果 #include int c , a=4 ;

func(int a , int b)

{ c=a*b ; a=b-1 ; b++ ; return (a+b+1) ; } void main( ) {

int b=2 , p=0 ; c=1 ; p=func(b , a) ;

printf(\}

5、写出下列程序运行结果

unsigned fun6(unsigned num) {

unsigned k=1;

do { k*=num; num/=10; } while(num); return k; }

void main( )

- 27 -

{

unsigned n=26;

printf(\}

6、写出下列程序运行结果 #include int max(int a,int b); main() {

int x,y,z,t,m;

scanf(\ t=max(x,y); m=max(t,z); printf(\}

int max(int a,int b) {

if(a>b)

return(a); else

return(b); }

运行时若输入:10,15,9 则输出:

运行时若输入:300,129,300 则输出: 7、写出下列程序运行结果 #include long sum(int a,int b); long factorial(int n); main() {

int n1,n2; long a;

scanf(\ a=sum(n1,n2);

printf(\}

long sum(int a,int b) {

long c1,c2;

- 28 -

c1=factorial(a); c2=factorial(b); return(c1+c2); }

long factorial(int n) {

long rtn=1; int i;

for(i=1;i<=n;i++) rtn*=i; return(rtn); }

运行时若输入:2,3 则输出: 运行时若输入:0, 5 则输出: 8、

#include int s(); int x,y; main() {

int n; x=1;y=2; n=s();

printf(\}

int s() {

int z; x=3;y=4; z=x+y; return(z); }

程序运行后输出:

- 29 -

9 预处理命令

一、单项选择题

1、 以下不正确的叙述是( )

A.宏替换不占用运行时间。 B.宏名无类型。

C.宏替换只是字符替换。 D.宏名必须用大写字母表示。 2、 C语言的编译系统对宏命令的处理( ) A.在程序运行时进行的。 B.在程序连接时进行。

C.和C程序中的其它语句同时进行编译的。 D.在对源程序中其它语句正式编译之前进行的。 3、以下程序的输出结果是( )

A.15 B.100 C.10 D.150 #define MIN(x,y) (x)<(y)?(x):(y) void main( ) {

int I,j,k;

i=10;j=15;k=10*MIN(i,j); printf(“%d\\n”,k);

}

4、以下叙述中正确的是( )

A.用#include包含的文件的后缀必须是“.h”。

B.若一些源程序中包含某个头文件;当该文件有错时,只需对该头文件进行修改,包含此头.文件的所有源程序不必重新进行编译。 C.宏命令行可以看作是一行C语句。 D.预处理是在编译之前进行的。 5、以下叙述中正确的是( ) A.源程序中所有的行都参加编译。

B.宏定义常量与const定义常量是一样的。

C.宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。 D.以上都不正确。

二、填空题

1、以下程序中for 循环执行的次数是 。

#define N 2 #define M N+1

- 30 -