第一章 C语言基础.docx
- 文档编号:30405017
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:35
- 大小:30.27KB
第一章 C语言基础.docx
《第一章 C语言基础.docx》由会员分享,可在线阅读,更多相关《第一章 C语言基础.docx(35页珍藏版)》请在冰豆网上搜索。
第一章C语言基础
第一章C语言基础
一、C的特点
1、编程时以函数为单位sum()
2、运算符丰富
3、能进行位运算
4、语法限制不太严格
5、采用结构化编程
一、常量
1、整型常量
100int2B(字节)%d(输入与输出的格式说明符)
输出函数的格式:
printf(“格式说明符”,输出项);
floatx=10.089;
printf(“%f”,x);
注:
当要表示数的范围比较大时,则用长整型数来表示long%ld
2、实型常量
3.69float%f
注:
由于单精度型float所表示的数小数点后保留6位,如果更精确表示,由用double(双精度型)来表示
3、字符型常量
‘a’‘2’‘?
’char%c
4、字符串常量
“j1?
k”%s
三、C语言程序的编程格式
函数名()
{
定义部分;
执行部分;
}
注:
1》在C语言中,所有用到的变量必须要先定义,后使用
变量的定义格式
类型名变量名;
intr;
floats,h;
Intr;
FloatS,h;
2》输入函数的格式
Scanf(“格式说明符”,&输入项);
intr;
3>变量名的命名规则
注:
只能由字母、数字、下划线组成,且数字不开头
main()
{
intr;
floats_1,h;
printf("请输入圆的半径:
");
scanf("%d",&r);
s_1=3.14*r*r;
h=2*3.14*r;
printf("圆的面积是:
%f\n",s_1);
printf("圆的周长是:
%f\n",h);
}
四、考试运行程序的步骤
1、保存ctrl+s
2、编译ctrl+f7
3、连接运行f7
4、查看运行结果
Ctrl+f5
五、运算符与表达式
注:
选择结构的编程格式
if(条件)
语句1;
else
语句2;
执行过程:
当条件成立时,执行语句1;否则执行语句2
1、算术运算符
+-*/%(求余)
注:
=与==的区别
x=3表示将右边的值赋给左边的变量
x==3表示比较前后两个数是否相等
main()
{
intn;
printf("请输入密码:
");
scanf("%d",&n);
if(n==123)
printf("欢迎光临请进入\n");
else
printf("密码不正确,请重新输入\n");
}
main()
{
intn;
printf("请输入要判断的数:
");
scanf("%d",&n);
if(n%2==0)
printf("则为偶数\n");
else
printf("则为奇数\n");
}
2、关系运算符
>>=<<=!
=
注:
关系运算符所产生的结果为逻辑值,成立为真,用1表示;不成立为假,用0表示
2、逻辑运算符
&&(与)||(或)!
(非)
并且或者取反
if(i%3==0&&i%7==0)
printf(“%d”,i);
3、自加运算符
i++:
先执行,后自加
++i先自加,后执行
main()
{
ints=0,i=3;
s=++i;
printf("s=%d,i=%d\n",s,i);
}
main()
{
ints=0,i=3;
s=i++;
printf("s=%d,i=%d\n",s,i);
}
5、条件运算符
格式:
条件?
表达式1:
表达式2;
执行过程:
当条件成立时,执行表达式1,否则执行表达式2
main()
{
ints=0,i=3,j=6;
s=j
j:
i;
printf("s=%d\n",s);
}
6、强制类型转换运算符
格式:
(基本类型)(表达式);
main()
{
ints=0;
floati=4.36,j=6.86;
s=(int)(i+j);
printf("s=%d\n",s);
}
4、复合的赋值运算符
+=-=×=/=%=
a+=2等价于a=a+2
main()
{
ints=0;
s+=3;
printf("s=%d\n",s);
}
第二章程序设计基础
一、C语言常用头文件
注:
1>在编程时,如用到C语言的数学函数,则加#include
#include
main()
{
ints,n;
printf("请输入要开根号的值:
");
scanf("%d",&n);
s=sqrt(n);
printf("s=%d\n",s);
}
2>在编程时,如用到C语言库函数,则加
#include
3>在编程时,如用到字符处理函数,则加
#include
%s
第三章C语言程序的编程结构
一、顺序结构
二、选择结构
1、单分支选择结构
格式:
if(条件)
语句1;
语句2;
执行过程:
当条件成立时,执行语句1,然后执行语句1下面的所有语句;否则,只执行语句2及语句2下面的所有语句。
main()
{
inta=6,b=3,c=0;
if(a>b)
b=c;
c=a;
a=b;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
#include
main()
{
inta=6,b=3,c=0;
if(a
b=c;
c=a;
a=b;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
注:
复合语句的使用{}
格式:
if(条件)
{
语句1;
语句2;
}
执行过程:
在执行时,将花括号中的所有语句视认为是一条语句。
条件成立则执行花括号中的所有语句,不成立时则执行花括号下面的语句。
#include
main()
{
inta=6,b=3,c=0;
if(a
{
b=c;
c=a;
a=b;
}
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
#include
main()
{
inta=6,b=3,c=0;
if(a>b)
{
b=c;
c=a;
a=b;
}
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
2、双分支选择结构
格式:
if(条件)
语句1;
else
语句2;
执行过程:
当条件成立时,执行语句1;否则执行语句2
3、if的嵌套
格式:
if(条件1)
语句1;
elseif(条件2)
语句2;
else
语句3;
1x>0
y=0x=0
-1x<0
三、循环结构
1、for循环结构
格式:
for(赋初值;循环条件;改变变量)
循环体语句;
执行过程:
先执行赋初值语句,然后判断循环条件,成立时,执行循环体语句,最后执行改变变量,又开始判断循环条件,成立时继续执行重复执行,一直到循环条件不成立,才跳出,执行循环体语句下面的。
例:
1>求1+2+3+4+5…+100的和
2>求1-2+3-4+5-6…-100的和
F=1f*=-1f=f*-1
注:
当重复执行的循环体语句在两条以上时,一定要以复合语句的形式出现,加{};否则中只执行循环条件下面的第一条语句。
main()
{
intsum=0,i,;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
main()
{
intsum=0,i,f=1;
for(i=1;i<=100;i++)
{sum=sum+i*f;
f*=-1;}
printf("sum=%d\n",sum);
}
2、当型循环结构
格式:
while(循环条件)
循环体语句;
执行过程:
先判断循环条件,成立时重复执行循环体语句,一直到循环条件不成立才跳出。
main()
{
intn=9;
while(n>6)
n--;
printf("%d",n);
}
main()
{
intn=9;
while(n>6)
{n--;
printf("%d",n);
}
}
3、直到型循环
格式:
do
{
循环体语句;
}while(循环条件);
执行过程:
先执行循环体语句,然后判断循环条件,成立时重复执行循环体语句,一直到循环条件不成立才跳出。
main()
{
intsum=0,i=1;
do
{
sum=sum+i;
i=i+1;
}while(i<=100);
printf("sum=%d\n",sum);
}
main()
{
intsum=0,i=1;
do
{
sum=sum+i;
i=i+1;
}while(i>=100);
printf("sum=%d\n",sum);
}
编程求1+12+123+1234+12345
main()
{
inti,s=0,s1=0;
for(i=1;i<=5;i++)
{
s=s*10+i;
s1=s1+s;
}
printf("s1=%d\n",s1);
}
1982cnt=0
For(i=1000;i<5000;i++)
If(1+9==8+2&&1+9==(2-1)*10)
{
Sum=sum+I;cnt=cnt+1;
}
四、for循环的省略格式
1、赋初值语句可以省略,但;不能省略
main()
{
intsum=0,i=1;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum=%d\n",sum);
}
2、赋初值语句与改变变量可以是一个逗号表达式
main()
{
inti,j;
for(i=1,j=9;i printf("%d%d",i,j); } 3、程序的控制语句 break: 强制跳出循环体 continue: 将程序的执行返回到改变变量,又开始判断循环条件,成立时继续执行 注: 循环条件也可以省略,但一定要在循环体中加一条语句break,使程序执行有限操作后,强制性跳出,否则构成死循环。 main() { inti,sum=0; for(i=1;;i++) {if(i>100) break; sum=sum+i; } printf("%d\n",sum); } main() { inti; for(i=1;i<=100;i++) {if(i%3==0) continue; printf("%d",i); } } 第四章函数 一、无形参无返回值的自定义函数 1、定义格式 返回值的类型自定义函数名() { 定义部分; 执行部分; } 注: 1>如果是无返回值类型,则用void表示 2>如果省略返回值类型,则默认为整型 3>无论有多少个自定义函数,程序的执行总是从主函数开始,从主函数结束,而自定义函数只是一个调用与返回的过程 主函数调用自定义函数的格式 自定义函数名(); voidsss() { printf("************************************************\n"); } voidfff() { printf("kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk\n"); } main() { sss(); fff(); sss(); } 二、有形参有返回值的自定义函数 1、定义格式 返回值的类型自定义函数名(形参项) {0 定义部分; 执行部分; Return返回值; } 2、调用语句格式 自定义函数名(实参项); 注: 主函数在调用自定义函数时,实参与形参为一一传递的关系。 intsss(inta,intb) { ints=0; s=a+b; returns; } main() { intx=3,y=4,sum=0; sum=sss(x,y); printf("sum=%d\n",sum); } 三、变量的类型 按变量的作用范围分全局变量与局部变量 1、全局变量在整个程序中都起作用,而局部变量只在该函数模块内部起作用。 inta=6; sss() { intb=4,x=0; x=a+b; printf("x=%d\n",x); } main() { intc=5,x=0; x=a+c; printf("x=%d\n",x); sss(); } 第五章数组 一、数组: 名称相同、下标不同的一组元素。 a[1]a[2]a[3]a[4] 二、定义格式 类型名数组名[下标值]; Inta[3]; 注: 在C语言中,数组的下标从0开始,不能使用它的下标值,否则会出现下标越界的错误。 a[0]a[1]a[2] 三、数组的赋值 inta[3]={-2,6,8}; 注: 一维数组的输入与输出是通过for循环来实现。 main() { inti,a[10]={1,2,3,4,5,6,7,8,9,10}; for(i=0;i<10;i++) printf("%d,",a[i]); } main() { inti,a[10]={1,2,3,4,5,6,7,8,9,10}; for(i=9;i>=0;i--) printf("%d,",a[i]); } 例1: 编程: 求a数组所有元素的最大值 main() { intmax,i,a[10]={100,2,-3,24,5,6,71,8,9,10}; max=a[0]; for(i=1;i<10;i++) if(a[i]>max) max=a[i]; printf("max=%d\n",max); } 例2: 编程: 将a数组所有元素能被2整除的元素值存放到b数组,且统计个数. main() { intcnt=0,i,a[10]={100,2,3,24,5,6,71,8,9,10},b[10]; for(i=0;i<10;i++) if(a[i]%2==0) { b[cnt]=a[i];cnt=cnt+1; } printf("满足条件的数的个数为: %d\n",cnt); for(i=0;i printf("b[%d]=%d\n",i,b[i]); } 四、for循环的嵌套 for(赋初值;循环条件;改变变量) for(赋初值;循环条件;改变变量) 循环体语句; main() { inti,j; for(i=1;i<3;i++) for(j=1;j<3;j++) printf("%d*%d=%d",i,j,i*j); } main() { inti,j; for(i=1;i<=9;i++) {for(j=1;j<=i;j++) printf("%d*%d=%d",j,i,j*i); printf("\n"); } } 注: 排序算法: 起泡法排序 #defineN4 a[N]={-3,8,9,2}; 由小到大排序的思想: 小的上浮、大的下沉 第1趟: 4个数两两比较3次 2,8,-3,9 第2趟: 3个数两两比较2次 2,-3,8,9 第3趟: 2个数两两比较1次 -3,2,8,9 总结: n个数排序,比较n-1趟,每一趟比较n-1-i for(i=0;i for(j=i+1;j if(a[i]>a[j])a[0]>a[2] {t=a[i];a[i]=a[j];a[j]=t;} #defineN4 main() { intt,a[4]={8,2,9,-3},i,j; for(i=0;i for(j=0;j if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<4;i++) printf("%d",a[i]); } inti,j,t,qw,bw,sw,gw; for(i=0;i<200;i++) { qw=a[i]/1000; bw=a[i]%1000/100; sw=a[i]%100/10;6666 gw=a[i]%10; if(qw+sw==bw+gw&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;i for(j=0;j if(b[j]>b[j+1]) {t=b[j];b[j]=b[j+1];b[j+1]=t;} 五、二维数组 1、定义格式 类型名数组名[行下标][列下标]; Inta[3][3]={1,2,3,4,5,6,7,8,9}; 123a[0][0]0102 456a[1][0]1112 789a[2][0]2122 注: 二维数组的输入与输出是通过for循环的嵌套来实现。 main() { inti,j,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d",a[i][j]); printf("\n"); } } 五、字符型数组 Charx=’a’; Charx[20]=”abcd4”; Charx=”abd”; 注: 字符型变量只能存放字符型常量;而字符串只能通过字符型数组来存放。 六、字符型常用处理函数 Gets()字符串输入 Puts()字符串输出 main() { charx[20]; scanf("%s",&x); printf("%s\n",x); } main() { charx[20]; gets(x); puts(x); } 字符串测试函数 Strlen() main() {ints=0; charx[20]="amkh"; s=strlen(x); printf("%d\n",s); } main() {ints=0; charx[20][20]={{"amkh"},{"wes45"}}; s=strlen(x[0]); printf("%d\n",s); } a=97b=98 A=65B=66 32 main() {charx='A'; x=x+32; printf("%c\n",x); } main() {inti,j,x1=0; charx[2][20]={{"aMkh"},{"wes45z"}}; for(i=0;i { x1=strlen(x[i]); for(j=0;j if(x[i][j]>='b'&&x[i][j]<='z') x[i][j]=x[i][j]-1; elseif(x[i][j]=='a') x[i][j]='z'; } for(i=0;i<2;i++) printf("%s\n",x[i]); } inti,j,x1=0; for(i=0;i { x1=strlen(xx[i]); for(j=0;j if(xx[i][j]>='b'&&xx[i][j]<='z') xx[i][j]=xx[i][j]-1; elseif(xx[i][j]=='a') xx[i][j]='z'; } 第六章指针 一、指针: 就是地址。 二、指针变量的定义格式 类型名*变量名; int*p; 三、指针变量的赋值 Int*p,a=3; P=&a; 注: 指针变量只能存放变量的地址。 四、指针变量的使用 main() { inta; printf("请输入a的值: "); scanf("%d",&a); printf("%d",a); } main() { int*p,a; p=&a; printf("请输入a的值: "); scanf("%d",p); printf("%d",*p); } 注: scanf("%d",p);输入函数中的p表示将键盘上输入的数存放到指针变量所指向变量的存储单元 printf("%d",*p);输出函数中的*p表示输出指针所指向变量存储单元的值 五、指针变量的移动p++ main() { inti,a[5]={5,8,9,63,-2}; for(i=0;i<5;i++) printf("%d,",a[i]); } P=a: 注: a为数组名,也表示地址,可以不加& main() { int*p,i,a[5]={5,8,9,63,-2};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 C语言基础 语言 基础