
C语言基础知识
生命随心所欲,但不能随波逐流
骐骥一跃,不能十步;驽马十驾,功在不舍
展开
-
C中函数循环累加
#include <stdio.h>#include <stdlib.h>double fun(double e){ int i; double s, x; s=0; i=0; x=1.0; while(x>e){ ++i; x=(2.0*i-1)/((2.0*i)*(2.0*i)); s=s+...原创 2019-09-19 08:31:44 · 1210 阅读 · 0 评论 -
C语言二维数组的指针
以int a[2][3]={};这个二维数组为例子:a为a[2][3]的数组名,二维数组的指针,指向的是一维数组而a[0]数组的指针,是单个元素a[0][0];一维数组的指针,指向的是单个元素虽然a[0]与a的首地址都是a[0][0],但是随着指针的偏移,a每次偏移12B,而a[0]每次偏移4B为int a[2][3]定义一个指针int *p;为什么*p=a是错误的呢?因...原创 2019-09-12 16:40:10 · 773 阅读 · 0 评论 -
C语言二维数组指针
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };从概念上理解,a 的分布像一个矩阵:0 1 2 34 5 6 78 9 10 11但在内存中,a ...转载 2019-09-12 16:02:03 · 185 阅读 · 0 评论 -
C语言中“==”与“=”区别
在VB中=可以直接做条件判断。但是在C中,条件判断必须用 “==”而“=”表示赋值连续好几次搞混淆了,记录下,下次不再这个小问题上出问题。。。。。...原创 2019-09-12 09:36:33 · 931 阅读 · 0 评论 -
C语言中关于阶乘的算法
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#pragma warning (disable:4996)struct Ord{ int n; long ordor;};long fun(int n){ static struct Ord old={0,1}; int...原创 2019-09-11 14:56:13 · 1496 阅读 · 0 评论 -
C语言中对指针的理解
#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){ int a[2][3]; int *p; printf("a=%d\n",a+1); //a-> a[0] 偏移12B printf("a[0]=%d\n",a[0]+1...原创 2019-09-10 09:08:21 · 425 阅读 · 0 评论 -
C中自增减(++,--)与&&使用
#include <stdio.h>main(){ int a=0,b=1; if(a++ && b++) printf("T"); else printf("F"); a=b++; printf("a=%d,b=%d\n",a,b);}程序的输出结果为:Fa=1,b=2;1.if(a++ && b++) 中首先判...原创 2019-09-09 11:21:15 · 1035 阅读 · 0 评论 -
C中对指针的理解
1.定义一个指针,有int、float、double等多种类型指针可定义int *p中如果p不加星号,p里存放的是地址值,如果加了星号,表示指向之歌地址内所存放的数值。2.int*、float* 这样表示的是定义一个空的指针,当使用这种方式时,一般表示要分配一段地址空间,常和malloc、new搭配使用3.首地址:首地址指的是一段内存单元中,第一个存储单元的值。4.指针变量的加减,...原创 2019-09-06 15:31:17 · 321 阅读 · 0 评论 -
C语言中的单目运算符,双目运算符与三目运算符
单目运算符:只有一个操作数,例如:逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】这些是单目运算符双目运算符:有两个操作数,例如:,+,-,*,/,=,== 等等三目运算符:需要三个操作数,例如:?:...原创 2019-09-06 09:11:05 · 27380 阅读 · 0 评论 -
C中字符串指针的应用
#include <stdio.h>#include <stdlib.h>#pragma warning (disable:4996)void fun(char c, int d) { int i; char A[26], a[26], *ptr;/**********found**********/ for (i=0; i<26; ...原创 2019-09-05 15:21:36 · 319 阅读 · 0 评论 -
C中关于字符串数组的表示方法
#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){ char s[]={"abc"}; int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>='a'&&s[i]<'z') n++;...原创 2019-09-03 08:31:28 · 1746 阅读 · 1 评论 -
C中统计一个整数中各数字出现的次数
即a[0]-a[9]中a[0]=0出现0次,a[1]=1出现1次,a[2]=2出现1次,以此类推,代码如下:#include <stdio.h>void fun( int m, int a[10]){ int i; for (i=0; i<10; i++) a[i] = 0; while (m > 0) { i = ...原创 2019-07-25 08:46:51 · 7993 阅读 · 1 评论 -
C中将字符串数字转化成整数数字
#include <stdio.h>#include <string.h>#include <stdlib.h>long fun( char *s ){ int i,j,n,sum=0; n=strlen(s); for(i=0,j=10;i<n;i++) { sum=sum*j+*s-48; s...原创 2019-07-23 07:58:06 · 1444 阅读 · 0 评论 -
C中利用switch...case语句判断字符串中数字0和1的个数
#include <stdio.h>void fun( int *s, int n ){ int i, one=0, zero=0 ; for(i=0; i<n; i++) switch ( s[i] ) { case 0 : zero++; break; case 1 : one ++; ...原创 2019-07-22 07:52:06 · 1643 阅读 · 0 评论 -
C中求字符串中数字的个数
数字0对应的ascii码为48,往后1,2.....9依次在48上加1为ascii值,9为57。#include <stdio.h>int fun(char *s){ int i=0,k=0,j; char *p; p=s; while(*p!=0) p++,i++; for(j=0;j<i;j++) { if(*s>=48 &...原创 2019-07-19 11:12:01 · 5311 阅读 · 1 评论 -
C中字符串移位应用
#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 80void fun (char *w,int m){ int i,n,j,k,f,s; char p[N]; n=strlen(w); for(k=m,f=0;k<n;k...原创 2019-07-17 14:42:09 · 1124 阅读 · 0 评论 -
C中关于阶乘的算法
1.求一个整数K的连续阶乘之和,例如求5的阶乘之和为sum=1!+2!+3!+4!+5!#include <stdlib.h>#include <stdio.h>#define k 4 //设定k值,求连续k位的阶乘和void main(){ int i,j=1,n=1,sum=0; for(j=1;j<=k;j...原创 2019-07-16 13:59:16 · 8803 阅读 · 0 评论 -
C语言sqrt求平方根函数注意点
#include <math.h>#include <stdio.h>#include <stdlib.h>double fun( int n){ int i,sum=0; double sq; for(i=1;i<n;i++) if((i%3)==0 && (i%7==0)) sum+=i; sq=sum; ...原创 2019-07-15 15:05:57 · 17207 阅读 · 0 评论 -
C中求大于整数m且紧靠m的素数个数
#include <conio.h>#include <stdio.h>#include <stdlib.h>void fun(int m,int k,int xx[]){ int i,j,n; for(i=m+1,n=0;n<k;i++) /*找大于m的素数,循环k次,即找出紧靠m的k个素数*/ {for(j=2;j&...原创 2019-07-15 11:04:52 · 3085 阅读 · 0 评论 -
C中将字符串中小写字母改大写
#include<conio.h>#include<stdio.h>#include<string.h>#include<stdlib.h>void fun(char *ss){ int i; for(i=0;ss[i]!='\0';i++) if(ss[i]<='z'&& ss[i]>='a') s...原创 2019-07-13 09:49:56 · 948 阅读 · 0 评论 -
C中将字符数组下标为偶数同时ASCII值为奇数的字符剔除
#include <stdio.h>#include <string.h>#include <stdlib.h>void fun(char *s, char t[]){ int i,j=0; for(i=0;i<strlen(s);i++) if(!((i%2)==0 && (s[i]%2)!=0)) t[j++...原创 2019-07-12 17:10:33 · 3692 阅读 · 0 评论 -
C语言将二维数组通过函数传递至一维数组
#include <stdio.h>#include <stdlib.h>void fun (int (*s)[10], int *b, int *n, int mm, int nn){ int i,j,k=0; for(i=0;i<mm;i++) for(j=0;j<nn;j++) { b[k]=s[i][j]; k++; ...原创 2019-07-12 13:24:52 · 3428 阅读 · 0 评论 -
C语言中将链表数据由小到大的排序
#include <stdio.h>#include <stdlib.h>#define N 6typedef struct node { int data; struct node *next;} NODE;void fun(NODE *h) //数据大小比较排序{ NODE *p, *q; int t;//p与...原创 2019-07-12 10:08:59 · 6793 阅读 · 1 评论 -
C中指针函数的传递特点
1.此程序的运行结果为;10,20,3. 其中主函数K的值为3,没有被改变,虽然SP函数是按值传递,但在sp函数中指针a被重新定义为b的地址。#include <stdlib.h>#include <stdio.h>#include <string.h>#define N 20void sp(int *a){ int b=2; a=&am...原创 2019-07-08 14:55:49 · 265 阅读 · 0 评论 -
C中逻辑运算及判断
#include<stdlib.h>main(){ int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2; if((c==3)||(d=-1)) a=5; printf("%d%d%d%d",a,b,c,d);}1.判断a=2与b=1时,已经同时为a与b进行了赋值。在C中,只要结果非0即为true,所以第一个if得出结果...原创 2019-07-08 11:59:05 · 1309 阅读 · 0 评论 -
C语言比较最长字符串
#include <stdlib.h>#include <stdio.h>#include <string.h>#define N 20char *fun(char (*a)[20],int m,char *max){ int i,j,k; max=a[0]; for(i=0;i<m;i++) { if(strlen(a...原创 2019-07-07 15:26:16 · 932 阅读 · 0 评论 -
C语言中的十进制转换二进制或八进制程序
#include <stdio.h>#include <conio.h>#include <stdlib.h>void fun(int m,int k) { int aa[20], i; for(i=0;m;i++) { aa[i]=m%k; m/=k; } for(;i;i--) printf("%d",aa[i-1]);...原创 2019-07-06 15:00:13 · 2282 阅读 · 1 评论 -
C语言结构体值的传递及地址的传递
1.按值传递 :#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f ( struct A t ) ;main (){ struct A a={1001, " ZhangDa " ,1098.0};f ( a ) ; print...原创 2019-07-03 09:44:13 · 6512 阅读 · 0 评论 -
C语言指针函数的使用
#include <stdio.h>int b=2;int fun(int *k){ b=*k+b; return (b);}main(){ int a[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b; printf("%d ",b);}printf("\n");...原创 2019-07-03 08:43:52 · 1709 阅读 · 0 评论 -
C中字符串的拼接
C中字符串的拼接可以采用函数strcat(),若利用函数指针编写,程序如下:#include "stdio.h"void fun(char*t,char*s){while(*t!=0) t++;while((*t++=*s++)!=0);}main(){char ss[10]="acc",aa[10]="bbxxyy";fun(ss,aa);printf("%s,%s\n...原创 2019-07-01 15:59:12 · 11137 阅读 · 1 评论 -
C中求小于指定整数的所有素数的集合
#include<conio.h>#include<stdio.h>#include<stdlib.h>#define MAX 100int fun(int lim, int aa[MAX]){ int i,j,k=0; for(i=2;i<=lim;i++) /*求出小于或等于lim的全部...原创 2019-06-28 15:02:24 · 2439 阅读 · 0 评论 -
C语言运算符的优先级
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[整型表达式] 左到右 () 圆括号 ...原创 2019-06-26 16:01:04 · 398 阅读 · 0 评论 -
C语言CRC16校验码程序
CRC校验码计算公式int CRC_Check(char *m_Data,short m_Size){ int i0,i1; char CRC16Lo,CRC16Hi; //CRC寄存器 char SaveHi,SaveLo; CRC16Lo = 0xFF; CRC16Hi = 0XFF; for(i0...原创 2019-06-26 13:54:35 · 5547 阅读 · 2 评论 -
C中计算矩阵每列最大值
#include <stdio.h>#define N 4void fun(int (*a)[N], int *b){ int i,j; for(i=0; i<N; i++) { b[i]=a[0][i]; for(j=1; j<N; j++) if(b[i]<a[j][i]) b[i]=a...原创 2019-06-26 10:07:05 · 2846 阅读 · 0 评论 -
C中关于define宏定义
define特点:宏定义只做简单的替换define,无参宏定义的一般形式为:#define标识符字符串define 函数定义一个常量。常量类似变量,不同之处在于,在设定以后,常量的值无法更改。作用域不影响对常量的访问 。常量值只能是字符串或数字。#include<stdio.h>#define N 5#define M N+1#define f(...原创 2019-06-26 08:00:30 · 453 阅读 · 0 评论 -
C中关于语法continue的使用
#include<stdio.h>#include<stdlib.h>main(){int x=8;for(;x>0;x--){if(x%3){ printf("%d,",x--); continue;}printf("%d,",--x);}system("pause");}continue的定义:跳出...原创 2019-06-25 13:48:46 · 876 阅读 · 0 评论 -
C语言中位右移,左移,按位与,按位异或,按位或,含义
1. >>= 意思为:右移后赋值代码示例为:x = 0x08;x >>=3;右移后结果为: 0000 00012. <<= 意思为:左移后赋值代码示例为:x = 0x08;x <<=3;左移后赋值结果为: 0100 00003. &= 意思为:按位与后赋值代码示例为:x = 0x02...原创 2019-06-09 09:34:18 · 5186 阅读 · 0 评论 -
C中数组数据互换
#include <stdio.h>#include <conio.h>#include <stdlib.h>void fun (int array[3][3]){ int i,j,t; for(i=0;i<1;i++) for(j=i+1;j<3;j++) //此处不能是j=0;否则数据等于没排列 { t=a...原创 2019-05-28 11:13:22 · 910 阅读 · 0 评论 -
C中字符串配合指针的使用
#include<stdio.h>void fun1(char *p){ char *p; q=p; while(*q!='\0') { (*q)++; q++; }}void main(){ char a[]={"program"},*p; p=&a[3]; fun1(p); printf("%s\n",a);}此程序运行的...原创 2019-05-27 16:39:55 · 364 阅读 · 0 评论 -
C中字符串数组转换成整数数组
#include <stdio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#define N 9long ctod( char *s ){ long d=0; while(*s) if(isdigit( *s)) { ...原创 2019-05-25 11:56:45 · 8128 阅读 · 0 评论