大学C语言复习ppt.ppt
《大学C语言复习ppt.ppt》由会员分享,可在线阅读,更多相关《大学C语言复习ppt.ppt(119页珍藏版)》请在三一文库上搜索。
1、复习,遵C语言考试大纲,1,一 基本概念, 字符集、标识符、关键字 各种常量的表示方法 变量的说明 其它概念,2,一 基本概念, 字符集、标识符、关键字 标识符由字母、数字或下划线组成,第一个字符必须是字母或下划线。 可用作C语言标识符的是: A. print _maf mx_2d aMb6 B. Iam scanf mx_ AMB C. sign 2mf a.f A&B D. if ty_pe x1# 5XY,3,一 基本概念,区分关键字、函数名、预编译命令。 均是C语言关键字的一组是: A. auto enum include B. switch typedef sizeof C. sig
2、ned union scanf D. if struct type,4,一 基本概念, 各种常量的表示方法 八进制整型常量(标志为0)中不能出现8以上的数字。 小数形式的实型常量不可缺的部分是小数点。 指数形式的实型常量,e或E后面必须是整数,e或E前面必须有数字。 实型常量只能是十进制。 下面能作为C的常量的是: A. 0xA5 B. 5e2.5 C. .E2 D. 028,5,一 基本概念,字符型常量:8,字符串常量:“8” 转义字符可以用八进制ddd或十六进制xdd,不是十进制。 将字符g赋给字符变量c,正确的表达式是: A. c=147 B. c=“147” C. c=147 D. c
3、=147 下列转义字符错误的是: A. 000 B. 0014 C. x111 D. 2 下列转义字符错误的是: A. B. C. 81 D. 0,可表达到十进制的255,即xFF(但作为ASCII字符只到十进制的127,即x7F),转义字符是一个字符,6,一 基本概念,符号常量在编译时替换。 #define PR printf #define NL “n” #define D “%d” #define D1 DNL 语句 PR(D1,a); 经预处理后展开为: A) printf(%dn,a); B) printf(“%dn”,a); C) printf(“%d”“n”,a); D) 原语句
4、错误,7,一 基本概念, 其它概念 C语言区分大小写。 C程序总是从main函数开始执行,与main函数的位置无关main函数可以在任何位置上。 一行内可以写几个语句,一个语句可以分写在多行上一个分号一个语句。 C语言的最小单位 基本单位 编译单位,语句,函数,文件,8,二 基本运算符与I/O操作, 数据类型:编码形式、占用内存字节、表示范围 全部运算符:运算规则、优先级、结合性 位运算只作最基本的要求(,&,|) 能够进行简单的表达式计算 基本的I/O函数的使用方法和功能:printf、scanf、getchar、putchar,9,二 基本运算符与I/O操作, 数据类型:编码形式、占用内存
5、字节、表示范围 整型变量的长度由计算机硬件决定。 记住32767(215-1)、65535、38、308。 负数的补码计算(-8的补码:8的原码取反加1) 已知long i=32768,执行语句printf(“%d”,i);后屏幕显示: A. -1 B. -32768 C. 1 D. 32768,实型不精确,整型爱溢出,10,二 基本运算符与I/O操作,字符型以ASCII码形式存储, 字符变数字:int a = 8 - 0; 数字变字符:char c = 8 + 0; 判断是否是数字: 0=m=9 0=m & m=9 最好能记住48、65、97,11,二 基本运算符与I/O操作, 全部运算符:
6、运算规则、优先级、结合性 表达式的值和类型 已知:char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是: A. int B. char C. float D. double 表达式c=a+b+c+d的数据类型是: A. int B. char C. float D. double 表达式a+b+c+d结果的数据类型是: A. int B. char C. float D. double,12,二 基本运算符与I/O操作,接受赋值的变量类型决定了运算结果的存储类型 一定注意赋值表达式的值 if (x=1)逻辑值 if (x=1)x
7、的值 已知:int a, b;对于下列if语句: if (a=b) printf (“A is equal to Bn“); 在编译时,C编译程序 不能指出该语句有语法错误! sizeof()是int型表达式!,13,二 基本运算符与I/O操作,单目运算符的优先级通常高于双目和三目运算符。 单目运算符通常是右结合,双目运算符通常是左结合(赋值运算符除外)。 求余运算的对象必须是整型。 int i; float f; 正确的语句是: A. (int f)%i B. int (f)%i C. int(f%i) D. (int)f%i,14,两个整型做除法/ 结果截取为整型。 华氏和摄氏的关系: ,
8、已知float C,F;由华氏求摄氏的正确赋值表达式是: A. C=5/9(F-32) B. C=5*(F-32)/9 C. C=5/9*(F-32) D. 三个表达式都不正确 计算 s=1.0 for(k=1;k=n;k+) s+= ; printf(“%fn”,s);,答案:1.0/(k*(k+1) 1/(float)(k*(k+1),15,二 基本运算符与I/O操作,i+与+i i+替换为i进行计算,之后再自加 +与- -只能用于变量,不能用于常量和表达式 操作对象只能是整型、字符型和指针类型 int i=5; i+=+i; i的值是: A. 10 B. 11 C. 12 D. A,B,
9、C答案都不对 int i=5; i+=i+; i的值是: A. 10 B. 11 C. 12 D. A,B,C答案都不对 float x=1,y; 则y=+x*+x的结果为: A. y=9 B. y=6 C. y=1 D. 表达式错误,联想赋值运算符=,16,二 基本运算符与I/O操作,赋值表达式从右向左: int a=b=c=1; int a,b,c; a=b=c=1;,a*=b+5,a=a*b+5,a=a*(b+5),先计算右边表达式的值;再将计算结果赋给左边的变量。,17,运算结果是“逻辑值”的运算符逻辑运算符、关系运算符、条件运算中的条件部分。 C语言并没有逻辑型,而是用1标识逻辑真,
10、0标识逻辑假不是TRUE和FALSE。 设 a 为整型变量,其值未知,下列表达式中有确定值的是: A. 10 10 & a = 15 ),二 基本运算符与I/O操作,18,二 基本运算符与I/O操作,if( i=0 ) 和 if( !i )等价 if( i ) i非0则成立,即i和i!=0等价 char c=A; int i = !c; i 的值为0 与条件表达式“(n)?(c+):(c-)”中的表达式(n)等价的表达式是: A. (n=0) B. (n=1) C. (n!=0) D. (n!=1),19,二 基本运算符与I/O操作,优先级: 取非(!) 算术运算符(+,-,*,/,%) 关系
11、运算符(,=) 逻辑运算符(&高于|) 条件运算符(?:) 赋值运算符(=) 逗号表达式(,),从高到低,(a+b) (c+d) & (da) | !(cb) & (ab),只有(cb)的括号不可省略,20,二 基本运算符与I/O操作,已知int a=4,b=5,c;则执行表达式c=a=ab后变量a的值: A. 0 B. 1 C. 4 D. 5 int x;逗号表达式“(x=4*5, x*5),x+25”的结果为 A. 20 B. 100 C. 45 D. 表达式不合法 变量x的值是: A. 20 B. 100 C. 45 D. 125,注意:x*5并不是x=x*5,并不改变x的值 联想指针
12、p+和p+1,21,二 基本运算符与I/O操作,注意,赋值运算符的优先级很低! char ch; 执行while ( ch=getchar() !=n ); 时输入abcde后,变量ch的值: A. e B. n C. 0 D. NULL int a=1, b=2, m=2, n=2; (m=ab) 则n的值是: A. 1 B. 2 C. 3 D. 4,22,二 基本运算符与I/O操作,得到结论就不再计算:逻辑运算 只计算一部分:条件运算 int x=1,y;执行下列语句后x的值是: y=+x5 A. 1 B. 2 C. 3 D. 4 注意:xy? +x:xz? +x:y+ 是从左向右计算。,
13、23,逗号,逗号(,)运算常见的三种用途是: 在变量说明表中用来分隔变量,起分隔符的作用,如: int i, j, k, m3, *p; 在函数的参数表中分隔参数,从右向左运算。 printf (“%d,%d“, n, n+); 逗号表达式 表达式n1,表达式n2; 用逗号分隔开的表达式从左到右进行计算,结果的类型和值是最右边表达式的类型和值。,见着( )先想函数,再想逗号表达式,24,二 基本运算符与I/O操作, 位运算只作最基本的要求(,&,|) 按位异或的含义。 左移位或右移位相当于整数乘以或除以2的幂,左移位有溢出的可能。,25,二 基本运算符与I/O操作, 能够进行简单的表达式计算
14、隐式类型转换: char型与int型:char转int; int型与float型:都转为double型; 实型运算时都转换为double型; 下面这句说明是否正确: 字符型与单精度实型进行运算时都转换为双精度实型。,26,二 基本运算符与I/O操作,int main() double a; float b; int c; c=b=a=40/3; printf(“%d%f%fn”,c,b,a); ,输出:13, 13.000000, 13.000000,27,二 基本运算符与I/O操作,强制类型转换 对求余运算的操作数的转换(int)f%i; void *malloc(size):动态存储函数,
15、分配size字节的内存。 若要使指针变量p指向一个存储int变量的存储单元,则: int *p; p= malloc(sizeof(int); 注意:无论隐式还是强制类型转换,变量本身的数据类型是不变的。,(int *),28,二 基本运算符与I/O操作, 基本的I/O函数的使用方法和功能:printf、scanf、getchar、putchar scanf、printf设置的格式要与变量的类型一致。 输入、输出long int要用%ld。 输入double要用%lf或%le。 若需显示百分号,格式为:%,scanf:格式与变量类型必须对应 printf:%d %c可以互换,double可以用
16、%f输出,记住,29,二 基本运算符与I/O操作,30,二 基本运算符与I/O操作,下列函数调用不正确的是: A. putchar(putchar(ch) B. str=gets(s) C. fclose(fp) D. fopen(fp) 输入3,执行语句 printf(“2:%d,”,printf(“1:%d,”,scanf(“%d”,以后的输出结果是: A. 2:1,1:1, B. 1:1,2:1, C. 2:4,1:1, D. 1:1,2:4,31,二 基本运算符与I/O操作,如果实际数据所占字符位大于指定的域宽,按实际输出,且小数会按指定的精度来。 printf(“%9.5fn”,12
17、345.678); 与printf不同,scanf不能规定精度,变量前要有取地址符,12345.67800,32,二 基本运算符与I/O操作,一定要区分开浮点数的有效位、能表达的最小数、以实数格式输出(%f输出六位小数的实数)。 对scanf来说,1) 回车,Tab,空格 2) 宽度结束 3) 非法输入 是输入数据的分隔符。 输入:2 3 或 2 3 可以直接scanf(“%d%d”,用scanf %d或%s之后再用%c是很危险的!,33,二 基本运算符与I/O操作,除上述三种天然分隔符以外,scanf输入形式必须要和“ ”内的一模一样 输入:2,3 要用scanf(“%d,%d”, 使用语句
18、scanf(”x=%f,y=%f”,&x,&y);要输入变量x、y的值(代表空格),正确的输入是: A. 1.25,2.4 B. 1.252.4 C. x=1.25,y=2.4 D. x=1.25y=2.4,34,三 基本语句, 掌握正确的语法形式、控制流程、常见书写形式 if 和 switch 语句 循环语句(for、while、do-while) break 和 continue 语句 goto语句不要求 语句之间的嵌套关系和规定 最基本的三重循环程序的编写方法,35,三 基本语句, 掌握正确的语法形式、控制流程、常见书写形式 语句:以“;”为标志,一个复合语句是一条语句。 if () ;
19、 这里的;是一个空语句,if语句结束; for(;) ; 同样,36,三 基本语句, if 和 switch 语句 if语句与条件语句的等价,if (y0) x=-y; else x=y;,(y0)?x=-y:x=y;,等价,等价,x=(y0)?-y:y;,37,三 基本语句,if与else、else if的匹配请缩进! switch() case:语句形式是重点 括号内可以是任何表达式,但“取整”; case后的每个常量表达式必须是整型、字符型或枚举型,并且各不相同; default和case的相对位置是任意的; 直到break才跳出; 每个case之后的语句可多于一个,不必加 ; defa
20、ult子句可以省略。,38,三 基本语句,int c; while(c=getchar() != n) switch(c-2) case 0: ; case 1: putchar(c+4); case 2: putchar(c+4);break; case 3: putchar(c+3); default: putchar(c+2); ,输入:2473 ,输出:668977,39,三 基本语句, 循环语句(for、while、do-while) 准确掌握三个语句的执行流程。,i=1; while (i=10) n*=i; i+; ,for (i=1;i=10;i+) n*=i;,只要条件不符合
21、,程序退出也就是说,最后一步,循环体可能不执行,但条件要多判断一次。 for的第三个语句(i+)永远都是在右括号之前执行,40,int i=1; 执行语句while(i+4);后变量i的值: A. 3 B. 4 C. 5 D. 6 在不使用goto、break、return等转移语句的情况下,以下结论正确的是: A. 对do_while语句,循环条件判断次数可能小于循环体执行次数 B. 对while和for语句,循环条件判断次数可能等于循环体执行次数 C. 无论是while、for还是do_while语句,循环条件判断次数都不可能小于循环体执行次数 D. 循环条件判断次数和循环体执行次数之间无
22、规律可寻,41,三 基本语句,求取满足式 12+22+32+ +n2 1000的n,正确的语句是: A. for(i=1,s=0;(s=s+i*i)=1000;n=i+) ; B. for(i=1,s=0;(s=s+i*i)=1000;n=+i) ; C. for(i=1,s=0;(s=s+i*+i)=1000;n=i) ; D. for(i=1,s=0;(s=s+i*i+)=1000;n=i) ;,42,三 基本语句, break 和 continue 语句 break仅能退出一层(当前层)循环; continue结束本次循环,如果是for(,i+)本次循环的i+还是要做的。 break和c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言 复习 ppt
链接地址:https://www.31doc.com/p-3488660.html