资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C+程序设计数组复习Review1第第5章章 数数组组Overview21.在C语言中,引用数组元素时,其数组下标的数据类型允许是-. A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型表达式C2.以下对一维整型数组a的正确说明是-. A)int a(10); B)int n=10,an; C)int n; D)#define SIZE 10 cinn; int an; int aSIZE; D3.若有说明int a10;则对a数组元素的正确引用是-. A)a10 B)a3.5 C)a(5) D)a10-10D34.在C语言中,一维数组的定义方式为:类型说明符 数组名-. A)常量表达式 B)整型表达式 C)整型常量或整型表达式 D)整型常量A5.以下能对一维数组a进行正确初始化的语句是-. A)int a10=(0,0,0,0,0); B)int a10=; C)int a=0; D)int a10=10*1;C46.以下不能对二维数组a进行正确初始化的语句是-.A.int a23=0;B.int a3=1,2,0;C.int a23=1,2,3,4,5,6;D.int a3=1,2,3,4,5,6;C7.若有说明:int a34=0;则下面正确的叙述是-.A.只有元素a00可得到初始值0B.此说明语句不正确C.数组a 中各元素都可得到初值,但其值不一定为0D.数组a中每个元素都可得到初值0D58.若有说明:int a4=0,0;则下面不正确的叙述是-.A.数组a中每个元素都可得到初值0B.二维数组第一维大小为1C.因为二维数组中的第二维大小的值除以初值个数的商为1,故数组a的行数为1D.只有元素a00和a01可得到初值0,其余元素均得不到初值0D6下面程序的运行结果是-.main() int a66,I,j; for (I=1;I6;I+) for (j=1;j6;j+) aIj=(i/j)*(j/I); for (I=1;I6;I+) for (j=1;j6;j+) coutaIj); cout(“n”); A) 1 1 1 1 1 B)0 0 0 0 1 C)1 0 0 0 0 D)1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 C7下面程序的运行结果是-.main() int a6,i; for (i=1;i3)%5; coutai; A) 4 0 4 0 4 B) 4 0 4 03C) 4 0 4 4 3 D) 4 0 4 4 0 C8对两个数组a和b进行如下初始化 char a=”ABCDEF”; char b=”A,B,C,D,E,F; 则以下叙述正确的是-. A)a与b数组完全相同 B)a与b长度相同 C)a和b主送都存放字符串 D)a数组比b数组长度 d9下面程序的运行结果是#include using namespace std;void main() int a33=1,2,3,4,5,6,7,8,9;int i,s=0;for(i=0;i=2;i+) s=s+aii;cout“s=”s;10下面程序段的运行结果是-. char a7=”abcdef”; char b4=”ABC”; strcpy(a,b); couta5; A) B)0 C)e D) f D11编程对用户输入一个含有10个整数的一维数组,分别计算数组中所有正数和所有负数的和。分析:本题要求我们掌握一维数组的定义和正确的输入方法,求和之前要先判断数组元素是正数还是负数,程序代码如下:#include”iostream.h”void main( ) int a10,I,sum0=0,sum1=0; cout”please input 10 number:”endl; for(I=0;IaI; for(I=0;I=0) sum0+=aI; else sum1+=aI; cout”正数和:”sum0”负数和:”sum1endl; 12有17个人围成一个圈(编号016),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号?#include#includevoid main() int i,n,m;int k=0,sum=0;int a100;coutn;coutm;for(i=0;in;i+) ai=1;do for(i=0;i=n;i+) sum=sum+ai; if(sum=m) coutit;ai=0;sum=0;k+; if(k=n)coutendl; cout最后人出局是第i 号endl; while (kn);13写运行写运行结结果果#include using namespace std;int main()fun(6);return 0;int fun(int x)if(x/2)0)fun(x/2);coutxendl;1413615写出下列程序的运行写出下列程序的运行结结果:果:#include void main(void) int a66,i,j;for (i=1;i6;i+)for (j=1;j6;j+)aij=(i/j)*(j/i); for (i=1;i6;i+) for (j=1;j6;j+)coutaijt;coutendl;16答:aij=(i/j)*(j/i); /当ij时i/j=0 当ji时j/i=0 所以aij=1, i=jaij=0, ij即矩阵对角线上元素为1,其它元素为0。输出结果为对角线矩阵:1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 00 0 0 0 0 117写出下列程序的运行结果:#include #include void main(void) char str80;int i,j,k;coutstr;for (i=0,j=strlen(str)-1;ij;i+,j-) k=stri;stri=strj;strj=k;coutstrendl;运行时输入:abcdef(回车)答:fedcba184.7某班有某班有30个学生,个学生,进进行了数学考行了数学考试试,编编写程序将考写程序将考试试成成绩输绩输入一入一维维数数组组,并求数学的平均成,并求数学的平均成绩绩及不及格学生的人及不及格学生的人数。数。19解:解:#include #define N 10void main(void) float mathN,sum,ave;int i,count;coutInput math score:;sum=0;count=0;for(i=0; imathi;for(i=0;iN;i+) sum=sum+mathi;if (mathi60) count+;ave=sum/N;coutave=avetcount=countendl; 20已有一按从小到大次序排序好的数已有一按从小到大次序排序好的数组组,现输现输入一数,入一数,要求按原来排序的要求按原来排序的规规律将它插入到数律将它插入到数组组中。中。(习题课习题课内容,提示:先定位、向后移,再插入内容,提示:先定位、向后移,再插入)21解:解:#include #include #define N 10void main(void) float aN;int i,b,j;coutInput sort array a9:endl;for(i=0;iai;coutb;i=0;while (aii;j-) aj=aj-1;ai=b;for (i=0;iN;i+)coutsetw(6)aiendl;输输入入:1 2 3 4 5 6 7 8 10 插入插入:9输输出出 :1 2 3 4 5 6 7 8 9 10 22已有一按从小到大次序排序好的数已有一按从小到大次序排序好的数组组,现输现输入一数,入一数,要求用折半要求用折半查查找法找出找法找出该该数在数数在数组组中的位置。中的位置。23#include #define N 10void main(void) float aN;int i,b,n,m;coutInput sort array a9:endl;for(i=0;iai;coutb;i=0;n=N/2;m=n;while(m1) if (b=an) break;else if (ban) n=n+m/2 ;else n=n-m/2;m=m/2;if (b=an) coutb is on n+1;elsecoutno find !;24某小组有5个学生,考了3门课程,他们的学号及成绩如表所示,试编程求每个学生的总成绩及每门课的平均成绩,并按表格形式输出每个学生的学号、3门课程成绩、总成绩及各门课程的平均成绩。要求用一个6行5列的数组完成上述操作。学生成绩情况表学 号 数 学 语 文 外 语 总成绩 平均成绩1001 90 80 851002 70 75 801003 65 70 751004 85 50 601005 80 90 7025平均成平均成绩绩 解:解:#include #include #define M 6#define N 5void main(void) float sMN,sum,ave;int i,j;coutInput data:n; /输输入数据入数据for (i=0;iM-1;i+) /输输入入5个学生的学号与个学生的学号与3门课门课成成绩绩 for (j=0;jsij;for (i=0;iM;i+) /处处理数据理数据 sum=0.0;for (j=1;jN-1;j+) /计计算每个学生的算每个学生的总总成成绩绩sum=sum+sij;siN-1=sum; /计计算每个学生的算每个学生的总总分分for (j=1;jN;j+) /处处理数据理数据 sum=0.0;for (i=0;iM-1;i+) /计计算每个学生的算每个学生的总总成成绩绩sum=sum+sij;sM-1j=sum/(M-1); /计计算每算每门课门课程的平均分程的平均分coutsetw(5) Num. Math. Chin. Engl. Sum.endl; /输输出数据出数据cout-n;for (i=0;iM;i+) for (j=0;jN;j+) /输输出学号、出学号、3门课门课程的成程的成绩绩与与总总分分if (i=M-1 & j=0) coutsetw(6) ;else coutsetw(6)sij;coutendl; cout-n;2627
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号