C++重点知识点总结及习题 下载本文

cout<

(a)1234 (b)1324 (c)4231 (d)4321 5.运行下列程序结果为( )。 #include void main() {

int i,j,t,a[2][2]={8,7,6,5}; for(i=0;i<1;i++)

for(j=i+1;j<2;j++) {

t=a[i][j];

a[i][j]=a[j][i]; a[j][i]=t; }

for(i=0;i<2;i++) {

for(j=0;j<2;j++) cout<

(a)87 (b)78 (c)86 (d)68 65 65 75 57 二、填空题

1. m?n数组包含__________行、__________列和__________个元素。

2. 定义数组int a[10];,若要给该数组的第三个元素赋值100,其语句为__________。 3. 已知数组a中的元素个数为4,下列语句的作用是将下标为i的元素移动到下标为i-1

的单元,其中1≤i<4。a中原有数据为1,2,3,4,移动后a中元素结果为2,3,4,4。请将下列程序补充完整。 #include void main() { int a[4]={1,2,3,4}; for(int i=0;______①______;i++) a[i]=______②______; }

4. 程序填空

运行下列程序后当str是对称的时,输出“是回文”,否则输出“不是回文”,请将程序补充完整。

#include void main() {

char str[20];

cin.get(str,20);//输入字符串 int i=0, j=0;

while (str[j])_______①___________; for(j--; i

cout<<\不是回文\

}

5. 运行下列程序的结果为___________________。

#include #include void main() { int array1[3][3]={1,2,3,4,5,6,7,8,9},array2[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) array2[j][i]=array1[i][j]; for(i=0;i<3;i++) { for(j=0;j<3;j++) cout<

6. 运行下列程序的结果为____________________。

#include void main() { int num[6],i,j; cout<<\请输入1到50的六个正整数:\for(i=0;i<6;i++) cin>>num[i]; for(i=0;i<6;i++) { for(j=1;j<=num[i];j++) cout<<\ cout<

输入为:2 4 1 6 3 1 三、编程题

1. 编写一个程序实现矩阵的乘法运算。

2. 输入一个4×4矩阵各元素的值,求解该矩阵中的马鞍点(即该点的值在它所在的行中

最大,在它所在的列中最小)。

3. 写统计输入的正文中有多少单词的程序,这里的单词指的是用空白符分隔开的字符串。 4. 编写程序实现一个简单的加密器,实现英文字符串的加密。加密规则如下:将字符替换

成它后面的第三个字符。如”abc”换成”def”。

5. 编写一程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷

贝时,’\\0’也要拷贝过去。’\\0’后面的字符不拷贝。

6. 有17个人围成一个圈(编号0-16),从第0号的人开始从1报数,凡报到3的倍数的人

离开圈子,然后再继续数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号?

7. 给定一个升序数组,该数组的元素值为1,3,5,7,9,11,13,任意输入一个数判断

该数在数组中是否存在。若存在,给出它在数组中的位置,否则显示该数不存在。 8. 打印输出杨辉三角形(共输出10行)。

【参考答案】 一、 选择题

1.b 2.a 3.a 4.d 5.c 6.

二、填空题

1.m n m×n 2.a[2]=100;

3.①i<3 ②a[i+1] 4.①j++ ②i==j 5.

1 4 7 2 5 8 3 6 9 6. ** **** *

****** *** *

三、编程题 1.

#include #include void main() { const int A1=2,A2=3,A3=2; int i,j,k; double array1[A1][A2]={{1.0,2.0,3.0},{4.0,5.0,6.0}}, array2[A2][A3]={{1.0,1.0},{1.0,1.0},{1.0,1.0}}, array3[A1][A3]={0,0,0,0}; for(i=0;i

#include void main() { int array[4][4],i,j,k,max,col,flag=0; cout<<\请输入4行4列矩阵:\ for(i=0;i<4;i++) for(j=0;j<4;j++) cin>>array[i][j];

for(i=0;i<4;i++) { max=array[i][0];col=0; for(j=1;j<4;j++) { if(array[i][j]>max) { max=array[i][j]; col=j; } } for(k=0;k<4;k++) { if(array[k][col]<=max&&k!=i) break; } if(k==4) { cout<<\马鞍点在\行\列:\ flag=1; } } if(!flag) cout<<\这个矩阵中没有马鞍点!\} 3.

#include void main() { const int MAX=100; char str[MAX]; int i,num=0; cin.get(str,100);//输入字符串,以回车结束 for(i=0;i

#include void main() { const LENGTH = 100; char str[LENGTH]; cout<<\请输入字符串:\ cin>>str; for(int i=0; i

cout<<\加密后的字符串为:\} 5.

#include void main() { int i,j,len1=0,len2=0; char s1[20]=\ for(i=0;i<20;i++) if(s1[i]!='\\0') len1++; else break; for(i=0;i<10;i++) if(s2[i]!='\\0') len2++; else break; if((len1+len2)>19) { cout<<\存储空间不足!\ return; } i=len1; j=0; while(i<20&&s2[j]!='\\0') s1[i++]=s2[j++]; s1[i]='\\0'; cout<

#include void main() { int array[17],n=17,i,j=1; for(i=0;i<17;i++) array[i]=1; i=1; while(n!=1) { if(array[(j-1)]==0) { j++;continue; } if(i%3==0) { array[(j-1)]=0; n--; } j++;i++; } for(i=0;i<17;i++) {