第2章数据类型、运算符和表达式一、选择题题号123456789101112答案BABACDDABDDA二、填空题13、int(a)或(int)a14、015、116、4或4.017、105和7018、6019、10、8、320、5、7、2.921、7、7、15、1第4章C++流程控制语句一、选择题题号1234567891011121314答案CDBCAADCDACDBD二、填空题1、第一空:switch,第二空:continue2、103、第一空,第二空:退出程序运行4、第一空:A,第二空:e5、第一行:1113171923,第二行:2931376、第一行:2,第二行:007、第一行:1,第二行:38、第一行:10=1*2*5,第二行:20=1*2*2*59、第一行:i=40,第二行:s=10810、第一空:i%5==0,第二空:n+m,第三空:n-m11、第一空:i10,第二空:i%5==0,第三空:x112、第一空:i=100,第二空:1.0/i*s,第三空:s*(-1)13、第一空:n或n!=0,第二空:n/=1014、第一空:n/10%10或n%100/10等,第二空:a==b||a==c||b==c第5章函数和编译预处理一、选择题题号12345678910111213答案ACCBACDABDBCC二、填空题1、inline2、int3、14fun=294、作用域或::5、06、条件编译7、自动类型或auto8、f();9、第一行:-1121410第二行:714332010、第一行:521第二行:023411、第一空:returnn*f(n-1)第二空:f(m)/(f(r)*f(m-r))12、第一行:4,4,6第二行:15,4,12第三行:10,4,6第6章数组一、选择题题号1234567891011121314答案DDCCCBDCBDADCB二、填空题1、cin.getline(str,20)2、83、第一空:’\0’第二空:04、第一空:4第二空:1005、第一行:s=56第二行:count=76、第一行:9第三行:6.47、第二行:11第四行:13318、97654329、第一行:302第二行:573第三行:451第四行:76910、第一空:n%10第二空:a[j]!=a[i-j-1]第三空:b或b==1等11、第一空:str[i]等第二空:break第三空:count(str,substr)三、程序设计题//1删除一维数组中的重复元素#includeiostream.hvoidmain(void)//间接选择排序法{inta[10]={7,3,7,1,9,7,8,3,3,1},i,j,k,n=10;cout原数组为:\n;for(i=0;in;i++)couta[i]'\t';cout'\n';for(i=0;in-1;i++){for(j=i+1;jn;){if(a[i]==a[j]){for(k=j;kn-1;k++)a[k]=a[k+1];//方法一//for(k=j+1;kn;k++)a[k-1]=a[k];//方法二n--;continue;}j++;}}cout删除重复元素后的数组为:\n;for(i=0;in;i++)couta[i]'\t';cout'\n';}//2交换二维数组中的最大和最小元素#includeiostream.hvoidmain(void){inta[3][4],i,j,max,min,rmax,cmax,rmin,cmin,t;for(i=0;i3;i++)//输入二维数组for(j=0;j4;j++)cina[i][j];for(i=0;i3;i++){//输出输入的数组(调换前的数组)for(j=0;j4;j++)couta[i][j]'\t';cout'\n';}cout'\n';max=min=a[0][0];//把首元素作为最大值和最小值rmax=cmax=rmin=cmin=0;//记录最大值和最小值的位置for(i=0;i3;i++)//查找最大值和最小值及其位置for(j=0;j4;j++){if(a[i][j]max)max=a[i][j],rmax=i,cmax=j;if(a[i][j]min)min=a[i][j],rmin=i,cmin=j;}cout最大元素:max,最小元素:min'\n';//输出最大元素和最小元素//cout最大元素:a[rmax][cmax],最小元素:a[rmin][cmin]'\n';//输出最大元素和最小元素cout最大元素:a[rmax][cmax][rmax][cmax]//输出最大元素和最小元素及其位置\n最小元素:a[rmin][cmin][rmin][cmin]'\n';cout'\n';t=a[rmax][cmax],a[rmax][cmax]=a[rmin][cmin],a[rmin][cmin]=t;//对调最大值和最小值for(i=0;i3;i++){//输出调换后的数组for(j=0;j4;j++)couta[i][j]'\t';cout'\n';}cout'\n';}//3统计英文单词个数#includeiostream.h#includestring.hintfun(charstr[]){intcount=0,i=0,j=strlen(str);while(ij)//str[i]{while(!(str[i]='A'&&str[i]='Z'||str[i]='a'&&str[i]='z')&&ij)i++;if(ij)count++;while((str[i]='A'&&str[i]='Z'||str[i]='a'&&str[i]='z')&&ij)i++;}returncount;}voidmain(void){charp[200];cin.getline(p,200);//SandwichwasanEnglishman.Helivedinthe18thcentury(世纪).;intnum=fun(p);cout段落:\np\n中包含英文单词数为:numendl;}第8章指针和引用一、选择题题号1234567891011121314答案BCACBBBAABAACC二、填空题1、地址2、void(*f)(int,int);等3、引用4、35、p-next=q等6、p-next==head7、pup[2].age、(p+2)-age、(*(p+2)).age8、101M9、0714212810、第一行:江科大第二行:C11、第一行:13第二行:112、第一空:p1p2第二空:p2--第三空:s13、第一空:n%10第二空:p1p2第三空:break14、第一空:h=p第二空:p2=p2-next第三空:p-next=p2第四空:h三、程序设计题//1删除母串中的所有子串#includeiostream.h#includestring.hintwithstr(char*s1,char*sub){while(*sub&&*s1++==*sub++);return!(*sub);}char*delsub(char*s1,char*sub){char*s=s1;while(*s){if(withstr(s,sub))strcpy(s,s+strlen(sub));s++;}returns1;}voidmain(void){charstr[]=Thisbookisaverygoodbook.,sub[]=book;cout原str=str'\n';coutsub=sub'\n';cout现str=delsub(str,sub)'\n';}//2以首元素为据,调整元素位置#includeiostream.hvoidfun(int*p,intn){int*p1=p,*p2=p+n-1;while(p2p1){if(*p2*p1){intt=*p2,*p3=p2;while(p3p1)*p3--=*(p3-1);*p1++=t;}elsep2--;}}voidprint(int*p,intn){for(inti=0;in;i++)coutp[i]'\t';cout'\n';}voidmain(void){inta[]={45,0,7,67,89,45,2,6},n;n=sizeof(a)/sizeof(a[0]);cout原数组为:\n;print(a,n);fun(a,n);cout调整后的数组为:\n;print(a,n);}//3合并链表相邻的结点#includeiostream.hstructnode{intdata;node*next;};voidprint(node*head){while(head){couthead-data'\t';head=head-next;}cout'\n';}node*create(node*head,intn)//把以n为数据的结点置于链首{node*p=newnode;p-data=n;p-next=head;head=p;returnhead;}node*merge(node*head){node*p1=head,*p2=p1-next;while(p2){p1-data+=p2-data;p1-next=p2-next;p1=p2-next;deletep2;if(p1)p2=p1-next;elsep2=0;}returnhead;}voiddele(node*head){if(head==0)return;while(head){node*p=head;head=head-next;deletep;}}voidmain(void){inta[]={1,2,3,4,5,6,7};node*h=0;for(inti=0;i7;i++)h=create(h,a[i]);print(h);merge(h);print(h);dele(h);}第9章类和对象一、选择题题号123456789101112答案BBCDACDBDDAC二、填空题1、this2、第一空:类名::第二空:对象名.3、第一空:public第二空:protected4、public5、第一空:private第二空:public6、第一行:00第二行:510第三行:2030三、程序设计题//1定义求n!的类#includeiostream.hclassJC{intn;intj;public:voidset(intnum){n=num;}voidfun();voidprint(){coutn!=jendl;}};voidJC::fun(){j=1;for(inti=2;i=n;i++)j*=i;}voidmain(void){JCtest;test.set(5);test.fun();test.print();}//2定义实现字符串拼接的类#includeiostream.h#includestring.hclassString{chars1[100];chars2[100];char*s;public:voidset(char*p1,char*p2){strcpy(s1,p1);strcpy(s2,p2);}voidfun();voidprint(){couts1=s1endl;couts2=s2endl;couts=sendl;}//~String(){delete[]s;}};voidString::fun(){s=ne