![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
红心柚大果
坚持不懈 细水长流
展开
-
C语言基本输入输出易错易混总结
1.printf(“st=%06.3s\n”,“CCNU”);%06.3s表示输出字符串“CCNU”中的前三个字符CCN,占6位,前面有0,所以左边要补上三个0,最后输出000CCN2. int i=1;printf("%d,%d,%d\n",i,i+1,i=3);输出表达式时表达式值的计算顺序时从右到左的,所以最终的输出结果时 3,4,3 而不是1,2,3...原创 2020-04-13 14:33:54 · 3148 阅读 · 0 评论 -
C语言:输入一行字符,统计其中单词的个数,单词之间用空格间隔
C语言每日一题题目内容解题思路解题流程图代码题目内容I have a book(回车)输入一行字符,统计其中单词的个数,单词之间用空格间隔解题思路如果当前字符是字符,而他的前一个字符是空格,那么可以看成增加了一个新单词1.先设置标记位flag=0(flag为0表示是空格,flag为1表示是字符)2.判断当前是否是空格,如果是,将flag置为0,如果不是空格,则说明当前是字符3.当前是字符,那么判断当前的flag是否为0,如果为0,说明上一个字符是空格,此时单词数+1,flag设置成1.解原创 2021-08-09 22:20:55 · 14234 阅读 · 1 评论 -
有符号与无符号,长整型与短整型
C语言:%d:代表十进制有符号整形%u:代表十进制无符号整形%o:代表八进制无符号整数%x或者%X:代表十六进制无符号整数C代码:#include<stdio.h>void main(){ int a=-1; unsigned u=32767; unsigned long L=-32768; printf("a=%d,a=%u\n",a,a); //(1) ...原创 2020-04-12 11:16:04 · 5082 阅读 · 0 评论 -
自增和自减运算:++和--
C语言的自增和自减运算,在一些场合总是让人捉摸不透,今天是对++ 和-- 的一次小总结:int i=3,m,n,p,q;A.m=i++;B.n=++i;C.p=i--;D.q=--i;分别求得四个选项对应的值在A选项中,m=i++; ++放在i后面,所以是先用完了i,i再加1,所以A选项可以等同于m=i;i=i+1; 最终m=3;i=4;在B选项中,n=++i...原创 2020-04-11 10:58:13 · 820 阅读 · 1 评论 -
double 和 float的精确位
代码段:#include<stdio.h>void main(){ float a; double b,c; a=123.456789; b=a; c=123.456789; printf("a=%f b=%lf c=%lf\n",a,b,c);}最终输出结果是什么呢?考察知识点:1.float型变量最多只能精确表示8个数字2.double...原创 2020-04-10 10:38:18 · 754 阅读 · 0 评论 -
明明很简单,就是想不明白---求a+aa+aaa+……(n个a)
题目:编程计算 a+aa+aaa+……+aa…a(n个a)的值,n和a的值由键盘输入例如:3 1则表述 1+11+111=123 则输出为123分析题目:1.一共要累加n次;2.后一个数是前一个数 乘以10 再加上a;思路:1.一共只需要一层循环;2.要记好前一个数3.计算的数可能很大,需要用long 来定义一些变量C代码:#include<stdio.h>v...原创 2020-03-02 11:08:29 · 1750 阅读 · 0 评论 -
需要绕一绕的选择排序算法
选择排序算法:题目:将十个数用选择排序法从小到大进行排序选择排序算法的思路:第一步:在1~n个数中找出最小数,然后与第一个数交换,前面一个数已经排好;第二步: 在2~n个数中找出最小数,然后与第二个数交换,前面两个数已经排好;……第n-1步:在n-1~n个数中找出最小数,然后与第n-1个数交换,排序结束例如:2 5 4 1 3第一轮:2与1交换 得 1 5 4 2 3第二轮:...原创 2020-02-29 16:52:48 · 123 阅读 · 0 评论 -
海伦公式的推导及应用-----已知三角形的三条边,求面积
已知三角形的三条边为a,b,c,怎样编程来求三角形的面积呢?有个很重要的公式,叫海伦公式,这个公式很简单,一目了然,以至于这个题目也不难了,但是关键在于公式的推导代码如下,需要注意的是,要判断是否为三角形,即 任意两边之和都要大于第三边:在这里插入代码片...原创 2020-02-29 10:08:05 · 2384 阅读 · 0 评论 -
C语言程序设计第六章:循环结构程序设计 知识总结
教材:C语言程序设计教程(第二版)主编:王敬华、林萍、张清国编著本章主要有两个很重要的小节:第一小节主要是介绍循环语句和配套使用的函数第二小节主要是介绍循环结构类型的选择和转换1.循环结构的含义:在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件成为循环条件,反复执行的程序段成为循环体。C语言提供了多种循环语句,可以组成各种不同形式的循环结构。2.while语句:wh...原创 2020-05-02 22:54:00 · 2050 阅读 · 0 评论 -
C语言程序设计 第三章 基本数据类型、运算符与表达式 知识总结
参考教材:C语言程序设计教程 (第二版)王敬华、林萍、张清国编著目录:3.1 C语言的数据类型3.2 常量、变量和标识符3.3 简单数据类型与表示范围3.3.1 整形数据3.3.2 实型数据3.3.3 字符型数据和字符串常量3.3.4 简单数据类型的表示范围3.3.5 数据的简单输出3.4 C语言的运算符与表达式3.5 运算符的优先级和结合性3.6 有符号数与无符号数之间的...原创 2020-04-26 16:45:42 · 1274 阅读 · 0 评论 -
C语言指针知识点总结
以前总是搞不懂指针这一章节的知识,学得非常的混乱,这可不,马上要考试了,必须火力全开呀,今天在CSDN博客上看到一篇关于指针的知识点总结,觉得受益匪浅,感触颇丰!指针指针的定义:指针是一个变量,用来存放地址的变量指针的类型:(1)基本类型:int 、short、long、float 、double、char如 int *p;//表示定义一个指针,这个指针指向整形变量,这个指针将存放的是整形变量的地址。**(2)数组指针:**指针指向一个数组int (*a)[10];//表示指针指向一个int原创 2020-05-11 09:37:26 · 21251 阅读 · 8 评论 -
C语言程序设计第七章:数组 知识总结
教材:C语言程序设计教程(第二版)王敬华、林萍、张清国编著数组是一种构造数据类型,表示同一类型的数据项的有序集合本章主要有三个很重要的小节:7.1 一维数组7.1.1 一维数组的定义和引用7.1.2 一维数组的赋值7.2 二维数组7.2.1 二维数组的定义和引用7.2.2 二维数组的赋值7.3 字符串与数组7.3.1 字符串的本质7.3.2 字符及字符串操作的常用函数7....原创 2020-05-05 23:49:39 · 1234 阅读 · 0 评论 -
向文件中写入两行文本,然后分三次读出其内容
题目:向文件wang.txt中写入两行文本,然后分三次读出其内容#include<stdio.h>#include<stdlib.h>void main(){ FILE *fp1,*fp2; char str[]="123456789"; fp1=fopen("wang.txt","w"); //打开成功时,fp1会指向文件内容的起始处,打开失败时,fp1会返...原创 2020-03-28 10:35:18 · 465 阅读 · 0 评论 -
利用字符读写函数实现文件拷贝
题目:利用字符读写函数实现文件的拷贝#include<stdio.h>#include<stdlib.h>void main(int argc,char *argv[]){ FILE *input,*output; if(argc!=3) //一定要输入三个参数,可执行文件 ,源文件名 ,目标文件名 { printf("the nu...原创 2020-03-27 12:30:41 · 605 阅读 · 1 评论 -
文件的读写
题目:将键盘上输入的一个字符串(以‘@’作为结束字符),以ASCII码形式存储到磁盘文件中,然后从该磁盘文件中,然后从该磁盘文件中读出其字符串并显示出来。代码:#include<stdio.h>#include<stdlib.h>void main(int argc,char*argv[]){ FILE *fp1,*fp2; char ch; if(a...原创 2020-03-26 11:20:47 · 238 阅读 · 0 评论 -
联合体成员之间的相互影响
观察 联合体成员之间的相互影响#include<stdio.h> void main() { union { long L; short a; char ch; }d={0xFFF11241}; printf("d.ch=%c d.a=%x d.L=%x\n",d.ch,d.a,d.L); d.a++...原创 2020-03-23 10:53:57 · 315 阅读 · 0 评论 -
线性链表--插入、删除、显示、销毁
题目:建立一个学习成绩的线性链表,然后对其进行插入、删除、显示、最后销毁该线性表解题:一、新建一个学生成绩的结构体:struct Grade_Info //定义一个学生信息的结构体{ int score; //学生信息结构体包括学生的分数(数据域)和指向下一个结点的指针(指针域) struct Grade_Info *next;};typedef struct Grade_...原创 2020-03-22 15:51:14 · 2514 阅读 · 0 评论 -
C语言小项目: 万年历的编写
万年历即:只要给定一个特定的年份,就能把一整年的日历显示出来,日历包括日期和星期思路:第一年的1月1日一定是周一,因此要知道所求的那一年1月1日是周几,就求在那一年之前一共过去了多少天,上一年最后一天的星期+1就是这一年的星期。那求一共过去了多少天,就得分平年和闰年,平年只有365天,闰年是366天闰年是指 能被4整除但是不能被100整除的年或者是能被400整除的年。求星期,就拿天数对...原创 2020-03-20 10:28:49 · 2583 阅读 · 6 评论 -
结构体数组的应用---统计候选人投票
题目:统计候选人的票数#include<stdio.h>#include<string.h>struct person{ char name[20]; int count;}leader[3]={"Li",0,"Zhang",0,"Wang",0}; //定义候选人 ,包括名字和票数void main(){ int i,j; char ...原创 2020-03-19 11:05:15 · 1582 阅读 · 1 评论 -
strncmp函数的应用---统计子字符串出现的个数
题目:编写一个函数totsubsyrnum(char *str,char *substr),它的功能是:统计子字符串substr在字符串str中出现的次数。思路,先求出两个字符串的长度n,m,设置一个变量i,i从0开始一直遍历到大于n-m的长度用substrncmp(str+i,substr,m)是否等于0来判断,如果为0,则计数+1,并且i要增值到m-1,因为已经出现相同了,在接下来的m个不...原创 2020-03-16 20:57:18 · 659 阅读 · 0 评论 -
指针真的是个小机灵--将字符串中的n个字符左移,串中的前n个字符移到最后
题目:编写一函数:strlshif(char *s,int n),其功能是吧字符串s中的所有的字符左移n个位置,串中的前n个字符移到最后。解题思路:找到字符的最后位置,然后循环n次赋值,将前n个字符依次赋给从最后一个字符开始的最后n个字符,最后 输出C代码:#include<stdio.h>#include<string.h>void strlshif(char...原创 2020-03-16 11:09:48 · 1343 阅读 · 1 评论 -
编写函数,删除字符串中的数字字符
题目:编写一个函数fun,它的功能是:删除字符串中的数字字符例如输入字符串:sadhksgs45sdfh4578sdhg输出为:sadhksgssdfhsdhgC代码如下:#include<stdio.h>#include<string.h>#include<malloc.h>void fun(char str[]);void main(){...原创 2020-03-14 11:07:10 · 10986 阅读 · 1 评论 -
指针函数的应用--输出一个字符中指定起始位置和长度的字符串
题目:编写一取某字符串子串的函数 char *substr(char *s,int startloc,int len),其中s为字符串,startloc为起始位置(0表示第一个字符的位置),len为子串的长度。要求返回值为求得的子串。如:调用 substr(“12345678”,0,4),求得的子串为“1234”以前的解法:先不考虑指针函数,用一种我们最容易想到的函数调用,代码如下:#in...原创 2020-03-14 10:40:23 · 1912 阅读 · 0 评论 -
判断回文数字 、回文字符串
题目一:编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如"level"、“ABCCBA”都是回文解题思路:定义两个指针p,q,p指针指向第一个字符,q指向最后一个字符,p<=q时,依次比较,一旦有不相等,立即退出循环,得出不是回文的结论。C代码:#include<stdio.h>#include<string.h>vo...原创 2020-03-13 11:25:09 · 1267 阅读 · 0 评论 -
用指针交换变量值:字符型变量、整形变量
题目:编写一个交换变量值的函数,利用该函数交换数组a和数组b中对应的元素值1.交换字符数组里对应的元素值#include<stdio.h>#include<string.h>void fun(char *p,char *q,int k);void main(){ char str1[80],str2[80],*p,*q; int n,m,k; ...原创 2020-03-13 10:16:25 · 483 阅读 · 0 评论 -
递归算法 看重联系而忽视中间过程-----汉诺塔问题
递归调用:当一个函数在它的函数体内,直接或间接地调用它自身,就形成了递归调用汉诺塔问题:假设有三根柱子,分别用A、B、C来表示,柱子A上套着n个半径大小不同的盘子(盘子中央有小空),并且大盘子在下面,小盘子在上面。要求将柱子A上的盘子搬到柱子C上。搬动过程中,可以使用柱子B暂时存放盘子,但无论何时都必须保证大盘子在下面,小盘子在上面,并且一次只能搬动一个盘子。...原创 2020-03-07 20:12:00 · 136 阅读 · 0 评论 -
C语言知识大盘点(1)
完整的C程序以上是一个完整的C程序以及运行结果,那计算机时怎样执行这些操作的呢?答案在这里:一、.什么是计算机?计算机是以逻辑部件为物质基础,能够对信息进行自动处理的机器。逻辑部件就是指硬件系统,而对信息的自动处理则是指由计算机的软件来实现。这里的信息包括数字、文字、图像、声音等,但是不管哪类信息,都是以二进制数据信息来表示和处理的,因为计算机的是由逻辑电路构成的,逻辑电路有开关接通和...原创 2020-03-12 21:43:21 · 1565 阅读 · 0 评论 -
指针作为函数参数---编写一函数用于去掉字符串的前导空格和后续空格
函数的参数传递包括:传值 和 传址 两种方式传值就是传地址,将指针作为函数的形参题目:编写一个函数,用于去掉字符串的前导空格和后续空格C代码:#include<stdio.h>void fun(char *p,char str[]); //函数声明时,括号里面是变量类型,第一个变量类型是一个字符型指针,第二个变量是字符数组void main(){ char ...原创 2020-03-12 09:49:20 · 1388 阅读 · 0 评论 -
灵活运用标记 --杭电 2043 密码
从今天开始,每天新增做一道杭电题,每次提交代码时,心里非常紧张,每次看到Accept 都会超级激动 ,啊哈哈哈,睡前的小惊喜题目:网上流传一句话:“常在网上飘啊,哪能不挨刀啊~”。其实要想能安安心心地上网其实也不难,学点安全知识就可以。首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件:(1).密码长度大于等于8,且不要超过1...原创 2020-03-11 22:34:35 · 220 阅读 · 0 评论 -
利用二级指针处理字符串
C代码:#include<stdio.h>void main(){ char **p; char *str[]={"I","love","china","very","much","","12"}; p=str+1; //p就指向了love printf("%x: %s \n",*p,*p); p+=2; while(**p!=0) //到much后面就...原创 2020-03-11 21:39:20 · 868 阅读 · 0 评论 -
小时候经常和爸爸讨论的数学烧脑题---幻方
我出生在一个很偏僻的农村,哪怕我现在21岁了,从市里回到家的车一天也就只有两趟,每次兴高采烈地去镇上,却总是害怕错过那趟非常早的回家的车而不尽兴地回来。农村的教学质量不是特别好,我六年级才开始学英语,老师上课大多都用家乡话,以至于小学时我的普通话也很糟糕,还记得有一次六一儿童节作为代表发言,我把一切平舌翘舌都读成翘舌,现在想想,是多么搞笑,哈哈哈自打我读书起,爸爸就给我检查数学作业,我经常...原创 2020-03-03 16:34:09 · 337 阅读 · 0 评论 -
数字和字符的转换--求两个正整数之间所包含的数字0~9出现的次数
题目:求任意两个正整数(不超过8位)之间所有的整数所包含的数字0~9出现的次数比如:100~105之间有 100 101 102 103 104 105 则运行结果为:0(7) 1(7) 2(1) 3(1) 4(1)5(1) 6(0) 7(0) 8(0) 9(0)分析:1.要求不能超过8位数,所以要定义两个长整型的变量来存放。2.统计数字出现的次数,需要将数字转化成字符串,存放到字...原创 2020-03-01 21:25:43 · 1375 阅读 · 3 评论 -
输入出错,导致怀疑人生----将字符串排序
题目:输入多个城市名字,按升序排序输出难点:1.怎么输入多个城市名2.怎么对城市名进行排序解决方法:用到字符串,字符数组的知识点1.定义一维字符数组,存放每次输入的那个城市名字符串2.定义二维数组,存放所有的城市名字符串3.用选择排序算法,对字符串进行排序,用到stricmp函数 和strcpy函数#include<stdio.h>#include<strin...原创 2020-03-01 15:00:17 · 276 阅读 · 0 评论 -
没写出来的考研真题--统计其中单词的个数
题目:输入一行字符,统计其中单词的个数,单词之间用空格间隔解题思路: I am a student.我们观察这个句子,一眼就看出有四个单词,除了第一个单词外,其他单词都有一个特征,单词之前有一个空格。所以我们可以用一个标记flag,刚开始将flag设为1,若下一个为空格,则flag依旧为1,否则如果flag==1.则单词数+1,将flag置为0。因为如果flag不是空格,而flag依旧是...原创 2020-02-29 22:10:44 · 223 阅读 · 0 评论 -
成长日记 ---简单题就应该一遍过
今天是写博客的第六天,每天都有更新,也就是每天都在编程; 最近晚上睡觉前,喜欢听喜马拉雅,有一些心得体会。 我以前总是给自己贴标签,我就不适合编程,有时候一个循环我都要纠结大半天,算法啥的一概不懂,越是认为这样,就越是不去尝试,这样就产生了一个恶性循环,虽然有时候贴标签挺有用的,比如说,我经常觉得我是一个女汉子,所以以前很多揪心的事情我都会告诉自己坚强的挺过去;我觉得我不够...原创 2020-03-04 15:40:07 · 279 阅读 · 0 评论 -
一次循环就可以找到最大数和最小数,以及定位数的位置
题目:从键盘输入10个整数,编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组思路:首先定义max、min变量,并且将他们设置初始值为str[0],再通过循环,一一比较,并且记录位置,最终交换最大值和最小值,输出!C代码:#include<stdio.h>void main(){ int a[10],i,j,n,m,max,min; for(i=0;i...原创 2020-03-04 16:42:51 · 812 阅读 · 0 评论 -
做码农真的需要一双善于发现的眼睛,虽然我近视---终究做出来啦!
题目:输入5*5阶的矩阵,编程实现:输出矩阵,且1.求两条对角线上的各元素之和2.求两条对角线上行、列下标均为偶数的各元素之积思路:1.通过一个二重循环输入各元素,通过一个二重循环输出,在第一层循环结束设置换行,以便得到标准的矩阵2.对角线上的元素,(0,0)(0,1)(0,2)(0,3)(0,4)(1,0)(1,1)(1,2)(1,3)(1,4)(2,0)(2,1)(2,2)...原创 2020-03-04 19:57:57 · 363 阅读 · 0 评论 -
一下子没思路,可能过一会就有了,不要急着看答案---杨辉三角
题目:编程打印如下形式的杨辉三角形。这道题本来是昨天的任务,无奈昨天没有任何思路,今天早上突然开窍了,再加上刚刚和双胞胎侄子玩了一下,听他们叫小姨,超级开心。事实证明,一时半会儿没有的思路,不足以证明我们很弱。 其实考试也是吧! 由于疫情,我暂时待在家,大部分时间都坐在我的书桌前,书桌前的墙壁上贴了一张纸条,上面写着高考的目标分数以及具体的计划,然而高考离目标分数差了98分;突然想...原创 2020-03-05 15:54:41 · 174 阅读 · 0 评论 -
在进行字符串的编程时,一定要记得检查最后一个字符是否是‘\0’,否则会出现乱码哦
题目:不用strcat函数编程实现字符串连接函数strcat的功能,将字符串srcStr连接到字符串dstStr的尾部解题思路:先输入s1,s2,求出长度,通过循环将s2连接到s1之后,注意 ,最后一步,一定要将 s1的最后一个字符赋值为 '\0’C 代码:#include<stdio.h>#include<string.h>void main(){ ...原创 2020-03-05 19:31:16 · 645 阅读 · 0 评论 -
思路在勤敲代码中养成-----在一组数中插入一个数,并按照顺序输出
题目:有一个已经排好序(升序)的整形数组,要求从键盘输入一整数按原来排序的规律将他插入到数组中。并输出结果。如: 原来的数据为:1 3 5 7 ,插入4 ,插入后为 : 1 3 4 5 7思路:1.从前往后找到第一个比插入的数大的那个数的位置,并将他赋值为插入的那个数。2.此后数组里面的数要比原来增1,并且从最后一个数开始到插入的那个数,后一个数等于前一个数。C代码:#include...原创 2020-03-06 12:06:25 · 491 阅读 · 0 评论