非常好的C语言章节习题集带答案 下载本文

scanf(\ x=fun(x);

printf(\

A.45 B.54 C. 55 D. 65 12.以下叙述中错误的是________。

A.C程序必须由一个或一个以上的函数组成 B.函数调用可以作为一个独立的语句存在

C.若函数有返回值,必须通过return语句返回 D.函数形参的值也可以传回给对应的实参 13.以下叙述中正确的是________。

A.预处理命令行必须位于C源程序的起始位置 B.在C语言中,预处理命令行都以\开头

C.每个C程序必须在开头包含预处理命令行:#include \D.C语言的预处理不能实现宏定义和条件编译的功能 14.以下叙述中正确的是________。

A.局部变量说明为static,其生存期将得到延长 B.全局变量说明为static,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的 D.形参可以使用的存储类说明符与局部变量完全相同

15.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则________。

A.称为函数的直接递归调用 B.C语言中不允许这样的递归调用 C.称为函数的循环调用 D.称为函数的间接递归调用 16.以下程序的输出结果是________。

#include \long fib(int n)

{ if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } void main()

{ printf(\A.2 B.4 C.6 D.8 17.以下所列的各函数首部中,正确的是________。

A.void play(var:Integer,var b:Integer) B.void play(int a,b) C.void play(int a,int b) D.Sub play(a as integer,b as integer) 18.以下程序的输出结果是________。

#include \#define f(x) x*x void main()

{ int a=6,b=2,c; c=f(a)/f(b);

45

printf(\A.9 B.18 C.36 D.6 19.下列程序的运行结果为________。

#include \#define MA(x) x*(x-1) void main() { int a=1,b=2;

printf(\A.5 B.6 C.7 D.8 20.以下程序的输出结果是________。

#include \f(int b[],int m,int n) { int i,s=0;

for(i=m;i

{ int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7);

printf(\A.10 B.18 C.8 D.15 21.下列的结论中只有________是正确的。

A.所有的递归程序均可以采用非递归算法实现 B.只有部分递归程序可以用非递归算法实现 C.所有的递归程序均不可以采用非递归算法实现 D.以上三种说法都不对

22.以下程序的运行结果为________。

#include \int x=2;

int fun(int p) { static int x=3; x+=p;

printf(\ return (x); } void main()

{ int y=3; printf(\

A.5 10 20 B.5 6 10 C.5 10 10 23.下列程序的输出结果是________。

#include \

int fun(int x,int y,int cp,int dp)

46

D.5 5 10

{ cp=x*x+y*y; dp=x*x-y*y; } void main()

{ int a=4,b=3,c=5,d=6; fun(a,b,c,d);

printf(\A.16 9 B.4 3 C.25 9 D.5 6 24.以下程序输出的结果是________。

#include \long fun(int n) { long s;

if(n==1||n==2) s=2; else s=n-fun(n-1); return s; } main()

{ printf(\A.1 B.2 C.3 D.4 25.阅读下面的程序:

#include \void main() { int swap(); int a,b; a=3;b=10; swap(a,b);

printf(\swap(int a,int b) { int temp;

temp=a; a=b; b=temp; } 下面的说法中,正确的是________。

A.在main()函数中调用swap()后,能使变量a和b的值交换 B.在main()函数中输出的结果是:a=3,b=10

C.程序第2行的语句int swap();是对swap()函数进行调用 D.swap()函数的类型是void

四、习题答案

(一)、是非题

1.A 2.A 3.B 4.B 5.A 6.B 7.A 8.B 9.B 10.B 11.B 12.B 13.B 14.B 15.A (二)、选择题

1.C 2.B 3.A 4.C 5.D 6.A 7.B 8.D 9.B 10.C

47

11.C 12.D 13.B 14.A 15.D 16.B 17.C 18.C 19.B 20.A 21.B 22.C 23.D 24.A 25.B

48