1、2006 年春 Visual C+笔试试题一、选择题1 以下选项中,不能作为用户自定义标识符的是()A scanfB voidC StructD _int2在在数学式 中,变量 x 和 y 为 float 数据类型,而变量 a 和 b 为 int 数据类型。在C+程序中该数学式的正确表达式是 ()A6/7*a*b/x/y B6/x*a*b/7/y C. 6*a*b/7/x/y D6*a*b/7*x*y3若定义了说明语句:int m=10;下列选项中,能正确说明引用类型变量 x 的语句是()Aint Bint Cint Dint 4在以下给数组初始化的说明语句中,没有语法错误的是()Achar
2、a1=“string“;Bchar a26=“string“;Cchar a36=0,1,2,3,4,5,7;Dint a4=1,2,3,4,5,6;5若有变量说明:int a33=1,2,3,4,5,6,7,8,9, m, *ptr=执行语句:m=(*ptr)*(*(ptr+3)*(*(ptr+6);则 m 的值为()A8B21C28D486函数重载是指()A函数名相同,但函数的参数个数不同或参数的类型不同B函数名相同,但函数的参数个数不同或函数的返回值类型不同C函数名不同,但函数的参数个数和参数的类型相同D函数名相同,且函数的参数类型相同或函数的返回值的类型相同7下列关于友元函数和静态成员
3、函数的叙述中,错误的是()A静态成员函数在类体重说明时加 static,而在类外定义时不能加 staticB虚函数不能为友元函数,也不能为静态成员函数C友元函数在类体中说明时加 friend,而在类外定义时不能加 friendD友元函数不带 this 指针,静态成员函数带 this 指针8下列对派生类的叙述中,错误的是()xyab76A一个派生类可以作为另一个派生类的基类B派生类至少有一个基类C派生类的成员除了自己的成员外,还包含它的所有基类的成员D派生类中继承的基类成员的访问权限在派生类中保持不变9设有以下说明语句:int x; cin x;float z, yx=1,2,3,4,5,6,7
4、,8; /Ez=y3; /F则正确的说法是:()AE 行语法错BF 行语法错Cz 的值为 3Dz 的值为 410以下关于多态性的叙述中,正确的是()A静态多态是通过类的继承关系和虚函数来实现的B动态多态是通过函数的重载或运算符的重载来实现的CC+提供了静态多态性和动态多态性D为实现动态多态性,基类必须定义为含有纯虚函数的抽象类二、填空题基本概念题1 若有语句:int x=0, y=1, z=2;z = +x | +y;执行以上语句后,变量 x、y 和 z 的值分别为() 。2 若有语句:char *s=“language“;s=s+5; coutint a=15;void main()int
5、a = 20, b = 40;int a = 0, b = 0;for(int i = 1; i int m = 10;void fun(int n)m += m;if(n void f(int *a, int n, int x)int i;if(x an-1) an = x;elsefor(i = n; i 0; i-)if(x int f1(int int f2(int (*f)(int for(int i = 0; i class CFormpublic:void display_form();virtual void header() cout display_form();11 程序
6、的输出是()#include class Basepublic:Base() cout #include int prime(int n)if(n = 1) return 0;for(int i = 2; i 0)if(prime(n)( 21 )else( 22 )break;void main()for(int i = 1001; i typedef int * IPTR;int test_order(IPTR p, int n)int i = 0;IPTR p1 = p;while(i struct Nodeint data;Node *next;Node *top = 0;void p
7、ush(int x)Node *p = ( 27 );p-data = x;( 28 )top = p;int pop()int t = 0;Node *p = top;if(p)top = ( 29 )t = p-data;( 30 )return t;2006 年春 Visual C+笔试参考答案一、选择题1 以下选项中,不能作为用户自定义标识符的是()A scanfB voidC StructD _int2在在数学式 中,变量 x 和 y 为 float 数据类型,而变量 a 和 b 为 int 数据类型。在C+程序中该数学式的正确表达式是 ()A6/7*a*b/x/y B6/x*a*b
8、/7/y C. 6*a*b/7/x/y D6*a*b/7*x*y3若定义了说明语句:int m=10;下列选项中,能正确说明引用类型变量 x 的语句是()Aint Bint Cint Dint 4在以下给数组初始化的说明语句中,没有语法错误的是()Achar a1=“string“;Bchar a26=“string“;Cchar a36=0,1,2,3,4,5,7;Dint a4=1,2,3,4,5,6;5若有变量说明:int a33=1,2,3,4,5,6,7,8,9, m, *ptr=执行语句:m=(*ptr)*(*(ptr+3)*(*(ptr+6);则 m 的值为()A8B21C28D
9、486函数重载是指()A函数名相同,但函数的参数个数不同或参数的类型不同B函数名相同,但函数的参数个数不同或函数的返回值类型不同C函数名不同,但函数的参数个数和参数的类型相同D函数名相同,且函数的参数类型相同或函数的返回值的类型相同7下列关于友元函数和静态成员函数的叙述中,错误的是()A静态成员函数在类体重说明时加 static,而在类外定义时不能加 staticB虚函数不能为友元函数,也不能为静态成员函数C友元函数在类体中说明时加 friend,而在类外定义时不能加 friendD友元函数不带 this 指针,静态成员函数带 this 指针8下列对派生类的叙述中,错误的是()xyab76A一
10、个派生类可以作为另一个派生类的基类B派生类至少有一个基类C派生类的成员除了自己的成员外,还包含它的所有基类的成员D派生类中继承的基类成员的访问权限在派生类中保持不变9设有以下说明语句:int x; cin x;float z, yx=1,2,3,4,5,6,7,8; /Ez=y3; /F则正确的说法是:()AE 行语法错BF 行语法错Cz 的值为 3Dz 的值为 410以下关于多态性的叙述中,正确的是()A静态多态是通过类的继承关系和虚函数来实现的B动态多态是通过函数的重载或运算符的重载来实现的CC+提供了静态多态性和动态多态性D为实现动态多态性,基类必须定义为含有纯虚函数的抽象类二、填空题基
11、本概念题1 若有语句:int x=0, y=1, z=2;z = +x | +y;执行以上语句后,变量 x、y 和 z 的值分别为(1,1,1) 。2 若有语句:char *s=“language“;s=s+5; coutint a=15;void main()int a = 20, b = 40;int a = 0, b = 0;for(int i = 1; i int m = 10;void fun(int n)m += m;if(n void f(int *a, int n, int x)int i;if(x an-1) an = x;elsefor(i = n; i 0; i-)if(
12、x int f1(int int f2(int (*f)(int for(int i = 0; i class CFormpublic:void display_form();virtual void header() cout display_form();11 程序的输出是(Base f() Derived)#include class Basepublic:Base() cout #include int prime(int n)if(n = 1) return 0;for(int i = 2; i 0)if(prime(n)( 21 ) / n = n / 10else( 22 ) /
13、 f = 0break;void main()for(int i = 1001; i typedef int * IPTR;int test_order(IPTR p, int n)int i = 0;IPTR p1 = p;while(i *(p+1)return 1;elsefor( ; i struct Nodeint data;Node *next;Node *top = 0;void push(int x)Node *p = ( 27 ); / new Nodep-data = x;( 28 ) / p-next = toptop = p;int pop()int t = 0;Node *p = top;if(p)top = ( 29 ) / p-next 或 top-nextt = p-data;( 30 ) / delete p;return t;