C语言知识总结

一. C语言的结构

1. 程序的构成,main函数和其他函数。

(1) 一个C程序由一个或若干个函数构成。程序中至少应包含一个main函数。函数

是C程序的基本单位。

(2) 一个C程序总是从main函数开始执行,不论main在最前面,最后面,或中间。

(3) 函数由函数首部和函数体构成。

如: int max ( int x, int y) /* 函数首部 包括函数名、函数类型、函数参数名和参数类型 ;函数体包括 声明部分和执行部分*/

{ 。。。}

(4) C语言由函数构成的特点使得C容易实现函数的模块化。

(5) 执行语句必须由分号结束。

2. 头文件,数据说明和函数的开始和结束标志。

(1) 头文件 #include <stdio.h> #include <math.h> 调用库函数

(2) 函数体开始的标志是 {,结束标志是}

3. 源程序的书写格式和C语言的风格。

(1)

(2)

(3)

(4) 函数的首部,后面不要加分号。 书写格式自由,一行内可以写几个语句,一个语句可以写在多行上。 为表现程序结构,建议采用锯齿形程序格式。即缩进。。。 可以用/* ....*/ 对C语言的任何部分作注释。

例题:

一个函数由两部分组成: 和 。

一个函数体的范围是以 开始,以 结束。

一个C语句最少应包含 。

任何C语言都是从 开始执行。

二. 数据类型及其运算

1. 基本数据类型及其定义方法。

(1)数据类型分为:

基本类型 :( 整形 int )( 字符型 char ) ( 实型 float double ) ( 枚举类型 )

构造类型 :( 结构体构造 ) ( 共用体构造 )

指针类型

空类型

(2) 变量和常量

整形注意:常量 八进制以0开头,如0123 表示八进制数123,即十进制 83 十六进制以0x开头,如0x123,即十进制整数 291。 实型注意:实型又称为浮点型,两种表示方式为:

十进制形式 ,由数字和小数点组成(必须有小数点) 123.0 ,0.0 指数形式,如 123e3或123E3都代表123*10 三次方。e 或 E 之前

必须由数字,之后必须是整数。 如e3,1e3.5都是不合法的。 float 有效数字为7位,double 为15-16位。 Char型注意: 字符常量 有两种 单引号括起来的 如 ‘a’

转义字符 即以\ 开头的字符序列,如 \n 换行 \b 退格 \\ 反斜杠字符

字符串常量 用一堆双引号括起来。“a”. 在内存中,’a’占一个字节,而“a”在后面加一个字符串结束标志。 ‘\0’空字符为结束标志。

2. 运算符的种类、运算优先级。

按书讲解。 注意重点 i++ 和++i .

假设i的初值为3,求:(i++)+(i++)+(i++)= ? 12 or 9 k = (++i) + (++i) + (++i) k= 15 or 18 i++ :先使用,后增值!!!

两个整数相除,结果为整数。

字符型可以与整型数据通用。 其中大写A为65,小写为97.。。。

3. 表达式和求和规则。

按书讲解。 重点: ,表达式 永远等于逗号右边的值。

复合赋值 : a* =y+8 等同于 a= a*(y+8) 一定要牢记运算符的优先级和结合性!!! 例子1::求以下算术表达式的值:

1. x+a%3*(int)(x+y)%2/4 设x=2.5 ,a=7 ,y=4.7

2. (float)(a+b)/2 + (int)x%(int)y 设 a=2 ,b=3 ,x=3.5 ,y=2.5 例子2:求以下表达式的值,设a=12.

1. a+=a 2. a-=2 3. a*=2+3 4. a/=a+a

例子3: ‘a’在内存中占 个字符,“a”占 个字符。

例子4: 表达式32+‘A’-2/3*5的值是 ,a=b=c=6+2/5的值是 ,逗号表达式b=6,18+(b+=4)*3的值是 。

例子5:下面程序的运行结果是 。

main()

{char ch;

ch=’B’;

printf(“%c,%d\n,ch,ch);}

掌握两点:1.B的ASCII码是66

2. printf 的参数格式 :d 带符号的十进制形式输出整数

c 以字符形式输出,只输出一个字符。 f 以小数形式输出单、双精度数,隐含输出6位小数。 s 输出字符串

x 以16进制输出无符号整数。

习题:以下程序的运行结果是:

main()

{ int i,j;

float a,b;

char c;

long m ,n;

i=5;j=-3;

a=25.5;b=3.0;

m=a/b;

n=m+i/j;

printf(“%d\n”,n);

}

 

第二篇:C语言知识总结

C语言知识总结

1如何接收字符串

使用字符数组 使用指针。(可以随意改变字符的长度,而不用向数组一样要同时改变数组的长度)

#include<stdio.h>

int main()

{

char a[10]="yangtao";

char *ab="jfksdjfklsjfkj";

printf("%s\n",a);

printf("%s",ab);

}

2 系统自带的字符串处理函数(处理字符串数据)

#include<stdio.h>

#include<string.h>

int main()

{

int i;

char *ab="jfksdjfklsjfkj";

i=strlen(ab);

printf("共有的字符串个数\n");

printf("%d",i);

}

函数原型是:

int strlen(*p)

3 ASC码表

#include<stdio.h>

#include<string.h>

int main()

{

char kk='a';

int k=65;

printf("%c",k);

printf("%d",kk);

}

这就是为什么电脑能处理键盘上字符的原因

应用大小写字母的转换

#include<stdio.h>

#include<string.h>

int main()

{

char KK='A';

char kkk='b';

KK=KK+32;

kkk=kkk-32;

printf("%c\n",KK);

printf("%c\n",kkk);

}

4字符串高级应用读取SQL语句。

引申出SQL语句

5scanf()语句从键盘输入时需要按括号里面的格式输入才不会出错。 6验证码忽略大小写的实现

Strcmp{}

#include<stdio.h>

#include<string.h>

void zhuanghuangdaxie(char *P);

void main()

{

char shuru[100];

char yanzhengma[100]="hduFESF";

printf("此功能是实现忽略大小写的验证码验证功能\n"); printf("验证码为: hduFESF\n");

printf("请输入验证码:\n");

scanf("%s",shuru);

zhuanghuangdaxie(shuru);

zhuanghuangdaxie(yanzhengma);

while(1)

{

if(!strcmp(shuru,yanzhengma))

{

printf("输入成功\n");

}

else

{

printf("输入失败\n");

}

printf("请输入验证码:\n");

scanf("%s",shuru);

}

}

void zhuanghuangdaxie(char* P)

{

int k=0;

while(P[k]!='\0')

{

if(P[k]>96 && P[k]<123)

{

P[k]=P[k]-32;

}

k++;

}

}

7结构体

其实是一种新的数据类型

Struct student

{

};

一样的结构:

Int a

Struct student a

类型 变量名

Char * p

Struct student * p

举例:

基本框架

Struct shuju

{

Struct shuju a;

a=creat();

Print(a);

};

Struct shuju creat()

{

}

Void print (struct fushu f)

{

}

复数相加

#include<stdio.h>

#include<string.h>

struct fushu

{

int real;

int image;

};

struct fushu creatfushu();

void add(struct fushu f1,struct fushu f2); void print(struct fushu f);

void main()

{

struct fushu fu1,fu2;

printf("请你创建第一个复数\n"); fu1= creatfushu();

print(fu1);

printf("请你创建第二个复数\n"); fu2= creatfushu();

print(fu2);

printf("实现两个复数相加\n");

add(fu1,fu2);

return 0;

}

struct fushu creatfushu()

{

struct fushu a;

printf("请输入一个数作为复数的实部\n"); scanf("%d",&(a.real));

printf("请输入一个数作为复数的虚部\n"); scanf("%d",&(a.image));

return a;

}

void print(struct fushu f)

{

if(f.image<0)

{

printf("你创建的复数是:\n"); printf("fu1=");

printf("%d",f.real);

printf("%di\n",f.image);

}

else

{

printf("你创建的复数是:\n"); printf("fu1=");

printf("%d",f.real);

printf("+");

printf("%di\n",f.image); }

}

void add(struct fushu f1,struct fushu f2) {

printf("输出的结果是:\n"); printf("fushu=");

printf("%d",f1.real+f2.real); if((f1.image+f2.image)<0) {

printf("%di",f1.image+f2.image); }

else

{

printf("+");

printf("%di",f1.image+f2.image); }

}

结构体的更深层次的应用

相关推荐