版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章C++及其开发环境概述ー、问答题1.结构化程序设计主要有哪些劣势?【答案】(1)程序的开发效率低下(2)程序的可重用性差(3)程序的维护成本高(4)无法适应信息的快速膨胀和多样化面向对象的程序设计有哪些优点?【答案】(1)程序的开发效率高(2)程序代码的可重用性髙(3)程序易于维护C++的发展经历了哪些阶段?【答案】C++语言起源于C语言。1980年初期,美国贝尔实验室的BjarneStroustrup博士及其同事在C语言的基础上,从Simula67中引入面向对象的特征,开发出ー种过程性与对象性相结合的程序设计语言,最初称为“带类的C”,1983年正式取名为C++。后来,Stroustrup和他的同事陆续将运算符重载、继承、虚函数等特性引入C++,1989年后推出AT&TC++2.0版,并经过多次改进和完善,发展成为现在的C++。C++主要有哪些特点?【答案】C++可以被看成C语言的ー个超集,是对C的增强和扩展。因此,许多C代码可以不经修改即可为C++所用。自然,也可以利用C++开发环境来开发C程序。C++几乎支持所有面向对象的程序设计特征,因此,利用C++不仅可以进行传统的结构化程序设计,而且可以较好地进行面向对象的程序开发。C++很好地保持了C的简洁、高效、灵活和接近汇编语言的特点,因此,C++程序的执行效率也很高。ー个C++程序一般由哪几部分构成?【答案】①预处理命令。C++提供「三种预处理命令,即宏定义命令、文件包含命令和条件编译命令。②全局声明部分。此部分内容通常会给出用户自定义的数据类型声明,以及程序中所涉及变量的定义,例如类的声明。遁朽品公だ系用丛お,新娓结构③函数。ー个程序中可包含一个或多个函数,它们是执行用户指定操作的主要部分。使用VisualC++开发C++程序时一般要经过哪几个步骤?每个步骤的作用是什么?相应地产生哪些文件?【答案】(1)编写程序C++是种高级语言,所以用其编写的程序称为“源程序”,以.cpp做为后缀。我们可以利用VisualC++、TurboC++等编译软件来编写C++源程序。(2)编译程序计算机不能识别高级语言,为了将源程序翻译成计算机可识别的:进制指令,需将源程序进行编译,编译之后的文件称作“目标文件”,以.。bj作为后缀。编译时以每个源程序单元为单位,每ー个源程序文件编译成一个目标文件。因此,如果ー个工程中有多个源程序单元,系统会分别将其编译成多个H标文件。另外,编译时系统会自动进行错误检查,一旦检查出有错误,便不会生成目标文件,需改正后重新编译。(3)连接目标文件•个程序中可能会包含很多文件,编译后会生成很多独立的目标文件,此时系统的“连接程序”将这些口标文件和库文件以及系统提供的其他信息连接起来,形成二进制可执行文件,以•exe为后缀。(4)运行程序运行二进制可执行文件,得到运行结果。如运行结果不正确,则需修改源文件,之后重新编译运行。二、分析运行结果L#include<iostream>usingnamespacestd;intmain()(cout«"MyM«Hsistern;cout«MisH«Ha”;cout«"beautifulgirl!"«endl;return0;}运行结果为:Mysisterisabeautifulgirl!2.#include<iostream>usingnamespacestd;intmain()inta,b,c;cin»a»b;c=a+b;cout«,'a+b="«a+b«endl;return0;)运行结果为:23/a+b=5第2章C++程序设计基础(上)ー、选择题TOC\o"1-5"\h\z(1)在ー个C++程序中,main函数的位置( ).A,必须在程序的开头 B.必须在程序的后面C,可以在程序的任何地方 D.必须在其他函数中间【答案】C(2)用C++语言编写的源程序要变为目标程序必须要经过( )。A.解释B,汇编C.编辑D.编译【答案】DC++程序基本单位是( )。A.数据 B.字符 C.函数D,语句【答案】CC++程序中的语句必须以( )结束。A.冒号B.分号 C.空格D.花括号【答案】B下列选项中,全部都是C++关键字的选项为( )。A.whileIFstatic B.breakchargoC.sizeofcaseextern D.switchfloatinteger【答案】c(6)下列正确的ハ进制整型常量表示是( )«A.OaOB.015C.080D.0x10【答案】B(7)在下列运算符中,( )优先级最高。A.<=B.*=C.+D.*【答案】D魂掲品我ガ皐H丛お,加梶结构(8)在下列运算符中,( )优先级最低。A.! B.&&C.!=D.?:【答案】D(9)设i=l,j=2,则表达式i+++j的值为( )。A.1B.2C.3D.4【答案】C(10)设i=l,j=2,则表达式++i+j的值为( )。A.1B.2C.3D.4【答案】D(11)在下列表达式选项中,( )是正确。A.++(a++)B.a++bC•a+++bD.a++++b【答案】C(12)已知i=04Lk=2,则逻辑表达式++ill-j&&++k的值为( )。A.0B.1C.2D.3【答案】B(13)执行下列语句后,x的值是(),y的值是( )〇intx,y;x=y=l;++xll++y;A.不确定B.1,1C.2,1D.2,2【答案】C(14)已知x=5,则执行语句x十二x一=x*x;后,x的值为()〇A.25B.40C.-40D.20【答案】C(15)设a=l,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( )。A.1A.1B.2C.3D.4【答案】A(16)【答案】A(16)逗号表达式(x=4*5,x*5),x+25的值为()〇A.25B.20C.100D.45【答案】C二、写出下列数学表达式的C++算术表达式x{x[x(ax+b)4-c]+d)+e-I|a+ザいホ)(5)z-I|a+ザいホ)(5)zl-x2xctsWJ1+5cos48。(6)logio(a2+ab+b2)【答案】l/(l+l/(l+l/(x+y)))x*(x*(x*(a*x+b)+c)+d)+elog(l+pow(fabs((a+b)/(a-b)),l0)sqrt(l+3.14159/2*cos(48*3.14159/180))1/tan((1-x*x)/(1+x*x))或者cos((l-x*x)/(l+x*x))/sin((1-x*x)/(1+x*x))log10(a*a+a*b+b*b)三、用关系表达式或逻辑表达式表示下列条件(1)i整除j (2)n是小于正整数k的偶数(3)l<=x<10 (4)x,y其中有一个小于z(5)yg[-100-10],并且y任[10,100](6)坐标点(x,y)落在以(10,20)为圆心,以35为半径的圆内(7)三条边a,b和c构成三角形(8)年份Year能被4整除,但不能被100整除或者能被400整除【答案】(1)i%j==0 (2)(n<k)&&(n%2=0)(3)l<=x&&x<10 (4)x<zlly<z!(y>=-l00&&y<=-l0)&&!(y>=10&&y<=100)sqrt(pow((x-l0),2)+pow((y-20),2))<35a+b>c&&b+c>a&&c+a>b(year%4==0)&&(year%100!=0)ll(year%400==0)四、阅读下列程序,写出执行结果#include<iostream>usingnamespacestd;voidmain()(inta=l,b=2,x,y;cout«a+++++b«endl;cout«a%b«endl;x=!a>b;y=x-&&b;cout«x«endl;cout«y«endl;}【答案】憑格ス公だ系更丛2-10#include<iostream>usingnamespacestd;voidmain(){intx,y,z,f;x=y=z=l;f=—xlly-&&z++;cout«,'x=,,«x«endl;cout«1'y=,'«y«endl;cout«,'z=,'«z<<endl;cout«Mf="«f«endl;}【答案】x=0y=0z=2f=l五、编程题(1)输入・个三位整数,将它反向输出。【解答】#include<iostream>usingnamespacestd;voidmain(){intx,ij,k;cout«"pleaseinputx:";cin»x;i=x/100;j=(x-i*lOO)/IO;k=x-i*l(M)-i*10;cout«k«j«i«endl;)(2)输入平面上某点横坐标x和纵坐标y,若该点在由图2-8表示的方块区域内,则输出1:否则,输出。。-1x<01-1x<01.设有函数关系为y={0x=0,[1 x>0A.y=l;if(x>=)0if(x==0)y=0;elsey=I;C.if(x<=0)if(x<0)y=~l;elsey=0;elsey=l;【答案】C图2-8正方形【解答】#include<iostream>usingnamespacestd;voidmain(){floatx,y,b;cout«"pleaseinputx,y:H;cin»x»y;b=(-2<=x)&&(x<=2)&&(-2<=y)&&(y<=2);cout«b«endl;)第3章C++程序设计基础(下)下面选项中能正确表示上述关系的语句为()〇B.y=-1;if(x!=0)if(x>0)y=1;elsey=0D.y=~1;if(x<=0)if(x<0)y=-1;elsey=l;.假设i=2,执行下列语句后i的值为()〇C.3 D,无限C.3 D,无限()〇3 D.5)oB.intk=0;do{++k;}while(k>=0);inti=3;for(;i;i-);switch(i){casel:i++;case2:i—;case3:++i;break;case4:—i;default:i++;)A.1 B.2 C.3 D.4【答案】B.已知inti=O,x=O;下面while语句执行时循环次数为()〇while(!x&&i<3){x++;i++;}A.4 B.3 C.2 D.1【答案】D.已知inti=3;下面do~while语句执行时循环次数为()〇do{i-;cout«i«endl;}while(i!=1);A.1 B.2【答案】B.下面for语句执行时循环次数为fbr(inti=O,j=5;i<=j;)(cout«i<<j«endl;i++;j-;)A.0 B.1【答案】C.以下程序段为死循环的是(A.for(intx=0;x<3;){x++;};C.inta=5;while(a){a—;};【答案】B二、阅读下列程序,写出执行结果#include<iostream.h>voidmain()(inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;cout«d«endl;)【答案】202.#include<iostream.h>voidmain()(inta=0,b=1;switch(a){case0:switch(b){case0:cout«,,a="«a«,'b=n«b«endl;break;case1:coutvv"a="vvavv"b=n«b«endl;break;}case1:a++;b++;cout«,,a=M«a«,'b="«b«endl;})【答案】a=0b=la=lb=2#include<iostream.h>voidmain()(inti=l;while(i<=10)if(++i%3!=1)continue;elsecout«i«endl;)【答案】10#include<iostream.h>voidmain()(inti=0j=5;do{i++;卜;if(i>3)break;}while(j>0);coul«Mi=M«i«'\t,«,'j="«j«endl;)【答案】i=4j=l#include<iostream.h>voidmain()(inti,j;for(i=lj=5;i<j;i++)j-;cout<<i«^'<<j«endl;}【答案】3 3#include<iostream.h>voidmain()(inti,s=0;for(i=0;i<5;i+4-)switch(i){case0:s+=i;break;case1:s+=i;break;case2:s+=i;break;default:s+=2;cout«Hs=H«s«endl;}【答案】s=7#include<iostream.h>voidmain()(inti,j,x=O;for(i=0;i<=3;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}cout«nx="«x«endl;)【答案】x=16三、编程题.输入三个整数,再将这三个整数按从小到大的顺序输出。【解答】#include<iostream.h>voidmain()(inta,b,c,t;cout«Ha,b,c=M;cin»a»b»c;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}couivvavvY'vvbvvへt'vvcvvendl;).模拟剪刀、石头和纸游戏,用s表示剪刀,r表示石头,p表示纸。游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头。两名游戏者分别输入s、r或p,按照游戏规则输出结果。【解答】#include<iostream.h>voidmain()|charfirst,second;cout«nFirstinput(s,rorp):";cin»first;cout«wSecondinput(s,rorp):M;cin»second;switch(first){case's':switch(second){case's':cout«nScissortiesscissor."«endl;gotoend;case,r':cout«,,Scissoriscrushedbyrock."«endl;gotoend;case,p,:cout«"Scissorcutspaper.H«endl;gotoend;default:cout«"secondinputerror!"«endl;gotoend;)caseY':switch(second){case's':coul«nRockcrushesscissor."«endl;gotoend;case'r':cout«"Rocktiesrock."«endl;gotoend;case'p':cout«"Rockiswrappedbypaper.H«endl;gotoend;default:cout«"secondinputerror!"«endl;gotoend;}case'p':switch(second){case's*:cout«"Paperiscutbyscissor."«endl;gotoend;case'r':coutvv“Paperwrapstherock.u«endl;gotoend;case'p*:cout«"Papertiespaper.*'«endl;gotoend;default:cout«Msecondinputerror!H«endl;gotoend;)default:cout«"Fir$tinputerror!u«endl;gotoend;)end:;).输入ー个整数,输出该整数的所有素数因子。例如,输入!20,输出为2、2、2、3和5。【解答】#include<iostream.h>voidmain(){intm,i=2;coul«”pleaseinputm:";cin»m;while(i<=m)if(m%i==0)(cout«i«"M;m=m/i;}elsei++;cout«endl;}.找出100到200之间满足用3除余2且用5除余3且用7除余2的所有整数。【解答】#include<iostream.h>voidmain(){inti;for(i=100;i<=200;i++)(if((i%3==2)&&(i%5==3)&&(i%7=2))cout«i«endl;)).如果一个整数恰好等于它的所有因子之和,则这个数称为完数。例如,6=1+2+3,所以6为完数。求1000之内的所有完数。【解答】#include<iostream.h>voidmain(){inti,j,s;for(i=l;i<=1000;i++)(s=0;for(j=l;j<i;j++)if(i%j==0)s=s+j;if(i==s)coul«i«endl;)16.在屏幕上输出如下图案:*
***【解答】#include<iostream.h>voidmain(){inti,j,k;for(i=l;i<=5;i++)(for(k=l;k<=54;k++)cout«nfor(j=l;j<=2*i-l;j++)cout«n*H;cout«endl;}}第4章函数的应用し选择题(1)下面关于C++语言说法不正确的是( )«A,具有函数式的程序结构,其程序至少由一个函数构成,不论是主函数,还是其他函数B.变量的数据类型丰富,而且使用不同的存储类别C.具有编译预处理的功能,为程序的设计与修改、调试、移植带来方便D.既是面向结构的程序设计语言,又是面向对象的程序设计语言答案:A若只有一个函数,则只能是主函数,否则程序不知从何处开始执行。(2)所谓模块化程序设计是指,在程序设计中把功能相对独立、单一的模块用ー个函数实现,再由若干个函数组成完整程序的程序设计方法。对于函数,下列说法不正确的是()〇A.函数结构独立、功能单ー,便于编写、调试和修改B.可以并行开发,加快软件开发速度,缩短开发周期C,函数的重复使用性好,提髙开发效率D,所有函数都可用于整个程序,即使该程序包含了多个文件答案:D(3)关于函数调用,下面不正确的是( ).A.由于程序总是从主函数开始执行,所以函数的调用总是在主函数和其他函数之间进行B,函数的调用可以在任意函数之间进行ー个函数可以自己调用自己D.函数返回时可以不必带回值,这时函数类型应为void答案:A(4)关于函数的声明与定义,正确的是( ).A.函数的声明是必须的,只有这样才能保证编译系统对函数参数进行检测,以确保参数传递正确B,函数的声明并非必须,即可以只给出函数定义C.声明函数时参数标识符可省略,但参数的类型、个数必须相同且顺序不能颠倒ー个函数可以在另ー个函数内定义答案:C函数的声明并非必须,可以只要函数定义而不要声明.但要注意符合一定条件。函数不可嵌套定义。(5)关于函数的返回值,正确的是( )«A.return语句只返回一个值,该值的类型在函数定义时已确定B.返回值类型由返回变量类型决定C,如果不定义函数类型,表示该函数没有返回值D,函数调用一定要有返回值,否则调用就没有意义了答案:A(6)下列关于形参的说法,正确的是( )»A.函数的形参并非是必须的,有时可以什么都没有B,函数的形参可以是表达式C.函数在定义时,形参是不占用存储空间的,只有在被调用时系统オ会为其分配存储空间,调用结束时,该空间将被释放D.形参的名称、类型、数量和顺序必须与实参相同,否则实参不会把信息正确地传递给形参答案:C(7)关于函数的返回,不正确的是( )A.使程序的执行重新返回到主调函数,使程序继续往下执行B.释放调用函数时临时分配的存储单元C.一定要返回一个值给主调函数D,其返回值可有可无答案:C被调用函数可以不返回任何值,仅完成某功能。二、阅读下列程序,写出执行结果#include<iostream>usingnamespacestd;voidincx();voidincy();voidmain()(incx();incy();incx();incy();incx();incy();)voidincx()(intx=0;cout«',\nx="«++x;}voidincy(){staticinty=0;cout«,'\ny=,,«++y;}【答案】x=ly=iX=1y=2X=1y=3#include<iostream>usingnamespacestd;inti=3;intfunl(intn)(cout«i+n«endl;return0;}intfun2(intn)(staticinti=2;cout«i+n«endl;return0;)voidmain()(inti=l;intfun1(int);intfun2(int);cout«i;funl(i);fun2(i);}【答案】143三、编程题(1)编写函数,定义两个unsignedshortint型的参数,返回两个参数的商,其数据类型为shortint。如果第二个参数为0,输出错误提示信息。【源程序】#include<iostream.h>shortintDivider(unsignedshortinta,unsignedshortintb)(if(b=0)return-1;elsereturna/b;)intmain()unsignedshortintone,two;shortintanswer;cout«uEntertwonumbers.\nNumberone:cin»one;cout«MNumbertwo:";cin»two;answer=Divider(one,two);if(answer>-1)cout«nAnswer:M«answer;elsecout«”Error,can'tdividebyzero!";return0;}运行结果为:Entertwonumbers.Numberone:8ZNumbertwo:2/Answer:4(2)编写函数,输入一个华氏温度,将华氏温度转换为摄氏温度输出,公式为C=(F-32)*5/9,其中F为华氏温度,C为摄氏温度。【源程序】#include<iostream.h>#include<iomanip.h>voidmain()(doublef,c,b;coutvv"请输入华氏温度:“vvendl;cin»f;coutv<"对应的摄氏温度为:"vvendl;c=f-32;b=5.00/9;c=b*c;cout«setprecision(4)«"C="«c«endl;)运行结果为:请输入华氏温度:80/对应的摄氏温度为:26.67(3)编写函数,判断ー个数是否是质数。【源程序】#include<iostream.h>#include<math.h>intprime(inli);〃判断ー个数是否是质数的函数voidmain(){inti;coutvv”请输入ー个整数:";cin»i;if(prime(i))coutvvivv”是质数。°«endl;elsecout«i«”不是质数。"vvendl;}intprime(inti)|intjkflag;flag=1;k=sqrt(i);for(j=2;j<=k;j++)(if(i%j=0){flag=0;break;))if(flag)return1;elsereturn0;}运行结果为:请输入ー个整数:1151/1151是质数。(4)编写函数,求两个整数的最大公约数和最小公倍数。【源程序】#include<iostream.h>#include<math.h>intfnl(inti,intj);〃求最大公约数的函数voidmain()(inii,j,x,y;8UtV<"请输入一个整数:";cin»i;cout«"请输入另ー个整数:cin»j;x=fnl(i,j);y=i*j/x;cout«i«"^1"«j«"的最大公约数是:"«x«endl;cout«i<<"和”《j«”的最小公倍数是:"v<y«endl;)intfnl(inti,intj)(inttemp;if(i<j)(temp=i;i=j;j=temp;)while(j!=0)(temp=i%j;i=j;j=temp;1returni;)运行结果为请输入ー个整数:12〇/请输入另ー个整数:72/120和72的最大公约数是:24120和72的最小公倍数是:360(5)编写递归函数,计算x的y(y>0)次事。【源程序】#include<iostream.h>longGetPower(intx,inty);intmain()|intnumber,power;longanswer;cout«''Enteranumber:cin»number;cout«"Towhatpower?H;cin»power;answer=GetPower(number,power);cout«number«"tothe"«power«"thpoweris"«answer«endl;return0;)longGetPower(intx,inty){if(y==l)returnx;elsereturn(x*GetPower(x,y-1));}运行结果为:Enteranumber:3/Towhatpower?4/3tothe4thpoweris81(6)编写程序,要求输入四位数的年份、两位数的月份和日期,把它们按“年月日”的格式输出,并计算它是这一年的第几天。【源程序】#include<iostream.h>#include<iomanip.h>daynum(int,int,int);voiddate(intyearjntmonthjntday)(cout«setw(2)«year/1000«setw(2)«(year/100)%10;cout«setw(2)«(year/10)%10«setw(2)«year%10;cout«setw(2)«month/10;cout«setw(2)«month%10«setw(2)«day/10«setw(2)«day%10«endl;cout«daynum(year,month,day)«endl;)daynum(intyear,intmonth,intday){inti,sum=0;for(i=l;i<month;i+4-)|switch(i)(case1: 〃1、3、5、フ、8、10、12月有31天case3:case5:case10:case12:sum+=31;break;case4: 〃4、6、9、11月有30天case6:case9:case11:sum+=30;break;case2:if(((year%4==0&&year%100!=0)llyear%400==0))〃闰年2月有29天sum+=29;else 〃平年2月有28天sum+=28;)}sum+=day;returnsum;)voidmain(){intyear,month,day;coutvv"请输入年ノ月ノ日ゴ;cin»year»month»day;date(year,month,day);)运行结果为:请输入年ノ月ノ11:19840305/1984030565第5章数组与字符串ー、选择题:(1)以下ー维数组a的正确定义是( )。A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10cin»n;inta[SIZE];inta[n];【答案】DTOC\o"1-5"\h\z(2)以下能对具有10个元素的一维数组a进行正确初始化的语句是( )。A.inta[10]=(0,0,0,0,0); B.inta[10]={10*1};C.inta[]={0}; D.inta[10J={};【答案】B(3)在定义inta[10];之后,对a的引用正确的是( )«A.a[10]B.a[6.3]C.a(6)D.a[10-10]【答案】D(4)以下对二维数组a进行不正确初始化的是( ).inta[2][3]={0};inta[][3]={{3,2,1},{1,2,3});inta[][]={{3,2,1},{1,2,3});inta[2][3]={{3,2,1},{1,2,3}};【答案】C(5)在执行inta[][3]={1,2,3,4,5,6};语句后,aロ]n啲值是()〇A.4 B.1 C.2 D.5【答案】D(6)为了判断两个字符串si和s2是否相等,应当使用( )«A.if(sl==s2) B.if(sl=s2)C.if(strcmp(s1,s2)==0) D.if(strcpy(s1,s2))【答案】C(7)定义如下变量和数组:inti;intx[3][3]={l,2,3,4,5,6,7,8,9);则以下语句的输出结果是( )。for(i=0;i<3;i++)cout«x[i]l2-ij);A.159B.147C.357D.369【答案】C公芥春月丛お,数樵结松(8)下面程序段的运行结果是(chara[7]=H(8)下面程序段的运行结果是(chara[7]=Habcder;charb[4]=,'ABC,;strcpy(a,b);cout«a[5];A.e B.f【答案】B(9)有下面程序段,则(chara[3],b[K'China";a=b;cout«a;A,运行后将输出ChinaC.运行后将输出Chi【答案】D(10))〇C.ー个空格D.\0以下程序执行后输出结果是(B,运行后将输出ChD.编译出错main(){main(){intaa[4][4]={{l,23,4),{5,6,7,8143,9,10,2},{4,2,9,6});inti,s=0;for(i=0;i<4;i++)s=s+aa[i][1];cout«s;)A.11 B.13 C.19 D.20【答案】C二、阅读下列程序,写出执行结果#include<iostream.h>voidmain()(charch[7]={n12ab56u};inti,s=0;for(i=0;ch[iJ>=,0,&&ch[i]<='9';i=i+2)s=10*s+ch[i]-*0';cout«s;)运行结果为:1#include<iostream.h>voidmain()(inti,j,row,col,min;inta[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};min=a[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[i][j]<min){min=a[i][j];row=i;col=j;}cout«min«n,,«row«,'n«col;)运行结果是-221(3)#include<iostream.h>voidmain()(inti,r;charsl[80]=,'bus';s2[80]=,,bookn;for(i=r=0;sl[i]!=\0,&&s2[i]!='\0';i++)if(sl[i]=s2[i])i++;else{r=sl[i]-s2[i];break;}cout«r«endl;)运行结果是4(4)分析以下程序的运行结果。#include<iostream.h>voidmain()(inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=O;for(i=0;i<4;i++)(for(j=0;j<4;j++)(if(a[i][j}<0)continue;if(a[i}[jJ=O)break;s=s+a[i]|j];))cout«s«endl;运行结果是58(5)分析下列程序运行结果。#include<iostream>usingnamespacestd;voidmain()(inti,j;staticinta[10]={ );for(i=0;i<10;i++)for(j=O;j<i;j++)a[i]=a[i]+a[j];for(i=0;i<10;i++)cout«a[i]«M,H;)运行结果为1,2,4.8,16,32,64.128,256,512,三、将下列程序补充完整,并实现相应的功能.实现功能:输入的20个数据以每行4个数据的形式输出。#include<iostream.h>#defineN20voidmain()(inta[N],i;for(i=0;i<N;i++)cin»a[i];for(i=0;i<N;i++)(if((D)cout«'\n':cout«a[i]«")coutccAn';)【答案】①i%4==0(2)实现功能:输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。#include<iostream.h>voidmain()inta[5],max,min,i,j,k=0;for(i=0;i<5;i++)cin»a[i];min=a[O];for(i=l;i<5;i++)if(①){min=a[i];k=i;}max=a[O];for(i=l;i<5;i++)if(a[i]>max){max=a[ij;;}a[k]=max;a[j]=min;cout«n最小数的位置是“vvkvvendl;coutvc"最大数的位置是“vvj«endl;for(i=0;i<5;i++)cout«a[i]«HM;}【答案】①a[i]<min②j=i(3)实现功能:使一个字符串按逆序输出。#include<iostream.h>#include<string.h>voidinverse(charstr[])(charm;inti,j;for(i=O,j=strlen(str);i<Q"卄② )(m=str[i];str[i]=(3); ④ ;for(i=0;i<strlen(str);i++)cout«str[i];}voidmain()(chara[10]="english";inverse(a);【答案】解:用i从前向后扫描str,用j从后向前扫描str,将str[i]与str|j・l]进行交换。继续这ー过程直到i>=strlen(slr)/2。本题答案如下:①strlen(str)/2②j—strU-1]str[j-l]=m四、编程题:(1)编写程序,要求首先输入学生人数(最多为50个人),然后按编号从小到大的顺序依次输入学生成绩(包括语文、数学和英语3门课程的成绩),最后统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩。源程序:定义ー个score[50][5]数组,score[〇]、score[2]分别存储3门课程的分数,score[3]和score[4]分别存储计算出来的总分和平均分:定义loud和avg两个长度为3的・维数组,分别存放3门课程的总分和平均分。程序如下:#include<iostream.h>voidmain(){intscore[50][5],total[3],avg[3];inti,j,n;coutvv”学生人数:";cin»n;coutcv”输入成绩'n”;for(i=0;i<n;i++)(coutvv"第”vvi+lvv"个学生:";cin»score[i][0]»score[i][l]»score[i][2];)for(i=0;i<n;i++){score[i][3]=0;for(j=0;j<3;j++)score[i][3]=score[i][3]+score[i][j];score[i][4]=score[i][3]/3;}for(j=0;j<3;j++){total[j]=0;fbr(i=O;i<n;i4-+)total[j]=total[j]+scorefi][j1;avg[j]=total[j]/n;}cout«n\n编号't语文ゝt数学't英语't总分't平均分Xn”;for(i=0;i<n;i++){cout«i+l«^';for(j=0;j<5;j++)cout«score[i][j]<v"ゼ;cout«,,\n,1;)coutvv"总分:\t";for(i=0;i<3;i++)cout«total[i]«n\tn;cout«"\n平均分:for(i=0;i<3;i++)cout«avg[i]«',\tn;cout«endl;运行结果:学生人数:3/输入成绩第1个学生:667976Z第2个学生:908981/第3个学生:456861/编号语文数学英语总分平均分166797622173290898126086345686117458总分:201236218平均分:677872(2)编写程序,要求实现将输入的十进制整数转换成任意进制的数。【答案】采用辗转相除法进行进制之间的相互转换,将结果存储在ー维数组num中,最后显示其值即可。程序如下:#include<iostream.h>voidmain()inti=0,base,n,j,num[20];诵样品なだ!・月丛お,被探结核[coutvぐ输入ー个十进制数:";cin»n;cout<ぐ输入要转换的进制:";cin»base;do(i++;num[i]=n%base;n=n/base;}while(n!=0);coutvv”转换的结果:for(j=i;j>=l;j-)cout«num[j];coutvvゝn';I运行结果:输入ー个十进制数:18/输入要转换的进制:2/转换的结果:10010(3)编写程序,将字符串s2插入到字符串si中,其起始插入位置由键盘输入。【答案】用ー个中间字符数组s3存放插入后的结果。先将si[〇]〜slfn-1]复制到S3中,再将s2复制到s3中,最后将sl[n]到末尾的字符复制到s3屮。程序如下:#include<iostream.h>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:呼吸疾病居家康复要点 查房课件
- 社区护理中的护理营养支持
- 安徽省宣城市2026届高三最后一模语文试题含解析
- 26年银发激越行为预防课件
- 四川省遂宁市射洪中学2025-2026学年高二下学期期中考试地理试卷
- 26年银发运动护理方案制定步骤课件
- 26年银发医保情况采集步骤课件
- 【2026】年技术经理(某世界500强集团)面试题试题集详解
- 26年老年应急事件案例汇编课件
- 26年老年头孢过敏案例分析课件
- 防疫道德讲堂课件
- 2025年全国设备监理师设备工程质量管理与检验真题及答案
- 不合格品处置制度
- 施工现场建筑垃圾处置方案(完整版)
- 【小升初真题】2025年河北省廊坊市三河市小升初数学试卷(含答案)
- 数控钣金加工生产线设计方案
- 甲状腺危象护理查房要点
- 镇静药物的使用及注意事项
- 排污许可审核方案投标文件(技术方案)
- 急救常识科普
- 用户运营考试题及答案
评论
0/150
提交评论