新VC++总复习.docx
- 文档编号:5906363
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:32
- 大小:28.45KB
新VC++总复习.docx
《新VC++总复习.docx》由会员分享,可在线阅读,更多相关《新VC++总复习.docx(32页珍藏版)》请在冰点文库上搜索。
新VC++总复习
总复习
一.单项选择题(1×30=30分)
1.一个C++程序的执行是从(B )。
A.本程序的第一个函数开始,到本程序main函数结束
B.本程序的main函数开始,到main函数结束
C.本程序的main函数开始,到本程序文件最后一个函数结束
D.本程序文件的第一个函数开始,到本程序文件最后一个函数结束
2.以下正确的描述为(C)。
A.每个C++语言程序必须在开头用预处理命令:
B.预处理命令必须位于C++源程序的首部
C.在C++语言中预处理命令都以”#”开头
D.C++语言的预处理命令只能实现宏定义和条件编译的功能
3.下列叙述中正确的是(B)。
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
4.下面标识符中,合法的用户标识符为(D)。
A.b-b与abdB.CCP与floatC.hiy与
5.如果a=l,b=2,c=3,d=4,则表达式a
a:
c c: d的值为(A)。 A.1B.2C.3D.4 6.设有定义“floaty=3.45678;intx;”,则以下表达式中能实现将y中数值保留小数点后2位,第三位四舍五入的表达式是( B )。 A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0 C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.0 7.语句cout<<((a=2)&&(h=-2));的输出结果是(D)。 A.无输出 B.编译错误 C.-1 D.1 8.在下面的函数声明中,存在着语法错误的是(D)。 A.voidBC(inta,int) B.voidBd(int,int) C.voidBE(int,int=5)D.intBF(intx;inty) 9.下面语句中(B)C++语言的正确赋值语句。 A.a=1,b=2B.i++;C.a=b=5D.y=int(x); 10.所有在函数中定义的变量及函数的形式参数,都属于(B)。 A.全局变量 B.局部变量 C.静态变量 D.常量 11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)。 A.abs(x-y)<10B.x-y>-10&&x-y<10 C.(x-y)<-10||! (y-x)>10D.(x-y)*(x-y)<100 12.当c值不为0时,下列选项中能正确将C的值赋给变量a和b的是(C)。 A.c=a=bB.(a=c)||(b=c)C.(a=c)&&(b=c)D.a=c=b 13.循环语句while(! E);中的表达式! E等价于(C)。 A.E! =0B.E! =1C.E==0D.E==1 14.对于for(表达式1;;表达式3)可理解为(D)。 A.for(表达式1;0;表达式3)B.for(表达式1;表达式3;表达式3) C.for(表达式1;表达式1;表达式3)D.for(表达式1;10;表达式3) 15.以下对C++语言函数的描述中,正确的是(A)。 A.C++程序由一个或一个以上的函数组成 B.C++函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数 D.C++程序中调用关系的所有函数必须放在同一个程序文件中 16.若变量已正确定义,不能完成求5! 的程序段是(B)。 A.for(i=1,p=1;i<=5;i++)p*=i;B.for(i=1;i<=5;i++){p=1;p*=i;} C.i=1;p=1;while(i<=5){p*=i;i++;}D.i=1;p=1;do{p*=i;i++;}while(i<=5); 17.下列一维数组的声明正确的是(C)。 A.inta[];B.intn=10,a[n];C.inta[10+1]={0};D.inta[3]={1,2,3,4} 18.以下能正确定义二维数组的是(B)。 A.inta[][3];B.inta[][3]={{2},{2*3}}; C.inta[][3]={0};D.inta[2][3]={{1},{2},{3,4}}; 19.有以下函数调用语句,其中含有的实参个数是(B)。 func(func(exp1,exp2),(exp3,exp4,exp5)); A.1B.2C.4D.5 20.有关构造函数的说法中错误的是(D)。 A.构造函数名字和类的名字一样B.构造函数在说明类变量时自动执行 C.构造函数无任何函数类型D.构造函数有且只有一个 21.以下有关析构函数的叙述不正确的是(B)。 A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参 C.析构函数不允许有返回值D.析构函数名前必须冠有符号“~“ 22.C++语言中函数返回值的类型决定于(D)。 A.return语句中的表达式类型 B.调用函数的主调函数类型 C.调用函数时变量的类型 D.定义函数时所指定的函数类型 23.若要说明一个类型名STP,使得STPs;等价于char*s;,以下选项中正确的是(D). A.typedefSTPchar*s; B.typedef*charSTP: C.typedefSTP*char; D.typedefchar*STP: 24.下列关于指针的操作中.错误的是(D)。 A.两个同类型的指针可以进行比较运算B.可以用一个空指针赋给某个指针 C.一个指针可以加上两个整数之差D.两个同类型的指针可以相加 25.如果有如下定义: constchar*str="OK";那么,sizeof(str)的值应该是(D)。 A.1B.2C.3D.4 26.不能实现函数的重载的条件是(D)。 A.函数的参数个数不同。 B.函数的参数类型不同。 C.函数中不同类型的参数次序不同。 D.函数的重载中,返回类型不同 27.对于类中定义的成员,只有类、派生类的成员函数可以访问的为( B ) 。 A.public B.protected C.private D.static 28.private访问属性限制对象的成员可以在(A)中访问。 A.本类的成员函数B.main函数C.父类的成员函数D.子类的成员函数 29.父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么(C)。 A.在子类中这两个函数构成重载关系B.子类不会继承父类的这个函数 C.子类中的函数会覆盖父类中的函数D.编译时会发生错误 30.假定AB为一个类,则执行“ABa(4),b[3],*p[2];”语句时,自动调用该类构造函数的次数为 ( B ) 。 A.3 B.4 C.6 D.9 1.用C++语言编写的代码程序(B)。 A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行 2.C++语言规定,在一个C++程序中,main().函数的位置(C)。 A.必须在开始B.必须在最后C.可以任意D.必须在系统调用库函数之后 3.下面对宏定义的描述中不正确的是(C)。 A.宏不存在类型问题,宏名无类型,它的参数也无类型 B.宏替换不占用运行时间 C.宏替换时先求出实参表达式的值,然后代入形参数运算求值 D.其实,宏替换只不过是字符替代而已 4.下列选项中,不能用作标识符的是(D)。 A._1234_B._1_2C.int_2_D.2_int_ 5.下列不是循环语句的是(D)。 A.while语句B.do…while语句C.for语句D.if…else语句 6.若“inta=8;”,则执行完表达式“a+=a%=a%3”后,a的值是( D )。 A.8B.3C.2D.0 7.C语言中,运算对象必须是整型数的运算符是(A)。 A.%B./C.%和/D.* 8.以下关于静态成员变量的叙述不正确的是(D)。 A.静态成员变量为类的所有对象所公有B.静态成员变量可以在类内任何位置上声明 C.静态成员变量的赋初值通常放在类外D.定义静态成员变量时必须赋初值 9.下面语句中,符合C++语言语法的赋值语句是(D)。 A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=7+b,b++,a+7;D.a=7+b;c=a+7; 10.对于条件表达式(M)? (A++): (A--),其中的表达式M等价于(C)。 A.M==0B.M==1C.M! =0D.M! =1 11.以下程序段中与语句k=a>b? (b>c? 1: 0): 0;功能等价的是(A)。 A.if((a>b)&&(b>c))k=1;elsek=0; B.if((a>b)||(b>c))k=1;elsek=0; C.if(a D.if(a>b)k=1;elseif(b>c)k=1;elsek=0; 12.设”intx=0,y=0,z=0,t;”执行“t=++x||y++&&++z;”后,t的值是(C)。 A.不定值B.2C.1D.0 13.以下叙述中不正确的是(C)。 A.一个类的所有对象都有各自的数据成员,它们共享函数成员 B.一个类中可以有多个同名的成员函数 C.一个类中可以有多个构造函数、多个析构函数 D.在一个类中可以声明另一个类的对象作为它的数据成员 14.对于 (1), (2)两个循环语句,(A)是正确的描述。 (1)while (1); (2)for(;;); A. (1) (2)都是无限循环B. (1)是无限循环 (2)错误 C. (1)是限循环一次 (2)错误D. (1) (2)皆错误 15.若有以下程序段: intp=10; do {cout<<"*"; }while(p--); 退出循环后,变量p的值是(C)。 A.0 B.1 C.-1 D.2 16.假设a和b为int型变量,则执行下列语句后,b的值为(C)。 a=2;b=10; do {b-=a;}while(b--<=a++); A.9B.8`C.7D.0 17.下列描述中不正确的是(C)。 A.字符型数组中可以存放字符串。 B.可以对字符型数组进行整体输入、输出。 C.可以对整型数组进行整体输入、输出。 D.不能在赋值语句中通过"="对字符型数组进行整体赋值。 18.设有数组定义: charcc[]="good! ";则数组cc所占存储空间的字节数为(C)。 A.4B.5C.6D.7 19.数组名作为参数传递给函数,作为实参的数组名被处理为(D)。 A.数组的长度B.该数组的元素个数C.该数组中各元素的值D.该数组的首地址 20.以下不属于构造函数特征的是(D)。 A.构造函数名与类名相同 B.构造函数可以重载 C.构造函数可以设置默认参数D.构造函数必须指定函数类型 21.函数的形参是(B)。 A.全局变量B.局部变量C.静态变量D.外部变量 22.类的构造函数的作用是(C)。 A.一般成员函数 B.类的初始化C.对象的初始化D.删除对象创建的所有对象 23.关于虚函数的描述中正确的是(D)。 A.虚函数是一个静态成员函数B.虚函数是一个非成员函数 C.虚函数既可以在函数说明时定义,也可以在函数实现时定义 D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 24.如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为(B)。 A.0xFFED1201B.0xFFED1202C.0xFFED1203D.0xFFED1204 25.对于结构中定义的成员,其隐含访问权限为 ( C )。 A.public B.protected C.private D.static 26.静态成员函数没有(B)。 A.返回值 B.this指针 C.指针参数 D.返回类型 27.要打开一个文件并从中读取数据,应该使用(C)类的对象。 A.istreamB.ostreamC.ifstreamD.ofstream 28.判断一个ofstream类对象file打开文件是否失败,应该判断(D)。 A.创建文件流对象时是否抛出异常B.open成员函数的返回值 C.feof成员函数的返回值D.! file是否为真 29.以下能正确定义二维数组的是(B)。 A.inta[][3];B.inta[][3]={{2},{2*3}}; C.inta[][3]={0};D.inta[2][3]={{1},{2},{3,4}}; 30.有以下函数调用语句,其中含有的实参个数是(B)。 func(func(exp1,exp2),(exp3,exp4,exp5)); A.1B.2C.4D.5 二.填空题(2×20=40分) 1.在C++语言中,一个函数由两部分组成,分别是函数头和函数体。 2.float和double类型占用的字节数分别为 4 和 8 。 3.“intx=5;x+=x-=x*x;”,则执行此语句后,x的值为-40。 4.达式7/2的结果是3,表达式7%2的结果是1。 5.变量分为全局和局部两种, 局部 变量没有赋初值时,其值是不确定的。 6.数学式 所对应的C++语言表达式为sqrt(x*x-y*y)/(a+b)。 7.若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是___1___。 8.设i、s均为int型变量,执行for后,s值为7。 for(i=1;i<=10;i++){s=i++;if(s>5)break;} 9.假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为 26。 10.假定一个一维数组的定义为“char*a[8];”,则该数组所含元素的个数为 8,所占存储空间的字节数为 32 。 11.假定C++中一个结构类型定义为: “structD{inta;union{intb;doublec;};D*d[2];};”则该类型的大小为 20 字节。 12.对一个类中的数据成员的初始化可以通过构造函数中的 初始化表实现,也可以通过构造函数中的 函数体 实现。 13.假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类的构造函数的次数为 10 。 14.设px是指向一个类动态对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的 析构函数。 15.使用const语句定义一个标识符常量时,则必须对它同时进行 定义类型和赋初值。 1.C++语言中每条基本语句以 ;作为结束符,每条复合语句以 } 作为结束符。 2.若有定义: intb=7;floata=2.5,c=4.7;则表达式“a+(int)(b/3*(int)(a+c)/2)%4”的值为5.5。 3.若a为整型变量,则表达式(a=3+5,a*2),a*6的值为48。 4.为表示关系: x≤y≤z,应使用的C++语言表达式是y>=x&&y<=z. 5.语句: cout<<((a=1)! =0)&&(b=-2));的输出结果是__1______。 6.设i、j、k均为int型变量,执行for(i=0,j=10;i 7.intt=1,i=5;执行for(;i>=0;i--)t*=i;后,t值为0。 8.for(i=1;i<=5;i++){if(i%2==0)continue;s=i++;}设i、s均为int型型变量,执行for后,s值为5。 9.假定a是一个二维数组,则a[i][j]的指针访问方式为*(a[i]+j)或*(*(a+i)+j)。 10.执行typedefintABC[10];语句把ABC定义为具有10个整型元素的 数组类型 。 11.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用iostream.h或iomanip.h用户定义的头文件。 12.要使以下程序段输出10个整数,请填入一个正确的整数值。 for(i=0;i<=8或9;printf(“%d,%d\n”,ii+=2)); 13.假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 AB: : bb 。 14.以下函数是求x的y次方,请填空。 doublefun(doublex,doubley) {inti;doublez=1.0; for(i=1;i<=y;i++) z=z*x; returnz;} 15.下面程序的功能是通过函数ave()计算数组中各元素的平均值,请填空。 floatave(intpa[],intn) {inti;floatavg=0.0; for(i=0;i avg=avg+pa[i] ; avg=avg/n ; returnavg;} 三.程序运行结果题(3×10=30分) 1.以下程序运行时输出结果是a=6b=7c=11 #include intmain(intargc,char*argv[]) {inta=5,b=6,c;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 复习