Propósito experimental y requisitos: Familiarizado con el método de usar el tipo de estructura para personalizar variables; Use la palabra clave sizeof para calcular el ancho de varios tipos de datos; Competencia en el uso de las funciones de asignación de memoria dinámica malloc y free, etc.; Familiarizado con el método básico de uso del lenguaje C para operar una lista enlazada individualmente; |
||||||||||
Contenido del experimento: Experimento 1 : Definir variables usando tipos de estructura Propósito: Familiarizarse con el método de uso de variables personalizadas de tipo de estructura Contenido: defina la estructura s1, que puede almacenar los datos de un estudiante, que consisten en el número de estudiante, el nombre (la longitud del nombre no supera los 15 caracteres en inglés), la edad y las calificaciones de 5 materias. Ocupa un total de 64 bytes, entre los cuales el número de alumno ocupa 4 bytes, el nombre ocupa 16 bytes, la edad ocupa 4 bytes y los resultados de cada asignatura ocupan 8 bytes. class1 es una matriz de estructura que representa una clase que puede almacenar 50 estudiantes. Para completar la llamada (entrada, salida) de cada componente de la estructura. Experimento 2 : use la palabra clave sizeof para calcular el ancho de varios tipos de datos Propósito: Familiarizarse con el uso de sizeof Contenido: Escribir un programa para probar directamente el ancho de los tipos de datos básicos en lenguaje C como enteros, caracteres, etc. en la función principal, y medir el número de bytes ocupados por las variables de tipo de estructura definidas en el Experimento 1. Pregunta experimental 3 : Llamada de funciones relacionadas con la asignación dinámica de memoria Propósito: Competencia en el uso de las funciones de asignación de memoria dinámica malloc y free Contenido: para varios tipos de datos, use malloc para asignar memoria dinámicamente en la función principal Guardar, usar gratis para liberar espacio antes de que finalice el programa. Pregunta experimental 4 : Construya una lista enlazada simple usando el tipo de estructura Propósito: obtener una vista previa de la estructura relacionada de la lista enlazada que se aprenderá en el Capítulo 2 y familiarizarse con el método básico de uso del lenguaje C para operar la lista enlazada única Contenido: Después de depurar el primer capítulo del ejercicio 9, el diagrama muestra la lista enlazada representada por el programa, marcando el contenido y la dirección de la variable cabeza, y el contenido de la expresión cabeza->siguiente->siguiente y la dirección de memoria. representa. |
||||||||||
Pasos y procedimientos experimentales: Pregunta experimental 1: #include<stdio.h> //El Experimento 1 usa el tipo de estructura para definir variables estudiante de estructura { char nombre[10]; //nombre int id; // Número de estudiante int edad; // edad float yu_wen; // Puntuación china float shu_xue; //puntuación matemática float ying_yu;//partitura en inglés float shu_xue_fen_xi; //resultados del análisis matemático float shu_ju_jie_gou ;//resultados de la estructura de datos }; estudiante s1; int principal() { estudiante de estructura s1[100]; int i, n; printf("¿Cuantos estudiantes quieres ingresar?\n"); escaneo("%d",&n); printf("¡Recibido!\n"); para (i = 0; i < n; i++) { printf("Por favor ingrese la informacion basica del estudiante:\nNombre:"); scanf("%s", &s1[i].nombre, 50); printf("Numero de estudiante:"); scanf("%d", &s1[i].id); printf("edad:"); scanf("%d", &s1[i].edad); printf("Puntuacion en chino:"); scanf("%f", &s1[i]. yu_wen); printf("Puntuacion matematica:"); scanf("%f", &s1[i].shu_xue); printf("Puntuacion en ingles:"); scanf("%f", &s1[i].ying_yu); printf("数学分析成绩:"); scanf("%f", &s1[i].shu_xue_fen_xi); printf("数据结构成绩:"); scanf("%f", &s1[i].shu_ju_jie_gou); printf("该学生信息录入成功\n"); } printf("信息如下:\n"); for (i = 0; i < n; i++) {printf("学号:%d 姓名:%s 年龄:%d\n 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f 数学分析成绩:%.2f 成绩:%.2f \n", s1[i].id, s1[i].name, s1[i].age, s1[i].yu_wen,s1[i].shu_xue,s1[i].ying_yu,s1[i].shu_xue_fen_xi,s1[i].shu_ju_jie_gou);} } |
||||||||||
实验题2: #include<stdio.h> //实验一利用结构体类型定义变量 struct student { char name[10]; //名字 int id; //学号 int age; //年龄 float yu_wen; //语文成绩 float shu_xue; //数学成绩 float ying_yu;//英语成绩 float shu_xue_fen_xi; //数学分析成绩 float shu_ju_jie_gou ;//数据结构成绩 }; student s1; int main() { struct student s1[100]; int i,n; printf("你想录入几个学生的信息呢?\n"); scanf("%d",&n); printf("收到!\n"); for (i = 0; i < n; i++) { printf("请输入学生基本信息:\n姓名:"); scanf("%s", &s1[i].name, 50); printf("学号:"); scanf("%d", &s1[i].id); printf("年龄:"); scanf("%d", &s1[i].age); printf("语文成绩:"); scanf("%f", &s1[i]. yu_wen); printf("数学成绩:"); scanf("%f", &s1[i].shu_xue); printf("英语成绩:"); scanf("%f", &s1[i].ying_yu); printf("数学分析成绩:"); scanf("%f", &s1[i].shu_xue_fen_xi); printf("数据结构成绩:"); scanf("%f", &s1[i].shu_ju_jie_gou); printf("该学生信息录入成功\n"); } printf("信息如下:\n"); for (i = 0; i < n; i++) { printf("学号:%d 姓名:%s 年龄:%d\n 语文成绩:%.2f 数学成绩:%.2f 英语成绩:%.2f 数学分析成绩:%.2f 成绩:%.2f \n", s1[i].id, s1[i].name, s1[i].age, s1[i].yu_wen,s1[i].shu_xue,s1[i].ying_yu,s1[i].shu_xue_fen_xi,s1[i].shu_ju_jie_gou); } printf("student 结构体类型所占内存空间的大小:%d\n", sizeof(student)); } |
||||||||||
实验题3: #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct s1 {int buf[50]; int size; }s; void func1(s* p) { p = (s*)malloc(sizeof(s)); p->size = 10; return; } s* func2(void) { s* p; p = (s*)malloc(sizeof(s)); p->size = 10; return p; } void func3(s** p) { *p = (s*)malloc(sizeof(s)); (*p)->size = 10; return; } int main(int argc, const char * argv[]) { s *p1 = NULL; s *p2 = NULL; s *p3 = NULL; func1(p1); p2 = func2(); func3(&p3); if (p1 == NULL) { printf("p1=NULL\n");} else {printf("p1->size:%d\n", p1->size);} if (p2 == NULL) {printf("p2=NULL\n");} else {printf("p2->size:%d\n", p2->size);} if (p3 == NULL) {printf("p3=NULL\n");} else {printf("p3->size:%d\n", p3->size);} return 0;} void func_free(s* p) { free(p); return; } |
||||||||||
实验4: #include <iostream> using namespace std; struct Node{ Node(int data) :data(data), next(NULL) {} int data; Node *next; }; int main() { Node *head = new Node(1); head->next = new Node(2); head->next->next = new Node(3); head->next->next->next = new Node(4); Node *p = head; while (p!=NULL) { cout << p->data << "->"; p = p->next; } cout<< endl; system("pause"); return 0; } |
||||||||||
运行结果: 实验题1: 实验题2: 实验题3: 实验题4: |
||||||||||
结果分析与讨论:
|
Lenguaje C/c++ (estructura de datos) Ejemplos de revisión de puntos clave del lenguaje C (1/7)
Supongo que te gusta
Origin blog.csdn.net/qq_59819866/article/details/131450512
Recomendado
Clasificación