上海市计算二级考试及资料.docVIP

  • 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)

1亿VIP精品文档

相关文档