![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 66
ZoctopusD
*——*
展开
-
关于C的小程序-2
1.给定两个整形变量的值,将两个值的内容进行交换。#include int main(){int a = 30;int b = 20;int *p1 = &a;int *p2 = &b;int temp;temp = *p1;*p1 = *p2;*p2 = temp;a = *p1;b = *p2;printf("a=%d b=%d", a,原创 2017-03-19 14:44:08 · 439 阅读 · 0 评论 -
C语言中关于数组的运算
1.一维数组int main(){ int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a)); //16 a在这里是代表整个数组 printf("%d\n", sizeof(a+0)); //4 a在这里代表首元素地址 printf("%d\n", sizeof(*a)); //4 a在这里代表首元素地址,对地址解引用为首元素原创 2017-04-02 22:43:06 · 1137 阅读 · 0 评论 -
C语言实现小游戏---三子棋
game.h头文件内容#ifndef __GAME_H__#define __GAME_H__#include #include #include #define ROWS 3#define COLS 3void init_board(char board[ROWS][COLS], int row, int col);void display_board(char bo原创 2017-04-03 22:39:39 · 428 阅读 · 0 评论 -
C语言中函数的调用与栈帧
概念栈帧:栈帧在函数中用于声明局部变量,保存函数参数,保存函数返回地址等。EBP 寄存器又叫栈帧寄存器(作用通过EBP寄存器访问保存在栈中的局部变量,函数参数,函数返回地址等)栈帧对应的汇编代码如下:push ebpmov ebp,esp...mov esp,ebppop ebpRETN原理:首先将EBP寄存器中的值进栈将ESP的值赋值给EBP接下来无论是访问局原创 2017-04-20 15:53:21 · 1409 阅读 · 0 评论 -
C语言--判断一个字符串是否为另一个字符串的旋转
判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC旋转包括左旋右旋两种情况#define _CRT_SECURE_NO_WARNINGS 1#includ原创 2017-04-20 15:36:42 · 807 阅读 · 0 评论 -
C语言下的qsort函数
qsort是编译器自带的快速排序函数函数原型为void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));参数含义为:void*base----void*接受任何类型的地址,传入要排序的数组地址 size_t num----size_t原创 2017-05-12 20:35:02 · 445 阅读 · 0 评论 -
模拟实现qsort函数
模仿qsort的功能实现一个通用的冒泡排序int cmp(const void*n1, const void*n2) //判断n1,n2元素大小,n1比n2大返回正数;小返回负数,相同返回0{ return *(char*)n1 - *(char*)n2; //升序}void Swap(char *buf1, char*原创 2017-05-12 22:42:28 · 410 阅读 · 0 评论 -
模拟实现C库函数strncpy、strncat、strncmp
1.模拟实现strncpychar *my_strncpy(char *dest, const char* str, int count){ assert(dest != NULL); assert(str != NULL); char *ret = dest; while (count && (*dest++ = *str++)) { count--; } if (cou原创 2017-05-13 16:54:22 · 422 阅读 · 0 评论 -
模拟实现C库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
1、模拟实现strcpychar *my_strcpy( char *dest, const char *str){ assert(dest != NULL); assert(str != NULL); while (*dest++=*str++) { ; } return dest;}int main(){ char p[20]; char *p1 = "worl原创 2017-05-06 14:16:59 · 607 阅读 · 0 评论 -
C语言---使用main函数的参数,实现一个整数计算器
使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。例如:在cmd窗口输入test.exe -a 1 2 执行1+2输出3#define _CRT_SECURE_NO_WARNINGS 1#include#include#includein原创 2017-04-24 20:32:34 · 861 阅读 · 0 评论 -
C语言---冒泡排序排序多个字符串
strcmp函数原型:extern int strcmp(const char *s1, const char * s2);用法:#include 功能:比较字符串s1和s2。一般形式:strcmp(字符串1,字符串2)说明:当s1当s1 = s2时,返回值 = 0当s1>s2时,返回值>0即:两个字符串自左向右逐个字符相比(按A原创 2017-04-25 21:29:12 · 1183 阅读 · 1 评论 -
C语言---静态内存结构体实现通讯录
contact.h#pragma once#include#include#include#define NAME_MAX 20#define SEX_MAX 5#define TELE_MAX 20#define ADDR_MAX 30#define MAX 1000typedef struct PeoInfo{ char name[NAME_MAX]; int原创 2017-05-17 22:34:08 · 601 阅读 · 0 评论 -
C语言下的静态顺序表
静态顺序表的实现seqlist.h#define _CRT_SECURE_NO_WARNINGS 1#pragma once#include#include#include#includetypedef int DataType;#define MAX 100typedef struct Seqlist //定义顺序表结构{ DataType原创 2017-05-30 21:40:12 · 277 阅读 · 0 评论 -
C语言的单链表面试题----进阶
题目判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算每个算法的时间复杂度&空间复杂度。判断两个链表是否相交,若相交,求交点。(假设链表不带环)判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】求带环链表环长(无环返回 -1)思路快慢指针法,快指针一次走两步,慢指针一次走一步,如果链表带环,则从慢指针到达入口点开始,由于快慢指针都原创 2017-06-13 21:17:03 · 427 阅读 · 0 评论 -
C语言实现无头节点的单链表
测试代码singlelinkedlist.h头文件#ifndef __SINGLELINKEDLIST_H__#include#include#includetypedef int DataType;typedef struct ListNode{ DataType data; struct ListNode *next;}ListNode;Lis原创 2017-06-13 21:26:20 · 768 阅读 · 0 评论 -
C语言中的冒泡排序法
void maopao(int *p, int sz){ int i = 0; int j = 0; for (i = 0; i < sz - 1; i++) { for (j = 0; j<sz - 1 - i; j++) { if (p[j]>p[j + 1]) { int temp = p[j]; p[j] = p[j + 1]; p[j原创 2017-04-02 21:57:20 · 385 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include int main(){ int a = 1; int b = 1; int c = 1; in原创 2017-03-31 22:17:30 · 337 阅读 · 0 评论 -
关于C的小程序-4
1.编写代码模拟三次密码输入的场景#include #includeint main(){char passwd[10] = { 0 };int i = 0;char arr[] = "123456";for (i = 0; i {printf("请输入密码:");scanf_s("%s", passwd);if (strcmp(passwd,arr原创 2017-03-24 16:46:23 · 258 阅读 · 0 评论 -
关于C的小程序-1
1.打印100-200之间的素数#include int main(){int n; int m;for (n = 1; n {for (m = 1; m {printf(" %d*%d=%d ", n, m, n*m);}printf("\n");}system("pause");return 0;}2.输出乘法口诀表原创 2017-03-19 14:38:41 · 354 阅读 · 0 评论 -
创建一个数组,实现数组的初始化,清空以及逆置
#includevoid init(int arr[], int len) //初始化数组 { int i = 0; int input = 0; printf("请输入%d个数进行初始化数组:\n", len); for (i = 0; i < len; i++) { scanf("%d", &input); arr[i] = input; } printf("原创 2017-04-08 21:53:02 · 490 阅读 · 0 评论 -
C语言-使用函数实现两个数的交换
void change_math(int *px, int *py){ int temp = 0; temp = *px; *px = *py; *py = temp;}int main(){ int x = 0; int y = 0; printf("请输入两个数:"); scanf("%d %d", &x, &y); int *px = &x; int *py =原创 2017-04-08 21:55:01 · 889 阅读 · 0 评论 -
C语言实现小游戏--扫雷
game.h 游戏头文件 #define _CRT_SECURE_NO_WARNINGS 1#ifndef __GAME_H__#define __GAME_H__#include#include#include#include#define ROWS 12 //定义行#define COLS 12 //定义列#de原创 2017-04-09 22:54:09 · 492 阅读 · 0 评论 -
关于C的小程序-3
1.将数组A与数组B的内容交换(数组大小一样)#include int main(){int arr1[3] = { 1, 2, 3 };int arr2[3] = { 4, 5, 6 };int arr3[3];int i = 0;for (i = 0; i{arr3[i] = arr1[i];arr1[i] = arr2[i];arr2[i]原创 2017-03-21 21:43:15 · 294 阅读 · 0 评论 -
关于C的小程序-6
1. 写一个函数可以判断一个数是不是素数。#define _CRT_SECURE_NO_WARNINGS 1#include#includeint is_sushu (int x1){ int j = 0; for (j = 2; j <= sqrt(x1); j++) { if (x1%j == 0) { return 0; } } return 1;}原创 2017-03-27 20:21:05 · 301 阅读 · 0 评论 -
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。#include #include int main() { int slayer = 0;原创 2017-03-31 22:33:25 · 721 阅读 · 0 评论 -
C语言--预处理标识符
__FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义 # ,把一个宏参数变成对应的字符串##可以把位于它两边的符号合成一个符号#define _CRT_SECURE_NO_WARNINGS 1原创 2017-04-10 20:43:53 · 563 阅读 · 0 评论 -
比较两个数二进制序列有几位不同
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子:1999 2299输出例子:7#define _CRT_SECURE_NO_WARNINGS 1#include #include int main(){ int arr1[32] = { 0 }; int arr2[32] = { 0 }; int num1 = 0; int原创 2017-04-10 21:39:10 · 801 阅读 · 0 评论 -
C语言--宏将一个数字的奇数位和偶数位交换
写一个宏可以将一个数字的奇数位和偶数位交换#define _CRT_SECURE_NO_WARNINGS 1#include #include #define exchange_even_uneven(x)\(((x&(0xAAAAAAAAA)) >> 1) + ((x&(0x555555555)) << 1))//前半部分代表奇数为清零,再右移一位,则把偶数位换到奇数位,后面反之原创 2017-04-10 20:53:47 · 1051 阅读 · 0 评论 -
关于C的小程序-5
1.猜数字游戏。#define _CRT_SECURE_NO_WARNINGS 1#include#include#includevoid maune(){printf("##############################\n");printf("#### 1.游戏开始 0.退出游戏####\n");printf("##################原创 2017-03-25 20:26:54 · 294 阅读 · 0 评论 -
C语言中的运算符
一、运算符概述运算符是告诉编译程序执行特定算术或逻辑操作的符号,用来连接操作数。1、运算符的分类1)按照功能划分:算术运算符关系运算符逻辑运算符按位运算符2)根据参与运算的操作数的个数划分:单目运算符:只有一个操作数,如i++,i,sizeof双目运算符:有两个操作数,如a+b三目运算符:C语言中唯一的一个,也称为问号表达式 a >原创 2017-03-25 21:36:37 · 329 阅读 · 0 评论 -
C语言中的单链表面试题----基础
题目总览从尾到头打印单链表删除一个无头单链表的非尾节点在无头单链表的一个节点前插入一个节点单链表实现约瑟夫环逆置/反转单链表单链表排序(冒泡排序&快速排序)合并两个有序链表,合并后依然有序查找单链表的中间节点,要求只能遍历一次链表查找单链表的倒数第n个节点,要求只能遍历一次链表思路及代码从尾到头打印单链表递归法,若当前节点不为空,在打印当前节点前打印上一个节点。原创 2017-06-13 21:14:45 · 456 阅读 · 0 评论