华清 8月1 数据结构day1作业

#include 
#include 
#include 

//值传递
void swap(int m,int n)
{
	int temp;
	temp=m;
	m=n;
	n=temp;
	printf("调用swap函数内结果:\n");     //在函数内部交换了a和b的值
	printf("a=%d,nb=%d\n",m,n);
}

//值传递
void fun(int *p1,int *p2)
{

	int *temp;
	temp=p1;
	p1=p2;
	p2=temp;
	printf("调用fun函数内结果:\n");
	printf("a=%d,b=%d\n",*p1,*p2);   //在这里其实只是交换了p1和p2的指向,本质还是值传递
}

//地址传递
void gun(int *p1,int *p2)
{
	int temp;   
	temp=*p1;
	*p1=*p2;
	*p2=temp;
	printf("调用gun函数内结果:\n");
	printf("a=%d,b=%d\n",*p1,*p2);    //通过指针修改了指针指向的内容,也就是a,b的内容
}

//值返回
int hun()
{
	int num=666;
	printf("hun函数内num的值:%d\n",num);
	return num;    //返回num
}

//地址返回
int *ikun()
{
	static int num=666;
	printf("ikun函数内num的值:%d\n",num);
	return #   //返回&num
}

int main(int argc, const char *argv[])
{
	int a=10;
	int b=99;
	printf("输入a=10,b=99\n");
	putchar(10);

	swap(a,b);    //调用swap函数
	printf("调用swap函数后的主函数中a,b的值:\n");    //由于传给函数的是值,所以调用函数之后a,b的值并不改变
	printf("a=%d,b=%d\n",a,b);
	putchar(10);

	fun(&a,&b);
	printf("调用fun函数后的主函数中a,b的值:\n");
	printf("a=%d,b=%d\n",a,b);
	putchar(10);

	gun(&a,&b);
	printf("调用gun函数后的主函数中a,b的值\n");
	printf("a=%d,b=%d\n",a,b);
	putchar(10);

	//hun()=888;   //尝试修改hun函数返回的值,会报错
	int c=hun();
	printf("主函数中hun函数返回的值:\n");
	printf("num=%d\n",c);
	putchar(10);

	int *p=ikun();
	*p=888;    //尝试修改ikun函数返回的值
	printf("主函数中ikun函数内返回的值:\n");     //修改成功,输出修改后num的值
	printf("num=%d\n",*p);

	return 0;
}
输出结果:
输入a=10,b=99

调用swap函数内结果:
a=99,nb=10
调用swap函数后的主函数中a,b的值:
a=10,b=99

调用fun函数内结果:
a=99,b=10
调用fun函数后的主函数中a,b的值:
a=10,b=99

调用gun函数内结果:
a=99,b=10
调用gun函数后的主函数中a,b的值
a=99,b=10

hun函数内num的值:666
主函数中hun函数返回的值:
num=666

ikun函数内num的值:666
主函数中ikun函数内返回的值:
num=888



#include 
#include 
#include 
int main(int argc, const char *argv[])
{
	int a;                   //未初始化的全局变量,在全局区的.bss段
	int b=666;            //已初始化的全局变量,在全局区的.data段
	static int c;          //未初始化的静态变量,在全局区的.bss段
	static int d=999;   //已初始化的静态变量,在全局区的.data段

	char arr[25]="hello world";  //arr数组在全局区的.data段,而"hello world"在.ro段
	char *p="hello";           //指针在全局区的.data段,而“hello”在.ro段


int main(int argc, const char *argv[])
{
    double l=999.0;    //局部变量在栈区申请
    int m;           //局部变量,在栈区申请,初始值为随机值
    static int n;         //静态局部变量,在全局区的.bss段申请
    static int o=250;  //静态局部变量,在全局区的.data段
    char *q="nihao";   //q在栈区申请的8字节,但是"nihao"在全局区的.ro段
    char str[100]="hello world";  //数组在栈区申请,"hello world"在全局区的.ro段
    int *ptr=(int *)malloc(sizeof(int));  //ptr是在栈区,而申请的空间在堆区
    return 0;
}




#include 
#include 
#include 

int *fun(int n)
{
	//连续申请n个int类型的大小
	int *p=(int *)malloc(sizeof(int)*n);   //向堆区申请空间
	if(NULL==p)
	{
		printf("内存申请失败\n");
		return NULL;
	}
	else
	{
		printf("内存申请成功\n");
		return p;
	}
}

void intput(int *p2,int m)       //输入函数,从终端输入学生的成绩
{
	for(int i=0;ip3[j+1])
			{
				temp=p3[j];
				p3[j]=p3[j+1];
				p3[j+1]=temp;
			}
		}
	}
}

void sucu(int *p4,int k)   //将排序完的成绩输出
{
	printf("升序的成绩:");
	for(int i=0;i
#include 
#include 
#define uint32 int

typedef int * Ptr_i,int32;   //Ptr_i是int*类型的重命名
							//int32是int类型的重命名
int main(int argc, const char *argv[])
{
	uint32 b=100;    //等价于int b=100
	int32 num;       //等价于int num
	Ptr_i a;         //等价于int *p=a;
	printf("%d\n",b);
	printf("%ld\n",sizeof(num));
	printf("%ld\n",sizeof(a));
	return 0;
}




#include
#include
#include

typedef unsigned short int uint16;     //将无符号短整形重命名为uint16

typedef int * Ptr_i;          //将int *类型重命名为Ptr_i

typedef char String[10];          //将char [5]类型重命名为String

int main(int argc, const char *argv[])
{
    uint16 num=666;           //等价于unsigned short int num = 520
    printf("num占%ld个字节\n", sizeof(num));          //2
    printf("num=%d\n", num);               //520

    Ptr_i p1=NULL;            //此时p1是指针变量  int *p1;
    printf("p1占%ld个字节\n", sizeof(p1));        //8

    String s1;           //此时是定义的长度为10的字符数组
    strcpy(s1, "hello");
    printf("s1=%s\n", s1);         //hello
    printf("s1占%ld个字节\n", sizeof(s1));      //10
    printf("s1的长度为%ld\n", strlen(s1));       //5
    
    return 0;
}


#include 
#include 
#include 

struct Sanpin
{
	char name[25];  //商品名称
	char position[30];  //出产地
	float price;    //商品单价
	double weight;  //商品重量
};
int main(int argc, const char *argv[])
{
struct Sanpin gg;
	printf("输入商品名称:\n");
	scanf("%s",gg.name);
	printf("输入商品出产地:\n");
	scanf("%s",gg.position);
	printf("输入单价:");
	scanf("%f",&gg.price);
	printf("输入重量:\n");
	scanf("%lf",&gg.weight);

	printf("输出:\n");
	printf("%s\n",gg.name);
	printf("%s\n",gg.position);
	printf("%f\n",gg.price);
	printf("%lf\n",gg.weight);
	return 0;
}
输出:
./a/out

输入商品名称:
西瓜  
输入商品出产地:
安徽
输入单价:5
输入重量:
5
输出:
西瓜
安徽
5.000000
5.000000

思维导图:

数据结构day1 - GitMind

你可能感兴趣的:(数据结构,算法)