c语言考前冲刺文档格式.docx
- 文档编号:22191612
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:22
- 大小:33.99KB
c语言考前冲刺文档格式.docx
《c语言考前冲刺文档格式.docx》由会员分享,可在线阅读,更多相关《c语言考前冲刺文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
A.原码B.反码C.补码D.BCD码
22.以下选项中,合法的实型常数是(B)。
A.E-3B..2E1C.1E.5D.1.5E
以指数形式aEn表示实数时,a和n都不能省略,且n必须是整数
23.下列C语言合法的数据类型关键字是(B)。
A.DoubleB.UnsignedC.IntegerD.Char
这题答案错误,C语言大小写是有区别的,A,B,C,D都错,
double、unsigned、char才是合法的数据类型关键字
24.TurboC中,int型数据占用的字节数(B)。
A.由用户自己定义
B.为2个字节
C.是任意的
D.等于所用计算机的字长
见课本P28表3-2
25.TurboC中,基本数据类型存储空间长度的排列顺序是(A)。
A.char<
int<
longint<
float<
double
B.char=int<
C.char<
longint=float=double
D.char=int=longint<
不同的编译系统规定基本数据类型存储空间长度是不同的,TurboC规定:
char=1个字节
int=2个字节
long=4个字节
float=4个字节
double=8个字节
double应该改为char<
longint=float<
double才正确
26.以下叙述中正确的是(A)。
A.字符常量用一对单撇号'
'
作为单个字符的定界符
B.字符常量和字符串常量一样,都是用双引号括起来
C.字符常量存储时,自动在字符后加一个字符结束符号'
\0'
D.字符常量和字符串常量所分配的内存空间大小是一样的
B错,一个字符加单引号是字符常量,1个字或多个字符加双引号是字符串常量。
C错,应该是字符串常量存储时,自动在字符后加一个字符结束符号'
D错,字符常量和字符串常量所分配的内存空间大小不是一样的
27.已知'
A'
的ASCII码的十进制值为65,'
0'
的ASCII码的十进制值为48,则以下程序运行结果是(A)。
main()
{charch1,ch2;
ch1='
+'
5'
-'
3'
;
ch2='
6'
printf("
%d,%c\n"
ch1,ch2);
}
A.67,DB.C,DC.C,68D.67,68
='
+2所以ch1以%d格式输出是67,以%c输出是C
+3所以ch2以%d格式输出是68,以%c输出是D
所以答案选A
28.若有定义intm=6;
则正确的赋值表达式是(C)。
A.m*7B.m*5=8C.m-=m*6D.double(-m)
A、D不是赋值表达式,且D语法错误,应该改为(double)(-m)
赋值运算符左边不能是常量或表达式,B=左边是表达式,所以B错误
29.语句k=(m=5,n=++m);
运行之后,变量k、m、n的值依次为(D)。
A.5,5,6B.5,6,5C.6,6,5D.6,6,6
n=++m即m先自增1,再赋值给n,所以m=6,n=6
逗号表达式的值等于其中最后一个表达式的值,所以
k=(m=5,n=++m)=(5,6)=6
30.语句x=5%4+(4/5);
运行之后,整型变量x的值为(A)。
A.1B.2C.3D.0
x=5%4+(4/5)=1+0=1
31.(B)语句符合C语言语法。
A.floatz=28,intx,y=18;
B.intx=25,y=25,z=25;
C.intx=25:
y=25:
z=25;
D.intx+y=z;
32.若有定义inta,x;
则语句a=(x=8,x+8);
运行后,变量a、x的值依次为(A)。
A.16,8B.8,8C.16,16D.8,16
x=8
a=(x=8,x+8)=(8,16)=16
33.若变量m,n,t已定义且赋予初值,则正确的表达式是(B)。
A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4)
赋值运算符左边不能是表达式,所以A错
\不是运算符,/才是除法运算符,所以C错
D有2处错误:
1.模运算%,左右操作数只能是整型数据,
2..强制类型转换的一般形式:
(类型名)表达式;
详细见课本P47
34.若有定义:
inta,b;
floatx,则以下不符合C语言语法的表达式是(A)。
A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b
模运算%,左右操作数只能是整型数据,所以A错
35.若有定义:
intm=4,n=5;
floatk;
,则以下符合C语言语法的表达式是(B)。
A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.n%2.5
强制类型转换的一般形式:
详细见课本P47,所以C错
模运算%,左右操作数只能是整型数据,所以D错
36.若有定义:
inta=6;
则语句a*=a-=a/=3;
运行后,a的值是(B)。
A.10B.0C.34D.24
1.a/=3→a=a/3=6/3=2
2.a-=2→a=a-2=2-2=0
3.a*=0;
→a=a*0=0*0=0
37.下面关于C语言变量的叙述中,错误的是(A)。
A.可以用define关键字定义变量
B.变量名用大小写字母是有区别的
C.C语言允许不同基本类型的变量之间进行混合运算
D.C语言中要求对变量作强制定义的主要理由是:
便于确定类型和分配空间
可以用define关键字定义常量,不可以用define关键字定义变量
38.若有定义:
inta=5,b=2;
则表达式b=(a!
=5)的值为(B)。
A.5B.0C.3D.2
b=(a!
=5)=0
39.逗号表达式(a=15,a*4),a+15的值为(B)。
A.15B.30C.75D.60
(a=15,a*4),a+15→(15,60),30
逗号表达式(15,60),30的值为30
40.下列语句中,符合C语言语法的赋值语句是(C)。
A.a=7+b+c=a+7;
B.a=7+b++=a+7;
C.a=7+b,b++,a+7;
D.a=7=b,c=a+7;
赋值运算符左边不能是表达式或常量,所以A,C,D都错
41.(A)是正确的叙述。
A.(int)5.0/6与5/6等价B.'
G'
与"
G"
等价
C.5/6与5.0/6.0等价D.++3与4等价
B'
是字符常量,占1个字节;
"
是字符串常量,占2个字节,所以B错
C5/6=05.0/6.0≈0.83所以C错
D++3语法错误,常量不能进行++运算
42.下面叙述中,错误的是(D)。
A.C语言中的表达式求值,是按其运算符的优先级先高后低的次序进行
B.自增与自减运算符的结合方向为“自右至左”
C.关系运算符的优先级低于算术运算符
D.C语言算术运算符不包含模运算符“%”
C语言算术运算符有5个:
+-*/%
43.(C)是正确的叙述。
A.表达式"
m"
+"
M"
是合法的
B.若变量x,y为整型,则(a+b)++是合法的
C.强制类型转换运算的优先级高于算术运算
D.表达式'
m'
*'
n'
是不合法的
字符串常量不能进行算术运算,所以A错
++运算操作对象不能是表达式或常量,所以B错
字符常量可以进行算术运算,’m’*’n’合法,所以D错
44.若有定义inti=1,j=9;
则表达式(++j)*(i--)的值为(B)。
A.0B.10C.9D.8
++jj先自增1,再参与其他运算
i--i先参与其他运算,再自减1
所以(++j)*(i--)=10*1=10
45.设整型变量x为7,使整型变量y不为2的表达式是(A)。
A.y=x%3B.y=x/3
C.y=(++x)/3D.y=8-(--x)
y=x%3=7%3=1
46.若已定义inta=3,b=2,c=1;
则语句++a||++b&
&
++c;
运行后b的值为(D)。
A.0B.3C.1D.2
这题主要考逻辑运算中的“不完全计算”规则,详细见课本P51
优先级别高于||所以++a||++b&
++c等价于++a||(++b&
++c)
a=3→4||(++b&
不管(++b&
++c)是真是假,我们都可以断定4||(++b&
++c)为真。
根据“不完全计算”规则,不再执行++b&
++c。
所以运行后b值不变
47.若有定义:
inti=5,j=4;
则语句i/=++j;
运行后i的值为(B)。
A.10B.1C.1.25D.0
++jj先自增1,变为5,再参与其他运算,所以i/=5即i=i/5=5/5=1
48.若已定义:
inta=2,b=2;
则表达式(a+(b++),b)的值是(B)。
A.2B.3C.4D.6
b++先参与其他运算,再自增1
所以(a+(b++),b)=(2+2,3)=3
49.若有定义:
intr,x=245;
则语句r=x/100%9;
运行后r的值为(A)。
A.2B.5C.0D.27
除法/和取模%优先级别相同,结合方向从左到右(详细见课本P42)
所以r=x/100%9=(x/100)%9=(245/100)%9=2%9=2
50.若已定义:
inti=6,t;
则语句t=3+(--i);
运行后t的值为(C)。
A.9B.7C.8D.5
--i先自减1,再参与其他运算
所以t=3+(--i)=3+5=8
51.C语言的%运算符按运算对象的个数属(C)。
A.单目运算符B.四目运算符C.双目运算符D.三目运算符
52.若已定义:
inta=5,b=9,c=6;
则语句b++;
++c;
a=b-c;
运行后a的值为(B)。
A.5B.3C.2D.4
执行b++;
后b值变为10,执行++c;
后c值变为7
所以a=b-c=10-7=3
53.以下程序运行时,若从键盘输入5,则输出结果是(D)。
main()
{inta;
scanf("
%d"
&
a);
if(a++>
5)printf("
%d\n"
a);
elseprintf("
a--);
}
A.7B.4C.5D.6
a++>
5a参与其他运算再自增1,即a先与5比较大小,然后a自增1,变为6
所以5>
5为假,执行elseprintf("
a--);
先输出a,即6,然后a再自减1,a值变为5。
54.若已定义floatx;
要从键盘输入数据36.582给变量x,则应选用(B)语句。
A.scanf("
%2.3f"
x);
B.scanf("
%6f"
C.scanf("
%6.3f"
D.scanf("
%5.3f"
scanf函数不能指定输入小数位数
见课本P307-308
Scanf函数格式字符串的一半形式为:
%[*][输入数据宽度][长度]类型
例如
longb;
scanf(“%3ld”,&
b);
/*宽度为3,长度为l,类型为d*/
printf(“%ld”,b);
输入:
1234567输出:
123
55.若已定义doubley;
拟从键盘输入一个值赋给变量y,则正确的函数调用是(C)。
y);
%7.2f"
%lf"
%ld"
double------%lf
float--------%d
unsigned------------%u无符号十进制整数格式输出
long---------%ld
int----------%d
八进制-----%o
十六进制-------%x
char(字符变量)-------%c
字符串-----------%s
56.已有定义chars;
使用scanf()函数输入一个字符给变量s,不正确的函数调用是(D)。
%c"
s);
B.scanf("
%u"
字符在内存中以ascii码的形式存储的,所以字符可以以%d,%u,%c的格式输入输出
57.函数putchar()的功能是向终端输出(A)。
A.一个字符B.多个字符
C.一个关系表达式D.一个实型变量值
详细见课本P34
58.若已定义inta=11;
执行以下语句后的输出结果是(B)。
a=%d,a=%o,a=%x\n"
a,a,a);
A.a=11,a=11,a=bB.a=11,a=13,a=b
C.a=11,a=13,a=cD.a=11,a=12,a=13
见55题解释
59.若有定义intm=4321,n=123,k=21;
语句printf("
%4d+%3d+%2d"
m,n,k);
执行后的输出结果是(C)。
A.4321432143211231231232121B.432112321
C.4321+123+21D.432+123+021
Printf中的格式控制字符串中字符分三种:
格式字符、转义字符、普通字符
其中普通字符+原样输出。
60.已有如下定义和输入语句,
charc1,c2;
intx;
scanf("
%c%d%c"
c1,&
x,&
c2);
若要求x、c1、c2的值分别为9、'
K'
和'
H'
,正确的数据输入是(A)。
A.K9HB.K9HC.K9HD.9KH
字符ascii码值见课本300
61.以下程序段的运行结果是(A)。
inta=1;
%d,%d,%d\n"
a,++a,a++);
A.3,3,1B.1,2,2C.1,2,3D.3,2,1
Printf函数中变量列表中如果有多个变量,计算顺序是从右到左,输出顺序是从左到右
62.以下程序的运行结果是(D)。
voidmain()
{inta=65;
charc='
%d+%c=%d\n"
a,c,a+c);
A.A+A=AAB.65+A=65AC.65+65=130D.65+A=130
字符以ascii码值参与算术运算。
63.若已定义:
intx=7;
floaty=7.0;
以下语句中能输出正确值的是(B)。
A.printf("
%d%d"
x,y);
B.printf("
%d%.3f"
C.printf("
%.3f%.3f"
D.printf("
%.3f%d"
64.putchar函数可以向终端输出一个(A)。
A.字符或字符型变量值B.整型变量表达式值
C.实型变量值D.字符串
65.若已定义:
floatb=1.5;
要求输出形式为:
6*1.50=9.00,应选用的正确输出语句是(B)。
%d*%f=%f"
a,b,a*b);
B.printf("
%d*%.2f=%.2f"
%d*%d=%.2f"
%.2f*%.2f=%.2f"
int--------------%d
float----------%f
%.02f以两位小数格式输出float变量值
*是普通字符原样输出
66.有以下程序:
{intc;
while((c=getchar())!
='
\n'
)
{switch(c-'
2'
{case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
default:
putchar(c+2);
\n"
);
当输入:
247<
回车>
,程序的输出结果是(B)。
A.689B.6689C.66778D.66887
c=getchar()作用是从键盘输入流中获取一个字符,然后赋值给c.
switch语句见课本P76.
第一次循环:
c=’2’→c-‘2’=0
所以从case0:
入口开始往下执行,一直语句break;
才结束switch语句。
即执行以下语句:
case0:
输出:
66
第二次循环:
c=’4’→c-‘2’=2
所以从case2:
8
c=’7’→c-‘2’=5
因为没有case值与5匹配,所以执行default分支。
9
c=’\0’,结束循环。
最后输出结果:
6689
67.若已定义intx=5,y=9,z;
语句z=x>
=y;
运行后z的值为(C)。
A.1B..t.C.0D..f.
见课本P42,关系运算符优先级别高于赋值运算符,所以>
=优先级别高于=
z=x>
等价于z=(x>
=y);
所以z=(x>
=y)=(5>
=9)=0
68.判定逻辑值为“真”的最准确叙述是(C)。
A.1B.大于0的数C.非0的整数D.非0的数
这个标准答案有错,正确应该选D
69.若已定义intx=-16,y=-12,z;
语句z=x<
运行后z的值为(B)。
A..t.B.1C..f.D.0
见67题解释:
z=(x<
=y)=(-16<
=-12)=1
70.能正确表示数学关系式100≤s<300的表达式为(C)。
A.(s>
=100)&
(s<
300)B.100<
=s<
300
C.(s>
300)D.(s>
=100)and(s<
300)
见课本P51
71.若定义inta=2,b=3;
则表达式!
a||b的值为(B)。
A.0B.1C.2D.3
!
优先级别高于||
所以!
a||b等价于(!
a)||b,即0||3,所以值为1
72.若定义inta=-5,b=-8,c=-12;
则表达式a>
=b||b<
c的值为(D)。
A.变量i的值B.变量j的值C.0D.1
关系运算符优先级别高于逻辑运算符,所以a>
c等价于(a>
=b)||(b<
c)
即(-5>
=-8)||(-8<
-12)的值为1
73.下列表达式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考前 冲刺