
C语言
雨连绵花满楼
顺其自然
展开
-
Qt实现图书管理系统(C++)
Qt实现图书管理系统原创 2023-09-07 17:30:38 · 7770 阅读 · 4 评论 -
一篇让你弄明白C语言指针传参和数组传参~
🎉欢迎关注🔎点赞👍收藏⭐️留言📝 > 🎉推荐up主专题文章【[C语言编程一百题](http://t.csdn.cn/2qJyS)】 > 📌QQ:3052645092 有问题可以一起讨论哦> 🍭作者水平很有限,如果发现错误,请及时告知作者哦!感谢感谢!**............原创 2022-07-11 15:09:23 · 1622 阅读 · 40 评论 -
C语言指针面试题详解
C语言指针面试题原创 2022-07-05 17:19:59 · 1786 阅读 · 68 评论 -
C语言 100道经典编程题适用于专升本,专接本【详细分析版】
本篇涵盖C语言100道常见的编程题,适用于“专接本,专升本,考研,期中期末考试”,每道题都是亲自手动打出来的,也在编译器上测试过,每道题都有相关的详细注释,如有发现错误,欢迎评论区指正。对于零基础伙伴或者没咋做过编程题的小伙伴真心希望将这篇文章的每道题至少【做三遍】...............原创 2022-06-19 18:37:42 · 47824 阅读 · 102 评论 -
2022-03-02----C编程题
文章目录C编程题第1题:功能: 输入两个整数, 求他们的按位与。第2题:功能: 有 n 个整数, 使其前面各数顺序向后移 m 个位置, 最后 m 个数变成最前面的 m 个数第3题:功能: seek()函数: 判断是否有不合格成绩;形参: 1 个, 指向由 3 个 int 型元素组成的 1 维数组的行指针变量返回值:(1)有不合格成绩, 则返回指向本行首列的一个(列)指针;(2)没有有不合格成绩, 返回值为指向下一行的一个(列)指针第4题:功能: 输入一个学生的生日(年: y0、 月: m0、 日: d0),原创 2022-03-02 10:55:58 · 1483 阅读 · 0 评论 -
吐血详解~C进阶程序环境与预处理!!!淦淦淦~
文章目录程序的环境与预处理程序的翻译环境与运行环境编译与链接预处理详解预处理符号#define#define 定义宏(偏爱括号的宏宏)程序的环境与预处理程序的翻译环境与运行环境翻译环境就是把源代码转换为可执行的机器指令运行环境实际用于执行的代码编译与链接编译就是把各个源文件经过编译器生成目标文件在用链接器生成可执行文件看主要的步骤:1.组成一个程序的每个源文件通过编译过程分别转换成目标代码(object code)。2.每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整原创 2021-10-08 10:50:34 · 240 阅读 · 3 评论 -
零基础学习联合体,枚举,位段!!!
文章目录位段什么是位段?位段的跨平台问题位段什么是位段?位段的声明和结构是类似的,有两个不同:**1.位段的成员必须是 int、unsigned int 或signed int,char2.位段的成员名后边有一个冒号和一个数字 **比如struct str{ //一看是int开辟四个字节 int a : 2;//开辟2个比特位的空间 int b : 5;//开辟5个比特位的空间 int c : 10;//开辟10个比特位的空间 //17个了 再+30个比特位就超了4个字节了,所以再给原创 2021-10-02 12:53:32 · 120 阅读 · 0 评论 -
C语言进阶~动态内存管理!!!
为什么会存在动态内存管理呢?我们经常使用的是:#include<stdio.h>int main(){int i = 0;char arr[10] = { 0 };return 0;}1.这两种情况是在栈上开辟的2.数组在声明之前必须指定长度,他所需的的内存在编译的时候分配2。有时候我们在使用数组之前不知道,要用多大的空间,以上这种方法就不能满足了动态内存函数的介绍malloc和free介绍这个函数是向内存申请一块连续的内存空间并且返回这块空间起始的指针1.如原创 2021-09-28 13:20:53 · 271 阅读 · 2 评论 -
深度刨析结构体面试题!!!
文章目录前言结构体在内存是如何对其的呢?面试题1详解:面试题2详解:面试题3详解:面试题4详解:为什么存在内存对齐?前言接下来讲一讲C语言很火的话题,也是面试中必考的题目:结构体的内存对齐,每道题都配有图解!!! 快快收藏啦!结构体在内存是如何对其的呢?**1. 第一个成员在与结构体变量偏移量为0的地址处。2. 其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。对齐数 = 编译器默认的一个对齐数 与 该成员大小的较小值。VS中默认对其数是 83. 结构体总大小为最大对齐数(每个成员变原创 2021-09-23 12:44:55 · 546 阅读 · 1 评论 -
一张图让你明白结构体传地址好还是传结构体好!!!
原创 2021-09-23 09:28:33 · 173 阅读 · 2 评论 -
C语言字符函数与字符串函数就该这样学!!!
*C语言字符函数与字符串函数,从0到深入,使用到模拟生成这一篇就够了!!!前言**本篇介绍字符函数和字符串函数,从0到精通,如何引用到如何模拟实现。在C语言中,经常对字符串进行操作,所以很多库函数我们直接调用即可,但是如果想要深入了解C语言,我们要知道他的原理是怎样实现的,别怕我来也!**一,C语言中有字符串类型吗?**- 答案:是没有的,字符串通常放在字符串常量和字符串数组中; 字符串常量:是不能改变的你看这个字符串,只是把字串首字母的地址存到了p中,用字符串拷贝函数,把str拷贝到p中原创 2021-09-21 20:58:26 · 383 阅读 · 9 评论 -
C语言指针——你必须明白的几个指针!!!
今天来讲讲 *p , (*p)++,*p++,*(p++),++*p#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int arr[5] = { 1, 2, 3, 4, 5 }; int *p = arr; printf("%d\n", *p); printf("%d\n", *(p++)); printf("%d\n", *p++); printf("%d\n", (*p)++); p...原创 2021-09-16 10:10:57 · 310 阅读 · 6 评论 -
C语言——很有意思的一道编程题~左旋字符
题目要求:字符串左旋实现一个函数,可以左旋字符中的K个字符例如:ABCD左旋一个字符变成BCDAABCD左旋两个字符变成CDAB方法1:实现思路:#include<string.h>#include<stdio.h>void left_move(char *str, int k){ int i = 0; int len = strlen(str);//求字符串长度 for (i = 0; i < k; i++){ int j =.原创 2021-09-14 21:27:43 · 308 阅读 · 2 评论 -
指针编程题之杨氏矩阵
杨氏矩阵题目内容有一个数字矩阵,矩阵的每一行从左到右是递增的,矩阵从上到下是递增的请编写程序在这样的矩阵中查找某个数字是否存在要求:时间复杂度小于O(N);//1 2 3//4 5 6//7 8 9 这个就是杨氏矩阵//如果我们找7咋找,直接遍历这个数组看代码:#include<stdio.h>int main(){ int arr[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = 0; for (i =...原创 2021-09-13 21:13:06 · 125 阅读 · 3 评论 -
C语言指针就该这样学
数组名的意义: sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。 &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 除此之外所有的数组名都表示首元素的地址。 //一维数组 //int a[] = { 1, 2, 3, 4 }; //printf("%d\n", sizeof(a));//16 sizeof(数组名)计算的是整个数组的大小 //printf("%d\n", sizeof(a ......原创 2021-09-12 11:46:21 · 2821 阅读 · 15 评论 -
qsort函数的引用及模拟实现
第四个参数是函数指针,存放了一个函数,让用户自己设计,因为人家也不知道你排序的类型是啥你看下面#include<stdlib.h>void print_sort(int arr[], int sz){ int i = 0; for (i = 0; i < sz; i++){ printf("%d ", arr[i]); } printf("\n");}int cmp(void* e1, void* e2){ //无具体类型的指针,因为你传过来的指针也不知道..原创 2021-09-09 14:14:52 · 128 阅读 · 1 评论 -
利用qsort函数排序结构体
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<string.h>struct stu{ char name[20]; int age;};int sort_by_age(const void* e1, const void* e2){ return ((struct stu*)e1)->age - ((struct stu*)e2)->.原创 2021-09-07 09:27:09 · 163 阅读 · 0 评论 -
C语言——回调函数
首先我们先看一段代码:模拟计算器#include<stdio.h>void menu(){ printf("******************************\n"); printf("**** 1.add 2.sub ****\n"); printf("**** 3.mul 4.div ****\n"); printf("******* 0.exit ********\n"); printf("**********.原创 2021-09-05 11:58:49 · 330 阅读 · 0 评论 -
C语言——用函数指针数组实现模拟计算器
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void menu(){ printf("***************************\n"); printf("**** 1.add 2.sub ****\n"); printf("**** 3.mul 4.div ****\n"); printf("**** 0.exit ****\n"); printf("******.原创 2021-09-05 09:37:51 · 357 阅读 · 0 评论 -
2021-09-04,一段很有意思的函数指针代码
void (*signal(int, void(*)()))(int)//1.siignal先和()结合说明是一个函数//2.signal是一个函数有两个参数,第一个是int,第二是函数指针,该函数指针指向的参数类型是int,返回类型是void//3.把signal(int, void(*)())去掉,剩下的是void (*)(int)函数指针,所以signal的返回类型也是一个函数指针// 参数是int,返回类型是voidvoid (*signal(int, void(*)()))..原创 2021-09-04 11:33:14 · 124 阅读 · 0 评论 -
9.4 函数指针的创建与使用
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int add(int x, int y){ return x + y;}int main(){ //int ret = add(3, 5); //int(*ptr)(int, int) = &add;//把函数的地址给函数指针,函数指针的参数是int,返回类型是int //int ret = (*ptr)(5, 3);//用函数指针来调用函数 int(*ptr)(.原创 2021-09-04 10:24:59 · 248 阅读 · 0 评论 -
17题,考察大小端
原创 2021-09-02 16:17:10 · 106 阅读 · 0 评论 -
第13题,static修饰的变量类型题目很典型
#include<stdio.h>int square(int i){ return i*i;}int main(){ int i = 0; i = square(i); for (; i < 3; i++){ static int i = 1;//static修饰的变量,生命周期变长,在这个循环中只是初始化一次,这一点一定要记清 i = i + square(i); printf("%d,", i); } printf("%d\n", i);//这个i是外.原创 2021-08-29 18:25:25 · 2260 阅读 · 0 评论 -
C语言——函数指针的传参
//int main(){// int a = 3;// int b = 5;// //printf("%d",(add(a, b)));// int (*p)(int,int) = add;// //(*p)是一个指针存放函数的地址,指向了一个函数参数是int// printf("%d",((*p)(5, 10)));//// return 0;//}void test(char *ch){ printf("%s", ch);}int main(){ void(*p)(cha.原创 2021-08-23 08:05:26 · 592 阅读 · 0 评论 -
数组指针的几种等价形式
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void print(int(*arr)[5], int row, int col){ int i = 0; int j = 0; for (i = 0; i < row; i++){ for (j = 0; j < col; j++){ //printf("%d ", *(*(arr + i) + j)); //*(arr+i)是指向了二维数组的第一行,再.原创 2021-08-22 09:13:35 · 375 阅读 · 0 评论 -
C语言--指针数组的引用,指针数组主语是数组,故存放指针的数组
#include<stdio.h>int main(){ int arr1[] = { 1, 2, 3, 4 }; int arr2[] = { 2, 3, 4, 5 }; int arr3[] = { 3, 4, 5, 6}; int *arr[] = { arr1, arr2, arr3 }; int i = 0; for (i = 0; i < 3; i++){ int j = 0; for (j = 0; j < 4; j++){ printf(.原创 2021-08-19 10:20:34 · 108 阅读 · 0 评论 -
8.16 C语言编程题——多组输入大写转小写
#include<stdio.h>int main(){ int ch = 0;//EOF文件结束标志;让循环停下来 while ((ch = getchar()) != EOF){ putchar(ch + 32); printf("\n"); getchar(); }}原创 2021-08-16 11:03:15 · 208 阅读 · 0 评论 -
C语言——有符号数是如何再内存存放的
原创 2021-08-16 08:45:14 · 530 阅读 · 0 评论 -
C语言编程题————写一段代码判断当前机子的字节序是大端还是小端字节序;
#include<stdio.h>//int check_sys(){// int a = 1;// char* p = (char*)&a;// if (*p == 1)// return 1;// else return 0;//}int check_sys(){ int a = 1; return *(char*)&a;//返回1是小端,返回0是大端; //因为a是整形要强制类型转换变成字符型,就返回一个字节,从而判断;}int main(){.原创 2021-08-15 10:17:16 · 310 阅读 · 0 评论 -
8.14 C语言编程题————求1!+2!+3!+4!.....+N!
#include<stdio.h>int main(){ int n = 0; int sum = 0;//累加器 int i = 0;//外循环变量控制这一次求的谁的阶乘 int j = 0;//内循环变量求i的阶乘 scanf("%d", &n); for (i = 1; i <= n; i++){ int ret = 1; for (j = 1; j <= i; j++){ ret = ret*j; }sum += ret;//求完一次.原创 2021-08-14 08:35:56 · 1910 阅读 · 1 评论 -
C语言编程题————函数实现模拟字符串拷贝函数
void my_strcpy(char* arr1, char* arr2){ while (*arr2 != '\0'){ *arr1 = *arr2; //把*arr2指向的第一个元素给*arr2指向的第一个元素 *arr1++; *arr2++; } *arr1 = *arr2;//里面循环遇到'\0'就停了,所以在外面把'\0'再赋給*arr1;}int main(){ char arr1[] = "*************"; char arr2[] =.原创 2021-08-13 11:51:26 · 221 阅读 · 0 评论 -
C语言编程题————求斐波那契数(循环法与递归法)
#include<stdio.h>int feibo(int n){ if (n<=2) return 1; return feibo(n - 1) + feibo(n - 2); //如果求5的非数,就要知道4和3的非数,要求4的非数就要知道3和2的 //如此递归下去效率极低}int main(){ int n = 0; scanf("%d", &n); int ret = feibo(n); printf("%d", ret); return 0;.原创 2021-08-09 11:25:35 · 223 阅读 · 0 评论 -
C语言编程————输入n,k求n的k次幂(用递归的方法)
#include<stdio.h>double kn(int n, int k){ if (k < 0){ return (1.0 / (kn(n, -k)));//考虑是负数的情况 //主要理解 n*n的k-1次幂 } else if (k == 0){ return 1; } else return n*kn(n, k - 1);}int main(){ int n = 0; int k = 0; scanf("%d", &n); s.原创 2021-08-08 22:41:34 · 824 阅读 · 0 评论 -
C语言编程实现————用函数实现输入一个数,把他的每一位相加在输出出来;如1234 1+2+3+4=10
#include<stdio.h>int digit(int n){ if (n > 9){ return digit(n / 10) + n % 10;//递归 } else return 1;}int main(){ int n = 0; scanf("%d", &n); int ret = digit(n); printf("%d", ret); return 0;}digit(1234/10)+1234%10digit(123/.原创 2021-08-08 22:03:34 · 1115 阅读 · 0 评论 -
C语言编程题,实现函数把字符数组的元素逆序 如“abc“,逆序成“cba“.
方法一:#include<stdio.h>void reverse_string(char* string,int sz){ char* left = &string[0]; char* right = &string[9]; int i = 0; for (i = 0; i <sz/2; i++){ int tmp = 0; tmp = *left;//因为数组[]中不能是变量,我们用指针的方法,让左边最最小元素 //赋原创 2021-08-08 21:30:14 · 1589 阅读 · 0 评论 -
C语言编成实现————函数递归模拟strlen求字符串长度
首先明白一点strlen遇见‘\0’就不向后数了#include<stdio.h>int my_strlen(char *str){ if(*str!='\0'){ return 1+my_strlen(str+1); //递归 } else return 0;}int main(){ char arr[]="bitw"; int len=my_strlen(arr); printf("len=%d",len);}...原创 2021-08-08 15:14:19 · 265 阅读 · 0 评论 -
C语言编程题————递归拆分整数
#include<stdio.h>void print(int n){ if(n>9){ print(n/10); } printf("%d ",n%10);}int main(){ int num=0; scanf("%d",&num); print(num);}原创 2021-08-08 14:57:03 · 1044 阅读 · 0 评论 -
C语言编程题————设计以函数打印乘法口诀表,输入9,是99乘法表,输入8是88乘法表
#include<stdio.h>void print(int n){ int i = 0; for (i = 0; i <= n; i++){ int j = 0; for (j = 0; j <= i; j++){ printf("%d*%d=%d ", i, j, i*j); }printf("\n"); }}int main(){ int n = 0; scanf("%d", &n); print(n); return 0;}.原创 2021-08-08 11:03:40 · 201 阅读 · 0 评论 -
C语言编程题————构造一函数判断是否为素数100-200之间(只能被自己和1整除的数)
#include<stdio.h>void print(){ int i = 0; int n = 100; //偶数肯定不是呀,把偶数去掉 for (n = 101; n<= 200; n += 2){ for (i = 2; i < n; i++){ if (n%i == 0)break; } if (n >= i)printf("%d ", n); }}int main(){ //int n = 100; printf("输..原创 2021-08-08 10:35:38 · 141 阅读 · 0 评论 -
C语言编程题————用指针打印数组,做一个打印函数
#include<stdio.h>void print(int* p,int sz){ int i = 0; for (i = 0; i < sz; i++){ printf("%d ", *(p+i)); }}int main(){ int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int sz = sizeof(arr) / sizeof(arr[0]); print(arr,sz); return 0;.原创 2021-08-08 10:07:43 · 198 阅读 · 0 评论