2006年对口高职C语言程序设计预测试卷三
一、单项选择题(共30题,每题2分,共60分)
1.
printf函数中用到格式符%5s
,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式_____。
A) 从左起输出该字串,右补空格
B) 按原字符长从左向右全部输出
C) 右对齐输出该字串,左补空格
D) 输出错误信息
2.
已有定义 int
a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是_____。
A)整型变量的输出格式符只有%d一种
B)%x 是格式符的一种,它可以适用于任何一种类型的数据
C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
3.
已有定义int x;
f1oat
y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345
678(回车),则y 的值为_____。
A)无定值
B)45.0000 C)
678.000000
D) 123.00000
4.
根据定义和数据的输入方式,输入语句的正确形式为_____。
已有定义: float fl,f2;
数据的输入方式:4.52
3. 5
A)scanf("%f,%f",&f1,&f2);
B)scanf("%f%f",&f1,&f2 );
C)scanf("%3.2f%2.1f",&f1,&f);
D)scanf("%3.2f%2.1f",&f1,&f2);
5.
阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是_____。
main(){
int x; float
y; printf("enter x,y :")
输入语句
输出语句
}
输入形式
enter x,y: 2 3.4
输出形式
x+y=5.40
A)scanf("%d,%f",&x,&y);printf("\nx+y= %4.2f",x+y);
B)scanf("%d%f",&x,&y );printf("\nx+y=%4.2f",x+y);
C)scanf("%d%f",&x,&y); printf("\nx+y=%6.lf",x+y);
D)scanf("%d%3.1f",&x,&y );printf("\nx十y=%4.2f",x+y);
6.
已知ch是字符型变量,下面不正确的赋值语句是_____。
A)ch='a+b';
B)ch='\0';
C)ch='7'+'9';
D) ch=5+9;
7.
若有以下定义,则正确的赋值语句是_____。
int a,b; float x;
A)a=1,b=2,
B)a=b++;
C) a= b=
5
D) b= int(x);
8.
x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x 、y
和z的值是:
A)
x=10
B) x=10
C) x=10
D) x=10
y=15
y=10
y=10
y=5
z=10
z=10
z=15
z=10
9.
以下叙述正确的是_____。
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
10.
以下叙述不正确的是_____。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
11.
假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是_____。
A)7
B)8
C)6
D)2
12.
下面四个选项中,均是C语言关键字的选项是_____。
A)auto
B)switch
C)signed
D)if
enum
typedef
union
struct
include
continue
scanf
type
13.
下面四个选项中,均是合法整型常量的选项是_____。
A)160
B)-0xcdf
C)-01
D)-0x48a
-0xffff
01a
986,
012
2e5
011
0xe
0668
0x
14.
下面四个选项中,均是合法转义字符的选项是_____。
A)'\''
B)'\'
C)'\018'
D)'\\0'
'\\'
'\017'
'\f'
'101'
'\n'
'\"'
'xab'
'xlf'
15.
若有代数式3ae/bc,则不正确的C语言表达式是_____。
A)
a/b/c*e*3
B)3*a*e/b/c
C)3*a*e/b*c
D)a*e/c/b*3
16.
以下不正确的叙述是_____。
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
17.
若有定义:int a=7;float
x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是_____。
A)2.500000
B)2.750000
C) 3.500000
D) 0.000000
18.
表达式18/4*sqrt(4.0)/8值的数据类型为_____。
A)
int
B)float
C)double
D)不确定
19.
设以下变量均为int类型,则值不等于7的表达式是_____。
A) (x= y= 6, x+y,
x+1)
B) (x= y= 6,x+y, y+1)
C) (x= 6, x+1, y= 6, x+y)
D) (y=6, y+l, x = y, x+1)
20.
下面有关for循环的正确描述是 。
A) for循环只能用于循环次数已经确定的情况
B) for循环是先执行循环体语句,后判断表达式
C) 在for循环中,不能用break语句跳出循环体
D) for循环的循环体语句中,
可以包含多条语句,但必须用花括号括起来
21.
以下不是无限循环的语句为 。
A)
for
(y=0,x=1;x> ++y;x=i++) i=x ;
B)
for (; ;
x++=i);
C) while (1){x ++;}
D)
for (i=10;
;i--)sum+=i;
22.
下面程序段的运行结果是 。
for (y=1; y<10; ) y=((x=3*
y, x+1), x-1);
printf ("x=%d,y=%d",x,y);
A)x=27,y=27
B)x=12,y=13
C)x=15,y=14
D)x=y=27
23.
执行语句for(i=1; i++<4; ); 后变量i的值是 。
A)3
B )4
C)5
D)不定
24.
下面程序的功能是计算1至10之间的奇数之和及偶数之和。请选择填空 。
# include <stdio. h>
main()
{int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{ a+=i;
[1];
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11),
}
[1] A )b=i--
B) b=i+1
C) b=i++
D)b=i-1
25.
下面程序的运行结果是 。
#i nclude <stdio. h>
main()
{ int x , i;
for(i=1;i<=100;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0) printf("%d ",x);
}
}
A) 39
81
B) 42
84
C) 26
68
D) 28 70
26.
下面程序的运行结果是 。
main()
{int i,j,a=0;
for (i=0;i<2;i++)
{ for (j=0;j<=4;j++)
{if (j%2) break;
a++;}
a++;}
printf("%d\n",a);
}
A) 4
B) 5
C)
6
D) 7
27.
有以下程序段:
int x=0, s=0;
while (!x!= 0) s+=++x;
printf("%d",s);
则 。
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式非法
D)程序段执行无限次
28.
下列程序的输出结果为()
main()
{ char s[10]={‘a’,’b’,’c’,’d’};
printf(“%d”,strlen(s+2));
}
A.值不确定
B.10
C.3
D.2
29.
下面程序的运行结果是()
main()
{ char ch[7]={“65ab21”};
int i,s=0;
for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)
s=s*10+ch[i]-‘0’;
printf(“%d\n”,s);
}
A.12ab56
B.6521
C.6
D.62
30.
在引用数组元素时,以下列各项作为数组下标,可能引起输出混乱的是()
A.0
B.整型变量
C.实型
D.字符型
二、填空题(共15空,每空1分,共15分)
1.
程序中经常使用到常数6.6678,我们使用RUN表示,其定义格式为
2.
设有:int a=3, b= 4, c= 5,x , y;
执行 !(x=a)&&(y=b)&&0表达式的值为
..
3.
单精度浮点型数据在内存中占
个字节。
4.
表达式‘c’&&’d’的值为
。
5.
4/5*6的值为
。
6.
执行语句n=1; if(n=5)
n++;后,变量n的值为
。
7.
若想通过以下语句给a赋值1,给b赋值2,则输入数据的形式应该是
int a,b; scanf(“a=%d,b=%d”,&a,&b);
8.
表达式9/2!=9%2的值是
。
9.
下面程序的输出结果是
main()
{ int x=023; printf(“%d\n”,--x);}
10.
putchar(0x41)的输出为
。
11.
c语言中的数据类型转换分为两种,即自动类型转换和
。
12.
若有定义:int
a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为
。
13.
4.0/5的值为
。
14.
表达式12345==12345/3*3的值为
。
15.
定义一个含有10个元素的整型数组a,并为前两个元素赋初值12,5的语句是
三、程序阅读理解题(共5题,每题3分,共15分)
1.
若从键盘上输入10,则输出是
main ()
{
int a;
scanf(“%d”,&a);
if
(a++>10)
printf (“%d \ n”,++a);
else printf (“%d \
n”,a--);
}
运行结果
2.
main( )
{
int
a1=0,a2=0,a3=0;
char ch;
while
((ch=getchar( )!=‘\ n’)
switch (ch)
{
case ‘A’;a1++;
case ‘B’;a2++;
default :a3++;}
printf(“%d
\ n”