1-10
The data type for return value of a function is the type of function determined when the function is defined.
T
1-19
为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。F
2-6
以下关于函数叙述中,错误的是(C )。(1分)
A.函数未被调用时,系统将不为形参分配内存单元
B.实参与形参的个数必须相等,且实参与形参的类型必须对应一致
C.当形参是变量时,实参可以是变量、常量或表达式
D.如函数调用时,实参与形参都为变量,则这两个变量不可能占用同一内存空间
2-9
According to the following definition of function fun ,
void fun(int n, double x) { …… } which one is the** correct** calling of the function fun ?
(1分)
//A.fun(int y,double m);
B.k=fun(10,12.5);
C.fun(x, n);
D.void fun(n,x);
选C
2-13
下面说法中正确的是(C)。(1分)
A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度
B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度
//C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑变量生命周期问题
D.静态全局变量使用过多,可那会导致动态存储区(堆栈)溢出
A.B.C都正确,这题应该是选错误选项,如果选错误选项应该选D。
A选项:变量分为全局变量和局部变量。局部变量和形参的作用域是函数内部,全局变量的作用域是整个文件。但可以通过声明一个extern的全局变量拓展全局变量的作用域,也可以通过定义一个static的全局变量限制这种拓展。
B选项:如果全局变量仅仅由单个函数访问,不存在耦合度的问题
C选项:动态全局变量、静态全局变量、静态局部变量的生命周期都为程序运行期间,其中静态局部变量的生存周期虽然为整个源程序,但是其作用域仍然与局部变量相同,当退出函数是,该变量还存在,但是不能使用。
D选项:全局变量和静态变量都是存储在静态存储区,所以在递归调用是不会压栈,也不会造成堆栈溢出。
若全局变量仅在单个C 文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度
若全局变量仅由单个函数访问,不存在耦合度的问题
动态全局变量,静态全局变量,静态局部变量的生命周期都是整个程序运行期间,跟函数设计没有关系
静态全局变量存储于全局(静态)数据区
2-15
对于定义char str[] = “abc\0def”; (注:其中0为数字零),求字符串str的长度len(即调用标准库函数strlen:len = strlen(str))和数组str的大小size(即size = sizeof(str)),len和size分别是:C
(2分)
A.7,8
B.7,7
C.3,8
D.3,7
实现代码如下:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char str[] = "abc\0def";
int len,size;
len = strlen(str);
size = sizeof(str);
printf("%d %d",len,size);
return 0;
}