2010(秋)江苏省计算机二级C语言试题与答案(笔试)

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

二级试卷

试卷语种:C语言

一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)

21.以下关于C源程序的叙述中正确的是___(21)___ 。

A.注释只能出现在程序的开始位置或语句后面

B.一行中不能写多条语句

C.一条语句可以分写在多行中

D.一个源程序只能保存在一个文件中

22.C源程序中的命令#include与#define是在___(22)___阶段被处理的。

A.预处理

B.编译

C.连接

D.执行

23.以下语句中有语法错误的是___(23)___

A.printf("%d",0xAB);

B.printf("%f",3.45E2.5);

C.printf("%d",037);

D.printf("%c",'\\');

24.已有声明"int x=5,y;float z=2;",以下表达式中语法正确的是_____(24)____ 。

A.y=x%z

B.x>0?y=x:y=-x

C.y=x/2=z

D.y=x=z/2

25.已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码.若要求将c 中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是______(25)_____

A.c=tolower(c)

B.c=c+32

C.c=c-'A'+'a'

D.c=(c+'A')&-'a'

26.一元二次方程ax+bx+c=0有两个相异实根的条件是a≠0且b-4ac>0,以下选项中能正确表示该条件的C语言表达式是 ___(26)___ 。

A.a!=0,b*b-4*a*c>0

B.a!=0||b*b-4*a*c>0

C.a && b*b-4*a*c>0

D.!a && b*b-4*a*c>0

27.以下关于break和continue语句的叙述中正确的是 ___(27)______ 。

A.break和continue语句都可以出现在switch语句中

B.break和continue语句都可以出现在循环语句的循环体中

C.在循环语句和switch语句之外允许出现break和continue语句

D.执行循环语句中的break或continue语句都将立即终止循环

28.若有一函数定义为"int f(int x,int *y){return x/*y;}",声明该函数的正确形式是__(28)___ .

A.void f(int,int);

B.int *f(int,int *);

C.int f(int *,int *);

D.int f(int,int *);

29.已知有声明"char a[]="program",*p=a+1;",则执行以下语句不会输出字符a的是

_____(29)______ .

A.putchar(*p+4);

B.putchar(*(p+4));

C.putchar(a[sizeof(a)-3]);

D.putchar(*(a+5));

30.已有定义和声明:

struct student

{int no;

char name[20];

struct{int year,month,day;}birth;

} s;

若要求将日期"1989年11月12日"保存到变量s的birth成员中,则能实现这一功能的程序段是

____(30)____ 。

A.year=1989; month=11;day=12;

B.s.year=1989;s.month=11;s.day=12;

C.birth.year=1989;birth.month=11;birth.,day=12;

D.s.birth.year=1989;s.birth.month=11;s.birth.day=12;

二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)

●基本概念

1.若有声明"double n;",则数学公式""对应的C语言表达式正确形式是___(1)___ 。

2.已知有声明"char ch;int a;",执行语句"scanf("%c%d",&ch,&a);"时如果从键盘输入的数据是"123",则变量a得到的值是___(2)___ 。

3.若有声明"int a=0,b=1,c=2;",执行语句"if(a>0&&++b>0)c++;else c--;"后,变量a、b、c的值分别

___(3)___ 。

4.若有以下宏定义:

#define M(a,b) -a/b

则执行语句"printf("%d",M(4+3,2+1));"后输出结果为___(4)___ 。

5.声明"FILE *p;"中的类型标识符"FILE"是在头文件 ___(5)___中定义的。

●阅读程序

6.以下程序运行时输出到屏幕的结果为___(6)___ 。

#include

enum{A,B,C,D}x;

void main()

{char s[]="your";

for(x=B;x<=D;x++)

putchar(s[x]);

}

7.以下程序运行时输出到屏幕的结果是 (7) 。

#include

void main()

{int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j; for(i=0;i<12;i++)

{j=s[i];

c[j]++;

}

for(i=1;i<5;i++)

printf("%d",c[i]);

}

8.以下程序运行时输出到屏幕的结果是___(8)___ 。

#include

int fun(int x)

{static int c,y;

if(c==0) y=1;

else y=y+x;

c++;

return y;

}

void main()

{int i;

for(i=0;i<2;i++)

相关文档
最新文档