return0;
}
4.在下面程序中输入China,要求输出China
#include
usingnamespacestd;
intmain()
{chara[5],*p;
inti;
p=&a[0];
for(i=0;i<=4;i++)
cin>>a[i];
for(i=0;i<=4;i++)
cout<<*(p+i);
return0;
}
二、编程题
1.编写程序,求输入字符串的长度(长度不包括结束符)
#include
usingnamespacestd;
intmain()
{
chara[1000];
inti,lenth=0;
cout<<"请输入字符串:
";
cin.getline(a,1000);
for(i=0;a[i]!
='\0';i++)
lenth++;
cout<<"字符串长度为"<}
2.打印杨辉三角形(10行)。
使用二维数组并利用每个系数等于其上两系数之和。
#include
#include
usingnamespacestd;
constintn=10;
intmain()
{
inta[n][n],i,j;
for(i=0;i{
a[i][0]=1;a[i][i]=1;
}
for(i=2;ifor(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i{
for(j=0;j<=i;j++)
cout<cout<}
return0;
}
3.3.判断用户输入的字符串(字符串如含有空格字符,先过滤,然后判断过滤后的串)是否为"回文",所谓"回文"是指顺读和反读都一样的串,例如串12321、madam。
#include
usingnamespacestd;
intmain()
{
chara[100],b[100];
inti=0,j=0,e,g;
cout<<"请输入字符串:
";
cin.getline(a,100);
char*p=a;
intn=0;
while(*p++)
{n++;}//统计输入字符的长度。
cout<for(i=0;i{if(a[i]!
='')
{
b[j]=a[i];
j++;
}
if(a[i]=='')
{
continue;
}
}
b[j]='\0';
for(e=0;e{if(b[e]!
=b[j-1-e])
g=0;
if(b[e]==b[j-1-e])
g=1;
}
if(g==0)
cout<<"不是回文数"<if(g==1)
cout<<"是回文数"<return0;}
4编写一个程序,可以对任意长度的整型数组进行冒泡排序,排序结束后,数据从小到大排列。
(要求:
须输出每一次的排序结果)
#include
usingnamespacestd;
constintsize=8;
intmain()
{
intarr[size]={49,38,65,97,76,13,27,49};
inti,j,temp,q=0;
for(i=0;i{
for(j=size;j>i;j=j--)
{
if(arr[j]{
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
do{
cout<q++;}
while(qcout<q=0;
}
}
}cout<<"排序后的结果"<for(i=0;icout<cout<return0;
}
5某大学图书馆的借书日期为70天(从借阅日开始计算),请编写程序,判断借阅者还书时是否超期。
#include
usingnamespacestd;
intmain()
{
inty1,y2,m1,m2,q1,d1,d2,sum1=0,sum2=0,t1=0,t2=0,t=0,w=0;
inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cout<<"请输入借阅日期:
";
cin>>y1>>m1>>d1;
if(y1%400==0||y1%4==0&&y1%100!
=0)
{
a[1]=29;
t1=366;}
else
{t1=365;
sum1=0;}
for(inti=0;i{sum1=sum1+a[i];
}
sum1=sum1+d1;
cout<cout<<"请输入当天日期:
";
cin>>y2>>m2>>d2;
if(y2%4==0&&y2%100!
=0||y2%400==0)
{a[1]=29;t2=366;}
else
{t2=365;
}
for(intf=0;f{sum2=sum2+a[f];
}
sum2=sum2+d2;
cout<if(y1==y2)
{t=sum2-sum1;}
if(y2>y1)
{sum1=t1-sum1;
t=sum1+sum2;}
if(t>70)
{cout<<"您已借书"<cout<<"您已超期,请尽快还书"<}
if(t<=70)
w=70-t;
{cout<<"您已借书"<cout<<"您未超期"<<'\t';
cout<<"请注意在"<}
提高题:
(选做)
把有序的一两个整型数组a和b合并,要求合并后的数组依然有序。
#include
usingnamespacestd;
intmain(){
inta[9]={1,4,5,9,10,12,15,22,35},b[5]={7,8,23,27,50},c[14];
for(intai=0,bi=0,ci=0;ci<14;ci++){
if(bi>=5||a[ai]
c[ci]=a[ai++];
elseif(ai>=9||a[ai]>b[bi]&&bi<5)
c[ci]=b[bi++];
cout<}
cout<}
4.使用恺撒(替换)加密法编写一个字符串加密程序。
恺撒(替换)加密法是古罗马恺撒大帝用来保护重要军事情报的加密方法。
其加密规则是:
将每个字母用字母表中排在其后面的第3个字母的大写形式来替换(如字母d或D就用G来替换),对于字母表中最后的三个字母,可将字母表看成是首尾衔接的(如字母y或Y用B来替换);字符串中其他非字母符号不做改变。
5.约瑟夫问题:
num个人围成一圈,第1个游戏者开始报数1,报出m的游戏者出局,然后游戏重新开始,从出局者的下一位开始报数,报出m的游戏者出局直至最后剩下一个游戏者。
编程要求:
输入任意的num和m,游戏成员编号从0到num-1,输出各轮出局者编号和最后的胜利者编号
汉诺她
#include
usingnamespacestd;
voidmove(intn,chars,chard);
voidhanoi(intn,chars,charm,chard);
intmain(){
intn;
cout<<"输入盘子数:
"<cin>>n;
hanoi(n,'A','B','C');//A:
源柱,B:
中间柱,C:
目的柱
cout<return0;
}
voidhanoi(intn,chars,charm,chard)
{if(n==1)move(1,s,d);
else{
hanoi(n-1,s,d,m);
move(n,s,d);
hanoi(n-1,m,s,d);
}
}
voidmove(intn,chars,chart)
{cout<"<"<}