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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉大学计算机学院

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

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

姓名:学号:专业:

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

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

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

#include

int main( )

{ int n;

scanf("%d",&n);

if(n++<10)

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

else

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

return 0;

}

A、8

B、9

C、10

D、11

()2、表达式0156637&~0777的结果是____________。

A、0156000

B、156000

C、0637

D、637

()3、假设有如下定义:int m=1,n=1; 则执行表达式(m=’5’<’3’)&&(n=’7’>’9’)后,m和n的值分别是_____________________。

A、1和1

B、1和0

C、0和1

D、0和0

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

A、5.5

B、5

C、1.5

D、1

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

#define BOOK(x) 8-x

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

后,变量v的值为。

A、-12

B、0

C、24

D、44

()6、设有如下定义:

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

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

A、a[0][3]

B、&a[0][3]

C、a[3][0]

D、&a[3][0]

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

static char *a=”h\te\nY\0W\0o\b”;

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

A、15

B、10

C、7

D、5

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

int a=1,b=2,c=3,u,v;

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

u = a ? b : c;

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

A、3和3

B、3和4

C、2和3

D、2和4

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

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

#include

int main()

{ int i;

for(i=1;i<=6;i++)

switch (i%5)

{ case 0: printf(“*”);break;

case 1: printf(“#”);break;

default: printf(“\n”);

case 2: printf(“&”);

}

return 0;

}

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

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

例如,输入数组a为{8,1,6,3,4,5,2,7,0,9},执行下面程序后,数组a为

{0,9,2,7,4,5,6,3,8,1}。

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

#include

int main()

{ (1) a[10],n;

int i,j,t;

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

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

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

for(j= (3) ;j<10; (4) )

{ if( (5) )

{ t=a[i]; a[i]=a[j]; a[j]=t; }

if( (6) )

{ t=a[i+1]; a[i+1]=a[j+1]; a[j+1]=t;}

}

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

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

return 0;

}

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

改意见。(共4个错误)

/*输入多个整数,以0作为结束标记,将这些整数存入到Exam.dat文件中*/ /*然后将这些数据从Exam.dat文件中读出来,显示到显示器上*/

#include

#include

int main()

{

File *fp;

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

{ printf("open file error!");

exit(1);

}

do

{ scanf("%d", p);

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

}while(p!=0);

fclose(fp);

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

{ printf("open file error!");

exit(1);

}

do

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

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

}while(p!=0);

fclose(fp);

return (0);

}

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

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

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

#include

int main()

{ short int a,b;

a=-32768;

b=a-3;

pr intf("a=%d,b=%d\n",a,b);

}

运行结果:

相关文档
最新文档