第 1 题(单选题)
题目名称:
关于实参和形参描述错误的是:( )
题目内容:
A .形参是实参的一份临时拷贝
B .形参是在函数调用的时候才实例化,才开辟内存空间
C .改变形参就是改变实参
D .函数调用如果采用传值调用,改变形参不影响实参
A:正确,传参时不论是按照值还是指针方式传递,形参拿到的都是实参的一份拷贝
B:正确,函数没有调用时,新参没有空间
C:错误,如果是按照值的方式传递,形参和实参各自有各自的空间,改变形参不能改变外部的实参
D:正确,因为形参和实参是两个不同的变量
第 2 题(单选题)
题目名称:
函数调用exec((vl,v2),(v3,v4),v5,v6);中,实参的个数是:( )
题目内容:
A .3
B .4
C .5
D .6
exec((vl,v2),(v3,v4),v5,v6) 总共有四个参数
(v1, v2)属于第一个实参,逗号表达式,真实的参数时v2
(v3,v4)属于第二个实参,逗号表达式,真实的参数是v4
v5属于第三个实参
v6属于第四个实参
第 3 题(单选题)
题目名称:
以下关于函数设计不正确的说法是:( )
题目内容:
A .函数设计应该追求高内聚低耦合
B .要尽可能多的使用全局变量
C .函数参数不易过多
D .设计函数时,尽量做到谁申请的资源就由谁来释放
A:正确,高内聚低耦合即:函数体内部实现修改了,尽量不要对外部产生影响,否则:代码不方便维护
B:错误,全局变量每个方法都可以访问,很难保证数据的正确性和安全性
C:正确,参数越少越好,否则用户在使用时体验不是很好,还得必须将所有参数完全搞明白才可以使用
D:正确,谁申请的谁维护谁释放,否则如果交给外部使用者释放,外部使用者可能不知道或者忘记,就会造成资源泄漏
第 4 题(单选题)
题目名称:
关于C语言函数描述正确的是:( )
题目内容:
A .函数必须有参数和返回值
B .函数的实参只能是变量
C .库函数的使用必须要包含对应的头文件
D .有了库函数就不需要自定函数了
A:错误,可以没有参数和返回值类型,根据需要给出
B:错误,函数的实参可能是变量,也可能是常量,也可能是宏,也可能是指针等等
C:正确,在使用库函数时,必须要包含该库函数所在的头文件,否则编译器将不能识别
D:错误,库函数是语言设计者为了让用户能够更好的使用,而给出的,但并不能解决用户的所有问题,因此其他问题还需要用户自己写方法解决
第 5 题(单选题)
题目名称:
C语言规定,在一个源程序中,main函数的位置( )
题目内容:
A .必须在最开始
B .必须在库函数的后面
C .可以任意
D .必须在最后
main函数的位置可以再任意位置,但是如果在主函数之前调用了那些函数,必须在main函数前对其所调用函数进行生命或包含其被调用函数的头文件。
第 6 题(单选题)
题目名称:
以下叙述中不正确的是:( )
题目内容:
A .在不同的函数中可以使用相同名字的变量
B .函数中的形式参数是在栈中保存
C .在一个函数内定义的变量只在本函数范围内有效
D .在一个函数内复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)
A:正确 不同的函数属于不同的作用域,因此不同的函数中定义相同名字的变量不会冲突
B:正确 在C语言中,函数的形参一般都是通过参数压栈的方式传递的
C:正确 在函数内定义的变量,称为局部变量,局部变量只能在其定义的函数中使用
D:错误 复合语句中定义的变量只能在复合语句中使用
第 7 题(编程题)
题目名称:
交换两个整数
题目内容:
实现一个函数来交换两个整数的内容。
void swap(int* a, int* b)
{
int tmp = 0;
tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
printf("交换前:a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
第 8 题(编程题)
题目名称:
乘法口诀表
题目内容:
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
如:输入9,输出99口诀表,输出12,输出1212的乘法口诀表。
void PrintMulTable(int n)
{
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= i; ++j)
{
printf("%d * %d = %2d ", j, i, j * i);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
PrintMulTable(n);
return 0;
}