还剩49页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第二章基本数据类型及运算
一、选择题
1.若以下选项中的变量已正确定义,则正确的赋值语句是Ax1=
26.8%3;B1+2=x2;Cx3=0x12;Dx4=1+2=3;答案C
2.设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是Ax=x*100+
0.5/
100.0Bx=x*100+
0.5/
100.0Cx=intx*100+
0.5/
100.0Dx=x/100+
0.5*
100.0答案C
3.下列C语言中运算对象必须是整型的运算符是A%=B/C=D*=答案A
4.若有以下程序段intc1=1c2=2c3;c3=
1.0/c2*c1;则执行后,c3中的值是A0B
0.5C1D2答案A
5.设x和y均为int型变量,则以下语句x+=y;y=x-y;x-=y;的功能是A把x和y按从大到小排列B把x和y按从小到大排列C无确定结果D交换x和y中的值答案D
6.下列变量定义中合法的是A)short_a=1-.le-1;B)doubleb=1+5e
2.5;C)longdo=0xfdaL;D)float2_and=1-e-3;答案A
7.以下4个选项中,不能被看作是一条语句的是A{;}Ba=0b=0c=0;Cifa0;Difb==0m=1;n=2;答案D
8.设x=1y=-1,下列表达式中解为8的是A)xyB)~x│xC)x^xD)x=3答案D
9.在C语言中不合法的整数是A)20B)0x4001C)08D)0x12ed答案C
10.以下选项中不正确的实型常量是A)
2.607E-1B
0.8103e
0.2C-
77.77D456e–2答案B)
11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7B)a=7+b+ca++C)int
12.3%4D)a=a+7=c+b答案B)
12.以下十六进制数中不合法的是A)oxffB)0XabcC)0x11D)0x19答案A)
13.设inti=2j=3k=4a=4b=5c=3;则执行表达式(a=ij)b=jkc=ijk后,c值是A)0B)1C)2D)3答案D
14.下列程序的运行结果是#include“stdio.h”voidmain{inti=23;do{++i;}whilei;printf“%d”i;}A)23B)24C)死循环D)无任何结果答案C
15.设inta=3b=4c=5;下列表达式的值不为1的是A)a+bcb==cB)a||b+cb-cC)!ab!c||1D)!a+b+c-1b+c/2答案A
16.下列不合法的常量是
(1)’’
(2)’abc’
(3)”Turboc”
(4)’\0x32’
(5)’\123’
(6)’’’’
(7)”△”
(8)’△’
(9)”\\\”
(10)’’a’’’
(11)’\\’
(12)’\0123’
(13)’\xaf’
(14)’王’
(15)”李为民”
(16)”\xaif”答案
(2),
(12),
(14),
(16)
17.下列运算符中,结合方向为自左向右的是()(A)?(B),(C)+=(D)++答案(B)
18.若有floatx;则sizeofx和sizeoffloat两种描述()(A)都正确(B)都不正确(C)前者正确(D)后者正确答案(A)
19.有整型变量x,单精度变量y=
5.5,表达式x=floaty*3+inty%4执行后,x的值为()(A)17(B)
17.500000(C)
17.5(D)16答案(A)
20.若给定条件表达式(M)a++:a--,则其中表达式(M)A.和M==0等价B.和M==1等价C.和M!=0等价D.和M!=1等价答案C
21.已知floatx=1y;则y=++x*++x的结果是A.y=9B.y=6C.y=1D.表达式是错误的答案D
22.以下程序的输出结果是shorti=65535;printf%d\ni;A.65535B.0C.语法错误,无输出结果D.-1答案D
23.有变量说明语句intabc;,顺序执行下面语句a=b=c=1;++a||++b++c;那么,变量b的值应是()A.2B.1C.0D.3答案B
24.有变量说明inta=3;则表达式a1--a1的运算结果和a的值应该是()A.0和2B.0和3C.1和2D.1和3答案B
25.以下程序的输出为#includestdio.hvoidmain{doublex=
213.82631;printf%-
6.2e\nx;}A.
213.82B.
21.38e+01C.
2.14e+02D.-
2.14e2答案C
26.下列关于单目运算符++、--的叙述中正确的是A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量D)它们的运算对象可以是char型变量、int型变量和float型变量答案D
27.有以下程序#includestdio.hvoidmain{charabc*d;a=\;b=\xbc;c=\0xab;d=\0127;printf%c%c%c%c\nabc*d;}编译时出现错误,以下叙述中正确的是A)程序中只有“a=\;”语句不正确B)“b=\xbc;”语句不正确C)“d=\0127;”语句不正确D)“a=\;”和“c=\0xab;”语句都不正确答案D
28.有以下程序#includestdio.hvoidmain{inta=1b=2m=0n=0k;k=n=ba||m=ab;printf%d%d\nkm;}程序运行后的输出结果是A)0,0B)0,1C)1,0D)1,1答案C
29.已定义ch为字符型变量,下列赋值语句中错误的是A)ch=\;B)ch=62+3;C)ch=NULL;D)ch=\xaa;答案A
30.以下4个选项中,不能看作一条语句的是A){;}B)a=0b=0c=0;C)ifa0;D)ifb==0m=1;n=2;答案D
31.假定有以下变量定义,则能使值为3的表达式是intk=7x=12;A)x%=k%=5B)x%=k-k%5C)x%=k-k%5D)x%=k-k%=5答案D
32.以下程序的输出结果是#includestdio.hvoidmain{intx=3y=2z=1;printf%s=%d\nx/yzx/yz;printf%s=%d\nx^y~zx^y~z;}A)x/yz=0B)x/yz=1x^y~z=0x^y~z=0C)s=x/yz=0D)x/yz=1s=x^y~z=1x^y~z=1答案D
33.设有“intx=11;”则表达式(x++*1/3)的值是A)3B)4C)11D)12答案A
34.若有语句scanf(”%d%c%f”abc)假设输入序列为2223a123o.12a、b、c的值为A)无值B)2223a123o.12C)2223a无D)2223,a,123答案D
35.下列描述中,正确的一条是A)C语言的整型变量可以分为int、short、long、unsignedint、unsignedshort、unsignedlong等几种类型,因此整型常量也可以分为这几种类型B)C语言的字符数据与整型数据可以互相赋值C)若对字符型变量的定义为“charc;”可使用语句c=“a”对变量c赋值D)已知x为float型,执行语句(int)x后,x为int型答案B
36.设“intx=1y=1;”表达式(!x‖y--)的值是A)0B)1C)2D)-1答案B
37.执行x=51+22||2*44-!0后,x的值为A)-1B)0C)1D)5答案C
38.语句“printf%da=2b=-2;”的输出结果是A)无输出B)结果不确定C)-1D)1答案D
39.设a=
2、b=
3、c=4,则表达式a+bcb==ca||b+cb+c的值为A)5B)8C)0D)1答案D
40.执行语句scanf“%c%c%c”c1c2c3,输入abc时,变量c
1、c
2、c3的值分别为A)'a''b''c'B)'a''b'''C)'a''''b'D)'a''''c'答案A
41.若有以下定义inta=10b=9c=8;顺序执行下列语句后,变量b中的值是c=a-=b-5;c=a%11+b=3;A)3B)8C)9D)10答案A
42.有以下程序段intm=0n=0;charc=a;scanf%d%c%d,mcn;printf%d%c%d\nmcn;若从键盘上输入10A10回车键,则输出结果是A)10,A,10B)10,a,10C)10,a,0D)10,A,0答案A
43.已定义c为字符型变量,则下列语句中正确的是A)c='97'B)c=“97“C)c=97D)c=“a”答案C
44.若有以下变量说明和数据的输入方式,则正确的输入语句为()变量说明floatx1x2;输入方式
4.52回车
3.5回车A)scanf“%f%f”x1x2;B)scnaf“%f%f”x1x2;C)scanf“%
3.2f%
2.1f”x1x2;D)scnaf“%
3.2f%
2.1f”x1x2;答案B
45.若有程序段form=1;m=100;m++{scanf%dy;ify0continue;printf%3dm;}正确的描述是()A)当y0时整个循环结束B)y=0时什么也不输出C)printf函数永远也不执行D)最多允许输出100个非负整数答案D
46.下面程序的运行结果是()#includestdio.h#defineDATA20+7voidmain{printfDATA=%dDATA/3;}A)DATA=22B)DATA=21C)DATA=9D)以上都不对答案A
47.sizeoffloat是()A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式答案B
48.设有语句inta=5b=6c=7d=8x=2y=2n;n=x=aby=++cdbc;则执行完上述语句后n的值为()A)1B)2C)3D)0答案D
49.设c1c2均是字符型变量,则以下不正确的函数调用为()A)scanf“c1=%cc2=%c”c1c2;B)c1=getchar;C)putcharc2;D)putcharc1c2;答案D
50.有定义如下charstr1
[50]str2
[20]ch;则下列语句中正确的是()A)str1={“Crazy”};B)str1={“Crazy”};str2=str1;str2={“English”};strcpystr1str2;C)ch=“xy”;D)ch='x';答案D
51.有以下定义语句doubleab;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是()A)a=a+b=b++B)w%inta+bC)c+w%intaD)w=a=b答案C
52.有以下程序#includestdio.hvoidmain{inti=0s=0;for;;{ifi==3||i==5continue;ifi==6break;i++;s+=i;};printf%d\ns;}程序运行后的输出结果是()A)10B)13C)21D)程序进入死循环答案D
53.以下选项中可以作为C语言中合法整数的是(A)10110B(B)0386(C)0Xffa(D)x2a2答案C54.以下选项中可作为C语言合法常量的是(A)-
80.(B)-080(C)-8e
1.0(D)-
80.0e答案A55.若a为整型变量,则以下语句a=-2L;printf“%d\n”a;(A)赋值不合法(B)输出值为-2(C)输出为不确定值(D)输出值为2答案B56.若有以下程序#includestdio.hvoidmain{intk=2i=2m;m=k+=i*=k;printf%d%d\nmi;}执行后的输出结果是(A)86(B)83(C)64(D)74答案C
57.以下非法的赋值语句是(A)n=i+2i++;(B)j++;(C)++i+1;(D)x=j0答案C
58.有以下程序#includestdio.hvoidmain{intx=102y=012;printf“%2d%2d\n”xy;}执行后输出结果是(A)10,01(B)02,12(C)102,10(D)02,10答案C
59.以下程序输出的结果是#includestdio.hvoidmain{printf\n*a=%15schinazhongguo;printf\n*b=%-5s*chi;}(A)*a=chinazhongguo*(B)*a=chinazhongguo*b=**chi**b=chi*(C)*a=*chinabeijing*(D)*a=chinazhongguo**b=chi**b=chi*答案D
60.若整型变量a、b、c、d中的值依次为
1、
4、
3、2则条件表达式aba:cdc:d的值是(A)1(B)2(C)3(D)4答案A
61.设有定义intx=1y=-1;则语句“printf“%d\n”x--++y;”的输出结果是(A)1(B)0(C)-1(D)2答案B
62.若变量a是int类型,并执行了语句a=A+
1.6;,则正确的叙述是(A)a的值是字符C(B)a的值是浮点型(C)不允许字符型和浮点型相加(D)a的值是字符'A'的ASCII值加上1答案D
63.有一下程序#includestdio.hvoidmain{intx=3y=2z=1;printf%d\nx/y~z;}程序运行后的输出结果是(A)3(B)2(C)-1(D)0答案D
64.表达式xb||~cd的运算顺序是(A)~,||(B)~,||—,(C)~,||(D)~,||答案D
65.整型变量x和y的值相等,且均为非0值,则以下选项中,结果为0的表达式是(A)x||y(B)x|y(C)xy(D)x^y答案D
66.在下列符号中,不属于转义字符的是(A)\(B)\x12(C)\013(D)\05答案A
67.若有以下定义intxy;charabc;并有以下输入数据(此处代表空格)12ABC则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是(A)scanfx=%dy=%dxy;a=getchar;b=getchar;c=getchar;(B)scanf%d%dxy;a=getchar;b=getchar;c=getchar;(C)scanf%d%d%c%c%cxyabc;(D)scanf%d%d%c%c%c%c%c%cxyaabbcc;答案D
68.语句printf%03d%-3d\n45;的输出为(A)0045(B)004,5(C)45(D)4,5答案A
69.若有以下程序段inta=0b=0c=0;c=a-=a-5a=bb+3;printf%d,%d,%d\nabc;其输出结果是A)3,0,-10B)0,0,5C)-10,3,-10D)3,0,3答案B)
70.若有以下程序段#includestdio.hvoidmain{inta=2b=5;printfa=%%db=%%d\nab;}其输出结果是A)a=%2b=%5Ba=2b=5C)a=%%db=%%dDa=%db=%d答案D)
71.若变量c定义为float类型,当从终端输入
283.1900CRCR代表回车键,能给变量c赋以
283.19的输入语句是A)scanf“%f”c;B)scanf“%
8.4f”&c;C)scanf“%
6.2f”&c;D)scanf“%8f”&c;答案D)
72.下列运算符中优先级最高的是A)!B)%C)-=D)答案A)
73.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A)abB)a=bC)a||b+cb-cD)!ab&&!c||1答案D)
74.C语言中不合法的字符常量是A)\0xffB)\65C)D)\028答案A)
75.以下的程序#includestdio.hvoidmain{charx=040;printf%d\nx=x1;}其输出是A)100B)160C)120D)64答案D)
76.以下定义语句中正确的是A)chara='A'b='B';B)floata=b=
10.0;C)inta=10*b=&a;D)float*ab=&a;答案C
77.以下所列的C语言常量中,错误的是A)0xFFB)
1.2e
0.5C)2LD)'\72'答案B
78.有以下程序#includestdio.hvoidmain{intm=0256n=256;printf%o%o\nmn;}程序运行后的输出结果是(2004年9月)A)02560400B)0256256C)256400D)400400答案C
79.已经定义ch为字符型变量,以下赋值语句中错误的是A)ch=\;B)ch=62+3C)ch=NULLD)ch=\xaa;答案A
80.有以下程序#includestdio.hvoidmain{intm=3n=4x;x=-m++;x=x+8/++n;printf%d\nx;}程序运行后的输出结果是A)3B)5C)-1D)-2答案D
81.下列程序的输出结果是#includestdio.hvoidmain{doubled=
3.2;intxy;x=
1.2;y=x+
3.8/
5.0;printf%d\nd*y;}A)3B)
3.2C)0D)
3.07答案C
82.设有如下程序段intx=2002y=2003;printf%d\nxy;则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为2003答案D
83.有以下程序#includestdio.hvoidmain{unsignedcharab;a=4|3;b=43;printf%d%d\nab;}执行后输出结果是A)70B)07C)11D)430答案A
84.设a和b均为double型变量,且a=
5.
5、b=
2.5则表达式(int)a+b/b的值是A)
6.500000B)6C)
5.500000D)6000000答案D
85.已有定义intx=3y=4z=5;则表达式!x+y+z-1y+z/2的值是A)6B)0C)2D)1答案D
86.设intx=1y=1;表达式!x||y--的值是A)0B)1C)2D)-1答案B
87.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是A)absx-y10B)x-y-10x-y10C)!x-y-10||!y-x10D)x-y*x-y100答案C
88.在下列选项中,不正确的赋值语句是A)++t;B)n1=n2=n3=0;C)k=i==j;D)b+c=1;答案D
89.若x=2y=3,则xy的结果是A)0B)2C)3D)5答案B
90.下面程序的输出结果是main{unsigneda=32768;printf“a=%d\n”a;}A)a=32768B)a=32767C)a=-32767D)a=-1答案C
91.以下程序的输出结果是#includestdio.hvoidmain{inti=010j=10;printf%d%d\n++ij--;}A)1110B)910C)0109D)109答案B
92.以下程序的输出结果是#includestdio.hvoidmain{intabd=241;a=d/100%9;b=-1-1;printf%d%d\nab;}A61B21C60D20答案B
93.如果在用户的程序中使用C语言库函数中的sqrt函数,应在该源文件中使用的include命令是A)#includestring.hB)#includemath.hC)#includectype.hD)#includestdio.h答案B
94.下面程序的输出结果是#includestdio.hvoidmain{unsignedintab;a=0x9a;b=~a;printf%x%x\nab;}答案9aff65TC
2.0或9affffff65VisualC++
6.
095.sizeofdouble是A)一种函数调用B)一个双精度型表达式C)一个整型表达式D)一个不合法的表达式答案C
96.下面的程序#includestdio.hvoidmain{intx=3y=0z=0;ifx=y+zprintf****;elseprintf####;}A)有语法错误不能通过编译B)输出****C)可以通过编译,但是无法连接,因而不能运行D)输出####答案D
97.已知i、j、k为int型变量,若从键盘输入1,2,3回车,使i的值为
1、j的值为
2、k的值为3,以下选项中正确的输入语句是(2002年9月)A)scanf%2d%2d%2dijk;B)scanf%d%d%dijk;C)scanf%d%d%dijk;D)scanfi=%dj=%dk=%dijk;答案C
98.设有以下语句charx=3y=6z;z=x^y2;则z的二进制值是A.00010100B.00011011C.00011100D.00011000答案B
99.putchar函数可以向终端输出一个A)整型变量表达式的值B)实型变量的值C)字符串D)字符或字符型变量的值答案D
100.已知ch是字符型变量,下面不正确的赋值表达式是A)ch=a+bB)ch=\0C)ch=7+9D)ch=5+9答案A
101.以下常量中,合法的是_______A)5e
2.5B)e8C)’\\’D)’BASIC’答案C
102.C语言提供的合法的数据类型关键字是_______A)DOUBLEB)shortC)integerD)Character答案B
103.下列不正确的转义字符是_______A)’\\’B)’\0’C)’\’’D)’057’答案D104.C语言中,合法的长整型常数是_______A)1LB)5074369C)225DD)326581答案A105.以下类型中属于C语言的数据类型是_______A)逻辑型B)纯小数型C)复数型D)双精度型答案A106.C语言中,运算对象必须是整形数的运算符是_______A)*B)%C)+D)/答案B107.表达式1020的值是_______A)10B)20C)0D)1答案D108.表示关系x≤20或x≥50,应使用C语言表达式是_______A)x=20||x=50B)x=20orx=50C)x≤20orx≥50D)x≤20||x≥50答案A109.已知intt=1;t+=9;y=t++;则y=_______A)11B)10C)9D)1答案B110.已知chara;intb;floatc;doubled;则表达式a+b*c-d的结果为_______型A)charB)intC)floatD)double答案D
111.若x为int型变量,则执行语句x=10;x+=x—=x—x后,x的值为_______A)0B)10C)20D)30答案C
112.若x、a、b、c均为int型变量,则执行表达式x=a=4b=8c=12后,x的值为_______A)4B)8C)12D)24答案C
113.在C程序中,x+y是_______、x+y;是_______A)表达式、语句B)表达式、表达式C)语句、语句D)语句、表达式答案A114.已知intx=23;则printfx++*1/3的输出结果为_______A)8B)
7.66C)
7.33D)7答案D115.若a、b、c为int型变量,且值均为5;则以下表达式正确的是_______A)
17.6%aB)a=a+7=b+cC)c=b=a*5+6D)a:=c+b答案C
116.设intb=2;表达式b2/b1的值是B2C4D8答案B
117.以下程序的功能是进行位运算#includestdio.hvoidmain{unsignedcharab;a=7^3;b=~43;printf%d%d\nab;}程序运行后的输出结果是A)43B)73C)70D)40答案A
118.以下程序的输出结果是_______#includestdio.hvoidmain{inta=-1b=4k;k=++a0b+=5;printf%d%d%d\nkab;}A)104B)103C)003D)004答案D
119.若有以下定义和语句charc1=bc2=e;printf%d%c\nc2-c1c2-a+A;则输出的结果是_______A)3,EB)3,DC)2,DD)2,E答案A
120.已知,x是int型变量,y是float型变量,用下列语句给这两个变量赋值时,为了把100和
75.3分别赋给x和y,则正确的输入为_______scanf“x=%dy=%f”xy;A)100空格
75.3回车B)x=100,y=
75.3回车C)100回车
75.3回车D)x=100回车y=
75.3回车答案B
121.以下对于scanf函数叙述正确的是_______“x=%dy=%f”xy;A)输入项可以是一个实型常量,如scanf“%f”
7.3;B)当输入数据时,必须指明变量地址,如scanf“%f”a;C)当输入一个实型数据时,可以规定小数点后位数,如scanf“%
5.3f”a;D)只有格式控制,没有输入项也能正确输入数据,如scanf“x=%dy=%f”;答案B
123.语句printf“%d”a=2b=-2;的输出结果是_______A)1B)0C)提示语法错误D)结果不确定答案A
124.若有以下定义和语句intx=‘f’;printf“%c\n”‘A’+x–‘a’+2;则输出的结果是_______A)HB)hC)GD)I答案A
125.下列程序运行的结果是_______#includestdio.hvoidmain{inta=9b=7;printfa=%db=%d\nab;}A)a=%9b=%7B)a=9b=7C)a=%db=%dD)97答案B
126.语句printf“a\bcd\’ef\’g\\\bij\n”;的输出结果是_______A)a\bcd\’ef\’g\\\bij\nB)acd’ef’gbij\nC)cd’ef’gijD)以上均不正确答案C
127.执行下列程序片断后c的值是_______inta=1b=2c;c=
1.0/b*a;A)0B)
0.5C)1D)2答案A
128.已知x、y、z被定义为int型变量,若从键盘对其输入数据,正确的是_______A)INPUTxyz;B)read“%d%d%d”xyz;C)scanf“%d%d%d”xyz;D)scan“%d%d%d”xyz;答案C
129.执行下列程序后的输出结果是_______#includestdio.hvoidmain{intx=11;printfx=%dx=%ox=%x\nxxx;}A)x=11x=o13x=oxbB)x=11x=13x=11C)x=11x=13x=bD)x=11x=o13x=ox11答案C
130.分析以下程序,其输出结果是_______#includestdio.hvoidmain{intabc=210;a=c/100%9;b=-1-1;printf%d%d\nab;}A)210-1B)210C)2-1D)21答案D
131.已定义str为字符型变量,则以下赋值语句中错误的是A)str=\;B)str=NULL;C)str=55+8;D)str=‘\xbb’;答案A
132.已定义c为字符型变量,则下列语句中正确的是A)c=‘98’;B)c=98;C)c=98;D)c=b;答案C
133.有以下程序#includestdio.hvoidmain{printf%d\nNULL;}程序运行后的输出结果是A)0B)1C)-1D)NULL没有定义,出错答案A
134.下列程序执行后的输出结果是#includestdio.hvoidmain{intx=f;printf%cA+x-a+1;}A)GB)HC)ID)J答案A
135.若变量c为char类型,能正确判断出c为数字的表达式是A)0=c=9B)c=0||c=9C)0=cand9=cD)c=0c=9答案D
136.若有定义charc=’\010’;则该变量中包含的字符个数是A)非法定义B)1个C)3个D)4个答案B
137.下列函数中能够向终端输出一个字符或字符型变量值的是A)getsB)putsC)getcharD)putchar答案D
138.若有下列语句charc=’A’;printf“%d”c;则输出的结果是A)AB)cC)65D)错误的语句答案C
139.下列程序输入’a’字母后,执行程序后输出的结果是#includestdio.hvoidmain{charc;c=getchar;c=c-32;printf%c\nc;}A)65B)AC)97D)a答案B
140.以下不能正确计算代数式值的C语言表达式是______A)1/3*sin1/2*sin1/2B)sin
0.5*sin
0.5/3C)powsin
0.52/3D)1/
3.0*powsin
1.0/22答案A
141.以下能正确定义且赋初值的语句是______A)intn1=n2=10;B)charc=32;C)floatf=f+
1.1;D)doublex=
12.3E
2.5;答案B
142.设有定义intk=1m=2;floatf=7;,则以下选项中错误的表达式是______A)k=k=B)-k++C)k%intfD)k=f=m答案C
143.设有定义inta=2b=3c=4;,则以下选项中值为0的表达式是______A)!a==1!b==0B)aB!c||1C)abD)a||b+bc-a答案A
144.以下选项中可作为C语言合法常量的是______A)-
80.B)-080C)-8e
1.0D)-
80.0e答案A
145.以下不能定义为用户标识符的是______A)MainB)_0C)_intD)sizeof答案D
146.以下选项中不能作为合法常量的是______A)
1.234e04B)
1.234e
0.4C)
1.234e+4D)
1.234e0答案B
147.有以下程序#includestdio.hvoidmain{intm=12n=34;printf%d%dm++++n;printf%d%d\nn++++m;}程序运行后的输出结果是______A)12353514B)12353513C)12343514D)12343513答案A
148.有以下程序voidmain{intabd=25;a=d/10%9;b=a-1;printf%d%d\nab;}程序运行后的输出结果是______A)61B)21C)60D)20答案B
149.以下叙述中正确的是______A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码答案B
150.以下程序的功能是给r输入数据后计算半径为r的圆面积s程序在编译时出错#includestdio.hvoidmain{intr;floats;scanf%dr;s=p*r*r;printfs=%f\ns;}出错的原因是______A)注释语句书写位置错误B)存放圆半径的变量r不应该定义为整型C)输出语句中格式描述符非法D)计算圆面积的赋值语句中使用了非法变量答案D
151.数字字符0的ASCII值为48,若有以下程序#includestdio.hvoidmain{chara=1b=2;printf%cb++;printf%d\nb-a;}程序运行后的输出结果是______A)32B)502C)22D)250答案C
152.有定义语句intb;charc
[10];则正确的输入语句是______A)scanf%d%sbc;B)scanf%d%sbc;C)scanf%d%sbc;D)scanf%d%sbc;答案B
153.有以下程序#includestdio.hvoidmain{intmnp;scanfm=%dn=%dp=%dmnp;printf%d%d%d\nmnp;}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______A)m=123n=456p=789B)m=123n=456p=789C)m=123n=456p=789D)123456789答案A
154.有以下程序#includestdio.hvoidmain{charc1=1c2=2;c1=getchar;c2=getchar;putcharc1;putcharc2;}当运行时输入a回车后,以下叙述正确的是______A)变量c1被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符C)变量c1被赋予字符a,c2中仍是原有字符2D)变量c1被赋予字符a,c2中将无确定值答案A
155.以下程序的功能是进行位运算#includestdio.hvoidmain{unsignedcharab;a=7^3;b=~43;printf%d%d\nab;}______B)73C)70D)40答案;A
156.有以下程序#includestdio.hvoidmain{intc=35;printf%d\ncc;}B)70C)35D)1答案C
157.设有定义语句charc1=92c2=92;则以下表达式中值为零的是Ac1^c2Bc1c2C~c2Dc1|c2158.有定义语句intab;,若要通过scanf%d%dab;语句使变量a得到数值30,变量b得到数值40,则下面四组输入形式中,错误的输入形式是A)3040回车>B)30,40<回车>C)3040<回车>D=30<回车>40<回车>答案A159.若有说明语句charch=’65’;则变量chA)包含3个字符B)包含2个字符C)包含1个字符D)说明不合法,变量值不确定答案C160.已知字母a的ASCII码为十进制的97,ch1为字符型变量,则执行语句ch1=a+7-5;后,ch1中的值为A)99B)不确定的值C)bD)c答案D161.假设变量a是整型,b是实型,c是双精度型,则表达式30+a+c*b的值的数据类型是A)intB)floatC)doubleD)不确定答案C162.若变量c为char类型,能正确判断出c为大写字母的表达式是A)A=c=ZB)c=A||c=ZC)A=candZ=cD)c=Ac=Z答案D163.若有定义inta=7;f1oatx=
2.5,y=
4.7;则表达式x+a%3*intx+y%2/4的值是A)
2.5B)
2.7C)
3.5D)
4.7答案A164.下列程序执行后的输出结果是#includestdio.hvoidmain{intx=f;printf%cA+x-a+1;}A)GB)HC)ID)J答案A165.在C语言中(以TC编译系统为例),5种基本数据类型的存储空间长度的排列顺序为A)charintlongint=floatdoubleB)char=intlongint=floatdoubleC)charintlongint=float=doubleD)char=int=longint=floatdouble答案A
166.在c语言中,非char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码答案A
167.在c语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码答案D
二、填空题
1.printf库函数的第一个参数中的格式串是指明输出数据格式,各种数据类型对应的基本格式串是short、int1long2float
3、4double
5、6char
7、8字符串9答案1%d2%Ld3%f4%e5%f
(6)%e7%c8%d9%s
2.scanf库函数格式串和输入项之间的关系是答案一一对应关系格式串与输入项的个数要相同,顺序要一致,类型要匹配
3.阅读下述程序功能将三位整数n的十位数的数字变为0例如,输入三位整数为738,输出为708请将正确答案写在横线处#includestdio.hvoidmain{1;printf“输入一个三位整数”;scanf“%d”n;d2=2;/*取出百位数的数字*/d0=3;/*取出个位数的数字*/printf“输出三位整数%d\n”4;}答案1intnd2d02d2=n/1003d0=n%104d2*100+d
05.若x为单精度型变量,y为字符型变量,z为整型变量,执行如下的输入语句scanf“%f%c%d”xyz;后,从键盘输入
12.77A79A86此时,变量x、y、z的值分别为
①、
②、
③答案
①
12.770000
②A
③
796.表达式8/4*int
2.5/int
1.25*
3.7+
2.3的值是答案
07.已知charc=A;inti=1j;执行语句j=!ci++后,i和j的值分别是和答案1,
08.执行下面的程序#includestdio.hvoidmain{inta=0100b=100;printfx=%dy=%d\n--ab++;}则输出结果是答案x=63y=
1009.如果要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入
10、
20、
30、40,正确的输入形式是,请用CR表示回车键scanf%d%c%d%d%c%c%d%cwaxybczd;解输入格式“%c”表示输入任意一个字符,包括按回车、空格和Tab键等因此在输入整数
10、
30、40后不能输入空格而要直接输入字母;同理,字母B和C之间也不能输入空格同时在20和30之间必须输入空格进行两个整数的区分所以本题答案为10A20□30BC40DCR(其中,“□”表示一个空格)
10.有以下程序#includestdio.hvoidmain{charch1ch2;intn1n2;ch1=getchar;ch2=getchar;n1=ch1-0;n2=n1*10+ch2-0;printf%d\nn2;}程序运行时输入12回车,执行后输出结果是(2004年4月)答案
1211.程序的运行结果为#includestdio.hvoidmain{charc1=ac2=bc3=c;printfa%cb%c\tc%c\nc1c2c3;}答案aabbcc
12.请在空白处填上适当的语句,使以下程序的输出结果是
16.00,#includestdio.hvoidmain{inta=9b=2;floatx=y=
1.1z;z=a/2+b*x/y+1/2;printf“%
5.2f\n”z;}答案
6.
613.有如下程序#includestdio.hvoidmain{inty=3x=3z=1;printf%d%d\n++xy++z+2;}运行该程序的输出结果是A)34B)42C)43D)33答案D
14.以下程序段中与语句k=abbc1:0:0;功能等价的是A)ifabbck=1;Bifab‖bck=1;elsek=0;elsek=0;C)ifa=bk=0;Difabk=1;elseifb=ck=1;elseifbck=1;elsek=0;答案A
15.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量是'\101'是答案A
16.下面程序的运行结果是#includestdio.h#defineSTRaCprogramvoidmain{printfNo.1ThisisaSTR!\n;printfNo.2Thisis%s!STR;}答案No.1:ThisisaSTR!No.2:ThisisaCprogram!
17.若有以下程序main{inti=4;printf“%d”-++i;}该程序执行后的输出结果以及i的值分别是【1】、【2】答案【1】-5【2】
518.以下程序运行时若从键盘输入102030回车输出结果是#includestdio.hvoidmain{inti=0j=0k=0;scanf%d%*d%dijk;printf%d%d%d\nijk;}答案
1030019.以下程序的执行结果是#includestdio.hvoidmain{intabc;c=a=3b=a--;printfc=%da=%db=%d\ncab;}答案c=3a=2b=
320.已知x=
7.5y=2z=
3.6则表达式xyzxy!zy的值是
(3)答案
021.以下程序运行的结果是#includestdio.hvoidmain{intabc;a=1;b=2;c=3;a=b--=a||a+b!=c;printf%d%dab;}答案1,
122.输入“12345xyz”,下列程序输出的结果是main{intx;chary;scanf“%3d%3c”xy;printf“%d%c”xy;}答案123,
423.以下的程序执行时,先输入a;后输入b最后显示的结果是#includestdio.hvoidmain{intxy;printfEnteracharacter;x=getchar;y=getchar;printfEnteracharacteragain;x=getchar;y=getchar;printf%c%c\nxy;}答案b
24.读程序段inta=-5;a=a|0337;printf%d%o\naa;以上程序段输出结果是答案-1,
17777725.设有二进制数a的值为11001101,若通过ab运算使a中的低4位不变,高4位清零,则b的二进制数是答案
0000111126.设a是一个整数(两个字节),若要通过a|b使a的低八位为1,高八位不变,则b的八进制数是答案
037727.变量i、j、k已定义为int类型并有初值0,用以下语句进行输入scanf%di;scanf%dj;scanf%dk;当执行以上输入语句,从键盘输入(CR代表Enter键)
12.3CR则变量i、j、k、的值分别是
[1]、
[2]、
[3]答案
[1]12
[2]0
[3]
028.有以下语句段intn1=10n2=20;printfn1n2;要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空n1=10n2=20答案n1=%d\nn2=%d\n
29.把int型变量low中的低字节及变量high中的高字节放入变量s中的表达式是答案s=high0xffff0000│low0x0000ffff此题结果与编译环境有关,上面结果为VisualC++
6.0环境下的表达式
30.以下语句的输出结果为charc=x;printfASCIIofx dec=%doct=%ohex=%xcharacter=%c\ncccc;答案ASCIIofx dec=120oct=170hex=78character=x
31.表示关系x≤y≤z,应使用C语言表达式是_【_1_】_;表示数学式的C语言表达式是_【_2_】_答案【1】x=yy=z;【2】a/b*c
32.已知chara;intb;floatc;doubled;则表达式a*b+c-d的结果为_【_1_】_型答案【1】double
33.执行了以下程序片断后,x=_【_1_】_;y=_【_2_】_intx=10y=10;x++;++y;答案【1】10;【2】
1134.若a、b、x、y均为int变量,且a=b=6x=y=7则执行表达式x=aby=2后x的值为_【_1_】_;y的值为_【_2_】_答案【1】0;【2】
735.若intx=3,则执行表达式x*=x+=x-1后x的值为_【_1_】_答案【1】
2536.已知intx=256,执行语句printf“%x”x的结果是_【_1_】_答案【1】
010037.已知intx=97,执行语句printf“%c”x的结果是_【_1_】_;执行语句printf“%d”x的结果是_【_2_】_答案【1】a;【2】9738.在C语言中所提供的数据结构是以数据类型形式出现的,其中的基本类型包括int型即_【_1_】__、float型即_【_2_】__、double型即_【_3_】__、char型即_【_4_】__等答案【1】整型;【2】单精度型;【3】双精度型;【4】字符型
39.表达式3*7%2+7%2*5的值为_【_1_】__;表达式
8.0*1/2的值为_【2】__答案【1】6;【2】
0.0;
40.C语言中的赋值运算是_【_1_】__,表示相等的关系运算符是_【_2_】__答案【1】=【2】==
41.C语言本身不提供输入输出语句,输入和输出操作是由_【_1_】__实现的,如格式输出函数_【_2_】__和格式输入函数_【_3_】__答案【1】函数【2】printf【3】scanf
42.putchar函数的作用是_【_1_】__,getchar函数的作用是_【_2_】__和答案【1】向终端输出一个字符;【2】从终端输入一个字符
43.在printf函数的格式说明中,%d表示_【_1_】__,%o表示_【_2_】__,%f表示_【_3_】__,%s表示_【_4_】__,%ld表示 【5】 答案【1】输出十进制整数;【2】以八进制数形式输出整数;【3】输出实数;【4】输出一个字符串;【5】输出长整型数据
44.若想通过以下输入语句给x赋1,给y赋2,则输入数据的形式应是_【_1_】__intab;scanf“x=%dy=%d”xy;……答案【1】x=1y=
245.若想通过以下输入语句使a=
5.0b=4c=3则输入数据的形式应该是_【_1_】__intcb;floata;scanf“%f%dc=%d”abc;答案
5.04c=
346.语句printf“%d”x++;printf“%d”++x;x+=1;x=1+x;x=x+1中,执行后能使变量x的值增1的有_【_1_】__;语句;的输出结果是否相等_【_2_】__;语句;;是否完全等效_【_3_】__答案【1】;;;;;【2】不相等;【3】完全等效
47.C程序中的字符常量是用_【_1_】__括起来的一个字符;除此之外,还允许用一种特殊形式的字符常量,是以_【_2_】__开头,被称为转义字符答案【1】单引号【2】\
48.转义字符\n的功能是_【_1_】__;\b的功能是_【_2_】__;\\的功能是_【_3_】__答案【1】换行【2】退格【3】输出反斜杠字符\
49.将一个字符常量放到一个字符变量中,实际上并不是把该字符放到内存单元中去,而是将该字符的相应_【_1_】__放到存储单元中,其存储形式与_【_2_】__的存储形式相类似,所以可以以_【_3_】__形式输出答案【1】ASCII码【2】整数【3】整数
50.字符串常量是一对_【_1_】__括起来的字符序列,且以_【_2_】__结束;则字符串china的长度是_【_3_】__个字符答案【1】双引号【2】\0【3】
651.C语言中没有专门的字符串变量,如需要存放在变量中,则以_【_1_】__形式来存放答案【1】字符数组
52.执行以下程序段后,输出的结果是_【_1_】__charc=z;printf%cc-25;答案【1】a
53.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是_【_1_】__chara
[10]b;scanfa=%sb=%cab;答案【1】a=1234b=
554.通过使用关键字_【_1_】_,可以将一个变量定义为一个常量答案【1】const
55.常量是指在程序执行过程中其值_【_1_】_改变的量答案【1】不能
56.变量是指在程序执行过程中其值_【_1_】_改变的量答案【1】可以
57.在C程序中,大写字母和小写字母是无区别的,此说法正确吗?_【_1_】_答案【1】不正确
58.以0开头的整数是_【_1_】_答案【1】八进制数
59.以0x开头的整数是_【_1_】_答案【1】十六进制数
60.在一个整数后面加一个字母_【_1_】_,则认为是longint型常量答案【1】l或L
61.C整型变量可分为基本型、_【_1_】_、_【_2_】_和无符号型四种答案【1】短整型【2】长整型
62.C实型变量分为_【_1_】_和_【_2_】_两类答案【1】单精度【2】双精度
63.C的字符常量是用_【_1_】_括起来的一个字符答案【1】单引号
64._【_1_】_字符的意思是将反斜杠\后面的字符转变成另外的意义答案【1】转义
65.转义字符\n表示_【_1_】_符,使光标移到屏幕上下一行开头答案【1】换行
66.一个字符变量在内存中占_【_1_】_字节答案【1】一个
67.一个字符数据既可以以字符形式输出,也可以以_【_1_】_形式输出答案【1】整数
68.字符串常量是用_【_1_】_括起来的字符序列答案【1】双引号
69.C规定以字符_【_1_】_作为字符串结束标志答案【1】\
070.在进行运算时,不同类型的数据必须_【_1_】_,然后进行运算答案【1】先转换成同一类型
71.可以利用_【_1_】_运算符将一个表达式的值转换成指定的类型答案【1】强制类型转换
72.有两种类型转换,一种是在运算时不必用户指定,系统自动进行类型转换;另一种是_【_1_】_答案【1】强制类型转换
73.两个整数相除的结果是_【_1_】_数答案【1】整
74.求模运算符(%)只能用于_【_1_】_操作数答案【1】整型
75.算术运算符*、/、%、+、-的优先级相同此说法正确吗?_【_1_】_答案【1】不正确
76.所有运算符中级别最低的是_【_1_】_运算符答案【1】逗号
77.自增运算符(++)和自减运算符(--)只能用于变量,而不能用于_【_1_】_答案【1】常量或表达式
78.自增运算符(++)和自减运算符(--)的结合性是_【_1_】_答案【1】右结合性(自右至左)
79.赋值运算符的作用是将一个数据或表达式的值赋给一个_【_1_】_答案【1】变量
80.sizeofdouble表示的含义是一个double型数据占用内存的_【_1_】_数答案【1】字节
81.一个表达式的最后加上一个_【_1_】_就成了一个语句答案【1】分号
82.结构化程序设计中有三种基本结构顺序结构、_【_1_】_、_【_2_】_答案【1】选择结构;【2】循环结构
83.在C中,赋值语句和赋值表达式是相同的概念,此说法对吗?_【_1_】_答案【1】不正确
84.C语言本身不提供输入输出语句,输入和输出操作是由_【_1_】_来实现的答案【1】函数
85.printf函数的作用是_【_1_】_答案【1】向终端输出若干个任意类型的数据
86.putchar函数的作用是_【_1_】_答案【1】向终端输出一个字符
87.scanf函数的作用是_【_1_】_答案【1】从终端输入若干个任意类型的数据
88.getchar函数的作用是_【_1_】_答案【1】从终端输入一个字符
89.scanf函数中应当是变量_【_1_】_,而不应是变量名答案【1】地址
90.程序执行时,注释语句使计算机在屏幕上打印//之后的文本此说法对吗?_【_1_】_答案【1】不正确
99.所有变量都应先声明后使用此说法对吗?_【_1_】_答案【1】正确
100.C中变量number和NuMbEr是相同的此说法对吗?_【_1_】_答案【1】不正确101.C语言既具有高级语言的特点,又具有低级语言的功能,因而具有广泛的用途和很强的生命力其指针运算和_【_1_】_运算就很适合于系统软件设计的需要答案【1】位102.位运算是指进行_【_1_】_的运算答案【1】二进制位103.一个字节一般由_【_1_】_个二进位组成,每一个二进位的值是_【_2_】_答案【1】8;【2】0或1104.原码只将最高位作符号位(以_【_1_】_代表正,_【_2_】_代表负),其余个位代表数值本身的绝对值(以二进制表示)答案【1】0;【2】1105._【_1_】_的补码同其原码相同,_【_2_】_的补码为最高位是1,其余各位为原码的相应位取反,然后对整个数加1答案【1】正数;【2】负数106._【_1_】_的补码是唯一的,其值为_【_2_】_答案【1】0;【2】0107.用补码进行运算,减法可以用_【_1_】_法来实现答案【1】加108.计算机是以_【_1_】_码形式存放数的答案【1】补109.按位与运算的特殊用途_【_1_】_、取一个数中某些指定位、保留一个数中的某一位答案【1】清零110.按位或运算常用来对一个数据的某些位定值为_【_1_】_答案【1】1111.按位异或运算的特殊用途使特定位_【_1_】_、交换两个值,不用_【_2_】_答案【1】翻转;【2】临时变量112.同一个数与本身相_【_1_】_运算,结果必为0答案【1】异或113.取反运算符的优先级别比算术运算符、关系运算符、逻辑运算符和其它位运算符都_【_1_】_答案【1】高114.左移比乘法运算快得多,乘2运算可用左移_【_1_】_位来实现答案【1】一115.右移一位相当于除以_【_1_】_答案【1】
2116.以下程序的运行结果是___#includestdio.hvoidmain{inti=8j=9mn;m=++i;n=j++;printf%d%d%d%d\nijmn;}答案9,10,9,9117.以下程序的运行结果是#includestdio.hvoidmain{intabc;a=b=c=1;ifa++||++bc++;printf%d%d%d\nabc;}答案2,1,2118.以下程序的输出结果是___#includestdio.hvoidmain{intki=0j=2;k=i++j++;printf%d%d%d\nijk;}答案1,2,0119.下列程序的输出结果是___#includestdio.hvoidmain{inta=3b=4c=5;printf%d\na++-c+++b;}答案2120.下列程序的输出结果是___#includestdio.hvoidmain{inta=3b=14c=5;c=c+a*a+b%5*10;printf%o\nc;}答案66121.有以下程序若从键盘输入247回车,则程序的输出结果是_#includestdio.hvoidmain{intc;whilec=getchar!=\n{switchc-2{case0:case1:putcharc+4;case2:putcharc+4;break;case3:putcharc+3;default:putcharc+2;break;}}}答案6689
三、问答题
1.字符型常量和字符串常量有什么区别?解字符型常量与字符串常量的书写方式不同,用单引号括起来的字符是字符常量,用双引号括起来的字符是字符串常量字符串常量与字符型常量的存储方式不同,C编译程序在存储字符串常量时,自动采用\0作为字符串常量的结束标志
2.已知inti=5j=5;试问表达式或函数输出的值
(1)i++-++j
(2)++i-j++
(3)printf“%d\n”++i+++j;
(4)printf“%d\n”i+++j;答案
(1)-1
(2)1
(3)12
(4)
103.程序改错#includestdio.hvoidmain{floatf=
7.12;charc=“c”;printf“%d\n”intf%3;printf%cc;}解正确程序如下#includestdio.hvoidmain/*修改*/{floatf=
7.12;charc=c;/*修改*/printf%d\nintf%3;/*修改*/printf%cc;}
4.请指出以下程序段中的错误#includestdio.hvoidmain{shortjik;charabc;floatxyz;i=30000;j=30000;a=9;b=5;k=a*i+b*j;z=x*x+y*y;}答错误的地方如下
(1)变量k的值溢出,不能得到正确结果
(2)变量x和y未赋初值
5.以下程序的输出是什么?#includestdio.hvoidmain{inti;unsignedintj;i=~0;j=~0;printfi=%dj=%d\nij;}答输出结果为i=-1j=-
16.使用运算符++可以把以下3个语句写成一个语句请设法写出这个语句,并编程上机验证结果y=y+1;z=x+y;x=x+1;答可使用语句z=x+++++y;
7.假定输入的数据流如下
23.
45678912.23567helloF
34.32为了把第二个数赋给变量second,把第三个数赋给变量third,把字符’F’赋给变量ch问scanf函数的表示形式是什么?解scanf%*f%f%d%*5s%csecondthirdch;
8.找出并更正以下程序中的错误#includestdio.hvoidmain{doublepound;doublekilograms;scanf“%f”pound;kilogram=pound/
2.2;printf“%dpoundsequals%dkilograms\n”poundskilograms;}答正确的程序如下#includestdio.hvoidmain{doublepound;doublekilograms;scanf%lfpound;/*输入输出double型数,要使用格式符%lf*/kilograms=pound/
2.2;printf%lfpoundsequals%lfkilograms\npoundkilograms;}
9.语句printfa\bRe\CH\y\\\bou\n;的输出结果是答案Re’CH’you
10.说明下面程序的输出结果#includestdio.hvoidmain{intx=f;printf%c\nA+x-a+1;}答输出大写字母G因为x-’a’是字符常量’f’的ASCII码值减去字符常量’a’的ASCII码值结果是5,加1后为6于是’A’+6得到的是大写字母G的ASCII码值按格式“%c”输出,即是字母G
11.分析下面程序的输出结果#includestdio.hvoidmain{intxmnab;m=n=a=b=8;x=m=abn=ab;printfx=%dm=%dn=%d\nxmn;}【解】输出结果是x=0m=0n=8这里,变量m、n、a、b初始值都是8语句x=m=abn=ab;把逻辑表达式m=abn=ab的值赋给变量x逻辑运算符左右两边都是赋值表达式左边是把关系表达式ab的值赋给变量m;右边是把关系表达式ab的值赋给变量n.在计算这个逻辑表达式取值时,左边的关系表达式ab不成立,因此取值为0也就是说,变量m的值为0,所以左边的条件取值为假于是,C语言不再去计算这个逻辑表达式右边的条件,而直接把逻辑值0赋给变量x正因为没有去计算右边表达式的取值,所以并没有做把关系表达式的ab的值赋给变量n的操作因此变量n仍保持它原有的值
812.执行下面的程序后,变量b里的值是什么?#includestdio.hvoidmain{intx=35;charc=A;intb;b=x15ca;printf%d\nb;}【解】这里是要把逻辑表达式(x15)c‘a’的值赋给变量b该逻辑表达式进行的是逻辑与(“”)运算它的左边是一个位逻辑表达式,右边是一个关系表达式先来看左边的x15从图3-4看出,运算结果是3,即是逻辑真,取值为1再来看右边的关系表达式c‘a’由于变量c里存放的是’A’,它的ASCII码值
(65)小于’a’的ASCII码值
(97)因此,该关系成立,运算结果为1所以,整个逻辑表达式的结果是1因此,程序执行后,变量b里的值是
113.以下程序的执行结果是什么?为什么?#includestdio.hmain{longa=32767;longb;b=a+1;printfa=%ldb=%ld\nab;}解这里都是长整型数,存储一个数的位数是32,故直接相加即可所以,本程序的执行结果为a=32767b=
3276814.执行以下程序时输入1234567请写出程序运行结果#includestdio.hvoidmain{intxy;scanf%2d%*2s%1dxy;printfx=%dy=%d\nxy;}解scanf函数中第一个格式说明为“%2d”,表示接受两个数字即12赋给x;第二个格式说明为“%*2s”,表示接受两个数字不赋给任何变量,即跳过34;第三个格式说明为“%1d”,表示接受一个数字即5赋给y所以程序输出为x=12y=
515.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{inti;floatf;charc;scanf%d%c%ficf;printfi=%dc=%cf=%f\nicf;}当输入100a
1.563时,程序的运行结果是当输入
1.23456时,程序的运行结果是答案当输入100a
1.563时,程序的运行结果是i=100c=af=
1.563000当输入
1.23456时,程序的运行结果是i=1c=.f=
23456.
00000016.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{inti=010j=10k=0x10;printfi=%dj=%dk=%d\nijk;}运行结果是答案运行结果是i=8j=10k=
1617.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{inta=7b=9;a=a+b;b=a-b;a=a-b;printfa=%db=%d\nab;}运行结果是答案运行结果是a=9b=
718.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{intabc;a=b=c=3*5*5;printfa=%db=%dc=%d\nabc;}运行结果是答案运行结果是a=30b=15c=
319.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{inta=16bx=6yz;b=a+++1;printfb=%d\nb;x*=a=b;printfx=%d\nx;x=1;y=2;z=3;x+=y+=z;printf%d\nz+=xyx++:y++;}运行结果是答案运行结果是b=17x=
102920.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{printfabc\tde\rf\tg\n;printfh\ti\b\bjk;}运行结果是答案运行结果是fgdehjk
21.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{charc1c2;intn1n2;c1=getchar;c2=getchar;n1=c1-0;n2=n1*10+c2-0;printf%d\nn2;}若输入48,则运行结果是答案
4822.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后voidmain{charc;intn=100;floatf=10;doublex;x=f*=n/=c=50;printf%d%f\nnx;}运行结果答案
220.
00000023.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后voidmain{intabc;a=10;b=20;c=a%b1||a/b1;printf%d%d%d\nabc;}运行结果
1020024.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后#includestdio.hvoidmain{intx=0210;printf%X\nx;}运行结果答案
8825.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后已知字母A的ASCII码为65以下程序运行后的输出结果是______#includestdio.hvoidmain{charab;a=A+5-3;b=a+6-2;printf%d%c\nab;}运行结果答案67G
26.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果”之后已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入B33回车,则输出结果是______#includestdio.hvoidmain{charab;a=getchar;scanf%db;a=a-A+0;b=b*2;printf%c%c\nab;}运行结果答案1B
27.
四、编程题
1.编写程序,读入3个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果【分析与解答】
(1)定义4个双精度变量a、b、c和ave变量a、b、c分别存放读入的3个双精度数,ave存放它们的平均值
(2)设计输入语句,以及在此之前用于提示输入的(printf)语句
(3)设计求平均值的算法,把所求得平均值放入变量ave中
(4)设计把变量ave中的数,从小数点后第二位数进行四舍五入的算法现举例说明若ave中的数为
123.4644,为了保留此值小数点后一位,可用表达式(int)(
123.4644*10)/
10.0;依次推算,为了保留此值小数点后二位,可用表达式(int)(
123.4644*100)/
100.0;其他依次类推
(5)若要求对小数点后第二位数进行四舍五入,则可对原数加
0.05后再进行以上运算如要求保留
123.4644小数点后一位且对第二位数进行四舍五入,可用表达式(int)((
123.467+
0.05)*10)/
10.0注意分母一定要用实数
10.0而不能用整数10,否则就变成整除了;若要求保留
123.4644小数点后两位且对第三位数进行四舍五入,可用表达式(int)((
123.467+
0.005)*100)/
100.0;其他依此类推
(6)设计输出语句输出a、b、c和ave
(7)把以上内容放在主函数的一对花括号中
(8)编写程序如下#includestdio.hvoidmain{doubleabcave;printfEnterabc;scanf%1f%1f%1fabc;ave=a+b+c/3;printfave=%f\nave;/*用以比较四舍五入前后的数据*/ave=intave+
0.05*10/
10.0;printfa=%fb=%fc=%fave=%f\nabcave;}
2.编写一个简单的C程序,输出以下信息*************Cprogram!*************答案#includestdio.hvoidmain{printf*************\n;printfCprogram!\n;printf*************\n;}
3.编写一个程序,输入一个弧度值,并将其换算成角度值(度、分、秒的形式)输出提示设x为弧度,则对应的角度为180*x/∏其整数部分为度数,余下的部分乘60,其整数部分为分数,再将余下的部分乘60,其整数部分为秒数答案#definepi
3.14159#includestdio.hvoidmain{floatxaa1;intdfm;printf请输入弧度:;scanf%fx;a=x*180/pi;d=inta;a1=a-d*60;f=inta1;m=inta1-f*60+
0.5;printf%g弧度=%d度%d分%d秒\nxdfm;}
4.编写一个程序,输入一个摄氏温度,输出其对应的华氏温度提示摄氏温度与华氏温度之间的转换公式为华氏温度=9*摄氏温度/5+32答案#includestdio.hvoidmain{floatcf;printf请输入摄氏温度:;scanf%fc;f=9*c/5+32;printf摄氏%f对应的华氏温度为%f\ncf;}
5.编写一个程序,输入半径,输出其圆周长、圆面积、及圆球体积答案#definepi
3.14159#includestdio.hvoidmain{floatrlsv;printf请输入圆半径:;scanf%fr;l=2*pi*r;s=pi*r*r;v=4*pi*r*r*r/3;printf半径为%f的圆周长为%f,面积为%f,圆球体积为%f\nrlsv;}
6.输入一个字符,分别输出其前导字符、该字符、后续字符答案#includestdio.hvoidmain{charc;printf输入一个字符:;scanf%cc;printf前导字符%c\n该字符%c\n后续字符%c\nc-1cc+1;}
7.对任意输入的一个字符进行加密,然后解密,输出加密解密的结果【解】设一个常量d为加密码,利用异或运算对字符c进行加密,解密过程则是再一次利用异或运算程序如下#includestdio.hvoidmain{charc;intd=9999;printf输入一个字符;scanf%cc;c=c^d;printf加密后%c\nc;c=c^d;printf解密后%c\nc;}
8.输入三个整数,按从小到大的顺序进行输出答案#includestdio.hvoidmain{intabctemp;scanf%d%d%dabc;ifab{temp=a;a=b;b=temp;}ifac{temp=a;a=c;c=temp;}ifbc{temp=b;b=c;c=temp;}printf%d%d%dabc;}9.000000000010001100000000000011110000000000000011X=35:15:&结果图3-4位逻辑运算示意。