C 语言学习
C语言学习过程中基础且经典的题目
殇&璃
这个作者很懒,什么都没留下…
展开
-
1. 输出规定的*“图形 2. 输出 0 - 999 的水仙花数
1.在屏幕上输出以下图案:************** *** *#include<stdio.h>#include<stdlib.h>//这里我直接用函数写一个输出 * 的代码,用函数可以简化主函数中循环部分的代码语句,用起来还是很香的~~~void output(int n) { for (int i = 1; i <...原创 2020-10-22 09:31:54 · 133 阅读 · 0 评论 -
数组形式的整数加法
void reverse(int* arr, int left, int right) { while (left < right) { int tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left++; right--; ...原创 2020-04-01 11:53:19 · 155 阅读 · 0 评论 -
旋转数组
void reverse(int* nums, int left, int right) { while (left < right) { int tmp = nums[left]; nums[left] = nums[right]; nums[right] = tmp; left++; right--;...原创 2020-04-01 09:20:05 · 75 阅读 · 0 评论 -
通讯录3(可文件存取)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//创建一个结构体变量, 包含所需信息typedef struct PersonInfo { char name[1024]; char sex[20]; char age[10...原创 2020-03-28 09:36:55 · 169 阅读 · 0 评论 -
模拟实现 strncpy
#include <stdio.h>#include <stdlib.h>#include <assert.h>char* Strncpy(char* dest, const char* src, size_t num) { assert(dest != NULL && src != NULL); char* ret = dest; ...原创 2020-03-22 18:50:41 · 62 阅读 · 0 评论 -
模拟实现 strncat
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <string.h>char* Strncat(char* dest, const char* src, size_t num) { asser...原创 2020-03-22 18:39:34 · 126 阅读 · 0 评论 -
通讯录2 (动态 , 可扩容)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//创建一个结构体变量, 包含所需信息typedef struct PersonInfo { char name[1024]; char sex[20]; char age[10...原创 2020-03-22 18:09:35 · 124 阅读 · 0 评论 -
找单身狗问题
#include<stdio.h>#include<stdlib.h>//一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。//编写一个函数找出这两个只出现一次的数字。//注意这里是要找两个出现一次的数字//首先回顾一下怎么找一个出现一次的数字//我们采用 把所有数字异或在一起 的方法 最终异或得到的结果就是那个出现一次的数字//原理就是 相同...原创 2020-03-22 18:07:30 · 155 阅读 · 0 评论 -
模拟实现 atoi
#include<stdio.h>#include<stdlib.h>#include <ctype.h>int Myatoi(const char* str) { //把字符串char 转成 数字int if (str == NULL || *str == '\0') { return 0; } int flag = 1; //辅助处理负...原创 2020-03-22 18:06:46 · 61 阅读 · 0 评论 -
通讯录 (C语言)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>//创建一个结构体变量, 包含所需信息typedef struct PersonInfo { char name[1024]; char sex[20]; char age[1...原创 2020-03-21 08:06:24 · 162 阅读 · 0 评论 -
模拟实现memmove
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>//memmove 和 memcpy 的区别在于 遇到内存重叠的问题时 memcpy无法正确拷贝//这时就用到memmove 解决void* Memmove(void* dest, void* ...原创 2020-03-15 09:56:57 · 80 阅读 · 0 评论 -
模拟实现memcpy
#include<stdio.h>#include<stdlib.h>#include<assert.h>void* Memcpy(void* dest, void* src, size_t num) { assert(dest != NULL && src != NULL); for (size_t i = 0; i < n...原创 2020-03-15 09:22:39 · 67 阅读 · 0 评论 -
模拟实现strstr
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>char* Strstr(const char* str1, const char* str2) { assert(str1 != NULL && str2 != NULL); ...原创 2020-03-15 09:06:08 · 76 阅读 · 0 评论 -
模拟实现strcmp
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>// assert 叫做 "断言" . ( ) 的条件必须要成立, 否则程序就直接崩溃int Strcmp(const char* str1, const char* str2) { assert...原创 2020-03-11 13:34:02 · 121 阅读 · 0 评论 -
指针相关笔试题解析(详解)
在这之前让我们科普一关于指针加减整数的规则, 以免下面看起来懵逼如果下面你怀疑了人生, 那一定上来看看这个好了那我们就开始吧…这次一共有八个问题// 问题 1 int a[5] = { 1, 2, 3, 4, 5 }; // ptr 的指向应该是 5 后面的一个元素. // &a 得到的是 int(*)[5] int* ptr = (int*)(&a + 1);...原创 2020-03-11 11:12:54 · 217 阅读 · 0 评论 -
模拟实现strcat
#include<stdio.h>#include<stdlib.h>#include<string.h>char* Strcat1(char* dest, const char* src) { //指针实现 if (dest == NULL || src == NULL) { return NULL; } //记录指针开始时位置, 最后返...原创 2020-03-09 11:10:47 · 84 阅读 · 0 评论 -
模拟实现strcpy
#include<stdio.h>#include<stdlib.h>#include<string.h>char* Strcpy1(char* dest, const char* src) { //指针实现 if (dest == NULL || src == NULL) { return NULL; } //记录此时dest 指向...原创 2020-03-09 10:41:02 · 86 阅读 · 0 评论 -
模拟实现strlen
#include<stdio.h>#include<stdlib.h>int Strlen(const char* str) { if (str == NULL) { return NULL; } int size = 0; while (*str != '\0') { size++; str++; } return size;}int...原创 2020-03-09 10:28:07 · 75 阅读 · 0 评论 -
指针常见面试题1 (针对不同类型数据的 strlen 和 sizeof)
#include<stdio.h>#include<stdlib.h>#include<string.h>int main() {// 常见笔试题面试题(32位系统为例)// 第一组 int arr1[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(arr)); // 16 这里就是计算整个数组arr的字...原创 2020-03-09 09:41:51 · 194 阅读 · 0 评论 -
练习使用库函数,qsort排序各种类型的数据
#include<stdio.h>#include<stdlib.h>#include<string.h>int cmp(const void* p1, const void* p2) { //整型 return *((int*)p1) - *((int*)p2);}int cmp2(const void* p1, const void* p...原创 2020-03-06 18:03:22 · 547 阅读 · 0 评论 -
模仿qsort的功能实现一个通用的冒泡排序(有注释版)
#include<stdio.h>#include<stdlib.h>int cmp(const void* p1, const void* p2, int size) {//这波主要是判断是int类型 还算是char类型//这里的意思其实就是前一个元素的值减后一个元素 if (size == 4) { return (*(int*)p1 - *(int...原创 2020-03-06 17:25:17 · 108 阅读 · 0 评论 -
字符串旋转结果
写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 =AABCD和s2 = BCDAA,返回1给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC#include<stdio.h>#include<stdlib.h>#inclu...原创 2020-03-03 22:21:07 · 450 阅读 · 2 评论 -
字符串左旋
实现一个函数,可以左旋字符串中的k个字符。例如:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>void softRotate(char arr[], int n...原创 2020-03-03 22:18:40 · 72 阅读 · 0 评论 -
杨氏矩阵
有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int Youngtableau(int arr[3][3], int tofind) { int i = 2; i...原创 2020-03-03 22:16:36 · 81 阅读 · 0 评论 -
冒泡排序(重要)
#include <stdio.h>#include <stdlib.h>void BubbleSort(int* arr, int len) { //冒泡排序法 for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - 1 - i; j++) { if (arr[j] >...原创 2019-12-18 10:37:50 · 112 阅读 · 0 评论 -
指针输出数组
#include <stdio.h>#include <stdlib.h>int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int* p = arr; int len = sizeof(arr) / sizeof(arr[0]) - 1; //printf("%d", len); for ...原创 2019-12-18 10:35:32 · 230 阅读 · 0 评论 -
0 - 100000000之间的阿姆斯特朗数
0 - 100000000之间的阿姆斯特朗数 int main() { int i; int addflag = 10; int n = 1; int sum = 0, j;for (i = 1; i < 100000000; i++) { ...原创 2019-12-18 10:32:52 · 344 阅读 · 0 评论 -
单词逆序
#include <stdio.h>#include <stdlib.h>//算法: 想要实现单词逆序, 可以先把他的每一个单词逆序, 最后再把整个字符串逆序即可//例如: I am not caixukun// I ma ton nukuxiac // caixukun not am I 奈斯!!!void reverseW...原创 2019-12-08 22:45:03 · 956 阅读 · 0 评论 -
杨辉三角
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void printHY(int n) { int arr[20][20] = { 0 }; for (int i = 0; i < n; i++) { //每行开始第一个数字都是1 arr[i][0] = 1; ...原创 2019-12-04 00:43:23 · 123 阅读 · 0 评论 -
逻辑判断题
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include <stdio.h>#include <stdlib.h>int Isdiff(int a,...原创 2019-12-03 23:59:09 · 278 阅读 · 0 评论 -
三子棋
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>int Manu() { printf("==============\n"); printf("欢迎来到三子棋游戏!\n"); p...原创 2019-11-29 21:25:50 · 88 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
递归方式实现打印一个整数的每一位#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void print(int num) { if (num > 9) { print(num / 10); } printf("%d ", num % 10);}int ma...原创 2019-11-19 21:54:50 · 71 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
递归和非递归分别实现求n的阶乘#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int factor1(int n) { //递归写法 if (n == 1) { return 1; } return n * factor1(n - 1);}int factor...原创 2019-11-19 21:43:49 · 198 阅读 · 0 评论 -
递归和非递归分别实现strlen
递归和非递归分别实现strlen#include<stdio.h>#include<stdlib.h>int Strlen1(char* str) { //递归写法 if (str[0] == '\0') { return 0; } return 1 + Strlen1(str + 1);}int Strlen2(char* str,int l...原创 2019-11-19 21:23:04 · 63 阅读 · 0 评论 -
将参数字符串中的字符反向排列
编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。#include<stdio.h>#include<stdlib.h>char reverse_string(char* string,int len) { printf("%c", string[...原创 2019-11-19 20:57:56 · 130 阅读 · 1 评论 -
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int DigitSum(int n) { if (n <= 9)...原创 2019-11-19 20:26:36 · 118 阅读 · 0 评论 -
编写一个函数实现n^k,使用递归实现
编写一个函数实现n^k,使用递归实现#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int power0(int n, int k) { //非递归写法 int num = 1; for (int i = 1; i <= k; i++) { num *= n; ...原创 2019-11-19 20:03:05 · 126 阅读 · 0 评论 -
斐波那契数
递归和非递归分别实现求第n个斐波那契数。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int Fibnumber2(int n) { //采用递归的方法 if (n == 1) { return 1; } if (n == 2) { return 1; } ...原创 2019-11-19 19:37:10 · 88 阅读 · 0 评论 -
git安装和github注册
git 的安装先安装git for windows安装过程一路next之后安装git安装过程也很简单安装完成即可github 的注册进入 github 网站, 映入眼帘的就是创建一个新的账号输入自己的信息后进行注册注册完成后要创建一个库创建完就可以上传自己的文件啦...原创 2019-11-19 18:55:15 · 121 阅读 · 0 评论 -
函数相关习题 数组相关
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void putmul(int n) { for (int i = 1; i <= n; i++) {...原创 2019-11-16 12:35:04 · 121 阅读 · 0 评论