2001年上海高等学校计算机等级考试试卷 二级(C语言) (本试卷答卷.docVIP

  • 54
  • 0
  • 约5.46千字
  • 约 8页
  • 2018-01-06 发布于浙江
  • 举报

2001年上海高等学校计算机等级考试试卷 二级(C语言) (本试卷答卷.doc

2001年上海高等学校计算机等级考试试卷 二级(C语言) (本试卷答卷

2001年上海高等学校计算机等级考试试卷 二级(C语言) (本试卷答卷时间为120分钟) 试题一(28分,每小题4分) 解答下列各小题,把正确的解答写在答卷纸的对应栏内。 (1)试写出下列数学表达式的C语言表达式 (2)设有如下程序段: int a=2,b=5,c; c=21%9/(float)a+4/b*b; printf(“%d\n”,c); 试写出其输出结果。 (3)设有如下程序段: int a=0,b=0,c=0,x; x=(a=50)(b=0)(c=100); printf(“%d,%d,%d,%d\n”,x,a,b,c); 试写出其输出结果。 (4)设有如下程序段: int a=-1; printf(“%d,%u,%x,%o\n”,a,a,a,a); 试写出其输出结果。 (5)试写出 printf(“\n%d\t%d”,(5^2),(5^2)); 的输出结果。 (6)设有如下程序段: int a[][5]={1,2,3,4,5,6,7,8,9,10}; int (*p)[5]=a; printf(“%d\n”,*(p[1]+3)); 试写出其输出结果。 (7)设有如下定义: FILE *fp1,*fp2; 假定fp1和fp2已正确指向它们要操作的文本文件,试描述执行语句 fputc(fgetc(fp1),fp2); 的含义。 试题二(12分,每小题6分) 读程序。把程序的输出结果写在答卷纸的对应栏内。 (1) [程序2.1] #include “stdio.h” main() { int a[]={0,10,20,30,40,50,60}; int x=5,*p; p=a+2; x+=*(p++); printf(“\nx=%d”,x); x-=(*p)++; printf(“\nx=%d”,x); x*=*(++p); printf(“\nx=%d”,x); x/=++(*p); printf(“\nx=%d”,x); } (2) [程序2.2] #include “stdio.h” main() { int test(int); printf(“\ns=%d”,test(10)); printf(“\ns=%d”,test(10)); printf(“\ns=%d”,test(10)); } int test(int n) { static int x=100; int s,y=100; x=2*x; y=2*y; s=n+x+y; return s; } 试题三(12分,每小题6分) 改错。下列程序中都有三个错误,按原来程序的要求,纠正错误,并以“将第?行改为XXX”的形式解答,代码左边的“#1”、“#2”、…是附加的行号。 (1)程序3.1求3×4矩阵中的最大元素及其所在行和列的位置。数组元素可能有大于0,等于0或小于0的值。程序中三行有错,请纠正。 [程序3.1] #1 #include “stdio.h” #2 #define M 3 #3 #define N 4 #4 main() #5 { int a[M][N],max,i,j; #6 int row,column; #7 for(i=0;iM;i++) #8 for(j=0;jN;j++) #9 scanf(“%d”,a[i][j]); #10 max=0; #11 for(i=0;iM;i++) #12 for(j=0;jN;j++) #13 if(maxa[i][j]) #14 { max=a[i][j]; row=i; column=j; } #15 printf(“\nmax=%d,row=%d,column=%d”,max,row,column); #16 } (2)程序3.2中的主函数main()调用aver()函数,用来统计某数组中值大于0和小于0的元素个数(等于0的元素个数不统计)。并求数组中所有元素的平均值。平均值通过函数返回,其余两个统计结果通过形式参数的方法返回。程序中三行有错,请纠正。 [程序3.2] #1 #include “stdio.h” #2 main() #3 { double aver(int[],int,int*

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档