问题 选择题

湖水中盐分含量的变化可以反映湖泊水位和气候的变化。图13是青海湖近l.2万年以来盐分含量的变化。据此完成小题。

图13

小题1:青海湖近1.2万年来,最低水位出现的时间距今约( )

A.3900年

B.6500年

C.8100年

D.1万年小题2:在距今7500~5000年间,青海湖水位变化特征是( )

A.逐渐

B.波动

C.基本小

D.波动上升小题3:与其它阶段相比,湖水盐分含量最低时期的气候特征可能是(  )

A.冷干

B.温干

C.温湿

D.热干

答案

小题1:C

小题2:D

小题3:C

题目分析:

小题1:结合图示,湖泊的水位越低,则湖泊盐度越高,图示湖泊盐度最高约在距今8000年。

小题2:注意时间变化,0点位置为现在,故图示的横坐标应从7500向5000年方向看,故湖泊盐度波动变小,判断湖泊水位波动上升。

小题3:湖泊盐度越低,则反映湖泊水位越高,故反映气候较湿润。

点评:本题有一定难度,解题的关键是掌握湖泊盐度与水位之间的负相关关系,且注意横坐标的时间变化方向。

问答题

已知检查括号匹配及注释、字符串处理的C源程序如下:

#include<stdio.h>

int brace,brack,paren;

void in_quote(int c);

void in_comment(void);

void search(int c);

/*rudimentary syntax checKer for C program*/

int main()

int c;

extern int brace,brack,paren;

while((c=getchar())!=EOF)

if(c==’/’)

if((c=getchar())==’*’)

in_comment(); /*inside comment*/

else

search(C) ;

else if(c==’\"||c=="")

in_quote(c); /*inside quote*/

else

search(c);

if(brace<0) /*output errors*/

printf("Unbalanced braces\n");

brace=0;

else if(brack<0)

printf("Unbalanced brackets\n");

brack=0;

else if(paren<0)

printf("Unbalanced parentheses\n");

paren=0;

if(brace>0) /*output errors*/

printf("Unbalanced braces\n");

if(brack>0)

printf("Unbalanced brackets\n");

if(paren>0)

printf("Unbalanced parentheses\n");

return 0;

/*search:search for rudimentary syntax errors*/

void search(int c)

extern int brace,brack,paren;

if(c==’’)

++brace;

else if(c==’’)

--brace;

else if(c==’[’)

++brack;

else if(c==’]’)

--brack;

else if(c==’(’)

++paren;

else if(c==’)’)

--paren;

/*in_comment:inside of a valid comment*/

void in_comment(void)

int c,d;

c=getchar();

d=getchar(); /*curr character*/

while(c!=’*’||d!=’/’) /*search for end*/

c=d;

d=getchar();

/*in_quote:inside quote*/

void in_quote(int c)

int d;

while((d=getchar())! =c) /*search end quote*/

if(d==’\\’)

getchar(); /*ignore escape seq*/

设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支覆盖率无法达到100%,需说明为什么。

判断题