点击蓝字
关注我们 FOLLOW US
1.这下面程序的正确运行结果是(C)。
void fun(int s[],int n1,int n2)
{ int i,j,t;
i=n1;
j=n2;
while (i { t=s[i];s[i]=s[j];
s[j]=t;
i++;j--;
}
}
int main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(a,0,3);fun(a,4,9);fun(a,0,9);
for(i=0;i<10;i++)
printf("%2d",a[i]);
printf("\n");
return 0;
}
A .0 9 8 7 6 5 4 3 2 1
4 3 2 1 0 9 8 7 6 5
5 6 7 8 9 0 1 2 3 4
0 9 8 7 6 5 1 2 3 4
2.以下程序的输出的结果是_C_。
#include
int x=3;
void incre();
int main()
{ int i;
for (i=1;i return 0;
}
void incre()
{ static int x=1;
x*=x+1;
printf(" %d",x);
}
A.3 3
B.2 2
C.2 6
D.2 5
3.请读程序:
#include
void fun( int *s)
{ static int j=0;
do s[j]+=s[j+1];
while(++j<2);
}
int main()
{ int k, a[10]={1,2,3,4,5};
for(k=1; k<3; k++) fun(a);
for(k=0; k<5; k++) printf("%d ", a[k]);
return 0;
}
程序的输出结果是:(D)
A.3 4 7 5 6
B.2 3 4 4 5
C.1 2 3 4 5
D.3 4 7 4 5
4.以下描述错误的是( D)。
函数调用可以
出现在执行语句中
出现在一个表达式中
作为一个函数的实参
作为一个函数的形参
5.下面函数的调用语句含有实参的个数为(B )。
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
6.以下程序运行后的输出结果是(D )。
int fun(int x, int y)
{if(x>y)
return x;
else
return y;
}
int main(void)
{int x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%d\n",r);
return 0;
}
A.3
B.6
C.8
D.12
7.凡是函数中未指定存储类别的局部变量,其隐含的存储类型为( A)。
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
8.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是。 (D)
A.extern
B.register
C.auto
D.static
9.将一个函数说明为static后,该函数将 (B )。
A.既能被同一源文件中的函数调用,也能被其他源文件中的函数调用
B.只能被同一源文件中的函数调用,不能被其他源文件中的函数调用
C.只能被其他源文件中的函数调用,不能被同一源文件中的函数调用
D.既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用
10.执行以下程序,打印输出的内容是:(C)
#include
int x=5, y=7;
void swap( ){
int z;
z=x; x=y; y=z;
}
int main( ){
int x=3, y=8;
swap( );
printf("%d, %d\n", x, y);
return 0;
}
A.5, 7
B.7, 5
C.3, 8
D.8, 3
11.一个C语言源程序中,main()函数的位置(D)
A.必须在其他所有函数之后
B.必须在其他所有函数之前
C.必须在固定的位置上
D.可以在任意位置
12.下列程序的输出结果是 (C)
int fun(int x) {
static int a = 3;
a += x;
return (a);
}
int main()
{ int k = 2, m = 1, n;
n = fun(k); n = fun(m);
printf("%d\n", n);
return 0;
}
A.5
B.4
C.6
D.3
13.C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是(B)。
A.地址传递
B.值传递
C.由实参传给形参,再由形参传给实参
D.由用户指定传递方式
14.变量存储类别*
寄存器变量使用 ▁▁▁C▁▁ 关键字。
A.auto
B.extern
C.register
D.static
15.不合法的main函数命令行参数表示形式是 (C)
A.main(int a,char *c[])
B.main(int arc,char **arv)
C.main(int argc,char *argv)
D.main(int argv,char *argc[])
16.以下程序的结果是_B_。
#include
int a,b;
void fun()
{ a=100;
b=200;
}
int main()
{ int a=5,b=7;
fun();
printf("%d%d\n",a,b);
return 0;
}
A.100200
B.57
C.200100
D.75
17.以下程序的结果是_A_。
#include
int f(int a)
{ int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
int main()
{ int a=2, i;
for(i=0;i<3;i++)
printf("%d ",f(a));
return 0;
}
A.7 8 9
B.7 9 11
C.7 10 13
D.7 7 7
18.请选出以下程序段的输出结果_C_。
#include
#define MIN(x,y) (xint main()
{int i,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
return 0;
}
A.15
B.100
C.10
D.150
19.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是B__。
A.地址传递
B.单向值传递
C.由实参传给形,再由形参传回实参
D.传递方式由用户指定
2-20
以下正确的函数声明形式是(D )。
A.int fun(int x,int y)
B.int fun(int x;int y)
C.int fun(int x, y);
D.int fun(int x,int y);
21.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( D)。
A.地址传递
B.由用户指定传递方式
C.双向值传递
D.单向值传递:实参的值传给形参
22.以下程序有语法性错误, int main(void) {int N=3,k; void fun1(); //函数声明 … k=fun1(N); //函数调用 ...}。有关错误原因的正确说法是(B )。
A.语句void fun1();有错,它是函数调用语句,不能用void说明。
B.函数说明和函数调用语句之间有矛盾
C.函数声明语句不应该放在这里。
D.变量名不能使用大写字母
23.在C语言中以下正确的叙述是 (D )。
A.函数的定义和函数的调用均可以嵌套。
B.函数的定义和函数的调用均不可以嵌套。
C.函数的定义可以嵌套,但函数的调用不可以嵌套。
D.函数的定义不可以嵌套,但函数的调用可以嵌套。
24.若有数组名作为函数调用的实参,传递给形参的是( A)。
A.数组的首地址
B.数组第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
25.如果在一个函数中的复合语句中定义了一个变量,则该变量( B)。
A.在该函数中有效
B.只在该复合语句中有效
C.在该程序范围内均有效
D.为非法变量
26.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(B )。
A.静态(static)
B.自动(auto)
C.外部(extern)
D.寄存器(register)
27.以下说法正确的是(B )。
A.实参类型不必同形参类型一致。
B.实参可以是常量、变量和表达式。
C.形参可以是常量、变量和表达式。
D.实参顺序与形参顺序无关。
28.有关C语言的主函数描述正确的是(C )。
A.C程序可以有多个main函数
B.C程序可以没有main函数
C.C程序有且只有一个main函数
D.C程序不一定从main函数开始执行
29.对于一维数组名作为函数实参,以下描述正确的是( B)。
A.实参数组类型与形参数组类型可以不一致。
B.必须在主调函数中说明此数组的大小。
C.函数调用时是将实参数组中的所有元素值复制到形参数组中。
D.实参数组名与形参数组名必须保持一致。
30.已有如下数组定义和函数调用语句, int a[3][4]; fun(a); 则fun函数的形参数组定义正确的是 (B )。
A.fun(int a[][6])
B.fun(int a[3][]) C.fun(int a[][])
C.fun(int a[][4])
31.以下描述错误的是( A)。
A.实参数可以与形参个数不一致。
B.C程序中,函数可以直接或间接地调用自己。
C.函数调用时,函数名必须与所调用的函数名字完全一致。
D.函数声明语句中的类型必须与函数返回值得类型一致。
32.以下对局部变量描述错误的是(B )。
A.在函数内部定义的变量。
B.在程序的全部执行过程中一直占用存储单元。
C.在main函数中定义的变量是局部变量。
形式参数也是局部变量。
33.在一个源文件中定义的全局变量的作用域是(B )。
A.本文件的全部范围。
B.从定义该变量的位置开始到本文件结束。
C.本程序的全部范围。
D.本函数的全部范围。
34.以下关于局部变量和全局变量的叙述错误的是( C)。
A.main函数中定义的变量是局部变量。
B.局部变量可以与全局变量重名。
C.形式参数不是局部变量。
D.在所有函数外定义的变量是全局变量。
35.若函数定义如下,int fun(float a) {float b=a+3; return b; } 假设将常数3.6传给a,则函数的返回值是(D)。
A.3
B.6.6
C.5
D.6
36.函数调用结束后,形式参数( D)。
A.继续占用相同大小的内存
B.不确定
C.占用内存减小
D.释放内存
37.C语言中有两种类型的函数,分别是(D )。
A.输入输出函数与数学函数
B.输入输出函数与自定义函数
C.标准库函数与数学函数
D.标准库函数与自定义函数
38.上机运行以下程序(例1-1),输入整数13,输出结果是错误的,其原因是(D )。 (2分)
#include /* 编译预处理命令 */
int main(void) /* 主函数 */
{ int n; /* 变量定义 */
int factorial(int n); /* 函数声明 */
scanf("%d", &n); /* 输入一个整数 */
printf("%d\n", factorial(n)); /* 调用函数计算阶乘 */
return 0;
}
int factorial(int n) /* 定义计算 n! 的函数 */
{int i, fact = 1;
for(i = 1; i <= n; i++){
fact = fact * i;
}
return fact;
}
A.printf函数中使用了错误的格式控制符
B.for循环语句多执行了一次,计算结果是14的阶乘
C.for循环语句少执行了一次,计算结果是12的阶乘
D.运算结果超出了整数的取值范围
39.以下叙述中错误的是。 (B)
A.用户定义的函数中可以没有return语句
B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
C.用户定义的函数中若没有return语句,则应当定义函数为void类型
D.函数的return语句中可以没有表达式
40.下列程序执行后输出的结果是 (D)
int d=1;
void fun (int q)
{ int d=5;
d+=q++;
printf("%d ",d);
}
int main(void)
{ int a=3;
fun(a);
d+=a++;
printf("%d\n",d);
return 0;
}
A.8 4
B.9 6
C.9 4
D.8 5
41.下列程序执行后输出的结果是 (D)
int f(int a)
{ int b=0;
static int c=3;
a=c++, b++;
return (a);
}
int main(void)
{ int a=2,i,k;
for(i=0;i<2;i++) k=f(a++);
printf("%d\n",k);
return 0;
}
A.3
B.0
C.5
D.4
42.递归函数最终会结束,那么这个函数一定(C )
A.使用了全局变量
B.使用了全局变量或者使用了一个多个参数
C.有一个分支不调用自身
D.没有循环调用
43.能把函数处理结果的两个数据返回给主调函数,下面的方法中不正确的是(D )
A.return 数组的首址
B.形参用数组
C.用两个全局变量
D.return 两个数
44.以下是一个C语言程序的除标准库之外的全部源代码,则说法正确的是 (B)
A.这段程序编译错误
B.这段程序编译正确,但是链接(link)错误
C.这段程序编译、链接(link)正确,但是运行时错误
D.程序无错,可正常运行
#include
void foo(int);
int main(){
foo(2223);
return 0;
}
45.以下是一个C语言程序的除标准库之外的全部源代码,则说法正确的是 (B)
A.这段程序编译错误
B.这段程序编译正确,但是链接(link)错误
C.这段程序编译、链接(link)正确,但是运行时错误
D.程序无错,可正常运行
#include
extern int k;
int main(){
k = 2223;
printf("%d\n", k);
return 0;
}
46.以下正确的函数声明形式是( B)。 (2分)
A.int func(int x , int y)
B.int func(int , int);
C.int func(int x ; int y);
D.int func(int x , y);
47.假设有以下声明:
int fn(int x, int y); int (*fp)(int x, int y);
那么下面哪个语句是错误的 ?(B)
fn(3, fn(4, 5));
*fp(6, 7);
fp = fn;
(*fp )(5, fn(1, 2)) ;
48.有函数int func(int i)的实现为:
int func(int i)
{ if (i > 1)
return i * func(i - 1);
else
return 1;
}
请问函数调用func(5)的返回值是多少? (D)
A.5
B.15
C.20
D.120
49.以下函数定义,正确的是: (C)
A.int fun(int a, int b)
{int a = a+b;
return a;}
B.void fun(int a, int b)
{return a+b;}
C.int fun(float a, float b)
{return a+b;}
D.int fun(int a, int b);
{return a+b;}
50.若有如下函数定义,则对应正确的函数原型声明是:(A)
void fun(int a, int b)
{ return a+b;
}
A.void fun(int a, int b);
B.void fun(int a, int b)
C.void fun(float a, int b);
D.int fun(int a, int b);

发现“分享”和“赞”了吗,戳我看看吧