- 博客(20)
- 收藏
- 关注
原创 PTA平台题目(编号1086):就不告诉你
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。输入格式:输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。输出格式:在一行中倒着输出 A 和 B 的乘积。输入样例:5 7输出样例:53#include<stdio.h>int main(){ int a1=0,a2=0; scanf("%d %d",&a1,&a2);
2020-11-24 15:46:45
911
原创 PTA平台题目(编号1091):N-自守数
如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3×92² = 25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守数。本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。#include<stdio.h>#include<stdbool.h>int main(){ int m=0; //定义m个数 bool flag=true; scanf
2020-11-24 13:00:08
515
原创 标准C语言13(文件的读写)
文件读写:文件的分类:文本文件:储存的是ASCII码的二进制 ‘2’ ‘5’ ‘5’二进制文件:储存的是数据的补码 11111111文件IO:FILE *fopen(const char *path, const char *mode);功能:打开或者创建文件path:文件路径mode:打开模式r:以只读权限打开文件,如果文件不存在则打开失败r+:在r的基础上加入写权限w:以只写权限打开文件,如果文件存在则清空写入,如果文件不存在则创建。w+:在w的基础上加入读权限a:以只写权限
2020-11-08 18:54:43
325
原创 标准C语言12(复合结构类型)
复合结构类型:结构结构是由程序员自己设计的一种数据类型,用于描述一个事物的的各项数据,由若干个不同的基础类型组成。设计:struct 结构体名{类型1 成员名1;类型2 成员名2;…};定义结构变量:struct 结构体名 结构变量名;注意:定义结构体变量时,struct不能省略定义结构变量初始化:struct 结构名 结构变量名 = {v1,v2,v3};注意:要根据结构体设计的顺序初始化struct 结构名 结构变量名={.成员名=v2,.成员名=v3};只初始化某些成
2020-11-04 11:48:36
331
原创 标准C语言11(预处理指令)
预处理指令:程序员所编写的代码并不能被真正的编译器编译,需要一段程序把代码翻译一下。翻译的过程叫做预处理,被翻译的代码叫做预处理指令,以#开头的都是预处理指令查看预处理的结果:gcc -E code.c 把预处理的结果打印到终端上gcc -E code.c -o code.i 把预处理的结果储存到code.i文件中预处理指令的分类:#include 文件包含#include <> 从系统指定的路径下查找并导入头文件#include “” 先从当前路径下查找,如果找不到再从系统指
2020-10-30 19:43:20
308
原创 标准C语言10(字符串)
字符串:由字符组成的串形结构,结束标志是’\0’存在方式:字符串字面值:“由双引号包含的若干个字符”,储存在代码段,只读,修改会产生段错误,地址,末尾隐藏了一个’\0’const char* strp = “hello”;sizeof(“hello”) 6 字符个数+1字符数组:char str[] = {‘a’,‘b’,‘c’};储存在栈内存,可以修改,需要手动添加\0注意:字符数组不要设置数组的长度一般使用字符串字面值来初始化字符数组char str[] = “hello worl
2020-10-30 19:39:57
723
原创 C语言常见面试题
常见的面试题:1、堆内存与栈内存的区别。定义 大小 使用 安全 优缺点 2、堆内存越界的后果 超过33页产生段错误 破坏malloc的维护信息,再次使用malloc/free会出错 脏数据 3、什么是内存泄漏,如何定位内存泄漏 由于粗心大意、业务逻辑出错导致使用完毕的内存没有释放,当再次需要时只能重新申请,又没释放,长期日积月累能使用的内存就越来越少,系统越来越慢甚至崩溃,这种情况就要内存泄漏。
2020-10-24 20:00:54
1055
1
原创 标准C语言09(malloc堆内存)
什么是堆内存:是进程的一个内存段(text\data\bss\heap\stack),由程序员手动管理特点:足够大,缺点:使用麻烦为什么使用堆内存:1、随着程序的复杂,数据量变多2、其它内存段的申请、释放不受控制,堆内存的申请和释放受控制如何使用堆内存:注意:C语言中没有控制堆内存的语句,只能使用C标准库提供的函数#include <stdlib.h>void *malloc(size_t size);功能:从堆内存中申请size个字节的内存,申请到的内存中储存是什么内容不确
2020-10-24 19:53:38
339
原创 标准C语言08(指针)
什么是指针:指针是一种特殊的数据类型,使用它可以定义指针变量,指针变量中存储的是整型数据,代表了内存的编号,通过这个编号可以访问对应的内存。为什么要使用指针:1、函数之间相互独立,但有时候需要共享变量传参是值传递全局变量容易命名冲突使用数组还需要传递长度命名空间是相互独立的,但是地址空间是同一个,所以指针可以解决这个问题。2、由于函数与函数之间是值传递(拷贝),对于字节数多的变量,值传递的效率比较低,如果传递的是变量的地址,只需要传递4|8个字节,提高传参效率。3、堆内存无法取名字,它不能
2020-10-23 18:54:42
406
原创 标准C语言07
自定义函数:1、函数声明 告诉编译器函数的格式,方便它检查调用者的参数、返回值2、隐式声明 当调用函数时如果没有声明也没有定义,编译器会猜测函数的格式,函数的形参会按照调用者提供的实参来猜,返回值默认int3、函数定义 如果函数的定义在调用之前,声明可以省略4、函数传参值传递:普通变量 函数之间不能共享同名变量址传递:数组,数组的长度会丢失,需要额外增加一个参数来传递数组的长度,同时该数组被两个函数共享(调用者和被调用者)返回值:reutrn语句不是把数据传递给调用者,而是把数据放在一个他们都
2020-10-23 18:51:37
169
原创 C语言实现小游戏:五子棋
五子棋:需要的数据:1、定义一个15*15的棋盘2、定义变量用于记录棋子的坐标3、定义角色变量业务逻辑:是否需要对数据进行初始化for( ; ; ){1、刷新屏幕,显示棋盘2、落子检查坐标是否合法,该位置不能有棋子3、检查是否五子连珠刷新屏幕是:游戏胜利4、交换角色}5、宣布平局,结束游戏#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <ge
2020-10-22 14:23:37
3337
10
原创 标准c语言06
复习:进制转换十进制转二进制:对2余法,直到为0为止,过程中出现的余数就是二进制(逆序)二进制转十进制:2^(n-1)二进制转八进制:低位开始,每三个二进制位对应一位八进制二进制转十六进制:低位开始,每四个二进制位对应一位十六进制,超过9的用ABCDEF代替代码中以0开头数是八进制,以0x开头的是十六进制printf %o 以八进制形式显示, %x以十六进制显示 %#o %#x原码与补码:正数的原码就是补码负数 符号位不变,其它位按位求反的原码+1,才是它的补码无符号的补码就是原码
2020-10-20 20:23:37
213
原创 标准c语言03
数组:什么是数组:相同类型的变量的组合,是一种批量定义变量的方式定义: 类型 数组名[数量];int arr[5]; == int num1,num2,num3,num4,num5;使用:数组名[下标];下标:从0开始,范围:0 ~ 数量-1遍历:与for循环配合使用,使用循环变量 i 当做数组的下标初始化:类型 数组名[数量] = {1,2,3,4,5…};1、数组与普通变量是一样默认值是随机,为安全也要对数组进行初始化2、这种初始化语法只能在定义数组时使用,而且不能整体赋值3、如果初
2020-10-20 20:19:56
211
原创 标准C语言05(进制转换 补码反码)
进制转换:为什么使用二进制、八进制、十六进制:因为现在的CPU只能识别高低两种电流,只能对二进制数据进行计算。二进制数据虽然可以直接被CPU计算识别,但是不方便书写、记录,把二进制数据转换为八进制是为了方便记录在文档中。随着CPU的位数不断的增加,由早期的8位逐渐发展成了现在的64位,因此八进制就不能满足需要了,所以发展出了十六进制。由于历史原因八进制还不能退出历史舞台(文件的权限 m=4+2+1)十进制转二进制(其他进制):求余法:用2对数据进行求余,然后用商继续求余,直到商为0结束,过程中
2020-10-17 20:55:22
632
原创 C语言实现小游戏:走迷宫
走迷宫:1、定义一个二维数组作为迷宫2、定义老鼠的坐标3、获取游戏开始时的时间time(NULL)4、进入循环1、system 清理屏幕2、显示迷宫(遍历二维数组)3、检查是否走出迷宫获取游戏结束时的时间:计算出共花费多少时间time(NULL)是:结束程序4、获取方向键并处理判断接下来要走的位置是否有路1、把新位置赋值为老鼠’@’2、把旧位置赋值为路 ’ ’3、把记录老鼠的坐标更新注意:获取方向键使用getch.h头文件中的getch函数把getch.h头文件复制到共
2020-10-17 20:50:17
1933
原创 C语言实现小游戏:推箱子
走迷宫:1、定义一个二维数组作为迷宫2、定义老鼠的坐标3、获取游戏开始时的时间time(NULL)4、进入循环1、system 清理屏幕2、显示迷宫(遍历二维数组)3、检查是否走出迷宫获取游戏结束时的时间:计算出共花费多少时间time(NULL)是:结束程序4、获取方向键并处理判断接下来要走的位置是否有路1、把新位置赋值为老鼠’@’2、把旧位置赋值为路 ’ ’3、把记录老鼠的坐标更新注意:获取方向键使用getch.h头文件中的getch函数把getch.h头文件复制到共
2020-10-17 20:44:53
394
原创 标准c语言02
复习:1、Linux常用的命令ls cd pwd clear touch mv cp cat/head/tail/more mkdir rmdir chomd rm find grep ifconfig ping whoami sudo man2、vim文本编辑器vi是系统自带文本编辑器 vim是它的增强版本三大模式:正常、插入、行底切换方法:Esc i :正常模式下的操作:光标的移动:gg G nG vim file.c +n删除代码: dd x dw\de ndd d$ d^ dgg
2020-10-14 10:32:44
359
原创 标准c语言01
C语言简介:BCPL->newB->C->UNIX->Minix->Linux->gccC语言诞生于1971~1973年,在肯.汤普逊和丹尼斯.里奇领导下编写完成,归属于美国的贝尔实验室。C语言为了专门编写操作系统而诞生的语言,所以天生适合对硬件编程,也因为速度快而著称,也非常适合实现数据结构和算法。由于出现时间早,有很多缺陷,也没想过普通人能使用C语言编程,因此存在着缺陷,但是前辈总结了一些可以避免的经验《C陷阱与缺陷》《C程序设计语言》自由源于自律
2020-10-11 18:46:30
517
原创 Linux命令笔记02
重定向,管道,通配符 重定向 把命令的执行结果写入到文件中cmd > filename 如果文件存在则清空后写入,不存在则创建后写入cmd>>filename 如果文件存在则追加写入,不存在则创建写入管道 相当于一根管子联通两个命令,一个命令的执行结果当作另一个命令的数据源find / | grep “key” 查询/下所有文件名中含有key的文件通配符 可以进行模糊执行命令? 代表任意一个字符* 代表任意的多个字符 [rm -rf /*]终端的配置文件 ge
2020-10-10 19:05:02
132
原创 Linux命令笔记01
/ 根目录/bin 储存系统命令/dev 设备文件/media 多媒体目录 U盘 光驱 共享文件夹/var 储存系统日志/boot 储存与系统相关的文件/etc 储存各种软件的配置文件/lib 储存普通的库文件 .a 静态库 .os 共享库/mnt 与其他系统映射的目录/root 储存着超级管理员才能使用的系统文件/home 用户主目录/opt 安装的应用的软件/run 临时的文件系统/usr 储存头文件.当前目录…上一级目录~用户主目录 cdLinux的目录只能上下
2020-10-10 19:00:43
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人