程序设计基础的总结 9.docx
- 文档编号:13567454
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:21
- 大小:70.58KB
程序设计基础的总结 9.docx
《程序设计基础的总结 9.docx》由会员分享,可在线阅读,更多相关《程序设计基础的总结 9.docx(21页珍藏版)》请在冰点文库上搜索。
程序设计基础的总结9
2013程序设计复习
考试题型
判断、单选、读程序写结果、程序填空、编程题
一、绪论
1.C程序的基本结构
一个main函数和若干个其他函数构成
2.C程序的运行步骤(两种集成开发环境)
编辑、编译、连接、运行
3.保留字、标识符
保留字(32个):
系统规定,有特定含义,不能用作其他用途
标识符:
由字母或下划线开头,字母、下划线和数字构成(P17)
二、顺序结构(本章较为经典的编程题:
P55题2.46、题2.47;第三次的上机题:
1)
1.常量(P18)
整型常量(P19表2-9)12301230x123123L
(见P21例2-2以及书后习题P512.17)
字符常量‘a’‘A’(注意其对应的十进制值)
转义字符常量‘\t’‘\n’‘\\’‘\123’‘\x1a’
字符串常量“12345”
实型常量123.451.5e-31.5e5(见P20例2-4)
如:
printf(“12345.6的科学计数法表示:
%E\n”,12345.6);
输出结果:
1.234560e+004
符号常量#definePI3.1416926
注意:
在字符常量中使用(‘)和(\)以及在字符串中使用(“)和(\)均需在字符前加上(\)!
2.变量(注意其在ANSIC和ANSIC++标准中所占字节长度)
intlongshortunsignedcharfloatdouble
指针变量、枚举变量
例:
enumcolor{red,yellow,blue,white,black};
enumcolorx,y,z;
x=red;y=blue;
构造类型的变量:
数组、结构、联合
3.(P24)表达式(了解其优先级:
见P34表2-20,尤其是逻辑表达式的。
)
算术表达式(+-*/%++--)(前(后)自增(减):
P27例题2-12)
例:
(-b+sqrt(b*b-4*a*c))/(2*a)
关系表达式(<<=>>===!
=)
例:
A+b>=c
逻辑表达式(!
&&||)(见P51题2.16)
a&&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.以下程序的输出结果是____。
main()
{inta=4,b=5,c=0,d;
d=!
a&&!
b||!
c;
printf("%d\n",d);
}
条件表达式(?
:
)
例:
Max=x>y?
x:
y(若x>y为真,其结果为x的值;若为假,则为y的值)
逗号表达式,
例:
A=(3+x,x+7,x+y+z);
例:
#include
main()
{inta,b;
a=3*5,a*4;
b=(3*5,a*4);
printf(“a=%d\nb=%d\n”,a,b);
}
运行结果为:
____
(其运算规则同于逻辑表达式&&||!
)
位运算表达式(&|~^<<>>)(稍作了解)
例:
C=a^b
赋值表达式=
例:
x=(1+2)*3/8/4;
复合赋值表达式(+=-=*=/=%=&=|=^=~=<<=>>=)
例:
X+=yw&=zt*=x+y
4.★输入输出函数(P37)
Ch=getch()输入字符,不在屏幕显示
Ch=getchar()输入字符,在屏幕显示
gets(ch)输入字符串,在屏幕显示
scanf(“格式控制”,地址列表)任意类型数据输入
putchar(ch)/putch(ch)输出字符
puts(ch)输出字符串
printf(“格式控制”,变量列表)任意类型数据输出
P46例2-25
输出格式如下:
(课后习题P51题2.18、题2.41)
%d%md%-md
%o%x%u%ld%hd
%c%s%f%e%lf%le
三、分支结构(本章经典编程题:
课后习题P94题4.31
P82例4-11)
1.if(e)s;
例:
scanf(“%d”,&x);
if(x>=0)printf(“x=%d\n”,x);
2.if(e)s1;elses2;
例:
scanf(“%d”,&x);
if(x>=0)y=x;elsey=-x;
printf(“y=%d\n”,y);
3.if的嵌套
(1)规则嵌套:
例:
输入成绩,输出等级
scanf(“%f”,&x);
if(x>=90)y=’A’
elseif(x>=80)y=’B’;
elseif(x>=70)y=’C’;
elseif(x>=60)y=’D’;
elsey=’E;
printf(“y=%c\n”,y);
也可以改成下面形式:
(2)任意嵌套:
scanf(“%f”,&x);
if(x>=60)
if(x>=70)
if(x>=80)
if(x>=90)y=’A’;
elsey=’B’;
elsey=’C’;
elsey=’D’;
elsey=’E’;
printf(“y=%c\n”,y);
4.switch结构(P84例4-12;注意使用break与不使用break的区别)
例:
输入成绩,输出等级
scanf(“%f”,&x);
k=x/10;
switch(k)
{caes9:
case10:
y=’A’;break;
case8:
y=’B’;break;
case7:
y=’C’;break;
case6:
y=’D’;break;
default:
y=’E’;
}
printf(“y=%c\n”,y);
如:
不使用break时:
★例1:
有以下程序
main()
{inti;
for(i=0;i<4;i++)
switch(i)
{case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
程序运行后的输出结果是_0001223___。
5.break(退出switch语句)
四、循环结构(掌握这些结构所对应的流程图;本章较为经典的编程题:
第七次上机题:
1、4,第八次上机题:
2;课后习题P124题5.19、题5.36;P112例5-15;P115例5-20)
1.while(e)s;
2.for(e1;e2;e3)s;
★例1:
求s=1-1/2+1/3-1/4+1/5-1/6+…前10项之和
main()
{floats=0,t;
intI,p=1;
For(i=1;i<=10;i++)
{t=1.0*p/i;
S=s+t;
p=-p;
}
printf(“s=%f\n”,s);
}
3.
doswhile(e);(不要漏掉分号)
break(提前结束本循环)
continue(提前结束本次循环,继续下一次循环)
goto(无条件转向)例:
loop:
{s;}
gotoloop;
4.循环嵌套
例1:
#include
main()
{intk=1,m=2,i,j;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
k++;
k=k-j;
}
m=i+j;
printf("m=%d\n",k);
}
结果为:
m=1
三、函数与宏定义(本章较为经典的编程题:
上机题:
第九次:
1,第十次:
2;)
1.函数定义(其存储类型在未定义时,默认为extern)
类型(若未定义,则默认为int型)函数名(形参及类型说明)
{局部变量及类型说明;
语句;
Return表达式;}
2.函数声明类型函数名(形参及类型说明);(不要漏掉分号!
!
)
3.函数调用(P154题6.5)
(1)有返回值的函数调用语句:
变量名=函数名(实际参数);
(2)无返回值的调用语句:
函数名(实际参数);
4.函数返回值return
★例1:
求指定范围内的素数
#include
intisprime(intx);
voidmain()
{
inti;
for(i=10;i<=20;i++)
if(isprime(i))
printf(“%d“,i);
}
intisprime(intx)
{
inti;
for(i=2;i if(x%i==0) return0; return1; } 结果: 11,13,17,19 5.局部变量和全局变量 全局变量: 函数外定义,有效范围从定义位置开始到原文件结束 局部变量: 函数内定义,有效范围从定义位置开始到该函数结束 6.变量的存储类别(注意其相关变量存储的区域;P156题6.8) 全局变量: externstatic局部变量: autoregisterstatic 全局变量未定义时,默认为extern;局部变量未定义时,默认为auto. 7.函数的递归和嵌套 1.直接递归: main→A→A 递归: 2.间接递归: main→A→B→A 嵌套: 在某函数中调用另一函数。 ★例,求组合数 。 (其中 ) #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)) ;}(函数的嵌套) main() {intm,n,t; scanf(\“ %d%d ”,&m,&n) ; t=cmn(m,n) ; printf(“%d\n”,t) ; } 8. 预处理 (1)、不带参数的宏: #definePI3.14159 宏定义: #define(注意其有效范围) (2)、带参数的宏: #defineS(r)3.14159*r*r(宏替换时为严格的字符替换,为避免二义性,应使用圆括号,如P140例6-10) 文件包含: #include 四、数组(注意: .数组在内存中是按顺序连续存放的,占用的内存大小为每一个元素所占内存大小的和;.数组不能整体输出,只能对其数组元素进行输入输出;.使用数组时,一定要在数组定义的范围内。 本章较为经典的编程题: P191题7.37、题7、47;上机题: 第十二次: 2) 1.一维数组的定义和使用 inta[10]; 2.一维数组的初始化: 定义数组的同时对数组中的元素赋初值(P189题7.2) 若<初值列表>中给出的数据个数少于<元素个数>: .自动存储类型: 后面的值不确定; .静态存储类型: 后面元素的值自动赋值为0,字符数组赋值为NULL. floatb[6]={1,2,3,4,5,6}; 3.一维数组应用(冒泡排序、选择排序) ★例1: 实参与形参中: 单向值传递和双向地址传递举例 #include"stdio.h" voidaaa(inta[2],intb,int*c); main() {intw[2]={10,20},x=30,y=40,*z=&y; aaa(w,x,z); printf("%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: 用数组产生一批随机数并排序 //冒泡排序 #include #include #include voidran(inta[],intn) {intj srand(time(NULL)); for(i=0;i a[i]=rand()%1000; } voidbubsort(inta[],intn) {intj,i,k; for(i=0;i for(j=n-1;j>=i+1;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础的总结 程序设计 基础 总结