C++编程练习——2014/3/22

来源:互联网 发布:sai软件绘画教程 编辑:程序博客网 时间:2024/04/29 13:52

对应41-45题,这些题和答案略有出入,45题是完全照答案的思路写的,不过我感觉按自己的想法也能写不过需要花点时间。

也算写了些程序了吧,感觉自己还没有形成编程的思维,今天去模拟上机,遇到了之前的题目但是仍然没做出来,不过我会努力的!

1.

#include<iostream.h>#include<cstring>#define MAXLEN 1024void 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 1024void 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 1024char* 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;    elsereturn 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 1024char* 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;}


0 0