题目一
编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。
#include <iostream> using namespace std; int main() { int a[3][3],i,j; for(i=0;i<3;i++)for(j=0;j<3;j++)cin>>a[i][j]; for(j=0;j<3;j++){for(i=0;i<3;i++)cout<<a[i][j]<<' '; cout<<endl;} return 0; }
题目二
改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。
#include <iostream> using namespace std; void fun(int **p){ int i,j; for(j=0;j<3;j++){for(i=0;i<3;i++)cout<<p[i][j]<<' '; cout<<endl;} } int main() { int **p=new int *[3]; int i,j ; for( i = 0;i <= 2;i++) { p[i]=new int[3]; } for(i=0;i<3;i++)for(j=0;j<3;j++)cin>>p[i][j]; fun(p); delete [] p; return 0; }
题目三
编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。
#include <iostream> using namespace std; int main() { char a[100] ,b[100]; int i,j; cin>>a>>b; for (j = 0;;j++) { if (a[j] == '\0')break; } for (i =0; ;i++) { a[j] = b[i]; j++; if (b[i] == '\0')break; } cout << a; }
题目四
使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。
#include <iostream> #include<string.h> using namespace std; int main() { string s1,s2; cin>>s1>>s2; string s3 = s1 + s2; cout<<s3; return 0; }
题目五
定义Employee类,Employee类具有姓名、街道地址、城市和邮编等私有数据成员,display()中使用cout显示姓名、街道地址、城市和邮编等属性,change_name()改变类中表示姓名属性的数据成员。在主程序中定义这个类的对象并对起进行操作。
#include <iostream> #include<string.h> using namespace std; class Employee{ public: Employee(string Name,string Address,string City, string Postalcode){ name=Name; address=Address; city=City;postalcode=Postalcode;}; void display(); void change_name(string newname); private: string name,address,city,postalcode; }; void Employee::display(){ cout<<"name:"<<name<<endl; cout<<"address:"<<address<<endl; cout<<"city:"<<city<<endl; cout<<"postalcode:"<<postalcode<<endl; } void Employee::change_name(string newname){ name=newname;} int main() { string n,a,c,p; cin>>n; cin>>a; cin>>c; cin>>p; Employee emp(n,a,c,p); emp.display(); cin>>n; emp.change_name(n); emp.display(); }
题目六
在上一题定义的Employee类基础上使用Employee类定义对象数组emp[5],并在录入对象数组的信息后使用循环语句把数据显示出来。
#include <iostream> #include<string.h> using namespace std; class Employee{ public: Employee(string Name,string Address,string City, string Postalcode); Employee(){}; Employee( Employee&a){name=a.name;address=a.address;city=a.city;postalcode=a.postalcode;} void display(); private: string name,address,city,postalcode; }; Employee::Employee(string Name,string Address,string City, string Postalcode){ name=Name; address=Address; city=City;postalcode=Postalcode;} void Employee::display(){ cout<<"name:"<<name<<endl; cout<<"address:"<<address<<endl; cout<<"city:"<<city<<endl; cout<<"postalcode:"<<postalcode<<endl; } int main() { string n,a,c,p; int i; Employee emp[5]; for(i=0;i<5;i++) { cin>>n; cin>>a; cin>>c; cin>>p; emp[i]=Employee(n,a,c,p); } for(i=0;i<5;i++) { cout<<"Employee"<<i+1<<endl; emp[i].display(); } }
选做题
修改实验一的选做实验中的people(人员)类。具有的属性如下:
姓名 char name[11]
编号 char number[7]
性别 char sex[3]
出生日期 birthday,“出生日期”定义为一个“日期(date)”类内嵌对象
身份证号 char id[16]
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。
#include <iostream> #include <string.h> using namespace std; class date { private: int year; int month; int day; public: date(int a,int b,int c):year(a),month(b),day(c){} date(const date& a) { year = a.year; month = a.month; day = a.day; } void show() { cout << year<<" " << month <<" "<< day << endl; } date() {} ~date(){} }; class people { private: char name[11]; char number[7]; char sex[3]; date m; char id[16]; public: people(char a[11], char b[7], char c[3], date T, char d[16]) { strcpy(name, a); strcpy(number, b); strcpy(sex, c); m=T; strcpy(id, d); } people(){}; people(const people& d) { strcpy(name, d.name); strcpy(number, d.number); strcpy(sex, d.sex); strcpy(id, d.id); m = d.m; } ~people(){} void show() { cout << name << endl; cout << number << endl; cout << sex << endl; m.show(); cout << id << endl; } }; int main() { char name[11]; char number[7]; char sex[3]; char id[16]; int x, y, z; cin>>name>>number>>sex>>id; cin >> x >> y >> z; date E(x,y,z); people a(name,number,sex, E,id); people b[2]; b[0]=a; a.show(); b[0].show(); }