自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 python爬取图片

首先需要安装pythonimport osimport randomimport requestsimport remy_file = 'D:\Desktop\img'if os.path.exists(my_file): print("文件夹已存在")else: os.mkdir(my_file) print("文件夹不存在,创建文件夹")for count in range(8415, 43930): print("搜索中...") nu

2022-04-17 20:31:29 830

原创 c语言实现通讯录

头文件contact.h#pragma once#define _CRT_SECURE_NO_WARNINGS 1//#define max 1000#define fault 3#define max_name 20#define max_telephone 12#define max_sex 5#define max_address 30#include<stdio.h>#include<string.h>#include<assert.h

2021-09-13 22:25:48 151

原创 C语言程序的编译

编译流程c——>翻译环境(编译(编译器),链接(连接器))——>运行环境——>exe编译包括:一、预编译(删除注释,替换define) 二、编译(把c代码编译成汇编语言) 三、汇编Linux gcc-E test.c链接包括:一、合并段表 二、符号表的合并和符号表的重定位预编译详解预定义符号原先定义好的:__FILE__ 文件元...

2021-09-13 22:20:41 170

原创 C语言——文件

文件操作文件包括:1.程序文件2.数据文件程序文件(.c,.h,.obj,.exe)可以控制数据文件文件类型:1.文本文件(可以看懂)以ASCII字符形式存储2.二进制文件(看不懂)文件缓存区文件指针FILE* PF//文件指针变量定义pf是一个指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息区(是一个结构体变量),通过该文件信息区中的信息就能够访问该文件int main(){ fopen("test.txt", "r");//相对路径写法 return

2021-09-13 21:43:12 84

原创 C语言动态内存

动态内存管理局部变量、函数的形式参数存在于栈区;全局变量、静态变量存在于静态区;动态内存分配存在于堆区。动态内存分配函数介绍mallocint* p = (int*)malloc(10* sizeof(int));//向内存中申请10个整形空间,把地址传给pmalloc返回的是void* 强制转换为int*头文件:#include<stdlib.h>#include<stdlib.h>#include<string.h>#includ.

2021-09-13 21:15:54 77

原创 自定义类型详解:结构体、枚举、联合体

结构体定义:一些不同类型变量的集合。数组:相同类型元素的集合。结构体声明struct tag//sturct 结构体关键字{ member - list;//结构体成员}varible-list;//变量列表代码实操:struct stu{ char name[20]; char tele[12]; char sex[10]; int age;}s4,s5,s6;//全局变量struct stu s3;//全局变量int main(){ struc

2021-09-11 15:50:55 191

原创 C语言有关函数解析

申请空间malloc:向内存申请空间int *p = malloc(10* sizeof(int));向内存申请10个int空间头文件:#include<stdlib.h>释放空间free()

2021-09-03 10:29:36 189

原创 C语言代码练习

1、写一个函数,可以逆序一个字符串的内容。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>void reverse(char* str){ int sz = 0; sz = strlen(str); char* left = str; char* right = str+sz-1; for (; left <= right;) { char temp =

2021-08-31 17:36:12 332

原创 三种方法实现C语言计算器

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void menu(){ printf("****************************\n"); printf("** menu **\n"); printf("**1:加 2:减**\n"); printf("**3:乘 4:除**\n"); printf("** .

2021-08-22 15:44:54 81

原创 以回调函数实现冒牌排序

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int cmp_int(const int *e1,const int *e2){ return *(int*)e1 - *(int*)e2;}void swap(char* buf1,char* buf2,int width){ int i = 0; for (i = 0; i < width; i++) { char tmp = *buf1; *bu.

2021-08-22 15:43:04 87

原创 C语言指针详解(二)

函数指针数组数组是一个存放相同类型数据的存储空间,那要是把函数的地址存放到一个数组中,那这个数组就叫函数指针数组。int (*parr[10])();回调函数通过函数指针调用的函数。qsort——quick sort——库函数——快速排序void(void *base,size_t num,size_t width,int(*cmp)(const void*e1,const void*e2));第一个参数:待排序数组的首元素地址第二个参数:待排序数组的元素个数第三个参数.

2021-08-22 15:42:06 97

原创 C语言指针详解(一)

字符指针char* p = "abcdef";本质不是把abcdef这个字符放到p指针变量里,而是把abcdef首字符的地址放到p中,若被const修饰的类型不能被修改。指针数组用来存放指针的数组int* parr[4];存放整形指针的数组,存放的指针类型都是int*。实例:int main(){ int a = 10; int b = 20; int c = 30; int d = 40; int* arr[4] = { &a,&b,&am

2021-08-20 15:27:49 140

原创 C语言数据的存储

内置类型char short int long float double自定义类型数组类型结构体类型(struct)枚举类型(enum)联合类型(union)指针类型空类型两种数据存储模式大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中(相反)小端(存储)模式:是指数据的低低保存在内存的高地址中,而数据的高位保存在内存的高地址中(相同)指针类型的意义1.指针类型决定了指针解引用操作...

2021-08-18 22:30:25 83

原创 指针、结构体

求一个数的二进制位中有几个1int count_bit_one(int n){ int count = 0; while(n) { n = n & (n-1); count++; } return count;}乘法口诀中的小细节 %3d是C语言中格式化输出字符,代表的意思是指的输出3个字符长度的整数。可以在“%”和字母之间插进数字表示最大场宽。例如:%3d表示输出3位整型数,不够3位右对齐结构体 ...

2021-08-04 23:56:11 147 1

原创 指针相关知识

NULL—用来初始化指针,给指针赋值。指针运算 指针+-整数 指针+-指针:得到的是指针和指针之间的元素个数,必须是指向高地址的指针减去低地址的指针 指针的关系运算:>,<,>=,<=,!=标准规定 允许指向数组元素的指针与指向数组最后一个元素后面那个内存的指针比较,但是一般不允许于指向第一个元素之间的那个内存位置的指针进行比较。数组和指针的关系 数组是可以通过指针来访问的二级指针...

2021-07-30 20:17:16 52

原创 指针的分析

小便签:~ 按位取反操作符数据以补码的形式在内存中存储,打印时是原码。指针(pointer)指针就是一个变量,用于存放地址。形式:*p在32位的机器上,地址是32个0或者1组成二进制序列,那地址就得用4个字节的空间来存储,所以一个指针变量的大小应该是4个字节;在64位的机器上,地址是64个0或者1组成二进制序列,那地址就得用8个字节的空间来存储,所以一个指针变量的大小应该是8个字节;一个字节=8个比特位指针的解引用操作指针类型决定了指针进行解引用操作的时候,能够访问空间的大小...

2021-07-29 22:50:41 321

原创 C语言操作符

->形式:结构体指针 -> 成员名有些表达式的操作数在求值的过程中可能需要转换为其他类型。隐形类型转换1、整形提升(适用于类型字节小于int整型) 整形提升是按照变量的数据类型的符号位来提升的。 整形提升的意义:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度 ,一般就是int的字节长度,同时也是CPU的通用寄存器的长度。 因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为C...

2021-07-28 22:43:17 66

原创 数组和移位操作符

数组名一般是首元素地址以下两种情况例外:①int sz =sizeof(arr)\sizeof(arr[0]);sizeof(数组名)——数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节。②&数组名,数组名代表整个数组,&数组名,取出的是整个数组的地址。移位操作符1、右移操作符①算术右移:右边丢弃,左边补原符号位②逻辑右移:右边丢弃,左边补02、左移操作符左边丢弃,右边补0...

2021-07-27 23:00:29 187

原创 输入一个数统计这个数的二进制中有多少个1

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int num = 0; int count = 0; int i = 0; scanf("%d", &num); for (i = 0; i < 32;i++) { if (1 == ((num>>i) & 1)) { count++; } } printf("%d\n", count);.

2021-07-27 22:31:59 98

原创 C语言实现扫雷

①建项目扫雷②创建头文件game.h#pragma once#include<stdlib.h>#include<time.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define easy_count 10void initboard(char board[ROWS][COLS], int rows, int cols, char set);void displa

2021-07-26 23:14:19 36

原创 C语言实现三子棋

建项目三子棋创建头文件game.h//game.h#define _CRT_SECURE_NO_WARNINGS 1#pragma once#define ROW 3#define COL 3#include<stdlib.h>#include<stdio.h>#include<time.h>//声明函数void initboard(char board[ROW][COL], int row, int col);void display

2021-07-24 23:49:47 45

原创 青蛙跳台阶

一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶,例如: 跳上第一级台阶只有一种跳法:直接跳 1 级即可. 跳上两级台阶,有两种跳法: 每次跳 1 级,跳两次; 或者一次跳 2 级. 问要跳上第 n 级台阶有多少种跳法?#include<stdio.h>int sum(int n){ int a = 1; int b = 1; int c = 1; while(n>=2) { c = a + b; a = b; b = c; n--; } ret

2021-07-20 21:29:09 51

原创 实现数组冒泡排序

#include<stdio.h>void shun(int arr[],int sz){ int i = 0; for (i = 0; i <= sz - 1; i++) { int j = 0; for (j = 0; j <= sz - 2; j++) { if (arr[j] > arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = .

2021-07-20 21:23:34 58

原创 C语言——数组

char arr[]="abcdef";sizeof计算变量、数组、类型所占空间的大小,单位是字节——操作符,例:7个元素——char 7*1=7strlen是求字符串长度的——只能针对字符串求长度——库函数——使用得引头文件[]下标引用操作符数组在内存中是连续存放的二维数组创建int arr[3][4];初始化int arr[3][4]={1,2,3,4,5}...

2021-07-20 21:18:35 62

原创 C语言求斐波那契数列

#include<stdio.h>int su(int n){ int a = 1; int b = 1; int c = 1; while(n>2) { c = a + b; a = b; b=c; n--; } return c; /*if (n <= 2) return 1; else return su(n - 1) + su(n - 2);*/}int main(){ int ret = 0; int n = .

2021-07-19 20:58:03 108

原创 递归实现:编写函数不允许创建临时变量,求字符串的长度

//编写函数不允许创建临时变量,求字符串的长度#include<stdio.h>int my_strlen(char* str){ if (*str != '\0') return 1 + my_strlen(str + 1); else return 0;}int main(){ char arr[] = "abc";//数组传参传过去的不是整个数组而是第一个元素的地址 int len = my_strlen(arr); printf("len = %d\n".

2021-07-17 22:24:38 117

原创 递归实现:接受一个整型值(无符号)按顺序打印它的每一位

#include<stdio.h>void print(int n){ if (n > 9) { print(n / 10); } printf("%d ", n % 10);}int main(){ unsigned int ret = 0; scanf("%d", &ret); print(ret); system("pause"); return 0;}

2021-07-17 22:10:43 66

原创 2021-07-17 函数

函数strcpy 则可以把str1拷贝到str2中char str1[]="sample";char str2[40];strcpy(str2,str1);memset 则可以把arr部分字符更换char arr[]="hello world";memset(arr,'*',5);printf("%s\n",arr);//把arr前5个字符更换成了*,打印出arr为***** world自定义函数自定义函数和库函数一样,都有函数名、返回值类型和函数参数//ret_.

2021-07-17 18:08:36 49

原创 利用调用函数求数组中指定数的下标

#include<stdio.h>#include<stdlib.h>int binary_search (int arr[], int k,int sz){ int left = 0; int right = sz - 1; while(left<=right) { int mid = (left + right) / 2; if (arr[mid]<k) { left = mid + 1; } else if (arr[m.

2021-07-17 16:56:26 219

原创 goto语句

goto 语句的使用格式为: goto 语句标号;其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。loop:goto loop;...

2021-07-16 20:04:34 87

原创 猜数字和关机相结合(可以恶搞老铁)

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>void game(){ //随机生成一个数字 int ret = 0; int guess = 0; ret = rand() % 100 + 1; //printf("%d\n", ret); //猜数字 while (1) { printf("猜数字:>"); scanf("%.

2021-07-16 18:49:09 211

原创 您的电脑将在60秒后关机

#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ int input[20] = { 0 }; loop: printf("您的电脑将在60秒后关机,取消请输入:我是猪\n"); system("shutdown -s -t 60"); scanf("%s", &input); if (strcmp(input, "我是猪")==0) { syst.

2021-07-16 18:27:41 144

原创 c语言实现猜数字游戏

#include<stdio.h>#include<stdlib.h>#include<time.h>void game(){ //随机生成一个数字 int ret = 0; int guess = 0; ret = rand() % 100+1; //printf("%d\n", ret); //猜数字 while (1) { printf("猜数字:>"); scanf("%d", &guess); if (gue..

2021-07-15 23:14:16 189 4

原创 计算1+1/2-1/3+1/4...+1/100

#include<stdio.h>int main(){ int i = 0; double sum = 0.0; int flag = 1; for (i = 1; i <= 100; i++) { sum += flag*1.0 / i;//如果不设计为浮点数则1/2...答案都为0 flag = -flag; } printf("%lf\n", sum);//%lf打印浮点数 system("pause"); return 0;}...

2021-07-15 21:22:42 463

原创 练习9*9乘法口诀表

#include<stdio.h>int main(){ int i = 0; for (i = 1; i <= 9; i++) { int j = 1; for (j = 1; j <= i; j++) { printf("%d*%d=%-2d ", i, j, i*j);//%-2d打印两位数,若不够两位数则左对齐 } printf("\n"); } system("pause"); return 0;}...

2021-07-15 21:14:31 139

原创 c语言循环结构

for循环语句把初始化、判断、调整放在一起;表达形式:for(初始化部分;判断部分;调整部分)①先执行第一部分(初始化部分)的值②再计算第二部分(判断部分)的值,若为真(非0),则进入循环内部,否则,不进入,直接去执行for语句的后续语句③循环语句执行后,再进行第三部分(调整部分),然后转到第二部分重复执行小插曲:x++ 和 ++x 的区别x = 1 a = x++ 计算得:a = 1 x = 2 先给a后x+1x = 1 a = ++x 计算得:...

2021-07-14 23:04:41 57 1

原创 用户登陆简单代码实现

以for循环语句实现用户登陆,登陆密码三次后则退出程序。#define _CRT_SECURE_NO_WARNING 1#include<stdio.h>#include<string.h>int main(){ int n; char password[20] = { 0 }; for (n = 1; n <= 3; n++) { printf("请输入密码:>"); scanf("%s", password); if ( str

2021-07-14 19:49:44 1517

原创 分支和循环

三种基本结构:顺序结构、选择结构、循环结构if语句if语句中,else与离它最近的未匹配的if匹配switch语句switch语句也是一种分支语句,常用于多分支情况,允许嵌套使用。int day = 0;scanf("%d",&day);switch(day)//判断day是几,()中必须是整型,例如:float就不行{case 1: //入口,case后边必须是整型常量表达式,不能是浮点型printf("星期一\n");break//跳出case 2:prin.

2021-07-13 22:44:27 47

原创 2021-07-13 初始语言

指针int a = 10;int* p = &a;//p是指针变量,int*为p的类型,*是解引用操作符\间接访问操作符*p = 20;//这样可以间接改变a的值,使a原本=10变为20printf("%d\n,sizeof(p)");//sizeof查p占了多少字节空间,这里和p没有关系,与机器有关,32位机器则占4个字节,64位则占8个字节结构体在C语言中,可以使用 结构体(Struct) 来存放一组不同类型的数据。 结构体的定义形式为: 结构体是一种集合,它里面包含了多个变

2021-07-13 22:14:08 55

原创 2021-07-12 胡乱成章

①~按二进制取反②负数在内存中以二进制的补码存储③打印时是这个数的原码11111111111111111111111111111111 补码 11111111111111111111111111111110 反码=补码-1 10000000000000000000000000000001 原码=反码取反 ...

2021-07-12 23:23:33 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除