2007_08_1_“程序设计II”试卷(计算机专业)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
诚信应考考出水平考出风格Array浙江大学城市学院
2007 — 2008 学年第一学期期末考试试卷
《程序设计Ⅱ》
开课单位:计算分院;考试形式:闭卷;考试时间:_2008__年_ 1 _月_8_日;
所需时间: 120 分钟
注:请在答题卷上答题。
一、程序阅读题(本大题共4题11小题,每小题3分,共33分)
1.(共3小题,每小题3分,共9分)
阅读下列程序并回答问题。
【程序】
#include <stdio.h>
void main()
{ int i, n, sum=0;
scanf(“%d”, &n);
for(i=1; i<=n; i++)
{
if(i%2= =0) /*第7行*/
sum++; /*第8行*/
}
printf(“%d\n”, sum);
}
(1) 程序运行时,输入10,输出。
(2) 将第7、8行改为:
if(i%2= =0) break;
sum++;
程序运行时输入10,输出。
(3) 将第7、8行改为:
if(i%2= =0) continue;
sum++;
程序运行时输入10,输出。
2.(共3小题,每小题3分,共9分)
阅读下列程序并回答问题。
【程序】
#include<stdio.h>
void main()
{ int i, j, k=0, m=0;
for(i=0; i<2; i++)
{
; /* 第6行*/
for(j=0; j<3; j++)
k++;
m++; /* 第9行*/
}
printf(“k=%d, m=%d\n”, k, m);
}
(4)程序的输出是。
(5)将第9行改为“ m=m+k; ”,程序的输出是。
(6) 将第6行改为“k=0; ” ,将第9行改为“ m=m+k; ”,程序的输出是。
3.(共3小题,每小题3分,共9分)
阅读下列程序并回答问题。
【程序】
#include <stdio.h>
#define T(a,b) a+b
int f(int n);
void main()
{ int n, y;
for(n=1; n<=3; n++) y=f(n); /*第6行*/
printf(“%d\n”, y);
}
int f(int n)
{ static int k=1;
k=k+n;
return k;
}
(7) 程序运行时,输出。
(8) 将第6行改为:“y=f(4);”,将函数f改为:
int f(int n)
{
if(n<=1) return n;
else return f(n-1)+n;
}
程序运行时,输出。
(9) 将第6行改为:“y=f(5);”,将函数f改为:
int f(int n)
{
return T(n,n+1)*2;
}
程序运行时,输出。
4.(共2小题,每小题3分,共6分)
阅读下列程序并回答问题。
【程序】
#include <stdio.h>
void splitfloat(float x, int *intpart, float *fracpart)
{
*intpart=(int)x;
*fracpart=x-*intpart;
}
void main()
{
int n=0;
float x,f;
printf("Enter a float point numbers:\n");
scanf("%f",&x);
splitfloat(x,&n,&f);
printf("%d, %.4f",n,f);
}
(10) 程序运行时,输入12.4567,输出结果是。
(11) 将程序改为:
#include <stdio.h>
void splitfloat(float x, int intpart, float *fracpart)
{
intpart=(int)x;
*fracpart=x-intpart;
}
void main()
{
int n=0;
float x,f;
printf("Enter a float point numbers:\n");
scanf("%f",&x);
splitfloat(x,n,&f);
printf("%d, %.4f",n,f);
}
程序运行时,输入12.4567,输出结果是。
二、程序选择填空题(共3题9小题,每小题3分,共 27 分)
1.(每小题3分,共9分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
下面的程序计算函数SunFun(n)=f(0)+f(1)+…+f(n)的值,其中f(x)=x3+1。
【程序】
#include<stdio.h>
int SunFun(int n);
int f( int x);
void main()
{
printf("The sum=%d\n",SunFun(10));
}
int SunFun(int n)
{
int x, (1) ;
for(x=0;x<=n;x++)
____(2)______;
return s;
}
int f( int x)
{ return (3) ;}
【供选择的答案】
(1) A、s=0 B、s
C、s=1
D、s=x
(2) A、s+=f(x) B、s+=f
C、s+=f(x*x*x)
D、s+=f(x)+1
(3) A、x*x*x+1 B、x3+1
C、x
D、f(x)
2.(每小题3分,共9分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】下列程序运行时将打印出如下结果:
Li ming : 18
Hang kai : 20
Fang ke : 19
【程序】
#include <stdio.h>
#define NULL 0
struct person
{ char *name;
int age;
struct person *next;
};
void main()
{ struct person a,b,c,d,*head,*s;
="Li ming"; a.age=18;
="Hang kai"; b.age=20;
="Liu fei"; c.age=17;
="Fang ke"; d.age=19;
head=&a;
a.next=____(4)_____ ;
b.next=____(5)_____;
d.next=NULL;
s=head;
do{
printf("%s:%d \n",s->name,s->age);
s=s->next;
}while(____(6)_____);
}
【供选择的答案】
(4)A、&b B、 b C、@b D、b++
(5)A、 b B、&b C、&d D、d++
(6)A、s= =NULL B、s!=NULL
C、s->next= =NULL
D、s->next!=NULL
3.(每小题3分,共9分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
下列程序运行时,先输入一个文本文件的文件名(不超过20个字符),然后输出该文件中除了0~9数字字符之外的所有字符。
【程序】
#include <stdio.h>
#include <stdlib.h>
void main()
{ FILE *f1;
char ch,[20];
gets() ;
if((f1=fopen(, ____(7)_____))= =NULL) {
printf("%s 不能打开!\n",);
exit(0);
}
while(____(8)_____){
____(9)_____;
if(ch<'0' || ch>'9')
printf(“%c”,ch);
}
fclose(f1);
}
【供选择的答案】
(7)A、"rb" B、"r" C、"w" D、"wb"
(8)A、EOF(f1) B、!EOF(f1) C、feof(f1) D、!feof(f1)
(9)A、ch=fgetc(f1) B、fgetc(ch,f1)
C、fgetc(f1,ch)
D、fgetc(&ch,f1)
三、程序设计题(共4题,每题10分,共 40 分)
1.编写程序,输入一个双精度数x,计算并输出下列分段函数f(x) 的值(保留3位小数)。
可调用数学函数(平方根函数是sqrt)
(x+1)2 + 2x + 1/x x<0
f(x) = 0 x=0
x x>0
2.编写程序,先输入一个字符串(长度小于20),再输入一个字符,统计并输出该字符在字符串中出现的个数。
3.编写程序,先输入一个整数n(n<5),再输入一个n*n的整数矩阵,查找并输出此矩阵中的最大值(假设只有一个最大值),以及最大值所在的行列下标。
4.编写程序,从键盘上输入10个整数。
(1)按从大到小的顺序排序后输出。
(2)按从大到小的顺序排序后输出,同时输出每个数字原来的输入序号。
如输入30 43 67 89 13 90 65 76 58 33
则输出:
90 6
89 4
76 8
67 3
65 7
58 9
43 2
33 10
30 1
13 5
诚信应考 考出水平 考出风格 浙江大学城市学院 2007 — 2008 学年第 一 学期期末考试答题卷 《 程序设计Ⅱ 》 开课单位: 计算学院 ;考试形式:闭卷;考试时间:_2008__年_1_月_8_日; 所需时间: 120 分钟
一. 程序阅读题 (本大题共4题11小题,每小题3分,共33分) 把程序的运行结果填入相应的题号中。
二. 程序填空题 (本大题共3题9小题,每小题3分,共 27 分) 把正确的选择项填入相应的题号中。
(本大题共4题,每题10分,共 40 分) 1.
2.
3.
4.
(1)(2)。