首页 > 代码库 > 北京理工计算机 上机复试2001年(1)

北京理工计算机 上机复试2001年(1)

1、编写程序,计算下列分段函数y=f(x)的值。

y= -x+2.5              0<= x <2

y=2-1.5(x-3)(x-3)   2<= x <4

y=x/2-1.5               4<= x <6

技术分享
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main(){
 5 double x=0;
 6 cout<<"please input a num 0-6:"<<endl;
 7 cin>>x;
 8 if(x<0||x>=6){
 9 cout<<"输入不合法"<<endl;
10 return 0;
11 }
12 
13 if(0<=x&&x<2)
14     cout<<"y=-x+2.5  x= "<<x<<"y= "<<2.5-x<<endl;
15 else if(x<4)
16     cout<<"y=2-1.5(x-3)(x-3)  x= "<<x<<"y= "<<2-1.5*(x-3)*(x-3)<<endl;
17 else 
18     cout<<"y=x/2-1.5  x= "<<x<<"y= "<<x/2.0-1.5<<endl;
19 
20 return 0;
21 }//main
2001_01.cpp

2、编写程序,读入一个整数 N。若 N 为非负数,则计算 N 到 2N 之间的整数和;若 N 为一个负数,则求 2N 到 N 之间的整数和。

技术分享
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main(){
 5 
 6 int n;
 7 cout<<"please input an integer:"<<endl;
 8 cin>>n;
 9 if(n>=0)
10     cout<<(n+2*n)*(n+1)/2<<endl;
11 else 
12     cout<<(n+2*n)*(1-n)/2<<endl;
13 
14     return 0;
15 }//main    
2001_02.cpp

3、 设N是一个四位数,它的 9 倍恰好是其反序数(例如:1234的反序数是4321),求N的值。

技术分享
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main(){
 5 int n;
 6 int reverse=0;
 7 for(n=1000;n<10000;++n){
 8     reverse=(n%10)*1000+(n%100)/10*100+(n%1000)/100*10+(n%10000)/1000;
 9     if(9*n==reverse){cout<<n<<endl;
10     cout<<"9n="<<9*n<<endl;
11     cout<<"re="<<reverse<<endl;}
12 }
13 return 0;
14 }//main
View Code

4、 N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。

技术分享
 1 #include<iostream>
 2 #include<stdlib.h>
 3 using namespace std;
 4 
 5 
 6 struct factor{
 7     factor* front;
 8     int order;
 9     factor* next;
10 };
11 struct fs{
12     factor* first;
13     factor* last;
14     int count;
15 };
16 
17 int main(){
18 int n;
19 cout<<"please input a number"<<endl;
20 cin>>n;
21 fs* list=(fs*)malloc(sizeof(fs));
22 list->count=0;
23 list->first=NULL;
24 list->last=NULL;
25 
26 for(int i=1;i<=n;++i){
27     factor* f=(factor*)malloc(sizeof(factor));
28     f->front=NULL;
29     f->next=NULL;
30     f->order=i;
31     if(list->first==NULL){
32         f->front=f;
33         f->next=f;
34         list->first=f;
35         list->last=f;
36     }
37     else{
38     f->front=list->last;
39     f->next=list->first;
40     list->last->next=f;
41     list->last=f;
42     list->first->front=f;
43     }
44     list->count++;
45 }
46 
47 factor* f=list->first;
48 for(int j=1;list->count>0;j++){
49     factor* d=f;
50     f=f->next;
51 
52     if(j%3==0){
53     list->count--;
54     
55     d->front->next=d->next;
56     d->next->front=d->front;
57     cout<<d->order<<" ";
58     free(d);
59     }
60     
61 }
62 
63 
64 return 0;
65 }
2001_04.cpp

 

北京理工计算机 上机复试2001年(1)