C语言练习题(谭浩强第四版)..附有答案 下载本文

高级语言程序设计综合练习一 学号: 姓名:

D、 函数内全部范围

17. 下列函数中,能够从键盘上获得一个字符数据的函数是( )。

A、 puts( ) B、 putchar( ) C、 getchar( ) D、 gets( ) 18. 以下程序的输出结果是( )。

fun(int a,int b,int c) { c=a+b; }

int main() { int c; fun(2,3,c); printf(“%d\\n”,c); return 0; }

A、 2 B、 3 19. 分析以下程序的运行结果( func(int a,int b) { int temp=a; a=b; b=temp; }

int main() { int x,y; x=10; y=20; func(x,y);

printf((“%d,%d\\n”,x,y); return 0 ; }

A、 10,20 B、10,10 20. 下面程序的输出是( )。fun(int x) {

static int a=3; a+=x; return(a); }

int main() { int k=2,m=1,n; n=fun(k); n=fun(m); printf(“%d”,n);

return 0;

)。

C、 20,10 C、 5 D、20,20 D、 无定值21

高级语言程序设计综合练习一 学号: 姓名:

}

A、 3 B、 4 C、 6 D、 9 21. 以下程序输出的结果是( )。

int func(int a,int b) {

return(a+b); }

int main() {

int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%d\\n”,r);

return 0; }

A、 12 B、 13 C、 14 D、 15 22. 以下程序的输出结果是( )。

int a,b void fun() {

a=100; b=200; }

int main() {

int a=5,b =7; fun(); printf(“%d%d \\n”,a,b);

return 0; }

A、 100200 B、 57 C、 200100 D、23. 下列程序执行后的输出结果是

void func1(int i); void func2(int i);

char st[]=\ void func1(int i) { printf(\[i]);

if(i<3) { i+=2;func2(i);} }

void func2(int i) { printf(\[i]);

if(i<3) { i+=2;func1(i);} }

int main()

{ int i=0; func1(i); printf(\\n\); return 0;} A)hello B)hel C)hlo D)hlm

75 22

高级语言程序设计综合练习一 学号: 姓名:

24. 有以下程序

int f(int n)

{ if(n==1) return 1; else return f(n-1)+1; }

int main() { int i,j=0;

for(i=1;i<3;i++) j+=f(i); printf(\\n\); return 0; }

程序运行后的输出结果是 A)4 B)3 C)2 D)1 25. 现有如下程序

#include \ int fun(int x)

{ printf(\\n\); }

int main()

{ fun(12+5); return 0; }

则程序的输出结果是 A)12 B)13 C)17 D)18

二、判断题

1、 ( ) 函数定义void max(int a,int b)表示该函数的返回值不确定。 2、 ( )在C语言中,函数体中变量的隐含存储类别是自动变量auto。 3、 ( )return语句作为函数的出口,在一个函数体内只能有一个。 4、 ( )在C程序中,函数不能嵌套定义,但可以嵌套调用。 5、 ( ) C语言的源程序中必须包含库函数。 6、 ( )在C程序中,函数调用不能出现在表达式语句中。 7、 ( )在C函数中,形参可以是变量、常量或表达式。 8、 ( )在主函数main( )中定义的变量都可以在其它被调函数中直接使用。

9、 ( )在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。10、 ( )C语言程序中的main( )函数必须放在程序的开始部分。 11、 ( )若定义的函数没有参数,则函数名后的圆括号可以省略。 12、 ( )函数的函数体可以是空语句。 13、 ( )函数的实参和形参可以是相同的名字。 14、 ( )函数调用中,形参与实参的类型和个数必须保持一致。 15、 ( )C语言中函数返回值的类型由return语句中的表达式的类型决定。 16、 ( )外部类型的变量只能定义一次,但可在不同地方声明多次。 17、 ( )外部类型的变量作用范围大,编程中应多用外部变量。 答案:

BCBBD CBBDB CADAD CCDAC DBCBD

23

高级语言程序设计综合练习一 学号: 姓名:

1F 2T 3F 4T 5 F 6F 7 F 8 F 9T 10F 11F 12T 13T 14T 15F 16T 17F

第8章 指 针

一、 选择题

1、 下列选项中正确的语句组是:( )

A)char s[8]; s={\)char *s; s={\C)char s[8]; s=\ D)char *s; s=\2、 若有定义:int *p[3];,则以下叙述中正确的是:( ) A)定义了一个类型为int的指针变量p,该变量具有三个指针

B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C)定义了一个名为*p的整型数组,该数组含有三个int类型元素

D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 3、 已定义以下函数

fun(char *p2, char *p1)

{ while((*p2=*p1)!='\\0'){ p1++;p2++; } } 函数的功能是:( )

A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

D)检查p1和p2两个指针所指字符串中是否有'\\0'

4、 若有如下定义char a[10],*p=a,则对a数组中元素的不正确的引用是:( )

A)*&a[5] B)a+2 C)*(p+5) D)*(a+5) 5、 有以下程序 main()

{ int x[8]={8,7,6,5,0,0}, *s; s=x+3;

printf(\}

执行后输出结果是:( )

A) 随机值 B) 0 C) 5 D) 6 6、 下列程序的运行结果是:( ) void fun(int *a, int *b) { int *k;

k=a; a=b; b=k; }

main()

{ int a=3, b=6, *x=&a, *y=&b; fun(x,y);

printf(\}

A) 6 3 B) 3 6 C) 0 0 D)编译出错 7、 下面程序的输出结果是:( ) main()

24