22饼干头:c语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 20:48:24
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

10.d
11.c
12.b
13.c
14.d
15.b
在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理,而不是void,返回值是0
16.b
如果函数的类型与返回值类型不一致,以函数类型为准。
17.c
18.b
19.a
在复合语句内所定义的变量,称为该复合语句中的局部变量,它仅在当前这个复合语句中有效
{/* 复合语句1 */

int b,m; /* 定义局部变量 b,m,它们仅在复合语句1 中有效 */

b = 8; m = 100;

printf("\nY: %d %d %d %d | %d",a,b,c,d,m);

{ /* 复合语句2 */

int c,n; /* 定义局部变量 c,n,它们仅在复合语句2中有效 */

c = 9; n = 150;

printf("\nZ: %d %d %d %d | %d %d",a,b,c,d,m,n);

} /* 复合语句2 结束 */

printf("\nY: %d %d %d %d | %d",a,b,c,d,m);

}

20.a
21.b

D,C,B,C,D,A,A,C,B,A,A,B