一、选择题
1、函数调用语句int fun( ) { return 50,60; },则函数调用后返回值为()。
A、50
B、60
C、50,60
D、编译错
2、设有函数定义调用语句“f((e1,e2),(e3,e4,e5));”,则实参个数是()。
A、2
B、3
C、4
D、5
3、若用下列程序
f(char a)
{ float b=5;
b+=a/b;
return b;
}
则函数返回值的类型是()。
A、int
B、char
C、void
D、float
4、若定义函数
int f(int x) { x++; return x; }
执行以下语句:
int a=5; f(a)+f(a);
则a的值是()。
A、5
B、6
C、7
D、8
5、下列程序的运行结果是()。
fun1(int a, int b)
{ return fun2(a++, --b); }
fun2(int a, int b)
{ return a/b; }
void main( )
{ int x=5, y=6;
cout< } A、1 B、1.6 C、2 D、语法错 6、以下程序执行后输出结果是()。 int f(int x,int y) { return (y-x)*x; } void main( ) { int a=3, b=4, c=5, d; d=f(f(a,b),f(a,c)); cout< } A、3 B、8 C、9 D、6 7、设有宏定义和语句 #define P(x, y) x/y #define PP(a,b) a*b int c=P(2+3, 2+3)+PP(2+3, 2+3); 则变量C的值是()。 A、26 B、17 C、17.5 D、31 8、若有定义int k=3,以k+1作为参数,对下列宏定义进行宏展开,则最终结果不为7的是()。 A、#define s(x) x*x B、#define s1(x) (x)*(x) C、#define s2(x) (x*x) D、#define s4(x) (x*(x)) 9、下列编译预处理指令没有语法错误的是()。 A、#define N 3= B、#inc lude “iostream.h”; C、#define PI=3.14159 D、include”iostream.h” 10、在下面的函数声明中,存在着语法错误的是()。 A、void A(int a, int) B、void B(int, int) C、void C(int, int=5) D、int D(int x; int y) 11、在程序中,函数声明语句正确位置是()。 A、随便任何位置 B、不包含在另一函数中的任何位置 C、该函数使用前的任何位置 D、该函数使用前的任何位置,但包含在另一函数中 12、下面保留字中不能作为函数的返回类型的是()。 A、void B、int C、new D、long 13、设有函数定义F(int &i),变量定义int n=10,则下面调用正确的是()。 A、F(20) B、F(10+n) C、F(n) D、F(&n) 14、在一个函数中定义的静态变量的作用域为()。 A、本程序的全部范围 B、本函数的全部范围 C、从定义该变量的位置开始到本文件结束 D、以上说法都不正确 15、对于下面几个函数函数: void f(int x) {…} //1 int f(int y) {…} //2 int f(int i, int j) {…} //3 float k(int x) {…} //4 ()是重载函数。 A、4个全部 B、1和4 C、2和3 D、3和4 16、以下描述正确的是()。 A、函数定义可以嵌套,函数调用也可以嵌套 B、函数定义不可以嵌套,函数调用可以嵌套 C、函数定义不可以嵌套,函数调用也不可以嵌套 D、函数定义可以嵌套,函数调用不可以嵌套 17、以下描述正确的是()。 A、调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参 B、函数既可以嵌套定义,又可以递归调用 C、函数必须有返回值,否则不能被调用 D、函数只能调用同一个源程序文件中定义的其他函数 18、以下描述正确的是()。 A、函数中,return后面一定要有表达式 B、函数中,不可以有多条return语句 C、函数返回值一定要通过return语句返回 D、return语句是函数中不可缺少的语句 19、在C++语言程序中,当调用函数时,()。 A、实参和形参各占一个独立的存储单元 B、实参和形参可以共用存储单元 C、可以由用户指定是否共用存储单元 D、计算机系统自动确定是否共用存储单元 20、有函数定义如下 f(int a) { return a++; } 并有定义float f=5.88; char c=”d”;则以下不合法的函数调用语句是()。 A、f(2,3); B、f(f); C、f((2,3)); D、f( c); 21、有函数定义f(int a, int b) { return a++;}则以下对函数f的原型说明不正确的是()。 A、f(int a, int b) B、f(int, int); C、f(int s, int y); D、f(int s, int); 22、若有函数调用语句f(g(x,y),z=x+y,(x+y))中,实参的个数是()。 A、3 B、4 C、5 D、6 23、关于下列叙述正确的是()。 void f(int a) {…} //1 int f(int a,int b) {…} //2 int f(int b) {…} //3 A、1和2是重载函数 B、1和3是重载函数 C、都是重载函数 D、都不是重载函数 24、下列叙述正确的是()。 A、一个include可以用于包含一个或多个文件 B、编译预处理命令必须以#开始 C、使用include包含的文件一定要以.h为后缀 D、程序执行时,宏展开只作替换,而不含计算过程 25、下列编译预处理命令正确的是()。 A、#define MUL(int a, int b) a*b B、#include ”iostream.h” C、#define MUL(int a) a*b D、#include “iostream.h”, ”math.h” 26、以下程序的输出结果是()。 #include #define T(x,y) (x)<(y)?(x): (y) void main( ) { int i,j,k; i=10; j<15; k=10*T(I,j); cout< } A、15 B、100 C、10 D、150 27、以下程序的运行结果是()。 #include int func(int a, int b) { static int m, i=2; i+=m+1; m=i+a+b; return m; } void main( ) { int k=4, m=1, p; p=func(k,m); cout< p=func(k,m); cout< } A、8,17 B、8,16 C、8,20 D、8,8 二、填空题 1、若自定义函数要求返回一个值,则应在该函数体中有一条()语句;若自定义函数要求不返回值,则应在该函数定义时加一个类型符()。 2、静态整型变量的缺省初值为()。 3、函数的调用方式分为()、()、()。 4、在一个函数的定义或者声明前加上关键字()时,该函数就声明为内联函数。 5、程序第一行的结果是(),第二行的结果是()。 void fun(int x, int y) { int t; t=x; x=y; y=t; cout<<”x=”< } void main( ) { int a=4, b=5; fun(a,b); cout<<”a=”< } 6、以下程序输出的第一行是(),第二行的结果是()。 #include void s(int a,int &b) { int t=a; a=b; b=t; } void main( ) { int x=500, y=1000; cout< s(x,y); cout< } 7、程序的输出的结果是()。 void fun( ) { static int a=0; a+=2; cout< } void main( ) { int c; for(c=1; c<3; c++) fun( ); } 8、以下程序的输出的第一行是(),第三行的结果是()。 #include void fn(int &x) { static int y=10; x+=y; y+=x; cout< } void main( ) { int y=1; fn(y); fn(y); fn(y); } 9、程序运行的结果是()。 int x=100; void main( ) { int x=200; x+=::x; { int x=500; ::x+=x; } cout< } 10、以下程序的运行结果()。 #include void f1(int n) { cout< if(n/10) f1(n/10); } void f2(int n) { int j=n%10; if(n/10) f2(n/10); cout< } void main( ) { f1(1234); cout<<’\n’; f2(1234); cout<<’\n’; } 11、程序运行结果是()。 int m(int a, int b); int m(int a, int b, int c); void main( ) { cout< int m(int a, int b) { return a; } int m(int a, int b, int c) { int t=m(a,b); return t; } 12、下列程序第一行的结果是(),第二行的结果是()。 #include int f(int a) { static float b=2; return b+=a/b; } void main( ) { for(int i=3; i<5; i++) cout< 13、下列程序运行后第一行至第三行分别是()、()、()。 #include int m=10; void fun (int n) { m+=m; if(n<=1) cout< else { fun(n-1); m+=m; cout< } } void main( ) { fun(3); fun(5); } 14、下列程序运行结果是()。 #include int fun2(int , int); int fun1(int a, int b) { return fun2(a++, --b); } int fun2(int a, int b) { return a/b; } void main( ) { int x=8, y=6; cout< } 15、假定输入10个字符“abcdefghij”,写出下列程序运行的结果为()。 #include void Fun(int); void main( ) { Fun(10); cout<<’\n’; } void Fun(int a) { char ch; if(a<=1) { cin>>ch; cout< else { cin>>ch; Fun(a-1); cout< } } 16、下列程序第一行的结果是(),第二行的结果是()。 #include int x=10; int f( ) { int x=30; ::x+=x; } void main( ) { int x=20; x+=::x; ::x+=x; cout< } 17、下列程序的输出结果是()。 #include int fib(int n) { if(n>1) return (fib(n-1)+fib(n-2)); else return 2; } int main( ) { cout< 18、该程序的输出结果是()。 #include int m(int a); int m(int a, int b); int c=5; void main( ) { cout< int m(int a) { int c=1; return c+=a; } int m(int a, int b) { int c=2; return m(m(::c+=a+b+c)); } 19、该程序第一行结果是(),第二行结果是(),第三行结果是()。 #include void m( ); int a=10; void main( ) { for(int i=0; i<2; i++) m( ); cout< } void m( ) { static int a=1; a+=::a; ::a+=a; cout< } 20、该程序的输出结果是()。 #include int m(int a) { if(a= =0||a= =1) return a=1; return a+m(a-1)+m(a-2); } void main( ) { cout< 21、该程序的输出结果是()。 #include int fun(int num) { int k=1; do { k*=num%10; num/=10; }while (num); return k; } void main( ) { int n=26; cout< } 22、设有以下定义语句 #define N 3 #define Y(n) ((N+1)*n) 则执行语句“z=Y(5+1);”后,z的值为()。 23、该程序的输出结果是()。 #define s(x) x+1,x voidmain( ) { int a=5; cout<<(s(a)); } 24、该程序的输出结果是()。 #define PI 3.14; void main( ) { int area=PI cout< } 25、该程序的输出结果是()。 #define P(y) 3.14+y #define PR(a) cout<<(int)a void main( ) { int x=2; PR(P(5)*x; ) 26、若有宏定义: #define T(x,y) x*y/4 则表达式T(3+4,4+4)的值为()。 27、若有宏定义: #define T(x,y) x+y int a=T(3,4)*T(3,5) ; 则变量a的初值为()。 28、下列程序输出的第一行是(),第二行是()。 #include int f1(int n) { n+=2; return n*n; } int f2(int &n) { n+=2; return n*n; } void main( ) { int m=5, n=3; m=f1(n); cout< m=f2(n); cout< } 29、下列程序输出的第二行是( ),第三行是( )。 #include int a=5; void main( ) { int a=10, b=20;