第一部分 选择题
一.能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:( )
A.return 这二个数
B.形参用数组
C.形参用二个指针
D.用二个全局变量
解析:
主调函数:A调用B,A就是主调函数;能把函数处理结果的二个数据返回给主调函数就是调用函数后,会对其他参数有影响;
A:只能return一个数,return 3,4;这属于一个逗号表达式,会返回4;
B:
#include<stdio.h>
void test(int arr[])
{
arr[0]=1;
arr[1]=2;
}
int main()
{
int arr[5]={0};
printf("%d %d\n",arr[0],arr[1]); //0 0
test(arr);
printf("%d %d\n",arr[0],arr[1]); // 1 2
return 0;
}
C:
#include<stdio.h>
void test(int *px,int *py)
{
*px=1;
*py=2;
}
int main()
{
int x=0;
int y=0;
test(&x,&y);
printf("%d %d\n",x,y); //1 2
return 0;
}
D:
#include<stdio.h>
int x = 0;
int y = 0;
void test()
{
x = 1;
y = 2;
}
int main()
{
test();
printf("%d %d\n", x, y); //1 2
return 0;
}
二.关于函数调用说法不正确的是:( )
A.函数可以传值调用,传值调用的时候形参是实参的一份临时拷贝
B.函数可以传址调用,传址调用的时候,可以通过形参操作实参
C.函数可以嵌套定义,但是不能嵌套调用
D.函数可以嵌套调用,但是不能嵌套定义
三.在函数调用时,以下说法正确的是:( )
A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里
四.关于实参和形参描述错误的是:( )
A.形参是实参的一份临时拷贝
B.形参是在函数调用的时候才实例化,才开辟内存空间
C.改变形参就是改变实参
D.函数调用如果采用传值调用,改变形参不影响实参
五.函数调用exec((vl,v2),(v3,v4),v5,v6);中,实参的个数是:( )
A.3
B.4
C.5
D.6
解析:函数参数可以是变量,参数,表达式等 (vl,v2)是表达式
六.以下关于函数设计不正确的说法是:( )
A.函数设计应该追求高内聚低耦合
B.要尽可能多的使用全局变量 //不可控
C.函数参数不易过多 //不方便,多了
D.设计函数时,尽量做到谁申请的资源就由谁来释放
解析:
高内聚低耦合:函数尽量相互独立,不要掺杂对方的功能各模块之间尽量独立;
工程里应该少使用全局变量;
七.关于C语言函数描述正确的是:( )
A.函数必须有参数和返回值
B.函数的实参只能是变量
C.库函数的使用必须要包含对应的头文件
D.有了库函数就不需要自定函数
八.以下叙述中不正确的是:( )
A.在不同的函数中可以使用相同名字的变量 //各自函数的局部变量,作用域不一样,看不见;
B.函数中的形式参数是在栈中保存
C.在一个函数内定义的变量只在本函数