2013高级程序设计语言(B卷)

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

_2013__年秋季学期考试科目:高级程序设计学院:信息科学与技术

试卷类型: B 卷命题人: 李华、李海涛审核人:________ _

考试说明:本课程为闭卷考试,共_4__页,只能携带考场规定的必需用品。

一、填空题(共10 题,每题 2 分,共 20 分)

1.假设变量a和b均为整型变量,以下语句可以不借助任何变量把a、b中的值进行

交换。a+=b; b=a-____; a-=____;

2. 若x为int型变量,则执行语句x=7; x+=x-=x+x; 后x的值是______。

3. 当a=3,b=2,c=1时,表达式f=a>b>c的值是______。

4. 设x,y,z均为int型变量,则描述“x或y中只有一个小于z”的表达式是_______。

5. 执行语句for(i=1;i++<4; ); 后变量i的值是_______。

6. 下面程序段的运行结果是__________.

int i=1,a=0,s=1;

do {a=a+s*i; s=-s; i++;}while(i<=10);

printf(“a=%d”,a);

7. 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为________ 。(假设a[0][0]位于数组的第0个位置上)

8. C语言规定,实参和对应形参之间的数据传递方式是__________ ,即形参值的变化不会影响实参。

9. 在定义变量时,变量名之前无存储类别说明则隐含为____________ 。

10.若有定义:int a[10][6]; 在程序中完全通过使用指针法引用数组元素a[i][j]的形式是:_______。(假设i、j已正确说明和赋值)

二、程序分析题:分析系列程序代码,给出简要功能描述,并给出程序输出结果(共

3题,每题10分,共30分)

1. 请分析下面程序的输出结果。

#include

void main()

{ int a,b;

for (a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{ b+=3;

continue;}

b-=5;

}

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

}

2. 请分析下面程序的输出结果。

#include

int START,LEN=0;

void process(char *str)

{ int i,begin=0,n=0;

char now,pre='\0';

for(i=0;(now=str[i])!='\0';i++)

{ if(now>pre) n++;

else

{ if(n>LEN) {START=begin;LEN=n;}

begin=i;

n=1;

}

pre=now;

}

if(n>LEN) {START=begin;LEN=n;}

}

void main()

{ char *string="computer";

int i;

process(string);

for(i=0;i

}

3. 若执行函数调用语句solve(4,3);后,试分析arr数组中前四个元素的值。int change(int n,int s,int c)

{return((n==0)?(s+c-1)%c:(n+s)%c);}

static int arr[10];

void solve(int man,int dis)

{ int i,j,temp,sum=0;

for(i=2;i<=man;i++)

{ sum+=i-1;

temp=sum;

for(j=0;j

{ arr[j]=change(arr[j],dis,i);

temp-=arr[j];

}

arr[i-1]=temp;}}

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

1、以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,

为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。请填空。

#include

int age(int n)

{int c;

if(n==1) c=10;

else c=___________;

return(c);

}

int main()

{int n=5;

printf(“age:%d\n”,___________);

return 0;

}

2、下面是直接插入排序程序。请将以下程序补充完整。

#include

int main()

{ void insert(int a[],int n);

int i,a[11];

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

scanf(“%d”,&a[i]);

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

(1) ;

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

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

printf(“\n”);

return 0;}

void insert(int a[],int n)

{int j;

___(2)____

for(j=n-1;a[j]>a[0];j--)

__(3)_____;

a[j+1]=a[0];

}

3、13个人围成一圈,从第一个人开始顺序报号1、2、3。凡报到3者退出圈子。打印出圈顺序。用数组实现的静态链表处理。请将程序补充完整。

#include

相关文档
最新文档