C语言试题啊,求大神帮忙答案啊!

题号:1
以下正确的说法是( )
选项:
a、用户若需要调用标准库函数,调用前必须重新定义
b、用户可以重新定义标准库函数,若如此,该函数将失去原有意义
c、用户系统根本不允许用户重新定义标准库函数
d、用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动
寻找该文件
题号:2
以下正确的函数定义形式是( )
选项:
a、double fun(int x,int y)
b、double fun(int x
c、int y)
d、double fun(int x,int y)
e、doubel fun(int x
f、int y)
题号:3
以下不正确的说法为( )
选项:
a、在不同函数中可以使用相同名字的变量
b、形式参数是局部变量
c、在函数内定义的变量只在本函数范围内有效
d、在函数内的复合语句中定义的变量在本函数范围内有效
题号:4
建立函数的目的之一,以下正确的说法是( )
选项:
a、提高程序的执行效率
b、提高程序的可读性
c、减少程序的篇幅
d、减少程序文件所占内存
题号:5
C语言规定,函数返回值的类型是由( )所决定。
选项:
a、return语句中的表达式类型
b、调用该函数时的主调函数类型
c、调用该函数是系统临时指定
d、在定义该函数时所指定的函数类型
题号:6
凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
选项:
a、auto
b、static
c、extern
d、register
题号:7
以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub
(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}
选项:
a、5, 2, 3
b、 -5, -12, -7
c、 -5, -12, -17
d、 5, -2, -7
题号:8
若用数组名作为函数调用的实参,传递给形参的是( )
选项:
a、数组的首地址
b、数组第一个元素的值
c、数组中全部元素的值
d、数组元素的个数
题号:9
若使用一位数组名作为函数实参,则以下正确的说法是( )
选项:
a、必须在主调函数中说明此数组的大小
b、实参数组类型与形参数组类型可以不匹配
c、在被调函数中,不需要考虑形参数组的大小
d、实参数组名与形参数组名必须一致
题号:10
如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是( )
选项:
a、只在该复合语句中有效
b、只在该函数中有效
c、在本程序范围内均有效
d、为非法变量

题号:1
以下正确的说法是( )
选项:
a、用户若需要调用标准库函数,调用前必须重新定义
b、用户可以重新定义标准库函数,若如此,该函数将失去原有意义
c、用户系统根本不允许用户重新定义标准库函数
d、用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件
本题答案为d,无论是标准库函数还是什么函数,都是函数,都允许用户重新定义和使用,使用的时候只需要用#include <XX.h>包括进来就可以了,也就是预编译命令。其中#include就是预编译命令。

题号:2
以下正确的函数定义形式是( )
选项:
a、double fun(int x,int y)
b、double fun(int x
c、int y)
d、double fun(int x,int y)
e、doubel fun(int x
f、int y)
函数的定义规则是这样的:<函数返回类型> <函数名>(函数参数用逗号隔开){函数体}
函数声明的规则是这样的:<函数返回类型> <函数名>(函数参数用逗号隔开);
综上所述,该题没有正确答案,唯一接近正确答案的为ad。

题号:3
以下不正确的说法为( )
选项:
a、在不同函数中可以使用相同名字的变量
b、形式参数是局部变量
c、在函数内定义的变量只在本函数范围内有效
d、在函数内的复合语句中定义的变量在本函数范围内有效
C中有一个关键字为extern,专门把局部变量转为全局变量,所以C是错误的。
本题答案为C

题号:4
建立函数的目的之一,以下正确的说法是( )
选项:
a、提高程序的执行效率
b、提高程序的可读性
c、减少程序的篇幅
d、减少程序文件所占内存

本题答案为a,
函数的增加,
b会使得程序的可读性增加,这个可以理解,模块化了,当然可读性增加了
c,多次调用一个函数即可,不用重复的写代码,这个也可以理解
d,重复的代码既然少了,整个程序的大小自然也小了,当然减少了程序文件所占的内存
至于a的效率提高了,这个不对,因为函数多了,会频繁的进行压栈出栈的操作,加大cpu的工作负荷,整个程序的效率变低了。

题号:5
C语言规定,函数返回值的类型是由( )所决定。
选项:
a、return语句中的表达式类型
b、调用该函数时的主调函数类型
c、调用该函数是系统临时指定
d、在定义该函数时所指定的函数类型
这个可以参考第二题,函数的定义规则,当然是由定义的时候确定的了。
本题答案为d。

题号:6
凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
选项:
a、auto
b、static
c、extern
d、register
这个题目容易,没有指定当然是自动指定的了。
本题答案为a。
另外一个小知识,我们平常看到的int a,b,c;实际上省略了auto,全部应该是 auto int a,b,c;

题号:7
以下程序的运行结果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub
(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}
选项:
a、5, 2, 3
b、 -5, -12, -7
c、 -5, -12, -17
d、 5, -2, -7

void sub (int x,int y,int *z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,&a); 执行完这句a的值为-5;
sub(7,a,&b);执行完这句b的值为-12;
sub(a,b,&c);执行完这句c的值为-7
printf("%4d,%4d,%4d",a,b,c);
}
答案为b;

题号:8
若用数组名作为函数调用的实参,传递给形参的是( )
选项:
a、数组的首地址
b、数组第一个元素的值
c、数组中全部元素的值
d、数组元素的个数
本题答案为a
数组名为数组的首地址,也是数组第一个元素的值的地址。数组名是一个地址。

题号:9
若使用一位数组名作为函数实参,则以下正确的说法是( )
选项:
a、必须在主调函数中说明此数组的大小
b、实参数组类型与形参数组类型可以不匹配
c、在被调函数中,不需要考虑形参数组的大小
d、实参数组名与形参数组名必须一致

本题答案为a,
必须在主调函数中定义该数组的大小。也就是该数组大小应该被提前设定好。
int a[10]可以作为参数,int a[x]不可以作为参数。

题号:10
如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是( )
选项:
a、只在该复合语句中有效
b、只在该函数中有效
c、在本程序范围内均有效
d、为非法变量
答案为
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-06
补充下:第4题说的是正确答案 所以应是b(楼上的看成不正确的了)
最后一题:b 但其他函数可以通过extern引用 并不绝对只能在函数内使用
第2个回答  2012-09-04
供参考1、b 2、ad 3、d 4、 b 5、d 6、a 7、b 8、a 9、a 10、a
第3个回答  2012-09-04
支持一楼正解。。!!