函数的隐含存储类别
㈠ C语言试题啊,求大神帮忙答案啊!
题号: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、为非法变量
答案为
㈡ 大一期末C语言考试的重点是什么
我上点选择题
1、以下不正确的描述为【 】。
(A) 调用函数时,实参可以是表达式
(B) 调用函数时,实参与形参可以共用内存单元
(C) 调用函数时,将为形参分配内存单元
(D) 调用函数时,实参与形参的类型必须一致
2、以下正确的叙述是【 】。
(A) C语言的主函数是无参函数
(B) C语言的主函数最多允许有1个形式参数
(C) C语言的主函数最多允许2个形式参数
(D) C语言的主函数可以有2个以上形式参数
3、C语言中函数返回值的类型是由【 】决定的。
(A) return语句中的表达式类型
(B) 调用该函数的主调函数类型
(C) 调用函数时临时
(D) 定义函数时所指定的函数类型
4、若x为int型变量,则以下函数fun【 】。
fun(int x)
{
printf("%d",x);
}
(A) 返回值为void类型
(B) 无法确定返回值
(C) 返回值为int类型
(D) 没有返回值
5、以下不正确的描述为【 】。
(A) 不同函数中可以使用相同名字的变量
(B) 形式参数是局部变量
(C) 一个函数内部定义的变量只能在本函数范围内有效
(D) 在一个函数内部的复合语句中定义的变量可以在本函数范围内有效
6、C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是【 】。
(A) 地址传递
(B) 值传递
(C) 由实参传给形参,并由形参传回来给实参 十
(D) 由用户指定传递方式
7、若用数组名作为函数调用时的实参,则实际上传递给形参的是【 】。
(A) 数组首地址
(B) 数组的第一个元素值
(C) 数组中全部元素的值
(D) 数组元素的个数
8、凡是函数中未指定存储类别的变量,其隐含的存储类别为【 】。//应该为局部变量
(A) 自动(auto)
(B) 静态(static)
(C) 外部(extem)
(D) 寄存器(register)
9、在C语言中,对于存储类型为【 】的变量,只有在使用它们时才占用内存单元。
(A) static和auto
(B) register和extern
(C) register和static
(D) auto和register
10、在一个源文件中定义的全局变量的作用域为【 】。
(A)本文件的全部范围
(B)本程序的全部范围
(C)本函数的全部范围
(D)从定义变量的位置开始至文件结束
11、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别为【 】。
(A)extern
(B)register
(C)auto
(D)static
12、以下不正确的描述为【 】。
(A)在函数之外定义的变量称为外部变量,外部变量是全局变量
(B)在一个函数中既可以使用本函数中的局部变量,又可以使用全局变量
(C)外部变量定义和外部变量说明的含义不同
(D)若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用
13、以下正确的函数定义形式是【 】。
(A)double fun(int x,int y)
(B)double fun(int x; int y)
(C)double fun(int x,int y);
(D)double fun(int x,y);
14、以下说法正确的是【 】。
(A) 实参和与其对应的形参各占用独立的存储单元
(B) 实参和与其对应的形参共占用一个存储单元
(C) 只有当实参和与其对应的形参同名时才共用存储单元
(D) 形参是虚拟的,不占用存储单元
15、若调用一个函数,且此函数中没有return语句,则正确的说法是【 】。
(A) 没有返回值
(B) 返回若干个系统默认值
(C) 能返回一个用户所希望的函数值
(D) 返回一个不确定的值
16、以下叙述正确的是【 】。
(A )定义函数时,形参的类型说明可以放在函数体内
(B) return后边的值不能为表达式
(C) 如果函数的类型与返回值类型不一致,以函数类型为准
(D) 如果形参与实参的类型不一致,以实参类型为准
17、以下程序有语法性错误,有关错误的原因的正确说法是【 】。
main( )
{int G=5,K;
void Prt_char();
……
K=Prt_char(G);
……
}
(A) 语句void prt_char();有错,它是函数调用语句,不能用void说明
(B) 变量名不能使用大写字符
(C) 函数说明和函数调用语句之间有矛盾
(D) 函数名不能使用下划线
18、以下正确的描述是【 】。
(A) 函数的定义可以嵌套,但函数的调用不可以嵌套
(B) 函数的定义不可以嵌套,但函数的调用可以嵌套
(C) 函数的定义和函数的调用均不可以嵌套
(D) 函数的定义和函数的调用均可以嵌套
19、以下说法正确的是【 】。
如果在一个函数中的复合语句中定义了一个变量,则该变量
(A) 只在该复合语句中有效
(B) 在该函数中有效
(C) 在本程序范围内均有效
(D) 为非法变量说明
20、以下程序的正确运行结果是【 】。
f(int a)
{int b=0; static int c=3;
b++; c++;
return(a+b+c);
}
main()
{int a=2,i;
for(i=0;i<3;i++) printf("%4d",f(a));
}
(A) 7 7 7 (B) 7 10 13
(C) 7 9 11 (D) 7 8 9
21、请选择正确的运行结果填入【 】中。
#include <stdio.h>
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;
m=i+x+y;
return(m);
}
main()
{
int j=4,m=1,k;
k=fun(j,m);
printf("%d,",k);
k=fun(j,m);
printf("%d\n",k);
}
(A) 08, 20 (B) 8, 8 (C) 8, 17 (D) 8, 16
22、请选择正确的运行结果填入【 】中。
#include <stdio.h>
int x,y;
num( )
{
int a=15,b=10;
int x,y;
x=a-b;
y=a+b;
return;
}
main( )
{int a=7,b=5;
x=a+b;
y=a-b;
num( );
printf("%d,%d\n",x,y);
}
(A) 12,2 (B) 5,25 (C) 2,12 (D)不确定
一、填空题
1、一个C语言程序的语句至少应包含一个______。
2、C语言源程序文件的扩展名是______,经过编译、连接后,生成文件的扩展名是______。
3、结构化程序由顺序结构、______和______三种基本结构组成。
4、C语言的执行是从______开始执行的。
5、C源程序的语句分隔符是______。
6、在C语言中,用关键字______定义单精度实型变量。
7、表达式S=12应当读做“______”。
8、C语言源程序的基本单位是______。
9、设int x=9,y=8;表达式x-=y+1的结果是______。
10、若a为整型变量,a=12,则表达式:a * =2+3的值______。
11、调用C语言对输入输出处理的库函数时,在# include命令行中应包含的头文件是______。
12、表达式9%5的结果是______。
13、若a为整型变量,a=12,则表达式:a+=4的值______。
14、 在C语言中,要求运算数必须是整型的运算符是______。
15、在C语言中,用______表示逻辑“真”值。
16、7、表达式10/3的结果是______。
17、通常一个字节包含______个二进制位。
18、 假设所有变量均为整型,a=2,b=5,b++则表达式a+b的值是______。
19、在C语言中,最基本的数据类型只有四种,它们分别是:______、______、______和double。
20、一个C程序有且仅有一个______函数。
21、若a为整型变量,a=12,则表达式:a-=2的值______。
22、在C语言中,有三种逻辑运算符,它们分别是:______、______、______。
23、在C语言中,字符输入函数和字符输出函数分别是:______和______。
24、C程序开发的四个步骤是______、______、______和执行。
25、C程序的结构分别是:顺序结构、______、______。
26、if语句中的表达式可以是关系表达式、______、______。
27、______是C语言中惟一一个三元运算符。
28、C语言提供的预处理命令主要包括如下三种:宏定义、______、______。