C语言程序设计基础知识期末复习试题Word文档下载推荐.docx

上传人:b****3 文档编号:7854503 上传时间:2023-05-09 格式:DOCX 页数:28 大小:32.75KB
下载 相关 举报
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第1页
第1页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第2页
第2页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第3页
第3页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第4页
第4页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第5页
第5页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第6页
第6页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第7页
第7页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第8页
第8页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第9页
第9页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第10页
第10页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第11页
第11页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第12页
第12页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第13页
第13页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第14页
第14页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第15页
第15页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第16页
第16页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第17页
第17页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第18页
第18页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第19页
第19页 / 共28页
C语言程序设计基础知识期末复习试题Word文档下载推荐.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计基础知识期末复习试题Word文档下载推荐.docx

《C语言程序设计基础知识期末复习试题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础知识期末复习试题Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。

C语言程序设计基础知识期末复习试题Word文档下载推荐.docx

”)123(第一个字符不能为数字)goto(标识符中不允许有空格)

a_80%(出现非法字符“%”)if与关键字相同)

6、常量与变量

注意:

以下变量定义形式是错误的inta,intb;

inta;

b;

(1)整型常量

·

十进制整型:

能出现数字0~9,可带正负号如:

0,11,95,-2

·

八进制整型:

以数字0开头的数字串,能出现数字0~7如:

011(十进制9),0111(十进制73)

十六进制整型:

以0x开头的,能出现数字0~9,字母a~f或A~F如:

0x11(十进制17),0xa5(十进制165)

(2)整型变量基本类型int

(3)浮点型

浮点型常量十进制小数形式:

由数字与小数点组成(必须有小数点)。

如1.23,-123.,0.0123,.0,0.

指数形式,如123e3或123E3都代表123×

103注意字母e或E之前必须有数字,后面必须是整数E-5,.1234e1.2,6.5E为非法的浮点型常量

浮点型变量floatdouble

(4)字符型

1)字符常量:

分为两类

用单撇号括起来的一个字符如:

’a’,’9’,’’(空格)是合法字符常量

”a”,’99’是非法字符常量

转义字符:

以\(反斜杠)开头的特殊形式的字符。

如:

’\n’,’\r’,’\123’,’\x3b’

2)字符变量:

char,占1个字节空间,只能存放一个字符。

存储特点:

在字符变量中实际上存储的是字符的ASCII码,其存储形式与整数的存储形式相同。

I.字符数据与整型数据可相互赋值,直接运算。

II.大小写字母转换

小写字母减32得到相应的大写字母,如:

‘a’-32得到‘A’

大写字母加32得到相应的小写字母如:

‘B’+32得到‘b’

(5)字符串常量

定义:

用一对双撇号(””)括起来的字符序列。

”hello””Mary””\\aaa\’\n”

存储:

每个字符串尾自动加一个‘\0’作为字符串结束标志

(6)变量赋初值

格式:

类型说明符变量1=常数1[,变量2=常数2[,·

]];

intx=1,y=1,z=1;

intx=y=z=1;

(语法错误)

7、算数运算符和算术表达式

(1)运算符的注意事项

除法运算符“/”进行求商运算。

对于不同类型的运算对象,除法表达式计算结果的类型也会不同。

如果x,y是整型,则结果为整型,小数部分被略去。

如果x,y其中一个为浮点型量,则结果为浮点型。

“%”是求余运算。

a%b计算a除以b后的余数,也是a模b的值。

它要求两个运算对象必须是整型,其结果也是整型量。

(2)书写算术表达式的注意事项

将方括号改成圆括号,即算术表达式内所有的括号均为圆括号,*(乘法)不能省略

其中π为非字母字符,要用浮点型常量代替

其中不能出现分数,改用除法运算符,圆括号不能缺少

(3)算数运算符的优先级

优先级:

高----->

*/%----->

+-低注意:

可以用()来改变运算的顺序.

(2)(3)(4)

8、自增、自减运算符

后缀i++(i--)先使用i的值,再使i的值加(减)1

前缀++i(--i)先使i的值加(减)1,再使用i的值

自增、自减运算只能用于变量,不能用于常量和表达式。

自增、自减运算符高于基本算术运算符。

9、赋值运算符

(1)简单赋值运算符运算符:

=表达式格式:

变量=表达式

赋值运算符左边必须是变量而不能是表达式;

赋值表达式的值是赋值号左边变量被赋值后的值;

(2)算术运算符“+—*/%”和赋值运算符“=”结合起来,形成复合赋值运算符。

+=:

加赋值运算符;

如a+=3,等价于a=a+3-=、*=、/=、%=与此类似

·

复合运算符在书写时,两个运算符之间不能有空格。

复合运算符右边的表达式计算完成后才参与复合赋值运算;

10、当表达式中的数据类型不同时,要进行类型转换。

转换方式自动(隐式)转换:

系统自动把数据由低级类型向高级转换。

强制转换:

将表达式的运算结果强制转换成指定的数据类型。

自动转换规则强制转换格式:

(目标类型名)(表达式)

double←long←unsigned←int

↑↑

float高←低charshort

逗号运算符与逗号表达式:

运算优先级最低为15级

求解过程先求表达式1的值,再求表达式2的值,·

,直至求出表达式n的值。

整个表达式的值为表达式n的值。

x=5*8,6+9先把x赋值为40,表达式的值为15

11、字符数据的简单输入和输出

(1)putchar函数(字符输出函数)形式:

putchar(c)

c可以是字符常量、字符变量或整型变量。

putchar(100);

用putchar函数也可输出转义字符。

putchar(‘\n’);

/*输出一个换行符*/

putchar(‘\\’);

/*输出一个反斜杠\*/

该函数包含在stdio.h库中,因此应在使用该函数的程序开头加入:

#include<

stdio.h>

(2)getchar作用:

从终端(如键盘)输入一个字符。

形式:

getchar()无参数

说明:

该函数只能接收一个字符,其函数值可以赋给一个字符变量或整型变量,也可作为表达式的一部分,该函数包含在stdio.h中。

(3)格式输出函数格式:

printf(格式控制,输出表列)

格式控制是用双撇号括起来的字符串,也称“转换控制字符串”,包括2种信息。

1)格式说明:

%[<

附加格式字符>

]格式字符

将输出列表中的数据转换为指定格式输出。

2)普通字符:

原样输出。

输出表列:

需要输出的数据列表,彼此间用逗号分隔。

它可是任意合法的表达式。

printf("

a+b=%5.2f"

c)

(4)格式字符

1)d格式符,用来输出十进制整数

%d按整型数据的实际长度输出。

%mdm代表某个数字,指定输出数据的最小宽度。

若数据的位数小于m,则左侧补空格(右对齐),若大于m则按实际位数输出。

%-md与%md类似,只是左对齐

2)c格式符:

用来输出一个字符%c%mc%-mc

3)f格式符:

用来以十进制小数形式输出实数(float,double)

%m.nf输出数据最小占m列,其中包括n位小数和1位小数点,右对齐(小数点也算占一列)%-m.nf与上面类似,只是左对齐

4)S格式符:

用来输出一个字符串

%s按字符串原长输出%ms输出字符串最小占m列,右对齐,左补空格

%-ms输出字符串最小占m列,左对齐,右补空格

%m.ns字符串占m列,但只取左端n个字符,右对齐

%-m.ns字符串占m列,但只取左端n个字符,左对齐

使用说明:

1)格式控制中的格式说明符,必须按从左到右的顺序,与输出表中的每个数据一一对应,否则出错。

printf(“f=%d,i=%f\n”,5.6,3);

显示:

f=1717986918,i=0.000000

2)格式字符紧跟在“%”后面就作为格式字符,否则将作为普通字符使用(原样输出)。

printf(”c=%c,f=%ff\n“,‘a’,1.5);

其中的第一个c和f,第三个f,都是普通字符。

(5)scanf函数scanf(格式控制字符串,地址列表)

格式控制与printf函数类似。

地址列表是由若干个地址组成的表列(以逗号隔开),可以是变量的地址,或字符串的首地址。

scanf(“%d%d%d”,&

a,&

b,&

c);

1)格式符中无普通字符时,可用空格、Tab键、回车键作分隔符。

最后的回车键代表输入结束

2)用c格式符输入字符时,空格、回车、转义字符等均为有效字符。

例:

chara,b,c;

scanf("

%c%c%c"

&

a,&

b,&

正确的输入方法:

键入ABC则a=‘A’,b=‘B’,c=‘C’

若键入:

ABC则a=‘A’,b=‘’(空格),c=‘B’

若键入ABC未送,系统已经认为输入结束了则:

a=‘A’,b=‘\n’(换行符),c=‘B’

若不同类型输入则综合上述规则

3)在格式控制中除格式说明符外若还有其它字符,则应按顺序原样输入。

4)可以指定输入数据所占列数,系统自动按它截取所需数据。

5)%后的“*”附加说明符,用来表示跳过相应的数据。

如:

scanf(“%2d%*3d%2d”,&

b);

输入1234567则将12↔a,67↔b,345被跳过

6)输入数据时不能规定精度。

scanf(“%7.2f”,&

a);

错误

7)double类型的变量输入时,要用%lf%le(必须记住!

doublex;

scanf(“%lf”,&

x);

3、选择结构程序设计

1、if语句实现选择

if(表达式)语句1表达式可以是关系表达式、逻辑表达式、数值表达式

else语句2

最常用的3种if语句形式:

(1)if(表达式)语句1(没有else子句)

(2).if(表达式)语句1

(3)else语句2(有else子句)

(4)if(表达式1)语句1

elseif(表达式2)语句2

elseif(表达式3)语句3

elseif(表达式m)语句m

else语句m+1

(在else部分又嵌套了多层的if语句)

说明:

(1)整个if语句可写在多行上,也可写在一行上,但都是一个整体,属于同一个语句

(2)“语句1”…“语句m”是if中的内嵌语句内嵌语句也可以是一个if语句

(3)“语句1”…“语句m”可以是简单的语句,也可以是复合语句

2、关系运算符

(1)关系运算符:

用来对两个数值进行比较的比较运算符

C语言提供6种关系运算符:

①<(小于)②<=(小于或等于)③>(大于)④>=(大于或等于)优先级高

⑤==(等于)⑥!

=(不等于)优先级低

(2)关系表达式

用关系运算符将两个数值或数值表达式连接起来的式子,关系表达式的值是一个逻辑值,即“真”或“假”,在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”

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

3种逻辑运算符:

&

(逻辑与)||(逻辑或)!

(逻辑非)

判断年龄在13至17岁之内?

age>

=13&

age<

=17

逻辑运算符的优先次序!

→&

→||(!

为三者中最高)

逻辑表达式的值应该是逻辑量“真”或“假”

编译系统在表示逻辑运算结果时以数值1代表“真”,以0代表“假”

但在判断一个量是否为“真”时以0代表“假”,以非0代表“真”注意:

将一个非零的数值认作为“真”

在进行逻辑表达式的求解中,并不是所有的逻辑运算都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符。

4、条件运算符与条件表达式

条件表达式的一般形式为:

表达式1?

表达式2:

表达式3

条件运算符的执行顺序:

求解表达式1

若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值

若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值

条件运算符的结合方向为“自右至左”

5、switch语句

switch语句的作用是根据表达式的值,使流程跳转到不同的语句

switch语句的一般形式:

switch(表达式)整数类型(包括字符型)

{case常量1:

语句1;

break

case常量2:

语句2

┇┇┇

case常量n:

语句n

default:

语句n+1

}

优先级顺序:

赋值运算符→&

和||→关系运算符→算术运算符→!

4、循环结构程序设计

1、用while语句实现循环

while语句的一般形式如下:

while(表达式)语句→循环体

循环条件表达式“真”时执行循环体语句“假”时不执行

while循环的特点是:

先判断条件表达式,后执行循环体语句

while循环的作用:

实现“当型”循环

使用说明:

在while的循环体中一定要有使循环趋于结束的语句;

否则将形成死循环;

注意循环操作的范围、花括号、分号的使用;

注意给循环变量赋初值的位置及初值的正确性

2、用do...while语句实现循环

do---while语句的特点:

先无条件地执行循环体,然后判断循环条件是否成立

do---while语句的一般形式为:

do

语句

while(表达式);

while和do...while语句的比较

当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同;

否则不相同

(1).循环体内必须有使循环趋于终止的条件

while(i<

=100)do

{sum=sum+i;

{sum=sum+i;

i++;

}}while(i<

=100);

(2)注意循环初值与循环条件

i=1;

i=0;

=100)while(i<

100)

{i++;

sum=sum+i;

}}

(3)do_while循环的循环体至少执行一次,while循环的循环体可能一次也不执行。

(4)在循环体至少执行一次的前提下,do_while与while循环等价。

3、for语句实现循环

for语句的一般形式为

for(表达式1;

表达式2;

表达式3)

表达式1:

设置初始条件,只执行一次。

可以为零个、一个或多个变量设置初值执行

表达式2:

循环条件表达式,用来判定是否继续循环。

在每次执行循环体前先执行此表达式,决定是否继续执行循环

表达式3:

作为循环的调整器,例如使循环变量增值,它是在执行完循环体后才进行的

for语句说明:

1)表达式1可省略,但分号不能省;

如:

inti=1,sum=0;

for(;

i<

=100;

i++)

2)若表达式2省略,循环条件永远为真;

for(i=1;

;

printf(“%d,”,i);

死循环自己编程序时不建议采用,3)表达式3也可省略,但应设法保证循环正常结束;

但要能看懂别人的程序

for(i=1;

i++;

}

4)可只给循环条件;

i=1;

}

5)三个表达式都可省;

;

)相当于while

(1)

6)表达式1和表达式3可以是逗号表达式;

for(i=1,sum=0;

7)表达式2一般为关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值为非零就执行循环体。

如:

(c=getchar())!

='

\n'

%c,"

c);

注:

尽量避免用实型变量控制循环次数。

4、改变循环的执行状态

(1)用break语句提前终止循环

break语句作用:

1)从循环体内跳出,即提前结束循环,接着执行循环下面的语句;

2)break语句只能用于循环语句和switch语句

注意:

在循环中使用了break语句后,循环语句的结束可能有两种:

1.正常结束(正常出口):

由于循环条件表达式为假

2.非正常结束(异常出口):

由break语句引起

(2)continue语句提前结束本次循环

结束本次循环,即跳过循环体语句中下面尚未执行的语句,接着执行下一次是否执行循环的判定

for(n=100;

n<

=200;

n++)

{ if(n%3==0)continue;

 printf(”%d”,n);

这段程序等价于if(n%3!

=0)printf(”%d”,n);

for语句中执行的是表达式3

(3)break语句和continue语句的区别

continue语句只结束本次循环,而不是终止整个循环的执行

break语句结束整个循环过程,不再判断执行循环的条件是否成立

4、利用数组处理批量数据

1、一维数组

(1)定义一维数组

定义一维数组的一般形式为:

类型符数组名[常量表达式];

类型符:

数组元素的类型。

数组名:

即数组的名称,其命名方法同变量名。

在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。

注意:

1)在定义数组时,只能使用整常量表达式表明数组的大小,即数组元素的个数,不能是变量。

也就是说,C语言不允许对数组的大小作动态定义.

intn=10;

intarr[n];

错误,n不是常量而是变量

数组说明中其他常见的错误:

①floata[0];

/*数组大小为0没有意义*/

②intb

(2)(3);

/*不能使用圆括号*/

③intk,a[k];

/*不能用变量说明数组大小*/

一维数组的存储方式:

每个元素都有一个编号(从0开始),称为下标。

(2)引用一维数组

一次只能引用一个数组元素不能引用整个数组所有元素!

也不能引用多个元素

引用数组元素的表示形式为:

数组名[下标]

一个数组元素就是一个普通变量,跟普通变量一样使用。

a[3]=a[2]%4

引用数组元素时,下标可以是整型常量、变量或整型表达式

对数组中所有元素逐个引用时,通常可使用循环结构。

(3)一维数组的初始化

数组的初始化:

在定义数组的同时,给各数组元素赋值

类型符数组名[表达式]={初值表};

给部分元素赋初值。

例inta[8]={0,1,2,3,4};

后面的用0补齐

给全部元素赋初值时可不指定数组的长度。

inta[]={0,1,2,3,4};

只有在初始化时[]中可以空着。

其他情况不行,例如:

inta[],b[];

是错误的

2、二维数组

(1)定义二维数组二维数组定义的一般形式为类型符数组名[常量表达式][常量表达式];

(2)引用二维数组数组名[行下标][列下标]行、列下标都是从0开始

二维数组的存储方式二维数组在内存中按行存放

(3)二维数组的初始化二维数组初始化通常是按行进行的

类型符数组名[表达式1][表达式2]={初值表};

给全部元素赋初值。

例inta[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};

或写成:

inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}

给二维数组的全部元素赋初值,可以不指定第一维的长度,但第二维的长度不能省略。

#defineN10

#defineM6

若有定义:

inta[N][M];

二维数组按行输入标准模板:

for(i=0;

i<

N;

i++)

for(j=0;

j<

M;

j++)

%d"

a[i][j]);

二维数组按行输出标准模板:

{for(j=0;

a[i][j]);

\n"

);

}

3、字符数组

(1)字符数组的定义:

定义字符数组的方法与定义数值型数组的方法相同,使用关键字char

char数组名[常量表达式],·

(2)字符数组的初始化一维字符数组初始化1)逐个字符赋给数组中的各元素

2)用字符串常量初始化数组中的各元素

字符串在实际存储时,是用字符数组存储的,系统会自动的在其尾部添加一个结束标志’\0’二维字符组初始化二维字符数组的初始化,可以采用逐个字符式或者字符串常量的方式

(3)引用字符数组引用字符数组中的元素,与引用其他类型数组元素相同

只能是一个一个字符地引用

(4)字符数组的输入输出

1、利用getchar、putchar逐个处理(用循环结构)

利用格式符%c逐个输入、输出字符for(i=0;

9;

scanf("

%c"

,&

str[i]);

当字符数组存字符串时,可利用格式符%s,可以一次输入、输出整个字符串。

(不用循环结构)

scanf(“%s”,字符数组名);

用于输入一个字符串

printf(“%s”,字符数组名);

用于输出一个字符串

如果一个字符数

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

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2