上海市高等学校计算机等级考试试卷二级C语言程序设计A卷

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

二级 C语言程序设计( A 卷)

(本试卷考试时间 120 分钟)

一、单选题 ( 本大题 10 道小题,每小题 1 分,共 10 分),从下面题目给出的A、B、

C、D四个可供选择的答案中选择一个正确答案。

1.在一个C 语言源程序中,main()函数的位置_________。答案:C

A.必须在最前面

B.必须在其它函数之前

C.可以在任意位置

D.必须在最后面

2. 设有变量定义:int a[ ]={5, 6, 1, 3, 7}, c, i;

当执行完语句:

for(i=c=0; i<5; i++)

{ if(a[i]%3 = =0)

continue;

c++;

}

之后,c的值是_____。

答案:C

A.1

B.2

C.3

D.4

3.以下程序运行结果为_______

#define PII 3

#define S(x) PII*x*x

main()

{ int a=1, b=2, c;

c = a+b;

printf("%d\n",S(c));

}

答案:B

A.9

B.27

C.7

D.10

4.若有变量定义:int a[4], *p=a; 则以下对数组a的元素不正确的引用是_____。答案:D

A.*a

B.*(p+1)

C.p[1]

D.a[4]

5.设有变量定义:int d[50], *p=&d[0]; 下面表达式中________的计算结果为int类型的数值(非地址)。答案:D

A.p+=1

B.p++

C.&d[2]

D.p-d

6.为了判断两个字符串s1和s2是否相等,应当使用_____。答案:D

A.if (s1==s2 )

B.if (s1 = s2 )

C.if ( strcpy (s1,s2 ) )

D.if ( strcmp( s1,s2) == 0 )

7.设有变量定义int n; char str[80];与函数调用:n=hex2dec(str);则函数hex2dec正确的函数说明应该是_______。答案:A

A.int hex2dec(char str[]);

B.void hex2dec(char str[]);

C.int hex2dec(char str);

D.void hex2dec(char str);

8.设有以下结构体定义及初始化,表达式(stu[0].score+stu[1].score)/2的结果是_______。

struct student

{

int num;

float score;

} stu[2]={90,91.5,93,92.5};

答案:C

A.91.0

B.91.5

C.92.0

D.92.5

9.在C语言中,将文件内部的位置指针重新指向一个流(数据流/文件)的开头的库函数是_______。答案:B

A.fgetc

B.rewind

C.fscanf

D.fread

10. 若建立了以下链表结构,head,p,q是指向结点的指针,以下_____组语句的功能是输出如下图所示的中间结点(数据为E的结点)的数据项。

答案:B

A.q = p; printf("%c",q->data);

B.q = p->next; printf("%c",q->data);

C.q = p; printf("%c",q);

D.q = p->next; printf("%c",q);

二、程序填空题 ( 本大题 2 道小题,每空 2.5 分,共 20 分)。

1. 程序完成以下功能:对x=1,2,...,10,求函数f(x)=x-10cos(x)-5sin(x)的最大值,并将该值写到新建文件data.txt中。

#include

#include

void main()

{ FILE *p;

float f(float),max,x;

if((p=fopen("___1____ ","w"))==NULL)

{ printf("cannot open FILE\n"); exit(0); }

max=f(1);

for(x=2;x<=10;x++)

if(___2____

max=f(x);

fprintf(p,"%.3f",max);

fclose(___3____);

}

float f(float x)

{ ___4____;

y=x-10*cos(x)-5*sin(x);

return y;

}

1):【data.txt】

2):【max】

3):【p】

4):【double y】【float y】

2. 在输入的字符串中删除小写字母t,并统计被删除字母的个数。如输入:gt=5xt-6ty 则输出:删除后的串为:g=5x-6y 删除个数:3 #include

#include

int f(char s[])

{

int i=0, ___1____;

while(s[i]!='\0')

if(___2___ == 't')

{

strcpy(s+i,s+i+1);

c=c+1;

}

else

i++;

___3____;

}

void main()

{ int s;

char str[80];

gets(str);

s=f(___4____);

printf("删除后的串为:") ;

puts(str);

printf("删除个数:%d",s) ;

}

相关文档
最新文档