C语言实验10 下载本文

实验10:变量的存储类型、生存期和作用域

一、实验目的

(1)掌握变量的主要存储类型:静态存储与动态存储

(2)掌握函数生存期和作用域,理解局部变量和全局变量含义

二、基础知识巩固

1、以下不正确的说法为( )

A.在不同函数中可以使用相同名字的变量 B.形式参数是局部变量

C.在函数内定义的变量只在函数范围内有效

D.在函数内的复合语句中定义的变量在本函数内有效

2、下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是_____________,改正后应是__________ void add(float a,float b) { float c; c=a+b; return c;}

3、以下程序的正确运行结果是_________. #include void num()

{extern int x,y,a=15,b=10; x=a-b; y=a+b; } int x,y; main()

{ int a=7,b=5; x=a+b; y=a-b;num(); printf(\

a)12,2 b)不确定 c)5,25 d)1,12 4、以下程序的运行结果是_____________ int x; main()

{ x=5; cude(); printf(“%d\\n”,x);} cude ( ) { x=x*x*x; }

5、以下程序的运行结果是_____________ int a=5,b=7; main()

{ int a=4,b=5,c; c=plus(a,b);

printf(“A+B=%d\\n”,c); }

plus(int x,int y)

{ int z; z=x+y; return(z); } 6、下面程序的运行结果是_____________ main() { int i=5;

printf(“%d\\n”,sub(i));} sub(int n) { int a;

if(n==1) return 1; a=n+sub(n-1); return(a);}

7、以下程序的运行结果是_____________ main()

{ int i=2,x=5,j=7; fun(j,6);

printf(“i=%d;j=%d;x=%d\\n”,i,j,x);} fun(int i,int j) { int x=7;

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

8、请在横线上填上合适的表达式,使程序完成将字符串“Hello”逆序显示。 #include main( )

{

pt(“Hello”); }

pt (char str[ ]) {int i=0,j=0;

while ( ){j++;i++;} for (;j>=0;j--)

printf(“%c”, ); }

二、编程题

1、编写程序,从键盘上输入正整数n,计算n的各位数字之和并输出。例如,当n的值为123456时,程序的输出结果为21,要求使用自编函数实现该功能。

2. 编写程序,从键盘输入两个长度小于50的字符串s1、s2,将s2连接到s1的后面并输出s1,要求不使用函数strlen和strcat,要求使用自编函数实现该功能。