C++语言程序设计知识点

更新时间:2023-09-30 18:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C++语言程序设计》

第一章 :程序设计基本概念

1.1程序和程序设计

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

1.确定数据结2.确定算法3.编码4.在计算机上调试程序 5.整理并写出文档资料 1.2算法

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

1有穷性 2确定性 3可行性 4有零个或多个输入 5有一个或多个输出 1.3结构化程序设计和模块化结构 结构化程序由三种基本结构组成

1顺序结构 2选择结构 3循环结构 计算机能直接执行的程序是目标程序

第二章 :C程序设计的初步知识

简单C 语句必须以分号结束

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

第二课:C语言的基础知识

2.2标识符,常量和变量 2.2.1 标识符:

定义:由字母,数字和下划线组成,并且第一个字符必须为字母或下划线的。这样的组成就是标识符。

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

关键字:在C中已经定义好了的,不能用作它用的。如if double int 等等。 预定义标识符:如printf scanf

用户标识符:用户根据自己的需求来定义的。

2.2.2常量:

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

整型常量:没有小数的常量

如:3 9 1234等等都是。 实型常量:有小数点的常量 如:3.9 3.0 3.

字符常量:由单个字符组成的量 如:?a? ?b? ?3?

字符串常量:至少由一个字符组成的量 如:“a” “abc” “ beijing”

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

2.3整型常量与实型常量 整型常量的几个表示方法 十进制数:

八进制数:以0开头的数字,由0-7组成。 下列合法的八进制数是 A,0 B,028 C,-077 D,01.0

十六进制数:以0X开头,由0-9和A-F组成。 A,oxff B,0xabc C,0x11 D,0x19 实型常量 123.4 小数形式:123.4 指数形式:1.234e2

1. 字母e和E之前必须要有数字 2.字母e和E之后的数字必须是整数 3.字母e’和数字之间不能有空格。

A,2.607E-1 0.8103E 2 -77.77 456E-2 0.1e+6 1.23E1.2

2.2.4变量:

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

2.原则:变量必须先定义后使用。变量定义的过程就是给变量开辟存储单元的过程。 3.分类:

整型变量:用关键字int来表示. short int 短整型

long int 长整型 在内存中占4个字节 如123L unsigned 无符号 如有-200U这就是错的。 变量的定义:int a 这是定义了一个整型变量a. 实型变量:用关键字 double 或float来表示。 float 单精度 在内存中占4个字节 double 双精度 在内存中占8个字节。

2.2.5 算术表达式

一、基本的算术运算符

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

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

如10%3=1 10.7%3 10%4.5 x%3=0 + - 也可以做为单目运算。-5.4 +4.9 说明:

1.如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。如 1.0/2.0=0.5 1/2=0

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

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

() + - * / % + - 由高——————低 如 (5+1)/2=???

2.5.3 强制类型转换表达式 格式:(类型名) (表达式) 例:(int)3.234=3

(double)10%3=? 2.6赋值表达式

格式:变量名=表达式

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

2.功能就是先求出右边表达式的值,然后把此值赋值给赋值号左边的变量。确切的说是把数据存入以该变量为标识的存储单元中去。a=4 , a=7

3.结合性的优先级仅高于逗号表达式。顺序是自右向左的。如a=2+7/3 4.\是一个赋值号,不是一个等号。

5.x=y。变量的值也是可以传递和赋值的。它的意思就是将变量Y中的值赋值到X中去。同样N=N+1也成立

6.赋值运算符的左侧只能是变量,不能是常量或表达式 a+b=c这就是违法的 7。赋值号的右边也可以是一个赋值表达式。如a=b=7+1; 补充;表达式与语句的区别,

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

2.6.2复合赋值表达式 例:

a+=3------a=a+3 同理可得a*=3 /= -= a+=a-=a+a a 的初值是9 a+=a-=18 a+=(a=a-18) a+=(a=-9) a+=a -18

(15)若有定义语句:int x=10;,则表达式x-=x+x的值为( B ) A)-20 B)-10 C)0 D)10

(14)设有定义:int x=2;,以下表达式中,值不为6的是 ( D ) A) x*=x+1 x=x*(x+1) B) x++,2*x C)x*=(1+x) D)2*x,x+=2

(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 (A) A)x=y==5; B)x=n%2.5; C)x+n=I D)x=5=4+1;

2.7 ++ 和— —的讲解 ++:自身加1 --:自身减1 如

i=3 i++_______I=i+1 i=4 单目

3++

++I I++

当++在前,先自身加1,然后再干别人让干的事情 。 当++在后,先别人让干的事情然后再干 自身加1。 int i=3; int a;

a=i++; a=3 a=++I;a=4

第三课:输入和输出语句 3.2输出语句的讲解

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

格式:printf(格式控制,输出项1,输出项2,.......); 在printf函数的最后面写上;号就是输出语句。 1,给输出项白提供输出格式说明 格式说明符:

作用:就是使数据按格式说明符的要求进行输出。 组成:由%号和紧跟在其后的格式描述符组成。 int--------%d

float或double---%f或e% char--------%c 2.提供原样输出的文字或字符

在 “ ” 中除了格式说明符之外的内容要全部原样输出。 各个输出项之间要用逗号隔开。

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

printf中常用的格式说明

在格式说明符中,每一个格式说明符都必须以%号开头由相应的类型标识字母结束。但在他们之间可以有其它的一个内容: %c :输出一个字符

%d:输出一个十进制的数据 %o:以八进制格式输出。 %X:以十六进制输出 %U:无符号十进制输出 %f:以带小数点的数字输出 %e:以指数形式输出 %s:输出一个字符串。 %%:输出一个%号

M:输出的数据长度是4个长度,当原来的长度大于4个时会自动突破。小于4个时会填充空格。

%x.yf: x代表数制的宽度(包括小数点)。Y代表小数点后面的小数位数。

注意事项:

1.输出比较自由一些,输出有的各个数之到底是什么,取决于格式说明符之间的内容。 2.格式说明符要与输出项一一对应。 3.输出语句中还可以有 \\n \\r \\t \\a

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

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

输入语句

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

例如:想通过键盘输入3个数分别给变量a,b,c。并且他们分别为整型,浮点型,双精度型。

输入语句为scanf(\说明:

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

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

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

4.由于输入是一个字符流,所以当输入的数据少于输入项时,程序会等待用户输入,直到满足要求。当输入的数据多于输入项时,多余的数据会自动作废。 复合语句:多个语句被{}括起来,当成一条语句来执行。 空语句:最后的表示只有一个;

程序举例:

1。编写一个程序,从键盘上输入两个数字,让后让他们互换一下。 #include main() {

int a,b;

printf(\请输入两个数字:\scanf(\printf(\:%d%d\int c;

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

printf(\后:%d%d\}

2。编写程序,对一个double型数据进行四舍五入运算。要求保留两位有效小树。

123.4567

123'4567*100=12345.67 12345.67+0.5=12346.17 (int)(12346.17)=12346 12346/100=123.46

第四课:C语言的程序结构

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

关系表达式与逻辑表达式的运算结果都会得到一个逻辑值。就是“真”、“假” 在C语言中0表示“假”,非0(无论是负数还是正数都是真,更多时候用1来代替)表示“真”。

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

{

说明部分 语句部分

}

2:函数名和形式参数都是用户命名的标识符。在同一个程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可,可以与其他函数中的变量同名。 3:C语言规定,不能在函数的内部定义函数。

4:若在函数的首部省略了函数返回值的类型名,则说明该函数的返回值是int类型

5:除了返回值类型为int类型的函数外,函数必须先定义后调用。 6:当没有函数返回值,则必须把函数定义成void类型。 例:编写求两个双精度数之和的函数。 double add(double a, double b )

{

double s; s=a+b; return s; }

7-2节、函数的返回值

函数的值通过return语句返回, return 表达式;

此表达式的值必须与函数首部所说明的类型一致,若类型不一致,则以函数值的类型为准。需要注意的是,无论函数体中有多少个return语句,只能执行一次。

函数体内可以没有return语句,这时也必须定义函数为 viod类型。

7-3节、函数的调用

7.3.1函数的两种调用方式 格式为:

函数名(实在参数表)

当实参的个数多于一个时,各实参用逗号隔开。实参的个数必须与调用函数中形参的个数相周,类型一一对应匹配。

如没有形参,则形式为 函数名() 注意后面的小括号不能丢。 如题:

#include

double add(double ,double); main() {

double m,n,z;

scanf(“%lf %lf”,m,n); z=add(m,n); printf(“%lf”,z);\\ }

double add(double a, double b )

{

double s; s=a+b;

return s; }

7.3.2 函数调用时的语法要求

1.调用函数时,函数名必须与所调用的函数名字完全一致。 2.实参的个数必须与形参的个数一致。 3.C语言中规定,函数必须先定义后使用。

4.C语言中,函数可以直接或间接的自己调用自己。称为递归调用 fac(n)=fac(n-1)*n

7-4节、函数的说明

在C语言中凡是未在调用前定义的函数,C编译程序都默认函数的返回值为int 型。对于返回值是其它类型的,若把函数的定义放在调用之后,应该在调用之前对函数进行说明。

说明的格式:

类型名 函数名(参数类型1,参数类型2.。。。。) 也可以用以下格式

类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,……) 函数说明的位置:

一般为了让程序早点识别出程序中的定义好了的函数,一般将其放在程序的开始部分

7-5节、调用函数和被调用函数之间的数据传递 一:三种格式进行传递

1.实在参数和形式参数之间进行数据传递 2.通过return语句把函数值返回调用函数

3.能过全局变量,但这不是一种好的方式,通常不提倡使用。 通过一个程序来看一下数据到底是怎样传递的。 #include viod try(int ,int ,int ); main() {

int x=2,y=3,z=0;

printf(“(1)x=%d y=%d z=%d\\n”,x,y,z); try(x,y,z);

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

void try(int x,int y,int z) {

printf(“(2) x=%d y=%d z=%d\\n”,x,y,z); z=x+y; x=x*x; y=y*y;

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

屏幕上的结果是:

(1) x=2 y=3 z=0 (2) x=2 y=3 z=0 (3) x=4 y=9 z=5 (4) x=2 y=3 z=0

再来一个程序 #include viod swap(int ,int); main() {

int x=10,y=20;

printf(“(1)x=%d y=%d\\n”,x,y); swap(x,y);

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

void swap (int a,int b ) { int t;

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

printf(“(3)a=%d b=%d\\n”,a,b); }

程序运行结果 (1) x=10 y=20 (2) a=10 b=20 (3) a=20 b=10 (4) x=10 y=20 7.6程序应用举例

编写一个函数isprime(int a),用来判断自变量a是否为素数。若是素数,函数返回整数1,否则返回0.

#include int isprime(int) main() { int x;

printf(“enter a integer number:”); scanf(“%d”,&x); if(isprime(x))

printf(“%dis prime \\n”,x); else

printf(“%dis not prime\\n”,x); }

int isprime(int a) { int i;

for(i=2;i<=a/2;i++) if(a%i==0) return 0; return 1;

}

编写函数myupper(ch),把ch中的小写字母转换成大写字母作为函数值返回,其他字符不变。主函数中不断输入字符,用字符@结束输入,同时不断输出结果。 #include #include char myupper(char ch) {

if(ch>=?a?&&ch<=?z?) ch=ch-32; return ch; }

main() {

char c;

while((c=getchar())!=?@?) {

c=myupper(c); putchar(c); } }

编写函数统计输入字符的个数,用@字符结束输入,在主函数中调用此函数,输出统计结果。

#include long countch(); main() {

long n;

n=countch();

printf(“n=%ld\\n”,n); }

long countch() {

long cn;

for(cn=0;getchar()!=?@?;cn++) ;

return cn; }

7-10----7-13节、课后习题

[7.1] 以下说法中正确的是 C

A)C语言程序总是从第一个定义的函数开始执行

B)在C语言程序中,要调用的函数必须在main函数中定义 C)C语言程序总是从main函数开始执行

D)C语言程序中的main函数必须放在程序的开始部分 [7.2] 以下函数的类型是C

A)与参数x的类型相同 B)void类型 C)int类型 D)无法确定 fff(float x)

{ printf(\

[7.3] 以下函数调用语句中,含有的实参个数是B A)1 B)2 C)4 D)5 func( (exp1,exp2),(exp3,exp4,exp5)); [7.4] 以下程序的输出结果是C

A)11 B)20 C)21 func(int a,int b) { int c c=a+b; return c; }

main()

{ int x=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--);

printf(\

}

[7.5] 以下程序的输出结果是A

A)-1 B)0 C)1

main()

{ int i=2,p;

p=f(i,i+1);

printf(\

}

int f(int a,int b)

{ int c;

c=a;

if(a>b)c=1;

D)31 D)2

本文来源:https://www.bwwdw.com/article/ny2d.html

Top