通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
以下程序的执行结果是()。
#include<iostream.h> int fun(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[]={1,2,3,4,5,6,7,8}; x=fun(a,3); cout<<x<<endl; }
5
6
7
8
第2题
下列程序输出的结果是()。
#include<stdio.h> fun1(char a,char b){char c;c=a;a=b;b=c;} fun2(char*a,char b){char c;c=*a;*a=b;b=c;} fun3(char*a,char*b){char c;c=*a;*a=*b;*b=c;} void main() { char a,b; a='A';b='B';fun1(a,b);putchar(a);putchar(b); a='A';b='B';fun2(&a,b);putchar(a);putchar(b); a='A';b='B';fun3(&a,&b);putchar(a);putchar(b); putchar('\n'); }
ABBABAB
ABBBBA
ABABABA
ABABBA
第3题
下列程序将x、y和z按从小到大的顺序排列,横线处应添加语句()。
template<class T> void fun(________) { T a; if(x>y) { a=x; x=y;y=a; } if(y>z) { a=y; y=z;z=a; } if(x>y) { a=x; x=y;y=a; } }
Tx,Ty,Tz
Tx;y;z
T&x,T&y,T&z
T&x,&y,&z
第4题
当需要将函数 bool isnumber(char c) 声明为内联函数时,此内联函数的函数原型为()。
enum bool isnumber(char c);
define bool isnumber(char c);
inline bool isnumber(char c);
extern bool isnumber(char c);
第5题
下列重载函数中,正确的是()。
void fun(int a,float b);void fun(int C,float d)
void fun(int a,float b);void fun(float a,int b)
float fun(int a,float b);int fun(int b,float a)
int fun(int a,float b);float fun(int a,int b)
第6题
已知递归函数fun的定义如下,函数调用语句 fun(5) 的返回值是()。
int fun(int n) { if(n<=1)return 1;//递归结束情况 else return n*fun(n-2);//递归 }
12
15
30
第7题
下列有关内联函数的叙述中,正确的是()。
内联函数在调用时发生控制转移
内联函数必须通过关键字inline来定义
内联函数是通过编译器来实现的
内联函数函数体的最后一条语句必须是return语句
第8题
有如下程序段,程序执行后的输出结果是()。
#include<iostream.h> #define MAX(x,y) (x)>(y)?(x):(y) void main() { int i,j,k; i=10; j=15; k=MAX(i,j)*10; cout<<k<<endl; }
100
150
10
第9题
假定 a=3 ,下列程序的运行结果是()。
#include<iostream.h> int fun(int n); void main() { cout<<"Please input a number:"; int a,result=0; cin>>a; result=fun(a); cout<<result<<endl; } int fun(int n) { int p=1,result=0; for(int i=1;i<=n;i++) { p*=i; result+=p; } return result; }
4
9
20
第10题
下面程序输出的结果为()。
#include<iostream.h> void fun(int a,int b) { int temp; temp=a; a=b; b=temp; } void main() { int m,n; m=1; n=2; fun(m,n); cout<<m<<" "<<n<<endl; }
21
22
程序有错误
第11题
对数组名作函数的参数,下面描述正确的是()。
对数组名作函数的参数,调用时将实参数组复制给形参数组
数组名作函数的参数,主调函数和被调函数共用一段存储单元
数组名作参数时,形参定义的数组长度不能省略
数组名作参数,不能改变主调函数中的数据
第12题
下列程序的输出结果是()。
#include<iostream> using namespace std; void fun(int &r) { r*=2; } int main() { int n=50; fun(n); cout<<n<<endl; return 0; }
0
50
第13题
下列有关函数重载的叙述中,错误的是()。
函数重载就是用相同的函数名定义多个函数
重载函数的参数列表必须不同
重载函数的返回值类型必须不同
重载函数的参数可以带有默认值
第14题
下列对重载函数的描述中,()是错误的。
重载函数中不允许使用默认参数
重载函数中编译是根据参数表进行选择
不要使用重载函数来描述毫不相干的函数
构造函数重载将会给初始化带来多种方式
第15题
下列程序用来判断数组中特定元素的位置所在,则输出结果为()。
#include<conio.h> #include<iostream.h> int fun(int*p,int n,int j) { int i; *j=0; for(i=0;i<n;i++) if(p[i]>p[*j])*j=i; return p[*j]; } void main() { int a[10]={1,3,9,0,8,7,6,5,4,2},int j; fun(a,10,&j); cout<<j<<','<<a[j]; }
2,9
3
3,9
第16题
以下程序的正确运行结果是()。
#include<iostream.h> int fun(int); void main() { int a=2,i; for(i=0;i<3;i++) cout<<fun(a)<<endl; cout<<endl; } int fun(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); }
4,5,6
6,7,9
7,8,9
7,7,7
第17题
下列关于C++函数的说明中,正确的是()。
内联函数就是定义在另一个函数体内部的函数
函数体的最后一条语句必须是return语句
标准C++要求在调用一个函数之前,必须先声明其原型
编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
第18题
函数 swap(a,n) 可完成对a数组从第1个元素到第n个元素两两交换。其中 b[0]=1;b[1]=2;swap(b,2) 。在运行调用函数中的语句后,b[0]和b[1]的值分别为()。
1,1
1,2
2,2
2,1
第19题
在C++程序中,如果要求通过函数来实现一种简单的功能,并且要求尽可能加快程序执行速度,则应该选用()。
内联函数
重载函数
递归调用
嵌套调用
第20题
有如下程序,执行后的输出结果是()。
#include<iostream> void fun(int& x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; }
42,42
23,23
23,42
42,23
第21题
不能作为函数重载的判断依据的是()。
const
返回类型
参数个数
参数类型
第22题
#include<iostream.h> void ff(int x); void ff(double x); void main() { float a=88.18; ff(a); char b='a'; ff(b); } void ff(int x) { cout<<"ff(int):"<<x<<endl; } void ff(double x) { cout<<"ff(double):"<<x<<endl; }
ff(double):88.18 ff(int):97
ff(int):88.18 ff(int):97
ff(int):8.18
ff(int):88.18
第23题
以下程序输出结果是()。
#include<iostream> using namespace std; void add(int x,int y,int *z) { *z=y+x; } int main() { int a,b,c; add(8,4,&a); add(6,a,&b); add(a,b,&c); cout<<a<<","<<b<<","<<c<<endl; return 0; }
12,10,14
12,18,30
12,6,18
12,14,30
第24题
有如下程序,该程序的输出结果应该是()。
#include<iostream> using namespace std; long fun(int n) { if(n<2) return(fun(n-1)+fun(n-2)); else return 2; } int main() { cout<<fun(3)<<endl; return 0; }
2
第25题
为了取代C中带参数的宏,在C++中使用()。
递归函数
友元函数
第26题
下列关于函数的描述中,错误的是()。
函数可以没有返回值
函数可以没有参数
函数可以是一个类的成员
函数不能被定义为模板
第27题
编译器会根据函数的返回值类型来重载函数
第28题
若有下面的函数调用: fun(a+b,max(n-1,b)) ,则fun的实参个数是()。
第29题
假设函数fun已经定义,其原型为 void fun(int a,int b=7,char*p="***"); ,下列函数调用中错误的是()。
fun(5)
fun(5,8)
fun(5,"###")
fun(0,0,"=")
第30题
已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则()。
FA必须定义在FB之前
FB必须定义在FA之前
若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
第31题
下列函数原型声明中,错误的是()。
int function(int m,int n);
int function(int,int);
int function(int m=3,int n);
int function(int&m,int&n);
第32题
在对函数进行原型声明时,下列语法成分中,不需要的是()。
函数返回类型
函数参数列表
函数名
函数体
第33题
关于函数中的<返回类型>,下列表述中错误的是()。
<返回类型>中有可能包含关键字int
<返回类型>中有可能包含自定义标识符
<返回类型>中有可能包含字符*
<返回类型>中可能包含[]
第34题
若一个函数的原型为 int* fun1 (int x,int& y,char z); ,则该函数的返回值类型为()。
int*
int
int&
char
第35题
有如下程序,运行时输出的结果是()。
#include<iostream> using namespace std; class A{ public: static int a; void init(){a=1;} A(int a=2) { init(); a++; } }; int A::a=0; A ob; int main(){ cout<<ob.a; return 0; }
1
第36题
#include<iostream> void fun(int&x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; }
第37题
有如下程序,编译运行这个程序将出现的情况是()。
#include<iostream> using namespace std; int main() { void function(double val); double val; function(val); cout<<val; return 0; } void function(double val) { val =3; }
编译出错,无法运行
输出:3
输出:3.0
输出一个不确定的数
第38题
有如下函数定义: void func(int a,int&b){a++;b++;} ,若执行代码段: int x=0,y=1;func(x,y); ,则变量x和y的值分别是()
0 和 1
1 和 1
0 和 2
1 和 2
第39题
已知函数f的原型是 void f(int*a,long&b); ,变量v1、v2的定义是: int v1;long v2; ,下列调用语句中正确的是()。
f(v1,v2);
f(v1,&v2);
f(&v1,&v2);
f(&v1,v2);
第40题
在下列原型所示的C++函数中,按“传值”方式传递参数的是()。
void f1(int x);
void f2(intx);
void f3(const intx);
void f4(int&x);
第41题
下列关于函数参数的叙述中,正确的是()。
在函数原型中不必声明形参类型
函数的实参和形参共享内存空间
函数形参的生存期与整个程序的运行期相同
函数的形参在函数被调用时获得初始值
第42题
有如下程序,运行时的输出结果是()。
#include <iostream> using namespace std; void f1(int& x,int& y){int z=x;x=y;y=z;} void f2(int x,int y){int z=x;x=y;y=z;} int main() { int x=10,y=26; f1(x,y); f2(x,y); cout<<y<<endl; return 0; }
16
26
36
第43题
已知函数f的原型是 void f(int*x,int&y); ,变量v1、v2的定义是 int v1,v2; ,下列调用语句中,正确的是()。
第44题
有如下程序,运行这个程序的输出结果是()。
#include<iostream> using namespace std; void f1(int& x) {x++;} void f2(int x) {x++;} int main() { int x=10,y=12; f1(x); f2(y); cout<<x+y<<endl; return 0; }
23
24
25
第45题
#include<iostream> using namespace std; class AA{ int n; public: AA(int k):n(k){} int get(){return n;} int get()const{return n+1;} }; int main() { AA a(5); const AA b(6); cout<<a.get()<<b.get(); return 0; }
55
57
75
77
第46题
下面是重载为非成员函数的运算符函数原型,其中错误的是()。
Fraction operator+(Fraction, Fraction);
Fraction operator-(Fraction);
Fraction& operator=(Fraction&,Fraction);
Fraction& operator+=(Fraction&,Fraction);
第47题
关于函数重载,下列叙述中错误的是()。
重载函数的函数名必须相同
重载函数必须在参数个数或类型上有所不同
重载函数的返回值类型必须相同
重载函数的函数体可以有所不同
第48题
有如下程序,程序的输出结果是()。
#include<iostream> using namespace std; class MyClass{ public: MyClass(int x):val(x) {} void Print()const {cout<<"const:val="<<val<<'\t';} void Print(){cout<<"val="<<val<<'\t';} private: int val; }; int main(){ const MyClass obj1(10); MyClass obj2(20); obj1.Print(); obj2.Print(); return 0; }
val=10 const: val=20
const: val=10 const: val=20
const: val=10 val=20
val=10 val=20
第49题
若已经声明了函数原型 void fun(int a,double b=0.0); ,则下列重载函数声明中正确的是()。
void fun(int a=90,double b=0.0);
int fun(int a,double B);
void fun(double a,int B=0);
bool fun(int a,double B);
第50题
对C++编译器区分重载函数无任何意义的信息是()。
返回值类型
常成员函数关键字const
第51题
已知函数fun的原型为 int fun(int,int,int); ,下列重载函数原型中错误的是()。
char fun(int,int);
double fun(int,int,double);
int fun(int,char*);
float fun(int,int,int);
第52题
下列关于函数重载的叙述中,错误的是()。
重载函数的参数个数可以不同
重载函数的参数类型可以不同
重载函数的参数个数或参数类型必须有所不同
选择题(52题,共计52分)