2011年全国计算机等级二级C语言模拟试题及答案(15)
一、填空与选择
1. C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2. C语言的表达式与语句的区别在于___________________________________。
3. C语句_____________ (有、没有)输入、输出语句。
4. 结构化程序的编写有_______________________________三种程序结构。
5. C语言中,变量的存储类别共有四种,即时___________________和寄存器型。
6. 表达式10/3*9%10/2的值是___________________。
7. 设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
8. 设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
9. 变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________
10.C语言调用函数中,参数的虚实结合是_________________
A. 传值
B. 传址
C. 不分
11. 逻辑运算符“&&、||、 !”中是短路运算符号是____________________
12. C语言是由________________基本单位组成的。
A.过程
B.语句
C.函数
D.程序
13.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
A.算术表达式
B.逻辑表达式
C.关系表达式
D.字符表达式
14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib) 无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?
A.File\Change
B. File\Directory
C. Option\Directories
D.TC系统出故障了,应重新安装TC环境。
15.下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
16.定义结构体的关键字是_______________
A. union
B. enum
C.struct
D.typedef
17.定义联合体的关键字是___________________
18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?
A.当然可以
B.不可以
C.无所谓
D.最好不要移动首指针
19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____
A. <类型标识符> (*a)[3]
B. <类型标识符> *a[2]
C. <类型标识符> *a[3]
D.以上写法都不对。
20.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?_____
A.11
B.12
C.14
D.15
21.设整型变量a为5,使b不为2的表达式是___________
A. b=a/2
B. b=6-(--a)
C. b=a%2
D.b=a>3?2:1
22.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
A.0
B.2
C.-4
D. 4
23.设A,B均为整型变量,下列表达式中不是赋值表达式的是__________
A. A=b+3,b+5,--b
B. A=4*5;
C. A=++A-B
D.a=b=5
24.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
A. 3, 3, 2
B. 3,2,2
C.3,2,3
D.2,3,2
25.下列对数组操作不正确的语句是_________
A. int a[5];
B.char b[ ]={‘h’,’e’,’l’,’l’,’o’};
C. int a[ ]={2,3,4,5};
D. char b[3 ][ ]={1,2,3,4,5,6};
26.设A为存放短整型的一维数组,如果A的首地址为P,那么A 中第I个元素的地址为_______________
A. P+I*2
B. P+(I-1)*2
C. P+(I-1)
D. P+I
27.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
A.100
B. 400
C. 450
D. 900
28.下列常量中哪个是不合法的_________________
A.2e32.6
B. 0.2e-5
C. “basic”
D. 0x4b00
29.下列标识符错误的是_______
A. x1y
B._123
C. 2ab
D. _ab
30. c语言中int型数-8在内存中的存储形式为_____
A.1111111111111000
B. 1000000000001000
C. 0000000000001000
D. 1111111111110111
二、读程序
1.写出下列程序段的输出结果:
main()
{int x=5;
int y=10;
printf("%d\n",x++);
printf("%d\n",++y); }
2.写出下列程序的输出结果:
main()
{int x,y,z;
x=y=z=-1;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
++y&&++x||++z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||y++&&z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);}
3.下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
switch(x)
{ case 1:
case 2:printf("x<3\n");
case 3:printf("x=3\n");
case 4:
case 5:printf("x>3\n");
default:printf("x unknow\n"); } }
4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
int p=1,q=5;
float f1(int a)
{int b,c;
char ch;
… 局部变量ch在此范围内有效
}
char c1;
char f2(int x,int y)
{int i,j;
5.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{int x,y;
scanf(“%d”,&x);
if (x<0) y= -1;
else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y); }
6.分析下列程序所完成的功能。
main()
{int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;
scanf("%d,%d,%d",pa,pb,pc);
if (*pa>*pb)
p=pa,pa=pb,pb=p;
if (*pa>*pc)
p=pa,pa=pc,pc=p;
if (*pb>*pc)
p=pb,pb=pc,pc=p;
printf("%d<=%d<=%d",*pa,*pb,*pc); }
三、 程序填空:(根据题意,将空缺的语句补上。)
1.该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。
#include "stdio.h"
main()
{ ________________
i=1,sum=0;
for(; i<=10;)
{sum+=i;
_________ }
printf("%d\n",sum); }
2.阅读函数,根据函数完成的主要功能,补充、完善主函数。
float av(float a[],int n)
{int i;float s;
for (i=0,s=0;i<n;i++) s=s+a[i];
return (s/n); }
main()
{float a[10];
_______________
for (i=0;_________)
scanf("%f"______);
printf("%f",av(a,10)); }
3.从键盘输入一些字符,逐个把它们送到磁盘文件TEXT.txt中,直到输入一个“$”为止。请将空缺地方补充完善。
#include "stdio.h"
main()
{FILE *fp;
char ch;
if ((fp=fopen("test.txt","w"))==NULL)
{printf("cannot open file\n");
;
}
;
while(ch!=’$’)
{ fputc(ch,fp);putchar(ch);
ch=getchar(); }
_______________________; }
四、编程:
1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位 置(行、列),并输出计算结果。
2.个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
参考答案
一、 填空与选择
1. 编辑、编译、连接、执行
2. “表达式”未尾加“;”号就成“语句”
3. 没有
4. 顺序、分支、循环
5 自动型、外部型、静态型
9. y%4= =0 && y%100!=0 || y%400==0
6. 7. 8. 10. 11 12. 13. 14 15 16 17
3 9 3 A &&、|| C B C C C Union
18 19 20 21 22 23 24 25 26 27 28 29 30
B C D C C B C D D B A C A
二、 读程序
1. 5 2. X=-1 Y=-1 Z=-1 3. X=3
11 X=-1 Y=0 Z=0 X>3
X=0 Y=0 Z=-1 X unknow
4. 标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
5.
6. 从小到大排序。
三、 程序填空:(根据题意,将空缺的语句补上。)
1. int I , sum
I++;
2. int I
I<10;I++
&a[I]
3. exit(o)
ch=getchar()
fclose(fp)
四、编程:(略)
1.
main()
{
float a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}
int m,n,b,c,d;
b=a[0][0];c=0;d=0;
for(m=0;m<4;m++)
for(n=0;n<4;n++)
if(b<a[m][n])
{ b=a[m][n]; c=m;d=n; }
printf(“a[%f][%f]=%f”c,d,a[c][d],); }
2. N个学生,每个学生的信息包括学号、性别,从键盘上输入N个学生的信 息,要求输出学号、性别等信息。
struct abc
{ char a[20];
char b; }
main()
{
struct abc stud1[10];
int a;
for(a=0;a<10;a++)
scanf(“%s”,a);
编辑特别推荐:
2011年计算机等级二级C语言课后练习题及答案解析汇总
2011年全国计算机等级二级C笔试考前练习习题汇总
2011年计算机等级考试二级C语言基础教程汇总
2011年计算机等级考试二级C语言辅导笔记汇总
2011年计算机等级考试二级C语言入门教程汇总