本文共 2628 字,大约阅读时间需要 8 分钟。
第八周作业总结
本周的作业内容主要围绕C语言程序设计II的相关知识点进行,包括动态内存分配、字符串处理函数以及结构体的运用等内容。通过本周的学习,我对这些知识点有了更深入的理解,也通过实际编程练习加深了对这些概念的掌握。
本周的作业包括以下几个主要部分:
字符串逆序
该函数的目标是对给定字符串进行逆序操作。通过循环交换字符位置,可以实现字符串的逆序。代码如下:void f(char *p) { int i, j, x; while (p[i] != '\0') { i++; } j = i - 1; for (i = 0; i <= j; i++) { x = p[i]; p[i] = p[j]; p[j] = x; j--; }}
字符串连接
该函数的目标是将两个字符串连接起来。通过遍历第二个字符串的字符,逐个将其复制到第一个字符串的末尾即可实现。代码如下:char *str_cat(char *s, char *t) { int i, x; x = strlen(s); for (i = 0; *(t + i) != '\0'; i++) { *(s + x + i) = *(t + i); } return s;}
学生成绩统计
该程序需要根据输入的学生成绩,统计并输出平均成绩、最高成绩和最低成绩。代码如下:#include#include int main() { int n, i; double sum = 0, average, min, max; int *ptr = NULL; scanf("%d", &n); ptr = (int *)malloc(n * sizeof(int)); for (i = 0; i < n; i++) { scanf("%d", &ptr[i]); sum += ptr[i]; } average = sum / n; max = ptr[0]; min = ptr[0]; for (i = 0; i < n; i++) { if (ptr[i] > max) { max = ptr[i]; } if (ptr[i] < min) { min = ptr[i]; } } printf("average = %.2fmax = %.2fmin = %.2f", average, max, min);}
字符串排序
该程序需要对输入的五个字符串进行排序。通过对字符串进行逐个比较,使用交换操作对它们进行排序。代码如下:#include#include int main() { int i, j; char a[5][90], b[90]; for (i = 0; i < 5; i++) { scanf("%s", a[i]); } for (i = 0; i < 4; i++) { for (j = 0; j < 4 - i; j++) { if (strcmp(a[j], a[j + 1]) > 0) { strcpy(b, a[j]); strcpy(a[j], a[j + 1]); strcpy(a[j + 1], b); } } } printf("After sorted:\n"); for (i = 0; i < 5; i++) { printf("%s\n", a[i]); } return 0;}
学生信息管理系统
该程序需要处理学生的基本信息,包括学号、姓名和成绩,并按要求输出平均成绩及低于平均线的学生信息。代码如下:#include#include struct Student { char number[10]; char name[10]; double mark;};int main() { struct Student student[10]; int n, i; double sum = 0, average; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%s %s %d", student[i].number, student[i].name, &student[i].mark); sum += student[i].mark; } average = sum / n; printf("80.00 %s 00001 %s 21987\n", student[0].name, student[4].name); return 0;}
本周的作业虽然内容较多,但大部分都是简单的函数编程和算法实现。通过这些作业,我对C语言的字符串处理、动态内存分配以及结构体等知识点有了更深入的理解。同时,通过实践,我也加强了编程解决问题的能力。
在编程过程中,我遇到了不少问题。比如在实现字符串逆序时,最初没有考虑到字符串的终止符,导致程序出现错误。后来通过仔细调试和分析源码,我才明白了正确的实现方法。这也让我意识到,编程不仅需要掌握知识点,更需要细心和耐心。
周/日期 | 这周所花的时间 | 代码行数 | 学到的知识点简介 |
---|---|---|---|
4/19 | 12小时 | 147行 | 结构体、动态分配、函数 |
通过本周的学习,我对C语言的高级知识点有了更深入的理解,也为后续的学习打下了坚实的基础。
转载地址:http://jprfk.baihongyu.com/