}
执行结果显示如下:
加密前的原字符串如下:
cprogramdesign!
加密后的字符串如下:
h%uwtlwfr$hiwmkr%
解密后的字符串如下:
cprogramdesign!
第3章函数
一.选择题
1.C2.A3.A4.B5.D
二.填空题:
1.函数名;参数表;传值调用;引用调用
2.实参;形参
3.函数说明
4.静态函数;外部函数
5.头文件
三.程序分析题
1.
main――x=5,y=1,n=1
func――x=4,y=11,n=1
2.
153
四.编程题(参考答案):
1.
#include
int&square(int);
voidmain()
{
intm;
cout<<"PleaseinputaintNumber:
";
cin>>m;
intx=square(m);
cout<<"Thenumber'ssqrareis:
"<}
intt;
int&square(inti)
{
t=i*i;
returnt;
}
2.
#include
voidmain()
{
intn,k;
intgroup(int,intk);
cin>>n>>k;
cout<}
intgroup(intn,intk)
{
if(k>n)
return0;
elseif(n==k||k==0)
return1;
elsereturngroup(n-1,k)+group(n-1,k-1);
}
3.
#include
intmax(int,int);
intmax(int,int,int);
intmax(int,int,int,int);
voidmain()
{
intx,a,b,c,d;
cout<<"totalnumber:
"<cin>>x;
cout<<"pleaseinput:
"<switch(x)
{
case2:
cin>>a>>b;cout<case3:
cin>>a>>b>>c;cout<case4:
cin>>a>>b>>c>>d;cout<default:
cout<<"error"<}
}
intmax(inta,intb)
{
returna>b?
a:
b;
}
intmax(inta,intb,intc)
{
intt=max(a,b);
returnmax(t,c);
}
intmax(inta,intb,intc,intd)
{
intt1=max(a,b);
intt2=max(c,d);
returnmax(t1,t2);
}
4.
#include
#include
voidsum(intarry[])
{
inti;
for(i=0;i<10;i++)
arry[0]+=arry[i];
}
voidmain()
{
intarry[10];
for(inti=0;i<10;i++)
arry[i]=rand();
sum(arry);
for(intj=0;j<10;j++)
cout<}
5.
Template
Tabs(Tx)
{
returnx>0?
x:
-x;
}
第4章类与对象
一.选择题:
1.B2.D3.A4.B5.C
二填空题:
1.私有;公有;保护
2.①当用类的一个对象去初始化类的另一个对象时;
②如果函数的形参是类的对象,调用函数时,进行形参与实参结合时;
③如果函数的返回值是对象,函数执行完返回调用者时。
3.数据;函数
4.friend
5.类型
三.程序分析题:
1.
T(int8)called
T(double1.8)called
T(int0)called
T(int18)called
~T(8)called.t=18
T(double2.7)called
~T()called.t=25
exitmain().
~T()called.t=25
~T()called.t=3
~T()called.t=8
2.
Constructorcalled.10
10
Destructorcalled.10
3.
Staring1:
Defaultconstructorcalled.
Defaultconstructorcalled.
Defaultconstructorcalled.
Ending1.
Staring2.
Consturct:
a=15,b=16
Consturct:
a=17,b=18
Consturct:
a=19,b=20
Ending2.
Destructorcalled.a=19,b=20
Destructorcalled.a=17,b=18
Destructorcalled.a=15,b=16
Destructorcalled.a=5,b=6
Destructorcalled.a=3,b=4
Destructorcalled.a=1,b=2
四.编程题:
(参考答案)
1.
#include
#definep3.14
classcircle
{
private:
intr;
public:
circle(intR){R=r;}
circlezc(intr);
circlemj(intr);
};
intcircle:
:
circlezc(intr)
{
return2*p*r;
}
intcircle:
:
circlemj(intr)
{
returnp*r*r;
}
voidmain()
{
inta,b;
cout<<"请输入栅栏半径"<cin>>a;
cout<<"请输入跑道半径"<cin>>b;
circleBig(a),Small(b);
intm=Big.circlezc(a);
intn=Big.circlemj(a);
intl=Small.circlemj(b);
cout<<"跑道造价为"<<20*(n-l)<cout<<"栅栏造价为"<<40*m<}
2.
#include
constintmaxsize=6;
classstack
{
floatdata[maxsize];
inttop;
public:
stack(void);
~stack();
boolempty();
voidpush(floata);
floatpop();
};
stack:
:
stack()
{
top=0;
cout<<"stackinitialized."<}
stack:
:
~stack()
{
cout<<"stackdestroyed."<}
boolstack:
:
empty(void)
{
returntop==0?
true:
false;
}
voidstack:
:
push(floata)
{
if(top==maxsize)
{
cout<<"Stackisfull!
"<return;
}
data[top]=a;
top++;
}
floatstack:
:
pop()
{
if(top==0)
{
cout<<"Stackisunderflow!
"<return0;
}
top--;
returndata[top];
}
voidmain()
{
stacks1,s2;
for(inti=1;i<=maxsize;i++)
s1.push(2*i);
cout<for(i=1;i<=maxsize;i++)
cout<for(i=1;i<=maxsize;i++)
s1.push(2.5*i);
for(i=1;i<=maxsize;i++)
s2.push(s1.pop());
do
cout<while(!
(s2.empty()));
}
第5章指针
一.选择题:
1.D2.B3.B4.D5.C
6.B,D7.D8.C9.B10.B
二.填空题:
1.*p++,(*p)++,*++p,++*p;
2.10,&m;
3.abcde;c;
4.int(*p)[4],int(*p2)[3][4];
5.f(floata,char*p),(*pf)(floata,char*p);
6.0x0012FF18
7.int*p,p=newint[6],for(intk=0;k<6;k++)p[k]=k+1;
8.deletep1,*p2,p2;
9.赋值运算、一个指针可以加减一个整数,包括加1和减1运算、在一定条件下,两个指针可以相减、在一定条件下,两个指针可以比较。
10.指针是变量,而引用不是变量;
定义指针可以进行初始化,也可以不进行初始化,创建引用时必须进行初始化;
指针可以被