版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
COUMwMOUIniceoMnacArttmCMMWCUMMTVBpomANOntieoti
重庆市计算机二级等级考试
C语言程序设计
内
部
培
训
教
材
2010年10月
目录
第一部分考试大纲..............................................1
第二部分考纲精解...............................................1
一、C程序基础...............................................1
LC程序的基本结构........................................1
2.c语言的基本数据类型...................................2
3.C语言中的表达式运算...................................6
4.不同类型数据混合运算及数据转换........................9
5.C程序的输出----最基本的输出函数(printf,putchar)..10
6.C程序的输入--最基本的输出函数(scanf,getchar)....11
7.常用数学类标准库函数的简单应用.......................12
C程序基础练习题目.......................................12
二、C程序的基本控制结构....................................25
1.C程序控制结构中的条件表示方法.......................25
2.分支结构程序设计....................................26
3、循环结构程序设计.....................................29
4.c语言种的其他简单控制结构...........................32
5.c语言控制结构应用举例..............................32
C程序的基本控制结构练习题...............................33
12^、函数与程序结构.••*•••••«••••••••••••••••••••••••••••«45
1.函数的定义与调用...................................45
2.C程序结构与变量的作用域和生存期.....................48
3.编译预处理.........................................51
函数与程序结构练习题..................................52
四、指针与函数.............................................62
1.指针变量的定义和引用................................62
2.指针变量做函数的参数................................64
3.函数的指针..........................................64
指针和函数练习题........................................65
五、数组及简单应用..........................................78
1、一维数组.............................................78
2、二维数组和多维数组(以二维数组为主).................80
3.数组的简单应用........................................81
数组及简单应用练习题....................................83
六、字符数据、字符串(字符数组)数据及其简单应用............95
1.C语言字符串的表示方法.................................95
2、字符串的常用处理方法..................................96
3.常用字符和字符串处理标准库函数........................98
七、指针与数组.............................................99
1、多级指针的定义和使用方法.............................99
2、一维数组和指针的关系及简单应用.......................99
3、二维数组与指针的关系和简单应用.......................101
4、指针数组与命令行参数.................................102
字符数据、字符串及指针与数组练习题.....................104
八、结构体数据类型的应用...................................110
◎;*总有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC»*O(nUOnUCtM二级辅导
I.结构体数据类型的基本概念.............................110
2、结构体数组(只要求一维结构体数组)..................114
3、结构体数据类型的简单应用.............................116
九、联合体数据类型的应用...................................120
1.联合体数据类型的定义和变量的引用方法................120
结构体联合体(共用体)练习题............................121
十、位运算与枚举类型.......................................130
1、位运算..............................................130
2.枚举................................................131
位运算及枚举类型练习题.................................132
十一、文件概念及简单应用...................................134
1.C语言中文件处理的基本概念.........................134
2.文件处理...........................................136
3.文件的简单应用.....................................139
文件练习题.............................................140
第三部分C语言常用经典算法举例...............................146
2
第一部分考试大纲
一、C程序基础
1.C程序的基本结构
1)C源程序的组成部分(主函数的重要性);
2)C语言的基本结构(字符集、标识符、保留字等);
3)注释语句的作用和用法;
2.C语言的基本数据类型
1)基本数据类型(内置数据类型)常量的表示方法;
2)变量的定义和初始化;
3.C语言中的表达式运算
1)运算符优先级别和结合性规则;
2)算术运算符和算术表达式;
3)赋值运算符和赋值表达式;
4)自反运算符;
5)自增、自减运算符;
6)逗号运算符和逗号表达式;
7)Sizeof运算符;
4.不同类型数据混合运算及数据转换
1)不同数据类型隐式转换;
2)不同数据类型显式转换;
5.C程序的输出-最基本的输出函数(printf、putchar);
6.C程序的输入-最基本的输入函数(scanf、getchar)
7.常用数学类标准库函数的简单应用
包括:abs,fabs,fmod,sin,cos,tan,exp,pow,log,Igo10,sqrt;
二、c程序的基本控制结构
I.c程序控制结构中的条件表达式
1)关系运算符和关系表达式运算;
2)逻辑运算符和逻辑表达式运算;
2.分支结构程序设计
1)if语句与程序的单分支结构;
2)ifelse语句与程序的双分支结构;
3)条件运算符与条件表达式;
4)复合语句及其在程序中的使用;
5)if语句的嵌套与程序的多分支结构:
6)switch语句与程序的多分支结构;
3.循环结构程序设计
1)While型循环结构;
2)dowhile型循环结构;
3)for型循环结构;
4)空语句及其在程序中的使用;
5)循环的嵌套;
4.C语言中的其他简单控制结构
1)break语句的使用方法:
2)continue语句的使用方法;
OOSOKC<MlWCtOKCtUOtKICCMc语言二级辅导
5.C语言控制结构举例
1)累加、累乘、最大公约数、最小公倍数、阶乘、素数等简单问题求解方法;
2)穷举思想及程序实现;
3)迭代思想及程序实现(其中包括:一元高阶方程求根的二分迭代解法);
三、函数与程序结构
1.函数的定义与调用;
1)函数的定义、函数的声明、函数的调用和函数的返回值(包括基本类型、空类型);
2)函数调用时的值参数传递;
3)函数的嵌套调用;
4)函数的递归调用;
5)简单问题的递归函数设计(例如:阶乘、Fibonacci数列、整形数据的数字拆分处理等);
2.C程序结构与变量的作用域和生存期
1)C程序的一般结构;
2)变量的作用域(全局变量的定义和使用、局部变量的定义和使用);
3)变量的生存期(存储类别符extern和static对全局变量的作用;存储类别符auto和static对局
部变量的作用);
3.编译预处理
1)宏定义预处理语句的概念和简单应用(包括带参和不带参宏定义);
2)文件包含预处理语句的使用方法。;
四、指针和函数
1.指针变量的定义和引用
1)指针变量的定义、初始化和赋值;
2)指针变量的引用;
3)C语言中的地址运算;
2.执指针变量做函数的参数
1)函数调用时的地址值参数传递;
2)指针变量与被指针指向变量的区别;
3.函数的指针
1)指向函数指针变量的定义;
2)用指向函数的指针变量来调用函数;
3)指向函数的指针变量做函数参数;
4)返回指针值的函数;
五、数组及简单应用
1.一维数组
1)一维数组的定义方法;
2)•维数组的初始化方法;
3)一维数组元素的引用方法;
4)一维数组做函数的参数;
2.二维数组和多维数组(以二维数组为主)
1)二维数组、多维数组的定义方法;
2)二维数组、多维数组的初始化方法;
3)二维数组、多维数组元素的引用方法:
4)二维数组做函数的参数;
3.数组的简单应用
1)数组元素值的随机生成方法(标准库函数srand、rand和time的使用方法):
2
修身握自身鼠
COMMVHOMIHIKDMMK1IBMOCMOMB■»»•»»C*MCIUOIMKMfj*-jXA/-|[t|vT
2)常用排序方法(冒泡排序法和选择排序法);
3)常用查找方法(直接查找法和二分查找法);
六、字符数据、字符串(字符数组)数据及其简单应用
LC语言字符串的表示方法
1)字符串(字符数组)的定义和初始化方法;
2)字符串数据的输入方法(Scanf函数和gets函数的使用);
3)字符串数据的输出方法(Printf函数和Puts函数的使用);
2.字符串的常用处理方法
1)字符类别的判断方法和大小写字母的转换方法:
2)字符串中的有效字符的统计方法;
3)字符串的复制方法;
4)字符串的连接方法;
5)字符串中字符的查找、插入和删除方法;
6)字符串中子串的查找、插入和删除方法;
3.常用字符和字符串处理标准库函数
包括:isalpha,isdigit,isalnum,isspace,isupper,islower,toupper,tolower,strlen,strcpy,
strcat,strcmp,strchr,strstr,atoi,atol,atof;
七、指针与数组
1、多级指针的定义和使用方法
2、一维数组和指针的关系及简单应用
1)用指向一维数组的指针变量表示数组元素地址和数组元素值的方法;
2)一维数组简单应用的指针变量表示和处理方法(常用的排序和查找方法);
3、二维数组与指针的关系和简单应用
1)用指向二维数组的指针变量表示数组元素地址和数组元素值的方法;
2)指向若干元素构成数组的指针变量定义方法和简单使用;
4、指针数组与命令行参数
1)指针数组的定义、初始化和简单应用;
2)命令行参数的概念和简单应用;
八、结构体数据类型的应用
1.结构体数据类型的基本概念
1)结构体类型的定义方法;
2)关键字typedef的简单应用;
3)结构体变量的引用和输入输出方法;
4)结构体变量做函数参数的使用方法;
5)结构体作函数的返回值类型;
6)结构体类型变量与指针的关系和通过指针变量处理结构体类型数据的方法;
2、结构体数组(只要求一维结构体数组)
1)结构体数组的定义和数组元素引用;
2)结构体数组做函数的参数;
3)结构体类型数组与指针的关系和通过指针变量处理结构体类型数组的方法;
3、结构体数据类型的简单应用
1)用于存储分配的标准库函数(包括:malloc,realloc,free);
2)单链表的概念和创建;
3)单链表的遍历方法;
4)单链表中结点的插入方法;
3
I糠*家4培*身握自身鼠
COMMVHOMIHIKDMMK1IBMOCMOMBMMH«tC»M«nUOIMKMC1S"S-S
-5)单链表中结点的删除方法;
九、联合体数据类型的应用
1.联合体数据类型的定义和变量的引用方法
2.联合体类型与结构体类型的区别
十、位运算与枚举类型
1、位运算
1)位运算的概念和位运算符;
2)位运算应用;
3)位段的概念、定义方法和位段变量的引用方法;
2.枚举
1)枚举的概念、枚举变量的定义方法;
2)枚举数据的简单应用;
十一、文件概念及简单应用
1.C语言中文件处理的基本概念
1)文件的概念和文件类型指针;
2)文件的打开与关闭的概念和方法(fopen函数和fclose函数的使用方法);
2.文件处理
3)文件内部记录指针(读写指针)的概念和文件尾的判别方法(Eof和Feof函数的使用);
4)文件中单个字符的读写操作(fgetc函数和fputc函数的使用);
5)文件中字符串读写操作(fgets函数和fputs函数的使用);
6)文件中的格式化读写操作(fscanf函数和Fprintf函数的使用);
7)文件中的数据块读写操作(fread函数和fwrite函数的使用);
8)文件内部记录指针(读写指针)的移动和定位(fseek函数和ftell函数的使用);
3.文件的简单应用
9)文件的随机读写;
10)文件内容按指定要求进行合并的方法;
11)文件内容拷贝的处理方法;
12)文件内容比较的处理方法;
4
第二部分考纲精解
一、C程序基础
1.C程序的基本结构
1)C源程序的组成成分
我们首先看一个例子:
/*example1.1calculatethesumofaandb*/
#include<stdio.h>/*Thisisthemainprogram*/
main()
{inta,b,sum;
a=10;
b=24;
sum=add(a,b);
printf("sum=%d\nn,sum);
)
/*Thisfunctioncalculatesthesumofxandy*/
intadd(intx,inty)
{intz;
z=x+y;retum(z);
)
不难看出,这个程序的功能主要完成两个整数的累加。从这个例子中我们要总结的是:★程序由
•个或多个函数组成,至少包含main函数,当然主函数可以是什么都不做的空函数。
★必须有且只能有一个主函数main(),这里需要注意的是,无论这个C工程有多少个C源文件
组成,在所有的源文件中,有且仅有一个main函数。
★程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。无论main函数的初
始位置在哪里。
★include称为文件包含命令,.源程序中可以有预处理命令(include命令仅为其中的一种),预处
理命令通常应放在源文件或源程序的最前面。
★扩展名为.h的文件称为头文件
★每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加
分号。
★c程序书写格式自由,一行内可以写几个语句,一个语句可以写在多行上。注意c语言没有续行
符。
书写应遵循的规则
从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则:
★•个说明或一个语句占一行。
★用{}括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,
并单独占一行。
★低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增
I蹴彳露布今之身“上身鼠
caiKtvMOMUmim-itirrmOCMCOM«Ma«ve»ra(niM>nucoaC语言二级辅导
加程序的可读性。
在编程时应力求遵循这些规则,以养成良好的编程风格。
2)c语言的基本元素
1.标识符
在程序中使用的变量名、符号常量名、文件名、函数名、数组名、类型名等统称为标识符。除库函
数的函数名由系统定义外,其余都由用户自定义。C规定,标识符只能是字母(A〜Z,a〜z)、数字(。〜
9)、下划线组成的字符串,并且其第一个字符必须是字母或下划线。
以下标识符是合法的:
a,x,x3,BOOK_1,sum5
以下标识符是非法的:
3s以数字开头
s*T出现非法字符*
-3x以减号开头
bowy-1出现非法字符-(减号)
在使用标识符时还必须注意以下儿点:
(1)标准C不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的
限制。例如在某版本C中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标
识符。
(2)在标识符中,大小写是有区别的。例如BOOK和book是两个不同的标识符。
(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应
的意义,以便于阅读理解,作到“顾名思义”。
2.关键字
32个关键字:(由系统定义,不能重作其它定义)
autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloat
forgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedef
unsignedunionvoidvolatilewhile
在命名标识符的时候不要跟关键字重名,也不要跟常用的库函数重名,例如:printf,scanf等
3.注释语句的作用和用法
行注释:〃注释内容为从//开始到本行语句结束
块注释:/*...........*/可以注释多行语句
注释例:/*Thisisthemain/*ofexample1.1*/*/本行有错
/**/为注释,不能嵌套
注释不产生编译代码
2.c语言的基本数据类型
1)基本数据类型、常量的表示方法
C语言中的数据类型如下图所示:
2
fe/总有培/身握为身跣
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC»*O(nUOnUCtMC语言二级辅导
整形
字符型
<r单精度型
基本数据类型实型1
、[双精度型
枚举类型
r数组类型
数据类型X构造数据类型J结构体类型
共用体类型
指针类型
I空类型
基本数据类型包括:
类型说明符字节数值范围
字符型char1c字符集
基本整型int2-32768〜32767
短整型shortint2■32768〜32767
长整型longint4
无符号型unsigned20-65535
无符号长整型unsignedlong4
单精度实型float4
双精度实型double8
要求常用的基本数据类型符、字节数、数值范围一定要牢记!
常量的定义:
程序运行时其值不能改变的量称为常量,常量包括:符号常量和直接常量,符号常量一般通过预
定义来表示的常量,其一般形式为:#define标识符常量。直接常量又包括如下四种类型的常量:
整型常量
十进制常量:数字的有效范围0-9;
八进制常量:数字的有效范围:0-7«数字必须以。开头如:012,067等。
十六进制常量:数字的有效范围:0-f,必须以Ox开头,如:0x123,0x456等。
二进制与八进制与十六进制之间的高效转换。
实型常量
十进制数形式:由数码0~9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,
-267.8230等均为合法的实数。
指数形式:
由十进制数,加阶码标志“e”或"E”以及阶码(只能为整数,可以带符号)
组成。其一般形式为aEn(a为十进制数,n为十进制整数)。
以下不是合法的实数345(无小数点)E7(阶码标志E之前无数字)
-5(无阶码标志)53.-E3(负号位置不对)2.7E(无阶码)
字符常量
3
ocatoM»ramut>c语言二级辅导
字符常量有以下特点:
字符常量只能用单引号括起来,不能用双引号或其它括号。
字符常量只能是单个字符,不能是字符串。
字符串常量
字符常量由单引号括起来,字符串常量由双引号括起来。
字符常量只能是单个字符,字符串常量则可以含一个或多个字符。
可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符
变量。在c语言中没有相应的字符串变量。这是与BASIC语言不同的。但
是可以用一个字符数组来存放一个字符串常量.在数组一章内予以介绍。
字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节
数加1»增加的一个字节中存放字符"\0"(ASCII码为0)。这是字符串结束的
方]:志a
2)变量的定义和初始化
概念:其值可以改变的量。变量名实际上是一个物理地址的名称,而变量值是该地址的存储
值。
变量定义的一般格式:
数据类型变量H,变量2,…,变量n];
变量初始化:定义时赋初值
变量的使用:先定义,后使用
变量定义位置:一般放在函数开头〃函数局部变量,涉及知识点变量的作用范围
变量的分类包括:
整形变量:
分类:
类型说明符数的范围字节数
int■32768〜32767即-26~(2,5-1)2
unsignedint0〜65535即0~(216-1)2
shortint-32768-32767即-2”~(2|5-1)2
unsignedshortint0〜65535即0~(216-1)2
longint-2147483648〜2147483647即一2^:(231-1)4
unsignedlong0〜4294967295即0~(232-1)4
变量占字节数随机器不同而不同,一般占一个机器字,•般shortWintWlong,变量的存储范围,随
其占用的字节数变大而增大。可用sizeof(类型标识符)测量在某种c环境下该类型变量所占用的字节数。
例:
unsignb=32768;
inta=b;
printf("%d",a);
实型变量
float:占4字节,提供7位有效数字
double:占8字节,提供15~16位有效数字
longdouble:占16个字节。
例1:
inta=2;floatb=2.0;
printf("%f%f\a,b);输出a,b的结果。
例2:
4
修身切^融
COMMc*attoimicn-wKirrmOCMOMMMWtc»M«nuoIUKMfjj刃攵4’由一后
main()
(
floata;
doubleb;
a=33333.33333;
b=33333.33333333333333;
printf("%An%f\n",a,b);
)
解析:
•从本例可以看出,由于a是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二
位后之后均为无效数字。
・b是双精度型,有效位为十六位。但TurboC规定小数后最多保留六位,其余部分四舍五入。
字符型变量
字符变量存放字符ASCH码,占一个字节,只能存放0-255范围内的整数。
char与int数据间可进行算术运算
例:
chara='65';
a+=l:
printfa);
程序的输出结果为B;
注意:没有字符串变量,字符串用字符数组存放,字符串常量是用“”括起的字符序列,字符串
长度表示字符串中所包含的字符的个数,字符串所占内存长度,是指字符串在内存中所占字节数
的长度,它等于字符串长度+1。
字符串的初始化一般为chara[]="adfasb”;
例:
chara[5]="adsdd”;
printf("%s”,a);此时的输出结果为?
转义字符:
常用的转义字符及其含义
转义字符转义字符的意义ASCII代码
\n回车换行10
\t横向跳到下一制表位置9
\b退格8
\r回车13原行回车
\f走纸换页12
\\反斜线符92
V单引号符39
双引号符34
\a鸣铃7
\ddd1〜3位八进制数所代表的字符
\xhh1〜2位十六进制数所代表的字符
例:
#include<stdio.h>
voidmain()
inta,b,c;
a=5;b=6;c=7;
printf("abc\tde\rf\n^^);
printf("hijk\tL\bM\n");
5
◎;*总有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC»*O(nUOnUCtMC语言二级辅导
3.C语言中的表达式运算
1)运算符优先级别和结合性规则
优先级运算符结合规则
1[]()->.从左至右
2!〜++・・・*&sizeof从右至左
3*/%从左至右
4+-从左至右
5«»从左至右
6<<=>>=从左至右
7—.一从左至右
8&从左至右
9A从左至右
101从左至右
11&&从左至右
12II从左至右
139.从右至左
14=+=-=*=/=%=&=从右至左
A=1=»=«=
15从左至右
2)算术运算符和算术表达式
算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(-)共七
种。
注意除(/)运算符。除运算符包含了整除与浮点除,具体采用哪种除法,与除数和被除数的以及用于保存
结果的变量的类型有关。如果为浮点除,则结果为双精度型。
例:
#include<stdio.h>
voidmain(){
printf(H\n\n%d,%d\nn,20/7,-20/7);
printf(H%f,%f\nH,20.0/7,-20.0/7);
}
双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是
实型,则结果为双精度实型。printf("\n\n%d,%d\n",20/7,-20/7);
printf("%f,%f\n",20.0/7,-20.0/7);
本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此
结果也为实型。
6
◎;*总有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC»*O(nUOnUCtMc语言二级辅导
算术表达式是由算术运算符和括号连接起来的式子
34种运算符
关系运算符:<<==-->>=!=
逻辑运算符:!&&II
位运算符:<<>>~I八&
赋值运算符:=及其扩展
条件运算符:?:
逗号运算符:,
指针运算符:*&
求字节数:sizeof
强制类型转换:(类型)
分量运算符:.->
下标运算符:U
其它:()-
3)赋值运算符和赋值表达式
简单赋值运算符
符号:=
格式:变量标识符=表达式
作用:将一个数据(常量或表达式)赋给一个变量
复合赋值运算符
种类:+=-=*=/=%=《=》=&=A=1=
含义:explop=exp2相当于expl=explopexp2
说明I:
结合方向:自右向左
优先级:14
左侧必须是变量,不能是常量或表达式
赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型
a=b=c=5〃表达式值为5,a,b,c值为5
a=(b=5)//b=5;a=5
a=5+(c=6)〃表达式值11,c=6,a=l1
a=(b=4)+(c=6)〃表达式值10,a=10,b=4,c=6
a=(b=10)/(c=2)//表达式值5>a=5,b=10,c=2
说明2:
结合方向:自右向左
优先级:12
左侧必须是变量,不能是常量或表达式
赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,赋值表达式的值与变量值相
等,且可嵌套
例
a=12;
a+=a-=a*a//a=-264等价于a=a+(a=a-(a*a))
赋值类型不同转换规则
如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边
的类型。具体规定如下:
7
聂布培/身握4身稔
auKtoWMiiiiicoMMK«>KMO<aa>MMMa«vc»ranuonuaaiC语言二级辅导
1.实型赋予整型,舍去小数部分。
2.整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。
3.字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量
的低八位中,高八位为0。
4.整型赋予字符型,只把低八位赋予字符量。
4)自反运算符
为单目运算符时,右结合性
5)自增、自减运算符
作用:使变量值加1或减1
种类:
前置++i,-i(先执行i+1或i-1,再使用i值)
后置i++,i-(先使用i值,再执行i+1或i-1)
例j=3;k=++j;//k=4,j=4
j=3;k=j++;//k=3,j=4
j=3;printf("%d”,++j);//4
j=3;printf("%d”,j++);//3
a=3;b=5;c=(++a)*b;//c=20,a=4
a=3;b=5;c=(a++)*b;//c=15,a=4
说明:
++—不能用于常量和表达式,如5++,(a+b)++
++・•结合方向:自右向左
优先级:・++.....>*/%・・・・・>+・
(2)(3)(4)
例:
#include<stdio.h>
voidmain{
inti=8;
printf("%d\n",++i);
printf("%d\nM,-i);
printf(M%d\nn,i++);
printf(n%d\nM,i-);
printf(',%d\n',,-i++);
printf(M%d\nn,-i-);
J
讲解:i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再
加1(为9);第5行输出i为9之后再减1(为8);第6行输出-8之后再加1(为9),第7行输出.9之后
再减1(为8)o
例:
#include<stdio.h>
voidmain()
inti=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
8
修身切^融
COMMc*attoimicn-wKirrmOCMOMMMWtc»M«nuoIUKMfjj刃攵4’由一后
printf("%d,%d,%d,%d",p,q,ij);
)
讲解:
这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于
加3故i的最后值为8。而对于q的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,
由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。
6)逗号运算符和表达式
形式:表达式1,表达式2,......表达式n
结合性:从左向右
优先级:15
逗号表达式的值:等于表达式n的值
用途:常用于循环for语句中
例:
#include<stdio.h>
voidmain()
{intx,y=7;
floatz=4;
x=(y=y+6,y/z);
printf("x=%d\n",x);
)
运行结果:x=3
7)sizeof运算符
求取变量类型所占用的字节数,多用于数组做参数的函数传递中
4.不同类型数据混合运算及数据转换
1)不同数据类型隐式转换
隐式转换
什么情况下发生?
运算转换---不同类型数据混合运算时
赋值转换---把一个值赋给与其类型不同的变量时
输出转换---输出时转换成指定的输出格式
函数调用转换…一实参与形参类型不一致时转换
运算转换规则:不同类型数据运算时先自动转换成同一类型
charshort->int->unsigned->long->double由低字节向高字节转换。
2)不同数据类型显示转换
一般形式:(类型名)(表达式)
例:(int)(x+y)
9
聂布培/身握a身稔
auKtoWMiiiiicoMMK«>KMO<aa>MMMa«vc»ranuonuaaiC语言二级辅导
(int)x+y
(double)(3/2)
(int)3.6
说明:强制转换得到所需类型的中间变量,原变量类型值保持不变
5.C程序的输出----最基本的输出函数(printf,putchar)
格式putchar(c)
参数C为字符常量、变量或表达式
功能把字符C输出到显示器上
返值正常,为显示的代码值;出错,为EOF(-l)
C可以为
整型变量
字符型变量
整型常量
字符型常量
例:
#include<stdio.h>
voidmain()
{charc;intd;
c=B';d=67;
putchar(d);
putchar(c);
putchar(\n');
putchar(67);
putchar(,B,);
}
格式输出函数printf函数
printf函数调用的一般形式为:
printf。'格式控制字符串”,输出表列)
功能:按指定格式向显示器输出数据
返值:正常,返回输出字节数;出错,返回EOF(-l)
输出表:要输出的数据(可以没有,多个时以分隔)
格式控制串:包含两种信息
格式说明:%[修饰符]格式字符,用于指定输出格式
普通字符或转义序列:原样输出
格式字符
10
◎;*总有培/身握a/稔
COMMVMCMIHHCOMMKOKMCM3K0MMMtMVC»*O(nUOnUCtM
字符涵义示例结果
<1,1上进制整数inta=567;printf(,,%d*\a);567
x,X1六进制无符号整数inta=255;printf(M%X'\a);(%x)FF(H)
O八进制无符号整数inta=65:printf(,,%o,\a):101
U不带符号上进制整数int<i=567;print567
C单一字符,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度技术研发合作合同标的与研发内容3篇
- 爱国卫生月班会活动
- 2024二手物流设备买卖及仓储服务合同3篇
- 如何调节血脂水平
- 《奎屯天合精细化工》课件
- 社区护理外出培训
- 人教版道德与法治三年级下册《第二单元 我在这里长大》大单元 (5 我的家在这里)(计划二课时)(第一课时)(热爱这里的一草一木)教学设计2022课标
- 全程房地产项目2024年度管理顾问咨询合同
- 2024年度卫星通信技术与应用开发合同2篇
- 酒店厨房承包协议书范本
- 2023年国家外汇管理局中央外汇业务中心招聘考试真题
- 第5章 对函数的再探索 综合检测
- 专题05-因式分解(历年真题)-2019-2020学年上海七年级数学上册期末专题复习(学生版)
- 安全生产管理制度-普货运输
- 2024年ESD防护技术全球市场报告:机遇与挑战
- 广西壮族自治区房屋建筑和市政工程监理招标文件范本(2020年版)
- 河北省石家庄市第四十中学2024-2025学年七年级上学期期中语文试题
- 2024-2030年中国地热能市场经济效益及发展前景展望研究报告
- 中学三年发展规划(2024年1月-2026年12月)
- 公务用车车辆安全培训课件
- 人工智能导论-2022年学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论