专升本C语言历年考试题及答案9Word文档格式.doc
《专升本C语言历年考试题及答案9Word文档格式.doc》由会员分享,可在线阅读,更多相关《专升本C语言历年考试题及答案9Word文档格式.doc(49页珍藏版)》请在冰点文库上搜索。
![专升本C语言历年考试题及答案9Word文档格式.doc](https://file1.bingdoc.com/fileroot1/2023-4/30/f88e7239-9ebe-44b7-a2b1-2dc4d0480002/f88e7239-9ebe-44b7-a2b1-2dc4d04800021.gif)
A)DB)68C)不确定的值D)C
14.在C语言中,要求运算数必须是整型的运算符是。
A)/B)++c)!
=D)%
15.若以下变量均是整型,且num=sum=7;
则执行表达式sUM=num++,sUM++,++num后sum的值为
A)7B)8C)9D)10
16.在C语言中,int、char和short种类型数据在内存中所占用的字节数
A)由用户自己定义B)均为2个字节
C)是任意的D)由所用机器的机器字长决定
17.若有说明语句:
charc='
\72'
则变量c
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法,c的值不确定
18.若有定义:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是
A)2.500000B)2.7500OOc)3.500000D)0.000000。
19.sizeof(float)是:
A)一个双精度型表达式B)一个整型表达式
C)一种函数调用D)一个不合法的表达式
20.设变量a是整型,f是实型,i是双精度型,则表达式10+'
a'
+i*f值的数据类型为
A)intB)floatC)doubleD)不确定
21.在C语言中,char型数据在内存中的存储形式是:
A)补码B)反码C)原码D)ASCII码
22.表达式18/4*sqrt(4.0)/8值的数据类型为:
A)intB)floatC)doubleD)不确定
23.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为:
A)0~255B)0~32767C)0~65535D)0~2147483647
24.设有说明:
charw;
intx;
f1oaty;
doublez;
则表达式w*x+z一y值的数据类型为:
A)floatB)charC)intD)double
25.若有以下定义,则能使值为3的表达式是:
intk=7,x=12;
A)x%=(k%=5)B)x%=(k一k%5)
C)x%=k-k%5D)(x%=k)一(k%=5)
26.设以下变量均为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)
第四、五章复习题
27.putchar函数可以向终端输出一个:
A)整型变量表达式值
B)实型变量值
C)字符串
D)字符或字符型变量值
28.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按:
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
29.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度小于5,则输出按方式。
30.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:
P83
A)scanf("
%d%lx,%le"
&
x,&
y,&
z);
B)scanf("
%2d*%d%lf"
&
z);
C)scanf("
%x%*d%o"
y);
D)scanf("
%x%o%6.2f"
【scanf无精度】
31.已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是
inta1,a2;
charc1,c2;
scanf("
%d%c%d%c"
a1,&
c1,&
a2,&
c2);
A)10A20B<
CR>
(空格有没有都行,10和A之间不能有空格,否则c1为空格)
B)10A20B<
CR>
C)10A20<
D)10A20B<
cR>
。
32.已有定义intx;
且执行scanf("
%3d%f"
语句,若从第一列开始输入数据12345678(回车),则x的值为
A)12345B)123C)45D)345
33.已有定义intx;
语句,若从第一列开始输入数据12345678(回车),则y的值为:
A)无定值B)45.0000C)678.000000D)123.00000
34.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:
%d%d"
a2);
%c%c"
A)1020AB<
B)1020<
AB<
C)1020AB<
D)1020AB<
35.已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为
main()
{inta;
floatf;
printf("
\nInputnumber:
"
);
输入语句
\nf=%f,a=%d\n,f,a);
}
Inputnumber:
4.52<
A)scanf("
%d,%f"
a,&
f);
B)scanf("
%f,%d"
f,&
a)
C)scanf("
%d%f"
D)scanf("
%f%d"
a);
36.根据定义和数据的输入方式,输入语句的正确形式为:
已有定义:
floatfl,f2;
数据的输入方式:
4.52
3.5
A)scanf("
%f,%f"
f1,&
f2);
%f%f"
f2);
%3.2f%2.1f"
D)scanf("
37.阅读以下程序,当输入数据的形式为25,13,10<
正确的输出结果为:
{intx,y,z;
scanf("
%d%d%d"
printf("
x+y+z=%d\n”,x+y+z);
}
A)x+y+z=48B)x+y+z=35
C)x+z=35D)不确定值
38.阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是:
main()
{intx;
floaty;
printf("
enterx,y:
)
输入语句;
输出语句;
}
输入形式enterx,y:
23.4
输出形式x+y=5.40
\nx+y=%4.2f"
x+y);
B)scanf("
y);
\nx+y=%4.2f"
\nx+y=%6.lf"
D)scanf("
%d%3.1f"
\nx十y=%4.2f"
39以下说法正确的是:
A)输入项可以为一实型常量,如scanf("
%f"
3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf("
a=%d,b=%d"
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("
%4.2f"
D)当输入数据时,必须指明变量的地址,如scanf("
40.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:
{charch1,ch2,ch3;
输入语句
%c%c%c"
ch1,ch2,ch3);
输入形式:
ABC
输出形式:
AB(空格)
A)scanf("
ch1,&
ch2,&
ch3);
%c,%c,%c"
&
ch2,&
C)scanf("
%c%c%c"
D)scanf("
41.有输入语句:
scanf("
a=%d,b=%d,c=%d"
b,&
c);
为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是
A)132(回车)
B)1,3,2(回车)
C)a=1b=3c=2(回车)
D)a=1,b=3,c=2(回车)
42.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是
A)inta=5,b=5,c=5;
B)inta,b,c=5;
C)a=5,b=5,c=5;
D)a=b=c=5;
43.已知ch是字符型变量,下面不正确的赋值语句是
A)ch='
a+b'
B)ch='
\0'
C)ch='
7'
+'
9'
D)ch=5+9;
44.若有以下定义,则正确的赋值语句是:
inta,b;
floatx;
A)a=1,b=2,B)b++;
C)a=b=5D)b=int(x);
45.设x、y均为f1oat型变量,则以下不合法的赋值语句是
A)++x;
B)y=(x%2)/10;
C)x*=y+8;
D)x=y=0;
46.x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5;
后,x、y和z的值是:
A)x=10B)x=10C)x=10D)x=10
y=15y=10y=10y=5
z=10z=10z=15z=10
47.逻辑运算符两侧运算对象的数据类型。
A)只能是0或1
B)只能是0或非0正数
C)只能是整型或字符型数据
D)可以是任何类型的数据
48.以下关于运算符优先顺序的描述中正确的是:
A)关系运算符<
算术运算符<
赋值运算符<
逻辑与运算符
B)逻辑运算符<
关系运算符<
赋值运算符
C)赋值运算符<
条件运算符<
逻辑与运算符<
算术运算符
D)算术运算符<
49.下列运算符中优先级最高的是:
A)<
B)十C)&
D)!
=
50.能正确表示"
当x的取值在[1,10]和[200,210]范围内为真,否则为假"
的表达式是一一一。
A)(x>
=1)&
(x<
=10)&
(x>
=200)&
=210)
B)(x>
=1)||(x<
=10)||(x>
=200)||(x<
c)(x>
=10)||(x>
=200)&
D)(x>
=1)||(x<
=10)&
(x>
=200)||(x<
51.判断char型变量ch是否为大写字母的正确表达式是一一一。
A)'
A'
<
=ch<
='
z'
B)(ch>
='
)&
(ch<
z'
)
C)(ch>
)&
Z'
)D)('
=ch)AND('
>
=ch)
52.设x,y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是
y'
'
B)x<
=y
C)x||y+z&
y-z
D)!
((x<
y)&
!
z||1)
53.已知x=43,ch='
y=0则表达式(x>
=y&
ch<
B'
Y)的值是
A)0B)语法错C)1D)"
假"
54.若希望当A的值为奇数时,表达式的值为"
真"
A的值为偶数表达式的值
为"
则以下不能满足要求的表达式是:
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
55.设有inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值为(执行m=a>
b时,由于m=a>
b且为与运算为假,所以不必执行n=c>
d,所以m为0,而n为原值。
A)1B)2C)3D)4
56.判断char型变量c1是否为小写字母正确表达式为:
A)'
a'
=cl<
B)(cl>
=a)&
(cl<
=z)
C)('
>
=cl)||('
=cl)D)(c1>
57.以下程序的运行结果是:
#include"
stdio.h"
main()
{inta,b,d=241;
a=d/100%9
b=(-1)&
(-1);
%d,%d"
a,b);
}
A)6,1B)2,1C)6,0D)2,0
58.执行以下语句后a的值为:
inta,b,c;
a=b=c=1;
++a||++b&
++c
A)错误B)0C)2D)1
59.执行以下语句后b的值为:
inta=5,b=6,w=1,x=2,y=3,z=4;
(a=w>
x)&
(b=y>
A)6B)0C)1D)4
60.以下不正确的if语句形式是:
A)if(x>
y&
x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf("
%d"
x)elsescanf("
D)if(X<
Y){X++;
Y++;
61.下列运算符中优先级最低的是:
A)?
:
B)&
c)+D)!
=
62.以下if语句语法正确的是一一一。
A)if(x>
0)
x)
elseprintf("
--x);
B)if(x>
{x=x+y;
x);
elseprintf("
-x);
C)if(x>
prinrf("
};
D)if(x>
0)
{x=x+y;
x)}
63.请阅读以下程序:
main()
{inta=5,b=0,c=0;
if(a=b+c)printf("
***\n"
elseprintf("
$$$\n"
以上程序:
A)有语法错不能通过编译B)可以通过编译但不能通过连接
C)输出***D)输出$$$
64.以下程序的运行结果是:
main()
{intm=5;
if(m++>
5)printf("
%d\n"
m);
==printf(“%d\n”,m++)
e1seprintf("
%d\n"
m--);
}m++=6,printf输出时先输出m的值,然后对m进行自加或自减运算。
A)4B)5C)6D)7
65.当a=1,b=3,c=5,d=4,执行完下面一段程序后x的值是:
if(a<
b)
if(c<
d)x=1;
else
if(a<
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A)18B)2C)3D)6
66.以下程序的输出结果是:
main()
{inta=100,x=10,y=20,okl=5,ok2=0;
if(x<
y)
if(y!
=10)
if(!
okl)a=1;
else
if(ok2)a=10;
a=-1:
printf("
a)
}
A)1B)0C)一1D)值不确定
67.以下程序的输出结果是:
main()
{intx=2,y=一1,z=2;
if(x<
if(y<
0)z=0;
elsez+=1;
z);
}
A)3B)2C)1D)0
68.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句
总是与()配对。
A)缩排位置相同的ifB)其之前最近的if
C)之后最近的ifD)同一行上的if
69.以下不正确的语句为:
A)if(x>
B)if(x=y)&
(x!
=0)x+=y;
C)if(x!
x);
elsescanf("
D)if(x<
y){x++;
y十十;
70.请阅读以下程序:
#include<
stdio.h>
main()
{floata,b
scanf("
if(a<
10.0)b=1.0/x;
elseif((a<
0.5)&
(a!
=2.0))b=1.0/(a十2.0);
elseif(a<
10.0)b=1.0/x;
elseb=10.0;
%f\n"
y);
}
若运行时输入2.0(回车),则上面程序的输出结果是:
A)0.000000B)0.500000C)1.000000D)0.250000
71.若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于表
达式(exp)的是: