作者:江上_酒
QQ: 1470784960
Email: iszhaoxl@163.com
申明:
- 此为模拟卷一答案,如有错误可直接在评论区留言,我会及时处理。
- 转载使用均需要标明出处,(制作不易,点赞关注万分感谢!)。
- 祝愿所有考生在专业课上可以取得理想成绩!!!
一、选择题(共20小题,每小题2分,共40分)
题号 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
答案 | C | A | C | A | D |
题号 | 6 | 7 | 8 | 9 | 10 |
答案 | B | B | B | D | C |
题号 | 11 | 12 | 13 | 14 | 15 |
答案 | D | B | D | C | C |
题号 | 16 | 17 | 18 | 19 | 20 |
答案 | D | C | C | D | D |
二、应用题(共3小题,每小题10分,共30分)
- (1) q->next!=p; (2) q->next=p-next; (3) free(p);
- 二叉排序树如下所示:
平均查找长度为: A S L S U C C = 1 12 ( 1 + 2 × 2 + 3 × 3 + 4 × 3 + 2 × 5 + 1 × 6 ) = 7 2 ASL_{SUCC}=\frac{1}{12}(1+2\times2+3\times3+4\times3+2\times5+1\times6)=\frac{7}{2} ASLSUCC=121(1+2×2+3×3+4×3+2×5+1×6)=27 - 二叉树如下所示:
三、编写程序(共4小题,每小题10分,共40分)
- 代码如下
void statistics() { int a; int r=0,s=0,t=0; printf("请输入10个数据:"); for(int i=0;i<10;i++) { scanf("%d",&a); if(a>0) r++; else if(a<0) s++; else t++; } printf("正数:%d,负数:%d,零:%d\n",r,s,t); }
- 代码如下
int max(int x,int y) { if(x>=y){return x;} else{return y;} } int main() { int a,b,m; scanf("%d,%d",&a,&b); m=max(a,b); printf("最大值max=%d",m); }
- 代码如下
void sum() { int i,sum=0; for(i=1;i<1000;i=i+2) sum=sum+i; printf("1-1000间的所有奇数和sum=%d",sum); }
- 代码如下
void transpose() { int a[2][3],b[3][2],i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) for(j=0;j<2;j++) b[i][j]=a[j][i]; for(i=0;i<3;i++) for(j=0;j<2;j++) printf("%d",b[i][j]); printf("\n"); }
四、算法设计(共4小题,每小题10分,共40分)
- 代码如下
void merge(SqList A,SqList B,SqList *C) { int i=0,j=0,k=0; while(i<A.length && j<B.length) { if(A.data[i]<B.data[j]) C->data[k++]=A.data[i++]; else C->data[k++]=B.data[j++]; } while(i<A.length) C->data[k++]=A.data[i++]; while(j<B.length) C->data[k++]=B.data[j++]; C->length=k; }
- 代码如下
typedef struct BiTNode { char data; BiTNode *lchild, *rchild; } BiTNode, *BiTree; int Similar(BiTree B1, BiTree B2) { if(!B1 && !B2) return 1; else if(B1 && !B2 || !B1 && B2) return 0; else{ if(Similar(B1->lchild,B2->lchild) && Similar(B1->rchild,B2->rchild)) return 1; else return 0; } }
- 代码如下
int BiTreeDepth(BiTree T) { int i,j; if(!T) return 0; if(T->lchild) i=BiTreeDepth(T->lchild); else i=0; if(T->rchild) j=BiTreeDepth(T->rchild); else j=0; return i>j?i+1:j+1; }
- 代码如下
typedef struct QNode { int data; struct QNode *next; }QNode,*QueuePtr; typedef struct { QueuePtr rear; }LinkQueue; void EnQueue(LinkQueue *Q,int x) { QueuePtr s=(QueuePtr)malloc(sizeof(QNode)); s->data=x; s->next=Q->rear->next; Q->rear->next=s; Q->rear=s; } void DeQueue(LinkQueue *Q) { QueuePtr p; if(Q->rear->next==Q->rear) { printf("队列为空!!!"); return; } p=Q->rear->next; Q->rear->next=p->next; free(p); }