- 309.00 KB
- 2022-04-22 11:18:26 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'习题第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+2*9/(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.8*6;(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";cout<<"a="<voidmain(){cout<<"Thisisahelloworld";cout<<"program";}2.#includevoidmain(){constintR=10;constdoublePI=3.14159;doublea,b;a=2*R*PI;b=R*R*PI;cout<<"a="<;intmian(){inta,b,c,sum,avg;cout<<"请输入三个整数:/n";cin>>a>>b>>c>>endl;sum=a+b+cavg=sum/3;cout>>¢平均数是:¢>>avg;}第3章基本程序设计一、判断题()⒈if语句结构中必须有else语句。()⒉表达式7>=3+4||6<4&&2<5的求值结果为假。()⒊算术运算符的优先级高于比较运算符。
()⒋表达式4>6||10>2*6&&2!=!5求值结果为真。()⒌语句for(i=0,x=0;i<90;i++)if(i)x++;执行完后,x的值是89。()⒍逻辑表达式10z&&x*y<100||x*y>0中运算符优先级由高到低的排列顺序是:*、<和>、&&、||。()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(x>y)x=y;y=z;z=x;()13.break和continue语句的作用都是终止本层循环的执行。()14.判断变量x的数值是否在3到5之间可以用关系表达式3#include“iomanip”usingnamespacestd;voidmain(){if(a>b)cout<n为false或mn&&m10||x<20(C)x>10&x<20(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)0的值()。(A)为true (B)为false (C)与n的值相反 (D)与n的值相同
第4章数组的应用一、判断题()1.在对全部数组元素赋初值时,不可以不指定一维数组的长度。()2.在对全部二维数组元素赋初值时,可以不指定二维数组的行数。()3.在C++程序中,有定义:inta[10];数组a的最小下标是1。()4.在C++程序中,有定义:inta[10];数组a的最大下标是10。()5.可以用同一个数组表示以一组数值型数据和字符型数据。()6.有声明:inta[3][2]={1,2,3,4,5,6};那么数组元素a[2][1]的初始值是6。()7.有声明:charch[10]={’a’,’b’,’c’,’d’,’e’};那么赋给数组ch的是字符串“abcde”。()8.在对全部二维数组元素赋初值时,必须要指定二维数组的列数。()9.字符串"hello,world"在内存中存放时,占用12个字节的空间。()10.定义一个一维字符数组有50个元素,用该一维字符数组表示一个字符串数据最多允许有50个字符。()11.C++中各种数据类型的变量在定义后会被自动初始化为0值。()12.定义数组时可以用变量来定义数组的大小,但不能用表达式。()13.定义一个有50个元素的一维字符数组,用该数组表示一个字符串数据最多允许有50个字符。()14.定义一个数组后该数组的最小下标取值是0。()15.静态数组被定义时,数组的所有元素自动获取初始值0。()16.数组是C++的基本数据类型。()17.数组不能用来存放字符串。()18.同一数组的所有数组元素在内存中是连续存放的。()19.在C++中数组是具有一定顺序关系的若干相同类型变量的集合体。()20.在给全部数组元素赋初值时,可以不指定二维数组中的常量表达式,例如:inta[][]={1,2,3,4,5,6};二、单项选择题1.若有以下定义语句:inta[10]={1,2,3,4,5,6,7,8,9,10};则下列()是对数组元素的正确使用。(A)a[10](B)a[a[3]-5](C)a[a[9]](D)a[a[4]+4]2.对语句:inta[3][4]={0};描述正确的是()。(A)只有元素a[0][0]可得到初值0(B)数组a中每个元素均可得到初值0(C)此说明语句不正确(D)数组a中各元素都可得到初值,但其值不一定为03.若有以下定义,则数组元素a[2][2]的值是()。inta[][3]={{1,2},{3,2,4},{4,5,6},{1,2,3}};(A)4(B)5(C)2(D)64.在下面的一维数组定义中,()有语法错误。(A)inta[]={1,2,3};(B)inta[];(C)inta[]={0};(D)inta[5];5.在下面的一维数组的定义中,不正确的是()。(A)intx[10][10];(B)intx[][10]={{1,3},5,7};
(C)intx[][];(D)intx[10][10]={0};6.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。(A)N+1(B)N(C)(N+1)/2(D)N/27.将两个字符串连接起来组成一个字符串时,用()函数。(A)strcat(B)strlen(C)strcpy(D)strcmp8.希尔排序法属于哪一种类型的排序法()。(A)交换类排序法(B)插入类排序法(C)选择类排序法(D)建堆排序法9.若定义了一个4行3列的数组,则第8个元素是()。(A)a[1][3](B)a[2][3](C)a[3][1](D)a[2][1]10.判断两个字符串(分别用a、b表示)是否相等的操作为()。(A)a==b(B)if(a==b)(C)if(strcmp(a,b))(D)if(strcpy(a,b))11.定义一个一维数组,正确的语句是( )。(A)inta(10);(B)intn=10;inta[n]; (C)intn;cin>>n;inta[n];(D)constintn=10;inta[n];12.以下那种说法错误?()。(A)数组中的元素在某些方面彼此相关;(B)数组中的所有元素具有相同的下标;(C)数组中的所有元素具有相同的数据类型;(D)数组中的所有元素具有相同的名字;13.语句inta[]={0,1,2}执行后,数组的元素个数是()。(A)2(B)3(C)4(D)不知道14.下面数组定义错误的是( )。(A)#definen5(B)constintn=5;chara[n]={“good”};chara[n]={“good”};(C)intn=5; (D)constintn=5;chara[n]={“good”};chara[n+2]={“good”};15.执行下列语句:intc[4]={0,1,2,3};for(inti=0;i<4;i++)c[i]=c[i]+i;则c[3]的值是()。(A)0(B)4(C)6(D)816.下列程序执行后d[5]结果是()。intd[10];intI;for(i=0;i<=9;i++)d[i]=i;for(i=0;i<=9;i++)d[i]=d[9-i];(A)0(B)4(C)5(D)617.数组intarea[4]={1,2,3,4},执行程序for(inti=1;i<=4;i++)area[i-1]=1;那么area[4]的值是()。(A)4(B)3(C)1(D)错误18.二维数组在内存中的存放顺序是()。(A)按行存放(B)按列存放(C)由用户自己定义(D)由编译器决定19.下面初始化不正确的是( )。(A)inta[2][3]={1,2,3,4,5,6};(B)inta[][2]={7,8,9};(C)doublea[][3]={1,2,3,4,5,6,7}; (D)doublea[3][2]={{1.5,2.0},{3.5},{5,6,7}};
20.若有定义:inta[3][4]={0};则以下描述中正确的是()。(A)只有a[0][0]元素得到初值(B)不正确语句(C)各元素均得到初值,但不一定为0(D)各元素均得到初值且为021.下列对字符数组进行初始化的语句正确的是( )。(A)chara[]=“abcd”;(B)chara[][]=“abcd”;(C)chara[4]=“abcd”;(D)chara[2][2]={“ab”,“cd”};22.二维字符数组[10][10]能够存储()个字符串,每个字符串的长度至多为()。(A)10,10(B)10,9 (C)9,10(D)9,9三、阅读程序题1.#includevoidmain(){inta[4],i,j,k;for(i=0;i<4;i++)a[i]=1;k=3;for(i=0;i#includeusingnamespacestd;voidmain(){ints[3][3],i,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)s[i][j]=i-j;for(i=0;i<2;i++)for(j=i+1;j<3;j++){k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;}for(i=0;i<3;i++){for(j=0;j<3;j++)cout<usingnamespacestd;
voidmain(){inta[4],i,j,k;for(i=0;i<4;i++)a[i]=0;k=2;for(i=0;iusingnamespacestd;voidmain(){inta[2][3],j,k;for(k=0;k<3;k++)for(j=0;j<2;j++)a[j][k]=(j+1)*(k+1);for(j=0;j<2;j++){for(k=0;k<3;k++)cout<<"**"<#includeusingnamespacestd;voidmain(){ints[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)s[i][j]=i-j;for(i=0;i<3;i++)for(j=i+1;j<4;j++){k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;}for(i=0;i<4;i++){for(j=0;j<4;j++)cout<
usingnamespacestd;voidmain(){constintN=7;inta[N][N],i,j;for(i=0;i#includeusingnamespacestd;voidmain(){constintN=5;inta[N][N];inti,j;for(i=0;i#includeusingnamespacestd;voidmain(){inta[10]={1,1,2,3,2,7,4,2,8,9};intb=32%6;inti,j,c=0,k=9;
for(i=0;i<9;i++){if(a[i]==b){c=c+1;k--;for(j=i;j<9;j++){a[j]=a[j+1];}i--;}}for(i=0;i<=k;i++)cout<usingnamespacestd;voidmain(){inti,j;doubletemp;doublea[11];cout<<"输入需排序的10个数:"<>a[i];for(i=1;i<=9;i++)for(①)if(②){temp=a[i];③;④;}cout<<"排序后的10个数为:"<voidmain(){constintN=10;inta[N],j,k;cout<<"Inputnumbers:"<>a[j];for(j=0;jusingnamespacestd;voidmain(){inta[10],i,j,pos=1;for(i=0;i<10;i++)cin>>a[i];for(i=1;i<10;i++){for(j=0;①;j++)if(a[i]==a[j])break;if(②){a[pos]=a[i];pos++;}}for(i=0;③;i++)cout<2usingnamespacestd;3voidmain()4{inta[10],low=9,mid,high=0,x,pos;5cout<<"请输入10个数(降序):"<>a[i];8cout<<"请输入欲查找的数:"<>x;10while(low<=high)11{12mid=(low+high)/2;13if(a[mid]=x)14{pos=mid;15break;}16elseif(a[mid]>x)17high=mid-1;18else19low=mid+1;20}
21if(low>high)22cout<<"没有找到"<>*p;}从键盘输入数组的值。()9.在操作一个一维数组时,可能会用到两个指针变量指向该数组,这两个指针变量之间可以进行关系运算,其关系运算的结果表明了这两个指针变量所指向的数组元素的先后关系。()10.对于已经定义好的相同的两个指针变量之间,可以进行加法运算、减法运算和赋值运算。()11.设有如下一段程序:int*var,ab;;ab=100;var=&ab;ab=*var+10;执行上面的程序段后;ab的值为110。()12.有如下定义语句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式可以表示为*p+=9。()13.有定义语句:inta[5][5],*p;二维数组a首地址可表示为:p=a[0]或p=&a[0][0]。()14.有定义语句:inta[3][2]={6,5,4,3,2,1},*p=a[0];cout<<*(p+5)<