C++编程例题个人总结0706_c经典编程例题
C++编程例题个人总结0706由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c经典编程例题”。
VS2008通过编译
1、交换两个数值 #include using namespace std;void swap(int x,int y);int main(){int a=2,b=3;swap(a,b);printf(“a=%d,b=%d”,a,b);return 0;}
void swap(int x,int y){int temp;temp=x;x=y;y=temp;}
显示结果 a=2,b=3无法交换两个数值 #include using namespace std;
void swap(int &x,int &y);int main(){int a=2,b=3;swap(a,b);printf(“a=%d,b=%d”,a,b);return 0;}
void swap(int &x,int &y){int temp;temp=x;x=y;y=temp;}
显示结果 a=3,b=2 通过了引用,实现了两个数值交换 函数的定义为int类型,返回值有两个 #include using namespace std;int swap(int &x,int &y);int main(){int a=2,b=3;swap(a,b);printf(“a=%d,b=%d”,a,b);return 0;}
int swap(int &x,int &y){int temp;temp=x;x=y;y=temp;return x,y;}
显示结果 a=3,b=
22、指针
#include using namespace std;int main(){int a=5;int *p1=&a;int **p2=&p1;printf(“a的存储地址为:%dn”,p1);printf(“a的值%dn”,*p1);printf(“%dn”,p2);printf(“%dn”,*p2);printf(“%dn”,**p2);return 0;}
显示结果:
a的存储地址为:1245024 a的值5 1245012 1245024 5
请按任意键继续...#include using namespace std;int main(){int a=5;int *p1=NULL;p1=&a;int **p2=&p1;int ***p3=&p2;printf(“a的存储地址为:%dn”,p1);printf(“a的值%dn”,*p1);printf(“n”);printf(“%dn”,p2);printf(“%dn”,*p2);printf(“%dn”,**p2);printf(“n”);printf(“%dn”,p3);printf(“%dn”,*p3);printf(“%dn”,**p3);return 0;}
a的存储地址为:1245024 a的值5
1245012 1245024 5
1245000 1245012 1245024
请按任意键继续...#include using namespace std;int main(){int a=5;int *p1=&a;int **p2=p1;
printf(“a的存储地址为:%dn”,p1);printf(“a的值%dn”,*p1);printf(“%dn”,p2);printf(“%dn”,*p2);printf(“%dn”,**p2);return 0;}
1>------已启动生成: 项目: 55, 配置: Debug Win32------1>正在编译...1>55.cpp
1>c:documents and settingsadministratormy documentsvisual studio 2008projects555555.cpp(7): errorprintf(“a的存储地址为:%dn”,p1);
printf(“a的值%dn”,*p1);printf(“n”);printf(“%dn”,p2);printf(“%dn”,*p2);printf(“%dn”,**p2);printf(“n”);printf(“%dn”,p3);printf(“%dn”,*p3);printf(“%dn”,**p3);return 0;}
C2440: “初始化”: 无法从“int *”转换为“int **”
1>与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换
1>生成日志保存在“file://c:Documents and
SettingsAdministratorMy DocumentsVisual Studio 2008Projects5555DebugBuildLog.htm” 1>551 个错误,个警告
========== 生成: 成功0 个,失败1 个,最新0 个,跳过0 个==========
#include using namespace std;int main(){int a=5;int *p1=&a;int **p2=&p1;int ***p3=&p1;printf(“a的存储地址为:%dn”,p1);printf(“a的值%dn”,*p1);printf(“n”);printf(“%dn”,p2);printf(“%dn”,*p2);printf(“%dn”,**p2);printf(“n”);printf(“%dn”,p3);printf(“%dn”,*p3);printf(“%dn”,**p3);return 0;}
1>------已启动生成: 项目: 55, 配置: Debug Win32------1>正在编译...1>55.cpp
1>c:documents and settingsadministratormy documentsvisual studio 2008projects555555.cpp(8): error C2440: “初始化”: 无法从“int **”转换为“int ***”
1>与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换
1>生成日志保存在“file://c:Documents and
SettingsAdministratorMy DocumentsVisual Studio 2008Projects5555DebugBuildLog.htm” 1>551 个错误,个警告
========== 生成: 成功0 个,失败1 个,最新0 个,跳过0 个==========
#include using namespace std;int main(){int a=5,b=9;int *p1=&a;printf(“%dn”,p1);printf(“%dn”,a);*p1=6;
printf(“%dn”,a);p1=&b;printf(“%dn”,p1);return 0;}
1245024 5 6
1245012
请按任意键继续...4、指针常量
#include using namespace std;int main(){int a=5,b=9;int *const p1=&a;printf(“%dn”,p1);printf(“%dn”,a);*p1=6;
printf(“%dn”,a);return 0;}
1245024 5 6
请按任意键继续...5、指针函数
#include using namespace std;
int *max(int *array,int size);int main(){int array[]={5,3,6,1,2,7,9,10};printf(“数组最大值
=%dn”,*max(array,sizeof(array)/sizeof(int)));return 0;}
int *max(int *array,int size){int *max=array;for(int i=0;i*max)max=&array[i];}return max;}
1245024 5 6
1245012
请按任意键继续...#include using namespace std;
int *max(int *array,int size);int main(){int array[]={5,3,46,19,2,52,9,10};printf(“%dn”,max(array,sizeof(array)/sizeof(int)));return 0;}
int *max(int *array,int size){int *m=array;for(int i=0;i*m)m=&array[i];}return m;}
1245016
请按任意键继续...#include using namespace std;
int *max(int *a,int size);int main(){int array[]={5,3,46,19,2,52,9,10};printf(“%dn”,max(array,sizeof(array)/sizeof(int)));return 0;}
int *max(int *a,int size){int *m=a;for(int i=0;i*m)m=&a[i];}return m;}
1245016
请按任意键继续...6、枚举类型
#include using namespace std;int main(){enum
day{sunday,monday,tuesday,wednesday,thursday,friday,saturday};day today=sunday;printf(“%d”,today);return 0;}
0请按任意键继续...6、结构体
#include struct student {int idnumber;char name[15];int age;char department[20];float gpa;};
void display(student *arg);int main(){student s1={001,“李明”,20,“自动化”,90};student *slp=&s1;
display(slp);return 0;}
void display(student *arg){printf(“学号=%d,姓名=%s,年龄=%d,专业=%s,成绩
=%1.0f”,arg->idnumber,arg->name,arg->age,arg->department,arg->gpa);}
学号=1,姓名=李明,年龄=20,专业=自动化,成绩=90请按任意键继续...#include struct student {int idnumber;char name[15];int age;char department[20];float gpa;};
int main(){student s1[2]={{001,“李明”,20,“自动化”,90},{002,“梁雷”,22,“电子工程”,92}};printf(“第一个学生:学号=%d,姓名=%s,年龄=%d,专业=%s,成绩
=%2.0fn”,s1[0].idnumber,s1[0].name,s1[0].age,s1[0].department,s1[0].gpa);
printf(“第二个学生:学号=%d,姓名=%s,年龄=%d,专业=%s,成绩
=%2.0fn”,s1[1].idnumber,s1[1].name,s1[1].age,s1[1].department,s1[1].gpa);return 0;}
第一个学生: 学号=1,姓名=李明,年龄=20,专业=自动化,成绩=90
第二个学生: 学号=2,姓名=梁雷,年龄=22,专业=电子工程,成绩=92
请按任意键继续...