C语言程序设计技术(下)课件_第1页
C语言程序设计技术(下)课件_第2页
C语言程序设计技术(下)课件_第3页
C语言程序设计技术(下)课件_第4页
C语言程序设计技术(下)课件_第5页
已阅读5页,还剩202页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、The C Programming LanguageC语言程序设计技术(下)The C Programming LanguageC语言程The C Programming Language第11讲 函数(1) The C Programming Language第11讲一. 函数的定义与调用1. 函数的定义 () 函数体 一. 函数的定义与调用2. 函数值 非void型函数的函数值必须用return语句返回。2. 函数值3. 函数调用 ();例如: c=2*max(13, 25) m=max(a, max(b,c)3. 函数调用说明:(1) 调用函数前,应对函数原型进行声明(2) 实参的个数必

2、须与虚参个数相同,类型必须匹配(3) 实参可以是一个表达式,虚参只能是变量(4) 当虚参是一个指针或数组时,实参与虚参的值双向传递说明:(5) 函数不能嵌套定义,但可嵌套调用(6) 函数的实参类型与虚参类型不相同时将实参转换为虚参的类型(7) 函数的返回值与函数类型不相同时将返回值转换为函数值的类型。(5) 函数不能嵌套定义,但可嵌套调用例1(P106例4-2). 已知a=2,b=3,求ab的值。 例1(P106例4-2). 已知a=2,b=3,求ab的值#include#includevoid main(void) int add(int x,int y); int a=2,b=3,c; c

3、lrscr( ); c=add(a,b); printf(%d+%d=%dn, a,b,c); getch( ); #include /* 求和 */int add(int x,int y) int t; printf(x和y的值分别是:%d,%d n, x,y); t=x+y; x=2*x; y=2*y; printf(改变后的x和y的值分别是:%d,%d n, x,y); return t; /* 求和 */ 二. 函数嵌套调用 在一个子函数中调用另一个函数称为函数嵌套调用 二. 函数嵌套调用例2(P125例4-14).从键盘输入一正整数limit(limit=6),验证从6到n之间的所有

4、偶数都可以分解为两个奇素数之和。 例如 98=19+79例2(P125例4-14).从键盘输入一正整数limit(l#include#include#includevoid main(void) int prime(int m); int n,a,b,limit;#include clrscr( ); while(1) printf(nInput 1 number(=6):n); scanf(%d,&limit); if (limit=6) break; clrscr( ); for(n=6;n=limit;n+=2) for(a=3;a=n/2;a+=2) if (prime(a) b=n-

5、a; if (prime(b) printf(%d=%d+%dn,n,a,b); break; getch( ); for(n=6;n=limit;n+=2) /* 判断一个数是否为素数 */int prime(int m) int i,k; k=sqrt(m)+1; for(i=2;ik;i+) if (m%i=0) return 0; return 1; /* 判断一个数是否为素数 */C语言程序设计技术(下)课件The C Programming Language第12讲 函数(2) The C Programming Language第12讲一. 函数递归调用 在一个函数中,如果直接或

6、间接调用自己,则称为递归调用。如:int f(int n) if (n1) return 0; return f(n-1)+n; 一. 函数递归调用例1. 逆序输出一个整数的各位数字。 例1. 逆序输出一个整数的各位数字。 #includevoid main(void) void printd(long n); long n; scanf(%ld,&n); printd(n); #includevoid printd(long n) if (n0) putchar(-); n=-n; putchar(n%10+0); if (n/10) printd(n/10); void printd(lo

7、ng n)二. 局部变量和全局变量1. 在函数内部定义的变量称为局部变量。2. 在函数外部定义的变量称为全局变量。二. 局部变量和全局变量说明: (1) 局部变量只在函数内部起作用,函数结束时,所占内存空间被释放(2) 全局变量在定义它的后面任一个函数中都起作用说明: (3) 全局变量与局部变量同名时,使用局部变量。(4) 函数的虚参视同局部变量(3) 全局变量与局部变量同名时,使用局部变量。例2(P113例4-7). 分析程序运行结果。例2(P113例4-7). 分析程序运行结果。#includeint y,z;void main(void) void abc(int x); int x;

8、x=10; y=20; z=30; printf(ok1: x=%d y=%d z=%d n,x,y,z); abc(x); printf(ok2: x=%d y=%d z=%d n,x,y,z); #includevoid abc(int x) int y; printf(ok3: x=%d y=%d z=%d n,x,y,z); x=100; y=200; z=300; printf(ok4: x=%d y=%d z=%d n,x,y,z); void abc(int x)例3(P126例4-15). 输入100个整型数,寻找其最大值和最小值。例3(P126例4-15). 输入100个整型

9、数,寻找其最大#include#includeint Max,Min;void main(void) void find(int a,int n); int data100,i;#include clrscr( ); for(i=0;i100;i+) scanf(%d,&datai); find(data,100); printf(Max=%d,Min=%d,Max,Min); getch( ); clrscr( ); /* 查找数组中的最大值和最小值 */void find(int a,int n) int i; Max=Min=a0; for(i=1;iMax) Max=ai; if (a

10、iMin) Min=ai; /* 查找数组中的最大值和最小值 */C语言程序设计技术(下)课件The C Programming Language第13讲 指针(1) The C Programming Language第13讲一. 指针变量1. 指针概念与定义 表示某个变量所在内存地址的变量称为指针变量,简称为指针。指针变量的说明方法: *;一. 指针变量例: int a,*p,*p1=&a,*p2=p1; p,p1,p2都是指向整型数据变量的指针变量,其中p1,p2已指向变量a。例: char *s; s 是指向字符型数据变量的指针。 例:2. 指针运算符(1) & 取变量的地址 例 p=

11、&a2. 指针运算符(2) * 取出或改变指针所指向的变量之值。例 int *p,a; a=10; p=&a; *p=*p+2; printf(%d,a);(2) *(3) + 指针可以加上一个整型量,以便指向另一个变量。 例: int d11,*p=&d4,*q; p+=3,q=p-2;(3) +(4) - 两个同类型的指针可以进行减法运算。 例:int d100,*p1,*p2,m; p1=d; p2=&d8; m=p2-p1; m的值等于p1与p2相距的整型变量的个数,即m=8。(4) -3. 说明(1) 指针的类型与其代表的变量的类型必须相同。例:int *p,i; float *pf

12、,f; p=&i是合法的 而p=&f是非法的3. 说明(2) 指针必须先赋值后使用。例如:int *p;*p=*p+2;是非法的。(2) 指针必须先赋值后使用。(3) 数组名及函数名可代表其所在内存的开始地址。(4) 函数调用中的虚参使用指针时,将双向传递变量的值。(3) 数组名及函数名可代表其所在内存的开始地址。例1(P146例5-11). 交换两个变量的值。例1(P146例5-11). 交换两个变量的值。#includevoid main(void) void swap(int *x, int *y); int i,j; printf(输入两个整数:); scanf(%d %d,&i,&j

13、); swap(&i,&j); printf(i=%d j=%d,i,j); #includevoid swap(int *x, int*y) int p; p=*x; *x=*y; *y=p; void swap(int *x, int*y)例2. 将三个数排序。例2. 将三个数排序。#includevoid main(void) void sort(int *q1,int *q2,int *q3); int a,b,c; printf(输入三个整数:); scanf(%d %d %d,&a,&b,&c); sort(&a,&b,&c); printf(%d,%d,%d,a,b,c); #i

14、ncludevoid sort(int *q1,int *q2,int *q3) void swap(int *x,int *y); if (*q1*q2) swap(q1,q2); if (*q1*q3) swap(q1,q3); if (*q2*q3) swap(q2,q3); void sort(int *q1,int *q2,int void swap(int *x, int *y) int p; p=*x; *x=*y; *y=p; void swap(int *x, int *y)C语言程序设计技术(下)课件The C Programming Language第14讲 指针(2)

15、The C Programming Language第14讲一. 指针与一维数组设有定义:int a100, *p指针赋值方法:p=&a0 或p=a元素ai引用方法:*(p+i) 或 pi 一. 指针与一维数组例1(P139例5-5). 用四种方法打印数组中的元素。 例1(P139例5-5). 用四种方法打印数组中的元素。 #include#includevoid main(void) int i, c =10,20,30,40; int *cp=c; clrscr( );#include for(i=0;i=3;i+) printf(“%d ”ci); printf(“n”); for(i=

16、0;i=3;i+) printf(“%d ”,*(c+i); printf(“n”); for(i=0;i=3;i+) for(i=0;i=3;i+) printf(“%d ”,cpi); printf(“n”); for(i=0;i=3;i+) printf(“%d ”,i,*(cp+i); printf(“n”); getch( ); for(i=0;i=3;i+)二. 指针与二维数组 设二维数组为int amn,指针变量为p1. 指针变量指向二维数组首地址指针说明方法:int *p;指针赋值方法:p=&a00;元素aij引用方法:*(p+n*i+j)二. 指针与二维数组 设二维数组为in

17、t amn,例2例2#includevoid main( void) int a23,*p; int i,j; p=&a00; for(i=0;i2;i+) for(j=0;j3;j+) scanf(“%d”,p+3*i+j);#include for(i=0;i2;i+) for(j=0;j3;j+) printf(“%4d”,*(p+3*i+j); printf(“n”); for(i=0;i2;i+)2. 指向数组的行指针变量(1)指针说明方法 int (*p)n;(2)指针赋值方法 p=a; 2. 指向数组的行指针变量(3)第i行元素的首地址(即 ai0的地址) *(p+i) 或 pi

18、(4)元素aij引用方法 *(*(p+i)+j) 或 *(pi+j) 或 pij 或 (*(p+i)j (3)第i行元素的首地址(即 ai0的地址)例3(P141例5-7). 用二维数组指针变量输出二维数组中的每个元素。 例3(P141例5-7). 用二维数组指针变量输出二维数组中#include#includevoid main(void) int a34=1,2,3,4,5,6,7,8,9,10,11,12; int (*p)4; int i,j; clrscr( ); p=a;#include for(i=0;i3;i+) for(j=0;j4;j+) printf(%2d ,*(*(p

19、+i)+j); printf(n); getch( ); for(i=0;i3;i+)三. 指针数组相同类型指针的集合称为指针数组。三. 指针数组相同类型指针的集合称为指针数组。例4(P144例5-10). 输出数组的值。 例4(P144例5-10). 输出数组的值。 #includevoid main(void) int a23=1,2,3,4,5,6,*p2; int i,j; p0=a0; p1=a1; for(i=0;i2;i+) for(j=0;j3;j+) printf(“%4d”,pij); printf(“n”); #include元素aij引用方法:*(*(p+i)+j) 或

20、 *(pi+j) 或 pij 或 (*(p+i)j 元素aij引用方法:C语言程序设计技术(下)课件The C Programming Language第15讲 指针(3) The C Programming Language第15讲一. 指针与字符数组一. 指针与字符数组例1(P143例5-9). 不断输入字符串a,直到它与已知字符串p相等为止。若不相等,则提示是比p大还是小。 例1(P143例5-9). 不断输入字符串a,直到它与已知字#include#includevoid main(void) char *p=12345678,a10,*pa,*pp,flag; clrscr( );#

21、include while(1) gets(a); pp=p; pa=a; flag=m; while(*pp!=0) if (*pa*pp) flag=g;break; if (*papn); else printf(apn); printf(%s=%sn,p,a); getch( ); if (flag=m & *p二. 函数与指针一个函数可以返回一个指针值。二. 函数与指针例2(P147例5-12). 求字符串的左子串。例2(P147例5-12). 求字符串的左子串。#include#include#include#includevoid main(void) char *left(ch

22、ar*s,int n); char *p,s100,s110; int n; strcpy(s,1234567890); gets(s1); n=atoi(s1);#include p=left(s,n); gotoxy(1,1); printf(%sn%s,s,p); free(p); p=left(s,n);char *left(char *s, int n) char *t; int l; l=strlen(s)+1; t=malloc(l); strcpy(t,s); if (nl) tn=0; return t; char *left(char *s, int n)例3 将字符串中的

23、每一个字符循环向右移动若干位。 例3 将字符串中的每一个字符循环向右移动若干位。 #include#include# includevoid main(void) void MoveStr(char *s,int n); char s101; int n;#include printf(source: ); gets(s); printf(How many column you want to move? ); scanf(%d,&n); MoveStr(s,n); printf(result: %s,s); printf(source: );void MoveStr(char *s, int

24、 n) char d,*p; int Lenth; Lenth=strlen(s); p=s+Lenth-1; d=*p; for(;ps;p-) *p=*(p-1); *p=d; n-; if (n) MoveStr(s,n); void MoveStr(char *s, int n)C语言程序设计技术(下)课件The C Programming Language第16讲 结构与联合 The C Programming Language第16讲一. 结构1. 结构体定义struct = ;一. 结构例: struct date int year,month,day; ;例:例: struct

25、 student char name9,sex3; int age; struct date birthday; ;例:2. 结构体变量说明(1) struct date int year,moth,day; ; struct date d1,d2;2. 结构体变量说明(2) struct date int year,moth,day; d1,d2;(2) (3) struct int year,month,day; d1,d2;(3)3. 结构体成员访问 . 3. 结构体成员访问例1(P159例6-1). 结构体在程序中的使用。 例1(P159例6-1). 结构体在程序中的使用。 #incl

26、ude#include#includestruct student long num; char name20; char sex; float score; ;#includevoid main(void) struct student stu1; clrscr( ); stu1.num=200402L; strcpy(, “ZhangHong”); stu1.sex=f; void main(void) stu1.score=92.5f; printf(“num=%ld name=%sn”,stu1.num, ); printf(“sex=%c scor

27、e=%5.2f ”,stu1.sex, stu1.score); getch( ); stu1.score=92.5f;二. 结构体与指针1. 结构型指针变量说明 struct *如:struct student *p;二. 结构体与指针2. 成员引用 (*指针变量) . 成员名或 指针变量 - 成员名2. 成员引用例2(P167例6-7).计算一组学生的平均成绩和不及格人数。 例2(P167例6-7).计算一组学生的平均成绩和不及格人数#include#includestruct student long num; char *name; char sex; float score; ;#i

28、ncludestruct student stu5= 200401L,Zhou ping,M,65.4, 200402L,Zhang ping,M,72.5, 200403L,Liu fang,F,95.5, 200404L,Cheng ling,F,87, 200405L,Wang ming,M,58.2, ;struct student stu5=void main(void) struct student *ps; void ave(struct student *ps); clrscr( ); ps=stu; ave(ps); getch( ); void main(void)void

29、 ave(struct student *ps) int count=0,i; float ave,sum=0; for(i=0; iscore; if (ps-score60) count+=1; void ave(struct student *ps) printf(s=%fn,sum); ave=sum/5; printf(ave=%fncount=%dn,ave,count); printf(s=%fn,sum);三. 联 合 定义方法: union = ;三. 联 合 如: union abc int i; char a,b; ;如:例3(P172例6-9). 分析程序运行结果。 例

30、3(P172例6-9). 分析程序运行结果。#includevoid main(void) union long i; int k; char c,s10; x;#include x.i=0 x12345678L ; printf(k=%xn,x.k); printf(c=%cn,x.c); printf(s=%xt%xt,x.s0,x.s1); printf(%xt%xn,x.s2,x.s3); x.i=0 x12345678L ;C语言程序设计技术(下)课件The C Programming Language第17讲 顺序文件 The C Programming Language第17讲一

31、. 文件分类1. 按存取方式分类(1)顺序文件 只能按顺序读取、改写文件中的数据。若按读方式打开文件,则只能读取数据,而不能修改数据。反之,若按写方式打开文件,则只能写数据,而不能读数据。 一. 文件分类(2)随机文件 无论按何种方式打开文件,既能读取数据,也能修改数据。(2)随机文件2. 按存储格式分类(1)文本文件 这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASCII码:00110101 00110110 00110111 00111000 十进制码: 5 6 7 82. 按存储格式分类(2)二进制文件 二进制的编码方式来存放数据

32、。例如,数5678的存储形式为:00010110 00101110只占二个字节。 (2)二进制文件二. 顺序文件存取方法1. 定义文件指针变量 FILE *fp fp为文件型指针。二. 顺序文件存取方法2. 打开文件 FILE *fopen (char *fname, char *mode) mode常用值: w: 写文本文件 r: 读文本文件 wb 写二进制文件 rb 读二进制文件 wb+ 随机读、写二进制文件 rb+ 随机读、写二进制文件2. 打开文件3. 关闭文件 fclose(fp);3. 关闭文件4. 输出字符串 fputs(char *s, FILE *fp) 将串s输出到文件fp

33、中4. 输出字符串5. 读取字符串 fgets(char *s, int n, FILE *fp) 从文件fp中读取n-1个字符送到s中。读到换行符(ASC码为10)时,将自动结束读取。5. 读取字符串6. 格式化输入与输出(1)fscanf (fp,格式串,数据)(2)fprintf (fp,格式串,数据)6. 格式化输入与输出7. 检测文件是否结束int feof(FILE *fp)文件结束时返回1,否则返回0。7. 检测文件是否结束例1. 生成若干随机数并存储到磁盘中。例1. 生成若干随机数并存储到磁盘中。#include#include#includeint GetData(int d

34、);void DisplayData(int d,int n);void SaveData(int d,int n,char *fname);int LoadData(int *p,char *fname);#includevoid main(void) int n,d101; char s41; n=GetData(d); DisplayData(d,n); gets(s); SaveData(d,n,s); n=LoadData(d,s); if (n) DisplayData(d,n); void main(void)int GetData(int d ) int n,i; do pri

35、ntf(Input number of data: ); scanf(%d,&n); while(n1); for(i=1;in+1;i+) di=random(1000); return n; int GetData(int d )void SaveData(int d ,int n,char *fname) FILE *fp; int i; fp=fopen(fname,w); if (!fp) printf(save fail); return; void SaveData(int d ,int n,c for(i=1;in+1;i+) fprintf(fp,%d ,di); fclos

36、e(fp); for(i=1;in+1;i+)int LoadData(int *p,char *fname) FILE *fp; int n; fp=fopen(fname,r); if (!fp) printf(read fail); return 0; int LoadData(int *p,char *fnam n=0; while(!feof(fp) fscanf(fp,%d ,+p); n+; fclose(fp); return n; n=0;void DisplayData(int d ,int n) int i; for(i=1;in+1;i+) printf(%-6d,di

37、); if (i%10=0) printf(n); puts(n); void DisplayData(int d ,int C语言程序设计技术(下)课件The C Programming Language第18讲 随机文件 The C Programming Language第18讲一. 二进制文件存取函数 1. 读取数据原型:long fread(void *p, long size, long n, FILE *fp) 功能:按照二进制数据格式读取n项数据(每项数据占size个字节),存储到由指针p指向的存储区中。函数返回实际读取的数据项数。一. 二进制文件存取函数 1. 读取数据 2.

38、 存储数据 原型: long fread(void *p, long size, long n, FILE *fp) 功能:按照二进制数据格式将指针p指向的存储区中n的n项数据存储到文件中。函数返回实际存储的数据项数。 2. 存储数据例1. 生成一个二进制文件,然后修改其中的某一项。例1. 生成一个二进制文件,然后修改其中的某一项。#include#includeint GetData(int d );void DisplayData(int d ,int n);void Save(int d,int n,char *fname);int LoadData(int *p,char *fname

39、);int CorrectData(char *fname);void main(void) int n,d10001; char s41;#include n=GetData(d); DisplayData(d,n); printf(“Filename: ); gets(s); Save(d,n,s); if (!CorrectData(s) return; n=LoadData(d,s); if (n) DisplayData(d,n); n=GetData(d);int GetData(int d ) int n,i; scanf(%d,&n); for(i=1;in+1;i+) di=

40、random(1000); return n; int GetData(int d )void DisplayData(int d ,int n) int i; for(i=1;in+1;i+) printf(%d ,di); puts(n); void DisplayData(int d ,int void Save(int d ,int n,char *fname) FILE *fp; int i; fp=fopen(fname,wb); if (!fp) return; fwrite(&n,2,1,fp); for(i=1;in+1;i+) fwrite(&di,2,1,fp); fcl

41、ose(fp); void Save(int d ,int n,char int CorrectData(char *fname) char s21=Temp.txt; FILE *fpr,*fpw; int i,n,p,data,x; fpr=fopen(fname,rb); if (!fpr) return 0; fread(&n,2,1,fpr);int CorrectData(char *fname) fpw=fopen(s,wb); if (!fpw) fclose(fpr); return 0; printf(correct which item, new data= ); sca

42、nf(%d %d,&p,&data); if (pn) fcloseall( ); return 0; fpw=fopen(s,wb); fwrite(&n,2,1,fpw); for(i=1;ip & !feof(fpr);i+) fread(&x,2,1,fpr); fwrite(&x,2,1,fpw); fread(&x,2,1,fpr); fwrite(&data,2,1,fpw); fwrite(&n,2,1,fpw); for(i=p+1;in+1 & !feof(fpr);i+) fread(&x,2,1,fpr); fwrite(&x,2,1,fpw); fclose(fpr)

43、; fclose(fpw); for(i=p+1;in+1 & !feof(f fpr=fopen(s,rb); if (!fpr) return 0; fpw=fopen(fname,wb); if (!fpw) fclose(fpr); return 0; while(!feof(fpr) fread(&x,2,1,fpr); fwrite(&x,2,1,fpw); fpr=fopen(s,rb); fclose(fpr); fclose(fpw); return 1; fclose(fpr);int LoadData(int *p,char *fname) FILE *fp; int i

44、,n; fp=fopen(fname,rb); if (!fp) return 0; fread(&n,2,1,fp); for(i=1;in+1 & !feof(fp);i+) fread(+p,2,1,fp);int LoadData(int *p,char *fnam n=i-1; fclose(fp); return n; n=i-1;二. 随机文件 1. 文件指针定位 原型: int fseek(FILE *fp,long offset,int whence) 功能:将文件指针移到由whence所确定的位置开始,偏移offset个字节的位置处。定位成功时函数返回0,否则返回非0值。二

45、. 随机文件 1. 文件指针定位 whence: 0(或SEEK_SET) :文件首 1(或SEEK_CUR):当前位置 2(或SEEK_END):文件末尾 whence:例2. 修改二进制文件中的某一项。例2. 修改二进制文件中的某一项。int CorrectData(char *fname) FILE *fpr; int offset,n,p,data; fpr=fopen(fname,rb+); if (!fpr) return 0; fread(&n,2,1,fpr);int CorrectData(char *fname) printf(which item, new data= )

46、; scanf(%d %d,&p,&data); if (pn) fcloseall( ); return 0; printf(which item, new offset=(p-1)*2; fseek(fpr,offset,SEEK_SET); fwrite(&data,2,1,fpr); fclose(fpr); return 1; offset=(p-1)*2;例3. 分析下面程序的功能 例3. 分析下面程序的功能 #include#includevoid main(void) FILE *fp; int i,x;#include if (fp=fopen(d:intb1.dat,rb)

47、=NULL) printf(file can not open!n); exit(0); for(i=0;i3;i+) fseek(fp,2*i*sizeof(int),0); fread(&x,sizeof(int),1,fp); if (fp=fopen(d:intb1. fseek(fp,-2L*sizeof(int),SEEK_END); fread(&x,sizeof(int),1,fp); fseek(fp,-1L*sizeof(int),SEEK_END); fread(&x,sizeof(int),1,fp); fclose(fp); fseek(fp,-2L*sizeof(i

48、nt)C语言程序设计技术(下)课件The C Programming Language第19讲 位运算与预处理命令The C Programming Language第19讲一. 位运算1. 按位或 运算符为 |运算规则:0 | 0=0, 0 | 1=1, 1 | 0=1, 1 | 1=1一. 位运算 例1(P220例9-1). 设字符变量a=3,b=5,求 a | b。 例1(P220例9-1). 设字符变量a=3,b=5,2. 按位与 运算符为 &运算规则:0 & 0=0, 0 & 1=0, 1 & 0=0, 1 & 1=12. 按位与 例2(P221例9-2).设字符变量a=3,b=5,

49、求a & b。 & 例2(P221例9-2).设字符变量a=3,b=5,求a 3. 按位异或 运算符为:运算规则:0 0=0, 0 1=1, 1 0=1, 1 1=03. 按位异或 例3(P222例9-5). 设字符变量a=57,b=42,求 a b。 0 0 1 1 10 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 例3(P222例9-5). 设字符变量a=57,b=42,4. 位取反 运算符:运算规则:1=0, 0=1 4. 位取反 例4(P223例9-8).对有符号整型变量i = 100和无符号整型变量 j = 100分别进行取反操作。 0000 0000 0110 01

50、00 1111 1111 1001 1011i = -101 , j = 65435 例4(P223例9-8).对有符号整型变量i = 100和5. 移位 运算符:运算规则:将二进制数向左移位,右边补0。5. 移位例5. 设a=60,b=135 求 a2,b1。a2=(0011 1100)22=(1111 0000)2=240b1=(1000 0111)21=(0000 1110)2=14例5. 设a=60,b=135 求 a2,b运算规则: 将二进制数位向右移动,最高位为时左边补0, 最高位为时补1。6. 右移位例6. 设a=60,b=135 求 a2,b1。a2=(0011 1100)22

51、=(0000 1111)2=15b1=(1000 0111)21=(1100 0011)2=195例6. 设a=60,b=135 求 a2,b1。例7(P225例9-13). 从键盘输入一个正整数,输出由811位构成的数。例7(P225例9-13). 从键盘输入一个正整数,输出由8#includevoid main(void) int num, mask,x; printf(Input a integer number: ); scanf(%d,&num);#include num = 8; mask = 15; x=num & mask; printf(result=%dn, x); num = 8; 二. 预处理命令 2. 文件包含(1) 绝对路径查找#include 该命令表示在 TCINCLUDE 中去查找指定的文件,并将该文件添加到源文件中。 二. 预处理命令 2. 文件包含(2) 相对路径查找 #include ”文件名” 先在当前目录中查找文件,未找到时再到 TCINCLUDE 中去查找。 (2) 相对路径查找 2. 宏定义 (1) 无参宏 语法:#define 字符串 如:#define PI 3.14 2. 宏定义 (2) 有参宏#define () 字符串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论