文档库 最新最全的文档下载
当前位置:文档库 › C语言复习提纲(全)

C语言复习提纲(全)

C语言复习提纲(全)
C语言复习提纲(全)

C语言复习提纲:

第一章 C语言程序设计概述

一、Visual C++6.0开发环境

1、了解Visual C++6.0的安装过程;

2、了解Visual C++6.0的工作界面,菜单和工具栏的使用;

▲二、掌握C语言程序运行的过程

1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。在存盘时,C源文件的扩展名为 .c

2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。

3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。

4、执行:执行生成的可执行代码,并输出结果。

5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

▲三、结构化程序设计的基本概念

1、概念

以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。

2、基本思想

结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。

3、三种基本结构

⑴顺序结构⑵选择结构⑶循环结构

4、三种基本结构的特点

⑴只有一个入口⑵只有一个出口

⑶每一个基本结构中的每一部分都有机会执行到

⑷结构内不存在“死循环”

5、设计原则

⑴自顶向下⑶逐步细化⑶模块化设计

⑷结构化编码

▲四、C程序的基本组成:

C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。程序的执行总是从主函数开始,在主函数中结束。主函数是可以调用其他任何非主函数的函数,任何非主函数也可以调用其它任何非主函数。

C程序的基本组成:声明区、主程序区、函数定义区。

1、声明区

处在程序文件的所有函数的外部,一般包含:包含头文件、宏定义、类定义、结构体定义、函数声明、全局变量声明、条件编译等。

2、主程序区

主程序以main()函数开始,main()函数(主函数)是程序运行时的入口,包含局部变量的声明、函数调用、一般运算、结构控制、对象与结构的处理、文件处理等。

3、函数定义区

4、注释

//或/* */为注释,不能嵌套

不产生编译代码,不影响程序的执行效率。 ▲五、标识符

1、标识符的定义:用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。

2、标识符的命名规则:由字母、数字或下画线组成,并且第1个字符必须为字母或下画线。 注意:标识符区分大小写,即大写字母和小写字母的通常意义不同,且不能与关键字重名。 练习1:下列变量标识符哪些是正确的,哪些是不正确的?

a3bc if a!bc _abc abc _3abc a_bc 3abc

练习1、下面四个选项中,均是合法整型常量的选项是A

A 、160 -0xffff 011

B 、-0xcdf 01a 0xe

C 、-01 0986.012 0668

D 、-0x48a 2e0.5 0x

练习2、以下不正确的变量标识符是D

A 、abc

B 、_abc

C 、a_bc

D 、3abc

练习3、下面四个C 语言常量中,错误的表示是B

A 、0xFF

B 、1.2e0.5

C 、2L

D 、'\72'

3、标识符分类:关键字、预定义标识符、用户自定义标识符。

第二章 数据类型、运算符和表达式

▲一、C 语言的数据类型

C 语言中基本数据类型包括整型、实型、字符型、枚举类型,构造类型有数组、结

图2_1 C 语言的数据类型

数据类型

基本类型

空类型(无值类型)void

构造类型

指针类型 实型(浮点型)

联合型类型union

单字符型

char

整型int

单精度型

float

双精度型double

字符型

宽字符型w-char

逻辑型

bool 类类型class

枚举类型enum

结构类型struct 数组类型

构体、共用体等。

⑴、基本数据类型(见P17)

⑵、构造类型又称为组合类型,它是由基本类型按照某种规则组合而成的。

?数组:是由具有相同数据类型的元素组成的集合。

?结构体:是由不同的数据类型构成的一种混合的数据结构,构成结构体的成员的数据类型一般不同,并且在内存中分别占据不同的存储单元。

?共用体:是类似于结构体的一种构造类型,与结构体不同的是构成共同体的数据成员共用同一段内存单元。

?枚举:是将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。

⑶、指针类型变量用于存储另一变量的地址,而不能用来存放基本类型的数据。它在内存中占据一个存储单元。

⑷、类是一种数据类型,它定义的是一种对象类型,由数据和方法组成,描述了属于该类型的所有对象的性质。

二、常量和变量

⑴、常量:在程序运行的整个过程中,其值始终保持不变的量。

?整型常量:表示形式有十进制、八进制(以0开头)和十六进制(以0x或0X开头)。整型常量可以后缀字母L(或l)表示长整数,后缀字母U(或u)表示无符号整数。

?实型常量(浮点型常量):表示形式有一般形式和指数形式。实型常量缺省为double型(双精度型),如后缀f或F,则为float型(单精度型)。

?字符常量:用单撇号括起来的一个字符。如'A','*'等。

转义字符:用反斜杠引导的,具有特定含义的字符(见P22表2-4),如 '\n','\367','\x8a'。

注:C语言字符集中的任何一个字符均可用转义字符来表示。

?字符串常量:用双撇号括起来的字符序列。如"student","广东广州"等。

?布尔常量:false,true。

?符号常量:

?#define 宏名常数

练习2_1:下列哪些是合法的常量:

①12.7f ②0986 ③0986.012 ④、0625L ⑤87U

⑥-0x98C2 ⑦01a ⑧-6.87E-2 ⑨1.2e0.5 ⑩E-3

⑾0xFF ⑿2L ⒀'\72' ⒁160 ⒂-0xffff

⒃5E2.0⒄-0xcdf ⒅1.3E⒆2E0 ⒇0668

(21)011 (22)0xe (23)-01 (24)-0x48a (25)0x

⑵变量:指程序在运行时其值可改变的量。

?变量应先定义(声明其类型和名称)后使用;

?变量定义的一般形式为:

◆< 数据类型 > <变名1>,<变名2>,…,<变名n>;

?在定义一个变量的同时,也可以给它赋以初值。

练习2_2以下正确的变量标识符是

①3abc ②$amount ③Num_of_Student④ if ⑤a!bc

⑥_above ⑦_abc ⑧a>b ⑨sin ⑩day

▲三、运算符和表达式

1、算术运算符和算术表达式

注意:int i=1.2*3; //结果为3,而不是3.6。 int i=5/3结果为1。

表达式17/5的结果是3,表达式17%5的结果是2。

2、赋值运算符和赋值表达式

注意:

?复合赋值运算符:int a=12; a+=a-=a*=a;(a=a+(a=a-(a=a*a)),结果为0)

注意:

在C语言中,定义int a=b=c=3;是错误的,而定义int a,b,c; a=b=c=3;是正确的。

练习2_3设m=9,i=3,则执行运算m%=i+1后,m的值是多少?结果1。

m=m%(i+1)→m=9%(3+1)→m=1。

3、关系运算符和关系表达式

注意:

?关系运算符的优先级低于算术运算符。例如:a+b>c 等价于 (a+b)>c,a!=b>c 等价于

a!=(b>c)

?“=”与“==”的区别

4、逻辑运算符与逻辑表达式

注意:

?逻辑非的优先级最高,逻辑与次之,逻辑或最低

练习2_4 若有int a=3,b=0;则表达式a&&!b的值为1。

练习2_5设有变量说明:int a=8,b=7;那么执行语句:printf("%d,%d \n",++a,b--),输出的结果是9,7

练习2_6设a,b,c均为int型变量,则执行语句a=b=3;c=++a||++b;后,b的值为3。

练习2_7设x、y和z都是int型变量,且x=8, y=3, z=5, 则表达式x*y/z+6-14%z的值为6。

练习2_8设有定义:int x=1,y=-1;则执行语句printf("%d\n",(x--&++y);后的输出结果是0。

练习2_9 设x,y,z,t均为int型变量,则执行以下语句x=y=z=1;t=++x||++y&&++z; 后,x、y、z、t的值分别为2,1,1,1。

练习2_9、设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m--&++n);后的输出结果是0练习2_10、设x,y,z,t均为int型变量,则执行以下语句后,t的值为1

x=y=z=1;t=++x||++y&&++z;

练习2_11、下列程序片段的输出结果是3 1

int x=2, y=2;y = x++ -1;printf("%d %d\n", x ,y);

练习2_12、要判断字符变量ch中的值是否为数字字符,则正确的表达式是ch>='0'&&ch<='9' 练习2_13、设有变量说明:int x=6,y=9;那么表达式:z=x>y?x:y运算后,z的值是9

练习2_14、设有变量说明:int x=10,y=9;那么执行语句:printf("%d,%d \n",++x,y--),输出的结果是11,9

6、条件运算符

表达式1?表达式2:表达式3

注意:

?结合性是自右向左。a>b?a:c>d?c:d相当于a>b?a:(c>d?c:d)

?条件运算符的优先级别高于赋值运算符,低于关系运算符和算术运算符。如:

a>b?a-b:b-a相当于a>b?(a-b):(b-a)

练习2_10设有变量说明:int x=3,y=5;那么表达式:z=x>y?x:y运算后,z的值是5。

7、位运算符

位运算符是对其操作数按其二进制形式逐位进行运算,参加位运算的操作数必须为整数。

练习2_11 int a=5,b=6;a&b=4;a|b=7;a^b=3;~b=-7;b<<2=24;b>>2=1。

注:在位运算中,操作数左移三位,其结果相当于操作数乘以8。

8、逗号运算符

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

注意:

自左至右,依次计算各表达式的值,“表达式n”的值即为整个逗号表达式的值。如:a = 3 * 5, a * 4, a + 5的值为20。

▲四、运算符的优先级与结合性

1、所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。

自左至右的结合方向,称为左结合性。反之,称为右结合性。

结合性是C语言的独有概念。除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符都是左结合性。

2、表达式求值

?按运算符的优先级高低次序执行。例如,先乘除后加减。

?如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按C语言规定的结合方向(结合性)进行。

例如,算术运算符的结合方向是“自左至右”,即:在执行“a – b + c”时,变量b先与减号结合,执行“a - b”;然后再执行加c的运算。

练习2_12 设int x=2,y=3,z=4; 执行语句行x++;y+=1;z=x+y--以后,x,y和z的值分别是多少?

答案:3,3,7

练习2_13 若有定义int m=2;则逻辑表达式(m=3)&&(m= =3)的值是1。

练习2_14 如果a=5,b=3,c=7,d=9,则条件表达式a

练习2_15设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b) && (n=c>d);后,n的值为2。

练习2_16 如果a=5,b=3,c=7,d=9,则条件表达式a

第三章顺序结构程序设计

▲一、顺序结构程序设计——数据的输入和输出

1、格式化输出——printf()函数

?printf()函数的一般格式如下:printf("格式字符串" [,输出项表]);

?输出项表:要输出的数据项(可以没有,有多个时以“,”分隔)

?格式控制串:包含两种信息

格式说明: %[修饰符]格式字符,用于指定输出格式

如:格式控制字符“%c”表示的含义是输出一个字符型数据。

普通字符或转义序列:原样输出。

?格式控制字符:

如:在C程序的格式输出中,%d表示输出十进制整数,%6.2f表示输出长度为6位,有2位小数的实数。printf("s=%-5.3s","student");的输出结果是s=stu 。

2、格式化输入——scanf()函数

scanf()函数的一般格式

scanf("格式字符串", 输入项首地址表);

注:

①格式输入函数scanf()可以从键盘上接收不同数据类型的数据。

②格式化输出函数(printf())和格式化输入函数(scanf())都包含在头文件“stdio.h”中。

?格式字符串。格式字符串可以包含3种类型的字符:格式指示符、空白字符(空格、Tab 键和回车键)和非空白字符(又称普通字符)。

格式指示符与printf()函数的相似,空白字符作为相邻2个输入数据的缺省分隔符,非空白字符在输入有效数据时,必须原样一起输入。

?输入项首地址表──由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分开。

输入项首地址表中的地址,可以是变量的首地址,也可以是字符数组名或指针变量。

变量首地址的表示方法: &变量名

其中“&”是地址运算符。

?数据输入操作

?如果相邻2个格式指示符之间,不指定数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个数据。

例如,scanf("%d%d",&num1,&num2);

假设给num1输入12,给num2输入36,则正确的输入操作为:12□36↙

或者:12↙

36↙

注:使用“↙”符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。

?“格式字符串”中出现的普通字符(包括转义字符形式的字符),务必原样输入。

例如,scanf("%d,%d",&num1,&num2);

假设给num1输入12,给num2输入36,正确的输入操作为:12,36↙

练习3_1已有定义double d,f;,数据的输入方式为:3.69 3.2,根据定义和数据的输入方式,输入函数语句的正确形式为scanf("%lf%lf",&d,&f)。

(scanf("%4.2lf%3.1lf",&d,&f) 或scanf("%4.2f%3.1f",&d,&f)都是错误的)

练习3_2 有下列程序段

int m=2, n=2;n = m++ -1;printf("%d %d\n", m ,n); 输出结果是3,1。

第四章选择结构程序设计

▲一、算法

2、算法的描述方法最常用的有自然语言、流程图、N-S流程图、PAD图和伪代码等。

▲二、顺序结构程序设计

顺序结构是结构化程序设计中最简单、最常见的一种程序结构。顺序结构中的语句是按照书写的先后次序执行的,并且每个语句都会被执行到。

练习4_1 航空公司托运行李,假设每张机票可按每公斤0.8元托运20公斤以内的行李,如果超过20公斤,超过的部分每公斤加价0.5元,试编写一道计算行李托运费的程序,并画出算法流程图(6分)。

解:

void main()

{

float w,x;

printf("输入行李的重量w:");

scanf("%f",&w);

if(w>20.0)

x=20.0*0.8+(w-20.0)*1.3;

else

x=w*0.8;

printf("行李重量w=%.2f公斤,托运费x=%.2f元\n",w,x);

}

练习4_2 编写一个程序,从键盘输入梯形的上底、下底和高的值(浮点数),计算并输出其面积(保留两位小数),并用N-S结构图表示算法。

解:设变量a、b、h、area分别表示梯形的上底、下底、高和面积,则用N-S结构图表示算法如下:

程序如下:

#include

main()

{

float a,b,h,area;

printf("请输入梯形的上底、下底和高\n");

scanf("%f,%f,%f",&a,&b,&h);

area=(a+b)*h/2.0;

printf("梯形的面积为%0.2f\n",area);

}

练习4_3 编写一个程序,从键盘输入圆的半径,计算并输出圆的周长和面积(保留两位小数),用伪代码表示出算法。

解:设用变量r 、length、area分别表示圆的半径、周长和面积,则用伪代码表示算法如下:BEGIN

input r

length=2*3.14*r

area=3.14*r*r

print length,area

END

程序如下:

#include

#define PI 3.14

main()

{

float r,length,area;

printf("请输入圆的半径\n");

scanf("%f",&r);

length=2*PI*r;

area=PI*r*r;

printf("圆的周长为%0.2f\n",length);

printf("圆的面积为%0.2f\n",area);

}

▲三、选择结构程序设计

1、if语句

⑴、if语句的一般格式

if(表达式)

{语句组1;}

[else

{语句组2;} ]

?if语句中的“表达式”必须用“(”和“)”括起来。表示程序执行的条件,常用关系运算符、逻辑运算符等表示的条件表达式,其结果只有两个值“1”或“0”(成立或不成立)。

如:表示字符型变量ch是大写英文字符的C语言表达式是ch>='A'&&ch<='Z',要判断字符变

量ch中的值是否为数字字符,则其表达式是ch>='0'&&ch<='9'。

?else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。

?当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花

⑵、if语句的执行过程

?缺省else子句时

?当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,否则直接转向执行下一条。

?指定else子句时

?当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。

⑶、if语句的嵌套与嵌套匹配原则

?if语句允许嵌套。所谓if语句的嵌套是指,在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。

?if语句嵌套时,为避免嵌套的if-else语句的二义性,C语言规定:else总是与在其之前最近的未配对的if语句组成配对关系。

练习4_4:铁路托运行李,假设每张车票可按每公斤0.3元托运40公斤以内的行李,如果超过40公斤时,超过的部分每公斤加价0.5元,试编写一道计算行李托运费的程序。

解:/*程序功能:计算行李托运费*/

#include

Void main()

{

float w,x;

printf("输入行李的重量:");

scanf("%f",&w);

if(w>40.0)

x=40.0*0.3+(w-40.0)*0.8;

else

x=w*0.5;

printf("行李重量w=%.2f公斤,托运费x=%.2f元\n",w,x);

}

2.switch语句

⑴、switch语句的一般形式

switch(表达式)

{ case 常量表达式1:语句组;break;

case 常量表达式2:语句组;break;

......

case 常量表达式n:语句组;break;

[default:语句组;[break; ]]

}

⑵、执行过程

?当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。

?如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch语句的下一条。

⑶说明

?switch后面的“表达式”,可以是int、char和枚举型中的一种。

?每个case子句后面的“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即

?case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以要退出switch语句,方法是使用break语句。

?各case及default子句的先后次序,不影响程序执行结果。

?多个case子句,可共用同一语句(组)

?用switch语句实现的多分支结构程序,完全可以用if语句或if语句的嵌套来实现。

练习4_5以下程序段的输出结果是

int x=7,y=8,z=9;

if(x>y)

x=y,y=z;z=x;

printf("%d,%d,%d\n",x,y,z);

结果:7,8,7

练习4_6 以下程序的输出结果是

#include

void main()

{

int m=5;

if(m++>5)

printf("%d\n",m);

else

printf("%d\n",m--);

}

结果:6

练习4_7 以下程序的输出结果是

#include

void main()

{

int k=1,x=0,y=0;

switch(k)

{ case 0:y++;

case 1:x++;

case 2:x++;y++;

}

printf("x=%d,y=%d\n",x,y);

}

结果x=2,y=1

第五章循环结构程序设计

▲一、循环程序设计

1、while语句

⑴、一般格式

while(循环继续条件)

{ 循环体语句组;}

⑵、执行过程

①求解“循环继续条件”表达式。如果其值为非0,转②;否则转③。

②执行循环体语句组,然后转①。

③执行while语句的下一条。

练习5_1:/*程序功能:求1~100的累计和*/

void main()

{ int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/

while( i<=100 )

{ sum += i;/*实现累加*/

i++;/*循环控制变量i增1*/

}

printf(“sum=%d\n”,sum);

}程序运行情况如下:

sum=5050

2、do-while语句(直到型循环)

⑴、一般格式

do

{ 循环体语句组; }

while(循环继续条件);/*本行的分号不能缺省*/

当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。

⑵、执行过程

①执行循环体语句组。

②计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非 0(真),则转向①继续执行;否则,转向③。

③执行do-while的下一条语句。

⑶、do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。

因此do......while语句不论条件是否成立,至少要执行一次循环体。

练习5_2:用do-while语句求解1~100的累计和。

/*程序功能:求1~100的累计和*/

main()

{ int i=1, sum=0; /*定义并初始化循环控制变量,以及累计器*/

Do

{

sum += i; /*累加*/

i++;

}

while(i<=100);/*循环继续条件:i<=100*/

printf(“sum=%d\n”,sum);

}

3、for语句

⑴、for语句的一般格式

for([变量赋初值];[循环继续条件];[循环变量增值])

{ 循环体语句组;}

⑵、for语句的执行过程

①求解“变量赋初值”表达式。

②求解“循环继续条件”表达式。如果其值非0,执行③;否则,转至④。

③执行循环体语句组,并求解“循环变量增值”表达式,然后转向②。

④执行for语句的下一条语句。

⑶、说明

①“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。

②当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。

的其它表达式(如逗号表达式)。

例如,for(sum=0;i<=100;i++) sum += i;

for(sum=0,i=1;i<=100;i++) sum += i;

④“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。

如:while(!E)等价于while(0),while(E)等价于while(1)。

for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况。

练习5_3:求n的阶乘n!(n!=1*2*……*n)。

/*程序功能:求n!*/

main()

{ int i, n;

long fact=1;/*将累乘器fact初始化为1*/

printf(“Input n: ”);

scanf(“%d”, &n);

for(i=1; i<=n; i++)

fact *= i;/*实现累乘*/

printf("%d ! = %ld\n", n, fact);

}

程序运行情况如下:

Input n: 5↙

5 ! = 120

练习5_4 有以下程序

#include

void main()

{

int a=10,b=10,i;

for(i=0;a>8;b=++i)

printf("%d %d ",a--,b);

}

程序输出的结果是10 10 9 1

练习5_5 有以下程序

#include

void main()

{ int k;

for(k=0;k<10;k++);

printf("%d",k);

}

答案:10

练习5_6以下程序的运行结果是

#include

void main()

{

int m;

for(m=1;m<=100;m++)

{

if(m%16!=0)

printf("%4d",m);

}

printf("\n");

}答: 16 32 48 64 80 96

4、循环的比较

⑴、While和 for都是先判断后循环,而do-while是先循后判断。即do-while语句在条件不成立时循环体也要被执行一次。

⑵、while和do-while语句的条件表达式只有一个,只起到控制循环结束的作用,循环变量的初值等都用其他语句完成;for语句则有3个表达式,不仅能起到控制循环结束的作用,还可给循环变量赋初值。

练习5_7 对于以下程序段

int m=-1;

do

{

m=m*m;

}

while(!m);

循环执行的次数为多少?答:1次。

练习5_8 对于以下程序段

int k=5; while (k=0) k=k-1; printf("%d\n",k);,循环体执行的次数为多少次?答:0次。

练习5_9 对于以下程序段

int a=5;while(a>=1) a--;程序执行后,a的值是0。

练习5_10以下程序

#include

void main()

{ int i;

for(i=0;i<10;i++);

printf("%d",i);

}输出结果是10。

5、循环的嵌套

⑴、循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。循环嵌套的概念,对所有高级语言都是一样的。

⑵、for语句和while语句允许嵌套,do-while语句也不例外。

练习5_11:编程:

输出下列图形 *

***

*****

*******

*********

解:/*程序功能:打印5行"*",第一行1个,第二行3个,第三行5个...*/

#include

void main()

{ int i=1;

while(i<=5)

{ int j=1,k=1;

while(j<=5-i)

j++;

}

while(k<=2*i-1)

{ printf("*");

k++;

}

printf("\n");

i++;

}

}

6、break语句与continue语句

⑴、一般格式: break;

continue;

⑵、功能

①break:强行结束循环,转向执行循环语句的下一条语句。

②continue:对于for循环,跳过循环体其余语句,转向循环变量增量表达式的计算;对于while 和do-while循环,跳过循环体其余语句,但转向循环继续条件的判定。

⑶、说明

①break能用于循环语句和switch语句中,而continue只能用于循环语句中。

②break是终止整个循环的执行,而continue只是结束本次循环。

③循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关。

练习5_12 求Fibonacci数列前12项的和。

解:

每月新增兔子数Fn={1,1,2,3,5,8,13,21,34,…}(斐波那契数列)

月份n 兔子数Fn

1 F1=1

2 F2=1

3 F3=2=F1+F2

4 F4=3=F2+F3

n Fn=Fn-1+Fn-2

由此可写出递推公式

1 (n=1)

F(n)= 1 (n=2)

F(n-1)+ F(n-2) (n>3)

程序代码如下:

#include

void main()

{

int F1=1,F2=1;

int F,S=2,n=3;

while(n<=12)

{

F=F1+F2;

F1=F2;

F2=F;

S=S+F;

}

printf("S=%d\n",S);

}

第六章数组

数组是数目固定、类型相同的若干变量的有序集合。数组元素具有相同的名字和数据类型。

▲一、一维数组

1、一维数组的定义:数据类型数组名[常量表达式][, 数组名2[常量表达式2]……];

?“数据类型”是指数组元素的数据类型。

?数组名,与变量名一样,必须遵循标识符命名规则。

?“常量表达式”必须用方括号括起来,指的是数组的元素个数(又称数组长度),它是一个整型值,其中可以包含常数和符号常量,但不能包含变量。

?数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。

?数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。

注:数组名能与其他变量名相同,数组名后是用方括号括起来的常量表达式,不能和圆括号。

2、数组元素的引用

引用数组中的任意一个元素的形式:数组名[下标表达式]

?“下标表达式”可以是任何非负整型数据,取值范围是0~(元素个数-1)。

?1个数组元素,实质上就是1个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。

?在C语言中,数组作为1个整体,不能参加数据运算,只能对单个的元素进行处理。

⑶、一维数组元素的初始化

?初始化格式:数据类型数组名[常量表达式]={初值表}

?如果对数组的全部元素赋以初值,定义时可以不指定数组长度(系统根据初值个数自动确定)。如果被定义数组的长度,与初值个数不同,则数组长度不能省略。

?“初值表”中的初值个数,可以少于元素个数,即允许只给部分元素赋初值。

3、数组元素的存储

数组元素在计算机内存中存储时,占据一片连续的存储空间,数组名代表数组元素占据的内存空间的首地址。由于数组各元素的数据类型相同,因此在数组中,每一个元素在内存里占用的存储单元数都是相同的。

练习6_1:从键盘上任意输入n个整数,用冒泡法按从小到大地排序,并在屏幕上显示出来。

解:冒泡法排序的基本思想:从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

#include "stdio.h"

#define NUM 10 /*定义符号常量(数据个数N)*/

main()

{ int data[NUM]; /*定义1个1维整型数组data*/

int i,j,temp; /*定义循环变量和临时变量*/

printf("请输入10个整数:\n");

for(i=0; i

scanf("%d", &data[i]);

/*冒泡法排序*/

for(i=0; i

for(j=NUM-1; j>i; j--) /*内循环:进行每趟比较*/

if(data[j]

{temp=data[j];

data[j]=data[j-1];

data[j-1]=temp;

};

/*输出排序后的数据*/

printf("\n排序后的数据:\n");

for(i=0; i

printf("%d ",data[i]);

printf("\n");

}

练习6_2、编写程序:从键盘上任意输入10个整数,用冒泡法按从小到大的顺序排序,并在屏幕上输出结果。

解:

#include "stdio.h"

#define NUM 10 /*定义符号常量(数据个数N)*/

main()

{ int data[NUM]; /*定义1个1维整型数组data*/

int i,j,temp; /*定义循环变量和临时变量*/

printf("请输入10个整数:\n");

for(i=0; i

scanf("%d", &data[i]);

/*冒泡法排序*/

for(i=0; i

for(j=NUM-1; j>i; j--) /*内循环:进行每趟比较*/

if(data[j]

{temp=data[j];

data[j]=data[j-1];

data[j-1]=temp;

};

/*输出排序后的数据*/

printf("\n排序后的数据:\n");

for(i=0; i

printf("%d ",data[i]);

printf("\n");

}

练习6_3、输入一个正整数表示一个星期中的某一天。若此数在[1,7]内,则输出对应的英文星期名,否则表示输入错误。例如,输入“2”,程序输出“Tuesday”,输入“16”,程序输出“输入错误”。要求用指针数组处理。

解:

#include

{

int n;

char *pstr[20]={"","Monday","Tuesday","Wednesday","Thursday", "Friday","Saterday","Sunday"};

printf("请输入一个1~7之间的数:");

scanf("%d",&n);

if (n>=1 && n<=7)

printf("%s\n",*(pstr+n));

else

printf("%s\n","输入错误");

}

练习6_4、编写一个程序,从键盘输入圆的半径,计算并输出圆的周长和面积,用伪代码表示出算法。

解:

用伪代码表示,算法如下:

BEGIN

INPUT radius

length=2*3.14*radius

area=3.14*radius*radius

PRINT length

PRINT area

END

/*计算圆的周长和面积*/

#include

#define PI 3.14

main()

{

float r,l,area;

printf("请输入圆的半径\n");

scanf("%f",&r);

l=2*PI*r;

area=PI*r*r;

printf("圆的周长是: %.2f\n",l);

printf("圆的面积是: %.2f\n",area);

}

练习6_3下列对一维数组正确赋初值的语句是

A、int a[10]= "I am a student";

B、char a[]="I am a student";

C、int a[3]={1,3,5,7,9,1};

D、char a[3]= " I am a student"。

练习6_4、在下面关于一维数组的定义中,有语法错误的是

A、int x[ ] = {1,2,3,4,5};

B、int x[5] = {0};

C、int x[5];

D、 int x[ ];

答案:D

1、二维数组的定义:

数据类型数组名[行常量表达式][列常量表达式][, 数组名2[行常量表达式2][列常量表达式2]……];

?数组元素在内存中的排列顺序为“按行存放”,即先顺序存放第一行的元素,再存放第二行,以此类推。

?设有一个m*n的数组x,则第i行第j列的元素x[i][j]在数组中的位置为:i*n+j(注意:行号、列号均从0开始计数)。

2、二维数组元素的引用

引用2维数组元素的形式为:

数组名[行下标表达式][列下标表达式]

?“行下标表达式”和“列下标表达式”,都应是整型表达式或符号常量。

?“行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。假设有数组x[3][4],则可用的行下标范围为0~2,列下标范围为0~3。

?对基本数据类型的变量所能进行的操作,也都适合于相同数据类型的2维数组元素。

3、二维数组元素的初始化

?按行赋初值

数据类型数组名[行常量表达式][列常量表达式]={{第0行初值表},{第1行初值表},……,{最后1行初值表}};

赋值规则:将“第0行初值表”中的数据,依次赋给第0行中各元素;将“第1行初值表”中的数据,依次赋给第1行各元素;以此类推。

?按2维数组在内存中的排列顺序给各元素赋初值

数据类型数组名[行常量表达式][列常量表达式]={初值表};

赋值规则:按2维数组在内存中的排列顺序,将初值表中的数据,依次赋给各元素。

如果对全部元素都赋初值,可以省略“行数”,但不能省略“列数”。注意:只能省略“行数”。

练习6_5 执行int a[][3]={1,3,5,7,9,11};语句后,a[1][0]的值是7。

练习6_6 以下对二维数组a进行正确初始化的是

A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6};

C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}};

三、字符数组

1、字符数组的定义

?1维字符数组,用于存储和处理1个字符串,其定义格式与1维数值数组一样。

?2维字符数组,用于同时存储和处理多个字符串,其定义格式与2维数值数组一样。

2、字符数组的初始化

字符数组的初始化,可以通过为每个数组元素指定初值字符来实现。

3、字符数组的引用

字符数组的逐个字符引用,与引用数值数组元素类似。

?字符数组的输入

除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符。

?字符数组的输出

字符数组的输出,可以用putchar()或printf()函数。

四、字符串及其结束标志

所谓字符串,是指若干有效字符的序列。C语言中的字符串,可以包括字母、数字、专用字符、转义字符等。

C语言规定:以‘\0’作为字符串结束标志(‘\0’代表ASCII码为0的字符,表示一个“空操作”,只起一个标志作用)。因此可以对字符数组采用另一种方式进行操作了──字符数组的整体操

注意:由于系统在存储字符串常量时,会在串尾自动加上1个结束标志,所以无需人为地再加1个。

另外,由于结束标志也要在字符数组中占用一个元素的存储空间,因此在说明字符数组长度时,至少为字符串所需长度加1。

1.字符数组的整体初始化

字符串设置了结束标志以后,对字符数组的初始化,就可以用字符串常量来初始化字符数组。

2.字符数组的整体引用

?字符串的输入

除了可以通过初始化使字符数组各元素得到初值外,也可以使用scanf()函数输入字符串。

?字符串的输出

printf()函数,不仅可以逐个输出字符数组元素,还可以整体输出存放在字符数组中的字符串。

五、常用的字符串处理函数

字符串标准函数的原型在头文件string.h中。

1、输入字符串──gets()函数

①调用方式:gets(字符数组)

②函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。

③使用说明

?gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。

?该函数输入的字符串中允许包含空格,而scanf()函数不允许。

2.输出字符串──puts()函数

①调用方式:puts(字符数组)

②函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。

③使用说明

?字符串中允许包含转义字符,输出时产生一个控制操作。

?该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。

3、字符串比较──strcmp()函数

①调用方式:strcmp(字符串1 ,字符串2)

其中“字符串”可以是串常量,也可以是1维字符数组。

②函数功能:比较两个字符串的大小。

如果:字符串1=字符串2,函数返回值等于0;

字符串1<字符串2,函数返回值负整数;

字符串1>字符串2,函数返回值正整数。

③使用说明

?如果一个字符串是另一个字符串从头开始的子串,则母串为大。

?不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。

4、拷贝字符串──strcpy()函数

①调用方式:strcpy(字符数组, 字符串)

其中“字符串”可以是串常量,也可以是字符数组。

②函数功能:将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。

③使用说明

?字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\0'一起复制。

?不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来

5.连接字符串──strcat()函数

①调用方式:strcat(字符数组, 字符串)

②函数功能:把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。

③使用说明

?由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。

?连接前两个字符串都有结束标志'\0',连接后“字符数组”中存储的字符串的结束标志'\0'被舍弃,只在目标串的最后保留一个'\0'。

6.求字符串长度──strlen()函数(len是length的缩写)

①调用方式:strlen(字符串)

②函数功能:求字符串(常量或字符数组)的实际长度(不包含结束标志)。

练习6_7 执行 char str[10]= "I am a teacher\0";strlen(str)后的结果是14。

7.将字符串中大写字母转换成小写──strlwr()函数

①调用方式:strlwr(字符串)

②函数功能:将字符串中的大写字母转换成小写,其它字符(包括小写字母和非字母字符)不转换。

8.将字符串中小写字母转换成大写──strupr()函数

①调用方式:strupr(字符串)

②函数功能:将字符串中小写字母转换成大写,其它字符(包括大写字母和非字母字符)不转换。

练习6_7、在下面关于一维数组的定义中,有语法错误的是D

A、int x[ ] = {1,2,3,4,5};

B、int x[5] = {0};

C、int x[5];

D、 int x[ ];

练习6_8、在C语言中,下面关于数组的描述正确的是D

A、数组的大小是固定的,但可以有不同类型的数组元素

B、数组的大小是可变的,但所有数组元素的类型必须相同

C、数组的大小是可变的,可以有不同的类型的数组元素

D、数组的大小是固定的,所有数组元素的类型必须相同

练习6_9、下列对一维数组正确赋初值的语句是B

A、int a[10]= "This is a string";

B、char a[]="This is a string";

C、int a[3]={1,2,3,4,5,6};

D、char a[3]= "This is a string"。

第七章函数

▲一、函数的定义与调用

1、函数的定义

任何函数(包括主函数main())都是由函数说明和函数体两部分组成。根据函数是否需要参数,可将函数分为无参函数和有参函数两种。

⑴、无参函数的一般形式

函数类型函数名( void )

{ 说明语句部分;

可执行语句部分;

}

注意:在旧标准中,函数可以缺省参数表。但在新标准中,函数不可缺省参数表;如果不需要

C语言期末复习卷习题

C语言期末复习卷习题 Prepared on 24 November 2020

期末总复习(基础知识+程序设计部分) 一.填空 1.已知charch=’A’;则下列表达式的值是:a Ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch; 2.若x=1,y=2,z=3,则表达式z+=++x+y++之值是7 3.若x=2,y=3,则x%=y+3之值为2 4..若有定义inty=3;floatz=,x=;则表达式y+=(int)x+x+z的值为17 5.设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值 1)(x&&y)==(x||z)1 2)!(x>y)+(y!=z)||(x+y)&&(y-z)0 3)x++-y+(++z)13 6.设x,y,z为int型变量,请用C语言表达式描述下列命题 1)x和y中有一个小于z(xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1 3)y是奇数y%2!=0 7.下面for循环语句最多可执行4次 For(x=0,y=0;(y!=99)&&(x<4);x++) 8.设i,j,k均为int型变量,则执行以下for语句后,k的值是10 for(i=0,j=10;i<=j;i++,j--) k=i+j; 9.若已知x,y,z,m,n均为int型变量,则执行下面语句后,x的值为7y的值为9z的值为7 m=10;n=5; x=(--m==n++)--m:++n;

y=m++; z=n; 10.若有说明语句:w=1,x=2,y=3,z=4;则表达式w>xw:z>yz:x值是4 11.若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void 12.凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储 13.在C语言中,一个函数直接或间接地调用自身,编构成函数的递归 14.如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。 15.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第6个元素。N*j+m+1 16.若有定义:char*str=”Iamastudent.”;则字符串在存储单元中占16个字节。 17.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0。 18.调用strlen(“abc\0ef\0g”)的返回值是3。\0为停止符 19.设有定义:chars[12]=“string”;则printf(“%d\n”,strlen(s));的输出值是6 20.执行下列程序段后,*p等于3 inta[5]={1,3,5,7,9};*p=a;p++; 二.判断(trueorfalse) 1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺 序完全一致。T 2.函数可以嵌套定义F 3.函数必须有返回值,否则不能正确作用F 4.C程序中有调用关系的所有函数必须放在同一源程序文件中。F 5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F

C语言基础知识_测试题

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

谭浩强C语言知识点总结

谭浩强C语言知识点总 结 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI ; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。

第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---?.obj---?.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次)

2020全国计算机等级考试二级C语言知识点全套复习提纲(精华版)

全国计算机等级考试二级C语言全套复习提纲(精华 版)

目录 第一部分公共 基础知识 第1 章算法与数据结构 (1) 考点1 算法 (1) 考点2 数据结构 (1) 考点3 线性表及其顺序存储结构 (1) 考点4 栈和队列 (1) 考点5 线性链表 (2) 考点6 树与二叉树 (2) 考点7 查找技术 (3) 考点8 排序技术 (3) 第2 章程序设计基础.4 考点1 程序设计方法 与风格 (4) 考点2 结构化程序设计 (5) 考点3 面向对象的程序设计 (5) 第3 章 . 软件工程基础 5 考点1 软件工程基本概念 (5) 考点2 软件分析方法6 考点3 结构化设计方法 (7) 考点4 软件测试 (8) 考点5 程序的调试 (9) 第4 章数据库设计基础

(9) 考点1 数据库系统的基本概念 (9) 考点2 数据库系统的基本概念 (10) 考点3 关系代数 (12) 考点4 数据库设计与管理 (12) 第二部分二级 C 语言 第1 章程序设计基本概念 (14) 考点1 程序设计 (14) 考点2 C 程序的结构和格式 (14) 考点3 常量和变量.14 考点4 算术表达式.15 考点5 赋值表达式 .16 考点6 自加、自减和逗号运算 (16) 第2 章顺序结构 (17) 考点1 字符型常量与变量 (17) 考点2 putchar 与getchar 函数 (17) 考点3 printf 函数 (17) 考点4 scanf 函数 (18) 考点5 位运算的含义和应用 (18) 第3 章选择结构 (19) 考点1 关系运算符和关系表达式 (19) 考点2 逻辑运算符和逻辑表达式 (19)

C语言程序设计复习提纲

C语言程序设计复习提 纲 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

C语言程序设计复习提纲 第1章 C语言程序设计概述 1、程序和语言: (1)程序:用计算机语言描述的某一问题的解决步骤,符合一定语法规则的符号序列 (2)程序设计语言:描述问题的有规则的符号 程序设计语言有: ■机器语言――机器直接识别,与机器密切相关,用二进制代码描述低级语言 ■汇编语言――机器语言的助记符,通常和英文字符接近 ■算法语言:使用与自然语言接近的表示方式来表示程序,面向算法过程 Fortran ALGOL PASCAL C COBLE等 ■面向任务的语言:描述问题,用程序语言来实现。数据库操作语言,如SQL-SERVER,VFP等 ■面向对象的程序设计语言:是一种分析方法、设计方法和思维方法的综合。程序是相互协作的对象的集合。 2、算法 什么叫算法:用计算机解决问题的步骤称之算法 程序=数据结构+算法 算法的描述方法:自然语言、流程图、NS图、伪代码、计算机语言(C语言)

3、C语言程序的基本结构 (1)由函数构成,必须且只有一个主函数main() (2)“/* */”之间的内容构成C语言程序的解释部分 (3)预处理命令:#include<> #include “”的区别 #include<> #include<> (4)大小写字母在C程序中是有区别的 4、C语言字符集、标识符与关键字 字符集:英文字母,数字,下划线其他符号 标识符:用来表示函数、类型、变量的名称 32个关键字,9种控制语句,书写自由 运算符丰富:34种运算符 数据结构丰富:数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型 5、C语言的文件:原文件、目标文件、可执行文件(扩展名是什 么) 6、C语言的优点: 第二章结构化控制语句:if else do while for 等语法限制不太严格 位运算 目标代码质量高 可移植性好

C语言基础知识

常量和变量 1.常量: 程序执行过程中,值不变的量。 3 ,'a' 变量:值可以改变的量。 一个变量有一个名字,在内存中有一定的存储单元,存放变量的值。 2.常量类型: a.整型:12,0,-3 b.实型:4.6,-1.2 c.字符型: 'a','d' d.符号常量: #define PRICE 30 (PRICE不能再被赋值且要大写) 3.变量: 先定义,后使用。一个变量只能被指定为一确定类型。 4.标识符:标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符数列。 a.由字母、数字、下划线三种字符组成,第一个字符必须为字母或下划线。 b.大写字母、小写字母被认为是两个不同的字符。 c.长度一般小于8个。 数据类型 一.整型: 1.整型常量 a.十进制:12,-3,0 b.八进制:以0开头。 c.十六进制:以0x开头。 2.整型变量 a. int -32768——32767 b. short int -32768——32767 c. long int d. unsigned int 0——65535 e. unsigned short 0——65535 f. unsigned long int、short int、long int 第一位为符号位 0000001 (0为正,1为负) unsigned 第一位不是符号位 0000001 所以int型和unsigned型的000001不是同一个值。 二.实型: 1.实型常量:

a.十进制数:数字和小数点组成。0.12,.12,12.0,0.0 b.指数:e之前必须有数字,e后面必须为整数。12e3 2.实型变量: a.单精度:float 7位有效数字 111111.1可,111111.11不可。 b.双精度:double 15—16位有效数字。 三.字符型: 1.字符常量: a. 'a' , 'x' , '*' ,'$' 。 b. 转义字符:‘\n'换。 '\t'从第九列开始。'\r'回车。 '\b'退一格。 2.字符变量: char char='a' 一个字符变量在内存占一个字节。 。将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的ASC码 放到存储单元中,所以字符型数据和整型数据之间可以通用。一个字符型数据既可以以字符形式输出, 又可以以整数形式输出。 四.字符串常量: "how are you", "a","&12" 。不能把一个字符串赋给一个字符变量。 char c='a'对,char c="how" 错。 。'a' :在内存中存a。 “a”:在内存中存a\0。 ‘\0’是C语言中判断字符串是否结束的标志。 变量赋初值 a. int a=3; float f=7.2; char c='a'; b. int a,b,c=5; 相当于 int a,b,c; c=5; c. int a=3;b=3;c=3; 不可写: int a=b=c=3;

数据结构严蔚敏C语言版学习复习提纲

期末复习 第一章 绪论 复习 1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。 2、算法分析的两个主要方面是空间复杂度和时间复杂度。 3、数据元素是数据的基本单位。 4、数据项是数据的最小单位。 5、数据结构是带结构的数据元素的集合。 6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。 数据结构 算 法 数据:计算机处理的信息总称 数据项:最小单位 数据元素:最基本单位 数据对象:元素集合 数据结构:相互之间存在一种或 多种特定关系的数据元素集合。 概念:数据元素之间的关系 线性结构:一对一 非线性结构 树:一对多 图:多对多 顺序存储结构 链表存储结构 索引。。。 散列。。。 算法描述:指令的有限有序序列 有穷性 确定性 可行性 输入 输出 时间复杂度 空间复杂度

第二章 线性表 复习 1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针 2、线性表采用顺序存储,必须占用一片连续的存储单元 3、线性表采用链式存储,便于进行插入和删除操作 4、线性表采用顺序存储和链式存储优缺点比较。 5、简单算法 第三章 栈和队列 复习 定义 逻辑关系:前趋 后继 节省空间 随机存取 插、删效率低 插入 删除

1、 栈和队列的异同点。 2、 栈和队列的基本运算 3、 出栈和出队 4、 基本运算 第四章 串 复习 存储结构 栈的概念:在一端操作的线性表 运算算法 栈的特点:先进后出 LIFO 初始化 进栈push 出栈 pop 顺序队列 循环队列 队列概念:在两端操作的线性表 假溢出 链队列 队列特点:先进先出 FIFO 基本运算 顺序: 链队: 队空:front=rear 队满:front=(rear+1)%MAXSIZE 队空: rear 初始化 判空 进队 出队 取队首元素

大学c语言必背基础知识_c语言基础知识大全

大学c语言必背基础知识_c语言基础知识大全 对于刚学计算机编程的同学来说,没一个编程知识都觉得很重要,其实不是的。下面小编为大家整理了相关大学c语言必背基础知识,希望大家喜欢。 大学c语言必背基础知识举例说明: printf(“-”,123 ); 第二部分有三位,大于指定的两位,原样输出123 printf(“]”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格123 printf(“f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为1.250000 printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位) printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入) 第三节数据输入1、scanf(“a=%d,b=%d”,">2、scanf(“%d,%d”,x,y);这种写法绝对错误,scanf的第二个部分一定要是地址!scanf(“%d,%d”,注意写成这样才可以! 3、特别注意指针在scanf的考察例如:int x=2;int *p=scanf(“%d”,x); 错误scanf(“%d”,p);正确scanf(“%d”,错误scanf(“%d”,*p)错误 4、指定输入的长度(考试重点)终端输入:1234567scanf(“-M%d”,x为12,y为3456,z为7终端输入:1 234567 由于1和2中间有空格,所以只有1位给xscanf(“-M%d”,x 为1,y为2345,z为67 5、字符和整型是近亲:int x=97;printf(“%d”,x); 结果为97printf(“%c”,x); 结果为a 6、输入时候字符和整数的区别(考试超级重点) scanf(“%d”,这个时候输入1,特别注意表示的是整数1 scanf(“%c”,这个时候输入1,特别注意表示的是字符‘1’ASCII为整数48。 补充说明: 1)scanf函数的格式考察: 注意该函数的第二个部分是scanf(“%d%d%*d%d”,跳过输入的第三个数据。 2)putchar ,getchar 函数的考查:

C语言基础知识(详细版)

C语言程序的结构认识 用一个简单的c 程序例子,介绍c 语言的基本构成、格式、以及良好的书写风格,使小伙伴对 c 语言有个 初步认识。 例1:计算两个整数之和的c 程序: #include main() { int a,b,sum; /* 定义变量a,b ,sum 为整型变量*/ a=20; /* 把整数20 赋值给整型变量a*/ b=15; /* 把整数15 赋值给整型变量b*/ sum=a+b; /* 把两个数之和赋值给整型变量sum*/ printf( “ a=%d,b=%d,sum=%d\n” ,a,b,sum); /* 把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c 语言程序都必须包括以下格式: main() { } 这是c 语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main() - 在c 语言中称之为“主函数” ,一个c 程序有且仅有一个main 函数,任何一个c 程序总是从 main 函数开始执行,main 函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main 函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(; ),在c 语言中,我们把以一个分号结尾的一句话叫做一个 c 语 言的语句,分号是语句结束的标志。 5、printf( “ a=%d,b=%d,sum=%d\n” ,a,b,sum); 通过执行这条c 语言系统提供给我们直接使用的屏幕输出 函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头 (2)不以分号结尾这一行没有分号,所以不是语句,在c 语言中称之为命令行,或者叫做“预编译处理命令” 。 7、程序中以/* 开头并且以*/ 结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。 C程序的生成过程 C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。 源程序的扩展名为.c ,目标程序的扩展名为.obj , 可执行程序的扩展名为.exe 。

C语言复习提纲答案

。。。。。。。。。。。。。。。。。。。作为复习的参考,打*不纳入本次期末考试范围。。。。。。。。。。。。。。。。。。 课程单元:1、运算符、表达式、输入输出语句 能力要求: a) 能够正确定义、输入、输出并使用常用数据类型:整型、实型、字符型 b) 掌握五种基本算术运算符的使用:+、-、*、/、%,知道优先级与结合性 c) 掌握逻辑运算符和关系运算符、条件运算符的使用 d) 能够正确使用printf() 和scanf() 进行各种数据正确格式的输入输出 e) 编写简单顺序结构程序 基础能力落实: 1) 输入一个字母, 输出其对应的ASCII 码. main() { char c; scanf("%c",&c); printf("%d\n",c); } 2) 输入一个小写字母, 输出其对应的大写字母. main() { char c; scanf("%c",&c); c=c-32; printf("%c\n",c); } 3 )从键盘输入一个四位数,编程计算该四位数的各位和并输出。 main() { int i,a,b,c,d; scanf("%d",&i); a=i/1000; b=i%1000/100; c=i%100/10; d=i%10; printf("%d\n",a+b+c+d); } 4 )教材p.36 页习题,2(关于数据类型、运算符、表达式的练习题,其他类似题目均可)进阶能力落实: 1 )输入一个十进制数,输出其对应的八进制数据。 main() { int i;

scanf("%d",&i); printf("%o\n",i); } 2 )输入一个圆的半径,分别求圆的周长,面积。 #define PI 3.14 main() { float r,s,c; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("c=%.2f,s=%.2f\n",c,s); } 课程单元:2、选择结构程序设计 能力要求: a) 能够使用if 语句编写条件选择程序 b) 能够使用嵌套if 语句和switch 语句编写多分支选择结构程序 基础能力落实: 1 )判断一个数的正、负,输出相应信息 #include main() { int n; printf("输入整数n,n不等于0:\n"); scanf("%d",&n); if (n<0) printf("n为负数\n"); else printf("n为正数\n"); } 2 )判断一个数的奇偶,输出相应信息 #include main() { int n; printf("输入整数n:\n"); scanf("%d",&n); if (n%2==0) printf("n为偶数\n"); else printf("n为奇数\n"); }

C语言复习提纲(2015)

《C程序设计》复习提纲 第一章C语言概述、第二章算法 1.程序设计语言:机器语言、汇编语言、高级语言。 2.高级语言翻译成机器语言的两种方式:编译方式、解释方式。 3.算法+数据结构=程序 4.结构化程序设计的三种基本结构:顺序结构、分支(选择)结构、循环结构 5.算法的表示方法:自然语言、传统的程序流程图、N-S流程图。 6.算法的特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。 7.C语言的特点。 8.运行C程序的步骤。 9.C语言由函数组成,有且仅有一个main函数。 10.函数:说明部分、函数体。 11.一条复杂语句分行书写,用反斜杠(\)续行。 12.注释用/*……*/ 13.每个语句由分号(;)结束。 第三章数据类型、运算符和表达式 1.常量: ◆整型常量:235、0235、-0x235(前可加负号),长整型:-12l、-065l、0x55l 等。 ◆实型常量:小数形式、指数形式。 ◆字符常量:用单引号,如‘c’。 ◆转义字符:表3-3。 ◆字符串常量:用双引号,如“hglhg”、“a”,内存占用为实际长度加1(结 束标志’\0’)。 ◆符号常量:无参宏(#define)。 2.变量: ◆标识符命名规则:。 ◆各种类型变量的长度:整型2个字节(VC6.0中4个字节)、浮点型4个字 节、字符型1个字节。 ◆整型变量的分类:int、short int、long int,注意其取值范围,定义的时 候可根据实际情况选择数据类型。 ◆浮点型变量的分类:float、double、long double,注意其取值范围,定义 的时候可根据实际情况选择数据类型。

C语言复习提纲

C语言复习提纲 第一章 C语言程序设计概述 一、Visual C++6.0开发环境 1、了解Visual C++6.0的安装过程; 2、了解Visual C++6.0的工作界面,菜单和工具栏的使用; ▲二、掌握C语言程序运行的过程 1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。在存盘时,C源文件的扩展名为 .c 2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。 3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。 4、执行:执行生成的可执行代码,并输出结果。 5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。 ▲三、结构化程序设计的基本概念 1、概念 以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。 2、基本思想 结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。 3、三种基本结构 ⑴顺序结构⑵选择结构⑶循环结构 4、三种基本结构的特点 ⑴只有一个入口⑵只有一个出口 ⑶每一个基本结构中的每一部分都有机会执行到 ⑷结构内不存在“死循环” 5、设计原则 ⑴自顶向下⑶逐步细化⑶模块化设计 ⑷结构化编码 ▲四、C程序的基本组成: C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。程序的执行总是从主函数开始,在主函数中结束。主函数是可以调用其他任何非主函数的函数,任何非主函数也可以调用其它任何非主函数。 C程序的基本组成:声明区、主程序区、函数定义区。 1、声明区 处在程序文件的所有函数的外部,一般包含:包含头文件、宏定义、类定义、结构体定义、函数声明、全局变量声明、条件编译等。 2、主程序区 主程序以main()函数开始,main()函数(主函数)是程序运行时的入口,包含局部变量的声明、函数调用、一般运算、结构控制、对象与结构的处理、文件处理等。 3、函数定义区 函数的定义包含函数说明和函数体两部分。 4、注释 //或/* */为注释,不能嵌套

C语言基础知识归纳

C 语言基础知识 1. 每个C 程序有且只有一个主函数main() ,且程序必须从main() 函 数开始执行,并在 main() 函数中结束。 2. 在 C 语言中,用 e 来表示科学计数法时,规定在 e 的前面必须有 数字,后面必须为整数。 3. 用单引号括起来的一个字符常量只能存放一个字符;C 语言中没有 字符串变量,只能用字符数组来存储字符串。 4. 外部变量在编译时由系统分配永久的内存空间,所以外部变量的类 型不是自动存储类别。 5. 在一个函数内的复合语句中定义的变量,只能在这个复合语句范围 内有效。 6. 用 sizeof(int) 计算 int 类型数据的字节数。 7. C 语言运行时,首先系统检查语法的正误,再运行程序的语法; C语言中,可以在一个函数中嵌套一个函数,但是不能在一 个函数中定义一个函数;只有在函数外部定义的函数才是外部函数; C语言的子程序有过程和函数两种。 8. 预处理命令行的位置没有规定,只是习惯放在前面;在源文件中的 可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。 9. feo f函数的作用是检查文件是否结束,当结束时返回的值为非零, 否则为零。 10. 当定义了数组后,在给其赋值时,不能直接把字符串赋给数

组名。 11. 在赋值表达式中,赋值运算符“=”右侧不能为表达式;在求余运 算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。 12. 静态局部变量,只有当程序结束后,其值才释放。 13. 当调用函数时,实参是一个数组名,则向函数传送的是数组每一个 元素的地址。 14. 算法的特点为有零个或多个输入,有一个或多个输出,当相同的输 入时,其结果相同;算法正确的程序最终一定会结束。 15. 在 C 语言中,预处理命令行都以“ # ”开头;当需要时才用 #in clude;预处理的作用就是实现宏定义和条件编译。16. 当数组元素的下标超出了定义的下标范围时,系统不给出“下标 越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。 17. 共用体变量不能作为函数的参数,也不能使函数带回共用体变量。 18. 指向函数的指针变量的定义形式为:数据类型(* 指针变量) ();,因此其为指向函数的指针变量。 19. 用 C 语言编写的代码程序是源程序,只有通过编译、连接才能进 行。 20. 在说明为static时,其生存期得到延长,而其作用域并没有改 变,在定义后系统会自动帮它赋值为 0, static 为关键字不能 被用作它用。

C语言基础知识总复习(考前突击专用)

C语言基础知识总复习(考前突击专用) 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。byte是指字节, 一个字节= 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。

2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有8的,逢8进1。 b、C语言中的十六进制规定要以0x开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。 1.0在C语言中可写成1. 0.1在C语言中可以写成.1。 3)实型数据的合法形式:

C语言复习提纲

?第5章数据类型与输入输出 1.熟悉常用的关键字,掌握标识符的命名规则; 2.理解各种基本的数据类型, 包括描述符号、表述范围及存储方式; 3.理解变量与常量的特点,掌握各种类型变量与常量的使用方法; 4.掌握各种类型数据的基本输入输出方式,了解格式IO操作; 5.各种编程错误,掌握基本调试方法; ?第6章运算符与表达式 1.算术运算符及其表达式运算;(/ 整除,除零;%运算数为整数除零) 2.赋值运算符及复合赋值运算符,理解左值表达式; 3.自增和自减运算符,理解前置与后置的区别; 4.关系运算符、逻辑运算符及其表达式,注意短路问题; 5.其他运算符:逗号、条件运算符、sizeof; 6.数据类型的转换和混合运算规则 ?第7章选择结构 1.掌握if语句实现单选结构,注意逻辑条件的构造; 2.掌握if-else语句实现双选结构,if-else嵌套的表示与配对; 3.掌握if-else if-else语句实现多选结构 4.掌握利用switch语句实现多分支选择结构,注意break语句 5.各种选择结构的嵌套 ?第8章循环结构 1.理解两种循环结构,循环结构三要素:循环初始条件/ 循环体/循环条件; 2.掌握for、while与do..while语句,理解其区别与共性 3.掌握循环控制的方法,注意循环条件的设计; 4.理解循环嵌套,掌握双重、三重循环算法 5.掌握break和continue转向语句跳出循环的方法; 6.了解结构化程序的特点,熟练应用控制结构设计程序。

?第9章数组 1.理解一维数组存储特点,掌握数组定义、初始化和元素访问的方法; 区别数组定义与元素的引用,避免数组越界访问(下标范围[0,n-1] ); 2. 理解二维数组,一维数组的一维数组,行优先存储, 掌握二维数组定义、初始化和元素访问的方法(二重循环遍历); 3. 掌握字符数组的定义与初始化,理解字符串的特点与存储方式(‘\0’); 掌握字符数组的整体与局部访问,理解其和数值数组和区别 6.掌握向函数传递数组的方法,理解其实质(传递指针); 7. 掌握数组的基本算法,如排序(冒泡/选择/插入排序) 与查找(顺序与二分查找)算法。 ?第10章函数 1.理解函数的作用,掌握各种类型函数的定义方法; 2.理解函数原型的作用,掌握函数的声明方法; 3.掌握函数的调用方法,嵌套调用和递归调用; 4.理解函数传递数据的方式:返回值:函数的返回值只有一个区别实参和形参,区别按值传递和按地址传递 5.理解各种变量的作用域与生命期的区别与特点: 自动和静态变量,全局变量和局部变量; ?第11章指针 1.理解地址和指针的概念,掌握指针运算符*与& 2.掌握指针变量的定义和初始化,用指针间接引用数据对象的方法; 3.理解指针与一维数组的联系,掌握用其操作数组及其元素的方法; 4.理解指针与一维数组的联系,指向二维数组的行指针与列指针用法; 5. 熟练掌握处理字符串的方法,使用并定义各种字符串函数 理解字符数组和字符指针存储字符串的区别

第1章 C语言基础知识

第一章 C语言基础知识 一、选择题 1.算法具有五个特性,以下选项中不属于算法特性的是______。 A)有穷性B)简洁性C)可行性D)确定性 【答案】B 【解析】本题考查的是算法的特性。一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入:由一个或多个输出。简洁性不属于这5个特性,所以本题应该选择B。 2.以下叙述中错误的是 A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 【答案】A 【解析】本题考查C语言中标识符的概念。用用户标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,并且不能与C语言关键字相同。所以本题应该选择A。 3. 以下4组用户定义标识符中,全部合法的一组是() A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 【答案】A 【解析】本题考核的知识点是C语言中的标识符命名规则。标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM 不是由字母或下划线开头,故选项c不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。 4. 以下选项中,合法的一组c语言数值常量是( ) A)028 B)12. C).177 D)0x8a .5e-3 0Xa23 4e1.5 10,000 -0xf 4.5e0 0abc 3.e5 【答案】B 【解析】本题考查的知识点是:数值常量。 数值常量分为整型和实型两类。其中,整型有十进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。十进制和书面使用的数据表示一样;八进制是以数字O开头,后面跟由0~7组成的八进制数组成;十六进制是以0x(或OX)开头,后面跟由0~9与A~F(或a~f)组成的十六进制数组成;小数形式由数字和小数点组成,其整数部分或小数部分如果为0可省略,但不能同时省略。指数形式由小数形式或十进制形式开头,后面跟e(或E),再跟一个十进制整数组成。选项A中,028是八进制形式,但后面跟的8不在0~7之内,所以非法;选项c中,4e1.5是指数形式,但e后面所跟的不是整数,所以非法;选项D中,10,000中不能有?,?,所以非法。故本题应该选择B。 5. 以下叙述中正确的是() A)C语言的源程序不必通过编译就可以直接运行 B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C语言期末考试复习提纲

《网络与通信程序设计》复习大纲 一、C#与.NET概述 1.C#的特点(与Java/C++比较) 二、C#基本语法 1.标识符命名规则 2.数据类型与数据类型转换 (1)值(位数)与引用 (2)布尔值的处理 (3)常见转义字符 3.流程控制和跳转语句 4.异常处理 三、窗体 1.主要控件及作用 2.窗体/控件的主要属性、方法和事件 3.多窗体处理的主要方法 四、类与常用类 1.类的数据成员和功能成员 2.静态类和非静态类的调用与实例化(*) 3.构造函数与析构函数 五、字符编码与网络安全 1.字符、可视字符与字节数组的互换 2.字符与字符串处理的方法 3.对称加密、非对称加密、信息摘要算法在网络通信中的应用 4.信息摘要算法、对称加密算法的实现 六、注册表与进程管理 1.主要注册表项与注册表读写方法 2.进程管理与参数传递的方法 七、文件操作 1.文件遍历与存取的方法 八、XML 1.格式(将指定表格写成XML格式) 2.通过XmlTextReader类读取指定元素的值 3.通过XmlTextWriter类写入一个新的XML文件 九、https://www.wendangku.net/doc/ab5657649.html, 1.SQL语句 2.联机对象与断开对象 3.数据库与可视数据控件之间的数据绑定

4.主要数据控件的作用 https://www.wendangku.net/doc/ab5657649.html,类 (1)Connection (2)Command (3)DataAdapter 十、高级编程 1.委托 (1)委托允许将方法作为参数进行传递 (2)C#事件基于委托实现 2.线程(*) (1)启动多线程的方法 (2)线程状态之间的转换 (3)对窗体控件的线程安全调用 (4)线程同步机制及主要方法 (5)理解同步、异步、阻塞、非阻塞 十一、串口通信 1.串行通信的接口连接 2.双机串行通信需要约定的属性 3.串口读写的办法 十二、图形图像 1.画布(图形)、画笔、画刷的定义 2.坐标转换 3.绘制曲线、折线和饼图 十三、应用层与运输层通信 1.WebBrowser、Registry、WebClient、SmtpClient等类的主要属性、方法和调用办 法 2.Socket的定义及TCP/UDP通信的主要特点 3.运输层编程中的常用基础类 4.TCP数据流的发送与接收,以及其与文本的转换 5.TCP通信协议的设计(*) 6.UDP组播与广播的实现 7.P2P技术的特点与实现 十四、API调用 1.常用API接口 2.常用方法与数据通信

相关文档