大基C复习2013_01讲述
考试系统使用注意(务必认真研读) ! 准备离场前,用考试系统中的“查看上传文件”菜单检 查.cpp文件是否正确上传,此检查步骤非常关键,具体 操作见下页。 ! 编程题上传前必须关闭VC应用程序,无法 正常关闭的也必须用任务管理器强行 关闭。否则会影响cpp文件的正确上传! ! 1、 单击 此菜 单后 弹出 如下 窗口 2、 逐一打 开文件 夹查看 有否对 应的.cpp 文件 3、用记事本打开该文件看 其内容是否为所编内容 在“查看上传文件”菜单中只能检查.cpp文件是否正 确上传了,但不能在该打开窗口中直接对cpp文件进行修 改,若要进行修改,必须回到c:ks文件夹下修改,并关闭 VC后重新上传,然后重新做以上检查步骤。 ! 题型及题量。具体如下: 单选部分:10题 程序填充:2题 编程部分:4题(其中两个编程题,两个改错题) 试题类型及分布: ! 提示:考试系统的“帮助”菜单下有关于常用库函数的功 能介绍和头文件说明。 一、语法 标识符: 由字母、数字和下划线三种字符组成,且必须以字母或下划线开头。 关键字不能作为用户定义的标识符。 用户定义标识符: 合法: char2 _abc a3 P1 不合法: int pi break 3a a+b 常量: 合法: 'n' '102 ' 't ' '72' 不合法: 'ABC' 1.2e0.5 M '' 主要知识点 运算符和表达式: 结合性及优先级 例: (1) a*=a+2 a=a*(a+2) 若初始情况下a=3,则执行上述运算后a=? (2) x=0?a+:b+ 若已知a=4,b=3,x=5 则a、b? 对操作数的要求 (1) (i+j)+, 3+ () +,- 变量 (2) a%b a,b必须为整型 15 结果的类型 int n,s=0; for(n=1;n=0 则执行以下语句 后,各变量的值为? -a +a|-b; a=0, b=1 a=2, b=1 初始化与赋值: 错误: int a=b=c=0; 应为: int a=0,b=0,c=0; 或:int a(0),b(0),c(0); 或: int a,b,c; a=b=c=0; 语句: if(条件表达式) 几种等价关系 if(x) 等价于 if(x!=0) 思考:if(!x)的等价关系 switch语句 switch(a%5) case 0: couta+; case 1: cout+a; case 2: couta-; case 3: cout-a; 若a=2,则输出: 2 0 char a='A' switch(a) case 'A': couta-1; case 'B': couta+1; default: couta; 输出6466A 因A的ASCII码为65,而每个 case语句后无break 循环: (1)do _while 先执行后判断,至少执行一次 for ,while 先判断后执行,可能一次也不执行 for循环条件中常使用逗号表达式 void main() int i; for(i=0;i5;i+=2); couti; void main() int i; for(i=0;i5;i+=2) couti ; int k=0; while(k=0) k+; for(int k=1;k=3;k+); 6 0 2 4 注意区分空循环 执行次数? (2)break语句和continue语句 x=0; for(j=4;j=6;j+) if(j%2) break; x+=j; coutx; 4 x=0; for(j=4;j=6;j+) if(j%2) continue; x+=j; cout=1e-5) sinx=sinx+t; t= -t*x*x/(i+1)*(i+2); i=i+2; 求级数和的应用问题 如:一球从10米高度落下并反弹,且每次反弹的高度为下落的一 半,问第四次落地时共经过多少米? #include “iostream.h“ void main() float n,s=0,h=10; s=s+h; /第一次落地时经过的距离.因从高空落下和以后各次不同故特殊处理. for(n=2;n=4;n+) /第二次到第四次的处理过程. h=h/2; /反弹高度 s=s+2*h; coutsendl; 2. 素数 #include “math.h” k=sqrt(m); for(i=2;i=k;i+) if(m%i= =0)break; if(i= =k+1) else 求某个范围内的若干素数? 3. 最大公约数和最小公倍数 int gcd(int m,int n) int h; while(h=m%n) m=n;n=h; return (n); 也可以从定义出发求解最大公约数(程序略) 还可以用辗转相减的方法求解最大公约数(程序略) 4.打印图形 双重循环控制图形的输出 Ø 外循环控制行的变化 Ø 内循环控制每行中输出的字符数或表达式个数 关键:控制行首字符的输出位置 可通过灵活使用setw实现。 for(int i=0;i6;i+) coutsetw(6-i) ; /先输出6-i个空格来控制每行首字符输出位置 for(int j=0;j2*i+1;j+) cout“*“; cout='A' for(k=1;kmax) max=ak; (2)求最大元素的位置(即下标) int imax,k; imax=0; for(k=1;kaimax)/注意是元素之间比较,imax为最大下标 imax=k; /注意替换的是最大下标,而不是元素 随机产生整型数组元素 for(i=0;iN;i+) ai=rand( )%81+20 a的内容为20100之间的一组随机数 数值型数组的任何操作皆要引用到元素。