一·教材内容学习
《计算机科学概论》第14章
1.模拟与离散事件
模拟:使用计算机模型来模拟现实世界的过程或系统。
离散事件模拟:详细阐述离散事件模拟的原理和方法,包括如何定义事件、时间推进、状态更新等关键步骤,关注于模拟随时间发生的离散事件,如排队系统中顾客的到达和服务。
2.排队系统:排队理论是研究等待服务的对象的排队现象的数学理论。
排队系统的基本元素:到达率、服务率、队列长度和等待时间。
不同的排队模型:如M/M/1、M/M/c等;以及如何使用这些模型来优化服务流程。
3.天气与地震模型
(1)天气模型:天气模型的基本原理和构建方法,包括气象数据的获取、处理和分析等步骤。
(2)地震模型:阐述地震模型的建立过程和关键技术,以及地震预测和预警系统的实现原理。
模拟结果的应用:讨论天气和地震模拟结果在防灾减灾、资源规划等领域的应用价值。
4.图形图像
图形学是计算机科学的一个分支,涉及数字创建、操作和渲染图像的技术。介绍了图形学的基础,包括二维和三维图形、纹理映射、光照模型和动画;探讨了图形图像在游戏、电影、虚拟现实等领域的应用。
《C语言与程序设计》
一·指针与字符串
字符串的存储形式:在C语言中,字符串实际上是一个字符数组,并且以'\0'作为字符串的结束标志。例如,“char str[] = "hello";”,这里str是一个字符数组,它包含了字符'h'、'e'、'l'、'l'、'o'以及结束标志'\0'。
指针与字符串的关系:字符串可以通过指针来处理。可以声明一个指向字符类型数据的指针,并使其指向一个字符串。例如,“char *p = "hello";”,这里p指向了字符串“hello”的首字符。通过指针可以对字符串进行各种操作,如字符串的复制、连接、比较等。例如,要复制一个字符串,可以使用以下代码:
在这个例子中,首先通过“malloc”函数分配了足够容纳源字符串“source”长度加1的内存空间(因为要包含结束标志'\0'),然后通过“strcpy”函数将源字符串复制到了新分配的内存空间中,由dst指向。
综上所述,第9章全面深入地介绍了C语言中的指针概念、相关操作以及与其他语言元素如数组、函数、字符串等的关系,掌握这些内容对于深入理解C语言的内存管理和数据处理机制至关重要。
二·动态内存分配
malloc函数:C语言中使用“malloc”函数进行动态内存分配。它的基本用法是“void *malloc(size_t size);”,其中size_t是一个无符号整数类型,表示要分配的内存大小(以字节为单位)。例如,要分配足够容纳一个整型变量的内存空间,可以使用“int *p = (int *)malloc(sizeof(int));”,这里先通过“malloc(sizeof(int))”分配了4个字节(假设int类型占4个字节)的内存空间,然后将其强制转换为指向int类型数据的指针类型“(int *)”,并赋值给指针p。
free函数:与“malloc”函数相对应的是“free”函数,用于释放通过“malloc”函数分配的内存空间。其用法是“free(p);”,其中p是通过“malloc”函数分配的内存的指针。在使用完动态分配的内存后,一定要及时使用“free”函数释放,否则可能会导致内存泄漏,即内存被占用但无法再被使用的情况。
三·字符串处理函数
在C语言中,字符串处理函数是标准库中的一部分,主要用于操作以null字符('\0')结尾的字符数组。以下是一些常用的字符串处理函数:
strcpy(字符串复制):
原型:char *strcpy(char *dest, const char *src);
功能:将src指向的字符串复制到dest指向的内存空间中。
注意:dest必须有足够的空间来存储复制的字符串。
strcat(字符串连接):
原型:char *strcat(char *dest, const char *src);
功能:将src指向的字符串连接到dest指向的字符串的末尾。
注意:dest必须有足够的空间来存储连接后的字符串。
strlen(计算字符串长度):
原型:size_t strlen(const char *str);
功能:计算str指向的字符串的长度(不包括结束的null字符)。
strcmp(比较字符串):
原型:int strcmp(const char *str1, const char *str2);
功能:比较两个字符串str1和str2。
返回值:如果str1小于str2返回负数,相等返回0,大于返回正数。
strncmp(比较字符串前n个字符):
原型:int strncmp(const char *str1, const char *str2, size_t n);
功能:比较两个字符串str1和str2的前n个字符。
strchr(查找字符首次出现):
原型:char *strchr(const char *str, int c);
功能:在str指向的字符串中查找字符c第一次出现的位置。
返回值:如果找到,返回指向该字符的指针;如果没有找到,返回NULL。
strrchr(查找字符最后一次出现):
原型:char *strrchr(const char *str, int c);
功能:在str指向的字符串中查找字符c最后一次出现的位置。
strstr(查找子字符串首次出现):
原型:char *strstr(const char *haystack, const char *needle);
功能:在haystack指向的字符串中查找needle指向的子字符串第一次出现的位置。
strtok(字符串分割):
原型:char *strtok(char *str, const char *delim);
功能:使用delim指定的分隔符分割str指向的字符串。
注意:这个函数会修改原始字符串,并且是线程不安全的。
二·教材学习问题和解决