《高级语言程序设计》期末考试试卷_第1页
《高级语言程序设计》期末考试试卷_第2页
《高级语言程序设计》期末考试试卷_第3页
《高级语言程序设计》期末考试试卷_第4页
《高级语言程序设计》期末考试试卷_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉大学计算机学院

2006-2007学年度第2学期2006级

《高级语言程序设计》期末考试试卷A卷

姓名:学号:专业:

说明:开卷考战:答案请全部写在答题纸上,写在试卷上无效。

未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。

题号—•二三四五总分

总分1624153C15100

一.单项选择题:(选择最合适的答案填空,每小题2分,共16分)

()1、在执行以下程序时,从键盘上输入9,则该程序输出结果是o

#includc<stdio.h>

in(main()

{intn;

scanf(',%d,,.&n);

if(n++<10)

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

else

printf("%d\nu,n-);

retiirn0;

)

A、8B、9C、10D、11

()2、表达式0156637&〜0777的结果是°

A、0156000B、156000C、0637D、637

()3、假设有如下定义:irnm=l,n=l;则执行表达式(m='5y、3')&&(n='7>9')后,

m和n的值分别是o

A、1和1B、1和0C、0和1D、0和0

()4、表达式-11%3+7/2的结果是o

A、5.5B、5C、1.5D、1

()5、设有如下宏定义:

#defineBOOK(x)8-x

则执行赋值语句v=BOOK(2)*BOOK(4);/*v为int型变量*/

后,变量v的值为一O

A、-12B、0C、24D、44

()6、设有如下定义:

inta[6][4];int(*p)[4];p=a;

则与表达式*p+3等价的选项是o

A、a[0][3]B、&a[0][3]C、a[3][0]D、&a[3][0]

()7、假设有以下定义:

staticchar*a=,,h\te\nY\OW\Oo\b,*;

则表达式strlen(a)的结果为。

A、15B、10C、7D、5

()8、假设有如下定义:

inta=l,b=2,c=3,u,v;

执行下面语句组后,整型变量u和v的值分别为o

u=a?b:c;

v=(a=2)?b+a:c+a;

A、3和3B、3和4C、2和3D、2和4

二.程序阅读与分析(等小题X分,共24分)

9、分析下面程序执行流程,指出程序执行结果。

#include<stdio.h>

intmain()

{inti;

fbr(i=l;i<=6;i++)

switch(i%5)

{case0:primf("*");break;

case1:prints铲);break;

default:printfTW");

case2:printfC'&");

)

return0;

)

10、下面程序完成的功能如下:输入一个由10个整数组成的数组a,将该数组下

标值为偶数的元素由小到大排序,将下标值为奇数的元素由大到小排序。

例如,输入数组a为{8,1,6,345,270,9},执行下面程序后,数组a为

{0,9,2,7,4,5,6,3,8.11o

请在空白处填写合适内容以正确完成整个程序。

#include<stdio.h>

intmain()

{⑴a[10],n;

int

for(i=0;i<10;i++)

scanf('%d",(2));

for(i=0;i<7;i+=2)

foKi=(3);i<i0;(4))

{if(⑸)

{t=afil;a[il=a[jl;afj]=t;}

if((6))

{t=a[i+1];a[i+l]=aU+l];a[j+l]=t;)

)

for(i=0;(7);i++)

printf(',%d\t,\(8));

return0;

I

11、分析以下程序执行流程,请指明错误之处,并简要说明错误原因,并给出修

改意见。(共4个错误)

/*输入多个整数,以。作为结束标记,将这些整数存入到Exam.dat文件中*/

/*然后将这些数据从Exam.dal文件中读出来,显示到显示器上*/

#include<stdio.h>

#include<stdlib.h>

intmainO

(

File*fp;

if((fp=fopenCExam.dal","w"))==NULL)

{printf("openfileerror!");

exit(l);

I

do

{scanf("%d;p);

fprinlf(fp,”%d”,p);

}whilc(p!=0);

fclose(fp);

if((fp=fopen(',Exam.dat,,,"rH))==NULL)

{printf("openfileerror!");

exit(l);

}

do

{fscanf(fp,"%d",p);

printf(H%6d\t",p);

)while(p!=0);

fclose(fp);

return(0);

三.程序测试与分析(每小题5分,共15分)

12、以下程序计算・32768-3,执行以下程序,得到如下所示的运行结果,请分析结

果为什么不是-32771?并指出该如何修改。

#include<stdio.h>

intmain()

{shortinta,b;

a=-32768;

b二a-3;

printf(,,a=%d,b=%d\n〃,a,b);

)

运行结果:

a=-32768,b=32765

13、上机调试下面的程序,在编译过程提示有如下语法错误"I。。manyarguments

tofunctioninmax[int,int)”。分析下面程序,说明出现上述语法错误的原因。

并指出用下划线标注的语句的作用是什么?

#include<stdio.h>

#defineMAX

#ifdcfMAX

intmax(intx,inty)

{return(x>y)?x:y;

)

#else

intmax(intx,inty,intz)

{intk;

k=x>y?x:y;

return(z>k)?z:k;

}

#endif

intmain()

{inta,b,c;

scanfft%d%d%d,,,&a,&b,&c);

printf(tkmax=%d\n,,,max(a,b,c));

return0;

)

14、下面的函数的功能是从一个整数组成的单链表中删除指定整数n的节点。

#include<stdio.h>

#include<stdlib.h>

structnode)

intdata;

structnode*nexl;

I;

intdeletelink(structnode*phead,intn)

{structnode*p,*q;

p=phead:

while(p->data!=n&&p->next!=NULL)

(q二P;

p=p->next;}

if(p->data==n)/*找到*/

{if(p==phead)/*被删除的结点是链头*/

phead=p->next;

else/*被删除的结点不是链头*/

q->next=p->next;

free(p);

return(I);}

else

return(0);

)

假设有下图所示的单链表:

现在要求从上图所示的单链表中删除数据值等于3的节点,通过执行函数调

用deleielink(head.3)来完成该删除操作。但是函数调用结束后,该链表仍然

和上图一样,整数3并没有从链表中删除,请分析出错的原因,并给出修改

意见。

(提示:被删除的节点是单链表中的第一个节点。)

四.程序实现题(每小题15分,共30分)

15、下面程序完成的功能如下:输入一个整数,要求按原来的规律将它插入一个已

经排好序的数组中。分析该程序的执行流程,写出该程序的流程图。

#include<stdio.h>

intmain()

{inta[ll]={l,4,6,9,13,16,19,28,40,100};

inttempl,temp2,number,end,i,j;

printf("originalarrayis:\n");

for(i=0;i<10;i++)

printf(H%5d",a[i]);

printf("\n");

printf("insertanewnumber:");

scanf("%d",&number);

end=a[9J;

if(nunibcr>end)

a[101=number;

else

{for(i=0;i<10;i-H-)

{if(a[il>number)

{templ=a[ij;

a[i]=numbcr;

for(j=i+l;j<ll;j++)

{temp2=a[j];

a[j]=templ;

templ=temp2;

)

break;

)

}

for(i=0;i<ll;i++)

printf("%6d,;a[i]);

return0;

}

16、设计一个函数count(s,t);其中s为字符串,t单个字符。如果t为大小写字母,

则函数count统计字符串s中I对应的字母(大小写字母均统计在内)出现的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论