2013高级程序设计语言(B卷)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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