一. 单选题(共35题,100分)
- (单选题)对以下程序,正确的说法是_______.
sub (char x,char y)
{ int z; z=x%y; return z; }
void main( )
{ int g=5,h=3,k;
k=sub(g,h);
printf(“%d\n”,k); }
A. 实参与其对应的形参类型不一致,程序不能运行
B. 程序中没有错误,可以正常运行
C. 被调函数缺少数据类型说明,程序不能运行
D. 主函数中缺少对被调函数的说明语句,程序不能运行
我的答案: B:程序中没有错误,可以正常运行;正确答案: B:程序中没有错误,可以正常运行;
2.8分 - (单选题)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_______.
A. 传递方式由用户指定
B. 地址传递
C. 由实参传给形参,再由形参传回实参
D. 单向值传递
我的答案: D:单向值传递;正确答案: D:单向值传递;
2.8分 - (单选题)下面程序的输出是_______.
#include <stdio.h>
int m=13;
int fun2(int x, int y)
{ int m=3;
return(x*y-m);
}
void main()
{ int a=7, b=5;
printf(“%d\n”,fun2(a,b)/m);
}
A. 7
B. 2
C. 10
D. 1
我的答案: B:2;正确答案: B:2;
2.8分 - (单选题)若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是_______。
A. int 型
B. 由系统当时的情况而定
C. float 型
D. double 型
我的答案: A:int 型;正确答案: A:int 型;
2.8分 - (单选题)以下叙述中,不正确的是_______.
A. 使用float b定义的外部变量存放在内存中的动态存储区
B. 使用static float c定义的内部变量存放在内存中的静态存储区
C. 使用static float a定义的外部变量存放在内存中的静态存储区
D. 使用float d定义的内部变量存放在内存中的动态存储区
我的答案: A:使用float b定义的外部变量存放在内存中的动态存储区;正确答案: A:使用float b定义的外部变量存放在内存中的动态存储区;
2.8分 - (单选题)若函数调用时用数组名作为函数参数,以下叙述中,不正确的是_______.
A. 实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递
B. 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组
C. 实参与其对应的形参分别占用不同的存储空间
D. 实参与其对应的形参共占用同一段存储空间
我的答案: C:实参与其对应的形参分别占用不同的存储空间;正确答案: C:实参与其对应的形参分别占用不同的存储空间;
2.8分 - (单选题)以下程序的输出结果是_______.
#include <stdio.h>
void fun()
{ static int a=0;
a+=2;
printf(“%d”,a); }
void main()
{ int cc;
for(cc=1;cc<4;cc++) fun( );
printf(“\n”); }
A. 2222
B. 246
C. 2468
D. 222
我的答案: B:246;正确答案: B:246;
2.8分 - (单选题)C语言中,若未说明函数的类型,则系统默认该函数的类型是_______。
A. long型
B. double型
C. int型
D. float型
我的答案: C:int型;正确答案: C:int型;
2.8分 - (单选题)以下程序的输出结果是________.
#include <stdio.h>
int a,b;
void fun()
{ a=100; b=200; }
void main()
{ int a=5,b=7;
fun();
printf(“%d%d\n”,a,b); }
A. 200100
B. 100200
C. 75
D. 57
我的答案: D:57;正确答案: D:57;
2.8分 - (单选题)若函数调用时参数为基本数据类型的变量(俗称简单变量),以下叙述正确的是_______.
A. 实参将数据传递给形参后,立即释放原先占用的存储单元
B. 实参与其对应的形参分别占用不同的存储单元
C. 只有当实参与对应的形参同名时才共占存储单元
D. 实参与其对应的形参共占存储单元
我的答案: B:实参与其对应的形参分别占用不同的存储单元;正确答案: B:实参与其对应的形参分别占用不同的存储单元;
2.8分 - (单选题)以下程序的输出结果是_________.
#include <stdi0.h>
fun(int x,int y,int z)
{ z=xx+yy;}
void main()
{ int a=31;
fun(5,2,a);
printf(“%d”,a); }
A. 31
B. 0
C. 29
D. 无定值
我的答案: A:31;正确答案: A:31;
2.8分 - (单选题)以下函数func()的功能是:使具有n个元素的一维数组b的每个元素的值都增加2,划线处应填入__.
func(int b[ ],int n)
{ int ;
for(i=0;i<n;i++)
__________; }
A. b[i]+=2
B. b[i]++
C. b[i++]
D. b[i+=2]
我的答案: A:b[i]+=2;正确答案: A:b[i]+=2;
2.8分 - (单选题)调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是_______.
A. 实参将其值传递给形参,调用结束时形参再将其值回传给实参
B. 实参将其地址传递给形参,并释放原先占用的存储单元
C. 实参将其值传递给形参,调用结束时形参并不将其值回传给实参
D. 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
我的答案: C:实参将其值传递给形参,调用结束时形参并不将其值回传给实参;正确答案: C:实参将其值传递给形参,调用结束时形参并不将其值回传给实参;
2.8分 - (单选题)在以下叙述中,不正确的选项是_______。
A. C语言程序总是从main( )函数开始执行
B. C程序是函数的集合,在这个函数集中包括标准函数和用户自定义函数
C. 在C语言程序中,函数的定义不能嵌套,但函数的调用可以嵌套
D. 在C语言程序中,被调用的函数必须在main( )函数中定义
我的答案: D:在C语言程序中,被调用的函数必须在main( )函数中定义;正确答案: D:在C语言程序中,被调用的函数必须在main( )函数中定义;
2.8分 - (单选题)下面函数的功能是______。
sss(s, t)
char s[ ], t[ ];
{ int i=0;
while((s[i])&&(t[i])&&(t[i]== s[i])) i++;
return (s[i]-t[i]);}
A. 比较两个字符串的大小
B. 求字符串的长度
C. 将字符串s复制到字符串t中
D. 将字符串s接续到字符串t中
我的答案: A:比较两个字符串的大小;正确答案: A:比较两个字符串的大小;
2.8分 - (单选题)下列程序执行后输出的结果是_______.
#include<stdio.h>
int f(int a)
{int b=0;
static c=3;
a=c++,b++;
return(a); }
void main()
{int a=2,i,k;
for(i=0;i<3;i++)
k=f(a++);
printf(“%d\n”,k); }
A. 0
B. 5
C. 3
D. 4
我的答案: B:5;正确答案: B:5;
2.9分 - (单选题)在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是:_______.
A. auto
B. extern
C. static
D. register
我的答案: C:static;正确答案: C:static;
2.9分 - (单选题)设有如下函数定义:
int f(char s[ ])
{ int i=0;
while(s[i++]!=‘\0’);
return (i-1); }
如果在主程序中用下面的语句调用上述函数,则输出结果为_______.
printf(“%d\n”,f(“goodbey!”));
A. 8
B. 6
C. 9
D. 3
我的答案: A:8;正确答案: A:8;
2.9分 - (单选题)有如下函数调用语句 func(rec1,rec2+rec3,rec4,
rec5);该函数调用语句中,含有的实参个数是_______.
A. 4
B. 5
C. 有语法错误
D. 3
我的答案: A:4;正确答案: A:4;
2.9分 - (单选题)如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量_______.
A. 为局部变量,只在该复合语句中有效
B. 为局部变量,只在该函数内有效
C. 为全局变量,在本程序文件范围内有效
D. 定义无效,为非法变量
我的答案: A:为局部变量,只在该复合语句中有效;正确答案: A:为局部变量,只在该复合语句中有效;
2.9分 - (单选题)请读程序:
#include<stdio.h>
f(char s[ ])
{ int i,j;
i=0;j=0;
while( s[j]!= ‘\0’) j++;
return (j-i); }
void main()
{printf(“%d\n”,f(“ABCDEF”));}
上面程序的输出结果是_______.
A. 0
B. 6
C. 8
D. 7
我的答案: B:6;正确答案: B:6;
2.9分 - (单选题)C语言中,凡未指定存储类别的局部变量的隐含存储类别是____ ___.
A. extern
B. static
C. register
D. auto
我的答案: D:auto;正确答案: D:auto;
2.9分 - (单选题)对于C语言的函数,下列叙述中正确的是_____.
A. 函数的定义和调用都不能嵌套
B. 函数的定义和调用都可以嵌套
C. 函数的定义不能嵌套,但函数调用可以嵌套
D. 函数的定义可以嵌套,但函数调用不能嵌套
我的答案: C:函数的定义不能嵌套,但函数调用可以嵌套;正确答案: C:函数的定义不能嵌套,但函数调用可以嵌套;
2.9分 - (单选题)以下函数fun形参的类型是_______.
fun( float x)
{ float y;
y=3*x-4;
return y; }
A. int
B. float
C. void
D. 不确定
我的答案: B:float;正确答案: B:float;
2.9分 - (单选题)以下说法中正确的是_______.
A. C语言程序总是从main()函数开始执行
B. C语言程序中的main()函数必须放在程序的开始部分
C. C语言程序总是从第一个定义的函数开始执行
D. 在C语言程序中,要调用的函数必须在main()函数中定义
我的答案: A:C语言程序总是从main()函数开始执行;正确答案: A:C语言程序总是从main()函数开始执行;
2.9分 - (单选题)下面程序的输出是_______.
int fun3(int x)
{static int a=3;
a+=x;
return(a); }
void main()
{int k=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf(“%d\n”,n); }
A. 4
B. 9
C. 6
D. 3
我的答案: C:6;正确答案: C:6;
2.9分 - (单选题)以下叙述中,不正确的是_______.
A. 若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用
B. 在同一C程序文件中,不同函数中可以使用同名变量
C. 在main函数体内定义的变量是全局变量
D. 形参是局部变量,函数调用完成即失去意义
我的答案: C:在main函数体内定义的变量是全局变量;正确答案: C:在main函数体内定义的变量是全局变量;
2.9分 - (单选题)C语言规定,除主函数外,程序中各函数之间___.
A. 既允许直接递归调用也允许间接递归调用
B. 不允许直接递归调用也不允许间接递归调用
C. 允许直接递归调用不允许间接递归调用
D. 不允许直接递归调用允许间接递归调用
我的答案: A:既允许直接递归调用也允许间接递归调用;正确答案: A:既允许直接递归调用也允许间接递归调用;
2.9分 - (单选题)以下函数调用语句中含有实参个数为_______.
func((exp1,exp2),(exp3,exp4,exp5));
A. 5个
B. 1个
C. 2个
D. 4个
我的答案: C:2个;正确答案: C:2个;
2.9分 - (单选题)请读程序:
#include <stdio.h>
f(int b[ ], int n)
{ int i, r=1;
for(i=0; i<=n; i++) r=r*b[i];
return r; }
void main()
{ int x, a[]={ 2,3,4,5,6,7,8,9};
x=f(a, 3);
printf(“%d\n”,x); }
上面程序的输出结果是_______.
A. 6
B. 720
C. 24
D. 120
我的答案: D:120;正确答案: D:120;
2.9分 - (单选题)有如下程序
int func(int a,int b)
{ return(a+b); }
void main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%d\n”,r); }
该程序的输出结果是________.
A. 12
B. 15
C. 13
D. 14
我的答案: B:15;正确答案: B:15;
2.9分 - (单选题)请读程序:
#include <stdio.h>
f(int b[ ], int n)
{ int i, r=0;
for(i=0; i<=n; i++) r=r+b[i];
return r;
}
void main()
{
int x, a[]={ 2,3,4,5,6,7,8,9};
x=f(a, 3);
printf(“%d\n”,x); }
上面程序的输出结果是_______.
A. 5
B. 14
C. 9
D. 20
我的答案: B:14;正确答案: B:14;
2.9分 - (单选题)在C语言中,全局变量的存储类别是_______.
A. register
B. void
C. static
D. extern
我的答案: C:static;正确答案: C:static;
2.9分 - (单选题)有如下函数调用语句 func(rec1,rec2+rec3,(rec4, rec5));该函数调用语句中,含有的实参个数是______.
A. 4
B. 5
C. 3
D. 有语法错误
我的答案: C:3;正确答案: C:3;
2.9分 - (单选题)C语言中规定函数的返回值的类型是由_______.
A. 调用该函数时系统临时决定
B. 调用该函数时的主调用函数类型所决定
C. 在定义该函数时所指定的类型所决定
D. return语句中的表达式类型所决定
我的答案: C:在定义该函数时所指定的类型所决定;正确答案: C:在定义该函数时所指定的类型所决定;