![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 81
Shawn·Bing
这个作者很懒,什么都没留下…
展开
-
线性表的顺序存储结构具体实现 代码实战 赛博图书馆搭建指南(使用C\C++语言)
完整地实现了用顺序表存储元素,并且通过将数据类型改为字符串结构体来搭建一个“赛博图书馆”,实现了顺序表的打印、插入元素、删除元素、查询元素,配以图文详解原创 2023-04-05 21:25:18 · 605 阅读 · 0 评论 -
浙大版《C语言程序设计(第4版)》题目集保姆级讲解(第三章)
对于任一整数n,符号函数sign(n)的定义如下:请编写程序计算该函数对任一输入整数的值。原创 2022-08-11 02:13:17 · 2728 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十四周 链表
解决方法:设立函数库,几个函数分别实现不同功能。原创 2022-08-07 23:04:35 · 748 阅读 · 1 评论 -
C语言学习笔记(浙大翁恺版)第十三周 文件 详解库函数(1)
原因是dos是一些爱好者开发,面向个人电脑的,而且PC刚开始时能力有限,二进制更接近底层。交互式终端的出现使得人们喜欢用文本和计算机交互,unix的shell在最开始提供了一些读写文本的小程序,因此文本和二进制是两种群体产生的不同习惯。因为二进制文件的读写一般都是通过对一个结构变量的操作来进行的,nitems用来说明要读写几个结构变量,size其实指的也是结构大小。这样的二进制文件不具有可移植性,如int为32位的机器上写成的数据文件无法直接在int位64位的机器上正确读出。二进制的优点是程序读写快;...原创 2022-08-06 16:36:54 · 357 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十二周 文件(3)
声明是不产生代码的东西函数原型、变量声明、结构声明、宏声明、枚举声明、类型声明、inline函数定义是产生代码的东西函数、全局变量。原创 2022-08-04 23:10:52 · 267 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十二周 文件(2)
开头的都属于编译预处理指令(它们不是C语言的成分,但C语言离不开它们)#define用来定义一个宏.c->.i(编译预处理完成)->.s(编译器编译,汇编代码文件)->.o(目标代码文件)->a.out(完成链接,生成可执行文件)//当你需要定义一个常量...//C99#define PI 3.14159//老版本C,//定义一个符号————宏,名为PI,值为3.14159编译预处理阶段会将所有PI替换为3.14159,简单的文本替换int main(){return 0;}...原创 2022-08-04 16:19:22 · 201 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十二周 文件(1)
我们之前了解了,本地变量这个说法,也就是定义在函数内部的变量。与之对应的就是定义在函数外的变量——全局变量。原创 2022-08-03 21:02:48 · 152 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十一周 结构(3)
C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字这样就使得Length成为了int类型的别名,此时Length可以代替int出现在变量定义和参数声明的地方,如声明新的类型的名字,作为某种类型的别名,大大改进了可读性typedef 原来的类型名 新类型名如果原类型名很长,只需要看最后的单词来判断原来:int month;int day;int year;};新:int month;int day;int year;} Date;//这个Date就是新名字。......原创 2022-08-03 19:19:49 · 152 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十一周 结构(2)
想记录抽象物体的一连串数据,我们不想一个一个定义,此时就可以用到C语言的结构类型一个结构就是一个复合类型,其中可以包含许多不同类型的成员变量。原创 2022-08-01 19:14:00 · 504 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十一周 结构(1)
枚举内部计数规则和数组一样,从0开始计数,因此如果在元素最后加一个名字,这个名字代表的数字就是前面名字的计数量。在程序中我们经常避免直接出现数字,用具体的单词或者别的能表达意思的字符串代替,这样可以大幅提升可读性。此时如果需要遍历所有枚举量、或者需要建立用枚举量做下标的数组时,就可以轻松得知枚举量的个数。现在我们有一种更加方便的方式来存放罗列起来的数据,即枚举。这种方式要比constint定义更加方便。...原创 2022-07-31 17:13:50 · 184 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第十周 字符串函数(2)
其中的CtrlC会让shell直接关闭程序,而CtrlD在shell收到后,在末尾填一个-1,程序读到-1,程序就正常结束了。这里有一个小技巧先把查找到的字符位置处更换为0,此时输出这个字符串,就得到需要的部分,然后再将其换回原来的字符,其他功能仍然可以正常运行,数组改动前后也没有变化。当然不行,要知道,放在格式化输出符后面比较数组,实质是比较两个数组的地址是否相同。因此在处理字符串时,要么把它当作数组,把参数作为下标,要么就把它当作指针,移动指针实现自增,指针加减实现返回值。...原创 2022-07-16 11:44:13 · 626 阅读 · 1 评论 -
C语言学习笔记(浙大翁恺版)第十周(字符串)(1)
10.1.1 字符串char word[]={'h','e','l','l','o','!'};定义这样一个字符数组,它是一串字符,但并不是C语言的字符串,不能用字符串的方式做计算那么如何定义一个字符串?char word[]={'h','e','l','l','o','!','\0'};这两句的区别在哪呢?很显然,在数组中多加了第七项 word[6]='\0'之前学过的转义字符,其中就有\0的存在,其意义就是0,可以在这个位置直接放一个0,不加单引号和反斜杠。这个0就让这w原创 2022-07-11 15:42:10 · 442 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第九周(指针部分)(2)
9.2.1 指针运算1+1=2?char ac[]={0,1,2,3,4,5,6,7,8,9,};char *p = ac;printf("p =%p\n",p);printf("p+1=%p\n",p);两个地址相差1int ai[]={0,1,2,3,4,5,6,7,8,9,};int *q = ai;printf("q =%p\n",q);printf("q+1=%p\n",q);两个地址相差4为何如此?很简单,char变量占据一字节而in.原创 2022-05-05 17:59:55 · 907 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第九周(指针部分)(1)
前体知识:格式控制符%p可以输出十六进制格式的地址;%lu可以输出无符号十进制整数地址。9.1.1 取地址运算运算符&我们在第一周就见过这个符号“&”了,当时我们规定scanf("%d",&x);中变量之前一定要有这个符号今天我们要开始学习关于它的知识,&,与加减乘除同类的运算符。&:获得变量的地址,它的操作对象必须是变量。那地址是个什么值呢?我们用代码试一下#include<stdio.h>int main(){in.原创 2022-05-04 18:16:36 · 915 阅读 · 2 评论 -
C语言学习笔记(浙大翁恺版)第八周(数组部分)
8.1.1 初试数组在循环中我们有一个例子:计算用户输入的整数平均数,以-1结尾。当时的方法是:读入用户输入的每个数字,统计输入的个数,然后用输入的数字之和除以个数。我们用累加的方法得到最后的和,不需要记录每个数字是多少。那么问题做些更改,又该怎么做?容易知道,我们需要记录每个数字,那么如何记录很多数?int num1,num2....?我们需要一种新的手段:数组int number[100];scanf("%d",&number[i]);定义了一个原创 2022-05-02 01:22:31 · 1768 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第七周(函数部分)
7.1.1 初见函数在第四周时候我们的作业中编写了一个计算素数和的程序高亮的部分作用是判断i是不是素数,功能单纯,占用版面大,因此我们可以将它独立出来,稍微更改一下数字。而主函数内我们也做些更改至今我们就完成了将一个全部功能都在主函数下的程序分为专用函数和主函数的转变。由此我们就可以将功能性代码和执行性代码分开,实现代码复用,精简程序。如果同样的功能使用几乎完全一样的代码,一直复制粘贴代码,进行code duplication,这是程序质量不良的一种表现7.1...原创 2022-04-24 21:14:34 · 2458 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第六周(2)
6.2.1 逻辑类型bool 类型:#include<stdbool.h> 包含该头文件之后可以使用bool、true、false实际上并没有bool这种类型,实际上这些变量还是整数,定义、输出还是可以用整数。6.2.2 逻辑运算逻辑运算是对逻辑量进行的运算,结果只有0或1。逻辑量是关系运算或逻辑运算的结果如果像平时做数学一样写4<=x<=6,则计算机会先判断4<x,得到的结果是0或1。然后再判断0或1是否<=6,结果为真,...原创 2022-04-24 11:43:38 · 1268 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第六周(1)
6.1.1 C语言其他的基本数据类型sizeof:属于(静态)运算符,可以给出某个类型或者变量在内存里占据的字节数。其结果在编译的时候就已经确定,与程序执行阶段无关,所以不能用来计算。但是可以放表达式,比如int a;sizeof(a+1.0)结果为->8,因为C自动转换了这个表达式,其类型为double,所以字节长度是8,并非真正的计算比如:sizeof(int) sizeof(i)6.1.2 整数类型i...原创 2022-04-24 10:20:28 · 877 阅读 · 0 评论 -
中国大学MOOC翁恺C语言PTA入门练习(更新中)
PTA保姆级讲解原创 2022-03-29 17:39:47 · 9278 阅读 · 14 评论 -
C语言学习笔记(浙大翁恺版)第五周(3)
原创 2022-03-28 16:58:16 · 730 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第五周(2)
5.2.1 循环控制素数:那么如何写一个程序来判断输入的数是不是素数呢?很简单,让输入的数依次从2到它自己-1求余。如果结果为0则不是素数。但是这样会出现一些问题,如果按这个思路写代码会得到:int i;scanf("%d",&x);for(i=2;i<x;i++){ if(x%i==0) { printf("不是素数"); }}那么如果我给一个有多个公因数的数进去,比如6,6可以被2和3整除,所以程序会输出两遍“不是.原创 2022-03-28 13:38:33 · 1138 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第五周(1)
5.1.1 for循环某天,翁恺老师叫闺女帮他带几个包子回家...于是闺女带了24(4!)个包子回家(闺女是计算机吗hhhh)那么如何让计算机计算阶乘呢?如果我想做个计算阶乘的程序,该怎么写?我的需求是:我输入一个数,然后程序计算给出我这个数的阶乘结果。那么我们分析一下,这个程序需要什么数据,又会产生什么数据。那么显然我们要定义一个接受n的变量且为整型, 要一个存储结果的变量,还需要一个从1递增到n的变量。于是可以得出以下代码:int n;scanf("%d",&n);原创 2022-03-27 11:20:34 · 488 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第四周
4.1.1 循环原创 2022-03-20 22:14:47 · 1447 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第三周(2)
3.2.1 嵌套的if-else之前我们比较过两个数的大小,那么如何比较三个数的大小?可以先比较两个数的大小,胜出者再去和第三个数比较,其算法图解为:#include <stdio.h>int main(){ int a, b, c; int max = 0; printf("请输入三个整数:"); scanf("%d %d %d", &a, &b, &c); if (a > b) {原创 2022-03-05 17:36:28 · 557 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第三周(1)
3.0 0的故事电报时代为了将0和O区分,为0设计了一种特殊的字体这是一个诡计多端的03.1.1 做判断上周课程中的时间差一例中,小时数出现借位的话该如何调整呢?我们之前的方法是直接换成分钟再变化。小时数如果出现借位而我们还直接加减的话,就会出现负数的情况。那么有没有一种方法能预先判断小时数是否借位再对计算方法进行调整呢?这就要引出今天的C语言判断语句了#include<stdio.h>int main(){ int hour1,minute1;原创 2022-03-05 15:53:13 · 719 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第二周(2)
2.2.1 表达式什么是表达式?在C中指:一系列运算符和算子的结合,用来计算一个值运算符是指进行运算的动作,比如加法运算符‘+’。算子是指参与运算的值,可以是常量、表达式,也可能是一个方法的返回值。如:count=count+1;total=1;课中引入一个小例:如何计算时间数+分钟数的时间差如17:20和14:50的时间差,因为出现了分钟借位的情况,所以不能简单相加。所以可以结合之前的英尺英寸转米的例子。将时间先全部化为分钟数相减,然后再把得到的时间转化为xx:xx的形式。原创 2022-03-01 22:59:34 · 820 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第二周(1)
2.1.2 变量定义#include<stdio.h>int main(){ printf("100-79=%d",100-79); return 0;}之前写到的程序实际上都是预先编写好再输出的,如果想要在程序运行过程中做到输入一个数再给出相关结果,该怎么做呢?要达到这样的目的需要三个条件:要能存放输入的数字 要能从外部输入数字(从键盘或者别的输入读取) 输入的数字能参与计算先来看一个采用了这种方法的程序:#include<stdio.原创 2022-02-27 00:17:25 · 526 阅读 · 0 评论 -
C语言学习笔记(浙大翁恺版)第一周
第一周原创 2022-02-26 17:37:44 · 923 阅读 · 0 评论