欢迎来到天天文库
浏览记录
ID:32604721
大小:56.65 KB
页数:11页
时间:2019-02-13
《软考软件设计师笔试考前练习汇总(下)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软考软件设计师笔试考前练习汇总(下)软件水平考试软件设计笔试考前练习(11)阅读函数,写出函数的主要功能: floatav(a,n) floata[]; intn; {inti;floats; for(i=0,s=0;i returns/n; } 【解】函数有一个数组形参a和一个整型形参n。函数首先用循环求数组a的前n个元素和,然后将和除以n。即求数组元素的平均值。 阅读函数,写出函数的主要功能: ch(int*p1,int*p2) {intp; if(*pl>*p2){p=*pl;*pl=*p2;*p2=p;}
2、 } 【解】函数办有两个指针形参p1和p2,函数体通过*pl和*p2间接引用它们所指变量。当pl所指变量的位大于p2所指变量的值时,交换两形参所指变量的值。所以函数的功能当形参1所指变量比形参2所指变量的值大时,交换这两个变量的值。调用该函数能保证形参1所指变量的值不大于形参2所指变量的值软件水平考试软件设计笔试考前练习(12)1.若有下面的程序片段,则对数组元素的错误弓D用是() inta[12]={0},*p[3],**pp,i; for(i=0;i<3;i++)p=&a[i+4]; pp=P; ①pp[0][1] ②a[10] ③p[3][l] ④*(*(p+2
3、)+2) 2.若有如下定义和语句,则输出结果是() int**pp,*p,a=10,b=20; PP=&p;P=&a;P=&b;printf("%d%d",*p,**PP); ①10,20 ②10,10 ③20,10 ④20,20 【解】上述代码定义变量a是有12个整型元素的数组,它的初值全是0。p是有三个元素的指针数组,每个指针能指向整型变量。哪是指针的指针,它能指向一个指向整型变量的指针,i是一个整型变量。执行代码for(i=0;i<3;i++)P=&a[i+4]使指针数组p的元素p[0]指向a[4],p[l]指向a[5],p[2]指向a[6]。代码pp=p使
4、指针变量pp指向p[0]。①代码pp[0][l]用指针表达可等价地写成*(*pp+l)。其中*pp就是p[0],p[0]的值是&a[4],*pp+1的值是&a[4]+1=&a[5],*(*pp+1)就是a[5]。②代码a[l0]当然是引用数组a的元素。③代码p[3][1]数组p只有三个元素,没有p[3],所以是错误的。④代码*(*(p+2)+2)中的(p+2)是&p[2],*(p+2)是p[2],其值是&a[6],*(p+2)+2的值是&a[8],*(*(p+2)+2)引用的是a[8]。所以解答是@。 【解】上述代码定义变量pp是指针的指针,它能指向一个指向整型变量的指针。定义变量
5、p是指针,它能指向一个整型变量。a是一个整型变量,它有初值10。b也是一个整型变量,它有初值20。代码pp=&p使pp指向p,p=&a使p指向a,p=&b又使p指向b,不再指向a。所以。p是引用b,其值为20。**pp是通过pp间接引用p,再通过p间接引用b,所以也是20。所以解答是④。软件水平考试软件设计笔试考前练习(13)1.设函数的功能是交换X和y的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是() ①funa(int*x,int*y) { int*p; *p=*x;*x=*y;*y=*p; } ②funb(intx,inty) { intt; t
6、=x;x=y;y=t; } ③func(int*x,int*y) { intp; p=*x;*x=*y;*y=p; } ④fund(int*x,int*y) { *x=*x+*y;*y=*x-*y;*x=*x-*y; } 【解】设计实现交换两个变量值的函数。希望函数调用能改变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的变量,或引用它们的值,或改变它们的值。从而实现从函数传回信息存于调用环境的变量中。以上所述是设计交换变量值函数的一般原则
7、,具体编写函数时还需注意对上述原则的正确应用。 对于函数funa,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。但是在函数体中定义了指针变量p,并在p宋明确设定它所指向的变量下,代码*p=*x企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。该函数因有错,不能实现交换变量值的功能。 对于函数funb,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。 对于函
此文档下载收益归作者所有