2006年上海市高等学校计算机等级考试试卷
二级(C程序设计)
(本试卷答卷时间为120分钟)
试题一(28分,每小题4分)
解答下列各小题,把解答写在答卷纸的对应栏内。
⑴设有int x=3,y=2,z=1;分别写出下面表达式求值后变量x和y的值。
(注:对每小题求值时,变量的初值都为x=3,y=2,z=1)
① y=(y=3,2*x++) ②(x=5)||(y=6*x)
⑵写出下列程序的输出结果。
#include <>
void main()
{ int n; float x=;
n=100*x;
x=(int)(x*100+)/;
printf(“n=%d\n”,n);
printf(“x=%f\n”,x);
}
⑶写出变量x的绝对值小于20为真的C语言表达式。
⑷描述学生信息的结构变量定义为:
struct student
{ int no; /* 学号*/
char *name; /* 姓名*/
char sex; /* 性别*/
struct /* 出生年月*/
{ int year;
int month;
int day;
} birthdate;
};
struct student s;
写出能完成结构体变量s的部分成员赋值,使姓名为”Li_ping”,出生年份为1985的C语句。
⑸在C语言中,函数random (int num) 的功能是生成一个0到(num-1)之间的随机整数,经过下列赋值语句的执行后,m和x的取值范围是多少?
int m;
float x;
m=50 + random(50);
x= m + random(100)/;
⑹用文字描述以下程序所完成的功能:
#include <>
void main()
{ FILE *in, *out;
char ch;
in=fopen(“”,”r”);
out=fopen(“”,”w”);
while(!eof(in)) /* 函数ferof()用来检测是否到达文件尾*/
/* 如到达文件尾返回非0,否则返回0 */
{ ch=fgetc(in);
Fputc(ch);
}
fclose(in);
fclose(out);
}
8
4
3
data next
head ……
p
q
⑺假定建立了以下链表结构,如下图所示:指针p、q分别指向如图所示的结点,写出将q所指结点从链表中删除并释放该结点的C程序段。
试题二(12分,每小题6分)
阅读下列程序,把程序的输出结果写在答卷纸的对应栏内。
⑴【】
#include <>
void main() {
{
int x=0, y=0, z;
while(y<6) x+=++y;
printf(“output1:%d %d\n”,x,y);
for(y=1;y<6;y++) x=y;
printf(“output2:%d %d\n”,x,y);
for(y=1;y<6;)
{ x=y++;
z=++y;
2007年上海二级考题 来自淘豆网www.taodocs.com转载请标明出处.