1、1.5 习题五解答1. 选择题1,A 2 ,C 3,C 4,B 5,B 6,B 7,B 8,C 9,A 10,D 11,A 12,D 13,B 14,A 15,D 16,A 17,C 18,D 19,A 20,B 21,A 22,C 23,C 24D25,B 26,B 27,C 28,C 29,D 30,D 31,C 32,D 33,C 34,A 35,B 36,A 37,D 38,C 39,C 40,D 41,A 42,B 2. 程序填空题 (1) #include Using namespace std;Int main() Float x8=0;Float aver (0),max(0)
2、,min(200);For(int i=0;Ixi;if(ximin)min=xi;aver +=xi;coutxiendl;aver= (aver-max-min)/6;coutaverendl;return 0;(2) #include Using namespace std; Int main() const int M(3),N(4);int xMN=1,5,6,4,2,7,4,3,8,2,3,1;for(int i=0;iM;i+) int t=0;for(int j=0;jxit) t=j;couti+1”,”t+1”=”xitendl;return 0(3)Void expand
3、(char*s,char*t) For(int i=0,intj=0;si!=/0;i+)Switch(si) case/n: tj+=/; tj+=n; break; case/t: tj+=/; tj+=t; break; default: tj+=si; break;tj=/0;3, 程序改错题 #include b Using namespace std;Int &add(int&x,int y) x=x+y; return x;Void main() Int n(2),m(10); Cout(add(n,m)+=10)endl4, 编程题(1)采用直观的“选择排序法”进行排序,基本步
4、鄹如下:(1) 将a0依次与a1an-1比较,选出小者与a0交换;最后a0为a0an-1中最小者;(2) 将a1依次与a2an-1比较,选出小者与a1交换;最后a1为a1an-1中最小者;(3) 同理,从i=2到i=n-1,将ai依次与ai+1an-1比较,选出小者存于ai中。满足下列情况属于小者;(1) 同为奇数或偶数,值较小者。(2) 奇数,偶数中的奇数。 程序如下: #include Using namespace std;Int mian() Const int MaxN=10; Int aMaxN=10,9,8,7,6,5,4,3,2,1;For(int n=0;nan; If(an
5、0) Break;For(i=0;in;i+) For(int j=i+1;jaj|ai%2aj%2) Int t; t=ai; ai=aj;aj=t;For(i=0;in;i+) Coutai”/t”;Return 0;(2)杨辉三角形有如下规律: #include#includeUsing namespace std;Int main() Const int MaxN=10; Int aMaxN MaxN; For(int i=0;iMaxN;i+) ai0=1; aii=1;For(i=0;iMaxN;i+) Coutsetw(MaxN-i)*5/2); For(int j=1;j=I;
6、j+)Coutaijsetw(5);Coutendl;Return 0;(3)#include Using namespace std;Int mian() Char str180; Cinstr; Int k=strlen(str);For(int i=0;ik;i+) Coutstrk-i-1;Return 0;(4)#include Using namespace std;Int mian() Char str180; Char c=c; Cinstr;For(int i=0;j=0;stri!=/0;i+,j+) If(strj=c) i-;else stri= strj; couts
7、trendl;return 0;(5)#include Using namespace std;Int mian() Char s2180 s1180; Cins2;For(int i=0;s2i!=/0;i+) S1i=s2i; Couts1; Return 0;(6)#include Using namespace std;Int mian() Char SStr180 ,DStr180; Cin SStr DStr; Int SL=strlen(SStr);Int DL=strlen(DStr);For(int i=0;iDL+1;i+)SStri+SL = DStri ;cout SS
8、tr;return 0;(7)#include Using namespace std;Int mian() Const int M=3,K=2,N=4;Int aMN=1,2, 3,4, 5,6;Int bKN=1,0,1,1, 0,1,0,1;Int cMN=0;For(int i=0;iM;i+)For(int j=0;jiN;j+)For(int k=0;kK;k+)cij= cij+ cik* bkj;For(i=0;iM;i+) For(int j=0;jN;j+) Cout cij”/t”;Coutendl;Return 0;(8)#include Using namespace
9、 std;Bool palindrome (char*str) Int h=strlen(str);For(int i=0;itext;If(palindrome(text) Cout”a palindrome string!”endl; ElseCout”not a palindrome string!”endl;Return 0;(9)#include Using namespace std;Int SubStrNum (char*str, char*substr)Int Num=0;Int h1,h2;Int p1,p2;H1=strlen(str);H2= strlen(substr)
10、;P1=0;While(p1h1) P2=0; While(strp1=substrp2&p2h2&p1h1) P1+;P2+; If(p1=h1&2h2) Break;If(p2=h2)Num+;ElseP1=p1-p2+1;Return Num;Int main() Char str200;Char substr20;Coutstr;Coutsubstr;Cout”match times:”SubStrNum(str,substr)endl;Return 0;(10)#include Using namespace std;Char*lsub(char*s1.char*s2) Int n1
11、,n2,n;Char*res,c=0;N1=strlen(s1);N2=strlen(s2);N=n1n2?n1:n2;Res=new charn+2;Res0=0;Res1=/0;Resn+1=/0;If(n1n2)Res0=+;Else If(n1n2)Res0=-;ElseFor(int i=0;ih/2;i+) If(s1is2i)Res0=-;Break;If(s1i0;i-)Resi=in-n1?s1i+n1-n2-1:0;For( i=n;i0;i-)If(s2i-1-c=resi)Resi=s2i-1-c-resi +0;C=0;ElseResi=s2i-1-c-resi+10
12、 +0;C=1;If(Res0=+) For(int i=0;i0;i-)Resi=in-n2?s2i+n2-n1-1:0;For( i=n;i0;i-)If(s1i-1-c=resi)Resi=s1i-1-c-resi +0;C=0;ElseResi=s1i-1-c-resi+10 +0;C=1;Return res;Int main()Char num1100,num2100,*num;Cinnum1num2;Num=lsub(num1,num2);Coutnum1”-”num2”=”numendl;Deletenum;Return 0;(11)#includeUsing namespac
13、e std;Struct NodeInt no;Node*next;Int main( )Int m,n,s,remainder; Coutmns;Node*first,*last;First=last=new Node;First-no=1;For(int i=1;ino=i+1;last-next=p;last=p;Last-next=;For(i=1;inext;Last=last-next;Remainder=n;While(remainder1)For(int count=1;countnext;Last=last-next;last-next= first-next;coutnon
14、ext;remainder-;Coutendl”the winner is no.”no;Delete first;Return 0;(12)#includeUsing namespace std;Struct PhoneChar number20;Char name16;phoneBock=“027888888888”,”张建设”, “”,”,“”,”,“”,”,“”,”,“”,”,“”,”,“”,”,“”,”;Bool SubStrNum(char*str,char*substr)Int h1,h2;Int p1,p2;H1=strlen(str);H2=strlen(substr);If
15、(h2h1)Return false;P1=0;While(p1h1)P2=0;While(strp1=substrp2&p2h2&p1h1)P1+;P2+;If(p1=h1&p2h2)Return false;If(p1=p2)Return true;ElseP1=p1-p2+1;Return false;Int main()Int phones;Char string20;Phones=sizeof(phonesBook)/sizeof(phone);Coutstring;For(int i=0;iphones;i+)If(SubStrNum(phonebooki.number,strin
16、g)Couti”t”phonebooki.number”t”phonebooki.nameendl;For( i=0;iphones;i+)If(SubStrNum(phonebooki.number,string)Couti”t”phonebooki.number”t”phonebooki.nameendl;Return 0;1.6习题六解答1.填空题(1)全局变量,局部变量,局部变量(2)auto,extern,register,static,静态(static)(3)全局数据,代码区,栈区,堆区,区局数据区,代码区,栈区,堆区(4)静态,动态(5)函数原型,块作用域,文件(6)#,编译(
17、7)个别使用声明方式,全局声明方式,全局声明个别成员2.填空题1,A 2 ,D 3D 4C 5 B 6B 7B 8C 9B 10 A3.程序填空 #include Extern int sumchar (char str); Int main() Using std:cin;Using std:cout;Char*p=new char180;Cinp;Coutsumchar(p);Deletep;Return 0;4, 分析程序,写出运行结果 #include #includeUsing namespace std; Const int PI=3.14; Const int *Fun(void
18、); Const int a=5;Const int *p=&a;Cout”Value of local const variable a:”aendl;Cout”Address of local const variable a:”&aendl;Cout”Value of local const pointer p:”pendl;Cout”Value of local const variable a:”*pendlendl;Return p;Int main () Const int*q;Q=Fun();Cout”Main():”endl;Cout”Value of local const
19、 pointer q:”qendl;Cout”The return Value of thefunction Func():”*qendl;Const char*str=”123ABC”;Cout”Address of string const variable :”(void*)strendl;Cout”Value of string const variablestr:”sreendl;Cout”Address of global const variable PI:”&Pendl;Cout”Address of thefunction Func():”Funendl;Return 0;运
20、行结果:Value of local const variable a:5Address of local const variable a:0012FF20Value of local const pointer p: 0012FF20Value of local const variable a:5Main():Value of local const pointer q:0012FF20The return Value of thefunction Func():1245056Address of string const variable :0046F14cValue of string const variablestr:123ABC注释本程序主要测试常变量的使用。程序定义了局部变量a,它是一个局部变量,其作用域仅限于函数()内部。生存周期不是整个源程序,它同普遍变量一样,局限在函数Fun()内部,当函数调用完成后,局部常变量a被释放,当将函数Fun()返回值赋给指针q后,输出指针q所指向的存储空间内存储的不在是变量a的值,而是1245056(随机值)。程序中指针常变量a,所以指针p的值就是局部常变量a的地址.