1.
int f(int a)
{
auto int b = 0;
static int c = 3;
b = b + 1;
c = c + 1;
return ( a + b + c );
}
int main()
{
int i,j;
i = f ( 2 );
j = f ( 2 );
printf("%d %d",i,j);
return 0;
}
输出i=7,j=8。
auto int定义的是局部变量,每次调用函数都会创建,static是静态全局变量,作用域是全局。
如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,则这个变量的存储类型应该被说明为( )。
-
A.
register 寄存器变量
-
B.
static 静态变量
-
C.
extern 外部变量
-
D.
auto 自动变量
B。
2.
若有定义int a=10;,下面正确的表达式是( )。
B.++a---
C.
a+2++
-
D.
-a++
D。表达式(以及常量)不能进行自加、自减操作。
2-20在一个被调用函数中,对return 语句使用有错误的是( )。
(1分)A.在类型为void的函数定义中,不能使用 return 语句
B.被调用函数中可以使用多个 return 语句
C.被调用函数中,如果有返回值,就一定要有 return 语句
D.一个 return 语句只能返回一个值给主调函数
A。return;语句用于强行中止。
2-27已知一个函数的定义如下:
double play(int x, double y) { …… }
则该函数正确的函数原型声明为()。(1分)A.double play(int ,double);
B.play(int x,double y)
C.double play( x , y );
D.play(x,y) ;
A
也可以不写形参,只写数据类型:
dataType functionName( dataType1, dataType2 ... );
2-30以下函数值的类型是()。
fun(double x) { double y; y=x*x; return y; }
(1分)A.double
B.不确定
C.int
D.void
c
-
C语言规定,函数返回值的类型由函数首部定义的类型决定。函数返回值应与首部定义的类型一致,如若不一致,则自动将返回值强制转换为函数首部定义的类型。
-
没有定义类型时默认为int型。也就是说你的函数是什么类型,返回值就是什么类型。
2-45有如下的定义:
char p[ ]="hello!"; char q[10]={'h','e','l','l','o','!'}; printf(""%d %d",strlen(p),strlen(q));
则下述叙述中正确的是( )。
(1分)A.p数组占6个字节,strlen函数输出长度为6。
B.由于 q 数组中没有字符串结束符,长度不确定,但 p 数组中字符串长度为6。
C.由于 p 数组中没有字符串结束符,长度不确定,但 q 数组中字符串长度为6。
D.q数组占10个字节,strlen函数输出长度为6。
D
2-97下列实型常量,错误的是( )。
(1分)A.2.2f
B.-2.2E-2
C.e2
D.-3.0
C e02
2-59若有说明:int a[ ][4]={1,2,3,4,5,6,7};则数组a第一维大小是
(1分)A.2
B.3
C.4
D.不确定
A。第一维即行数,这里未定义,但可以通过元素数量推断。
-
-