main() {
//声明字符型数组和指针变量 char str[10]; char *strip=str;
//输入输出 cout<<\
cin>>str; //用字符数组输入字符串 cout<<\ cout<<\ cout<<\
cin>>strip; //用字符指针变量输入字符串 cout<<\ cout<<\
//利用指针变量改变其指向字符串的内容 *(strip+2)='l';
cout<<\ cout<<\
//动态为字符型指针变量分配内存 strip=new char(100); cout<<\
cin>>strip; //用字符指针变量输入字符串 cout<<\ cout<<\}
#include
// 声明用于存放运动员号码的数组 int h[]={1001,1002,1003,1004}; // 声明用于存放运动员成绩的数组 float x[]={12.3,13.1,11.9,12.1};
//声明用于存放运动姓名的字符型指针数组
char *p[]={\ //i,j,it是用做循环控制变量和临时变量 int i,j,it;
//ft 用做暂存变量 float ft;
//pt为字符型指针变量用做暂存指针变量 char *pt;
//用选择法对数组x进行排序,并相应调整数组h和p中的数据
for (i=0;i<=3;i++) for (j=i+1;j<=3;j++) if (x[i]>=x[j]) {
ft=x[i],x[i]=x[j],x[j]=ft; it=h[i],h[i]=h[j],h[j]=it; pt=p[i],p[i]=p[j],p[j]=pt; }
//以下打印排序结果 for (i=0;i<=3;i++)
cout< #include 11 { //声明指针数组 char *colors[]={\ellow\ //指向指针的指针变量 char **pt; //通过指向指针的变量访问其指向的内容 pt=colors; for (int i=0;i<=3;i++) { cout<<\ cout<<\ cout<<\ pt++; } } #include //定义结构类型 struct books { char title[20]; char author[15]; int pages; float price; } ; //声明结构变量 struct books Zbk={\ books Wbk; //对结构变量的输出 cout<<\ cout< cout<<\ //对结构成员的运算 Zbk.pages+=10; Zbk.price+=0.5; cout<<\ cout<<\ cout<<\ //对结构变量的输入输出 cout<<\ cin>>Wbk.title; cout<<\ cin>>Wbk.author; cout<<\ cin>>Wbk.pages; cout<<\ cin>>Wbk.price; cout<<\ cout< cout<<\ //结构变量之间的相互赋值 books temp; temp=Wbk; cout<<\ cout< #include int i; //定义结构类型 struct student { int num; char name[10]; float maths; float physics; float chemistry; double total; }; //声明结构数组st student st[3]; //从键盘上为结构数组输入值 cout<<\ num name maths physics chemistry \ for (i=0;i<3;i++) { cout<>st[i].num; cin>>st[i].name; cin>>st[i].maths; cin>>st[i].physics; cin>>st[i].chemistry; } //计算每个学生的总成绩 for (i=0;i<3;i++) st[i].total=st[i].maths+st[i].physics+st[i].chemistry; //输出结构数组各元素的值 for (i=0;i<3;i++) { cout<<\ \ cout< #include 12 { //定义结构类型 struct human { char name[10]; int sex; int age; }; //声明结构变量和结构指针变量,并初始化 struct human x={\ //结构指针变量指向对象 p=&x; //显示结构变量的值 cout<<\ cout<<\ cout<<\ //利用结构指针显示结构对象中的数据 cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ //通过结构指针为结构对象输入数据 cout<<\ cin>>(*p).name; cout<<\ cin>>(*p).sex; cout<<\ cin>>(*p).age; //显示结构变量的值 cout<<\ cout<<\ cout<<\} include //定义结构类型 struct human { char name[10]; int sex; int age; }; //声明结构变量和结构指针,并初始化 struct human x={\ //利用结构指针显示结构中的数据 cout<<\ cout<<\ cout<<\ cout<<\ //利用new运算符为p分配内存 p=new human; //从键盘上为p指向的结构对象赋值 cout<<\ cin>>p->name; cout<<\ cin>>p->sex; cout<<\ cin>>p->age; cout<<\ //显示p所指结构对象的值 cout<<\ cout<<\ cout<<\ cout<<\ //显示结构变量的值 cout<<\ cout<<\ cout<<\ //释放p指向的内存 delete p; } #include //定义结构类型 struct human { char name[10]; int sex; int age; }; //声明结构数组和结构指针变量,并初始化 human x[]={{\LL; //用下标变量的输出结构数组的元素 for (int i=0;i<3;i++) { cout< cout<<\ //用结构指针输出结构数组的元素 for (p=x;p<=&x[2];p++) { cout< #include //定义一个包含指针成员的结构类型 struct test { char *str; int *ip; } x; //使用结构变量x中的整型指针ip x.ip=new int; //分配1个单元 *(x.ip)=100; cout<<\ cout<<\ delete x.ip; x.ip=new int[5]; //分配5个单元 for(int i=0;i<5;i++) *(x.ip+i)=100+i; cout<<\ for(i=0;i<5;i++) cout< cout<<\ //使用结构变量x中的字符型指针str x.str=new char('A'); //分配1个单元 cout<<\ cout<<\ delete x.str; x.str=new char[5]; //分配多个单元 *x.str='G'; *(x.str+1)='o'; *(x.str+2)='o'; *(x.str+3)='d'; *(x.str+4)='\\0'; cout<<\ delete x.str; cout<<\ //在声明结构变量时初始化 test y={\ery Good!\ cout<<\ cout<<\} #include //定义date结构 struct date { int year; int month; int day; }; //定义baby结构 struct baby { int num; float weight; date birthday; // date为结构类型 }; //声明baby结构变量并初始化 13 baby b1={10001,10,{2002,12,25}}; //下列是baby结构变量b1的引用。 cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ //声明baby结构变量temp,并进行赋值运算 baby temp; temp=b1; cout<<\ cout<<\ cout<<\ cout<<\ cout<<\} #include //定义名为list的递归结构 struct list { char name[10]; int sex; int age; list *next; //成员next为指向其自身结构的指针 }; //使用递归结构变量 list L1={\ cout<<\ cout<<\ cout<<\ cout<<\ cout<<\} #include int i; //定义名为student的递归结构 struct student { char name[10]; int math; int computer; float sum; student *next; //next成员是指向自身的结构指针 }; //用student声明3个结构指针变量 struct student *head,*tail,*temp; //申请第1块数据,并设置各结构指针的初值 temp=new struct student; //申请内存 head=temp; // 头指针 tail=head; // 尾指针 14 //循环为链表输入数据 cout<<\ Math Computer\ for (i=1;;i++) { cout<>temp->name; if (temp->name[0]!='*') { cin>>temp->math>>temp->computer; temp->sum=temp->math+temp->computer; temp->next=NULL; tail=temp; //设置链表尾指针 } else { // 以下是输入结束处理 delete temp; tail->next=NULL; break; } //为下一个学生申请内存 temp->next=new struct student; temp=temp->next; // 使处理指针temp指向新内存块 } //将链表数据从头到尾打印出来 cout<<\ temp=head; while (temp!=NULL) { cout< cout< #include int i; //定义名为student的递归结构 struct student { char name[10]; int math; int computer; float sum; student *forw; //forw成员是前指针 student *next; //next成员是后指针 }; //用student声明3个结构指针变量 struct student *head,*tail,*temp; //申请第1块数据,并设置各结构指针的初值 temp=new struct student; //申请内存 head=temp; // 头指针 tail=head; // 尾指针 head->forw=NULL; //循环为链表记录输入数据 cout<<\ Math Computer\ for (i=1;;i++) { cout<>temp->name; if (temp->name[0]!='*') { cin>>temp->math>>temp->computer; temp->sum=temp->math+temp->computer; temp->next=NULL; tail=temp; //设置链表尾指针 } else { // 以下是输入结束处理 delete temp; tail->next=NULL; break; } //为下一个学生申请内存 temp->next=new struct student; temp->next->forw=temp; //设置前指针 temp=temp->next; //使处理指针temp指向新内存块 } // 将链表数据从头到尾打印出来 cout<<\ temp=head; while (temp!=NULL) { cout< cout< // 将链表数据从尾到头打印出来 cout<<\ temp=tail; while (temp!=NULL) { cout< cout< #include int i; //定义联合类型 union utag { char c; int k; float x; }; //声明联合变量 union utag u; // 使用联合变量中的字符型成员 u.c='*'; cout<<\ 15 // 使用联合变量中的整型成员 u.k=1000; cout<<\ // 使用联合变量中的浮点型成员 u.x=3.1416; cout<<\ //声明联合变量时初始化 utag u1={'A'}; //同时引用联合变量的各成员 cout<<\ cout<<\ cout<<\} #include //定义结构类型,并为声明的结构变量赋初值 struct s_tag { short i; float x; } sx={100,3.1416}; //定义联合类型,并为声明的联合变量赋初值 union u_tag { short i; float x; } ux={1000}; //输出结构类型和结构变量的有关信息 cout<<\ cout<<\ cout<<\ cout<<\ cout<<\ //输出联合类型和联合变量的有关信息 cout<<\ ux.i=200; cout<<\ //输出联合变量ux 的i成员 ux.x=123.456; cout<<\ //输出联合变量ux 的x成员 cout<<\} #include //自定义类型 typedef int ARRAY_INT[50]; int i; ARRAY_INT a; //用自定义类型声明数组变量a //以下为数组a赋值,并打印 for (i=0;i<50;i++) {