2011年全国计算机等级二级C语言模拟试题及答案(14)Word文档格式.doc
《2011年全国计算机等级二级C语言模拟试题及答案(14)Word文档格式.doc》由会员分享,可在线阅读,更多相关《2011年全国计算机等级二级C语言模拟试题及答案(14)Word文档格式.doc(7页珍藏版)》请在冰豆网上搜索。
D.52
5.设int型变量a为5,使b不为2的表达式是(
A.b=a/2
B.b=6-(-a)
C.b=a%2
D.b=a>
3?
2:
1
6.一个C程序的执行是从(
A.main()函数开始,直到main()函数结束。
B.第一个函数开始,最后一个函数结束。
C.第一个语句开始,最后一个语句结束。
D.main()函数开始,直到最后一个函数。
7.C语言中用于结构化程序设计的三种基本结构是(
A.if、switch、break
B.if
while
for
C.while
do-
for
D.顺序结构、选择结构、循环结构
8.以下叙述中不正确的是(
A.在不同的函数中可以使用相同名字的变量。
B.函数中的形式参数是局部变量。
C.在一个函数内的符合语句中定义变量在本函数范围内有效。
D.在一个函数内定义的变量只在本函数范围内有效。
9.若k为int
类型,且k的值为3,执行语句k+=k-=k*k后,k的值为(
A.-3
B.6
C.-9
D.-12
10.有以下程序
main()
{int
x=3,y=3,z=3;
printf(“%d
%d\n”(++x,y++),++z);
}
输出结果(
A.3
3
B.3
4
2
D.4
3
11.若有定义和语句:
int
a=21,b=021;
printf(“%x,%d
\n”,a,b);
A.17,15
B.16,18
C.17,19
D.15,17
12.已有定义语句:
x=3,y=4,z=5;
则值为0的表达式是(
A.x>
y++
B.x<
=++y
C.x!
=y+z>
y-z
D.y%z>
=y-z
13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是(
A.a>
=10
or
a<
=0
B.a>
=10||a<
C.a>
=10&
&
D.a>
=10|a<
=0
14.n为整型常量,且n=2;
while(n--);
printf(“%d”,n);
执行后的结果是:
A.2
B.1
C.-1
D.0
15.若有以下定义和赋值double
*q,a=5.5;
*p,i=1;
double
p=&
i;
q=&
a;
以下对赋值语句叙述错误的是(
)。
A)*p=*q
变i中的值。
B)p=oxffd0;
将改变p的值,使p指向地址为ffd0的存储单元。
C)*q=*p;
等同于a=i;
D)*p=*q;
是取q所指变量的值放在p所指的存储单元
16.若有以下定义语句double
a[8],*p=a;
i=5;
对数组元素错误的引用是(
A)*a
B)
*a[5]
C)*(p+i)
D)p[8]
17.以下选项中不能使指针正确指向字符串的是(
A)
char
*ch;
*ch=“hello”
*ch=“hello”
C)
*ch=“hello”;
ch=“bye”
D)
*ch”;
ch=“hello”
18.若有以下说明和定义语句:
union
uti
n;
g;
ch[9];
struct
srt{float
xy;
uv;
}aa;
则变量aa所占内存的字节数是(
9
8
13
17
二、填空题(每空1分,共12分)
1.C语言源程序文件的扩展名是
(1)
经过编译后,生成文件的扩展名是
(2)
经过连接后,生成文件的扩展名是
(3)
。
2.把a,b定义成长整型变量的定义语句是
(4)
3.设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为
(5)
4.已有定义:
float
x=5.5;
则表达式:
x=(int)x+2的值为
(6)
5.已有定义:
x=0,y=0;
(x+=2,y=x+3/2,y+5)后,变量x的值为
(7),变量y的值为
(8),表达式的值为
(9)
6.执行以下for(i=1;
i++<
=5)语句后,变量i的值为(10)
7.数组是表示类型相同的数据,而结构体则是若干
(11)
数据项的集合。
8.C语言中文件是指
(12)
三、程序补充题(每空3分,共24分)
1.从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
{
s,gmax,gmin;
scanf(“%f,”&
s);
gmax=s;
gmin=s;
{if(s>
gmax)gmax=s;
if
scanf(“%f”,&
}
printf(“gmax=%f\ngmin=%f\n”gmax,gmin);
2.求任意两个正整数的最大公约数和最小公倍数
#include
“stdio.h”
r,m,n,temp,gcd,lcm;
printf(“enter
two
number
please:
”);
scanf(“
”,&
m,&
n);
lcm=m*n;
while(m%n!
=0)
{r=m%n;
(4);
n=r;
gcd=n;
lcm=lcm/n;
printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);
3.求y的x次方。
Double
fun1(double
y,int
x)
main(){int
z=1.0;
for(i=1;
i
;
i++)
z=
return
z;
4.对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0。
fun2(int
{if(x%2==0)
(7)
0
scanf(“%d”,&
(8)
printf(“even\n”);
else
printf(“odd\n”);
四、按格式写出程序运行结果。
(每题4分共20分)
1.
a=1,c=65,d=97;
printf(“a8=%o,a16=%x\n”,a,a);
printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
d++;
printf(“d10=%d,dc=%c\n”d,d);
程序运行结果为:
2.有以下程序
f(int
x,int
y)
t;
if(x<
y){t=x;
x=y;
y=t;
}}
a=4,b=3;
c=5;
f(a,b);
f(a,c);
f(b,c);
printf(“%d,%d,%d”,a,b,c);
3.程序执行的结果是(
i=0,a=2;
if(i==0)printf(“**”);
printf(“$$”);
printf(“*”);
4.有以下程序
sum=0,n;
while(n<
=5)
{sum+=n;
n++;
printf(“sum=%d”,sum);
当输入:
1
程序运行的结果为(
5.执行以下程序段,输出的结果为(
a[2][3]={{3,2,7},{4,8,6}};
*p,m;
a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
printf(“m=%d”,m);
五、按题目要求写出可运行程序:
(24分)
1.模拟计算器功能,编写程序,根据用户输入的运算符,对两个数进行运算。
(用switch语句)
()
2.求3~100之间的全部素数,并统计素数个数。
3.编写程序完成矩阵转置,即将矩阵的行和列对换:
.
如将矩阵
7
5
倒置为
4
6
6
10
8
10
参考答案
一、选择题(20分)
1.B
2.A
3.B
4.C
5.C
6.A
7.D
8.C
9.D
10.B
11.D
12.A
13.B
14.C
15.B
16.D
17.A
18.C
二、填空题(12分)
(1).C
(2).OBJ
(3).EXE(小写也正确)
(4)long(int)
a,b;
(5)1.5
(6)7.000000
(7)2
(8)3
(9)8
(10)7
(11)类型不同
(12)存储在外部介质上的相关数据集合
三、程序补充题(24分)
(1)s>
(2)s<
gmin
(3)%d,%d
m=n
(5)i<
=x
(6)z*y
(7)return
(8)fun2(n)
四、按格式写出程序运行结果(20分)
1.a8=1,a16=1