C语言复习资料及讲解.docx

上传人:b****3 文档编号:4469647 上传时间:2022-12-01 格式:DOCX 页数:63 大小:52.98KB
下载 相关 举报
C语言复习资料及讲解.docx_第1页
第1页 / 共63页
C语言复习资料及讲解.docx_第2页
第2页 / 共63页
C语言复习资料及讲解.docx_第3页
第3页 / 共63页
C语言复习资料及讲解.docx_第4页
第4页 / 共63页
C语言复习资料及讲解.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

C语言复习资料及讲解.docx

《C语言复习资料及讲解.docx》由会员分享,可在线阅读,更多相关《C语言复习资料及讲解.docx(63页珍藏版)》请在冰豆网上搜索。

C语言复习资料及讲解.docx

C语言复习资料及讲解

第一、二章C语言基础知识

二.教学讲点

1.C语言的基本构成和格式

#include“stdio.h”

main()

{

inta,b,sum;/*定义变量*/

a=10;/*把整数10赋值给变量a*/

b=20;/*把整数20赋值给变量b*/

sum=a+b;/*把两数之和赋值给变量sum*/

printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出计算结果*/

}

(1).C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开始执行,在主函数中结束。

(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个部分:

定义部分和执行部分。

定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。

(3).C语言中每条语句都以分号“;”结束,分号时C语句的一部分。

即使是程序的最后一个语句也不例外。

分号是语句结束的标志。

(4).一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。

例如:

int是错误的,而int正确。

(5).C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。

“/*”和“*/”之间不允许再插入“/*”或“*/”。

注释可以出现在程序中的任意位置。

注释部分不被执行。

(6).C语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。

但是过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。

2.标识符

(1)标识符只能由字母、数字和下划线组成。

(2)标识符的第一个字符必须是字母或下划线。

(3)标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。

(3)标识符的分类:

关键字:

关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。

详细的查阅附录。

预定义标识符:

在C语言中它也有特定的含义。

预定义标识符可以用位“用户表标识符”使用,只是这将使这些标识符失去了原来的意义。

用户标识符:

由用户根据需要定义的标识符被成为用户标识符。

用户标示符用来给变量、函数、数组或者指针等命名。

3.C语言的数据类型

3.1数据可以分为常量和变量。

常量是指在程序执行中不变的量,常量分为:

整型常数、实型常数、字符常量、字符串常量。

整型数据:

进制间的转换

3.11.二、八、十六进制转为十进制

规则:

“按权相加”

3.12.十进制转为二、八、十六进制

规则:

整数部分:

基数除取余,逆序排列

小数部分:

基数乘取整,顺序排列

3.13.二进制转为八、十六进制

规则:

三(四)合一,按序相拼(整数部分,从右向左取,小数部分从左向右取,位数不足补零)。

3.14.八、十六进制转为二进制

规则:

一分三(四),按序相拼

3.2整型数据在内存中的存放形式

1字节=8位,1Byte=8bit

字长:

指CPU能同时处理的二进制位数。

由CPU的型号而定。

如:

16位微机的字长就是16位或2字节。

1GB=1024MB,1MB=1024KB,1KB=1024B

B:

表示字节,字节是表示存储容量的最小单位。

位(bit):

是计算机中信息表示的最小单位。

3.21.正整数在内存中用“原码”形式存放。

(直接转换为二进制即可)。

如:

5

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

二字节能存放的最大数是:

32767

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

对带符号数,最高位是符号位,用0表示正,用1表示负。

3.22.负整数在内存中用“补码”形式存放。

取补码的步骤:

(1)忽略负号,求出原码。

(2)将原码按位取反(0、1互换)。

(3)在第二步的基础上加1。

如:

取-5的补码。

(1)

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

(2)

1

1

1

1

1

1

1

1

1

1

1

1

1

0

1

0

(3)

1

1

1

1

1

1

1

1

1

1

1

1

1

0

1

1

将补码转换成相应的整数的步骤:

(1)将补码按位取反加1。

(2)将步骤1得到的二进制数转换成十进制数,然后加上负号即可。

例如:

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

按位取反加1

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

+1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

转换成十进制:

1×215=32768

加负号:

-32768

几个特殊的带符号整数:

1000000000000000-32768

011111111111111132767

1111111111111111-1

3.23.无符号整数:

只有正整数,没有负整数,最高位不表示符号位,每一位均参与转换。

二进制

带符号整数

无符号整数

111111*********1

-1

65535

1000000000000000

-32768

32768

例2-12:

若有:

inta=-1;unsignedb=65535;则

printf(“%d,%u,%d,%u”,a,a,b,b);输出结果是:

-1,65535,-1,65535

数据益出问题:

例2-13:

若有inta=32767;则a=a+1的结果是:

-32768

例2-14:

若有unsignedb=65536;则b的值是:

0

分析:

32767:

01111111111111111

+1

100000000000000

将100000000000000按照带符号数转为十进制为-32768

65535:

111111*********1

+1

11111111

11111111

+1

1

00000000

00000000

65536

unsignedb=655536;而b属于无符号整型,在内存中只占两字节,所以只能包括16位。

标准C没有具体要求规定各类型数据所占内存的字节数,现以这次考试标准viusalc++6.0为例,说明各类型变量所占的位数。

类型

所占位数

所占字节数

类型

所占位数

所占字节数

short

16

2

unsignedint

32

4

int

32

4

unsignedlong

32

4

long

32

4

float

32

4

unsignedshort

16

2

double

64

8

3.3实型数据(浮点数)

3.31.实型常量

(1)小数形式:

由数字和小数点组成,必须有小数点,小数点的某一侧可以没有数字。

如:

.23,123.876,123.

(2)指数形式:

用“e”或“E”后接一个整数,表示以10为底的幂数。

注意:

“e”或“E”之前之后必须有数字,且之后的数字必须是整数。

他们和前后的数字之间不能有空格。

例如:

例2-15:

下列合法的常量是()。

A.-32169B.0128C.0XDEFGD.13E0.5

例2-16:

下列合法的实型常量是(  )。

(A)0Xff(B)124E(C)1.23E5.0(D)3.E2(E)1.25E+2(F).23e+02

3.32.实型变量

单精度型float占4字节

双精度型double占8字节

长双精度longdouble占16字节(较少用)

 

4.表达式与运算符

4.1算术运算符及其表达式:

+-*/%

%:

(求余运算)

注意:

(1)%两边必须是整型数据。

12.0%3表达式是错误的。

(2)求余(%)的方法是:

忽略符号,求出余数,再将所得余数的符号定为与被除数相同。

例如:

17%3结果是:

2

17%-3结果是:

2,-17%3结果是:

-2,-17%-3结果是:

-2

4.2强制类型转换

强制类型表达式:

(类型名)表达式

注意:

类型名(表达式)这种形式是C++的强制类型表达方式。

5.赋值运算符及其表达式

5.1.赋值运算符=

格式:

变量名=表达式

功能:

将表达式的值赋给左边的变量。

注:

(1)赋值运算符左边只能是一个变量,不能是常量,也不能是表达式。

a+b=34=3是非法的表达式

a=6a+(b=3)都是合法的表达式

a=b=20a=(b=10)/(c=2)都是合法的表达式

(2)实型数据赋给整型变量时,小数部分被舍去,整型数据赋给实型变量时,系统自动将整型数据转换为实型数据。

例如:

floata;intb;

表达式a=10%3的值是1.0

表达式b=a=10%3的值是1

5.2.复合赋值运算符及其表达式:

+=-=*=/=%=&=|=^=>>=<<=

例如:

a+=3相当于a=a+3,a/=b+4相当a/=(b+4)或a=a/(b+4)

例:

若a=12,则执行表达式a+=a-=a+a后a的值是多少?

分析:

a+=a-=(a+a)/*a的值是12*/

a+=a-=24/*a的值是12*/

a+=a=a-24/*a的值是12*/

a+=a=-12/*a的值是12*/

a+=-12/*a的值是-12*/

a=a+(-12)/*a的值是-12*/

a=-24/*a的值是-24*/

5.3.自增、自减运算符及其表达式

++--

注意:

(1)只能用于变量,不能用于常量和表达式。

如:

6++(a+b)--都是错误的。

(2)当它们用于变量名前时,表达式的值为变量的值加一或减一。

当位于变量名后时,表达式的值为变量原来的值。

不论位于变量名前还是变量名后,只要进行了自增、自减运算,变量的值都会在原来的基础上加1或减1。

如:

a=3则a++表达式的值是3运算之后变量的值是4

a=3则++a表达式的值是4之后变量的值是4

a=3则a--表达式的值是3之后变量的值是2

a=3则--a表达式的值是2之后变量的值是2

(3)口诀:

j=i++;这个表达式是先引用后增值。

即:

先把i的初始值给变量j,然后i再自加1。

j=++i;这歌表达式是先增值后引用。

即:

i先自加1,然后再将我们自加后的值赋值给变量j。

但是记住它们是一起执行的,就是说:

例如j=i++先引用后增值实际上是一起执行的,它们之间不存在先后关系,我们只是位了好记才用到了上面的方法。

老师在上课的时候先不要说,但是你们必须知道。

j=i--,j=--i和上面j=i++,j=++i的方法是一样。

5.4逗号运算符及其表达式

1.格式:

表达式1,表达式2,…,表达式n

注意:

1.逗号表达式的值是整个逗号表达式中最后一个表达式的值。

2.求值顺序是从左到右依次求解。

例如:

a=(3,b=1)的值是1运算结束后a的值是1,b的值是1。

 

三.相关试题

1.2008年4月相关试题

(11)以下叙述中正确的是

A)C程序中的注释只能出现在程序的开始位置和语句的后面

B)C程序书写格式严格,要求一行内只能写一个语句

C)C程序书写格式自由,一个语句可以写在多行上

D)用C语言编写的程序只能放在一个程序文件中

(12)以下选项中不合法的标识符是

A)printB)FORC)&aD)_00

(13)以下选项中不属于字符常量的是

A)'C'B)"C"C)'\xCC0'D)'\072'

(14)设变量已正确定义并赋值,以下正确的表达式是

A)x=y*5=x+zB)int(15.8%5)

C)x=y+z+5,++yD)x=25%5.0

填空(7)设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【7】。

2.2007年9月相关试题

(11)C语言源程序名的后缀是

A).exeB).CC).objD).cp

(12)可在C程序中用作用户标识符的一组标识符是

A)andB)DateC)HiD)case

_2007y-m-dDr.TomBig1

(13)以下选项中,合法的一组C语言数值常量是

A)028B)12.C).177D)0x8A

.5e-30Xa234e1.510,000

-0xf4.5e00abc3.e5

(14)以下叙述中正确的是

A)C语言程序将从源程序中第一个函数开始执行

B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束

D)main可作为用户标识符,用以命名任意一个函数作为主函数

(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是

A)均占4个字节B)根据数据的大小来决定所占内存的字节数

C)由用户自己定义D)由C语言编译系统决定

(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是

A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;

3.2007年4月相关考题

(12)下列叙述中错误的是(D)

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)

A)大写字母B)连接符C)数字字符D)下划线

(14)以下叙述中错误的是(C)

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题

D)结构化程序设计提倡模块化的设计方法

(15)对于一个正常运行的C程序,以下叙述中正确的是(A)

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束

C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

(19)有以下程序,其中%u表示按无符号整数输出(B)

main()

{unsignedintx=0xFFFF;/*x的初值为十六进制数*/

printf(“%u\n”,x);

}/*注意:

x是占两个字节*/

程序运行后的输出结果是

A)-1B)65535C)32767D)0xFFFF

 

第二章

(2)字符型数据位运算

一.教学内容

1.字符型数据

1.1字符常量:

用一对单引号括起的一个字符。

例如:

’A’,’a’,’6’是合法的字符型常量。

”a”,’ab’,A,5,‘12’都是不合法的字符型常量。

1.2转义字符常量:

必须以一个反斜杠“\”开头.常见的转义字符见表5-1。

\n:

回车换行\t:

横向跳格\v:

竖向跳格

\b:

退格\r:

回车\f:

换页

\\:

\\’:

’\”:

1.3\ddd:

ddd表示最多可以有三位8进制数。

1.4\xhh:

hh表示最多可以有二位16进制数。

注意:

三位8进制数不一定以0开头,只要是0~7之间的数字即可。

例:

下列字符常量中合法的是()

A.\027B.’\028’C.’\x12’D.’\0x1f’

E.’\1234’F.’\xffh’G.’AB’H.’123’

I.’\12’J.”A”K.’\xf’

例:

下列字符常量中合法的是()

A.’/’B.’/t’C.’’’D.’”’E.’\b’

F.’\’G.’\\’H.’//’I,’\’’J.’\”’

1.5字符型变量

关键字:

char,字符型变量在内存中占1字节。

例:

chara=’5’;

‘a’字符的ASCII码值是97

‘A’字符的ASCII码值是65

同一字母的大小写之差是32,那么我们要把小写字母变成大写字母就相应的字母减去32即可,同样大写字母加上32后就变成了与其相对应的小写字母。

数字’0’~’9’对应的ASCII码值是48~57。

2.字符数据的输入输出

2.1.putchar()和printf()

格式:

putchar(字符),printf(“%c”,ch);

功能:

输出一个字符,但不输出单引号。

其中“字符”可以是一切合法的字符型或整型数据。

它会自动将整型数据转换为相应的字符输出。

putchar(‘a’);aprintf(“%c”,’a’);a

putchar(65);Aprintf(“%c”,65);A

charch=‘g’;putchar(ch);输出:

g

charch=‘g’;printf(“%c”,ch);输出:

g

2.2.getchar()

格式:

getchar()

功能:

接收一个从键盘输入的字符。

注意:

1.它可以接收从键盘上输入的任何字符,包括回车符、空格符等。

2.任何输入都是在回车后方按顺序送入内存中,即才被函数接收。

如:

chara,b;a=getchar();b=getchar();

若输入:

1<回车>则变量a的值为字符‘1’变量b的值为回车符。

2.3.scanf函数输入数据:

在进行字符数据输入的时候,空格符、回车、横向跳格都是合法有效的字符,都将被读入并赋值给相应的变量。

3.位运算(详细的见课本)

 

二.试题分析

1.2008年试题分析

(13)以下选项中不属于字符常量的是

A)'C'B)"C"C)'\xCC0'D)'\072'

(16)有以下程序段

charch;intk;

ch='a';k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是

A)因变量类型与格式描述符的类型不匹配输出无定值

B)输出项与格式描述符个数不符,输出为零值或不定值

C)a,97,12k=12D)a,97,k=12

(17)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是

A)kk>='A'&&kk<='Z'B)!

(kk>='A'‖kk<='Z')

C)(kk+32)>='a'&&(kk+32)<='z'D)isalpha(kk)&&(kk<91)

(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。

若要求将a的高4位取反,低4位不变,所要执行的运算是

A)a^bB)a|bC)a&bD)a<<4

2.2007年9月试题分析

(23)已有定义:

charc;,程序前面已在命令行中包含ctype.h文件。

不能用于判断c中的字符是否为大写字母的表达式是

A)isupper(c)B)'A'<=c<='Z'

C)'A'<=c&&c<='Z'D)c<=('z'-32)&&('a'-32)<=c

(26)已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。

执行语句printf("%d,%d",c1,c2-2);后,输出结果是

A)A,BB)A,68C)65,66D)65,68

#include

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

3.2007年4月试题分析

(25)以下合法的字符型常量是()

A)‘\x13’B)‘\018’C)‘65’D)‘\n’

(27)已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是()

A)c=(c-A)%26+’a’B)c=c+32

C)c=c-‘A’+’a’D)c=(‘A’+c)%26-‘a’

(7)当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行次。

#include

main()

{charch;

While((ch=getchar())==’0’)printf(“#”);

}

第三章顺序结构

一.教学重点、难点

知识点

所占分值

考核几率

专家点评

C语句分类

0-1

30%

简单识记

字符输出函数putchar()

1-2

70%

难度适中,重点掌握

字符输入函数getchar()

1-2

70%

难度适中,重点掌握

格式输入函数printf()

3-4

100%

难度适中,重点理解重点掌握

格式输出函数scanf()

3-4

100%

难度适中,重点理解重点掌握

二.教学内容

1.语句

C语句共分为5类:

1.1控制语句

1.2函数调用语句:

printf(“thisisacstatement”);

1.3表达式语句

每一个合法的表达式后加上分号(;)就构成了表达式语句。

++a;i+j;

语句和表达式的区别:

表达式有唯一确定的值,而语句没有值。

1.4赋值语句

格式:

赋值表达式;

i=1,j=2是逗号表达式

i=1;j=2;是两条赋值语句

i++;i--;++i;--i;都是赋值语句

等价于i=i+1;或i=i-1;

1.5空语句:

只有一个单独的分号构成的语句。

如:

;就是一条空语句。

1.6复合语句:

用一对{}将若干语句括起来构成一条复合语句。

2.输入输出语句

在使用库函数时必须先用预编译命令#include<头文件名>或#include“头文件名”将相应的头文件包含到源程序中。

如:

#include

2.1.pri

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1