對應41-45題,這些題和答案略有出入,45題是完全照答案的思路寫的,不過我感覺按自己的想法也能寫不過需要花點時間。
也算寫了些程序了吧,感覺自己還沒有形成編程的思維,今天去模擬上機,遇到了之前的題目但是仍然沒做出來,不過我會努力的!
1.
#include<iostream.h>
#include<cstring>
#define MAXLEN 1024
void convert(char* des,char*str,char*str2)
{
for(int i=0;str[i]!=0;i++)
{
if(str[i]=='!')
{
*des='a';
des++;
*des=0;
}
else if(str[i]=='&')
{
*des='b';
des++;
*des=0;
}
else if(str[i]=='*')
{
for(int j=0;str2[j]!=0;j++)
{
*des=str2[j];
des++;
*des=0;
}
}
else
{
*des=str[i];
des++;
*des=0;
}
}
}
void main()
{
char dest[MAXLEN];
char* str="!&cefghi*!&";
char* str2="jklm";
convert(dest,str,str2);
cout<<dest<<endl;
return;
}
2.
#include <iostream.h>
#define MAXLEN 1024
void ToUpper(char* des,char* str)
{
for(int i=0;str[i]!=0;i++)
{
if(str[i]>='a'&&str[i]<='z')
{
*des=str[i]-32;
des++;
*des=0;
}
else
{
*des=str[i];
des++;
*des=0;
}
}
}
void main()
{
char dest[MAXLEN];
char*str="aBcdrFGHijK";
ToUpper(dest,str);
cout<<dest<<endl;
return;
}
3.
#include<iostream.h>
#include<ctype.h>
#define MAXLEN 1024
char* convert(char* des,char* str)
{
int count=0;
for(int i=0;str[i]!=0;i++)
{
if(isprint(str[i])&&str[i]!=' ')
{
*des=str[i];
des++;
*des=0;
count++;
}
}
return des-count;
}
void main()
{
char dest[MAXLEN];
char* str=" Ab cDeF hJ K";
cout<<convert(dest,str)<<endl;
return;
}
4.
#include <iostream.h>
#include <ctype.h>
int factorial(int n)
{
if(n<1)
return 0;
if(n==1)
return 1;
else
return n*factorial(n-1);
}
void main()
{
cout<<factorial(1)<<endl;
cout<<factorial(5)<<endl;
cout<<factorial(0)<<endl;
return;
}
5.
#include <iostream.h>
#include <ctype.h>
#define MAXLEN 1024
char* convert(char* des,char*str)
{
int length;
int i;
int k;
for(length=0;str[length]!=0;length++);
length--;
for(i=length;i>=0;i--)
{
if(str[i]!=' ')
break;
}
for(k=0;k<=i;k++)
{
des[k]=str[k];
}
des[k]=0;
return des;
}
void main()
{
char dest[MAXLEN];
char* string=" abc def ";
cout<<string<<"<--"<<endl;
cout<<convert(dest,string)<<"<--"<<endl;
return;
}