- 5
- 0
- 约 7页
- 2016-12-02 发布于贵州
- 举报
上海市计算二级考试及资料
2004年上海市高等学校计算机等级考试试卷
二级 (C程序设计)
(本试卷答卷时间为120分钟)
试题一(28分,每小题4分)
⑴ 假设对n(n0)个学生按下列方法进行分班:每班k(k0)个学生,最后一个班若不足k人也单独编成一个班。试用C语言中的条件表达式表示所编班级个数。
⑵ 设有变量定义:
struct rec {
int x;
int y;
} s[]={{4,28},{9,36}}, *p=s;
计算表达式 (p-y/p-x*s[1].x+s[1].y)的值。
⑶ 写出下列程序的输出结果。
#include stdio.h
void main() {
char s[]=”2473”, c, i;
for(i=0;c=s[i];i++) {
switch(c-‘0’) {
case 2:
case 3: putchar(c+4); continue;
case 4: putchar(c+4); break;
case 5: putchar(c+3);
default: putchar(c+2);
}
putchar(‘\n’);
}
}
⑷ 分别写出下列4个指针变量p1,p2,p3,p4的含义。
int *p1,p2[5],(*p3)(),(*p4)[5];
⑸ 写出程序的输出结果(假定类型unsigned int 的字长为16位)。
#include stdio.h
void main() {
unsigned int u1=0x958,u2,u3;
u2=(u1 0xff)4;
u3=(u1 0xff00) 4;
printf(“%x %x %x\n”,u2,u3,u2/u3);
}
⑹ 阅读如下程序段,把其中的switch语句改写成等价的条件语句。
int x,y;
scanf(“%d”,x);
switch(x!=0) {
case 0: y=0; break;
case 1: switch(x0) {
case 1: y=1; break;
case 0: y=-1;
}
}
⑺ 描述函数conv()的功能,并写出下列程序的输出结果。
void conv(int m) {
if(m=2)
conv(m/2);
printf(“%d”,m%2);
}
voia main() {
conv(13);
}
试题二(12分,每小题6分)
阅读下列程序并回答问题。
⑴ 【程序2.1】
#include stdio.h
void sort(int a[], int n) {
int i, j, t;
for(i=0; in-1; i++)
for(j=i+1; jn; j++)
if(a[i]a[j]; t=a[i],a[i]=a[j],a[j]=t;
}
void delsame(int x[], int n) {
int i, j, m=n;
for(i=0; im; i++){
while(x[i]==x[i+1]) {
for(j=i; jm; j++)
x[j]=x[j+1];
m--;
}
}
return m;
}
void main() {
int x[]={74,4,35,4,65,65,72,74,35},i, m, n;
n=sizeof(x)/sizeof(x[0]);
sort(x,n);
m=delsame(x,n);
for(i=0; im; i++) printf(“%3d”,x[i]);
printf(“\n”);
}
(a) 函数sort()的功能是什么? (b) 函数delsame()的功能是什么? (c) 程序的输出是什么?
⑵ 【程序2.2】
#include stdio.h
#define M 4
void main( ) {
int i, j, k, m, a[4];
printf(“Enter 4 numbers: “);
for(i=0; iM; i++) scanf(“%d”,a[i]);
for(i=M; i0; i--) {
k=[M-1];
for(j=M-1; j0; j--)
a[j]=a[j-1];
原创力文档

文档评论(0)