习题第1章1.什么是软件?2.简述软件的开发过程。3.什么是程序设计?4.简述程序设计过程。5.数据结构的含义是什么?6.简述算法的表示方法。7.什么是结构化算法?8.简述结构化程序设计思想。第2章C++的基础知识一、填空题1.C++语言中的标识符只能由、和三种字符组成,且打头字符不能是。2.C++程序的目标文件的扩展名是。3.在C++程序中,使用输入输出流需要包含的头文件是。4.当执行cin时,从键盘上一次输入多个数据时,每个数据后必须输入一个,然后才可以接着输入下一个数据。5.转义字符序列中的首字符是字符。6.空字符串在内存中的存储空间是个字节。7.以/开始,/结束,在/和/之间的部分即为。8.赋值表达式y=x++的含义是,y=++x的含义是。9.cout输出转义字符是使光标移到屏幕上的下一行。10.C++语言的基本数据类型有、、、、五种。二、判断题()1.“C”是字符常量。()2.在命名标识符时,大小写字母是不加区分的。()3.C++程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。()4.C++程序必须有return语句。()5.执行语句constintx=10;后,可以重新对x赋值。()6.语句a_char=‘\n’表示将小写字母n赋值给字符变量a_char。()7.short,int都是C++语言的关键字。()8.C++编译系统对源程序编译时,可以检查出注释语句中的语法错误。()9.将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存变量中去,而是将该字符相应的ASCII代码放到存储单元中。()10.语句intanswer=3+29/(10-6);执行完毕后,变量answer的值是7.5。三、单项选择题1.C++源程序文件的扩展名为()。(A).CPP(B).OBJ(C).C(D).EXE2.下列变量名中,()是合法的。(A)double(B)A+a(C)CHINA(D)5s3.下列符号能用作C++标识符的是()(A)xyz/2(B)2xsale(C)x-sale(D)x_sale4.下列各运算符中,()只能用于整型数据的运算。(A)+(B)/(C)(D)%5.()不是C++的基本数据类型。(A)字符类型(B)数组类型(C)整数类型(D)布尔类型6.下列运算符中,优先级最高的是()。(A)%(B)!(C)=(D)/7.字符串常量“ME”的字符个数是()。(A)4(B)3(C)2(D)18.在C++语言中,080是()。(A)八进制数(B)十进制数(C)十六进制数(D)非法数9.整型变量i定义后赋初值的结果是()。inti=2.86;(A)12(B)16(C)17(D)1810.如有intm=31;则表达式(m++*1/2)的值是()。(A)0(B)15(C)15.5(D)1611.每个C++程序都必须有且仅有一个()。(A)预处理命令(B)主函数(C)函数(D)语句12.在C++语言中,自定义的标志符()。(A)能使用关键字并且不区分大小写(B)不能使用关键字并且不区分大小写(C)能使用关键字并且区分大小写(D)不能使用关键字并且区分大小写13.下列C++标点符号中表示一条语句结束的是()。(A)#(B)//(C)}(D);14.下列C++标点符号中表示一条预处理命令开始的是()。(A)#(B)//(C)}(D);15.定义如下变量:inti=2;intj=3;则i/j的结果为()。(A)0.7(B)0.66667(C)0.666666…(D)016.已知inta=2,a+=a-=a*a的值是()。(A)-4(B)-2(C)0(D)417.下列关于C++关键字的说法中正确的是()。(A)关键字是用户为程序中各种需要命名的“元素”所起的名字。(B)关键字是对程序中的数据进行操作的一类单词。(C)关键字是在程序中起分割内容和界定范围作用的一类单词。(D)关键字是C++中预先定义并实现一定功能的一类单词。18.语句n1=2,n2=++n1,n1=n2++,执行后变量n1、n2的值分别为()(A)3,4(B)3,3(C)2,3(D)2,419.字符型数据在内存中的存储形式是()。(A)补码(B)ASCII码(C)反码(D)原码20.下列程序段执行后输出结果为()chara='a';couta=a-32endl;(A)a=A(B)a=33(C)a=65(D)a=A-32四、阅读程序,写出运行结果1.#includeiostream.hvoidmain(){coutThisisahelloworld;coutprogram;}2.#includeiostream.hvoidmain(){constintR=10;constdoublePI=3.14159;doublea,b;a=2RPI;b=RRPI;couta=a,b=bendl;}五、程序改错/*求三个整数的平均数#includeiostream;intmian(){inta,b,c,sum,avg;cout请输入三个整数:/n;cinabcendl;sum=a+b+cavg=sum/3;cout平均数是:avg;}第3章基本程序设计一、判断题()⒈if语句结构中必须有else语句。()⒉表达式7=3+4||64&&25的求值结果为假。()⒊算术运算符的优先级高于比较运算符。()⒋表达式46||102*6&&2!=!5求值结果为真。()⒌语句for(i=0,x=0;i90;i++)if(i)x++;执行完后,x的值是89。()⒍逻辑表达式10x20表示“大于10而小于20的数”。()⒎表达式13&&57的值是1。()⒏表达式!(58)||26的值是1。()⒐表达式a+bc&&d==5中运算符优先级由高到低的排列顺序是+、、==和&&。()⒑表达式x*yz&&x*y100||x*y0中运算符优先级由高到低的排列顺序是:*、和、&&、||。()11.设”inta=3,b=4,c=5;”;表达式”(a+b)c&&b==c”的值是0。()12.x,y,z为int类型的时候,下列语句执行之后,x的值为10,y的值为20,z的值为10。x=10;y=20;z=30;if(xy)x=y;y=z;z=x;()13.break和continue语句的作用都是终止本层循环的执行。()14.判断变量x的数值是否在3到5之间可以用关系表达式3x5来描述。()15.判断以下程序是否正确。#includeiostream#include“iomanip”usingnamespacestd;voidmain(){if(ab)coutsetw(4)a;coutsetw(4)b;elsecoutsetw(4)b;coutsetw(4)a;}()16.不管是当型循环还是直到型循环,其循环体都可能在某种条件下一次也不执行。()17.为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与最近的那个if配对。()18.要运行一个C++程序需要经过编辑、编译、链接和运行四个阶段。其中编译阶段就是对源程序进行语法与语义分析,查找和排除程序错误,通常能够找出程序中的语法错误和逻辑错误。()19.switch语句结构中必须有default语句。()20.break语句只能结束包含该语句的一层循环结构。二、单项选择题1.for(i=0,x=0;!x&&i=3;i++)循环的次数为()。(A)4(B)5(C)1(D)是无限循环2.若有如下程序段:{inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;cout“c=cendl;}执行后输出到屏幕的结果是______。(A)2(B)1(C)3(D)03、若有如下程序段:inti=10;switch(i){case9:i++;case10:i++;case11:i++;default:i++;}执行后变量i的正确结果是()。(A)11(B)12(C)13(D)144.以下描述中正确的说法是()。(A)break语句与continue语句完全一样,可以相互代替(B)用break语句可以提前终止整个循环(C)用continue语句可以提前终止整个循环(D)用break语句与continue语句都不能提前终止执行循环5.以下for循环的执行次数是()。for(x=0,y=0;(y=123)&&(x2);x++)(A)执行1次(B)执行2次(C)执行3次(D)是无限循环6.以下描述正确的是()。(A)goto语句只能用于退出多层循环(B)switch语句中不能出现break语句(C)只能用continue语句来终止本次循环(D)在循环中break语句不能独立出现7.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。(A)缩排位置相同的if(B)在其之前未配对的if(C)在其之前未配对的最近的if(D)同一行上的if8.break语句的作用是()。(A)立即跳出包含该break语句的最小的各种循环语句和switch语句(B)立即跳出包含该break语句的最小的各种循环语句(C)立即跳出包含该break语句的switch语句(D)立即跳出包含该break语句的各种循环语句和switch语句9.下面程序段执行完后,x的值是()。x=0;for(i=0;i90;i++)if(i)x++;(A)0(B)30(C)89(D)9010.continue语句的作用是()。(A)结束包含该continue语句的最小的各种循环语句(B)结束包含该continue语句的各种循环语句(C)结束本次循环,直接进行循环条件的判断(D)循环执行完后,结束循环11.下列程序段循环()次。intx=-10;while(++x){}(A)9(B)10(C)11(D)无限12.在下列运算符中,优先级最低的是()。(A)||(B)!=(C)(D)+13.下列描述正确的是()。(A)表示mn为false或mn为true的表达式为(mn&&mn)(B)switch语句结构中必须有default语句(C)if语句结构中必须有else语句(D)如果至少有一个操作数为true,则包含||运算符的表达式为true14.如果switch语句选择表达式中是整型变量,下面哪一项case子句是合法的()。(A)case“2”:(B)case2:(C)case2;(D)case==215.有如下程序段:……for(inti=1;i4;i++){if(i%2==0)continue;couti“,”;}执行以上程序段的输出结果是()。(A)1,(B)1,3,4,(C)1,3,(D)2,4,16.下列运算符中优先级最高的是()。(A)!(B)%(C)-=(D)&&17.用逻辑表达式表示“大于10而小于20的数”,正确的是()。(A)10x20(B)x10||x20(C)x10&x20(D)!(x=10||x=20)18.如果switch语句中的选择表达式是字符型变量code,下面哪一项case子句是合法的()。(A)case“3”;(B)case‘3’;(C)case3;(D)case=319.设inta=10,b=11,c=12;(a+b)c&&b==c的值是()。(A)2(B)0(C)-2(D)120.在以下关于C++语言的叙述中,正确的是()。(A)if语句结构中必须有else语句(B)switch语句结构中必须有default语句(C)C++程序必须有return语句(D)C++中使用流来执行标准的输入输出操作21.下列do-while循环的循环次数是()。已知:inti=5;do{couti--endl;i