ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:26.92KB ,
资源ID:23658702      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23658702.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第一部分 C语言程序设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第一部分 C语言程序设计.docx

1、第一部分 C语言程序设计2009 第一部分 C语言程序设计(共100分)一、单项选择题(本大题共30小题,每小题2分,共60分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应的位置上。1、下列选项中,合法的C语言标识符是( )(A)my_name(B)$234(C)my name(D)23b2、已知:int x=5; 执行完printf(%d,+x); 后,输出的结果是( )(A)4(B)5(C)6(D)不确定3、已知:int x=5,y=3; 则逻辑表达式(x-y)&(y-3)的值为( )。(A)7(B)2(C)1(D)04、已知:int a=3,b=6

2、,c=8; 则执行完语句:a=ab?a:(b0) x*=2; y/=3; printf(%d,%d,x,y); (A)8,0(B)16,0(C)32,0(D)64,09、如下选项中正确的数组定义是( )。(A)#define m 10; static int am=3,4,5,6;(B)static int a2=3,4,5,6;(C)static int a10=3,4,5,6;(D)int m=4; static int am=3,4,5,6;10、执行程序段:char str12; scanf(%s,str);如果输入如下字符串(其中表示空格): Whatsyouname?则str的值是

3、( )。(A)Whats(B)Whats(C)Whatsyour(D)Whatsyourname?11、如下程序段的运行结果是( )。 main() int i=5,sum=100; do sum=sum+(-i);while(i=0); printf(%d,sum); (A)100(B)109(C)105(D)11012、如下程序段的运行结果是( )。 main() int i; for(i=1;iname=ddd; p-score=66.0; p-age=15;(D)p=&stu1; p.name=ddd; p.score=66.0; p.age=15;22、下面程序段中语法正确的是( )

4、。(A)int mm(int x,int y)int x,y; return x+y;(B)char str10; scanf(%s,&str);(C)int i,a10; for(i=0;i=10;i+) scanf(%d,&ai);(D)int i,a10,*p; for(i=0,p=a; p0)(C)!(a=1)(D)(a=1)24、若变量已经正确定义,要求程序段完成1到100的累加,下列选项中不能完成此功能的程序段是( )。/此题有误(A)for(i=1,sum=0; i=100; i+) sum=sum+i;(B)i=1; sum=0; while(i+=100) sum=sum+i

5、;(C)for(i=1;i=100;i+)sum=0;sum=sum+i;(D)i=1;sum=0;dosum=sum+i;while(+i=100);25、已知int k; 且k已经正确赋值,则下列表达式中存在语法错误的是( )。(A)2k6(B)(k6)+(C)k2(D)k=126、如下程序段的输出结果是( )。 main() int i,j,a=0; for(i=1;i=5;i+) for(j=i;j=5;j+) a=a+j; printf(%d,a); (A)10(B)25(C)55(D)7527、语句:printf(%-8.4d,-36); 执行时的输出结果是(表示空格)( )。/选

6、项似乎有错误?(A)-036(B)-036(C)-036(D)-03628、如下程序段的输出结果是( )。 main() int a10=34,22,12,66,8,33,22,338,56,99; int i,x=0; for(i=1;i10;i+) if(aiax) x=i; printf(%d,ax); (A)8(B)34(C)99(D)33829、如下程序段的输出结果是( )。 main() char str=s,t,u,d,e,n,t,0; char *q=str; while(*q!=0) q+; printf(%d,q-str); (A)5(B)6(C)7(D)830、如下程序段

7、的输出结果是( )。 #define n 5 struct student int no; float score; main() struct student stun=1,12.5,2,55.5,3,90.5,4,78.0,5,34.0; int i; float a=0,b; for(i=0;in;i+) a+=stui.score; b=a/n; printf(%08.4f,b); (A)0054.1000(B)054.1000(C)0054.1(D)54.10000二、程序阅读题(本大题共4小题,每小题5分,共20分)阅读下列程序,请将运行时输出的结果写在答题纸相应的位置上。31、

8、/*程序中表示空格*/ #include void main() char str1=goodmorning!,str220; char *p,*q; for(p=str1; *p!=0; p+); for(q=str2; -p=str1; q+) *q=*p; *q=0; printf(%s,str2); 32、 #include #define n 10 void de(int a,int x,int *m) int i=x+1; for(;i=*m;i+) ai-1=ai; *m=*m-1; void main() static int an=32,12,12,56,78,12,78,5

9、,32,12; int i,j,x,m=n-1; for(i=0;i=m;i+) x=ai; for(j=i+1;j=m;j+) if(aj=x) de(a,j,&m); for(i=0;i=m;i+) printf(%d,ai); 33、 #include void ch(int *a,int *b) int c; c=*a; *a=*b; *b=c; void main() static int a10=32,5,18,56,98,52,78,15,132,112; int x=0,y=1,i; if(axay) ch(&x,&y); for(i=2;i10;i+) if(aiay) y=

10、i; ch(&ax,&ay); for(i=0;i10;i+) printf(%d,ai); 34、 #include void main() char str=0342201411; static int a10; int i; char *p; for(i=0;i10;i+) ai=0; for(p=str; *p!=0; p+) i=*p-0; ai+; for(i=0;i10;i+) printf(%d,ai); 三、完善下列程序(本大题共2小题,每空4分,共20分)请将答案写在答题纸相应的位置上。35、下面程序求一个二维矩阵的最大值。 #include #define m 3 #de

11、fine n 4 int findmax(int an) int i,j,max=a00; for(i=0;im;_) for(j=0;jmax) max=aij; _; void main() int i,j,max,_; for(i=0;im;i+) for(j=0;jn;j+) scanf(%d,&aij); max=findmax(a); printf(%d,max); 36、下面程序找出100-200之间的全部素数。 #include #include void main() int m,k,i; for(m=101;m=200;m=m+2) k=sqrt(m); for(i=2;i

12、k) printf(%d,m); 第二部分 数据结构(共100分)一、单项选择题(本大题共12小题,每小题2分,共24分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。1、要表示高校的校、系、班级的有关数据及其关系,选择( )比较合适。(A)线性结构(B)树结构(C)图结构(D)集合结构2、下列函数中渐进时间复杂度最小的是( )。(A)T(n)=nlogn+5000n(B)T(n)=n*n-8000n(C)T(n)=n的(log(2n)次方-6000n(D)T(n)=2n的(log(2n)次方-7000n3、已知一个栈s以及一个输入序列(A,B,C

13、,D,E),每个元素按照A、B、C、D、E顺序进栈一次,进栈后可立即出栈,也可在栈中停留一段时间后再出栈,则不能得到( )序列。(A)A,B,C,D,E(B)B,A,E,D,C(C)C,B,A,D,E(D)D,C,A,B,E4、平均排序效率最好的排序方法是( )。(A)直接插入排序(B)快速排序(C)简单选择排序(D)冒泡排序5、某链表中最常用的操作是在已知的一个结点之前插入一个新结点和删除其之前一个结点,则采用( )存储方式最节省运算时间。(A)双向链表(B)带头结点的单向链表(C)带尾指针的单向链表(D)单向循环链表6、在逻辑结构不变的情况下,不是导致一个图的遍历序列不唯一的因素是( )。

14、/?(A)出发点不同(B)存储(物理)结构不同(C)遍历方法不同(D)画法不同7、散列函数有一个共同的要求,即函数值应当尽量以( )取其值域的每个值。(A)最大概率(B)最小概率(C)正态分布概率(D)均等概率8、下面( )方法可以判断出一个图中是否存在环(回路)。/?(A)排序(B)深度和广度遍历(C)求最短路径(D)求关键路径9、最佳二叉搜索(排序)树是( )。(A)关键码个数最小的二叉搜索树(B)退化为线性的二叉搜索树(C)搜索中平均比较次数最小的二叉搜索树(D)任何结点的度数为0或2的二叉搜索树10、( )是数据的基本单位,即数据集合(对象)中的个体(A)数据结构(B)数据项(C)数据

15、元素(D)数据对象11、(线性)表是一个( )。(A)有限序列,可以为空(B)有限序列,不能为空(C)无限序列,可以为空(D)无限序列,不能为空12、树是结点的集合,它( )根结点。(A)有0个或1个(B)有0个或多个(C)有且只有1个(D)有1个或1个以上二、填空题(本大题共7小题,每空2分,共16分)请将答案写在答题纸相应的位置上。13、在有n个顶点的有向图中,每个顶点的度最大可达_。14、以下程序段的时间复杂度是_。 i=0; j=0; while(i+jj) j+; else i+; 15、下图所示的二叉树后序遍历的结果是_。 A / B F / E C G / / D H J / I

16、16、在一个双向链表中p所指结点之前插入一个由指针s所指的新结点,写出可执行的操作序列:_。(前指和后指的指针预分别为prior和next)17、(线性)表有两种存储结构:顺序存储结构和链式存储结构,请就这两种存储结构完成下列填充:_存储密度较大,可以随机存取;_不可以随机存取,插入和删除操作比较方便。18、递归的程序执行时使用_来保存各层递归调用时的现场信息,以保证可以正确返回。19、设数组aM(M为最大空间个数)作为循环队列Q的存储空间,front为队头指针(指向第一个存放数据的位置),rear为队尾指针(指向最后一个存放数据位置的下一个),则判定Q队列的队满条件是_。三、应用题(本大题共

17、4小题,每小题10分,共40分)请将答案写在答题纸相应的位置上。20、设字符集D=A,B,C,D,E,各字符使用频率W=10,2,5,6,4。画出对字符进行哈夫曼编码时所对应的哈夫曼树,并给出各字符的编码。21、用普里姆(Prim)算法从右图中的顶点1开始逐步构造最小支撑(代价生成)树,要求画出构造的每一步。 16 5 21 19 14 9 26 11 6 1822、给定待排序关键字集合为23,14,48,25,5,19,按关键字非递归递减(从小到大)排序,写出采用冒泡排序的每一趟(最外层循环的每一次)排序结果。23、(1)图示表示右边有向图的邻接表。(4分) (2)写出从顶点1开始分别进行深

18、度优先和广度优先遍历的顶点序列各一种。(6分) 四、算法设计题(本大题共2小题,每小题10分,共20分)请将答案写在答题纸相应的位置上。24、假定用一个有头结点循环链表来存储一个有序的线性表,线性表从头到尾为非递减(从小到大)有序(如下图)。用指针current从head开始搜索数据域等于key的元素在线性表中位置,如果搜索成功则current指向搜索到的结点,函数返回该指针;如果搜索不成功,函数返回空指针NULL。请在函数SortedlistLocate(head,ky)内填空,完成下列算法以实现这种搜索,并使得搜索不成功的平均比较次数小于链表长度。 head 10 20 30 40 50 60 current typedef struct node elemtype data; /数据域 struct node *next; /指针域 lnode,*linklist; linklist SortedlistLocate(linklist head,elemtype key) linklist current; if(_) return ERROR; /错误提示 current=_; whil

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

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