期末测试模拟试题D
入学感受-福娃歌
广州现代信息工程职业技术学院
考 试 模 拟 卷(D卷)
考试时间:2012-2013学年第二学期 考查科目:C语言程序设计
班级:
学号: 姓名: 成绩: 阅卷人:
李
忠华
一、选择题(共30题,每题2分,共60分)
1.
在C语言程序中,定义符号常量的标识符是()
A.main B.define C.include D.float
2. 在Turbo C中,编译并运行一个程序需要使用的菜单项是()
A.File
B.Edit C.Run D.Compile
3.
在一个完整的C语言源程序中,必须包含的函数是()
A.main( ) B.scanf(
) C.printf( ) D.getch( )
4.
下列选项中,不属于C语言双目运算符的是()
A.? : B.%
C.* D.+
5.
当运行下列程序时,在键盘上从第一列开始输入9876543210后回车,则程
序的输出结果是()
main()
{
int a; float b,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“na=%d,b=%.0f,c=%.0f”,a,b,c);
}
A.
a=98,b=765,c=4321 B. a=10,b=432,c=8765
C. a=98,b=765.0000000,c=4321.000000 D.
a=98,b=765.0,c=4321.0
6. 下列表达式的值为0的是()
A.
3%5 B. 3>=5 C. 5&&0||3 D. 53
7.
C语言程序的基本单位是()
A.语句 B.表达式 C.函数 D.标识符
8. 使用OS Shell退出Turbo C环境进入DOS后,要想返回Turbo
C环境应键
入()
A. RETURN B. EXIT C. QUIT
D. BREAK
9. 在c语言中,要求对象必须为整型的是()
A. %
B. C. ! D.++
10.
C语言表达式是按运算符的优先级来决定运算顺序的,下列运算符优先级
最高的是()
A.
= B. ! C. , D. &&
11. 下列合法的浮点型常量是()
A. 3.4e2 B. 2e+1.2 C. 3e D. 0796
12. 如果要将476存入变量,则该变量不能定义成()
A. float B.
long C. int D. char
13.
设x为整型变量,y为双精度型变量,则表达式x*y+3的数据类型是()
A. char
B. int C. float D. double
14. 在Turbo
C中,存储flaot型数据占用的字节数为()
A.1 B.2 C.4
D.8
15. 若x和y是double类型,则表达式x=1,y=x+32执行后的值为()
A. 1 B. 2 C. 2.0 D. 2.5
16.
在C语言中,整数不能使用下列哪种数制表示?()
A. 二进制 B. 八进制 C.
十进制 D. 十六进制
17. 关系表达式x≤y≤z用C语言来描述,正确的是()
A. x<=y<=z
B. (x<=y)&(y<=z)
D.
(x<=y)&&(y<=z) C. (x<=y)||(y<=z)
18.
若x为double型变量,执行表达式x=1,x+5,x++后,变量x的值为()
A. 1
B. 2.0 C. 6.0 D. 7.0
19. 执行C程序段int
x,y,t; x=y=3; t=++x||++y;后,y的值为()
A. 1 B.
3 C. 4 D. 5
20. 执行C程序段char ch=’a’;ch=
(ch>=’a’&&ch<=’z’?(ch-32):ch;
后,变量ch的值为()
A.‘A’ B.‘a’ C. ‘z’ D.‘Z’
21.
在C语言中,关于break和continue,下列说法正确的是()
A.
break只用于switch开关语句中
B. continue只用于循环语句中
C.
break和continue既可以用于循环体,也可用于switch开关语句
D.
程序在执行过程中,一旦遇到break或continue,就会终止程序的执行
22.
关于C语言中的do„while循环,下列说法正确的是()
A.
必须使用break才能推出循环 B. 循环体至少执行一次
C.
可以使用continue结束循环 D. while后的条件满足时跳出循环
23.
下面合法的C语言标识符有()
A. A3?B B. _4x C. 3xy
D. a2+b
24. 下列属于C语言保留字的是()
A. int
B. main C. exp D. scanf
25.
下列不合法的C语言说明语句是()
A. int aa[60]; B. char
aa[];
C. char aa[20]=“dream”; D. int
aa[5]={3,4,5};
26. 下列C语言表达式中,不等价的是()
A.
x*=3+5 B. x*=(3+5) C. (x*=3)+5 D. x=x*(3+5)
27. 以下程序的输出结果是()
# include
main()
{
int a=2,c=5;
printf(
}
A) a=%2,b=%5 B) a=2,b=5
C) a=%%d,b=%%d D) a=%d,b=%d
28.
以下关于数组的定义和初始化中,错误的是()
A、int a[5]={1,2,3,4,5}
B、int a[5]={1,2,3}
C、int a[ ]={1,2,3,4,5}
D、int a[3]={1,2,3,4,5}
29.
下列各语句定义了数组,其中哪一个是正确的( )
A.int
a[5],b[[2],3]; B.char no(30);
C.int x[];
D.int x[5]={1,2,3};
30.
已知字母A的ASCII码为十进制的65,下面程序的输出是:
main()
{
char ch1,ch2;
ch1=’A’+’5’-‘3’;
ch2=’A’+’6’-‘3’;
printf(“%d,%cn”,ch1,ch2);
}
A、67,D B、 B,C
二、填空题(共10空,每空2分,共20分)
1. 在Turbo
C中,默认的源程序文件名是 。
C、C,D
D、不确定的值
2. C语言源程序经过编译之后,产生的目标文件扩展名为
。
3. C语言的语句结束标志是 。
4. 设int
a; float f; double i
;则表达式10+'a'+i*f值的数据类型
是___________。
5.
在C语言中,与if(x>5) y=1; else y=0;等价的赋值表达式是y= 。
6. 如果变量定义有:int a=9,c=8;则
表达式(――a!=c++)?――a:++c的值为________。
7.
执行C程序段:
int k=1; switch(k){case 1:
printf(“abc”);case 2: printf(“123”);}
后,输出结果是
8. 定义一个符号常量EOF,使其与-1等价,则正确的表示方式为________。
9. 表达式(a=3*5,a*4),a+5的值为_________。
10. C语言
中,一个长度为n的字符串要占用n+1个字节的存储空间,多出来
的一个用来存放_________
_。
三、判断题(共10题,每题1分,共10分)
1.
若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。
( )
2.
如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必
再做函数原型声明。( )
3. 自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。
(
)
4. 函数的定义可以嵌套,但函数的调用不可以嵌套。( )
5.
do„while循环中,根据情况可以省略while。( )
6.
形参是虚拟的,不占用存储单元。( )
7.
用户若需要调用标准库函数,调用前必须重新定义。( )
8.
若调用一个函数,且此函数中没有return语句,则该函数没有返回值。
( )
9.
在实际编程中,do„while循环完全可以用for循环替换。( )
10.
if语句与switch语句可以嵌套,而且嵌套的层数没有限制( )
四、阅读理解题(共5题,每题4分,共20分)
1.
下面是根据学生成绩(cj)输出评定等级(dj
)的程序。成绩为90~100分,
输出字符“A”;80~89分,输出字符“B”, 70~79分
,输出字符“C”;
60~69分,输出字符“D”;否则输出字符“E”。填空完善程序。
#include
void main( )
{
intcj;char dj;
printf(“\n请输入学生成绩:”);
scanf(”%d”, ① );
switch( ②
)
{
case 9:dj =`A’;break;
case
8:dj =`B`;break;
case 7:dj =`C`;break;
case 6:dj =`D`;break;
default:dj
=`E`;
}
prinf (”\n学生的等级是: ③
”,dj );
}
2. 以下fun函数把ch中的大写字母转换成字母序列中的下一
个大写字母,
字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符。请填空。
char fun(char ch)
{
if(ch= ='Z')
ch=_____①_____;
else if(ch>='A'&&ch<='Y')
ch=____② ______;
return ch;
}
3.下面程序功
能是从键盘上输入10个整数,然后按逆序输出。请在横线上填
上合适的内容,实现此功能。
#include “stdio.h”
void main()
{
int aa[10],n;
for(n= ①
;n=9;n++)
{
printf(“n请输入第%d个整数:”,n+1);
scanf(“ ② “,&aa[n]);
}
for(n=
③ n>=0;n--)
printf(“%dt”, ④
);
}
4.
下列程序横线左侧语句有误,请在右侧横向上写出正确的语句。
#define M 50
①
void main();
{ int x;
puts(“请输入一个整数“);
scanf(“%d”,x);
if(x>M)
printf(“x>M”)
else
printf(“%f”,x);
}
5. 写出下列程序的运行结果。
#include “stdio.h”
main()
{ int i,j;
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf(“%c”,’A’);
printf(“n”);
}
}
程序的运行结果是: 。
五、程序设计题(10分)。
从键盘输入20个数并存放在一个数组中,计算所有元素之和及
平均值,
并找出最大值和最小值。
④
③
②
参考答案
一、选择题
1~5 B C A A
A
6~10 A C C A D
11~15 A D
D C D
16~20 A D B B A
21~25
B B B A B
25~30 C A A A A
二、填空题
1. noname.c
2. .obj
3. 分号(;)
4. double
5. y=x>5?1:0
6. 9
7.
abc123
8. #define EOF -1
9. 20
10. 0
三、判断题
对 对 对 错 对 错 错 对 对 对
四、阅读理解题
1. ① &cj ② cj10 ③ %c
2. ① A
② ch+1
3. ① 0 ② %d ③ 9 ④ aa[n]
4.
① void main() ② scanf(“%d”,&x);
③
printf(“x>M”); ④ printf(“%d”,x);
五、程序设计题
参考答案如下:
#include
#define N 20
void main()
{
float
a[N],sum=0,aver,max,min;
int i;
for(i=0;i
scanf(
sum+=a[i];
}
aver=sumN;
max=min=a[0];
for(i=1;i
if(a[i]>max) max=a[i];
if(a[i]
printf(
printf(
return 0;
}