【答案】B
【考点解析】在C语言中,数组名代表数组中第一个元素的地址,即数组的首地址。
【例11】(2001年4月)以下只有在使用时才为该类型变量分配内存的存储类说明是( )。
A. auto和 static B. auto和 register
C. register和 static D. extern和 register
【答案】B
【考点解析】在C语言中,auto和register存储类别的变量都是使用时才为其分配内存空间的,使用完以后释放空间。
【例13】(2001年9月)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。
A. 地址传递。 B. 单向值传递。
C. 由实参传给形参,再由形参传回实参。 D. 传递方式由用户指定。
【答案】B
【考点解析】在C语言中,函数的传递方式只有单向值传递。
【例17】(2002年4月)在C语言中,形参的缺省存储类别是( )。
A. auto B. register
C. static D. extern
【答案】A
【考点解析】形参缺省类别是auto,在调用时才分配空间,调用完就释放空间。
【例18】(2003年4月)以下叙述中正确的是( )。
A. 全局变量的作用域一定比局部变量的作用域范围大。
B. 静态(static)类别变量的生存期贯穿于整个程序的运行期间。
C. 函数的形参都属于全局变量。
D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值。
【答案】B
【考点解析】全局变量的作用域范围不一定比局部变量大,在函数中当局部变量和全局变量用了相同的变量名时全局变量不起作用;函数的形参都是局部变量;auto变量初始值时随机,static变量的初始值为0或。
【例19】(2003年9月)若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是( )。
A. 调用可以作为独立的语句存在。 B. 调用可以作为一个函数的实参。
C. 调用可以出现在表达式中。 D. 调用可以作为一个函数的形参。
【答案】D
【考点解析】调用函数有三种方式:作为独立语句、作为一个函数的实际参数和在表达式中参加运算。
第6章 指针
一、选择题
【例1】(2000年4月)下列程序执行后的输出结果是( )。
void func(int *a,int b[])
{b[0]=*a+6;}
main()
{
int a,b[5];
a=0; b[0]=3;
func(&a,b);
printf("%d\n",b[0]);
}
A. 6 B. 7
C. 8 D. 9
【答案】A
【考点解析】题中func函数的两个形式参数分别为指针和数组,分别接受一个地址和一个数组名作为实际参数。实际参数&a把a的地址传递给形式参数使形参指向变量a,所以函数中*a是a的值0,数组作为函数实际参数时传递给函数的是数组的首地址,数组元素在函数中的修改会影响到函数外的值。