版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C++程序设计》课程复习资料一、单项选择题:TOC\o"1-5"\h\z.下列字符串中可以用作 C++标识符的是 []-ld.定义变量inta=6,则a++的值是 [].6C.已知字母A的ASCII码为65,则表示字符常量A错误的是 []A.'\101'B.'\x41'C.65D. “A”.结构化程序由三种基本结构组成,不包括 []A.顺序结构 B.选择结构 C.控制结构 D.循环结构.己知有定义:constintD5;inti=1;doublef=;charc=15;TOC\o"1-5"\h\z则下列选项错误的是 []A.++i;B.D--; C.c++;D.--f;.若有定义为“ int*r=newint[10];”,则释放指针所指内存空间的操作是A.delete[]r;B.delete*rC.deleter;D.deleter[];7.下列哪个是C++语言的不正确的标识符? []Ab1C.bgcD.int8.下列哪个是C++语言的合法的字符常量? []A.”0” B.'054'C.'\x89'D.'\092'定义整型变量 x,y,z并赋初始值 6的正确语句是 []A.intx=y=z=6;B.intx=6,y=6,z=6;C.x=y=z=6;D.intx,y,z=6;10.用C++语言编写的代码程序 []A.可立即执行 B. 是一个源程序C.经过编译即可执行 D.经过解释才能执行将两个字符串连接起来组成一个字符串时,选用的函数是 []A.strlen()B.strcpy()C.strcat()D.strcmp()在程序中,预处理命令开头的字符都是 []A.*B.#C.&D.@在C++语言中,表示一条语句结束的符号是 []A.“#” B.“;”C.“}”D.“下面的循环语句中循环体执行的次数为[]for(inti=0;i<n;i++)if(i>n/2)break;2 2+1 C.n/2-1在下面的一维数组定义中,有语法错误的语句是 []A.inta[]={1,2,3};B.inta[10]={0};C.inta[]; D.inta[5];下面的保留字中,不能作为函数的返回类型 []A.voidB.intC.newD.long下面的函数声明中, “voidBC(inta,intb);”的重载函数是[]A.intBC(intx,inty); B.voidBC(inta,charb);C.floatBC(inta,intb,intc=0);D.intBC(inta,intb=0);.假定AB为一个类,则该类的复制构造函数的声明语句为 []A.AB&(ABx);B.AB(ABx);C.AB(AB*x);D.AB(AB&);TOC\o"1-5"\h\z.表达式( 1,2,3,4)的结果是 []A.1B.2C.3D.4.在函数中如果不说明变量的存储类型,则默认的存储类型是 []A.autoB.staticC.externD.register.下面字符序列中,合法的C++常量是 []B.5L D.'AB'a声明的自动型变量 a在没有赋值的情况下,其值为 []B.-1 C.1D. 随机数设“intf(int);”和“intg(int);”是函数f和g的原形,以下将 f作为语句调用的是 []A.g(f(3))B.f(g(3))C.g(f(3)+2)D.p=f(g(3) +1)下面对构造函数和析构函数正确定义的项是 []A.X::X(参数),X::~X()B.voidX::X(),voidX::~X()C.X::X(参数),X::~X(参数)D.voidX::X(参数),voidX::~X(参数)变量生存期是指 []A.变量定义 B.变量在内存中分配存储单元到被释放期间C.程序的运行 D.可执行代码的生存期以下选项中C++表达式不能正确表示的数学关系 avxwb为 []A.a<x&&x<=b B.x<=b&&a<xC.!(a>=x)&&!(x>b)D.a<x<=b下列定义中,定义指向数组的指针 p的是 []A.int*p[5]B.int(*p)[5]C.(int*)p[5]D.int*p[] ;设有以下定义:voidf1(int*m,long&n);inta;longb;TOC\o"1-5"\h\z则以下调用合法的是 [](a,b) (&a,b) (a,&b) (&a,&b)下列各类变量中,不是局部变量的是 []intx; f(intw)z; inty;( 定义在函数外 )已知p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给 m赋值为5,()正确的语句。 []>p=5 C.A.*p=5 D.*=5以下选项中,决定函数的返回值的类型是 []A.调用该函数的主调函数类型 语句中的表达式类型C.定义函数时所指定的返回值类型 D.调用函数时临时决定下面for语句的循环次数为 []for(inti=0,x=0;!x&&i<=5;i++);A.无穷次 .5C在下面的字符数组定义中,有语法错误的语句是 []a[20]="abcdefg"a[]="x+y=55"a[15]={'1','2'} a[10]='5'若用数组名作为函数调用的实参,传递给形参的是 []A.数组的首地址 B. 数组中第一个元素的值C.数组全部元素的值 D.数组元素的个数35.假定AB为一个类,则执行“ABa(4),b[5],*p[2]; ”语句时,自动调用该类构造函数的次数为 []A.6B.7C.9D.1136.当使用fstream流类定义一个流对象,并打开一个磁盘文件时,文件的隐含打开方式为 []A.ios::inB.ios::outC.ios::in|ios::outD. 没有二、填空题:.若a是一个字符数组,则使用输入输出流对象cout向屏幕输出数组a中所存字符串的语句为.当一个对象定义时,C+褊译系统自动调用函数建立该对象并进行初始化。++语言的参数传递机制包括值传递和传递两种。.假定p是一个指针,则(*p)++运算首先访问,然后使p的值增1。.假定对二维数组a[3][4]进行初始化的数据为{{2,5,6},{2,8},{7}},则a[1][1]被初始化为.设px指向一个类的动态分配的对象, 则执行"deletepx;”语句时,将自动调用该类的.变量的基本类型有、实型、字符型和枚举型。.语法的三种基本结构为顺序结构、选择结构和结构。.一个指针指向一个Data类对象,它保存着该对象的,相应的指针类型为Data类。.若do循环的"尾"为"while(++i<10)”,并且i的初值为0,同时在循环体中不会修改 i的值,则循环体将被重复执行次后正常结束。.假定用户没有Z^一个名为 AB的类定义构造函数,则系统为其隐含定义的构造函数为.当在程序中执行到语句时,就立即结束本层循环类语句或 switch语句的执行。.字符和字符串常数的定界符分别为和双引号(")。.应用程序中只有一个函数,这个函数的名称是。.在switch语句中,每个语句标号所含关键字 case后面的表达式必须是表达式。.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为。.假定要动态分配一个类型为 Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为Worker*r=。.设有如下程序结构:classBox{ •};voidmain(){BoxA,B,C;}该程序运行时,分别调用卞^造函数和析构函数次。.若有语句inta=6;,则计算表达式a+=a-=a*a后,a的值为。.在进行函数调用时,将把实参的传递给值参数,把实参数的地址传递给引用参数。.关系表达式x+y>5的相反表达式为。 —―.假设在程序中 a、b、c均被定义成整型,所赋值都大于 1,则能正确表示数学式 abc的表达式是(不使用强制类型转换)。.假定a是一个一维数组,则a[i]的指针访问方式为。.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的 实现。++中的标识符只能由字母、数字和组成。++语句cout<<<<120;可以用8进制数表示(输出) 120。.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为的成员。++在调用一个函数的过程中,可以直接或间接地调用该函数本身 ,这种调用称为调用。.在C+唯序中包含一个头文件或程序文件的预编译命令为。.假定一维数组的定义为“inta[8]; ",则该数组所含元素的个数为。.十六进制常量前面应该加为前缀。.变量一般需要先赋初值再参与运算,变量没有赋初值时,将由系统自动置为 0。.当程序中执行到语句时,将结束所在循环语句中循环体的一次执行。++中规定,数组元素的下标从开始。.假定有定义int*p,则指向p变量的指针变量pp定义语句为。.类test的析构函数名是。三、判断题:1.在C++中,自减运算符“--”可以用于变量,也可以用于常量。 []
语句中必须有 break语句,否则无法退出 switch语句。TOC\o"1-5"\h\z若S表示一条C++语句,while(1)S必定是无限循环。 []若有说明: int*p1,*p2,m=3,n;则p1=&m;p2=p1;是正确的赋值语句。 []在C++语言中,类中的成员函数能存取类中的私有数据。 []控制格式输入输出的操作子 oct不是设置域宽的。 []在C++中,0127是一个合法的整数,最高位的 0实际上是不必要,其值就是 127。 [][]delete删除之。 []如果x[]delete删除之。 []数组是若干相同类型的数据的集合。 []在C+相言中,可以使用 new运算符创建的对象或对象数组,可以使用运算符若类A是类B的友元类,且类B是类C的友元类,则类A也是类C的友元类。 []对于ofstream类对象file,feof成员函数的返回值为真表示打开文件失败。 []在switch语句中, switch后面的表达式可以为任意类型。 []''n' 、'\x6A'、''101'均是C++勺字符常量。 []一个变量的地址就称为该变量的“指针” 。 []如果(x==y),则(*x==*y)。 []函数体内声明的静态变量,至多只会被初始化一次。 []构造函数和析构函数都不能重载。 []在C+转言中,while语句的循环体有可能一遍都不执行,而do—while语句的循环体至少执行一遍。[]在C++的命名标识符中,大小写字母是不加区分的。 []引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。 []在C+钟,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。 []char*p说明了p是指向字符串的常量指针。 []说明或定义对象时,类名前面不需要加 class关键字。 []在C+钟,空语句表示什么都不做,因此毫无意义。 []预处理命令是在进行编译前执行的,然后再进行正常编译。 []语句“charc='c';charp=&c;”是错误的。[]在一个被调用函数中,一个 return语句可返回多个值给调用函数。 []静态成员变量是整个类的所有对象共用的。 []函数只能按规定向文件写入所指定的字符数。 []++中,任何一个表达式加上一个分号就构成一个语句。 []在说明语句“ inta(15),&b=a,*p=&a;”中,b的值与*p的值是相等的。 []在C++中,函数声明时要用函数原型,即定义函数时的函数头部分。 []循环中,循环变量的作用域是该循环的循环体内。 []在传值调用中,要求实参与形参的类型完全一致并且个数相等。 []使用class定义的类成员默认的访问权限是私有的( private)。 []在C+钟,条件运算符的结合方向为从左到右。 []四、写出程序的运行结果:1.#include<>voidmain(){inta=10,b=15;{a*=3;intb=a+20;cout<<b<<'';}cout«b«endl;)运行结果:#include<>intSD(inta,intb,charop)(switch(op)(casereturna+b;casereturna-b;))voidmain()(intx=20,y=8;cout«SD(x,y,'+')«''«SD(x,y,'-')«endl;)运行结果:#include<>voidmain()staticintb[][3]={{1,2,3},{4},{5,6}};b[0][2]=12,b[1][2]=18;cout«**b«"\t"«**(b+1)«"\t"«**(b+1)«"\t"«*(*(b+1)+2)«"\n";cout«b[0][2]+b[1][2]+b[2][2]«endl;)运行结果:#include<>voidmain()charch;cin»ch;switch(ch)(case'A':case'a':cout«"1"«'break;case'B':case'b':cout«"2"«'break;case'C:case'c':cout«"3"«'break;default:cout«"bad!";break;)以上程序运行时,分别输入 Acb,则运行结果:#include<>voidmain()(ints1=0,s2=1;for(inti=2;i<5;i++)(s1+=i;s2*=i;}cout<<s1<<','<<s2<<endl;}运行结果:#include<>voidff(intx){ cout<<"ff(int):"<<x<<endl;}voidff(doublex){ cout<<"ff(double):"<<x<<endl;}voidmain(){floata;ff(a);charb('a');ff(b);}运行结果:#include<>voidmain(){ints=0;for(inti=1;i<7;i+=2)s+=i*i;cout<<"s="<<s<<endl;}运行结果:#include<>voidmain(){inta[9]={3,5,7,9,11,13,15,17,25};int*p=a;for(inti=0;i<9;i++)if((i+1)%3==0)cout<<*(p+i)<<'cout<<endl;}运行结果 :#include<>classA{public:A(){cout<<"1";}~A(){cout<<"2";}};classB:publicA{public:B(){cout<<"3";}~B(){cout<<"4";}};voidmain(){Bb;}运行结果 :#include<>#include<>intSC(inta,intb,intc){if(a>b)a=b;if(a>c)a=c;returna;}voidmain(){intx,y,z;x=5,y=15,z=25;cout<<SC(x,y,z)<<endl;}运行结果 :#include<>constintn=5;voidmain(){inta[n][n]={{3,2,4,1,5},{8,7,2,5,6},{6,9,1,4,3},{5,5,3,6,2},{2,8,1,8,6}};ints=0;for(inti=0;i<n;i++)s+=a[i][i]+a[i][n-i-1];if(n%2==1)s-=a[n/2][n/2];cout<<s;}运行结果 :#include<>classs{inti,j;public:voidsetij(inta,intb){i=a,j=b;}intGetMul(){returni*j;}};voidmain(){s*p;p=news[3];for(intj=0;j<3;j++)p[j].setij(j,j); etMul()<<""delete[]p;}运行结果 :#include<>intc;voidf1(intx,int*sum){staticinty;x++;y++;c=c+y;*sum=(x+y)/c;}voidmain(){intb=100;f1(1,&b);cout<<b<<""<<c<<endl;f1(2,&b);cout<<b<<""<<c<<endl;}运行结果 :#include<>voidmain(){inti,*d=newint[5];for(i=0;i<5;i++){d[i]=2*i+1;cout<<d[i]<<'';}delete[]d;}运行结果 :#include<>classAB{inta;public:AB(intaa=0){a=aa;}~AB(){cout<<a<<endl;}};classB:publicAB{intb;public:B(intaa=0,intbb=0):AB(aa){b=bb;}~B(){cout<<b;}};voidmain(){Bx(5),y(6,7);}运行结果 :#include<>intLB(int*a,intn){ints=1;for(inti=0;i<n;i++){s=a;a++;}returns;}voidmain(){inta[5]={1,2,3,4,5};cout<<LB(a,5)<<endl;}运行结果 :#include<>intf(inta){intb=0;staticintc=3;b++,c++;return(a+b+c);}voidmain(){inta=2,I;for(I=0;I<3;I++)cout<<f(a)<<endl;}运行结果 :#include<>classA{nt*a;public:A(intx)a=newint(x);cout<<*a;}~A()deletea;cout<<0;};voidmain(){Ax(3),*p;p=newA(5);deletep;}运行结果 :五、完成程序:1.完成以下程序,计算 s=1+12+123+1234+12345。voidmain(){intt=0,s=0,i;for(i=1;① ;i++){t=i+ ②;s=s+t;}cout<<s<<endl;}回答:.完成以下程序,求数组中的最大元素值和最小元素值。#include<>voidmain(){inta[8]={46,38,72,55,24,63,50,37};intmax=*a,min=*a;for(int*p=a+1;p<a+8;p++){if(① )max=*p;if(② )min=*p;}cout<<max<<''<<min<<endl;}回答:①②.完成以下程序,输出斐氏数列的前 20项,菲波纳契额数列具有这样的性质: F[0]=1,F[1]=2,F[N]=F[N-1]+F[N-2]。#include<>voidmain(){inti;longf[20]={1,2};for(i=2; ① ;i++)f[i]= ② ;for(i=0;i<20;i++)cout<<f[i]<<"";}回答:①②.从键盘输入一个4行4列的实数矩阵到一个二维数组中,完成以下程序,求出主对角线上元素之积。#include<>voidmain()(doublea[4][4]={0},r=1;inti,j;for(i=0;i<4;i++)for(j=0;j<4;j++) 20i① 成以下程序,计算n!的值,即求(1!)+(1!+2!)+(1!+2!+3!)++(1!+2!+3!+•••+20!)。 i1n1voidmain(){inti,n;doubles=0,t;for(i=1;i<=20;i++){① ;for(n=1;② ;n++){t=t*n;s=s+t;}}cout<<"1!+(1!+2!)+ -+(1!+2!+•••+20尸”<<s<<endl;}回答:①②6.有一个数列,它的第一项为5,第二项为8,以后每一项都是它的前两项之和,完成以下程序,产生出此数列的前10项,并依次显示出来。#include<>voidmain(){inta[10];a[0]=5;①for(inti=2;i<10;i++)a[i]=② ;for(i=0;i<10;i++)cout<<a[i]<<'';cout<<endl;}回答:①②六、程序改错:1.要求下面程序的^^出结果为“ 10020",在第1-7行中存在着3条语句错误,指出错误语句行的行号,并改正错误。#include<>classS{intn;public:S(){n=20;}S(intnn){n=nn;};12.0412.04voidShow(){cout<<n<<"";}};voidshows(S&y) 求下面程序的输出结果为 “231",在第1-12行中存在着条语句错误,指出错误语句行的行号,并改正错误。#include<>classP{intn;public:voidSetn(intval){n=val;}voidShow();};voidP:Show() etn(i+1); 求下面程序的输出结果为“ d=16,f=25",在第1-14行中存在着 3条语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年及未来5年市场数据中国咖啡杯行业发展前景预测及投资策略研究报告
- 春季防火安全指南:防患于未然共筑安全防线
- 2025 高中信息技术数据与计算之数据与计算推动在线教育课程创新课件
- 2026年流程工业MES选型动态物料平衡与工艺优化模型要点
- 2026年幼儿心理健康筛查与社会情感游戏设计
- 2026年区域大气污染协同治理与信息共享应急联动机制
- 2026年水泥行业转型金融标准试点进展与项目申报指南
- 2026年数据流通交易合同示范文本应用与合同备案规程操作手册
- 2026年外国专业人才职业资格互认与执业便利化方案
- 医疗纠纷预防与处理课件
- (正式版)DB51∕T 2732-2025 《用材林培育技术规程 杉木》
- 《西游记知识竞赛》题库及答案(单选题100道)
- DB34∕T 5225-2025 风景名胜区拟建项目对景观及生态影响评价技术规范
- 急性心梗术后出血倾向的监测与护理干预
- 2026年苏州工业职业技术学院单招职业技能测试必刷测试卷附答案
- 2025年陕西省中考化学试题答案解读及备考指导课件
- 新市民课件教学课件
- GB/T 20013.1-2025核医学仪器例行试验第1部分:γ辐射计数系统
- 2025年甘肃省高考数学真题(新课标ⅱ卷)(含答案解析)
- 五年(2021-2025)高考生物真题分类汇编专题专题08 生物与环境(解析版)(河北专用)
- 前鼻韵母unvn课件
评论
0/150
提交评论