2010(秋)江苏省计算机二级C语言试题与答案(笔试)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++)