c语言复习纲要Word格式文档下载.docx
- 文档编号:6841805
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:17
- 大小:19.11KB
c语言复习纲要Word格式文档下载.docx
《c语言复习纲要Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言复习纲要Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。
b&
c
A||B||C
例1:
设有以下程序段
intx=2,y=2,z=0,a;
a=++x||++y&
z++;
printf(“%d,%d,%d\n”,x,y,z);
执行后输出的结果是:
3,2,0
2.以下程序的输出结果是__1__。
main()
{inta=4,b=5,c=0,d;
d=!
a&
!
b||!
c;
printf("
%d\n"
d);
}
条件表达式(?
:
)
Max=x>
y?
x:
y
逗号表达式,
例:
A=(3+x,x+7,x+y+z);
位运算表达式(&
|^~<
<
>
C=a^b
赋值表达式=
x=(1+2)*3/8/4;
复合赋值表达式(+=-=*=/=%=&
=|=^=~=<
X+=yw&
=zt*=x+y
4.输入输出函数
Ch=getch()输入字符,不在屏幕显示
Ch=getchar()输入字符,在屏幕显示
gets(ch)输入字符串,在屏幕显示
scanf(“格式控制”,地址列表)任意类型数据输入
putchar(ch)输出字符
puts(ch)输出字符串
printf(“格式控制”,变量列表)任意类型数据输出
输出格式如下:
%d%md%-md
%o%x%u%ld%hd
%c%s%f%e%lf%le
三、分支结构
1.if(e)s;
scanf(“%d”,&
x);
if(x>
=0)printf(“x=%d\n”,x);
2.if(e)s1;
elses2;
scanf(“%d”,&
=0)y=x;
elsey=-x;
printf(“y=%d\n”,y);
3.if的嵌套
输入成绩,输出等级
scanf(“%f”,&
if(x>
=90)y=’A’
elseif(x>
=80)y=’B’;
=70)y=’C’;
=60)y=’D’;
elsey=’E;
printf(“y=%c\n”,y);
也可以改成下面形式:
scanf(“%f”,&
=60)
=70)
=80)
=90)y=’A’;
elsey=’B’;
elsey=’C’;
elsey=’D’;
elsey=’E’;
printf(“y=%c\n”,y);
4.switch结构(注意使用break与不使用break的区别)
k=x/10;
switch(k)
{caes9:
case10:
y=’A’;
break;
case8:
y=’B’;
case7:
y=’C’;
case6:
y=’D’;
default:
y=’E’;
有以下程序
{inti;
for(i=0;
i<
4;
i++)
switch(i)
{case0:
%d"
i);
case2:
default:
}
程序运行后的输出结果是_0001223___。
5.break(退出switch语句)
四、循环结构
1.while(e)s;
2.for(e1;
e2;
e3)s;
求s=1-1/2+1/3-1/4+1/5-1/6+…前10项之和
{floats=0,t;
intI,p=1;
For(i=1;
=10;
{t=1.0*p/i;
S=s+t;
p=-p;
printf(“s=%f\n”,s);
3.doswhile(e)
break(提前结束本循环)
continue(提前结束本次循环,继续下一次循环)
goto(无条件转向)
4.循环嵌套
例1:
#include<
stdio.h>
{intk=1,m=2,i,j;
for(i=0;
3;
{for(j=0;
j<
j++)
k++;
k=k-j;
}
m=i+j;
printf("
m=%d\n"
k);
结果为:
m=1
五、函数与宏定义
1.函数定义
类型函数名(形参及类型说明)
{局部变量及类型说明;
语句;
Return表达式;
2.函数声明类型函数名(形参及类型说明);
3.函数调用
变量名=函数名(实际参数);
函数名(实际参数);
4.函数返回值return
求指定范围内的素数
#include<
intisprime(intx);
voidmain()
{
inti;
for(i=10;
i<
=20;
i++)
if(isprime(i))
printf(“%d“,i);
intisprime(intx)
{
inti;
for(i=2;
x;
if(x%i==0)
return0;
return1;
结果:
11,13,17,19
5.局部变量和全局变量
全局变量:
函数外定义,有效范围从定义位置开始到原文件结束
局部变量:
函数内定义,有效范围从定义位置开始到该函数结束
6.变量的存储类别
externstatic局部变量:
autoregisterstatic
7.函数的递归和嵌套
例,求组合数c(m,n)
#include<
intjiechen(intn)
{inti;
if(n==0||n==1)i=1;
elsei=n*jiechen(n-1);
returni;
intcmn(intm,intn)
{returnjiechen(m)/(jiechen(n)*jiechen(m-n))
;
{intm,n,t;
scanf(\“
%d%d
”,&
m,&
n)
t=cmn(m,n)
printf(“%d\n”,t)
8.预处理
宏定义:
#define
文件包含:
#include
六、数组
1.一维数组的定义和使用
inta[10];
2.一维数组的初始化
floatb[6]={1,2,3,4,5,6};
3.一维数组应用(冒泡排序、选择排序)
实参与形参中:
单向值传递和双向地址传递举例
#include"
stdio.h"
voidaaa(inta[2],intb,int*c);
{intw[2]={10,20},x=30,y=40,*z=&
y;
aaa(w,x,z);
%d%d%d%d\n"
w[0],w[1],x,y);
voidaaa(inta[2],intb,int*c)
{a[0]++;
a[1]++;
b++;
(*c)++;
结果:
11213041
例2:
用数组产生一批随机数并排序
//冒泡排序
stdlib.h>
time.h>
voidran(inta[],intn)
{intj
srand(time(NULL));
n;
a[i]=rand()%1000;
voidbubsort(inta[],intn)
{intj,i,k;
n-1;
for(j=n-1;
j>
=i+1;
if(a[j]<
a[j-1])
{k=a[j];
a[j]=a[j-1];
a[j-1]=k;
{inta[20],k
ran(a,20)
//产生20个随机数
bubsort(a,20)
for(k=0;
k<
20;
k++)//输出排序后的结果
printf(“%d“,a[k]);
//选择排序
{intj,i,k,t;
{k=i;
for(j=i+1;
a[k])k=j;
{t=a[i];
a[i]=a[k];
a[k]=t;
//选择排序
4.多维数组的定义和使用
intx[3][4];
例如,输出x及x的转置
5.多维数组的初始化
intx[3][4]={{1},{2},{3}};
例3:
矩阵的转置
{inta[4][3],i,j,b[3][4];
for(j=0;
scanf("
&
a[i][j]);
b[i][j]=a[j][i];
{
%d"
a[i][j]);
\n"
);
6.字符数组的定义和使用
chara[10];
7.字符数组的初始化
chary[5]={‘a’,’b’,’c’,’d’};
charz[5]=
“abcd
“;
8.字符数组和字符串的关系
chara[30];
scanf(“%s”,a)或gets(a)
或for(i=0;
30;
i++)scanf(“%c”,&
a[i])
9.字符串的标准函数
getsputsstrlenstrcpystrcmp
举例
10.数组名作函数中的形参双向传地址
七、指针
1.变量的指针intj,*p=&
j
2.一维数组的指针
以下语句执行完成之后的结果是:
12
inta[5]={1,2,3,4,5},*p=a,b;
b=*p++;
printf(“%d%d\n”,b,*p);
3.指针数组int*p[n];
4.指向具有n个元素的一维数组指针int(*p)[n];
5.指针作函数中形参双向传地址
八、构造类型
1.结构类型定义
struct类型名
{类型分量名;
…
};
2.结构体的嵌套
3.结构类型变量的定义和使用、初始化
下述程序的输出结果是 ( ) 。
#include<
voidmain()
{structcomplex
{intx;
inty;
}cnum[2]={1,3,2,7};
printf(“%d”,cnum[0].y/cnum[0].x*cnum[1].x);
A、0B、1C、3D、6
定义一个学生结构体,包含:
姓名、三门课成绩、三门课平均成绩。
从键盘输入5个学生的数据,求出每个学生的平均成绩,最后输出5个人的信息。
structstu
{charname[20];
floats[3];
floataver;
{structstua[5];
inti,j;
floats;
5;
{scanf(“%s”,a[i].name);
s=0;
for(j=0;
{scanf(“%f”,&
a[i].s[j]);
s=s+a[i].s[j];
a[i].aver=s/3;
{printf(“%s“,a[i].name);
printf(“%f“,a[i].s[j]);
printf(“%f\n”,a[i].aver);
4.结构类型的指针
structstus,*p=&
s;
(*p).name(*p).s[0](*p).s[1](*p).s[2](*p).aver
p->
namep->
s[0]p->
s[1]p->
s[2]p->
aver
5.联合类型
例1、下面的运行结果是:
20,x
structn_c
{intx;
charc;
voidfunc(structn_cb)
{b.x=15;
b.c='
A'
{structn_ca={20,'
x'
func(a);
%d,%c\n"
a.x,a.c);
九、文件
1.文件的基本概念
2.文件的打开方式wrawbrbabw+wb+
3.文本文件的读写
FILE*fp;
charch;
fp=fopen(“aaa.txt”,”w”);
if(fp==NULL)exit(0);
while((ch=getchar())!
=’\n’)
fputc(ch,fp);
fclose(fp);
一十、位运算
(略)
分析运行结果
1.
#defineN4
voidfun();
for(i=1;
N;
fun();
voidfun()
{staticinta;
intb=3;
(%d,%d)\n"
a+=2,a*b);
运行结果:
(2,0)
(4,6)
(6,12)
2.
{inta[10]={1,2,3,4,5,6,7,8,9,10};
intb[10]={10,9,8,7,6,5,4,3,2,1};
inti,j;
for(i=0,j=9;
10&
0;
i+=5,j-=5)
a[%d]*b[%d]=%d\n"
a[i],b[j],a[i]*b[j]);
运行结果
a[1]*b[1]=1
a[6]*b[6]=36
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习 纲要