收藏 分销(赏)

C++程序员笔试题.doc

上传人:xrp****65 文档编号:6548941 上传时间:2024-12-13 格式:DOC 页数:12 大小:810KB 下载积分:10 金币
下载 相关 举报
C++程序员笔试题.doc_第1页
第1页 / 共12页
C++程序员笔试题.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
贵州云端科技发展有限公司 Guizhou Above Cloud Technology Development Ltd. C/C++程序员笔试题 姓 名: _________ _姓 别: ___ ___ 联系电话: _______________________________ 笔试时间: ________ _年______月_______日 1.一个最简单的C++程序,可以只有一个( )。 (a) 库函数 (b) 自定义函数 (c) main函数 (d) 空函数 2.用C++语言编制的源程序要变为目标程序必须要经过( )。 (a) 解释 (b) 汇编 (c) 编辑 (d) 编译 3. C++程序中的简单语句必须以( )结束。 (a) 冒号 (b) 分号 (c) 空格 (d)花括号 4.有说明 int a=0; double x=5.16; 以下语句中,( )属于编译错误。 (a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a; 5. 执行C++程序时出现的“溢出”错误属于( )错误。 (a) 编译 (b) 连接 (c) 运行 (d) 逻辑 6.下列选项中,全部都是C++关键字的选项为( )。 (a) while IF Static (b) break char go (c) sizeof case extern (d) switch float integer 7. 按C++标识符的语法规定,合法的标识符是( )。 (a) _abc (b) new (c) π (d) “age“ 8.C++语句中,两个标识符之间( )不能作为C++的分隔符。 (a) 数字 (b) ; (c) : (d) + 9.下列正确的八进制整型常量表示是( )。 (a) 0a0 (b) 015 (c) 080 (d) 0x10 10.下列错误的十六进制整型常量表示是( )。 (a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f 11. 在下列选项中,全部都合法的浮点型数据的选项为( )。 (a) -1e3.5 15. 2e-4 (b) 12.34 -1e+5 0.1E-12 (c) 0.2e-2 -12345. e-5 (d) 5.0e(1+4) 0.1 8e+2 12.下列正确的字符常量为( )。 (a) “a” (b) ‘name’ (c) a (d) ‘\101’ 13.下列选项中,( )不能交换变量a和b的值。 (a) t=b; b=a; a=t; (b) a=a+b; b=a-b; a=a–b; (c) t=a; a=b; b=t; (d) a=b; b=a; 14.关于下列语句叙述错误的是( )。 int i=10, *p=&i; (a) p的值为10 (b) p指向整型变量i (c) *p表示变量i的值 (d) p的值是变量i的地址 15.有以下变量说明,下面不正确的赋值语句是( )。 int a=5, b=10, c; int *p1 = &a, *p2 = &b; (a) *p2 = b ; (b) p1 = a ; (c) p2 = p1 ; (d) c = *p1 *( *p2 ) ; 16.有以下变量说明,下面正确的语句是( )。 int a=10, b; int &pa=a, &pb=b; (a) &pb = a; (b) pb = pa; (c) pb = &pa; (d) *pb = *pa; 17.执行下面语句序列后,a和b的值分别为( )。 int a = 5 , b = 3 , t ; int &ra = a ; int &rb = b ; t = ra ; ra = rb ; rb = t ; (a) 3和3 (b) 3和5 (c) 5和3 (d) 5和5 18. 在下列运算符中,( )优先级最高。 (a) <= (b) *= (c) + (d) * 19.在下列运算符中,( )优先级最低。 (a) ! (b) && (c) != (d) ? : 20.设 int i=1, j=2; 则表达式 i+++j 的值为( )。 (a) 1 (b) 2 (c) 3 (d) 4 21.设 int i=1, j=2; 则表达式 ++i+j 的值为( )。 (a) 1 (b) 2 (c) 3 (d) 4 22.在下列表达式选项中,( )是正确。 (a) ++(a++) (b) a++b (c) a+++b (d) a++++b 23.已知 int i=0, j=1, k=2; 则逻辑表达式 ++i||--j&&++k 的值为( )。 (a) 0 (b) 1 (c) 2 (d) 3 24. 执行下列语句后,x的值是( d ),y的值是( )。 int x, y ; x = y = 1; ++ x || ++ y ; (a) 不确定 (b) 0 (c) 1 (d) 2 25.设x为整型变量,不能正确表达数学关系 1<x<5 的C++逻辑表达式是( )。 (a) 1< x <5 (b) x==2||x==3||x==4 (c) 1<x && x<5 (d) !(x<=1)&&!(x>=5) 26. 已知 int x=5; 执行下列语句后,x的值为( )。 x += x -= x * x; (a) 25 (b) 40 (c) –40 (d) 20 27. 设 int a=1, b=2, c=3, d=4; 则以下条件表达式的值为( )。 a < b ? a : c < d ? c : d (a) 1 (b) 2 (c) 3 (d) 4 28. 以下逗号表达式的值为( )。 ( x = 4 * 5, x * 5 ), x + 25 (a) 25 (b) 20 (c) 100 (d) 45 29.已知 int i=0, x=1, y=0 ; 在下列选项使i的值变成1的语句是( )。 (a) if( x&&y ) i++ ; (b) if( x==y ) i++ ; (c) if( x||y ) i++ ; (d) if( !x ) i++ ; 30.设有函数关系为y= ,下面选项中能正确表示上述关系为( )。 (a) y = 1 ; (b) y = -1 ; if( x >= 0 ) if( x != 0 ) if( x == 0 ) y = 0 ; if( x > 0 ) y = 1 ; else y = -1; else y = 0; (c) if( x <= 0 ) (d) y = -1 ; if( x < 0 ) y = -1 ; if( x <= 0 ) else y = 0 ; if( x < 0 ) y = -1 ; else y = 1 ; else y = 1 ; 31.假设i=2,执行下列语句后i的值为( )。 switch( i ) { case 1 : i ++ ; case 2 : i -- ; case 3 : ++ i ; break ; case 4 : -- i ; default : i ++ ; } (a) 1 (b) 2 (c) 3 (d) 4 32.已知int i=0,x=0; 下面while语句执行时循环次数为( )。 while( !x && i< 3 ) { x++ ; i++ ; } (a) 4 (b) 3 (c) 2 (d) 1 33.已知int i=3;下面do_while 语句执行时循环次数为( )。 do{ i--; cout<<i<<endl;}while( i!= 1 ); (a) 1 (b) 2 (c) 3 (d) 无限 34.下面for语句执行时循环次数为( )。 int i; for ( i=0,j=5;i=j; ) { cout << i << j << endl; i++; j--; } (a) 0 (b) 5 (c) 10 (d) 无限 35.以下死循环的程序段是( )。 (a) int x; for( int x=0 ; x<3 ; ) { x++ ; } ; (b) int k = 0; do { ++k ; } while( k>=0 ) ; (c) int a=5 ; while( a ) { a-- ; } ; (d) int i=3 ; for( ; i ; i -- ) ; 36.以下正确的函数原型为( )。 (a) f1( int x; int y ); (b) void f1( x, y ); (c) void f1( int x, y ); (d) void f1( int, int ); 37.有函数原型 void fun2( int ); 下面选项中,不正确的调用是( )。 (a) int a = 21; fun2( a ); (b) int a = 15; fun2( a*3 ); (c) int b = 100; fun2( &b ); (d) fun2( 256 ); 38.有函数原型 void fun3( int * ); 下面选项中,正确的调用是( )。 (a) double x = 2.17; fun3( &x ); (b) int a = 15 ; fun3( a*3.14 ); (c) int b = 100; fun3( &b ); (d) fun3( 256 ); 39.有函数原型 void fun4( int & ); 下面选项中,正确的调用是( )。 (a) int a = 2.17; fun4( &a ); (b) int a = 15; fun4( a*3.14 ); (c) int b = 100; fun4( b ); (d) fun4( 256 ) ; 40.有声明 void fun5( int * & ); int a , *p = &a; 下面选项中,正确的调用是( )。 (a) fun5( &a ); (b) fun5( p ); (c) fun5( *a ); (d) fun5( *p ) ; 41.有声明 int fun6( int ),(*pf)(int) = fun6; 下面选项中,正确的调用是( )。 (a) int a=15; int n=fun6(&a); (b) int a = 15; cout<<(&pf)(a); (c) cout<<(*pf)( 256 ); (d) cout << *pf( 256 ); 42.在VC中,若定义一个函数的返回类型为void,以下叙述正确的是( )。 (a) 函数返回值需要强类型转换 (b) 函数不执行任何操作 (c) 函数本身没有返回值 (d) 函数不能修改实际参数的值 43.函数参数的默认值不允许为( )。 (a) 全局常量 (b) 直接常量 (c) 局部变量 (d) 函数调用 44.使用重载函数编程序的目的是( )。 (a) 使用相同的函数名调用功能相似的函数 (b) 共享程序代码 (c) 提高程序的运行速度 (d) 节省存贮空间 45.下列的描述中( )是错误的。 (a) 使用全局变量可以从被调用函数中获取多个操作结果 (b) 局部变量可以初始化,若不初始化,则系统默认它的值为0 (c) 当函数调用完后,静态局部变量的值不会消失 (d) 全局变量若不初始化,则系统默认它的值为0 46.下列选项中,( )的具有文件作用域。 (a) 语句标号 (b) 局部变量 (c) 全局变量 (d) 静态变量 1.以下对一维数组 a 的正确定义是( c )。 (a) int n = 5, a[n]; (b) int a(5); (c) const int N = 5; int a[N]; (d) int n; cin>>n; int a[n]; 47.下列数组定义语句中,不合法的是( )。 (a) int a[3] = { 0, 1, 2, 3 }; (b) int a[] = { 0, 1, 2 }; (c) int a[3] = { 0, 1, 2 }; (d) int a[3] = { 0 }; 48.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a ;则不能表示数组 a 中元素的式子是( )。 (a) *a (b) *p (c) a (d) a[ p-a ] 49.已知 int a[] = { 0,2,4,6,8,10 }, *p = a+1; 其值等于0的表达式是( )。 (a) *(p++) (b) *(++p) (c) *(p--) (d) *(--p) 50.以下不能对二维数组a进行正确初始化的语句是( )。 (a) int a[2][3] = { 0 }; (b) int a[][3] = { { 0,1 }, { 0 } }; (c) int a[2][3] = { { 0, 1 }, { 2, 3 }, { 4, 5 } }; (d) int a[][3] = { 0, 1, 2, 3, 4, 5 }; 51.已知int a[][3] = { { 0, 1 }, { 2, 3, 4 }, { 5, 6 }, { 7 } }; 则 a[2][1]的值是( )。 (a) 0 (b) 2 (c) 6 (d) 7 52.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; 则不能表示数组元素a[2][1]的地址是( )。 (a) &a[2][1] (b) *(a[2]+1) (c) a[2]+1 (d) *(a+2)+1 53.已知char *a[]={ "fortran", " basic", "pascal", "java", "c++" } ; 则 cout<<a[3];的显示结果是( )。 (a) t (b) 一个地址值 (c) java (d) javac++ 54.若用数组名作为调用函数的实参,则传递给形参的是( )。 (a) 数组存贮首地址 (b) 数组的第一个元素值 (c) 数组中全部元素的值 (d) 数组元素的个数 55.设有char *s1=”ABCDE”, *s2=”ABCDE”,*s3=s1;下列表达式中值等于true的是( )。 (a) s1==s2 (b) s1==s3 (c) s2==s3 (d) strcmp(s1,s3)==0 56.设char *s1,*s2; 分别指向两个字符串。判断字符串s1和s2是否相等的表达式为( )。 (a) s1=s2 (b) s1==s2 (c) strcpy(s1,s2)==0 (d) strcmp(s1,s2)==0 57.设char *s1,*s2; 分别指向两个字符串,判断字符串s1是否大于字符串s2的表达式为( )。 (a) s1>s2 (b) strcmp(s1,s2)==0 (c) strcmp(s1,s2)>0 (d) strcmp(s2,s1)>0 58.有说明 struct point { int x; int y; }p; 正确的赋值语句是( )。 (a) point.x = 1; point.y = 2; (b) point={ 1, 2 }; (c) p.x = 1; p.y = 2; (d) p = { 1, 2 }; 59.已知有职工情况结构变量emp定义为: struct Date { int year; int month; int day; }; strnct Employee { char name[20] ; long code ; Date birth }; Employee emp ; 下列对emp的birth的正确赋值方法是( )。 (a) year=1980; month=5; day=1; (b) birth.year=1980; birth.month=5; birth.day=1; (c) emp.year=1980; emp.month=5; emp.day=1; (d) emp.birth.year=1980; emp.birth.month=5; emp.birth.day=1; 60.假定有以下说明语句,则下面引用形式错误的是( )。 struct Student { int num ; double score ; }; Student stu[3]={{1001,80}, {1002,75}, {1003,91}}, *p=stu ; (a) p->num (b) (p++).num (c) (p++)->num (d) (*p).num 61.若有以下说明语句,则下列错误的引用是( )。 struct Worker { int no; char name[20]; }; Worker w, *p = &w ; (a) w.no (b) p->no (c) (*p).no (d) *p.no 62.s1和s2是两个结构类型变量,若要赋值s1=s2合法,则它们的说明应该是( )。 (a) s1只能接受相同类型的数据成员 (b) 结构中的成员相同 (c) 同一结构类型的变量 (d) 存储字节长度一样的变量 63.若有以下说明,在类外使用对象objX成员的正确语句是( )。 class X { int a; void fun1(); public: void fun2(); }; X objX ; (a) objX.a=0; (b) objX.fun1(); (c) objX.fun2(); (d) X::fun1(); 64.若有以下说明,对n的正确访问语句是( )。 class Y { //…… ; public: static int n; }; int Y::n; Y objY; (a) n=1; (b) Y::n=1; (c) objY::n=1; (d) Y->n 65.若有以下类Z说明,函数fStatic中访问数据a错误的是( )。 class Z { static int a; public: static void fStatic(); }; int Z::a = 0 ; Z objZ ; (a) void Z::fStatic(){ objZ.a = 1; } (b) void Z::fStatic(){ a = 1; } (c) void Z::fStatic(){ this->a = 0 ; } (d) void Z::fStatic(){ Z::a = 0 ; } 66.若有以下类W说明,函数fConst的正确定义是( )。 class W { int a; public: void fConst(int) const ; }; (a) void W::fConst(int k)const { k=a; } (b) void W::fConst(int k)const { k=a++; } (c) void W::fConst(int k)const { cin>>a; } (d) void W::fConst(int k)const { a=k; } 67.若有以下类T说明,函数fFriend的错误定义是( )。 class T { int i; friend void fFriend(T&,int) ; }; (a) void fFriend(T &objT, int k) { objT.i = k; } (b) void fFriend(T &objT, int k) { k = objT.i; } (c) void T::fFriend(T &objT, int k) { k += objT.i; } (d) void fFriend(T &objT, int k) { objT.i += k; } 68.在类定义的外部,可以被访问的成员有( )。 (a) 所有类成员 (b) private或protected的类成员 (c) public的类成员 (d) public或private的类成员 69.关于this指针的说法正确的是( )。 (a) this指针必须显式说明 (b) 定义一个类后,this指针就指向该类 (c) 成员函数拥有this指针 (d) 静态成员函数拥有this指针 70.说明一个类的对象时,系统自动调用( );撤消对象时,系统自动调用( )。 (a) 成员函数 (b) 构造函数 (c) 析构函数 (d) 友员函数 71.下面对构造函数的不正确描述是( )。 (a) 系统提供默认的构造函数 (b) 构造函数可以有参数,所以也可以有返回值 (c) 构造函数可以重载 (d) 构造函数可以设置默认参数 72.下面对析构函数的正确描述是( )。 (a) 系统不提供默认的析构函数 (b) 析构函数必须由用户定义 (c) 析构函数没有参数,也没有返回值 (d) 析构函数可以设置默认参数 73.关于类的静态成员的不正确描述是( )。 (a) 静态成员不属于某个对象,是类的共享成员 (b) 静态数据成员要在类外定义和初始化 (c) 静态成员函数不拥有this指针,需要通过类参数访问对象成员 (d) 只有静态成员函数可以操作静态数据成员 74.下面选项中,( )不是类的成员函数。 (a) 构造函数 (b) 析构函数 (c) 友元函数 (d) 复制构造函数 75.下面对友员的错误叙述是( )。 (a) 关键字friend用于声明友员 (b) 一个类中的成员函数可以是另一个类的友员 (c) 友员函数访问对象的成员不受访问特性影响 (d) 友员函数通过this指针访问对象成员 76.若class B中定义了一个class A的类成员A a,关于类成员的正确叙述是( )。 (a) 在类B的成员函数中可以访问A类的私有数据成员 (b) 在类B的成员函数中可以访问A类的保护数据成员 (c) 类B的构造函数可以调用类A的构造函数做数据成员初始化 (d) 类A的构造函数可以调用类B的构造函数做数据成员初始化 77.在下列运算符中,不能重载的是( )。 (a) ! (b) sizeof (c) new (d) delete 78.下列关于运算符重载的描述中,( d )是正确的。 (a) 可以改变参与运算的操作数个数 (b) 可以改变运算符原来的优先级 (c) 可以改变运算符原来的结合性 (d) 不能改变原运算符的语义 79.下列函数中,不能重载运算符的函数是( )。 (a) 成员函数 (b) 构造函数 (c) 普通函数 (d) 友员函数 80.要求用成员函数重载的运算符是( )。 (a) = (b) == (c) <= (d) ++ 81.要求用友员函数重载的运算符是( )。 (a) = (b) [] (c) << (d) () 82. 下面关于类型转换的描述中,错误的是( )。 (a) 任何形式的构造函数都可以实现数据类型转换。 (b) 带非默认参数的构造函数可以把基本类型数据转换成类类型对象。 (c) 类型转换函数可以把类类型对象转换为其他指定类型对象。 (d) 类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数。 83.在c++中,类之间的继承关系具有( )。 (a) 自反性 (b) 对称性 (c) 传递性 (d) 反对称性 84.下列关于类的继承描述中,( )是正确的。 (a) 派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。 (b) 派生类也是基类,所以它们是等价的。 (c) 派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。 (d) 一个基类可以有多个派生类,一个派生类可以有多个基类。 85.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( )。 (a) public成员 (b) private成员 (c) protected成员 (d) 友员 86.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。 (a) public成员 (b) private成员 (c) protected成员 (d) 友员 87.当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。 (a) public成员 (b) private成员 (c) protected成员 (d)友员 88.不论派生类以何种方式继承基类,都不能直接使用基类的( )。 (a) public 成员 (b) private成员 (c) protected成员 (d) 所有成员 89.下面描述中,错误的是( )。 (a) 在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问。 (b) 在基类定义的protected成员在私有继承的派生类中可见。 (c) 在基类定义的公有静态成员在私有继承的派生类中可见。 (d) 访问声明可以在公有继承派生类中把基类的public成员声明为private成员。 90.在c++中,可以被派生类继承的函数是( )。 (a) 成员函数 (b)构造函数 (c) 析构函数 (d)友员函数 91.在创建派生类对象时,构造函数的执行顺序是( )。 (a) 对象成员构造函数—基类构造函数—派生类本身的构造函数 (b) 派生类本身的构造函数—基类构造函数—对象成员构造函数 (c) 基类构造函数—派生类本身的构造函数—对象成员构造函数 (d) 基类构造函数—对象成员构造函数—派生类本身的构造函数 92.当不同的类具有相同的间接基类时,( )。 (a) 各派生类无法按继承路线产生自己的基类版本 (b) 为了建立惟一的间接基类版本,应该声明间接基类为虚基类 (c) 为了建立惟一的间接基类版本,应该声明派生类虚继承基类 (d) 一旦声明虚继承,基类的性质就改变了,不能再定义新的派生类 93.在C++中,要实现动态联编,必须使用( )调用虚函数。 (a) 类名 (b) 派生类指针 (c) 对象名 (d) 基类指针 94.下列函数中,不能说明为虚函数的是( )。 (a) 私有成员函数 (b) 公有成员函数 (c) 构造函数 (d) 析构函数 95.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( )。 (a) 相同 (b) 不同 (c) 相容 (d) 部分相同 96.C++中,根据( )识别类层次中不同类定义的虚函数版本。 (a) 参数个数 (b) 参数类型 (c) 函数名 (d) this指针类型 97.虚析构函数的作用是( )。 (a) 虚基类必须定义虚析构函数 (b) 类对象作用域结束时释放资源 (c) delete动态对象时释放资源 (d) 无意义 98.下面函数原型中,( )声明了fun为纯虚函数。 (a) void fun()=0; (b) virtual void fun()=0; (c) virtual void fun(); (d) virtual void fun(){ }; 99.若一个类中含有纯虚函数,则该类称为( )。 (a) 基类 (b) 纯基类 (c) 抽象类 (d) 派生类 100.假设 Aclass为抽象类,下列正确的说明语句是( )。 (a) Aclass fun( int ) ; (b) Aclass * p ; (c) int fun( Aclass ) ; (d) Aclass Obj ; 贵州云端科技发展有限公司 Guizhou Above Cloud Technology Development Ltd. C/C++程序员笔试题答案 01~10: C D B C C C A A B C 11~20: B D D A B B B D D C 21~30: D C B (DC) A C A D C C 31~40: B D B B B D C C C B 41~50: C C C A B C A C D C 51~60: C B C A D D C C D B 61~70: D C C D C A C C C (B,C) 71~80: B C D C D C B D B A 81~90: C A C D A B C B D A 91~100: D D D C A D C B C B 11
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服