上海计算机二级 真题,2001年上海计算机二级C题目含答案.doc

2001年上海高等学校计算机等级考试试卷

二级 (C语言)

(本试卷答题时间为120分钟)

试题一(28分,每小题4分)

试写出下列数学表达式的C语言表达式

设有如下程序段:

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)# include

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)# include

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

求3×4矩阵中的最大元素及其所在行和列的位置。数组元素可能有大于0,等于0或小于0的值。程序中有三行错,请纠正。

# include

# define M 3

# define N 4

main()

{ int a[M][N],max,i,j;

int row,column;

for(i=0;i

for(j=0;j

scanf(“\d”,a[i][j]);

max=0;

for(i=0;i

for(j=0;j

if(max

{ max=a[i][j];row=i;column=j; }

printf(“\nmax=%d,row=%d,column=%d”,max,row,column);

}

本题主函数main()调用aver()函数用来统计某数组中值大于0和小于0的元素个数(等于0的元素个数不统计)。并求数组中所有元素的平均值。平均值通过函数返回,其余两个统计结果通过形式参数的方法返回。程序中三行有错,请纠正。

# include

main()

{ double aver(int [],int,int*,int*);

int c1,c2,x[ ]={0,12,33,-9,-5,27,80,0,54,-63};

double av;

av=aver(x,10,c1,c2);

printf(”\nc1=%d,c2=%d,aver=%f”,c1,c2,av);

}

double aver(int a[ ],int n,int *p1,int *p2)

{ int i;

double sum=0;

*p1=*p2=0;

for(i=0;i

{ sum=sum+a[i];

if(a[i]>0) (*p1)++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值