C语言程序设计习题集 下载本文

6.有以下程序:

#include int fun(int x,int y) { if(x==y)return(x);

else return((x+y)/2); } main()

{ int a=4,b=5,c=6;

printf(\,fun(2*a,fun(b,c))) }

则运行结果为。 A)3 B)6 C)8 D)12

7.有以下程序

#include int f(int X); main()

{ int n=1,m;

m=f(f(f(n)));printf(\,m); }

int f(int x)

{ return x*2;} 程序运行后的输出结果是

A)1 B)2 C)4 D)8

二.填空题

1.以下程序的输出结果是_________。

#include

void swap(int *a, int *b) { int *t;

t=a; a=b; b=t; }

main()

{ int i=3,j=5,*p=&i,*q=&j;

swap(p,q); printf(\ %d\\n\,*p,*q); }

2.以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)

int fun(int x[N]) { int i,k=0;

for(i=0;i

21

if(x[i]

3.有以下函数

void prt(char ch,int n) { int i;

for(i=1;i<=n;i++)

printf(i%6!=0 ? \; }

执行调用语句prt('*',24);后,函数共输出了______ 行*号。

4.请将以下程序中的函数声明语句补充完整。

#include int______; main()

{ int x,y,(*p)();

scanf(\,&x,&y); p=max;

printf(\,(*p)(x,y)); }

int max(int a,int b) { return(a>b?a:b);}

5.有以下程序,请在 __ 处填写正确语句,使程序可正常编译运行。

#include ____________ ; main()

{ double x,y,(*p)(); scanf(\,&x,&y); p=avg;

printf(\,(*p)(x,y)); }

double avg(double a,double b) { return((a+b)/2);}

6.有以下程序:

#include fun(int x)

{ if(x/2>0) fun(x/2); printf(\ .\,x); }

main()

{ fun(6),printf(\;}

22

程序运行后的输出结果是________。

第09章 变量的属性和编译预处理

一.选择题 1.有以下程序:

#include int b=2; int fun(int *k)

{ b=*k+b;return(b);} main()

{ int a[10]={1,2,3,4,5,6,7,8},i;

for(i=2;i<4;i++){b=fun(&a[i])+b; printf(\,b);} printf(\; }

程序运行后的输出结果是________。 A)10 12 B)8 10 C)10 28 D)10 16

2.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是。 A)auto和register B)extern和register C)auto和static D)static和register

3.设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是________。

A)auto B)register C)static D)auto或register

4.有以下程序:

#include int f(int n); main()

{ int a=3,s;

s=f(a);s=s+f(a);printf(\,s); }

int f(int n)

{ static int a=1; n+=a++; return n; }

程序运行后的输出结果是________。 A)7 B)8

23

C)9 D)10

5.有以下程序

#include int fun()

{ static int x=1; x*=2; return x; }

main()

{ int i,s=1;

for(i=1;i<=2;i++) s=fun(); printf(\}

程序运行后的输出结果是

A)0 B)1 C)4 D)8

6.以下叙述中错误的是

A)在程序中凡是以\开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX是合法的宏定义命令行

D)C程序对预处理命令行的处理是在程序执行的过程中进行的

7.以下关于宏的叙述中正确的是________。 A)宏名必须用大写字母表示

B)宏定义必须位于源程序中所有语句之前 C)宏替换没有数据类型限制 D)宏调用比函数调用耗费时间

二.填空题

1.以下程序的输出结果是_____。

#include int fun(int x)

{ static int t=0; return(t+=x); }

main()

{ int s,i;

for(i=1;i<=5;i++) s=fun(i); printf(\,s); }

2.以下程序运行后的输出结果是 ____ 。

#include #include

24