c语言构建函数题目 c++构造函数怎么写

【c语言编程题】构造函数运用更相减损术求最大公约数1.第20行中直接书写这个语句c语言构建函数题目,只打印gcd函数中的输出部分,虽然也能得到返回值,但不会打印返回值 。并不是不能得到返回值 。
2.printf("%d",gcd(x,y)运行过程c语言构建函数题目:先运行函数gcd(),当然运行过程中,函数内包含的打印语句照样全部打?。蛔詈笤偈涑鰃cd函数得到的返回值 。并不是只打印返回值 。
3.如果不要求函数可以输出形参值a和b以便观察函数gcd()的递归计算过程 , 图二写法也是正确的 。第5行和第7行没有else也是对的,是因为两个return语句与if语句完美配合,间接实现了分支语句的全部功能 。
C语言 类的构造函数和析构函数(考试在线等!急?。。。?/h2>类是编程人员表达自定义数据类型的C机制 。它和C语言中的结构类似 , C类
支持数据抽象和面向对象的程序设计,从某种意义上说,也就是数据类型的设
计和实现 。
一、类的设计
1.类的声明
class 类名
{
private: //私有
...
public: //公有
...
};
2.类的成员
一般在C类中 , 所有定义的变量和函数都是类的成员 。如果是变量 , 我们就叫
它数据成员如果是函数,我们就叫它成员函数 。
3.类成员的可见性
private和public访问控制符决定了成员的可见性 。由一个访问控制符设定的可
访问状态将一直持续到下一个访问控制符出现,或者类声明的结束 。私有成员
仅能被同一个类中的成员函数访问,公有成员既可以被同一类中的成员函数访
问,也可以被其他已经实例化的类中函数访问 。当然 , 这也有例外的情况,这
是以后要讨论的友元函数 。
类中默认的数据类型是private,结构中的默认类型是public 。一般情况下,变
量都作为私有成员出现 , 函数都作为公有成员出现 。
类中还有一种访问控制符protected,叫保护成员,以后再说明 。
4.初始化
在声明一个类的对象时,可以用圆括号()包含一个初始化表 。
看下面一个例子:
#include iostream.h
class Box
{
private:
int height,width,depth; //3个私有数据成员
public:
Box(int,int,int);
~Box();
int volume(); //成员函数
};
Box::Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}
Box::~Box()
{
//nothing
}
int Box::volume()
{
return height*width*depth;
}
int main()
{
Box thisbox(3,4,5); //声明一个类对象并初始化
cout return 0;
}
当一个类中没有private成员和protected成员时,也没有虚函数,并且不是从
其他类中派生出来的,可以用{}来初始化 。(以后再讲解)
5.内联函数
内联函数和普通函数的区别是:内联函数是在编译过程中展开的 。通常内联函
数必须简短 。定义类的内联函数有两种方法:一种和C语言一样,在定义函数时
使用关键字inline 。如:
inline int Box::volume()
{
return height*width*depth;
}
还有一种方法就是直接在类声明的内部定义函数体,而不是仅仅给出一个函数
原型 。我们把上面的函数简化一下:
#include iostream.h
class Box
{
private:
int height,width,depth;
public:
Box(int ht,int wd,int dp)
{
height=ht;
width=wd;
depth=dp;
}
~Box();
int volume()
{
return height*width*depth;
}
};
int main()
{
Box thisbox(3,4,5); //声明一个类对象并初始化
cout return 0;
}
这样,两个函数都默认为内联函数了 。
C语言求助,哪位大佬帮我看看这道题?一直搞不清楚#include stdio.h
#include string.h
#include malloc.h
#define M 3
FILE *fp;
char filename[50] = {""};
typedef struct message {
char name[16];
char telephone[16];
char email[24];
char address[24];
int postcode;
struct message *next;
} *LinkList,*pNode;
void ReadData(pNode p) {
printf("\t姓名 : ");
scanf("%s",p-name);
printf("\t电话号码 : ");
scanf("%s",p-telephone);
printf("\t邮箱号码 : ");
scanf("%s",p-email);
printf("\t地址 : ");
scanf("%s",p-address);
printf("\t邮政编码 : ");
scanf("%d",p-postcode);
}
void ShowLine(int n) {
int i;
for(i = 0; in;i)
printf("*");
printf("\n");
}
void ShowData(pNode p) {
printf("%-16s",p-name);
printf("%-16s",p-telephone);
printf("%-24s",p-email);
printf("%-24s",p-address);
printf("%-8d\n",p-postcode);
}
void ShowAll(LinkList head) {
pNode p;
ShowLine(88);
for(p = head-next; p; p = p-next)
ShowData(p);
ShowLine(88);
}
LinkList GetEmptyList() {
LinkList head = (pNode)malloc(sizeof(struct message));
head-next = NULL;
head-name[0] = 0;
head-address[0] = 0;
head-postcode = 0;
head-telephone[0] = 0;
head-email[0] = 0;
return head;
}
void Addmember(LinkList head) { // 按telephone增序添加,可用于创建新链表
pNode q,p = (pNode)malloc(sizeof(struct message));
ReadData(p);
q = head;
while(q-next) {
if(strcmp(q-next-telephone,p-telephone) == 0) {
ShowData(p);
printf("\t***** 这个电话号码已经存在 。\n");
return;
}
if(strcmp(q-next-telephone,p-telephone)0) {
p-next = q-next;
q-next = p;
return;
}
}
q-next = p;
p-next = NULL;
}
pNode SearchName(LinkList head,char name[]) {
pNode p;
if(head == NULL) return NULL;
for(p = head-next; p; p = p-next) {
if(strcmp(p-name,name) == 0) {
ShowData(p);
return p;
}
}
return NULL;
}
pNode SearchTelephone(LinkList head,char telephone[]) {
pNode p;
if(head == NULL) return NULL;
for(p = head-next; p; p = p-next) {
if(strcmp(p-telephone,telephone) == 0) {
ShowData(p);
return p;
}
}
return NULL;
}
void ModifyListName(LinkList head) {
pNode p;
char name[24];
printf("\t被修改人的姓名 : ");
scanf("%s",name);
p = SearchName(head,name);
if(p == NULL) printf("\tXXXXX 没有找到姓名为%s的记录!\n",name);
else {
ShowData(p);
ReadData(p);
}
}
void ModifyListTelephone(LinkList head) {
pNode p;
char telephone[16];
printf("\t被修改的电话号码 : ");
scanf("%s",telephone);
p = SearchTelephone(head,telephone);
if(p == NULL) printf("\t***** 没有找到电话号码为%s的记录!\n",telephone);
else {
ShowData(p);
ReadData(p);
}
}
void ModifyList(LinkList head) {
int select;
do {
printf("\t1、按姓名修改,2、按电话号码修改,0、返回\n");
printf("\t请选择:");
scanf("%d",select);
switch(select) {
case 1 : ModifyListName(head);
case 2 : ModifyListTelephone(head);
}
}while(select);
}
int EraseTelephone(LinkList head,char telephone[]) { // 删除电话号码为telephone的结点
int an;
pNode p,q;
if(head-next == NULL) {
printf("\t号码本为空 。\n");
return 0;
}
for(p = head; p-next; p = p-next) {
if(strcmp(p-next-telephone,telephone) == 0) {
ShowData(p);
printf("\t1.删除, 0.不删除 : ");
scanf("%d",an);
if(an == 1) {
q = p-next;
p-next = q-next;
free(q);
return 1;
}
else return 0;
}
}
printf("\t***** 没有找到电话号码为%s的记录!\n",telephone);
return 0;
}
void LoadData(LinkList head) { // 传送文件的内容到内存
pNode p,tmp;
int an,flag;
if(filename[0] == '\0') {
printf("\t要传送的数据文件名 : ");
scanf("%s",filename);
}
else {
printf("\t加载文件%s? 1.是,0不是 :",filename);
scanf("%d",an);
if(an == 1) {
fp = fopen(filename,"rb");
if(fp == NULL) {
printf("\tXXXXX 打开文件%s失败 。\n",filename);
return;
}
}
else {
printf("\t文件名 : ");
scanf("%s",filename);
fp = fopen(filename,"rb");
if(fp == NULL) {
printf("\tXXXXX 打开文件%s失败 。\n",filename);
return;
}
}
}
if(head-next == NULL) {
p = head;
tmp = (pNode)malloc(sizeof(struct message));
while(fread((void *)tmp,sizeof(struct message),1,fp) == 1) {
p-next = tmp;
p = p-next;
tmp = (pNode)malloc(sizeof(struct message));
}
fclose(fp);
p-next = NULL;
free(tmp);
return;
}
printf("\t1.添加,2.覆盖 : ");
scanf("%d",an);
if(an == 1) {
tmp = (pNode)malloc(sizeof(struct message));
while(fread(tmp,sizeof(struct message),1,fp) == 1) {
flag = 1;
for(p = head; p-nextflag; p = p-next) {
if(strcmp(p-next-telephone,tmp-telephone) == 0) {
printf("\t***** 因电话号码相同,本条信息未添加:\n");
ShowData(tmp);
flag = 0;
break;
}
if(strcmp(p-next-telephone,tmp-telephone)0) {
tmp-next = p-next;
p-next = tmp;
flag = 0;
break;
}
}
if(flag) {
p-next = tmp;
tmp-next = NULL;
}
tmp = (pNode)malloc(sizeof(struct message));
}
fclose(fp);
free(tmp);
return;
}
if(an == 2) {
【c语言构建函数题目 c 构造函数怎么写】p = head-next;
while(p) {
tmp = p;
p = p-next;
free(tmp);
}
p = head;
tmp = (pNode)malloc(sizeof(struct message));
while(fread(tmp,sizeof(struct message),1,fp) == 1) {
p-next = tmp;
p = p-next;
tmp = (pNode)malloc(sizeof(struct message));
}
free(tmp);
p-next = NULL;
fclose(fp);
}
}
void SaveData(LinkList head) { // 保存内存到文件
int an;
char mode[5];
pNode p;
if(filename[0] == 0) {
printf("\t请输入文件名 : ");
scanf("%s",filename);
fp = fopen(filename,"wb");
if(fp == NULL) {
printf("\tXXXXX 打开文件%s失败 。\n",filename);
return;
}
for(p = head-next; p; p = p-next)
fwrite(p,sizeof(struct message),1,fp);
fclose(fp);
return;
}
else {
printf("\t1.覆盖文件%s\n2.追加文件%s\n3.新建\n4.无操作返回\n",filename,filename);
printf("\t请选择 : ");
scanf("%d",an);
if(an1 || an3) return;
if(an == 3) {
printf("\t请输入文件名 : ");
scanf("%s",filename);
fp = fopen(filename,"wb");
if(fp == NULL) {
printf("\tXXXXX 打开文件%s失败 。\n",filename);
return;
}
for(p = head-next; p; p = p-next)
fwrite(p,sizeof(struct message),1,fp);
fclose(fp);
return;
}
else {
if(an == 1) strcpy(mode,"wb");
else if(an == 2) strcpy(mode,"ab");
fp = fopen(filename,"wb");
if(fp == NULL) {
printf("\tXXXXX 打开文件%s失败 。\n",filename);
return;
}
for(p = head-next; p; p = p-next)
fwrite(p,sizeof(struct message),1,fp);
fclose(fp);
return;
}
}
}
void Sort(LinkList head) { // 按姓名增排序
pNode p,q,pt;
if(head == NULL) return;
p = head;
while(p-next) {
q = p-next-next;
while(q-next) {
if(strcmp(p-next-telephone,q-next-telephone)0) {
pt = p-next;
p-next = q-next;
q-next = q-next-next;
p-next-next = pt;
}
else q = q-next;
}
p = p-next;
}
}
void FreeList(LinkList head) {
pNode p = head,q;
while(p) {
q = p;
p = p-next;
free(q);
}
}
void menu(LinkList head) {
int choice;
do {
printf("┌─────────────────────────────────┐\n");
printf("││\n");
printf("│欢迎使用通讯录管理软件│\n");
printf("││\n");
printf("│编写xoalyg│\n");
printf("││\n");
printf("└─────────────────────────────────┙\n");
printf("\n\n\n\n");
printf("\t1、新建\n");
printf("\t2、浏览\n");
printf("\t3、修改\n");
printf("\t4、添加\n");
printf("\t5、排序\n");
printf("\t6、加载\n");
printf("\t7、保存\n");
printf("\t0、退出\n");
printf("\n\t请选择 : ");
scanf("%d",choice);
switch(choice) {
case 1 : Addmember(head); break;
case 2 : ShowAll(head); break;
case 3 : ModifyList(head); break;
case 4 : Addmember(head); break;
case 5 : Sort(head); break;
case 6 : LoadData(head); break;
case 7 : SaveData(head); break;
}
}while(choice);
}
int main() {
LinkList head = GetEmptyList();
menu(head);
FreeList(head);
return 0;
}
c语言构建函数题目的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c构造函数怎么写、c语言构建函数题目的信息别忘了在本站进行查找喔 。

    推荐阅读