第1章 C语言概述Word文档格式.docx
《第1章 C语言概述Word文档格式.docx》由会员分享,可在线阅读,更多相关《第1章 C语言概述Word文档格式.docx(198页珍藏版)》请在冰点文库上搜索。
A.-3
B.9
C.-12
D.6
(其为赋值运算)
5、若t为double类型,表达式t=1,t+5,t++的值是D。
A.1
B.6.0
C.2.0
D.1.0
(表达式的值为1,但是t的值为2)
6、若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是C。
A.1
B.2
D.2.5
7、设a为5,执行下列语句后,b的值不为2的是C。
A.b=a/2
B.b=6-(--a)
C.b=a%2
D.b=a>
3?
2:
1
8、下列四组选项中,均是不合法的用户标识符的选项C。
A.AP _0 do
B.float goto
_A
C.b-a(注意其不是下划线,标识字符的符号只有下划线) goto int
D._123 temp INT
9、下列选项中,合法的C语言关键字是D。
A.VAR
B.cher
C.integer
D.default
10、下面不正确的字符串常量是A。
A.‘abc‘
B."
12\‘12"
C."
0"
D."
"
11、下面不正确的字符常量是A。
A."
c"
B.‘\‘‘C.‘W‘
D.‘‘
12、下述程序段的输出结果是A。
intx=10;
inty=x++;
printf("
%d,%d"
(x++,y),y++);
A.11,10
B.11,11C.10,10
D.10,11
13、已知各变量的类型说明如下:
intk,a,b;
unsignedlongw=5;
doublex=1.42;
则以下不符合C语言语法的表达式A。
A.x%(-3)
(注意其为浮点型)B.w+=-2
C.k=(a=2,b=3,a+b)
D.a+=a-=(b=D)*(a=3)
14、已知字母A的ASCII编码为10进制数65,且c2为字符型,则执行语句c2=‘A‘+‘6‘-‘3‘后,c2中的值为A。
A.D
B.68
C.不确定的值
D.C
15、以下所列的C语言常量中,错误的是B。
A.0xFF
B.1.2e0.5(指数不能为小数)
C.2L
(实型常量后加上l表示长双精度,加上f表示单精度)D.‘\72‘
16、以下叙述正确的是C。
A.在C程序中main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语D.在对一个C程序进行编译的过程中,可发现注释中的错误
17、以下运算符中,运算对象必须是整型的是B。
A./
B.%=
C.!
=
D.〈=
18、正确的标识符是D。
A.?
a
B.a=2C.a.3
D.a_3
19、在C语言中(以16位Pc机为例),5种基本数据类型的存储空间长度的排列顺序为A。
A)char<int<1ongint<=float<double
B)char=int<longint<=float<double
C)char<int<longint=float=double
D)char=int=longint<=float<double
20、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是B。
A)7
B)8
C)6
D)2
21、以下不正确的叙述是D。
A.在C程序中,逗号运算符的优先级最低B.在C程序中,APA和apa是两个不同的变量
C.如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值保持D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
22、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为C。
X=(i=4,j=16,k=32)
A)4
B)16
C)32
D)52
23、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是B。
24、下列四组选项中,均不是c语言关键字的选项是A。
A)defineIFtype
B)getc
char
printf
C)include
scanf
case
D)whilegopow
25、下面四个选项中,均是c语言关键字的选项是B。
A)autoenuminclude
B)switchtypedefcontinue
C)signedunionscanf
D)ifstructtype
(typedefine是关键字)
26、下面四个选项中,均是合法整型常量的选项是A。
A)160-0xffff011
B)-0xcdf01a0xe
C)-01986.0120668
D)-0x48a3e50x
27、下面四个选项中,均是合法转义字符的选项是A。
A)‘\‘‘
‘\\‘
‘\n‘
B)‘\‘
‘017‘
‘\;
;
‘
C)‘018‘
‘f‘
‘xab‘
D)‘\\0‘
‘\101‘
‘xlf‘
28、下面四个选项中,均是正确的八进制数或十六进制数的选项是C。
A)-10
0x8f
-011
B)0abc
-017
0xc
C)0010
-0x11
0xf1
D)0a12
-0x123
-0xa
29、己知各变量的类型说明如下:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式A
A)a+=a-=(b=4)*(a=3)
B)a=a*3=2
C)x%(-3)
D)y=float(i)
30、求下列算术表达的值,设x=2.5,a=7,y=4.7。
x+a%3*(int)(x+y)%2/4=2.5
31、求下列算术表达的值,设a=2,b=3,x=3.5,y=2.5.(float)(a+b)/2+(int)x%(int)y=3.5
32、写出下面赋值表达式运算后a的值,设原来a=12:
(1)a+=a
(2)a-=2(3)a*=2+3(4)a/=a+a(5)a%=(n%=2) n的值等于5(6)a+=a-=a*=a
(1)24
(2)10(3)60(4)0(5)0(6)0(注意赋值运算的优先级倒数第二)
第4章顺序程序设计
1、有以下程序
main()
{intm=0256,n=256;
printf("
%o%o\n"
mn,n);
}程序运行后的输出结果是C
A)02560400
B)0256256
C)256400
D)400400
(o%为八进制)
2、有以下程序
main(){inta=666,b=888;
%d\n"
a,b);
}程序运行后的输出结果是B
A)错误信息
B)666
C)888
D)666,888
(其对应输出靠前的那个数)
3、有以下程序
main(){intx=102,y=012;
printf(“%2d,%2d\n”,x,y);
}执行后输出结果是C
A)10,01
B)02,12
C)102,10
D)02,10
(位数不够时,其全部输出,且012为八进制,其为10)
4、有以下程序
main(){inta;
charc=10;
floatf=100.0;
doublex;
a=f/=c*=(x=6.5);
%d
%d
%3.1f
%3.1f\n"
a,c,f,x);
}程序运行后的输出结果是B
(a为int型,相当于强制转换,失去小数部分)
A)1
65
1
6.5
B)1
1.5
C)1
1.0
D)2
5、有定义语句:
int
x,y;
,若要通过scanf("
&
x,&
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是A
A)11
12<
回车>
B)11,12<回车>C)11,12<回车>12<回车>
D)11,<回车>
6、设有如下程序段:
int
x=2002,y=2003;
(x,y));
则以下叙述中正确的是D
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B)运行时产生出错信息
C)输出值为2002
D)输出值为2003
7、若有以下程序段(n所赋的是八进制数)intm=32767,n=printf("
%d,%o/n"
m,n);
执行后输出结果是A
A)32767,32767
B)32767,
C)32767,77777
D)32767,
(八进制数按八进制输出后其去掉其前面的0)
8、若有以下程序段intm=0xabc,n=0xabc;
m-=n;
%X\n"
m);
执行后输出结果是C
A)0X0
B)0x0
C)0
D)0XABC
9、已知i、j、k为int型变量,若从键盘输入:
1,2,3<
回车>
,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是C
A)scanf(“%2d%2d%2d”,&
i,&
j,&
k);
B)scanf(“%d
%d”,&
C)scanf(“%d,%d,%d”,&
D)scanf(“i=%d,j=%d,k=%d”,&
10、设有定义:
longx=-L;
,则以下能够正确输出变量x值的语句是B
A)printf(“x=%d\n”,x);
B)printf(“x=%1d\n”,x);
Cprintf(“x=%8dL\n”,x);
D)printf(“x=%LD\n”,x);
11、以下程序段的输出结果是int
a=1234;
%2d\n"
a);
C
A)12
B)34
C)1234
D)提示出错、无结果
12、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是B
A)INPUTx、y、z;
B)scanf(“%d%d%d”,&
y,&
z);
C)scanf(“%d%d%d”,x,y,z);
D)read(“%d%d%d”,&
13、若变量已正确说明为float类型,要通过语句scanf(“%f
%f
%f”,&
a,&
b,&
c);
给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
B
A)10<
22<
33<
B)10.0,22.0,33.0<
C)10.0<
22.0
33.0<
D)10
33<
(scanf有三种输入分隔符,可以混合使用)
14、有如下程序
main(){inty=3,x=3,z=1;
printf(“%d
%d\n”,(++x,y++),z+2);
}运行该程序的输出结果是D
A)3
4
B)4
2
C)4
3
D)3
15、下列程序执行后的输出结果是(小数点后只写一位)
main(){doubled;
floatf;
lingl;
inti;
i=f=1=d=20/3;
%d%ld%f%f\n"
i,l,f,d);
}A
A)6
6
6.0
B)6
6.7
C)6
D)6
16、以下说法中正确的是D
A)#define和printf都是C语句
B)#define是C语句,而printf不是
C)printf是C语句,但#define不是
D)#define和printf都不是C语句
17、以下程序的输出结果是
main(
){int
k=17;
%d,%o,%x\n"
,k,k,k);
}D
A)17,021,0x11
B)17,17,17
C)17,0x11,021
D)17,21,11(八进制输出时没有0)
18、以下叙述中正确的是D
A)输入项可以是一个实型常量,如:
scakf("
%f"
3.5);
B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
a=%d,b=%d"
);
C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
%4.2f"
f);
D)当输入数据时,必须指明变量地址,例如:
19、若有以下定义和语句intu=010,v=0x10,w=10;
%d,%d,%d\n,u,v,w);
则输出结果是A
A)8,16,10
B)10,10,10
C)8,8,10
D)8,10,10
20、请读程序片段:
inti=65536;
i);
上面程序片段的输出结果是B
A)65536
B)0
C)有语法错误,无输出结果
D)-1
(65536=2^16十六进制表示0x10000(17个二进制位)整型数据是16位的,高位被舍弃,这样的话就是0x0000自然就是0了。
很多问题需要你用二进制思维方式,理解不了就死记硬背吧。
)
21、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
%d"
上面程序片段的输出结果是A
A)200
B)100
C)100200
D)输出格式符不够,输出不确定的值
22、请读程序:
#include<
stdio.h>
main(){inta;
floatb,c;
scanf("
%2d%3f%4f"
\na=%d,b=%f,c=%f\n"
a,b,c);
}若运行时从键盘上输入<
CR>
(<
表示回车),则上面程序的输出结果是C
A)a=98,b=765,c=4321
B)a=10,b=432,c=8765
C)a=98,b=765.,c=4321.
D)a=98,b=765.0,c=4321.0
23、以下程序的输出结果是
#include<
math..h>
main(){
inta=1,b=4,c=2;
float
x=10..5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
pritnf("
%f\n"
z);
}
A)14.
B)015.
C)13.
D)14.
24、以下程序的输出结果是。
inta=2,c=5;
a=%%d,b=%%d\n"
a,c);
D
A)a=%2,b=%5
B)a=2,b=5
C)a=%%d,b=%%d
D)a=%d,b=%d
25、执行下面程序中的输出语句,a的值是
main(){inta;
(a=3*5,a*4,a+5));
}C
A)65
B)20
C)15
26、若变量已正确说明为float类型,要通过语句
scanf("
%f%f%f"
给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是BA.10<
22<
B.10.0,22.0,33.0<
C.10.0<
22.0
D.10
27、有以下定义和语句charc1=‘b‘,c2=‘e‘;
%d,%c\n"
c2-c1,c2-‘a‘+‘A‘);
输出结果是B
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
28、若有以下定义和语句intu=010,v=0x10,w=10;
%d,%d,%d\n"
u,v,w);
输出结果是A
A.8,16,10
B.10,10,10
C.8,8,10
D.8,10,10
29、以下不正确的叙述是D
A.在C程序中,逗号运算符的优先级最低B.在C程序中,APA和apa是两个不同的变量
C.如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值保持不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,实型变量只能输入实型数
30、以下程序的输入结果是A
main(){ inti=010,j=10,k=0x10;
printf("
%d,%d,%d"
i,j,k);
}
A.8,10,16
B.8,10,10
C.10,10,10
D.10,10,16
31、语句printf(″s\\t″)的输出结果为B
A.s\\t
B.s\t
C.s\
D.s
32、putchar函数可以向终端输出一个D
A)整型变量表达式值
B)实型变量值
C)字符串
D)字符或字符型变量值
33、已有定义inta=-2;
和输出语句;
printf(“%8x”,a);
以下正确的叙述是D
A)整型变量的输出格式符只有%d一种
B)%x是格式符的一种,它可以适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,但%8x是错误的
D)%8x不是错误的格式符,其中数字8规定了输出字段的宽度
34、阅读以下程序,当输入数据的形式为:
25,13,10<
正确的输出结果为D
main(){intx,y,z;
%d%d%d"
,&
z);
x+y+z=%d\n"
x+y+z);
A)x+y+z=48
B)x+y+z=35
C)x+z=35
D)不确定值
scanf:
①遇空格、“回车”、“跳格”键,结束当前输入②遇宽度结束,结束当前输入③遇非法输入,结束所有输入scanf的返回值表示输入成功的数的个数,若遇到输入意外返回EOF你的这个程序,输入逗号是遇到非法字符,scanf结束所有输入同时返回1(因为第一个值是正确的)也就是说如果intret=scanf("
%d%d%d"
ret);
如果输入的是25,13,10<
则程序会打印1,x的值是输入的第一个数25,但y,z却是申请空间时的随机数,所以最后的printf("
x+y+z=%d"
输出是不确定的
35、以下能正确地定义整型变量a、b和c并为其赋值5的语句是B
A)inta=b=c=5(注意此处只定义了a);
B)inta,b,c=5;
C)a=5,b-5,c=5;
D)a=b=c=5;
36、已知ch是字符型变量,下面不正确的赋值语句是A
A)ch=‘a+b‘;
B)ch=‘\0‘;
C)ch=‘7’+‘9‘(ASCALL码值相加);
D)ch=5+9(赋ascall码值);
37、已知ch是字符型变量,下面正确的赋值语句是B
A)ch='
123'
(相当于字符串,不能用单引号);
B)ch='
\xff'
(x前的o可以省略,相当于255或-1);
C)ch='
\08'
(八进制,没有8);
D)ch="
\"
38、设x、y均为float型变量,则以下不合法的赋值语句是B
A)++x;
B)y=(x%2)/10;
C)x*=y+8;
D)x=y=0;
39、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度小于5,则输出按方式C
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该宇串,左补空格
D)输出错误信息
40、有以下程序
main(){int
m,n,p;
m=%dn=%dp=%d"
m,&
n,&
p);
%d%d%d\n"
m,n,p)