资源描述
C+面向对象程序设计自学指导书浙江师范大学 信息科学与工程学院朱建新 编2005年4月30日目 录第一章 C+语言概述1【学习要点】1【例题分析】1【思考题】2第二章 基本数据类型 运算符及表达式3【学习要点】3【例题分析】3【思考题】5第三章 控制结构6【学习要点】6【例题分析】6【思考题】15第四章 数组19【学习要点】19【例题分析】19【思考题】22第五章 函数与编译预处理32【学习要点】32【例题分析】32【思考题】40第六章 指针50【学习要点】50【例题分析】50【思考题】59第七章 结构体与共用体61【学习要点】61【例题分析】61【思考题】68第八章 类与对象72【学习要点】72【例题分析】72【思考题】79第九章 继承与派生类82【学习要点】82【例题分析】83【思考题】87第十章 运算符重载与虚函数92【学习要点】92【例题分析】92【思考题】102第十一章 文件与流类库104【学习要点】104【例题分析】104【思考题】109第一章 C+语言概述本章主要介绍C十的起源、发展历史及其特点;C十程序的基本结构;Visual C6.0集成开发环境及上机操作过程。【学习要点】 1. 了解C十语言的特点。 2. 理解C十语言源程序的结构、书写格式和main()函数的作用。 3. 熟悉 Visual C6.0集成开发环境。熟练掌握利用 Visual C6.0集成开发环境开发、调试C十控制台程序的步骤和基本操作。【例题分析】 一、选择题 例11 以下叙述中正确的是。 A. C十程序由main()函数组成 B. C十程序由函数组成 C. C十程序的执行从第一个函数开始 D. 在C十程序中,注释只能位于一条语句之后 解:对于C十程序应明确: (l)程序由函数组成。一个可运行的C十源程序可由一个且仅能由一个 main()函数加上其他的函数组成,其他函数可有可无。 (2)不管main()函数出现在什么位置,程序总是从main()函数开始执行。 (3)注释的两种方法:一是用*和*把注释信息括起来;二是用/,它表示/之后到本行结束为注释内容。可以在程序任何位置进行注释。 正确答案:B。 二、填空题 例12 在下列程序的每行之后加上注释。 #include iostream.h void main() coutHello!n;coutWelcome to C+!n; 解:注释如下:include iostream.h /指示编译器在此处将文件iostream.h上中的代码嵌入本程序。void main() /主函数,void表示 main()函数没有返回值。coutHello!n;/输出字符串“Hello!”到显示器上。 cout“Welcome to C!n;/输出字符串“Welcome to C!n”。 例1-3 C十中函数的函数体由符号开始,用符号结束。 解:C十中函数的函数体由符号“”开始,用符号“”结束。三、 编程题例1-4 编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。解: 程序如下: #include iostream.h void main( ) int i; couti; cout你输入的数字是iendl;【思考题】 一、选择题1. C十语言规定:在一个源程序中,main()函数的位置_。A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 以下正确的叙述是。A. C十程序的每行中只能写一个语句B. C十语言本身无输入、输出语句C. 在对一个C十源程序进行编译的过程中,可发现注释中的拼写错误D. 在C十程序中,main()函数必须位于程序的最前面 3. 以下符号中能作为用户标识符的是。 A. 123 B. void C. struct D .switch 4. C十语言程序的基本单位是。 A. 程序行B. 语句C. 函数D. 字符 二、填空题 5. 一个可执行的C十程序至少必须有一个函数。 6. C十源程序中注释的作用是。 7. 一个C十语句以结束。是C十语句的组成部分。 8. 在C十语言中输入、输出操作是通过来实现的。 9. 在下列程序的每行之后力,上注释。 #includeiostream.h void main() int nl, n2, sum; contEmter two numbers n1,n2:; cinn1n2; sum=n1+n2; coutn1+n1sumendl; 三、编程题 10. 参照例题分析,编写一个C十程序并上机运行,能输出以下信息:* Hello,C! * 11. 编写一个C十程序,输入任意三个数a,b,c,能输出其中的最大值。第二章 基本数据类型 运算符及表达式本章是C十语言中需要熟记的内容最多的一章,对于数据类型、运算符、表达式等内容既要熟记,更要灵活运用;特别要注意与自然语言明显不同的逗号运算、自增自减等运算的特点。【学习要点】1. 掌握常量与变量、整型数与实型数的概念。2. 掌握字符型数据与字符串型数据的概念以及二者的区别。3. 掌握各种类型的变量说明及其初始化。4. 掌握算术运算、逻辑运算、关系运算、赋值运算、逗号运算等概念。5. 掌握运算符的优先级、左结合和右结合规则以及目数的概念。6. 掌握表达式求值时类型的自动转换和强制类型转换。7. 掌握表达式的组成、表达式的优化。8. 掌握位运算和位运算符。【例题分析】一、选择题 例 21 下列不合法的变量名为_ A. student B. -student C._student D. student() 解:根据变量命名要求,首字母以英文字母或下划线开头。正确答案:B。 例 22 下列不合法的变量名为Atudent Bastudent Cs_tudent Dstuden() 解:根据变量命名要求,变量名组成只能由大小写字母、数字、下划线组成。 正确答案:A。例23 下列不合法的变量名为Alint Bint1 cint D_lint 解:根据变量命名要求,系统关键字不能作为变量名。正确答案:C。 例 24 当 a=6,b5时,逻辑表达式 a7ab8的值为_Atrue Bfalse C 非0整型数 D 0解:根据题意和该逻辑表达式的运算结果。 正确答案:C。 例 25 设 X,y,Z为整型数,下列各式中,运算结果与 Xy24的表达式相同的是。 Ax(yz=8,46) Bx= y(z=8,46) CX= y= z8,46 D.x(y= z= 8),46 解:C+语言的赋值运算有别于其他高级语言,逗号运算又是其他高级语言所没有的。 1 在赋值表达式中,可以有多个赋值运算符;计算顺序自右向左,运算优先级低,仅高于远号运算符。 2 逗号既是分隔符,又是运算符,可以用一个逗号运算符或多个逗号运算得将多个表达式连接成逗号表达式,计算顺序自左向右,并将最后一个表达式的值作为整个逗号表达式的值,运算优先级最低;例:a(22, 46,204,6);结果a=6。正确答案:B。例26 设i6,k=0下列各式中,运算结果为k7 的表达式是。A kik B kki C kik Dkk(十十i)解:自增十十、自减运算符是C十语言特有的。1运算符在变量的前面或后面,其运算结果是不同的。若十十或在变量前;则先将变量的值加1(或减 1后,再将变量的值参加运算;反之则先将变量的值参加运算;再将变量的值加1(或减1)。2自增、自减运算符优先级高于算术运算符,A式ik,先计算i,再力。k,D式 k= k(i),若去掉括号,则改变了运算顺序;变为 k十后,再十l。正确答案;C和D。二、填空题例 27 表达式AB20的值为 解:不同类型的数据混合运算时,系统可以自动进行类型转换,将表示范围小的数据类型转换成另一操作数的相同类型后再参与运算,则转换为656620151。 例28 如果定义int e=8;double f=6.4,g8.9;则表达式fint(e3*int(fg)2)4的值为。解:不同类型的数据混合运算时,可以使用强制类型转换符,强制将一种数据类型转换成另一种数据类型后再参与运算,对于表达式,先求表达式的值,然后再转换值的类型,本例的运算结果为 9.4 。若将式中 e3改为 e3.0 则运算结果为6.4,因为e3的值是整型数,而e3.0的值是实型数,改变了括号内的运算结果,致使整个表达式的值发生变化。例29 若int i= 65535,j x000x,k:ki&j;,则k值为,i值为。解:将 10进制数65535和 16进制数000aH在计算机内的二进制原型数值按位与运算,结果为 k= 10,i为 65535。三、编程题例 210 编写一个将华氏温度转换为摄氏温度的程序。转换公式为 C(5.09)(F32),要求输出华氏温度和摄氏温度的对应值。解:程序如下:#includevoid main() double C,F; coutF; C=(5.0/9)*(F-32); cout华氏温度为:F 对应的摄氏温度值是: Cendla1c1a2c2;A20A 60B B20,A,60,B C 20 A 60 BD20A60B E20B注:此处为空格符,CR为回车键符,下文同。解:C十语言没有专门的输入输出语句,其输入输出可通过输入输出流来实现。cin不能将输入的空格赋给字符型变量,空格和回车键均作为输入字符之间的分隔符;字符型变量只能容纳一个字符,整型数只能由数字组成;逗号不能作为分隔符。 正确答案:A、C、D、E。 例32 设有语句float PI= 3.14;,若用科学表示法输出为3.e000则下列正确的表达式为_AcoutPIendl;Bcout.setf(ios: scientific,ios:floatfield);coutPIn;Cprintf(12.10fn,PI);Dprintf(en,PI); 解:C十语言除用输出流输出数据外,还可用C语言的输入输出函数,但需包含stdio.h,其输出格式与C十输出流格式不同:C十中可用预定义的格式控制函数定义输出格式,也可以用ios类的成员函数进行格式控制。若学用科学表示法输出数据,必须用ios类成员函数 setf设置状态标志。printf函数必须用e格式符才可以输出科学表示法形式的数据。 正确答案:B、D。二、填空题 例3-3 以下程序的输出结果为_includeiostream.hvoid main() short i; i=-6; coutoctoctidec deci,hexhexiendl: 解:i为short 类型,占用2字节内存,而oct、dec、hex是C十中预定义的格式控制函数控制输入输出数据的格式。答案为 oct,dec=-6,hex= fffa。 例 3-4 以下程序的输出结果为includeiostream.hvoid main()int i66;char c=A;couti=(char)i,c=decinn;解: 本程序采用了强制型转换符,将i转换为字符型数据输出,又用格式控制函数将字符型数据转换成数值型数据输出。答案为iB,C66a 例3-5 以下程序的输出结果为_#include void main()int i=0,x=0,y=0;do i+;if(i%3!=0) x+=i;i+; y+=i+; while(i5),coutx=x y= yendl;解:x = 5 y = 7例3-6 以下程序的输出结果为_#include void main()int x, y=10;while(x=y-l) y-=2;if(y%3=0) x+; continue;else if(y4) break;x+;coutx=x y= yendl;解: 输出结果是: x=3 y=2例3-7 以下程序的输出结果为_#includevoid main() int i,j,m;for(i=1;i4;i+) for(j=l;j7;j+) if(j= =4) break;m=i*j;couti * j= m ;coutendl;解: 运行结果如下:ll = 1 l2 = 2 l3 = 32l = 2 22 = 4 23 = 631 = 3 32 = 6 33 = 9注意:当j的值为4时,结束的是内层循环,外层for循环继续执行。例3-8 以下程序的输出结果为_#includevoid main() int i,j,m;for(i= l;i4;i+) for(j=1;j7;j+) if(j = = 4) continue;m=i *j;couti * j= m ;coutendl;解:运行结果如下:1l = l l2=2 l 3=3 15=5 l 6=621 = 2 22=4 23= 6 25 = l0 26= l23l =3 32= 6 33=9 35 = l5 36= 18 注意: continue结束本次循环,即当j的值为4时,内层循环体的条件语句后面的部分不执行,循环变量j自加,执行下一次内层循环。例39 输入一个自然数,输出其各因子的连乘形式。如输入12,输出121223的形式,请填空。#include void main()int i=2, n;coutn;coutn= 1;do if(n%i= =0) cout*i;_1_;else i+; while(_2_);解: nni;n!1 三、编程题 例 310 编程实现如下所示的函数关系式。已知 X,求 y的值。 x (x1)y= x+5 (1x10) x-5 (x l0) 解:该函数实质是一个分段函数,即根据x的不同取值范围,由相应的函数式求y的值。 (1)使用缺省else的if语句形式#inc1udevoid main()float x,y;coutx ;if(x= l &x=10) y=x-5;couty= yendl;(2)用条件语句的嵌套形式实现#inc1udevoid main()float x,y;coutx;if(x1) y=x;else if(x 10) y=x+5;else y=x-5;cout y= yendl; 例311 根据输入的年月,求出该年该月的天数。 解:本题要根据月份来讨论天数,如是大月(1,3,5,7,8,10,12)则天数是31,如是小月(4,6,9,11)则天数是30;如是2月;要看该年是否闰年,是闰年则为29天,非闰年则为28天,显然本程序采用多分支选择结构。具体程序如下:#include#inc1udevoid main()int year,month,days;coutyear;coutmonth;switch(month)case 1:case 3:case 5:case 7:case 8:case 10:case l2:days=3 1;break;case 4:case 6:case 9:case 11:days=30;break;case 2: if(year%4=0& & year%100!=0) | year%400= =0) days=29;else days=28; break;default:coutInput error ! endl; exit(0);coutyear: yearendl month: monthendldays: daysl时,第i项为(ab)a。程序如下:(l)用while语句实现。#includevoid main() float sum,t,a,b;int i;a=2;b= l;i= 2 ) t=a/b; sum=t;while(i=5) a=a+b; /求第i项的分子 b=a-b; /求第i项的分母 t=a/h; /求第i项的值 sum+=t; /求第i项的和 i+;cout sum= sumendl;(2 ) 用for语句实现.#includevoid main() float sum,t,a,b;int i,a=b= 1.0, sum=0.0;for(i= 1;i= 15;i+) a=a+b; /求第i项的分子 b=a-b,; /求第i项的分母 t=a/b; /求第i项的值 sum+=t; /求第i项的和cout sum= sumendl;(3 )用do-while语句实现#includevoid main() float sum,t,a,b; int i=l, a=b=1.0;sum=0; do a=a+b; /求第i项的分子 b=a-b; /求第i项的分母 t=a/b; /求第i项的值 sum+=t; /求第i项的和 while(+i= 15);cout sum= sumendl;例3-13 正整数n从键盘输人,计算5n的值。 解:计算5n可用循环语句实现,本例仅以while语句实现。#include void main()int i=1,n;float resuIt=1.0;coutn;if(n) while(i=n) result*=5.0;i+;cout结果是: resultn ;例3-14 1-l213-14l99-1100的值。 解:本题仅以for语句实现。 #include void main() float sum=0.0, s=1 .0; for(int i=l;i=l00;i+) sum+=s/i; s=-s, cout结果是: sumn; 例315 输入一行字符,将其中的两种字符 C和显示出来,而对其他字符不显示,同时统计出其他字符的个数。 解: #include #include void main() char ch; int i=0; while (ch=getchar() ) ! =n ) if(ch!=C&ch!=+) i+; continue; coutch; cout其他字符的个数为:in; 例316 从键盘输入某班若干名学生一门课程的成绩,编程找出最高分和最低分,并统计全班平均成绩。 解:要求程序具有灵活性,程序中参加统计的学生人数应随具体情况而定,不应固定,若以输入负数作为统计结束条件,则程序如下:#include void main()float score;max;min;sum=0.0;int num=0;coutscore;max=min= score;whi1e(score=0) if(scoremax) max=score;if(scoremin) min=score;sum+=score;num+;coutscore;if(num) cout共统计 num人endl;cout最高分是maxend1;cout最低分是 minendl;cout平均成绩是sum/numendl;else cout无输入!endl; 例317 从键盘不断读入字母,如字母为元音字母,则输出其相应的大写字母,否则结束程序解: #include void main()char ch;int quit=0;do coutch;switch(ch) case a:coutA; break;case e:coutE; break;case i:coutl; break;case o:coutO; break;case u:coutU; break;default: quit=1; break; while(!quit); 例318 模拟计算器进行加、减、乘、除数学运算。要求当输入两个操作数和运算符后,输出运算结果。一次运算结束后询问用户是否继续,用户根据需要可继续进行运算。解:#include void main()char op;char quit=y;float dl;d2;while(quit= =y| quit= =Y) cout输入:第一个操作数;运算符和第二个操作数d1opd2;switch(op) case +: coutd1+d2=(dl+d2)endl;break;case -: coutd1 - d2 =(d1-d2) endl;break;case *: coutd1 * d2= (d1 * d2)endl;break;case /:if(d2=0.0) cout输入错误! endl;quit=0; elsecoutd1 /d2= (d1/d2)rend1;break;defauit:cout运算符错误endl;break;coutquit;【思考题】一. 选择题1以下程序的输出结果是_#includevoid main()int w=4,x=3,y=2,z= 1,result;result=wx?w: zy?z:x;coutresultendl;A1 B 2 C 3 D 42若所以变量均已正确说明,下列程序运行后X的值是_a=b=c=0;x=35;if(! a)x-;else if(b) x=2;if(c) x=3;else x=4;coutxendl;A. 34 B. 4 C. 35 D. 33. 若已有说明语句int x,y;则不能实现以下函数关系的程序段是_-1 (x1)A. if (x0) y=1; e1se y=0;C. y=0; D. if(x=0)if(x=0) if(x0) y=l; if(x0) y=1; else y=0; else y=-l; e1se y=-1;4.设有说明语句int a=1,b=0;则执行以下语句后输出为_switch(a)case l:switch(b)case 0:cout *0*;break;case l: cout: *1* ;break;case 2:cout*2*;break;A. *0* B. *0*2* C. *0*l*2* D. 有语法错误5.设有以下程序段,则_int x=0;s=0;while (!x!=0) s+=+x;couts;A. 运行程序段后输出0 子 B. 运行程序段后输出1C. 程序段中的控制表达式是非法 D.程序段执行无限次6. 以下程序段中,能正确计算10!的是_A. do i=1;s=1; B. do i=1;s=0; s=s*i; s=s*i; i+; i+;while(i=l0); whi1e(i=10);C. i=l;s=1; D. i=1;s=0; do s=s*i; do s=s*i; i+; i+;while(i=10); while(i=10);7下面程序的功能是计算正整数2345的各位数字的平方和。请选择填空。#includevoid main() int n,sum=0;n=2345;do sum=sum+_1_;n=_2_; while(n);cout sum= sumendl; A. n%10 B. (n%l0)*(n%10) C. n/ l0 D. (n/ l0)*(n/ l0) A. n/l000 B. n/100 C. n/l0 D. n%108等比数例的第1项a=1,公比q2下面程序的功能是求满足前n项和小于100时的最大n,请选择填空。#includeiostream.hvoid main() int a,q,n,sum;a=1;q=2;n=sum=0;do _1_;+n; a=a*q; whi1e(sum100);_2_;coutn; A. sum+ B. sum+=a C. sum*=a D. a+=sum A. n=n-2 B. n=n C. n+ D. n-=1 二、填空题 9. 下面程序的功能是计算100至1000之间有多少个数,其各位数字之和是5。#includevoid main() int i,s,k,count=0,for(i=l00;i=1000;i+) s=0,k=i,while(_) s=s+_; _;if(s!=5)_;elsecount+;coutcount;l计算两个整数的最大公因子。#includevoid main() int temp,num,den,a,b;cinab,num=a; den=b,while(den) temp=_;num=den;den=temp;cout_ endl; 11. 阅读理解 指出下面程序的功能。#includevoid main()const int magic= l7;int guess;coutguess;if(guess= =magic)coutRight!endl;coutThe magic number is:magic;elsecoutWrong! magic) coutToo highendl;else coutToo lowendl;三、编程题12 修改例3-11 根据所输入的年份,求出该年天数。13 试编程序输入三角形三边 a,b,c,判断是否能构成一个三角形若能,则求该三角形面积。14 每个苹果0.8元 第一天买2个苹果 从第二天开始,每天买前一天的2倍直至购买的苹果个数不超过 100的最大值、编写程序,求每天花多少钱?15找出199之间的全部同构数。同构数是这样一组数:它出现在其平方数的右边。如 5是 25右边的数,25是 625右边的数,故 5和 25都是同构数。16求一个整数任意次方的最后三位数。即求x y的最后三位数要求x,y从键盘输入。17 将数列1、2、5、10、21、42、85、170、341、682、.延长到第50项18 计算1!2!3!+n!前10项之和。19 输入一行由英文字母、数字、符号等组成的字符,将其中的大写和小写字母的个数分别统计出来。20 买现摄氏温度与华氏温度的转换,并按1.0间隔输出对照表,格式如下: 摄氏温度 华氏温度 0.0 32.0 1.0 33.8 . .21求整数100-200间能被3或13整除的所有整数。22读入10个学生的个人信息的学号和成绩,输出所有学生的学号、成绩,同时并根据分数与等级的对应关系,输出每一个学生相应的成绩等级。成绩:10090 8980 7970 6960 590等级: 优 良 中 及格 差第四章 数组【学习要点】1.掌握一维和二维数组的定义和数组元素的引用方法,了解其存储结构。2.掌握一维和二维数组初始化方法。3.掌握有关一维和二维数组的基本算法。4.掌握字符数组的定义、其元素的引用方法和字符数组的初始化方法。5.掌握C+提供的对字符串进行处理的基本函数【例题分析】一、选择题例 41 以下合法的数组定义是。Aint a =A,B,C;Bini a5=0,l,2,3,4,5;Cnt a=A,B,C;Dint a =0, 1,2,3,4,5 ; 解:根据数组定义和初始化情况,数组类型与所赋数据的类型应一致,指定的数组长度应大于或等于花括弧中的数据个数,对数组长度可省略。正确答案:D。 例42 设有定义语句inta24:则以下叙述不正确的是。A a数组可以看成是由 a0、a1两个元素组成的一维数组B a0代表一个地址常量C 元素a0是由4个整型元素组成的一维数组D 可用a05;的形式给数组元素赋值 解:C+对二维数组的处理是将其看作一个特殊的一维数组,即这个数组中每个元素又是一个一线数组。所以二维数组a可认为是由两个元素a0。a1组成的一维数组,而数组元素 a0和 a1又是由 4个int型元素组成的一维数组。C十规定了数组名代表地址常量,其值是不可改变的,故赋值语句a05:是非法的。正确答案:D。例43 若有说明int a34;,则对a数组元素的非法引用是。 A. a02*1 B. a04 C. a4-20 D. a13 解:引用二维数组元素的格式为:数组名下标表达式1下标表达式2,而下标表达式可以是常量、变量,但其值必须是确定的整数且在该数组的定义范围之内。 正确答案;B。 例44 若有以下定义和语句,则输出结果是。 char a, sl0, s=abcd; a=s; couts2) B. if(strcmp(s1,s2) C. if (strcmp(sl, s2)0) D. s1s2 解:两个字符串比较必须使用字符串比较函数strcmP(字符串1,字符串2)。比较的结果:相等时返回以0;大于时返回正整数;小于时返回负整数。 正确答案:C。 二、填空题 例46 若有定义 int a34= 1,2,0,4,6,8,l0 ),,则初始化后a12得到的初值是,对21得到的初值是。 解:在定义的同时对数组元素进行初始化,可以对所有元素赋初值,也可只对部分元素赋初值;其余元素为0。根据数组中元素排列的顺序以行为单位进行存放,定义式右边的数据是以作为行元素进行组织的。故 al2得到的初值是0,a21得到的初值是6。 例47 语句coutstrlen (tn06508AW)n;的输出结果。 解:按照C十中转义字符的规定,在字符串tn06508AW中,含有t、n、065转义字符,分别表示单个字符;0也是转义字符,是宇符串结束标志,系统认为字符串到此结束,不计其后的8、A、W。 正确答案:5。 注意:若将 8改为 7,而07却是一个字符,加上 A、W,此字符串的长度是8。 例48 以下程序的输出结果是。#include iostream.h#include string.hvoid main()char str50=xyz, p120= abcd, p2 = ABCD;strcpy(str+2, strcat(p1 +2,p2+1);coutstrn; 解:由于字符数组名str、pl、pZ表示地址,同理表达式str2、p12、p21 的值也是地址,str2表示字符串“xyz”中字符z的地址,p12表示字符串“abcd”中c的地址,p2l表示字符串ABCD中字符B的地址,分别代表的字符串为“z”、cd、“BCD”。调用函数strcat(p12,p2+1)得到字符串“cdBCD”,调用strcpy()后,将刚才“cdBCD”拷贝到str中以z为起始地址的存储单元中,因此覆盖了str 中从z开始的存储单元中的数据, 正确答案:xycdBCD。 三、编程题 例49 先定义一个含有30个整型元素的数组,依次赋予从2开始的偶数,然后将按顺序每五个数的平均值放在另一个数组中,并要求按每行3个数输出结果。 解:根据题意,可定义一维整型数组a30用于存放初始数据和数组b6用于存放平均值,临时变量sum用来存放5个元素之和。以i(初值为0,终值为29)作为循环变量,用for循环通过ai2*i2给数组a赋值;以i作为循环变量,表达式i50将a的30个元素分成6组,分别求出和sum,以j为数组b的下标,用while循环来实现bj为a的5个元素之平均值。程序如下:#inc1ude iostream.hvoid main()int a30,i,j=0;float sum=0,b6;for(i=0,i30,i+) ai=2*i+2; /给a数组元素赋值cout30 个整数为:n;for(i=0;i30;i+) coutai ; /输出a数组元素的值coutn;i=0;while(i30) /求 a中每 5个元素的平均值,放入 b数组中sum+=ai;i+;if(i%5= =0) /5个元素为一组,求平均值bj=sum/5; sum=0; j+; /sum必须置为0,为下一组数求和作准备cout每五个数的平均值:;for(i=0;i6;i+)if(i%3=0) coutn;/每行输出 3个数coutb i t; 例 410 通过循环按行顺序为一个 55 的二维数组赋 125 的自然数,然后计算并输出该数组的左下三角元素之和。试编程。 解:可以利用双重循环实现二维数组的赋值,即用外循环控制行下标i,内循环控制列下标j,在循环体中数组元素aijn,(n的初值为1,每赋值一次加 1);同样利用双重循环实现左下三
展开阅读全文