C语言二级教程.docx

上传人:b****4 文档编号:6196965 上传时间:2023-05-09 格式:DOCX 页数:125 大小:99.29KB
下载 相关 举报
C语言二级教程.docx_第1页
第1页 / 共125页
C语言二级教程.docx_第2页
第2页 / 共125页
C语言二级教程.docx_第3页
第3页 / 共125页
C语言二级教程.docx_第4页
第4页 / 共125页
C语言二级教程.docx_第5页
第5页 / 共125页
C语言二级教程.docx_第6页
第6页 / 共125页
C语言二级教程.docx_第7页
第7页 / 共125页
C语言二级教程.docx_第8页
第8页 / 共125页
C语言二级教程.docx_第9页
第9页 / 共125页
C语言二级教程.docx_第10页
第10页 / 共125页
C语言二级教程.docx_第11页
第11页 / 共125页
C语言二级教程.docx_第12页
第12页 / 共125页
C语言二级教程.docx_第13页
第13页 / 共125页
C语言二级教程.docx_第14页
第14页 / 共125页
C语言二级教程.docx_第15页
第15页 / 共125页
C语言二级教程.docx_第16页
第16页 / 共125页
C语言二级教程.docx_第17页
第17页 / 共125页
C语言二级教程.docx_第18页
第18页 / 共125页
C语言二级教程.docx_第19页
第19页 / 共125页
C语言二级教程.docx_第20页
第20页 / 共125页
亲,该文档总共125页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言二级教程.docx

《C语言二级教程.docx》由会员分享,可在线阅读,更多相关《C语言二级教程.docx(125页珍藏版)》请在冰点文库上搜索。

C语言二级教程.docx

C语言二级教程

程序设计基本概念

1.1程序和程序设计

程序:

连续执行的一条条指令的集合称为“程序”。

对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1的代码构成的二进制指令或数据。

由于这种形式的指令是面向机器的,因此也被称为“机器语言”。

所以所有由高级语言编写的程序都要经过编译,编译成二进制代码。

这种具有翻译功能的软件称为编译程序。

语言有很多种,我们现在要谈论的就是C语言。

为什么计算机会能进行各种各样的操作,就是由不同的指令来实现的。

而不是只有C语言才可以实现这样的功能。

还有其它很多语言。

但是我们一般说C语言是其它语言的母语。

会了C语言其它的语言在学习的过程就会感到轻松一些。

1.1.2程序设计

1.确定数据结构

2.确定算法

3.编码

4.在计算机上调试程序

5.整理并写出文档资料

1.2算法

定义:

是指为了解决某个特定的问题而采取的确定且有限的步骤。

有穷性

确定性

可行性

有零个或多个输入

有一个或多个输出

1.3结构化程序设计和模块化结构

结构化程序由三种基本结构组成

顺序结构

选择结构

循环结构

12)计算机能直接执行的程序是(B)。

A)源程序B)目标程序C)汇编程序D)可执行程序

13)以下叙述中正确的是(D)

 A)程序设计的任务就是编写程序代码并上机调试

 B)程序设计的任务就是确定所用数据结构

 C)程序设计的任务就是确定所用算法

 D)以上三种说法都不完整

第2章:

C程序设计的初步知识

2.1C语言程序的构成和格式

#include(控制输入输出)

main()(函数是程序基本单位,只有一个。

开始执行)

{(定义部分和执行部分组成)

doublea,b,area;

a=1.2,b=3.6;/*将矩形的两条边长分别赋给a和b变量*/注释符,解释说明。

在程序中是不执行。

area=a*b;

printf(“a=%f,b=%f,area=%f\n”,a,b,area);/*输出矩形的两条边长和面积*/

}

#include:

每当写一个程序时,第一条语句永远是这个语句,因为一个程序可以没有输入但必须要有输出,而这个语句就是控制输入输出的。

所以任何一个程序都必须由这个语句开始。

main():

是一个程序的主函数。

一个程序是由多个函数组成的,而任何一个程序都要有一个主函数,有且只有一个。

任何程序都是由主函数开始执行的。

{}:

它们两个必须要成对出现,它们中的语句是主函数体。

包括定义部分和执行部分。

它们中的语句,每一条必须由;结束。

;是C语句的一个组成部分而不是一个结束标识。

/**/:

注释符一定要成对出现,不允许嵌套。

两个符号间的语句不被执行。

例年真题:

#include

main()

{

inta;

a=5;/*给A变量赋值5

a+=3;a=a+3;再赋值后再加3*/

printf(“%d”,a);8

}

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

A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句

C)简单C语句必须以分号结束D)C语句必须在一行内写完

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

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

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

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

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

第二课:

C语言的基础知识

2.2标识符,常量和变量

2.2.1标识符:

定义:

由字母,数字和下划线组成,并且第一个字符必须为字母或下划线的。

这样的组成就是标识符。

下列合法的是:

elsewhat#$12334aa34a_ba-bIf

a=3A=4

注意:

在C中大写字母与小字字母被认为是两个不同的字符。

分类:

关键字:

在C中已经定义好了的,不能用作它用的。

如ifdoubleint等等。

预定义标识符:

如printfscanf

用户标识符:

用户根据自己的需求来定义的。

(12)以下选项中,能用作用户标识符的是(C)

A)void

B)8_8

C)_0_

D)unsigned

(11)以下选项中合法的标识符是(C)

A)1-1B)1—1C)_11D)1—

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

A)printB)FORC)&aD)_00

2.2.2常量:

定义:

是指在程序的执行的过程中,其值不会被改变的量。

分类:

整型常量:

没有小数的常量

如:

391234等等都是。

实型常量:

有小数点的常量

如:

3.93.03..8

字符常量:

由单个字符组成的量

如:

’a’‘b’‘3’

字符串常量:

至少由一个字符组成的量

如:

“a”“abc”“beijing”

符号常量:

符号常量的值到底是多少,这是由在来定义符号常量时来决定的

?

2*pi

(13)以下选项中,能用作数据常量的是(D)

A)o115B)0118C)1.5e1.5D)115L

(13)以下选项中不能作为C语言合法常量的是(A)。

A)'cd'B)0.1e+6C)"\a"D)'\011'

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

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

2.3整型常量与实型常量

整型常量的几个表示方法

十进制数:

八进制数:

以0开头的数字,由0-7组成。

下列合法的八进制数是

A,0B,028C,-077D,01.0

十六进制数:

以0X开头,由0-9和A-E组成。

A,oxffB,0xabcC,0x11D,0x19

实型常量123.4

小数形式:

123.4

指数形式:

1.234e2

1.字母e或E之前必须要有数字

2.字母e或E之后的数字必须是整数

3.字母e或E和数字之间不能有空格。

A,2.607E-10.8103E2-77.77456E-20.1e+61.23E1.2

2.2.4变量:

1.定义:

在程序的运行过程中其值可以被改变的量,就叫变量。

2.原则:

变量必须先定义后使用。

变量定义的过程就是给变量开辟存储单元的过程。

3.分类:

整型变量:

用关键字int来表示.

shortint短整型

longint长整型在内存中占4个字节如123L

unsigned无符号如有-200U这就是错的。

变量的定义:

inta这是定义了一个整型变量a.

实型变量:

用关键字double或float来表示。

float单精度在内存中占4个字节

double双精度在内存中占8个字节。

.6位小数

2.2.5算术表达式

一、基本的算术运算符

+-*/%这些是双目运算符(就是指操作对象有两个)

注意:

除%外,其它的运算符的运算对象可以是整型也可以是实型。

%的操作对象只能是整型。

如10%3=110.7%310%4.51%3=1

+-也可以做为单目运算。

-5.4+4.9

说明:

1.如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。

如1.0/2.0=0.51/2=0

2.如果双目运算符两边运算数的类型不一致,则系统会自动进行类型转换,使两边的类型一致后,再进行运算。

1.0/2=0.5

3.所有的单精度数据,在运算过程中都以双精度进行运算。

二、优先级

()+-*/%+-

由高——————低

如5+1/2=?

5

2.5.3强制类型转换表达式

格式:

(类型名)(表达式)

例:

(int)(3.234)=3

(double)(10%3)=?

(14)表达式:

4-(9)%2的值是(B)

A)0

B)3

C)4

D)5

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

A)x=y*5=x+z

B)int(15.8%5)

C)x=y+z+5,++y

D)x=25%5.0

2.6赋值表达式

格式:

变量名=表达式

注:

1.不可以颠倒(左边必须是变量名,右边必须是C语言中合法的表达式)

2.功能就是先求出右边表达式的值,然后把此值赋值给赋值号左边的变量。

确切的说是把数据存入以该变量为标识的存储单元中去。

a=4,a=7b=4a=b

3.结合性的优先级仅高于逗号表达式。

顺序是自右向左的。

如a=2+7/3

4."="是一个赋值号,不是一个等号。

A=3b=3a==b

5.x=y。

变量的值也是可以传递和赋值的。

它的意思就是将变量Y中的值赋值到X中去。

同样N=N+1也成立

6.赋值运算符的左侧只能是变量,不能是常量或表达式a+b=4这就是违法的

7。

赋值号的右边也可以是一个赋值表达式。

如a=(b=7+1);b=7+1a=b

补充;表达式与语句的区别,

表达式后面加一个分号就是语句。

2.6.2复合赋值表达式+=-+/=*=

例:

a+=3------a=a+3同理可得a*=3/=-=

a+=a-=a+aa的初值是9

a+=a-=18

a+=(a=a-18)

a+=(a=-9)

a+=a---a=a+a

-18

(15)若有定义语句:

intx=10;,则表达式x-=x+x的值为(B)

A)-20

B)-10

C)0

D)10

(14)设有定义:

intx=2;,以下表达式中,值不为6的是(D)

A)x*=x+1x=x*(x+1)

B)x++,2*x

C)x*=(1+x)

D)2*x,x+=2

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

A)x=y==5;01

B)x=n%2.5;

C)x+n=I

D)x=5=4+1;

2.7++和--的讲解

++:

自身加1

--:

自身减1

i=3i++______I=i+1i=4

单目

++II++

当++在前,先自身加1,然后再干别人让干的事情。

inti=3,a;a=++i;a=4i=4

当++在后,先别人让干的事情然后再自身加1。

inti=3,a;a=i++;a=3i=4

inti=3;

inta;

a=i++;a=3

a=++I;a=4

第三课:

输入和输出语句

3.2输出语句的讲解

一、printf函数的一般调用形式

格式:

printf(格式控制,输出项1,输出项2,.......);

在printf函数的最后面写上;号就是输出语句。

1,给输出项白提供输出格式说明

格式说明符:

作用:

就是使数据按格式说明符的要求进行输出。

组成:

由%号和紧跟在其后的格式描述符组成。

int--------%d

float或double---%lf或e%

char--------%c

2.提供原样输出的文字或字符

在“”中除了格式说明符之外的内容要全部原样输出。

各个输出项之间要用逗号隔开。

输出项可以是任意合法的常量,变量或表达式。

printf中常用的格式说明

在格式说明符中,每一个格式说明符都必须以%号开头由相应的类型标识字母结束。

但在他们之间可以有其它的一个内容:

%c:

输出一个字符

%d:

输出一个十进制的数据

%o:

以八进制格式输出。

%X:

以十六进制输出

%U:

无符号十进制输出

%f:

以带小数点的数字输出

%e:

以指数形式输出

%s:

输出一个字符串。

%%:

输出一个%号

%4d:

输出的数据长度是4个长度,当原来的长度大于4个时会自动突破。

小于4个时会填充空格。

%x.yf:

x代表数制的宽度(包括小数点)。

Y代表小数点后面的小数位数。

注意事项:

1.输出比较自由一些,输出有的各个数之到底是什么,取决于格式说明符之间的内容。

2.格式说明符要与输出项一一对应。

3.输出语句中还可以有\n\r\t\a

4.尽量不要在输出语句中改变输出变量的值。

5.输出的数据中如果存在变量,一定要定义过的。

习题讲解

(13)阅读以下程序

#include

main()

{intcase;floatprintF;

printf(“请输入2个数:

”);

scanf(“%d%f”,&case,&pjrintF);

printf(“%d%f\n”,case,printF);

}

该程序编译时产生错误,其出错原因是(A)

A)定义语句出错,case是关键字,不能用作用户自定义标识符

B)定义语句出错,printF不能用作用户自定义标识符

C)定义语句无错,scanf不能作为输入函数使用

D)定义语句无错,printf不能输出case的值

(16)有以下程序

#include

main()

{inta=1,b=0;

printf(“%d,”,b=a+b);

printf(“%d\n”,a=2*b);

}

程序运行后的输出结果是(D)

A)0,0

B)1,0

C)3,2

D)1,2

(15)程序段:

intx=12;

doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是(A)

A)123.141593

B)12

3.141593

C)12,3.141593

D)123.141593

#include

main()

{

doublea=123.456;

printf("%6.2f",a);

}

输入语句

格式:

scanf(格式控制,输入项1,输入项2,...);

例如:

想通过键盘输入3个数分别给变量a,b,c。

并且他们分别为整型,浮点型,双精度型。

输入语句为scanf("%d%f%lf",&k,&a,&y);

说明:

1.格式说明符与输出语句一样。

2.在格式串中,必须含有与输入项一一对应的格式转换说明符。

3.在VC6.0的环境下,要收输入的DOUBLE型数据的格式说明符一定要用%lf,否则数据不能正确的输入

4.由于输入是一个字符流,所以当输入的数据少于输入项时,程序会等待用户输入,直到满足要求。

当输入的数据多于输入项时,多余的数据会自动作废。

例题:

intx;

x=11/3;

inty=5;

printf("%%d,%%%d\n",x,y);结果是:

%d,%3

[3.5]若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是(D)

A)read(a,b,c);B)scanf(“%d%d%d”,a,b,c);

C)scanf(“%D%D%D”,&a,%b,%c);D)scanf(“%d%d%d”,&a,&b,&c);

[3.6]若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是(b)

A)10B)10.0,22.0,33.0C)10.0D)1022

2222.033.033

33

scanf(“%f%f%f”,&a,&b,&c);

复合语句:

多个语句被{}括起来,当成一条语句来执行。

空语句:

最后的表示只有一个;

程序举例:

1。

编写一个程序,从键盘上输入两个数字,让后让他们互换一下。

#include

main()

{

inta,b;

printf("请输入两个数字:

");

scanf("%2d%3d",&a,&b);

printf("qian:

%d%d",a,b);

intc;

c=a,a=b,b=c;

printf("后:

%d%d",a,b);

}

2。

编写程序,对一个double型数据进行四舍五入运算。

要求保留两位有效小数。

123.4567123.45

123.4567*100=12345.67

12345.67+0.5=12346.17

(int)(12346.17)=12346

12346/100=123.46

3。

编写程序,使从键盘中输入的三位数倒着输出。

选择题

[3.1]若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是(C)

A)a=b=c=d=100;B)d++;C)c+b;D)d=(c=22)-(b++);

[3.2]以下选项中不是C语句的是(C)

A){inti;i++;printf(“%d\n”,i);}B);

C)a=5,c=10D){;}

[3.3]以下合法的C语言赋值语句是(B)

A)a=b=58B)k=(int)(a+b);C)a=58,b=58D)--i;

[3.4]以下程序的输出结果是(C)

A)0B)1C)3D)不确定的值

main()

{intx=10,y=3;

printf(“%d\n”,y=x/y);}

[3.5]若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是(D)

A)read(a,b,c);B)scanf(“%d%d%d”,a,b,c);

C)scanf(“%D%D%D”,&a,%b,%c);D)scanf(“%d%d%d”,&a,&b,&c);

[3.6]若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是(B)

A)10B)10.0,22.0,33.0C)10.0D)1022

2222.033.033

33

scanf(“%f%f%f”,&a,&b,&c);

[3.7]若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是(C)

A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;

C)a=t;t=b;b=a;D)t=b;b=a;a=t;

[3.8]若变量已正确定义,以下程序段的输出结果是(D)

A)输出格式说明与输出项不区配,输出无定值B)5.17

C)5.168D)5.169

X=5.16894;5168.945169

Printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);

[3.9]若有以下程序段,c3中的值是(A)

A)0B)1/2C)0.5D)1

intc1=1,c2=2,c3;

c3=c1/c2;

[3.10]若有以下程序段,其输出结果是(B)

A)3,0,-10B)0,0,5C)-10,3,-10D)3,0,3

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

003

printf(“%d,%d,%d\n”,a,b,c);

填空题

[3.21]若有以下定义,请写出以下程序段中输出语句执行后的输出结果。

(1)-2002500

(2)i=-200,j=500(3)i=-200

j=2500

inti=-200,j=2500;

printf(“

(1)%d%d”,i,j);

printf(“

(2)i=%d,j=%d\n”,i,j);

printf(“(3)i=%d\nj=%d\n”,i,j);

[3.22]变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时

scanf(“%d”,&i);scanf(“%d”,&j);scanf(“%d”,&k);

当执行第一个输入语句,从键盘输入:

12.3表示Enter键

则变量i、j、k的值分别是____12____、____0___、__0____。

[3.23]复合语句在语法上被认为是一条语名。

空语句的形式是;

[3.24]C语句的最后用;结束。

[3.25]以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。

写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_____、_____、_____。

intk;floata;doublex;

scanf(“%d%f%lf”,&k,&a,&x);

pirntf(“k=%d,a=%f,x=%f\n”,k,a,x);

编程题和改错题

[3.29]以下程序多处有错。

要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。

main

{doublea,b,c,s,v;

printf(“inputa,b,c:

\n”);

scanf(“%d%d%d”,a,b,c);

s=a*b;/*计算长方形面积*/

v=a*b*c;/*计算长方体体积*/

printf(“%d%d%d”,a,b,c);

printf(“s=%f\n”,s,”v=%d\n”,v);

}

当程序执行时,屏幕的显示和要求输入形式如下:

inputa,b,c:

2.02.03.0此处的2.02.03.0是用户输入的数据

a=2.000000,b=2.000000,c=3.000000此处是要求的输出形式

s=4.000000,v=12.000000

[3.30]编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

[3.31]编写程序,输入两个整数:

1500和350,求出它们的商数和余数并进行输出。

[3.32]编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

[3.33]编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。

第四课:

C语言的程序结构

4-1节、关系运算与逻辑运算

一、简介

关系表达式与逻辑表达式的运算结果都会得到一个逻辑值。

就是“真”、“假”

在C语言中0表示“假”,非0(无论是负数还是正数都是真,更多时候用1来代替)表示“真”。

二、几个简单的关系运算符

<<=>>===!

=

注意:

1,由两个字符组成的运算符,中间不能有空格

2,它们都是双目运算符,具有自左至右的结合性。

(操作对象有2个)

3,上面的6个运算符中,前4个的优先级要比后2个的优先级要高。

先计算,后判断,最后进行赋值运算。

三、几个简单的逻辑运算符

&&与一假则假

||或一真则真

非非假则真,非真则假

1&&2=1

0&&6=0

inta=4,b=7;

a&&7=1

intx=0,y=7;

x++&&y++?

x=1y=7

++x&&y++?

x=1y=8

同样放在||中也是一样的。

4-2、4-3节、if语句

一、定义:

只有两种结果。

要么执行

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

当前位置:首页 > 自然科学 > 物理

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

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