C语言基础知识
生命随心所欲,但不能随波逐流
骐骥一跃,不能十步;驽马十驾,功在不舍
展开
-
C语言中的32个关键字
1、auto 声明自动变量2、short 声明短整型变量或函数3、int 声明整型变量或函数4、long 声明长整型变量或函数5、float 声明浮点型变量或函数6、double 声明双精度变量或函数7、char 声明字符型变量或函数8、struct 声明结构体变量或函数9、union 声明共用数据类型10、enum 声...原创 2019-03-23 08:27:33 · 406 阅读 · 0 评论 -
C语言中scanf与printf的区别
之前没学过C语言,只学过C++,所以就来自学下C语言了,其实个人认为C与C++的区别很小,基本上就是printf与scanf这点输出和输入的区别了,如果还有什么区别的话那就是要包含的头文件是不同的。比如在C++中,是#include.而在C中是#include<stdio.h>在调用printf与scanf的时候一定要包含#include<stdio.h>printf的...转载 2019-03-23 09:20:18 · 24439 阅读 · 0 评论 -
C中函数的应用
#include<stdio.h>double funa(int m){double s;int t;s=1.0;for(t=2;t<=m;t++) s+=1.0/t; //1必须加小数点写成1.0// return s;}void main(){int m;double sum;scanf("%d",&m);sum=funa(m);...原创 2019-04-10 21:49:18 · 196 阅读 · 0 评论 -
C语言结构体struck所占用的字节数如何计算
格式101.struct tagPhone02.{03. char A;04. int B;05. short C;06.}Phone;格式201.struct tagPhone02.{03. char A;04. short C;05. int B;06.}Phone2;格式30...原创 2019-04-07 11:21:24 · 2558 阅读 · 0 评论 -
C语言中冒泡排序法的应用
#include<stdio.h>void main() { int i,j,k,arr[20],max,min,temp,f; for(i=0;i<20;i++) { arr[i]=i; printf("%3d",arr[i]); } printf("\n"); for(i=0;i<20;i++) { for(j=1;j...原创 2019-04-11 10:01:31 · 783 阅读 · 0 评论 -
C中在数组中插入数字并排序
问题:有数字1,2,3,4,6,7,8,9,10,请在4和6间插入5!#include<stdio.h>void main() { int arr[11]={0,1,2,3,4,6,7,8,9,10}; int i,j,s,k,sn,temp; sn=5; printf("front:"); for(i=0;i<10;i++)...原创 2019-04-11 14:41:16 · 1038 阅读 · 0 评论 -
C中关于FOR循环与SCANF的用法注意
#include<stdio.h>#define N 6void main(){ int arr[N], i, j, temp; printf("请输入%d个数据\n", N); for (i = 0; i < N; i++) { printf("请输入第%d个数据",i); scanf("%d", &arr[i]); } for (i...原创 2019-04-11 16:34:44 · 5911 阅读 · 0 评论 -
C中if...else的应用。
#include<stdio.h> int main(){int x=1,y=0;if(!x) y++;else if (x==0) if(x)y+=2; else y+=3;printf("%d\n",y);getchar();getchar();}1.x=1 在C语言中,只要变量的值非零,则为True,否则为False2.因为x=1为True,所以!...原创 2019-04-02 16:49:33 · 485 阅读 · 0 评论 -
C语言的enum枚举类型
#include <stdio.h>void main(){ enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a,b,c;//a,b,c的变量效果是一致的 scanf("%d", &b); switch(b) { case Mon: puts("Monday"); bre...原创 2019-04-15 16:50:02 · 169 阅读 · 0 评论 -
C中while与do while循环的区别
1.while是先判断条件,后循环,例:while(条件)//这个后面不用加分号{执行过程}printf(“”)2.do...while是执行,后判断条件,例:do{执行过程}while(条件);//这个后面必须加分号printf(“”)注:在if语句,while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面,则必须加分后...原创 2019-04-03 08:23:24 · 1974 阅读 · 0 评论 -
C语言中For循环
举例;#include<stdio>void main{for(n=1;n<=100;n++)if(n%5==0)sum+=n;printf("%d",sum);}FOR循环的执行步骤是,n=1,给n赋初值,其次判断n<=100这个条件是否满足,不满足程序直接退出,如果满足,执行过程if(n%5==0),sum+=n; 其次再执行条件...原创 2019-04-03 09:36:17 · 5329 阅读 · 0 评论 -
C中数组顺逆排序,换行,求最大值,最小值,求和。
#include<stdio.h>#define n 20void main(){ int i,j,k,sum=0,arr[n],max,min;for(i=0,j=2;i<20;i++,j+=2) arr[i]=j;printf("order output:\n");for(i=0,k=1;i<20;i++,k++) { printf("%3d"...原创 2019-04-12 15:44:59 · 241 阅读 · 0 评论 -
C中switch...case的应用
#include<stdio.h>int main() { int grade,Agrade,Bgrade; scanf("%d,%d,%d",&grade,&Agrade,&Bgrade);//*grade的值确定case工作范围,Agrade与Bgrade根据输入值,判定true/false switch(grade) { case...原创 2019-04-09 11:19:30 · 425 阅读 · 0 评论 -
C中++i,与i++
先看第一条代码#include<stdio.h>int main() { int i=0; do printf("%d,",i);while(i++); printf("%d,",i); getchar(); }这个代码输出结果为0,1再看第二条代码#include<stdio.h>int main() { int...原创 2019-04-03 14:32:20 · 260 阅读 · 0 评论 -
C中if语句用法
#include<stdio.h>void main() { int s1,s2,s3,t,i,n; for(i=1;i<=27;i++) { n=0; t=100; while(t<=999) { s1=t%10; s2=(t/10)%10; s3=t/100; if(s1+s2+s3==i) printf("i=%d,t=...原创 2019-04-09 14:49:34 · 1380 阅读 · 0 评论 -
C中typedef enum的使用
#include <stdio.h>void main(){typedef enum { saturday=2, //sunday,monday会依次排序为3,4.... sunday, monday, tuesday, wednesday, thursday, friday}workday;wor...原创 2019-04-16 13:10:46 · 4609 阅读 · 0 评论 -
C中数组指针的存储
#include<stdio.h>#define size 4int main(){ short index; short dates[size]; short *pti; double bills[size]; double *ptf; pti=dates; ptf=bills; for(index=0;index<size;inde...原创 2019-04-16 16:49:41 · 593 阅读 · 0 评论 -
C中二维数组的应用
#include<stdio.h>#include<conio.h>void exchange(int a[5][5]); //会调用编写的void exchange()函数int mn(int a[5][5],int m);int nm(int b[5][5],int m);void main(){ int a[5][5],m,n,k,tot; for(...原创 2019-04-13 12:03:33 · 548 阅读 · 0 评论 -
C中void exchange()的使用
void exchange()的作用是对函数值的交换#include<stdio.h>void exchange(int *i,int *j);void main(){ int i=1,j=2,k,n; printf("%d,%d\n",i,j); exchange(&i,&j); printf("%d,%d\n",i,j); ge...原创 2019-04-13 12:08:52 · 6147 阅读 · 2 评论 -
C中字符串函数的应用
#include <stdio.h>#include <string.h>#define N 80int fun(char *s, char *t) //求出t字符串在s中占有个数,例如abab和ab,则占有1个{ int n,i; //若是abab和ac,则占有0个 char *p , *r...原创 2019-04-20 21:19:33 · 380 阅读 · 0 评论 -
C语言for嵌套循环的应用
#include<stdio.h>void main(){int i,j,s;for(i=1;i<5;i++){ for(j=0;j<i;j++) printf("+"); for(s=1;s<=8-(2*i-1);s++) // printf("*"); printf("\n");}getchar();getchar();}...原创 2019-04-10 09:37:54 · 1671 阅读 · 0 评论 -
C中关于字符串数组的存取
#include<stdio.h>void main(){ char day[4][10]={"ABCEEF","ABC","DEF","GHI"}; printf("%s\n",day); //day与day[0]输出一样 printf("%s\n",day[0]); printf("%s\n",day[1]); //输出ABC printf("%s\...原创 2019-04-13 16:08:12 · 760 阅读 · 0 评论 -
C语言中 -> 是什么意思?
举个例子:struct Data{ int a,b,c;}; /*定义结构体*/struct Data * p;/*定义结构体指针*/struct Data A = {1,2,3};/*声明变量A*/int x;/*声明一个变量x*/p = &A ; /*让p指向A*/x = p->a;/*这句话的意思就是取出p所指向的结构体中...转载 2019-04-21 20:31:48 · 6798 阅读 · 2 评论 -
C语言中简单小程序理解指针的含义
#include <stdio.h>void main(){ int i,j,k,*pt,*ps; i=10; j=10; pt=&i; //将指针对应变量的地址 ps=&j; *pt=30; //实际上是通过指针对变量地址赋值 *ps=31; printf("%p,%p\n",*pt,*ps); //指针的值对应的地址的变量值...原创 2019-04-17 08:05:00 · 268 阅读 · 0 评论 -
C中输入5个字符串,并将它们按字母顺序(升序)输出
#include<stdio.h>#include<string.h>#define buffsize 100void main(){ char str[5][buffsize],t[buffsize];//str[5][100]表示5个能存放100字符的字符串 int i,j,k; //,一个二维字符数组,一个一...原创 2019-04-14 17:33:48 · 11733 阅读 · 0 评论 -
C中struct结构体使用注意细节
#include<stdio.h>#include<stdlib.h>#include<string.h>#define max 41#define min 31struct book //book为结构体变量book{ char name[41]; char adress[min]; int value;}...原创 2019-04-22 14:50:56 · 202 阅读 · 0 评论 -
C中struct结构体的应用
#include<stdio.h>#include<string.h>void front(struct stu *p5,int len ); //定义一个含指针的数组 struct stu { char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小...原创 2019-04-15 14:51:43 · 268 阅读 · 0 评论 -
C中获取数组值的几种方式
#include<stdio.h>void main(){ int i,arr[5]={1,3,5,7,9}; int *p1; p1=arr; //p1指针指向数组的第一个元素 for(i=0;i<5;i++) printf("%3d",arr[i]); printf("\n"); fo...原创 2019-04-18 08:11:52 · 9912 阅读 · 0 评论 -
C中二维数组指针的应用
使用方法1.#include<stdio.h>void main(){ int i,k,arr[3][4]={{1,3,5,7},{2,4,6,8},{7,9,11,13}}; int *p1; p1=arr[0]; for(i=0,k=1;i<12;i++,k++) { printf("%3d",p1[i]); //p1[i]可以是*(p1+i...原创 2019-04-18 08:59:50 · 980 阅读 · 0 评论 -
C中指针函数的使用
1.当函数定义好,直接调用时,调用是按值传递,当将i,k的值赋予函数时,a=2,b=3。#include<stdio.h>void fun1(int a,int b){ a=a+1; b=b+1;} void main(){ int i=1,k=2; fun1(i,k); printf("%d,%d",i,k);...原创 2019-04-18 09:51:20 · 363 阅读 · 0 评论 -
C中typedef在静态链表中的用法
#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node *next;}list,*lplist;int main(){ list list1={1,nullptr}; list list2={2,nullptr}; list list3={3...原创 2019-04-27 09:37:59 · 500 阅读 · 2 评论 -
C语言中“.”与“->”有什么区别?
这虽然是个小问题,但有时候很容易让人迷惑,因为有的时候用混淆了,程序编译不通过。下面说说我对它们的理解。一般情况下用“.”,只需要声明一个结构体。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了。因为自动分配了结构体的内存。如同 int a;一样。而用“->”,则要声明一个结构体的指针,还要手动开辟一个该结构体的内存,然后把返回的指针给声明的结构体指针...转载 2019-04-23 09:15:25 · 909 阅读 · 0 评论 -
C语言二维数组指针
#include<stdio.h>#include<stdlib.h>int main(){ int a[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i; p=a; for(i=0;i<3;i++) { printf("%d",(*p)[i]); //第一次运行为p[0][0]=0,p++指针推移成p[1][0] p...原创 2019-05-02 08:30:29 · 2050 阅读 · 0 评论 -
C中动态链表的添加,删除
#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node *next;}list,*lplist;lplist createlist() //创建一个表头,表头没有数据,只有一个指针域{ lplist head=(lplist)mal...原创 2019-04-27 16:08:11 · 374 阅读 · 0 评论 -
C中单向链表的应用(静态链表)
#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node *next;};int main() { struct node node1={1,nullptr}; struct node node2={2,nullptr}; struct ...原创 2019-04-23 13:35:48 · 251 阅读 · 0 评论 -
C中像字符串数组前中插入字符的应用
#include <stdio.h>#include <string.h>void fun ( char s[], int n ){ char a[80] , *p; int i; p=s; for(i=0; i<n; i++) a[i]='*'; do { a[i]=*p; //a[i]中i值从for循环...原创 2019-04-18 15:57:13 · 1640 阅读 · 0 评论 -
C中取出数字中奇偶数方法
#include <stdio.h>void fun (long s, long *t){ int d; long sl=1; *t = 0; while ( s > 0) { d = s%10; if (d%2 != 0) //如果要取出偶数的话,就将if(d%2 !=0)改成if(d%2==0) { *t = d ...原创 2019-04-19 13:47:56 · 4427 阅读 · 0 评论 -
C中比较字符串找那个相同部分(通过指针寻址比较)
#include<stdio.h>#include<string.h>#define N 6int fun(char *s,char *t) //*s代表的是a的值,*t代表的是b的值{ int n,i; n=0,i=0; while(*s) { if(*s==*t) //指向字符串...原创 2019-04-20 10:29:19 · 1998 阅读 · 1 评论 -
C中链表为什么要建立空的表头?
1.头结点有数据:当你想在自定函数中删改头结点的数据时,或是要修改head的值的时候,不能用头指针head作为形参,这样修改无效。所以你必需把头指针的指针(也就是头指针的地址)当作形参,而通常会把头指针写入一个结构体内,用该结构的指针当作形参。(实质上这也是指针的指针当作形参的办法)。2.当头结点没有数据时:显然head中的数据域是空的,而head->next是存在的(除非是空表),这就...原创 2019-04-29 13:48:04 · 2555 阅读 · 0 评论 -
C中判断一个整数是否等于某连续整数之和
#include<stdio.h>#include<stdlib.h>void fun( int n ){ int j, b, c, m, flag=0; for (b=1; b<=n/2; b++) //b=1开始至n/2,尝试有1开始的累加之和为n { m = n; //每次while循环...原创 2019-05-05 13:39:12 · 1526 阅读 · 0 评论