计算机二级 C语言考试 C语言学习 第5讲

上传人:zw****58 文档编号:51968801 上传时间:2018-08-17 格式:PPT 页数:38 大小:1.23MB
返回 下载 相关 举报
计算机二级 C语言考试 C语言学习 第5讲_第1页
第1页 / 共38页
计算机二级 C语言考试 C语言学习 第5讲_第2页
第2页 / 共38页
计算机二级 C语言考试 C语言学习 第5讲_第3页
第3页 / 共38页
计算机二级 C语言考试 C语言学习 第5讲_第4页
第4页 / 共38页
计算机二级 C语言考试 C语言学习 第5讲_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《计算机二级 C语言考试 C语言学习 第5讲》由会员分享,可在线阅读,更多相关《计算机二级 C语言考试 C语言学习 第5讲(38页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计第五讲第八章 数 组 构造数据类型之一 数组:有序数据的集合,用数组名标识 元素:属同一数据类型,用数组名和下标确定 8.1 一维数组 一维数组的定义 v定义方式: 数据类型 数组名常量表达式; 合法标识符表示元素个数 下标从0开始 :数组运算符 单目运算符 优先级(1) 左结合 不能用( )例 int a6;a00 14 5a1 a2 a3 a4 a523a编译时分配连续内存 内存字节数=数组维数*sizeof(元素数据类型)数组名表示内存首地址, 是地址常量 一维数组的引用 v数组必须先定义,后使用 v只能逐个引用数组元素,不能一次引用整个数组 v数组元素表示形式: 数组名下

2、标 其中:下标可以是常量或整型表达式例 int i=15;int datai; (不能用变量定义数组维数)例 int a10;printf(“%d”,a); () 必须 for(j=0;jvoid fun(int a,int b) int t;t=a;a=b;b=t; main()int c10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;k main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i2!1例4 08/9 12以下程序按下面指定的数据给x数组的下三角置数,并按如下形式 输出,请填空。 4 3 7 2 6 9

3、1 5 8 10 #include main() int x44,n=0,i,j; for(j=0;j=j; 【12】) n+;xij= 【13】; for(i=0;i main() int a5=1,2,3,4,5, b5=0,2,1,3,0,i, s=0 for(i=0;i main() int b3 3=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0; imain()int n,*p=NULL;*p=printf(“Input n:”); scanf(“%d”, printf(“output n:”); printf(“%dn”,p); 该程序试图通过指针p为变量n

4、读入数据并输出,但程序有多处错误,以下语句 正确的是( ) A)int n,*p=NULL; B)*p= C)scanf(“%d”,4、(05/9 28)设有定义:int n1=0,n2,*p=,以 下赋值语句中与n2=n1;语句等价的是( )。A)*p=*q; B)p=q; C)*p= D)p=*q;5、 (05/9(29)若有定义:int x=0, *p=,则语句 printf(“%dn“,*p);的输出结果是( )。A)随机值 B)0 C)x的地址 D)p的地址7.4 指针和函数 7.4.1 指针变量作函数参数7.4.2 返回指针值的函数7.4.3 指向函数的指针变量swap(int *

5、p1, int *p2) int p;p=*p1;*p1=*p2;*p2=p; main() int a,b;int *pointer_1,*pointer_2;scanf(“%d,%d“,pointer_1= pointer_2=if(a*y) return x;else return y; main() int a=2,b=3;int *p;p=f1(printf(“%dn“,*p); .20002008200A2002200420062 3指针变量y指针变量x(f1)20022000COPY变量a变量b(main)指针变量p*例 写一个函数,求两个int型变量中居于较大值的变量的地址in

6、t *f3(int x,int y) if(xy) return else return main() int a=2,b=3;int *p;p=f3(a, b);printf(“%dn“,*p); .20002008200A2002200420062 3变量y变量x(f3)32COPY变量a变量b(main)指针变量p*例 写一个函数,求两个int型变量中居于较大值的变量的地址不能返回形参或局部变量 的地址,思考为什么? .20002008200A2002200420062变量a变量b(main)3指针变量p*200Aint *f3(int x,int y) if(xy) return el

7、se return main() int a=2,b=3;int *p;p=f3(a,b);printf(“%dn“,*p); 7.4.3 指向函数的指针函数在编译时被分配的入口地址(程序段的存储地址) 称为函数指针, 用函数名表示。我们将这一地址存到一个 指针变量里去,这个变量就是指向函数的指针变量。max.指令1 指令2函数指针变量赋值:如p=max; 函数返回值的数据类型专门存放函数入口地址 可指向返回值类型相同的不同函数 指向函数的指针变量 定义形式: 数据类型 (*指针变量名)();如 int (*p)();函数指针变量指向的函数必须有函数说明函数调用形式: c=max(a,b);

8、c=(*p)(a,b); c=p (a,b); 对函数指针变量pn, p+, p-无意义( )不能省 int (*p)() 与 int *p()不同 用函数指针变量作函数参数例:用函数指针变量作参数,求最大值、最小值和两数之和void main() int a,b,max(int,int),min(int,int),add(int,int);void process(int,int,int (*fun)();scanf(“%d,%d“,process(a,b,max);process(a,b,min);process(a,b,add); void process(int x,int y,int

9、 (*fun)() int result;result=(*fun)(x,y);printf(“%dn“,result); max(int x,int y) printf(“max=”);printf(“max=”);return(xy?x:y); return(xy?x:y); min(int x,int y) printf(“min=”);printf(“min=”);return(xy?x:y); return(xy?x:y); add(int x,int y) printf(“sum=”); printf(“sum=”); return(x+y); return(x+y); 08/4(

10、40)设有定义语句int (*f)(int);,则以 下叙述正确的是( )。 A)f 是基类型为int 的指针变量 B)f 是指向函数的指针变量,该函数具有一个int 类型 的形态 C)f 是指向int 类型一维数组的指针变量 D)f 是函数名,该函数的返回值是其类型为int 类型的 地址 09/9(33)设有以下函数: void fun(int n,char *s) 则下面对函数指针的定义和赋值均正确的是 A)void (*pf)( );pf=fun; B)void *pf();pf=fun; C)void *pf();*pf=fun; D)void (*pf)(int,char);pf=int *p1=*p=*p1*(*p2);printf(“%dn“,c);执行后的输出结果是A)1 B)2 C)3 D)4 2、已定义以下函数 int fun(int *p) return *p; fun 函数返回值是 A)不确定的值 B)一个整数 C)形参p中存放的值 D)形参p的地址值 3、若有说明语句:double *p,a;则能通过scanf语句正确给输入项读 入数据的程序段是 A)*p= scanf(“%lf”,p); B)*p= scanf(“%f”,p); C) p= scanf(“%lf”,*p); D)p= scanf(“%lf”,p); 考学结合例题:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号