大一初识C语言
以大一期间所学C语言基础语法为主,内容较为基础
lanssssss
这个作者很懒,什么都没留下…
展开
-
C语言基础部分语法思维导图
跳转至语雀笔记原创 2024-07-06 20:23:52 · 93 阅读 · 0 评论 -
12.10C语言 **冒泡排序法
冒泡排序的基本思想是:通过重复交换相邻的不按顺序的项来工作,每一遍的排序过程中,都会将一个未排序的元素放置到已排序的末尾,直到所有元素都已排序。在每一遍排序过程中,都会将一个未排序的元素放置到已排序的末尾,这个过程被称为“冒泡”,因为在这个过程中,小的元素会像气泡一样“冒”到数列的顶部。原创 2023-12-10 16:05:47 · 378 阅读 · 1 评论 -
12.18 C语言 标识符 关键字 期末复习一
标识符是对变量名函数名等其他各种用户定义的对象命名的有效字符序列,简单来说就是名字.需要遵循一定规则:1.不能以数字开头,只能以字母数字下划线或者$符号构成2.不能与关键字重名,如int等3.严格区分大小写4.尽量具有一定意义静态变量:static 全局变量:extern 局部变量:auto。原创 2023-12-18 21:26:09 · 357 阅读 · 0 评论 -
2024 1.4C语言期末复习二
4.定义宏函数时一定要注意数据类型,如将参数 x 为非零实数,函数值为其倒数 1/xdouble Rec(double x);要注意此处的参数为double类型,故宏函数应该这样写#define Rec(x) ((1.0)/(x))2.用三种基本控制结构(顺序,选择,循环)可以构成任何复杂的算法。复杂算法可以被分解为一系列的简单操作,而这些操作可以通过顺序、选择和循环这三种基本结构来实现。3.想通过ASCII码来输出字符可以用%c,如printf("I%c%c\n",3,14);原创 2024-01-04 16:05:40 · 440 阅读 · 0 评论 -
11.30c语言,二 十 十六进制转换法,原码反码补码转换方法,关于字符型ASCII 码 关于强制类型转换
一种计算十进制转换二进制的转换方式:二进制一般以8位(16位)来表示,如1为00000001,6为00000110,这八位从左往右数是2的0次方依次到2的8次方,具体计算就是,比如6=2的0次*0+2`1*1+2`2*1=0+2+4=6,最高位即最左边的一位是符号位,0代表正数,1代表负数。原码反码补码,正数的原码反码和补码都不变,为它本身,负数是标志位不变,其他取反(原码转反码 反码转原码一样的方法),补码=反码+1.如。占用1个字节,存储字符值。原创 2023-11-30 19:34:22 · 680 阅读 · 0 评论 -
11.27C语言,全局变量,局部变量,作用域以及生命周期
3.静态变量:静态变量的初始值只在第一次执行程序时设置一次,之后程序执行期间它的值一直保留。普通变量比如a,定义后为1,就不会变了,但静态变量定义初始为0,但他会保存上一次调用的值。初始值为0,定义格式为static 类型名 变量表。在程序运行期间一直存在,它的生命周期是全局的。1.作用域:在他所在的大括弧中起作用;2.生命周期:指的是变量存在的时间。局部变量:在"{}"中的变量。全局变量:在大括弧中的外面。原创 2023-11-27 21:42:40 · 362 阅读 · 0 评论 -
12.10C语言scanf(“%“, &arr[i]);什么时候需要加&?数组的参数传递方法
字符串是由字符组成的字符数组,因此可以直接传递字符串的名称(即字符数组的名称)作为参数给。函数需要知道变量的地址以便将读取的值存储在该地址中。符号是取地址运算符,用于获取变量的内存地址。函数用于从标准输入读取数据并存储到变量中。运算符获取变量的地址,并将其作为参数传递给。函数读取整数类型的数据时,需要使用。是一个字符数组,可以直接传递给。函数读取字符串时,不需要使用。个元素的地址,并将其传递给。即%d加&,%s不用加。原创 2023-12-10 16:11:49 · 635 阅读 · 2 评论 -
11.17C语言,贪心算法,n个人搬n块砖头
当找到满足条件的解,就不必继续循环了,此时需要退出三重循环,break语句只能终止当前循环,不能同时退出多重,运用引入变量flag共同描述循环条件,初始值为1,一旦找到满足条件的解,将flag赋值给0,从而使所有循环条件为假,以终止三重循环。2.输出函数的实际参数,如printf("%d",fun(num))n=fun(num),将该函数的返回值赋值给变量;函数定义时,应该注意变量名和函数名不能相同。1.通过赋值语句,如。原创 2023-11-17 23:25:37 · 381 阅读 · 1 评论 -
12.4C语言补录 关于闰年的计算公式
totalleapyear(y2)计算从0-Y2的之间的闰年数,totalleapyear(y1-1)计算0-y1-1之间的闰年数,两者之差就是y2-y1之间的闰年数,(y1-1)是以防y1是闰年被减去。这个算法实际上考虑了两个条件:年份能被4整除且不能被100整除,或者能被400整除。原创 2023-12-05 10:45:07 · 384 阅读 · 0 评论 -
12.13C语言 符号常量
符号常量是一种特殊的常量,用一种符号名称来表示一个固定的值,常在程序中被视为不可改变的值,用于替代一些常用的数字或字符串.要定义一个符号常量,需使用#define的预处理指令。程序中可以用PI来代替具体的数值,不能在运行时修改.原创 2023-12-14 18:24:39 · 343 阅读 · 1 评论 -
12.14C语言 二分查找法 二维数组
m是行数,n是列数//类型名 数组名[行长度][列长度];引用二维数组的元素需要指定两个下标,即行下标和列下标,下标取值范围同一维数组int i, j;for (i = 0;i < 3;i++) { //外循环是行下标for (j = 0;j < 4;j++) { //内循环是列下标return 0;会输出所有的二维数组中的所有元素.原创 2023-12-14 19:50:11 · 321 阅读 · 0 评论 -
12.21C语言 判断回文
从字符第一个开始和最后一个字符比较,所以i从0开始,k从最后一位字符开始(k=k-1是因为数组中最后一个是换行符),若最后i>=k即说明是回文序列如radar。原创 2023-12-21 18:57:33 · 374 阅读 · 0 评论 -
12.15约瑟夫环问题
有N个人围成一圈(编号为1~N),从第1号开始进行1、2、3报数,凡报3者就退出,下一个人又从1开始报数……直到最后只剩下一个人时为止。请问此人原来的编号是多少?原创 2023-12-15 19:58:06 · 323 阅读 · 0 评论 -
11.29C语言,关于静态变量
是一个不安全的函数,因为它不进行任何类型的检查。但scanf_s是为了确保输入一个在你的代码中,使用。是正确的,因为它允许输入一个整数,并确保不会尝试读取超过一个整数大小的输入,从而防止了缓冲区溢出。原创 2023-11-29 17:36:24 · 417 阅读 · 1 评论 -
12.6C语言 字母大小写互换 赋值运算的类型转换 %%转义字符
printf("出勤率=B/A=%.1f%%\n",cql);%%表示转义字符,可以输出一个% \\同样,输出一个\。赋值运算时,会将赋值号右侧的表达式的类型自动转换成赋值号左侧变量的类型。运用强制类型转换时要注意变量类型。将会输出2.00000000。因为赋值会因为类型而失效,如。原创 2023-12-07 11:13:48 · 364 阅读 · 1 评论 -
12.5C语言 数组 for循环的后面加一个分号,会导致for循环的代码块结束,而后面的代码并不属于for循环。
数组(类型名,数组名[数组长度(常量表达式)]): int a[10]={1,2,3,4,5,6,7,8,9,10}(类型名,数组名[数组长度(常量表达式)]={初值表})也可以没有十个数,叫不完全初始化,剩余的值默认为0。数组初始化的时候,如果对全部元素都赋了初值,就可以省略数组长度int a[]={1,2,3,4,5,6,7,8,9,10}对应数组下标[0]-[9],数组以下标反问,a[0](引用:数组名+[下标])访问的是1(第一个元素),这个程序在计算平均数的时候存在一个语法错误。原创 2023-12-05 20:20:27 · 690 阅读 · 0 评论 -
12.1C语言 表达式
按位与&:将两个操作数转换为二进制数进行运算,00得0,01得0,11得1,得到输出结果的二进制数,转换为十进制后输出,如a=10,b=6,a&b=2。左移(<<):如a=6=0110,<<2得011000=24,<<1=01100=12,实际上就是*几次2。按位或|:00得0,其余得1,1010|0110=1110=14,从两位数最高位依次运算。按位异或^:01 10得1,11 00得0,1010^0110=1100=12。算术:++ --自加/自减,运算对象只能是变量,按位取反~:~a=-(a+1)原创 2023-12-05 09:57:42 · 325 阅读 · 0 评论 -
11.24C语言,输出菱形
遇到金字塔,菱形等类型问题时,将它进行分解在循环中,寻找空格的规律,和所需打印字符的规律。i--) {//少一行打印。for (i = 1;i++) {//确定行数。原创 2023-11-24 20:54:51 · 329 阅读 · 1 评论 -
11.16C语言,函数的三要素
这种嵌套结构能够实现特定的循环逻辑,即对于每个成人数量组合(由第一个和第二个for循环控制),检查儿童数量是否满足给定条件(由第三个for循环控制)。分开写也无法实现嵌套循环所具有的逻辑优势,即对于每个成人数量组合,可以快速检查儿童数量是否满足条件,而不是对所有可能的儿童数量进行逐个检查。如void greet(const char* name) 函数定义,函数名为 greet,参数列表为 (const char*),返回类型为 void。函数包括四个要素,返回值类型,函数名,参数列表。原创 2023-11-16 22:18:34 · 32 阅读 · 1 评论 -
11.23C语言,关于从一串固定格式的数字中求想要的部分(如从身份证号中求得某人的出生年月日)
定义三条边xyz三条形参分别接受三条实参的值,%.2f表示保留两位小数。sqrt函数即平方根函数,用于海伦秦九昭公式的计算。原创 2023-11-23 20:39:54 · 384 阅读 · 0 评论 -
12.7C语言 sscanf函数的用法
sscanf函数用于从字符串中读取格式化的数据。它通常用于将字符串解析为指定格式的数据,并将其存储到变量中。的地址开始读取字符串,这在语法上是正确的,但在这个例子中是不必要的,因为。为了避免这种情况,你应该在使用。本身就是一个指针,指向数组的第一个元素。i用于读取str字符串的整数部分,f用于读取小数部分,符号在 C 语言中用于取变量的地址。是格式说明符,用于读取字符串。定义了一个字符数组时,这个数组的名称。是一个未初始化的指针,那么使用。函数用于从标准输入读取数据。所指向的地址开始读取字符串。原创 2023-12-10 15:00:43 · 345 阅读 · 1 评论 -
12.11C语言 选择排序法
选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。原创 2023-12-11 11:17:23 · 348 阅读 · 1 评论 -
1.5C语言 双曲正弦函数(*) 优化麦克劳林公式
【代码】双曲正弦函数(*) 优化麦克劳林公式。原创 2024-01-04 23:07:17 · 563 阅读 · 0 评论 -
2.4C语言 面对多行数据输入时,千万别忽略换行符...
忽略换行符导致改了半天....scanf和printf函数输入输出时别漏了\n...原创 2024-02-04 18:18:05 · 413 阅读 · 0 评论 -
12.23C语言 指针
p1是p的内存地址,*p1是获取p1所存储的地址所指向的值(即指针p1所指向的是值),&p1是存储p这个变量地址的地址,,&(*p1)是取获取p1经过test函数后,改变了指针p1所指向的值(即p),所以*p1的值和p会发生改变,此处有一个拷贝传值和指针传值的区别,见标题三。p1这表示指针变量p1本身的地址。由于在C语言中,函数参数传递是按值传递的,所以这里的p1只是函数内部的一个副本,其值并没有改变。因此,它的值仍然是它被传递进去之前的那个地址,也就是指向整数p的地址。&p1: 这表示指针变量p1。原创 2023-12-23 21:42:04 · 451 阅读 · 0 评论 -
密码加密-向后偏移
if (str[i ]>= 'A' && str[i] <= 'Z') { ... } else if (str[i] >= 'a' && str[i] <= 'z') { ... }检查字符大小写区分开。原创 2023-12-22 17:42:48 · 343 阅读 · 0 评论 -
1.6C语言 结构数组 结构指针
的定义方法与结构变量类似:struct student students[50];定义了一个结构数组,有五十个元素,0-49,是结构类型struct student初始化与二维数组类似 struct student students[50]={{101,“zhang",76,85,78},{...}}使用方法与普通数组一致。原创 2024-01-06 20:47:50 · 487 阅读 · 0 评论 -
2.2C语言 出身年月日格式化
小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写199808,有的人只写9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成年年年年-月月格式。对于那些只写了年份后两位的信息,我们默认小于22都是20开头的,其他都是19开头的。原创 2024-02-02 11:45:53 · 406 阅读 · 0 评论 -
1.29C语言 sscanf函数的用法 abs整数绝对值函数
abs(a) 返回a的绝对值。原创 2024-01-29 18:10:50 · 474 阅读 · 0 评论 -
2024.1.2C语言 结构
struct 结构名{//结构类型名类型名 结构成员名1;类型名 结构成员名2;//结构分量...类型名 结构成员名n;//看做一条语句,结束要加;struct为关键字,后自行命名一个结构名(合法标识符)一个大的实体包含多个成员,每个成员又可能包含更小的成员,这样就需要结构的嵌套struct address {//定义地址结构int code;int zip;int num;//定义通信地址成员。原创 2024-01-02 14:20:53 · 368 阅读 · 0 评论 -
2.6c语言 判断素数
判断一个数是否是素数,素数是只能被1或者他本身整除的数(1不是素数),可以通过循环遍历从2--a-1所有数,看有没有数能够被他整除,从而去判断他是不是素数.原创 2024-02-06 12:30:44 · 463 阅读 · 0 评论 -
2024.1.3C语言补录 宏函数
使用方法基本与普通函数一样,需要多注意参数类型,多用括号来避免运算符优先级的问题。宏函数与常规函数类似,但它们在预处理阶段进行替换,而不是在运行时。定义:#define 宏名称(参数列表) 宏体。在C语言中,宏函数可以使用预处理器指令。原创 2024-01-04 16:09:00 · 412 阅读 · 0 评论 -
12.26C语言 不同数据类型与0的比较
主要是比较ASCII码,注意,字符型变量与整型变量在内存中的表示是相同的,因此字符型变量与整数的比较是合法的。不可以直接用==判断,因为会涉及到精度问题,可能会导致不准确的结果,需要定义一个很小的值作为阈值,求绝对值函数:整型用abs 浮点型用fabs。2.float和double型。判断两个浮点数是否相等用减法,原创 2023-12-26 18:37:54 · 406 阅读 · 0 评论 -
12.26 字符指针上
声明一个字符指针,char *ptr初始化//在定义指针时,可以将它的初位置定义为空,即char *s= NULL// 指向字符串字面量的指针// 字符数组// 指向字符数组的指针访问指针指向的内容:char ch = *ptr;// ch 现在是 'h'遍历字符数组while(*ptr!//移动到下一个字符。原创 2023-12-26 20:23:36 · 341 阅读 · 0 评论 -
12.22C语言 根据麦克劳林公式计算 e x 的值
pow函数,声明为#include<math.h>pow(2,3)返回2的三次幂即8;原创 2023-12-22 20:35:16 · 430 阅读 · 0 评论 -
12.29C语言 字符指针下
在头文件string.h中定义。原创 2023-12-29 22:48:11 · 418 阅读 · 0 评论 -
12.25C语言 麦克劳林公式求余弦值
【代码】12.25C语言 麦克劳林公式求余弦值。原创 2023-12-25 22:27:40 · 403 阅读 · 0 评论 -
12.20C语言补录 一维字符数组
定义初始化引用和一位数组一样,如 char t[5]={'h','a','p','p','y'};\0表示空字符,尝尝在字符串中运用,作为结束的标志,当你使用。或其他输出函数来打印字符串时,它会一直打印直到遇到。对静态数组s前五个赋值,其余元素初值就为0如。原创 2023-12-21 19:14:36 · 392 阅读 · 0 评论 -
2023.11.1,一个关于占位符的用法
若要多次输入数据,可以用一个for循环,如输入9个数,可以for(i=1;}循环在刚好输入9个整数后结束。原创 2023-11-01 23:26:54 · 23 阅读 · 0 评论 -
11.11C语言,输出菱形字符
的值,得到一个新的 ASCII 码值。由于 ASCII 码表中相邻的字符之间的值是连续的,所以这个新的 ASCII 码值对应的字符正好是。行由大写字母A开始构成的菱形字符阵列。#include 的表达式来输出字符。这种写法是正确的,因为字符在内存中是以整数形式存储的。以生成一个由*形成的菱形为例,需要输出特定的空格数和*号数。主要是先输出空格,然后是字符,注意空格和字符的变化规律;,对应的 ASCII 码值为 66,也就是字符。这种写法是合法的,并且可以方便地输出所需的字符。原创 2023-11-11 23:35:53 · 397 阅读 · 1 评论