A.public float sort(float x)
B.int sort(int y)
C.double sort(int x,int y)
D.void sort(double y)
第1题
A、一个Bird对象
B、fly()方法
C、Bird对象或fly()方法
D、不一定
第2题
A、5和6
B、6和5
C、30和5
D、5和30
第3题
A.一季度
B.二季度
C.三季度
D.四季度
第4题
【说明】
Fibonacci数列A={1,1,2,2,5,8,…)有如下性质:
a0=a1=1
ai=ai-1+ai-2,i>1
对于给定的n,另外有一个由n个元素组成的数列xn,该数列中各元素的值为:
xi=ai/ai+1,i=0,1,…,n
现要求对xn中的元素按升序进行排序,然后以分数形式输出排序后的xn。例如n=5时,排序前的xn={1/1,1/2,2/3,3/5,5/8},排序后的xn={1/2,3/5,5/8,2/3,1/1}。程序中函数make()首先生成排序前的xn,然后调用函数sort()进行排序,最后输出所求结果。
【程序】
include <stdio.h>
include <stdlib.h>
include <malloc.h>
struct fact
{
long m,n;
};
void sort(int n,struct fact *p)
{
int a;
long s,t,u,v;
struct fact *q,*end;
for(end=p+(n-1),a=1;a;end--)
for(a=0,q=p;q<end;p++)
{
s=q->m;
t=q->n;
u=(q+1)->m;
v=(q+1)->n;
if( (1) )
{
q->m=u;
(2)
(3)
(q+1)->n=t;
a=1;
}
}
}
void make(int n)
{
int i;
long a,b,c;
struct fact *x,*y;
x=(struct fact *)malloc(sizeof(struct fact)*n);
x->m=1:
x->n=1;
for(a=1,b=1,i=2;i<=n;i++)
{
(4)
a=b;
b=c;
(x+(i-1))->m=a;
(x+(i-1))->n=b;
}
(5)
printf("x%d={%1d/%1d",n,x->m,x->n);
for(y=x+1;y<x+n;y++)
printf(",%1d/%1d",y->m,y->n);
printf("}\n");
free(x);
}
void main()
{
int n;
printf("input n:");
scanf("%d",&n);
make(n);
}
第5题
实验要求: 编写类1,2,4。在测试类里完成3,5。写上机实验报告,给出思考题答案。 实验内容: 1) 设计一个表示二维平面上点的类Point, 功能要求: l 包含有表示坐标位置的成员变量x和y l 一个构造方法:Point(int x,int y) l 获取x 和y值的public方法:int getX()和int getY() 2) 设计一个表示二维平面上圆的类Circle,它继承类Point, 功能要求: l 包含有表示圆半径的private类型的成员变量r l 两个构造方法:Circle(int r,int x,int y)和Circle(),无参构造方法要给x,y,r都赋给初值0 n 注意:需要使用super关键字调用父类构造方法 n 思考:为什么必须调用父类构造方法? l 获取和设置r值的public方法:int getR()和void set(int r) l 计算圆面积的public方法:double area(int r) l 增加一个和Point类同名的成员变量x,和一个方法void disp (),请在该方法里实现对Point类中成员变量x的访问。 n 思考:super关键字的用法有哪些? 3) 建立若两个Circle对象c1,c2,建立一个Point的对象p。 l 输出对象c1和c2的轴心位置坐标、半径和面积的值 l 通过c1对象访问Point类中成员变量x l 用变量p引用Circle对象c1,测试一下p能引用的成员 n 思考:父类的引用去引用子类对象时,能访问的成员有哪些? 有余力的同学可以完成下2题:(加分20) 4) 设计一个表示圆柱体的类Cylinder,它继承自类Circle, 功能要求: l 包含有表示圆柱体高的private类型的成员变量h l 构造方法:Cylinder(int h,int r,int x,int y) l 获取和设置h值的public方法 l 计算圆柱体体积的public方法 double volume(int h) l 重写从Circle类中继承来的void disp ()方法,功能是打印出h和圆柱体的体积 5) 编写一个Cylinder对象,调用所有能调用的方法,查看结果
第6题
【说明】
某绘图系统存在Point、Line和Square这三种图元,它们具有Shape接口,图元的类图关系如图5-10所示。
现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供了的接口不被系统直接使用。【C++代码5-1】既使用了XCircle又遵循了Shape规定的接口,即避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。【C++代码5-2】根据用户指定的参数生成特定的图元实例,并对它进行显示操作。
该绘图系统定义的接口与XCircle提供的显示接口及其功能如表5-13所示。
【C++代码5-1】
class Circle: public (1) {
Private;
(2) m_circle;
Public;
void display(){
m_circle. (3)
}
};
【C++代码5-2】
class Factory{
public;
(4) getShapeInstance(int type){ //生成特定类实例
Switch(type){
case 0: return new Point;
case 1: return new Rectangle;
case 2: return new Line;
case 3: return new Circle;
default: return NULL;
}
}
};
void main(int argc, char *argv[]){
if(argc !=2){
cout<<"error parameters!"<<endl;
return;
}
int type=atoi(argv[1]);
Factory factory;
Shape *s;
s=factory.(5);
if(s==NULL){
cout<<"Error get the instance!"<<endl;
return;
}
s->display();
(6);
Return;
}
第7题
某C程序定义了一个全局变量int data[256],其并创建有两类进程Ai(0<=i<=5)、bj(0<=j<=5)、分别循环式地对data数组元素依次进行设置(写)和提取(读)操作。具体而言,a类进程循环式地依次对data数组元素进行设置操作,也即设置data[0]、设置data[1]、设置data[2]、.......、设置data[255]、设置data[0]、设置data[1]、.......、设置data[255]、设置data[0]、设置data[1]、.......;b类进程循环式地依次对data数组元素进行提取操作,也即提取data[0]、提取data[1]、提取data[2]、.......、提取data[255]、提取data[0]、提取data[1]、.......、提取data[255]、提取data[0]、提取data[1]、.......;一个数据元素被写入一次后,必须被取走后该元素才可被再次写操作,同时,a类进程写入的数据必须要被某个b类进程取走且仅需取走一次。在设计和实现这两类进程对data数据共享访问同步问题的正确最高效解决方案中,关于临界资源及对应临界区操作的分析,正确无误的说法是(> A、设立进程Ai共享的data数组下标变量x,设立进程Bj共享的data数组下标变量y,并将x和y作为这两类进程的临界资源,并定义一个互斥信号量对其访问操作进行保护
B、全局变量data、i和j都是临界资源
C、全局变量data作为上述两类进程的临界资源,且把它们对data的操作都封装在相同的互斥信号量mutex保护的临界区中
D、设立进程Ai共享的data数组下标变量x,设立进程Bj共享的data数组下标变量y,并将x作为Ai类进程之间的临界资源(故而定义互斥信号量mutexX实现Ai类进程对x的互斥访问)、y作为Bj类进程之间的临界资源(故而定义互斥信号量mutexY实现Bj类进程对y的互斥访问)
第8题
A、3和15
B、4和20
C、5和4
D、20和5
第9题
函数void convelt(chal *a,int n)是用递归方法将一个正整数n按逆序存放到一个字符数组a中,例如,n=123,在a中的存放为'3'、'2'、'1'。
[C函数1]
void convert(char *a,int n)
{ int i;
if((i=n/10)!=0; convert( (1) ,i);
*a= (2) ;
}
[说明2]
函数int index(char *s,char *t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。
[C函数2]
int index(char *s,char *t)
{ int i,j=0;k=0;
for(i=0;s[i]!:'\0';i++)
( for( (3) ;(t[k]!='\0')&&(s[j]!='\0')&&( (4) );j++,k++);
if( (5) ) return(i);
}
return(-1);
}
第10题
A.int x[6],*p;p=&x[0];
B.int x[6],*p;*p=x;
C.int x[6],*p;p=x;
D.int x[5],p;p=x[0];
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!