---------第五周--------总结

#include "stdafx.h"
#include <stdio.h>
#include <stdio.h>
#include <malloc.h>
/***********单个结构体练习*************/
//1. 定义一个日期结构体,包含年与月成员
struct Date
{
    int year,month;
};
/**********结构体嵌套练习**************/
//2.定义一个学生结构体,包含学号与出生日期
struct student{
    int num;
    struct Date birth;

};
/**********结构体中嵌套结构指针练习**************/
//1.用typedef语句定义一个学生结构体,包含学号与出生日期
typedef struct stu2
{
    int num;
    struct Date *birth;    //(要求出生日期为日期结构体指针变量)
}s;

void main()
{/*********************************************/
    printf("** *** 第一题 \n");
    struct Date date,*pdate;//2. 在main主函数内设置日期结构体变量与指针变量
    //3. 对结构变量中的成员赋值并输出
    date.year=1998;date.month=6;
    printf("变量输出 %d年%d月\n",date.year,date.month);

    pdate=&date;//指针初始化
    pdate->year=1999;pdate->month=12;
    printf("指针变量输出 %d年%d月\n",pdate->year,pdate->month);

/*********************************************/

/*********************************************/
    printf("** *** 第二题 \n");
    struct student str,*ps; //2. 在main主函数内设置学生结构体变量与指针变量
     //3. 对结构变量中的成员赋值并输出
    str.num=12346; str.birth.year=1846; str.birth.month=3;
    printf("变量输出 %d学号%d年%d月\n",str.num,str.birth.year,str.birth.month);
    ps=&str;
    ps->num=12345;ps->birth.year=1845;ps->birth.month=6;
    printf("指针变量输出 %d学号%d年%d月\n",    ps->num,ps->birth.year,ps->birth.month);
/*********************************************/

/*********************************************/
//3. 对结构变量中的成员赋值并输出
    printf("** *** 第三题 \n");
    s stu,*s1;    //2. 在main主函数内设置学生结构体变量与指针变量
    stu.birth=(struct Date *)malloc(sizeof(struct Date));
    stu.num=456;stu.birth->year=2013;stu.birth->month=4;
    printf("变量输出 %d学号%d年%d月\n",stu.num, stu.birth->year,stu.birth->month);

    s1=&stu;
    s1->num=789;s1->birth->year=2011;s1->birth->month=2;
    printf("指针变量输出 %d学号%d年%d月\n",    s1->num=789,s1->birth->year,s1->birth->month);

    /*********************************************/

}

在这周里 我了解到指针是要先初始化,不然就会出错。然后呢,指针结构体变量要用-> ,而结构体要用.  。以前一直没有分清楚,很感谢老师帮我们再一次的复习,让我温故而新。还有因为stu.birth=(struct Date *)malloc(sizeof(struct Date))实现不了,上网搜索了下要增加头文件#include <malloc.h>就运行出来了,不过下一道题又不需要增加头文件了,不懂(⊙_⊙)?

#include "stdafx.h"
#include"stdio.h"
#include"stdlib.h"
/***********循环双链表练习************/
//1. 按照课本中双链表的定义,定义其节点结构体类型(数据域与两个指针域).
typedef int Datatype;
typedef struct Table
{
    Datatype data;
    Table *prior;
    Table *next;
}Table,*LinkList;

int main(int argc, char* argv[])
{
    printf("** *** 循环双链表练习");
    //2.在main函数中设置带头节点双链表指针
    LinkList L2,S2;
    L2=(LinkList)malloc(sizeof(Table));//指针初始化
    L2->next=L2;
    L2->prior=L2;

    //    3 在此双链表的链表头分别添两个数据。(参考双链表课件的15页)
/*    //(1)
    S2=(LinkList)malloc(sizeof(Table));
    S2->data=1997;//设置节点数据
    S2->prior=L2;//在链表头插入
    L2->next=S2;
    S2->next=L2;
    //(2)
       S2=(LinkList)malloc(sizeof(Table));
    S2->data=1998;
    S2->prior=L2;
    L2->next=S2;
    S2->next=L2;*/
    //(1)
    S2=(LinkList)malloc(sizeof(Table));
    S2->data=1997;//设置节点数据
    S2->prior=L2;//在链表头插入
    S2->next=L2->next;
    L2->next->prior=S2;
    L2->next=S2;

    //(2)
       S2=(LinkList)malloc(sizeof(Table));
    S2->data=1998;
    S2->prior=L2;//在链表头插入
    S2->next=L2->next;
    L2->next->prior=S2;
    L2->next=S2;

printf("\n");
//4正向输出此双链表数据
    S2=L2->next;
    printf("正向输出 第一节点数据=%d",S2->data);
    S2=S2->next;
    printf(" 第二节点数据=%d\n",S2->data);
//反向输出此双链表数据
    S2=L2->prior;
    printf("反向输出 第一节点数据=%d",S2->data);
    S2=S2->prior;
    printf("第二节点数据=%d\n",S2->data);

    return 0;
}
时间: 2024-12-12 14:52:24

---------第五周--------总结的相关文章

每周进度条(第十五周)

第十五周进度条   第十五周 所花时间 1h 代码量(行)  100 博客量(篇)  1 学到的知识 对图片的处理 在Android程序中加入图片

201405644 嵌入式程序设计第五周学习总结

嵌入式课程设计第五周学习总结 标准 I/O 编程 标准 I/O 提供流缓冲的目的是尽可能减少使用 read()和 write()等系统调用的数量.标准 I/O 提供了 3 种类型 的缓冲存储.全缓冲.行缓冲.不带缓冲. 打开文件 打开文件有三个标准函数,分别为:fopen().fdopen()和 freopen().其中 fopen()可以指定打开文件的路径和模式,fdopen()可以指定打开的文件描述符和模式,而 freopen() 除可指定打开的文件.模式外,还可指定特定的 I/O 流. f

第五周的学习进度情况

第五周,不在状态,关于软件工程的学习并没有以往那么用心了,是该好好反思.   第四周 所花时间(包括上课) 8 代码量(行) 200+ 博客量(篇) 3 了解到的知识 软件需求分析的重要性 练习对编程学习的重要 虽然上周不在状态,但是,感觉周末表现良好,心也慢慢的收回来了,身边这么多榜样,一定要坚持,做好该做的!

2014025689 《嵌入式系统程序设计》第五周学习总结

<嵌入式系统程序设计>第五周学习总结 一.6.5(标准I/O编程)主要涉及的函数及知识点 标准的I/O的三种缓冲存储:全缓冲.行缓冲.不带缓冲. 1. 全缓存:当填满标准I/O缓存后才进行实际的I/O操作 2. 行缓存:当输入或输出中遇到行结束符时,标准I/O库执行I/O操作 3. 不带缓存:标准I/O库不对字符进行缓冲 打开文件的三个标准函数:  fopen().fdopen()和 freopen(). -fopen()可以指定打开文件的路径和模式 函数原型:FILE * fopen(con

每周进度表(第十五周)

  第十五周 所花时间(包括上课) 5(小时) 代码量(行) 200 博客量(篇) 7 了解到的知识点 如何对界面进行美化 如何处理anroid里的图片

20145307《信息安全系统设计基础》第五周学习总结PT2

20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219.html 以下为第二部分 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c Ltme: 1.三种操作数: 立即数:常数值.表示为$c标准表示的整数. 寄存器:表示某个寄存器的内容. 存储器:根据

20145326蔡馨熠《信息安全系统设计》第五周学习总结

教材学习内容总结 书上有的内容我就不重复赘述了,只需要将部分重要的知识点归纳总结一下. 1.使用GDB的堆栈跟踪功能(GDB中有很多针对调用堆栈的命令,都需要一个目标栈帧,例如打印局部变量值的命令) 在栈帧之间切换 frame args 将当前栈帧设置为args(编号或Address)指定的栈帧,并打印该栈帧的简要信息. up n 向上回退n个栈帧(更外层),n默认为1. down n 向下前进n个栈帧(更内层),n默认为1. 打印栈帧信息(不移动栈帧) frame 打印当前栈帧的简要信息. i

马哥linux作业第五周&#39;

1.显示当前系统上root.fedora或user1用户的默认shell: egrep "^(root|fedora|user1)\>" /etc/passwd |cut -d: -f1,7 root|fedora|user1表示三者符合其一的选择条件 ()使其归组 ^表示以后面归组的条件开头 \>表示以空字符截断此前的条件字符,即后跟其它字符的单词将不匹配 2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello():

学习进度条(十五周)

本周主要是对于团队开发项目的修改完善.   第十五周 所花时间(包括上课) 上课2小时,课后10小时 代码量(行) 200+ 博客量 2 了解到的知识点 服务器连接GET方法

学习进度条--第十五周

  第十五周 所花时间(包括上课时间) 4小时(包括上课2小时) 代码量(行) 70 博客量(篇) 1篇 了解到的知识点 软件的开发文档具有重要作用,书面计划是精确和可以沟通的. 软件开发中应及时解决遇到问题,不然容易造成不可挽回的错误.