实验二
- 编写一个将整数扩大十倍的函数func。
//func.c
void fun(int *a)
{
int temp;
temp = *a * 10;
*a = temp;
}
/func.h
void func(int *a);
//main.c
#include<stdio.h>
#include <iostream>
#include"func.h"
int main()
{
int m = 10;
func(&m);
printf("%d\n", m);
system("pause");
return 0;
}
- 将1改写为引用参数类型的版本
//func.c
void func(int& a)
{
int temp;
temp = a * 10;
a = temp;
}
//func.h
void func(int &a);
//main.c
#include<stdio.h>
#include <iostream>
#include"func.h"
int main()
{
int m = 10;
func(m);
printf("%d\n", m);
system("pause");
return 0;
3、形如下面的整型单链表类型:
struct LinkNode
{
int data;
LinkNode* next;
};
- 编写声明为void headInsert(LinkNode**);的无表头节点头插法函数
- 将1)改写为引用版本
3)编写声明为void headInsert(LinkNode*);的有表头节点头插法函数
4)将3)改写为类封装版本的静态成员函数
headInsert.cpp代码:
#include<malloc.h>
#include<stdio.h>
struct LinkNode
{
int data;
LinkNode* next;
};
//无表头
void headInsert(LinkNode** head) {
LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
scanf_s("%d", &(newNode->data));
newNode->next = *head;
*head = newNode;
}
void headInsert(LinkNode*& head) {
LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
scanf_s("%d", &(newNode->data));
newNode->next = head;
head = newNode;
}
//有表头
void headInsert(LinkNode* head) {
LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));
scanf_s("%d", &(newNode->data));
newNode->next = head->next;
head->next = newNode;
}
headInsert.h代码:
#pragma once
struct LinkNode
{
int data;
LinkNode* next;
};
void headInsert(LinkNode** head);
void headInsert(LinkNode*& head);
void headInsert(LinkNode* head);
4、编写一个Student类,它只具有name(char*类型)和age(int类型)两个属性,要求:
1)无参构造创建一个Student类型的名为zhangsan的对象,它的两个数据成员都采用默认初始化。
2)有参构造创建一个Student类型的st对象,其中st.name == “zhangsan” , st.age =18;
//student.h
#pragma once
#include <IOSTREAM>
#include <STRING>
using namespace std;
class Student
{
private:
string name;
int age;
public:
Student()
{
name = "";
age = 0;
}
Student(string n, int a)
{
name = n;
age = a;
}
void PrintInfo()
{
cout << name << " " << age << endl;
}
};
//main.c
#include<stdio.h>
#include <iostream>
#include"func.h"
#include"headInsert.h"
#include"student.h"
int main()
{
//int m = 10;
//func(m);
//printf("%d\n", m);
//LinkNode* head = NULL;
//headInsert(&head);
Student st("zhangsan", 18);
st.PrintInfo();
system("pause");
return 0;
}