您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++程序设计(上)练习-答案
一、单项选择题1.编写C++程序一般需经过的几个步骤依次是()A.编辑、调试、编译、连接B.编辑、编译、连接、运行C.编译、调试、编辑、连接D.编译、编辑、连接、运行答案:B2.设有定义inti;doublej=5;,则10+i+j值的数据类型是()A.intB.doubleC.floatD.不确定答案:B3.有关C++编译指令,以下叙述正确的是()A.C++每行可以写多条编译指令B.#include指令中的文件名可含有路径信息C.C++的编译指令可以以#或//开始D.C++中不管#if后的常量表达式是否为真,该部分都需要编译答案:B4.在下列成对的表达式中,运算结果类型相同的一对是()A.7.0/2.0和7.0/2B.5/2.0和5/2C.7.0/2和7/2D.8/2和6.0/2.0答案:A5.在C++中不返回任何类型的函数应该说明为()A.intB.charC.voidD.double答案:C6.决定C++语言中函数的返回值类型的是()A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型答案:D7.在C++中,函数原型不能标识()A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能答案:D8.在inta=3,int*p=&a;中,*p的值是()A.变量a的地址值B.无意义C.变量p的地址值D.3答案:D9.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()A.内联函数B.重载函数C.递归函数D.嵌套函数答案:A10.适宜采用inline定义函数情况是()A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用答案:C11.在函数定义中的形参属于()A.全局变量B.局部变量C.静态变量D.寄存器变量答案:B12.C++语言中所有在函数中定义的变量,连同形式参数,都属于()A.全局变量B.局部变量C.静态变量D.函数答案:B13.下列有关重载函数的说法中正确的是()A.重载函数必须具有不同的返回值类型B.重载函数参数个数必须相同C.重载函数必须有不同的形参列表D.重载函数名可以不同答案:C14.使用地址作为实参传给形参,下列说法正确的是()A.实参是形参的备份B.实参与形参无联系C.形参是实参的备份D.实参与形参是同一对象答案:D15.在C++中,使用流进行输入输出,其中用于屏幕输入()A.cinB.cerrC.coutD.clog答案:A16.若有以下定义,则说法错误的是()inta=100,*p=&a;A.声明变量p,其中*表示p是一个指针变量B.变量p经初始化,获得变量a的地址C.变量p只可以指向一个整型变量D.变量p的值为100答案:D17.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念答案:D18.3.可替换#definePI3.1415926的语句是()A.floatPI3.1415926;B.constfloatPI=3.1415926;C.constPI(3.1415926);D.const3.1415926;答案:B19.如果一个函数没有返回值,则应选择下列说明符中的()。A.doubleB.voidC.intD.char答案:B20.8.下列哪种默认参数的声明是不正确的(C)A.intmax(inta,intb,intc,intd=0);B.intmax(inta,intb,intc=0,intd=0);C.intmax(inta=0,intb,intc=0,intd=0);D.intmax(inta,intb=0,intc=0,intd=0);21.包含哪种语句的函数不能声明为内联函数(A)A.循环B.变量自增自减C.if...else…D.变量声明22.已知:constchar*ptr;那么ptr应该是(A)。A、指向字符串常量的指针B、指向字符串的常量指针C、指向字符的常量的指针D、指向字符常量的指针23.11、在C++中,关于下列设置参数默认值的描述中,正确的是(C).A.不允许设置参数的默认值B.设置参数默认值只能在定义函数时设置C.设置参数默认值时,应该是先设置右边的再设置左边的D.设置参数默认值时,应该全部参数都设置二、填空题1.开发一个C++语言程序的步骤通常包括编辑、___、连接、运行和调试。答案:编译2.假设inta=1,b=2;则表达式(++a/b)*b--的值为___。答案:23.下面程序的输出结果为___。#includeiostream.hvoidmain(){intnum=2,i=6;do{i--;num++;}while(--i);coutnumendl;}答案:54.由const修饰的对象称为___。答案:常对象5.表达式coutend1还可表示为___。答案:‘\n’6.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。答案:-7.C++程序的源文件扩展名为___。答案:cpp8.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件。答案:自定义9.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。答案:传地址或引用10.若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的___语句。答案:声明11.在C++中有两种参数传递方式:传值和___。答案:传引用或地址12.在函数前面用___保留字修饰时,则表示该函数表为内联函数。答案:inline13.C++是通过引用运算符___来定义一个引用的。答案:&14.局部对象和全局对象中,在同一程序中___生存期最长。答案:全局对象15.布尔类型标识符是()答案:bool16.若要使用C++标准类库,需要指定相应的命名空间,所用的语句是——————。答案:usingnamespacestd;17.使用new为int数组动态分配10个存储空间是___。答案:newint[10];18.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句___。答案:int*ip=newint[10];19.8.C++中语句constchar*constp=“hello”;所定义的指针p和它所指的内容都不能被___。答案:修改20.如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是___。答案:constdoublePI(3.14159);或者constdoublePI=3.14159;21.面向对象程序设计的3个主要性质是:______、继承、______。答案:封装,多态22.使用cin和cout进行输入输出操作的程序必须包含头文件___答案:iostream.h三、改错题1.#includeiostream.hvoidmain(){inti,*p;i=10;*p=i;cout*pendl;}答案:*p=i;指针即地址没有被赋值。[修改]p=&i;2.以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。#includeiostream.hvoidswap(int&a,int&b){a=a+b;b=a-b;a=a-b;}voidmain(){inta=19,b=15;couta=a,b=bendl;swap(&a,&b);couta=a,b=bendl;}答案:swap(&a,&b);函数的形参是变量的引用,调用时的实参应该是地址。[修改]swap(a,b);四、完成程序题(本大题共5小题,每小题4分,共20分)1.下面是一个三角形三边,输出其面积C++程序,在下划线处填上正确的语句。#includeiostream.h#includemath.hvoidarea(){doublea,b,c;coutInputabc:;________if(a+bc&&a+cb&&c+ba){doublel=(a+b+c)/2;_______coutTheareais:sendl;}elsecoutErrorendl;}voidmain(){area();}答案:cinabc;,doubles=sqrt(l*(l-a)*(l-b)*(l-c));[解析]输入三个边的长度,由公式得出三角形的面积doubles=sqrt(l*(l-a)*(l-b)*(l-c));2.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。#includeiostream_________;_________;voidmain(){doublerad;coutrad=;cinrad;doublel=2.0*pi*rad;doubles=pi*rad*rad;cout\nThelongis:lendl;coutTheareais:sendl;}答案:usingnamespacestd,#definepi3.14159[解析]进行输入或输出要引入iostream,所以usingnamespacestd;从标点看没有分号,所以使用宏定义,#definepi3.14159。3.程序实现大写字母转换成小写字母。#includeiostream.hvoidmain(){chara;_______;cina;if(_______)a=a+i;coutaendl;}答案:inti=32;,a=A&&a=Z[解析]大写字母变小写字母相差32,需要对i声明并初始化。大写字母变小写字母。要判断字符是大写字母。4.在下面程序横线处填上适当内容,使程序执行结果为:S=2S=5S=9#includeiostream.hvoidsum(inti){staticints;_________;couts=sendl;}voidmain(void){inti;for(i=0;________)sum(i);}答案:s=s+i+2;,i3,i++5.下面程序段用来求三角形的面积,首先判断三边不符合组成三角形时,返回-1,符合时输出三角形面积。#includeiostream.h#includemath.hdoublearea(doublea,doubleb,doublec){if(____)return-1;else{doublear,l;l=(a+b+c)/2;ar=sqrt(l*(l-a)*(l-b)*(l-c));returnar;}}voidmain(){doublei=0,j=0,k=0;cout输入三角形三边:;cinijk;doubles=area(i,j,k);if(s0)cout不是三角形endl;else______}答案:a+bc||a+cb||b+ca,coutsendl;[解析]三角形组成规则:两边之和大于第三边。s0不是三角形,是则输出s。6.参数顺序不同的函数重载,写出运行结果。#includeiostreamusingnamespacestd;voidinfo(char*name,intage){cout名称:name,数量:ageendl;}voidinfo(intage,char*name){cout名称:name,数量:ageendl;}intmain(){info(书包,16);info(18,笔记本);return0;}7.比较内部auto变量和内部static变量的不同,写出运行结果。#includeiostreamusingnamespacestd;voidtest(){intx=10;//动态变量xstaticin
本文标题:C++程序设计(上)练习-答案
链接地址:https://www.777doc.com/doc-7025900 .html