实验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
{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
{
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,要求使用自编函数实现该功能。