2010秋江苏省计算机二级C考试试题 绝密★ 启用前 2010年秋
江苏省高等学校非计算机专业学生 计算机基础知识和应用能力等级考试 二级试卷 试卷语种: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\ B.printf(\"%f\ C.printf(\"%d\ 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\则执行以下语句不会输出字符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\时如果从键盘输入的数据是\"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\后输出结果为___(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\ }
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++)
printf(\"%d\ }
9.以下程序运行时输出到屏幕的结果中第一行是___(9)___,第二行是___(10)___ 。 #include
void fun(int *a,int b) {while(b>0) {*a+=b; b--; } }
void main()
{int x=0,y=3; fun(&x,y);
printf(\"%d\\n%d\\n\
}
10.以下程序运行时输出到屏幕的结果是___(11)___ #include int f(int x)
{ if(x==0||x==1)return 3; return x*x-f(x-2); }
void main()
{printf(\"%d\\n\
21--30 C ABDDCBDAD 二 填空
(1)1/3.0*n(4*n*n-1) (2)23 (3) 0 1 1 (4) -2 (5)stdio.h (6)our (7) 4 3 3 2 (8)13 (9)6 (10)3
(11)6 (12)1 (13)19 (14)1 0 0 (15)1 2 0 (16)3 5 8 (17)301 orang 100 (18)101 apple 200 (19)1
(20)t*1/n (21)a[i]= = x (22)in(a,7,b[i])
(23)i (30)h1= =null &&h2= =null 因篇幅问题不能全部显示,请点此查看更多更全内容