武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx

上传人:b****2 文档编号:1980269 上传时间:2022-10-25 格式:DOCX 页数:30 大小:41.71KB
下载 相关 举报
武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx_第1页
第1页 / 共30页
武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx_第2页
第2页 / 共30页
武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx_第3页
第3页 / 共30页
武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx_第4页
第4页 / 共30页
武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx

《武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx》由会员分享,可在线阅读,更多相关《武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx(30页珍藏版)》请在冰豆网上搜索。

武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题.docx

武汉科技大学考研历年初试真题之C语言程序设计有答案年考研真题

姓名:

       报考专业:

           准考证号码:

               

密封线内不要写题

二O一三年招收硕士研究生入学考试试题

考试科目代码及科目名称:

 855C语言程序设计      

答题内容写在答题纸上,写在试卷或草稿纸上一律无效考完后试题随答题纸交回。

考试时间3小时,总分值150分。

一、选择题(每题2分,共20分)

1.C语言结构类型变量在程序执行期间()。

A)所有成员一起驻留在内存中。

B)只有一个成员驻留在内存中。

C)部分成员驻留在内存中。

D)没有成员驻留在内存中。

2.数组定义为“inta[4][5];”,下列哪一个引用是错误的()。

A)*aB)*(*(a+2)+3)C)&a[2][3]D)++a

3.结构变量stu,类型为STU,含有域major,下面哪条语句正确引用了major?

()

A)stu.majorB)stu->majorC)STU->majorD)STU.major

4.设函数fun和实参数组的说明形式为:

voidfun(charch,floatx[]);floata[10];

以下对函数的调用语句中,正确的是()。

A)fun("abc",a[]);B)t=fun('D',a);

C)fun('65',2.8);D)fun(32,a[10]);

5.下列语句中与语句while

(1){if(i>=100)break;s+=i;i++;}功能相同的是()。

A)for(;i<100;i++)s=s+i;B)for(;i<100;i++;s=s+i);

C)for(;i<=100;i++)s+=i;D)for(;i>=100;i++;s=s+i);

6.C语言中函数返回值的类型是由()决定的。

A)return语句中的表达式类型B)调用该函数的主调函数类型

C)定义函数时所指定的函数类型D)调用函数时临时

7.以下对枚举类型名的定义中正确的是()。

A)enuma={one,two,three};B)enuma{a1,a2,a3};

C)enuma={‘1’,’2’,’3’};D)enuma{“one”,”two”,”three”};

8.对于以下递归函数f,调用f(4),其返回值为()

intf(intn){if(n)returnf(n-1)+n;elsereturnn;}

A)10B)4C)0D)以上均不是

9.设整型变量i,j值均为3,执行了j=i++,j++,++i后,i,j的值是()。

A)3,3B)5,4C)4,5D)6,6

10.while(!

x)中的表达式(!

x)等价于()。

A)x!

=1B)x!

=0C)x==1D)x==0

二、阅读程序写出程序运行结果(每题5分,共20分)

1.

voidmain()

{intk=0;charc='A';

do{

switch(c++){

case'A':

k++;break;

case'B':

k--;

case'C':

k+=2;break;

case'D':

k=k%2;break;

case'E':

k=k*10;break;

default:

k=k/3;

}

k++;

}while(c<'G');

printf("k=%d\n",k);

}

2.

voidmain(void)

{inti=0;

do{printf(“Yes!

”);}while(++i<4);

printf(“\n”);

while(i++<8)printf(“No!

”);

}

3.

#include

voidmain()

{intarr[]={3,6,9,12,15},*p,k;

for(k=0;k<5;k++)arr[k]+=arr[k]/3;

for(p=arr,k=0;k<5;k++)printf("%3d",*(p+k));

}

4.运行时输入:

82

intccc(intn,intr)

{if(r>n)return0;

if(r==0||n==0||n==1)return1;

returnccc(n-1,r)+ccc(n-1,r-1);

}

voidmain()

{intresult=0,n,r;

do{scanf("%d%d",&n,&r);}while(n

result=ccc(n,r);

printf("ccc(%d,%d)=%d\n",n,r,result);

}

三、程序填空(每空3分,共60分)

1.以下函数的功能是将字符串sa中的内容逆置过来,即:

若原串为”abcde”,逆置后应为”edcba”。

#include

voidstrinvert(char*sa)

{

inti=0,j,t;

j=

(1);

while(

(2))

{t=sa[i];sa[i]=sa[j];sa[j]=t;

i++;

(3);

}

}

2.下列程序A与B功能等价,请填空。

程序A:

intf(intn){if(n<=1)returnn;elsereturnf(n-1)+f(n-2);}

程序B:

intf(intn)

{intt0=0,t1=1,t=n;

while((4))

{t=(5);t0=t1;t1=t;n--;}

return(6);

}

3.下面程序的功能是用公式π/4≈(直至最后一项的值小于10-4为止)求π的值。

#include

main()

{intsign=1,i=1;

floatnext=1.0,pi,sum=0;

while((7))

{sum=(8);(9);i+=2;next=1.0/i;}

(10);

printf("pi=%f\n",pi);

}

4.已知带头结点的单链表L,其节点中的元素以递减方式排列。

函数DelList的功能是在L中查找所有大于minK且小于maxK的结点,若找到,则删除结点。

若L中不存在满足条件的结点,则返回-1,否则返回删除的节点数。

链表结点类型定义如下:

typedefstructNode{intdata;structNode*next;}NODE,*LinkList;

intDelList(LinkListL,intminK,intmaxK)

{

___(11)___*q=L,*p=___(12)___;

intTag=0;

while(p)

if(p->data>=maxK){q=p;___(13)___;}

elseif(___(14)___)

{q->next=___(15)___;free(p);

p=___(16)___;___(17)___;}

else___(18)___;

if(___(19)___)return-1;

___(20)___;

}

四、程序设计(4小题,共50分)

1.(10分)函数digit(n,k)的功能是求正整数n中从右端开始的第k(≥1)个数字的值(k从1开始),如果k超过了n的位数,则函数返回-1;否则返回n中第k个数字。

例如:

digit(264539,3)=5digit(7622,5)=-1

要求分别用递归和非递归设计该函数。

2.(10分)编程统计输入的一行中的大写字母、小写字母、数字的个数以及单词数(单词间以空格隔开)。

3.(15分)建立一个学生登记表(人数<100),每个学生包含下列信息:

学号(no)、姓名(name)、性别(sex)、分数(score),其结构定义如下:

structstudent{longno;charname[8];charsex;floatscore;};

要求:

(1)定义学生信息录入函数input,当输入学号为-1表示学生信息录入结束。

函数返回录入信息的学生人数,其函数原型定义如下:

intinput(structstudent*stu);

(2)定义sort函数,实现按照学生姓名升序排序的功能。

(3)使用二分查找算法,定义search函数,实现根据给定学生的姓名,查找并显示出该学生的信息,如果不存在,请给出提示信息。

4.(15分)函数BitTreeDel_RightBottom(BitTreeT)的功能是:

若T指向一棵二叉树的根结点,则找出该结点的右子树上的“最右下”结点*p,并从树中删除以*p为根的子树,函树返回被删除子树的根结点指针;若该树根的右子树上不存在“最右下”结点,则返回空指针。

一棵非空二叉树中“最右下”结点定义为:

若树根的右子树为空,则树根为“最右下”结点;否则,从树根的右子树树根出发,沿结点的右孩子分支向下查找,直到某个结点不存在右孩子时为止,该结点即为此二叉树的“最右下”结点。

TypedefstructBitNode{

intdata;

structBitNode*left,*right;

}*BitTree;//left,right为结点的左、右孩子指针

参考答案(A)

一、选择题(每题2分,共20分)

1.A2.D3.A4.B5.A6.C7.C8.A9.B10.D

二、读程序写结果(每题5分,共20分)

1.k=8

2.Yes!

Yes!

Yes!

Yes!

No!

No!

No!

No!

3.481216204.ccc(8,2)=28

三、程序填空题(每空3分,共60分)

1.

(1)strlen(sa)-1

(2)i

2.(4)n>1(5)t0+t1(6)t1

3.(7)next(8)sum+sign*next(9)sign=-sign(10)pi=sum*4

4.(11)LinkList(12)L->next(13)p=p->next(14)p->data>minK

(15)p->next(16)q->next;(17)tag++;(18)break

(19)Tag==0(20)returnTag

四、程序设计题(共50分)

1.

intdigit(intn,intk)

{if(n==0)return-1;

elseif(k==1)returnn%10;

elsereturndigit(n/10,k-1);}

intdigit(intn,intk)

{while(n)

{if(k==1)returnn%10;

k--;n=n/10;}

return-1;

}

2.

#include

voidmain()

{

inti,num1=0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1