《C语言习题集参考答案======== .docx》由会员分享,可在线阅读,更多相关《C语言习题集参考答案======== .docx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结C 语言习题集一、程序设计基本概念1、以下表达正确选项:B。A) C 语言的源程序不必通过编译就可以直接运行。B) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。C) C 语言源程序经编译形成的二进制代码可以直接运行。D) C 语言中的函数不行以单独进行编译。2、一个算法应当具有“确定性”等5 个特性,下面对另外4 个特性的描述中错误选项B。A)有 0 个或多个输入。B)有 0 个或多个输出。C)有穷性。 D)可行性。3、以下表达中正确选项C。A) C 语言比其它语言高级。B) C 语言可以不用编译就能被运算机识别执行。C) C 语言以接近英语国家的自然语言和数学
2、语言作为语言的表达形式。D) C 语言显现的,具有其它语言的一切优点。4、C 语言中用于结构化程序设计的3 种基本结构是A。A)次序结构、选择结构、循环结构B) if 、switch 、breakC) for、 while 、do-while D) if 、for 、continue5、为解决某一特定问题而设计的指令序列称为C。A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为C。A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是B。A)编辑程序B)编译程序C)驱动程序D)链接程序8、以下表达中,正确一条是C。 A)运算机语言中,只有
3、机器语言属于低级语言。 B)高级语言源程序可以被运算机直接执行。C) C 语言属于高级语言。D)机器语言是所用机器无关的。二、C 程序设计初步1、以下 4 个用户定义标识符中,全部合法的一组是A。A) _main enclude sinB) if max turboC) txt REAL 3COMD) int k_2 _001 b5E2RGbCAP2、以下不能定义为用户标识符的是D。A) scanfB) VoidC) _3comD) int3、以下符合C 语言语法的实型常量是C。A)1.2E0.5B) 3.14159EC) .5E-3D)E154、如以下选项中的变量已正确定义,就正确的赋值语句
4、是C。可编辑资料 - - - 欢迎下载精品名师归纳总结A) x1=26.8%3。B) 1+2=x2。C) x3=0x12。D) x4=1+2=3。可编辑资料 - - - 欢迎下载精品名师归纳总结5、设有定义: float a=2,b=4,h=3。以下 C 语言表达式中与代数式符的 是 B。 p1EanqFDPw1 ab 2h 运算结果不相可编辑资料 - - - 欢迎下载精品名师归纳总结A) a+b*h/ 2B) 1/2*a+b*hC) a+b*h*1 /2D) h/2*a+b DXDiTa9E3d6、下面表达正确选项A。A) C 程序中注释部分可以显现在程序中任何合适的的方。B)花括号“ ”和
5、“ ”只能作为函数体的定界符。C)构成 C 程序的基本单位是函数,全部函数名都可以由用户命名。D)分号是 C 语句之间的分隔符,不是语句的一部分。7、以下选项中可以作为C 语言中合法整数的是C。A)10110BB) 0386C)0XffaD)x2a28、以下选项中非法的表达式是D。A)0=xchar65+3D) x+1=x+19、有以下程序:mainint a 。 char c=10。 float f=100.0 。 double x 。a=f/=c*=x=6.5 。printf “%d %d %3.1f %3.1fn”,a,c,f,x。程序运行后的输出结果是B。A) 1 65 1 6.5 B
6、) 1 65 1.5 6.5C) 1 65 1.0 6.5D) 2 65 1.5 6.5RTCrpUDGiT10、设有以下定义:int a=0 。 double b=1.25 。 char c=A。 #define d 2就下面语句中,错误是D。A) a+。B)b+。C) c+。D) d+。11、设有如下程序段: int x=2002,y=2003 。printf “%dn”,x,y。就以下表达正确选项D。A)输出语句中格式说明的个数少于输出项的个数,不能正确输出。B)运行时产生出错信息。C)输出值为 2002。D)输出值为 2003。12、设变量 x 为 float 型且已经赋值,就以下语句
7、中能够将x 中的数值保留到小数点后面2位,并将第 3 位四舍五入的是 B。 5PCzVD7HxA A) x=x*100+0.5/100.0B) x=x*100+0.5/100.0 C) x=intx*100+0.5/100.0D) x=x/100+0.5*100.0可编辑资料 - - - 欢迎下载精品名师归纳总结13、要求以下程序功能是运算:mainint n 。 float s。s=1.0。forn=10 。n1。n- s=s+1/n 。printf “%6.4fn ”,s。s1121.1310可编辑资料 - - - 欢迎下载精品名师归纳总结程序运行后输出结果错误,导致错误结果的程序行是C。
8、A ) s=1.0 。B) forn=10 。 n1 。 n-C) s=s+1/n 。D) printf “%6.4fn ”,s 。可编辑资料 - - - 欢迎下载精品名师归纳总结jLBHrnAILg14、在一个 C 程序中 B。A) main 函数必需显现在全部函数之前。B) main 函数可以在任何的方显现。C) main 函数必需显现在全部函数之后。D) main 函数必需显现在固定位置。15、以下表达中,正确选项D。A) C 语言中既有规律类型也有集合类型。B) C 语言中没有规律类型但有集合类型。C) C 语言中有规律类型但没有集合类型。D) C 语言中既没有规律类型也没有集合类型。
9、16、以下关于C语言用户标识符的表达中正确选项B。 A)用户标识中可以显现下划线和中划线 int i=10,j=1 。 printf “%d,%dn”,i-,+j。执行后输出结果是B。A)9,2 B) 10,2C)9,1D) 10,1填空题1、以下 sum 函数的功能是运算以下级数之和。可编辑资料 - - - 欢迎下载精品名师归纳总结2s1xx 2.x.33.xn,请给函数中的各变量正确赋初值。n.可编辑资料 - - - 欢迎下载精品名师归纳总结double sumdouble x,int n int i 。 double a,b,s 。 s=1.0。a=1。b=1。fori=1 。 ia=a
10、*x。 b=b*i 。s=s+a/b。return s 。2、如有语句:int i=-19,j=i%4 。printf “%dn ”,j。就输出结果是 -3。 的值是 A。A)3B)4C) 11D) 1211、如已定义x 和 y 为 double 类型,就表达式 x=1,y=x+3/2 的值是 C。A)1B)2C) 2.0D) 1212、如有以下程序段:int c1=1,c2=2,c3。c3=1.0/c2*c1 。,就执行后, c3 中的值是 A。 LDAYtRyKfEA)0B)0.5C) 1D) 213、执行以下程序的输出结果是A double d 。 float f 。 long m。 i
11、nt i 。i=f=m=d=20/ 3。printf “%d %ld %f %fn”,i,m,f,d 。A)6 6 6.0 6.0B) 6 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0Zzz6ZB2Ltk14、设有以下的变量定义:int i=8,k,a,b 。unsigned long w=5 。double x=1.42,y=5.2 。就以下符合 C 语言语法的表达式是A。A) a+=a-=b=4*a=3B) x%-3C) a=a*3=2D) y=floati dvzfvkwMI115、执行以下程序后的输出结果是C。注:此题应留意C可编辑资料 - - -
12、欢迎下载精品名师归纳总结main double d=3.2 。 int x,y 。x=1.2。y=x+3.8/5.0。printf “%dn”,d*y 。A)3B)3.2C) 0D)3.0716、如变量已正确定义并赋值,下面符合C 语言语法的表达式是B。A) a:=b+1B) a=b=c+2C) int 18.5%3D)a=a+7=c+b17、假定有以下变量定义:int k=7,x=12。,就值为 3 的表达式是 D。A) x%=k%=5B) x%=k-k%5C) x%=k-k%5D) x%=k-k%=5rqyn14ZNXI18、设 x 和 y 均为 int 型变量,就以下语句:x+=y。y=
13、x-y。x-=y。的功能是 D。A)把 x 和 y 按从大到小排列B)把 x 和 y 按从小到大排列C)无确定结果D)交换 x 和 y 中的值19、设 x、y、 z 和 k 都是 int 型变量,就执行表达式:x=y=4,z=16,k=32后, x 的值为 C。 EmxvxOtOcoA)4B)16C) 32D) 52二、填空题1、以下程序的输出结果是。0void main unsigned short a=65536 。 int b。 printf “%dn”,b=a。 SixE2yXPq52、如有定义: int a=10,b=9,c=8。接着次序执行以下语句后,变量b 中的值是 3。c=a-
14、=b-5。c=a%11+b=3。3、设有以下变量定义,并已赋确定的值,char w。 int x。 float y。 double z。 6ewMyirQFL就表达式: w*x+z-y 年求得的数据类型为double 或双精度型。三、次序结构典型考试卷1、以下 4 个选项中,不能看作一条语句的是D。A) 。 B) a=0,b=0,c=0。C)ifa0。D)ifb=0 m=a 。n=2。kavU42VRUs2、有以下程序:mainint x=102,y=012 。printf “%2d,%2dn”,x,y。执行后输出结果是C。A)10,01B) 02,12C) 102,10D) 02,103、有
15、定义语句: int x,y。,如要通过语句scanf“%d,%d”,&x,&y 。使变量 x 得到数值 11 ,变量 y 得到数值 12,下面四组输入形式中,正确选项C。 y6v3ALoS89A) 1112B) 11,12C) 11,12D) 11, 12M2ub6vSTnP4、如有以下程序段 。执行后输出结果是A。A)32767,32767B)32767,032767C) 32767,77777D)32767,077777 0YujCfmUCw5、如有以下程序段: int m=0xabc,n=0xabc 。m-=n 。printf “%Xn”,m。执行后输出的结果是C。可编辑资料 - - -
16、 欢迎下载精品名师归纳总结A)0X0B)0x0C) 0D) 0XABC6、有以下程序段:int m=0,n=0 。char c=a。 scanf“%d%c%d”,&m,&c,&n 。 printf “%d,%c,%dn”,m,c,n。如从键盘上输入: 10A10,就输出结果是 A。A)10,A,10B)10,a,10C)10,a,0D) 10,A,07、设有定义: int a,*pa=&a 。,以下scanf 语句中能正确为变量a 读入数据的是。A ) scanf“%d”,pa 。B ) scanf“%d”,a 。C ) scanf“%d”,&pa 。D )scanf“%d”,*pa 。eUt
17、s8ZQVRd填空题1、有以下语句段:int n1=10,n2=20 。printf “ ”,n1,n2。nn1=%dnn2=%d要求按以下格式输出n1 和 n2 的值,每个输出行从第一列开头,请填空。n1=10 n2=202、如有以下程序:main int i,j 。 scanf“i=%d,j=%d”,&i,&j 。printf “i=%d,j=%dn ”,i,j。sQsAEJkW5T要求给 i 赋值 10,给 j 赋值 20,就应当从键盘输入i=10,j=20。3、如有以下程序:此题要留意mainint a=4,b=3,c=5,t=0 。ifat=a 。a=b。b=t 。ifat=a。a=
18、c。c=t。 printf “%d%d%dn”,a,b,c。执行后输出结果是 503。练习1、如有变量a,i 已正确定义,且i 已正确赋值,合法的语句是B。A) a=1B)+iC) a=a+=5D) a=inti2、有如下程序:mainint y=3,x=3,z=1 。printf “%d %dn”,+x,y+,z+2。 GMsIasNXkA运行该程序的输出结果是D。A)34B) 42C)43D) 333、以下程序的运行结果是B。main int a=2,c=5 。printf “a=%d,b=%dn”,a,c。A) a=%2,b=%5B) a=2,b=5C)a=d,b=dD)A=%d,b=%
19、d4、以下说法中正确选项D。A) #define 和 printf 都是 C 语句。 B) #define 是 C 语句,而 printf 不是。可编辑资料 - - - 欢迎下载精品名师归纳总结C) printf 是 C 语句,但 #define 不是。D) #define 和 printf 都不是 C 语句。5、以下程序的输出结果是D。 main int k=17 。printf “%d, %o, %xn”,k,k,k。 A) 17, 21, 0x11B) 17, 17, 17C) 17, 0x11, 021D) 17, 21, 116、如有说明: long *p,a 。就不能通过scanf
20、 语句正确给输入项读入数据的程序段是A。A) *p=&a 。scanf“%ld”,p。B) p=long *malloc4 。scanf“%ld”,p。TIrRGchYzgC) scanf“%ld”,p=&a 。C) scanf“%ld”,&a。7、以下表达正确是D。A)输入项可以是一个实型常量,如:scanf“%d”,3.5。 B)只有格式把握,没有输入项,能正确输入数据到内存,如:scanf“a=%d,b=%d。C) 当 输 入 一 个 实 型 数 据 时 , 格 式 控 制 部 分 可 以 规 定 小 数 点 后 的 位 数 , 例 如 :scanf“%4.2f”,&f 。7EqZcWL
21、ZNX D)当输入数据时,必需指明变量的的址,例如:scanf“%f”,&f 。 8、以下程序的输出结果是D。main int a=12,b=12 。printf “%d %dn ”,-a,+b。A)10 10B)12 12C) 11 10D) 11 13填空题1、如想通过以下输入语句使得a=5.0, b=4, c=3,就输入数据的形式应当是5.0,4,c=3或 5,4,c=3。 lzq7IGf02E.int b,c 。 float a 。scanf“%f,%d,c=%d”,&a,&b,&c 。.2、有 4 条语句: x+。、 +x。、 x=x+1。、 x=1+x。,执行后都使变量x 中的值增
22、 1,写出一条同一 功能的赋值语句 int a=177 。printf “%on ”,a。4、以下程序的输出结果是2,1。main int a=1,b=2 。 a=a+b。b=a-b。a=a-b。printf “%d,%dn”,a,b。NrpoJac3v1四、选择结构典型考题1、以下程序段中与语句k=ab.bc.1:0:0。功能等价的是 A。A) ifab&bc k=1 。else k=0。B) ifab|bc k=1 。else k=0。1nowfTG4KIC) ifak=0。 else ifbk=1。D) ifabk=1 。 else ifbck=1 。elsek=0 。fjnFLDa5Z
23、o2、有以下程序:mainchar k 。int i 。可编辑资料 - - - 欢迎下载精品名师归纳总结fori=1 。 iscanf“%c”,&k。switchkcase0:printf “ anothern ”。case1:printf “numbern ”。tfnNhnE6e5程序运行时,从键盘输入:01,程序执行后的输出结果是C。 case 穿透可编辑资料 - - - 欢迎下载精品名师归纳总结A) another number3、有以下程序:B) another number anotherC) another numbernumberD) number number可编辑资料 - -
24、 - 欢迎下载精品名师归纳总结mainint x=0,y=5,z=3 。whilez-0&+xy=y-1 。printf “%d,%d,%dn”,x,y,z。HbmVN777sL程序执行后的输出结果是B。A)3,2,0B) 3,2,-1C) 4,3,-1D) 5,-2,-54、有定义语句: int a=1,b=2,c=3,x。,就以下选项中各程序段执行后,x 的值不等于 3 的是C。V7l4jRB8Hs可编辑资料 - - - 欢迎下载精品名师归纳总结A) ifc x=1。else ifb x=2。else x=3。B) ifa x=3。else ifa x=2。else x=1。C) ifa
25、x=3。ifa x=2。ifa x=1。D) ifa x=b。ifb x=c。ifc x=a。可编辑资料 - - - 欢迎下载精品名师归纳总结5、有以下程序:此题应留意短路规律mainint a=1,b=2,m=0,n=0,k 。 k=n=ba|m=a 。printf “%d,%dn”,k,m。83lcPA59W9程序运行后的输出结果是C。A)0,0B) 0,1C) 1,0D) 1,16、有以下程序:留意case穿透的问题main int i 。fori=0 。 i switchicase 1:printf “%d”,i。 case 2:printf “%d”,i。default:printf
26、 “%d”,i。执行后输出的结果是A。A)011122B) 012C) 012021D)1207、有以下程序:mainint i=1,j=1,k=2 。ifj+|k+&i+printf“%d,%d,%dn”,i,j,k。 mZkklkzaaP执行后的输出结果是C。A)1,1,2B) 2,2,1C) 2,2,2D)2,2,38、有以下程序:mainint a=5,b=4,c=3,d=2 。ifabc printf “%dn ”,d。else ifc-1=d=1 printf “%dn ”,d+1。 else printf “%dn ”,d+2。执行后输出结果是B。A)2B)3C) 4D)编译时有
27、错,无结果填空题1、有以下程序: mainint n=0,m=1,x=2 。if.n x-=1 。可编辑资料 - - - 欢迎下载精品名师归纳总结ifm x-=2 。ifx x-=3。printf “%dn”,x。执行后输出结果是 -4。2、以下程序运行后的输出结果是3。mainint p=30 。printf “%dn ”,p/ 30.p/10:p%3。 3、以下程序运行后的输出结果是yes。mainint a=1,b=3,c=5 。ifc=a+b printf “yesn ”。 else printf “non ”。4、以下主程序运行后的输出结果是132。mainint i,m=0,n=0
28、,k=0 。fori=9 。i switchi%10case 0:m+。 n+。break 。case 10:n+。break。default:k+ 。n+。 printf “%d %d %dn”,m,n,k。5、有以下程序:mainint p,a=5 。ifp=a.=0printf “%d”,p。 else printf “%dn ”,p+2。执行后输出结果是 1。练习1、有如下程序:mainint a=2,b=1,c=2 。ifa ifb c=0 。else c+。printf “%dn”,c。该程序的输出结果是C。A)0B)1C) 2D) 32、有如下程序:main int x=1,a=
29、0,b=0 。switchxcase 0:b+。case 1:a+。case 2:a+。b+。printf “a=%d,b=%d,c=%dn”,a,b。该程序的输出结果是A。A) a=2,b=1B) a=1,b=1C) a=1b=0D) a=2,b=23、以下程序的输出结果是C。main int a=-1,b=1,k 。if+a&.b- printf “%d %dn”,a,b。可编辑资料 - - - 欢迎下载精品名师归纳总结else printf “%d %dn”,b,a。A) -1 1B) 0 1C) 1 04、以下程序的输出结果是D)0 0B。main char *s= ”12134211
30、”。 int v4=0,0,0,0,k,i 。AVktR43bpwfork=0 。sk。 k+switchsk case 1:i=0。 case 2:i=1。case 3:i=2。case 4:i=3。vi+ 。fork=0 。k printf “%d”,vk 。 A)4 2 1 1B) 0 0 0 8C) 4 6 7 8 D) 8 8 8 85、当 a=1, b=3, c=5, d=4 时,执行下面一段程序后,ifaifcd x=1。else ifaifbd x=2。else x=3。else x=6。else x=7。x 的值的为 A。A)1B)2C) 3D) 46、运行以下程序后,假如从
31、键盘上输入china#,就输出结果为 C。main int v1=0,v2=0 。 char ch。whilech=getchar.= #switchchcase a:case h: default:v1+ 。case 0:v2+。ORjBnOwcEdprintf “%d, %dn”,v1,v2。A)2, 0B) 5, 0C) 5, 5D)2, 57、当 c 的值不为 0 时,在以下选项中能正确将c 的值赋给变量 a、b 的是 C。A) c=b=a。B)a=c|b=c 。C) a=c&b=c 。D)a=c=b。2MiJTy0dTT 8、能正确表示 a 和 b 同时为正或同时为负的规律表达式时D
32、。 A) a=0|b=0&a0|bB) a=0&b=0&a0&b gIiSpiue7A C) a+b0&a+bD) a*b09、能正确表示规律关系:“a 10 或 a 0”的 C 语言表达式是D。A) a=10 or a=0|a=10&a=10|ab&n=cd 后, n 的值为 B。留意短路规律IAg9qLsgBXA)1B) 2C)3D) 011、语句: printf“%d”,a=2&b=-2 。的输出结果是 D。A)无输出B)结果不确定C) 1D)112、设 int x=1,y=1。,表达式 .x|y- 的值是 B。A)0B) 1C)2D) -1填空题可编辑资料 - - - 欢迎下载精品名师
33、归纳总结1、下面程序的功能是:输出100 以内能被 3 整除且个位数为6 的全部整数,请将程序补充完整,使之能完成需要的功能。i10 或 i int i,j 。fori=0 。 i+ j=i*10+6 。if continue 。printf “%d”,j 。2、下面的 if 语句与 y=x=10.3*x-11: x.x:2*x-1。的功能相同,请补充程序,使之能完成 要求的功能。 1、x=1asfpsfpi4kif 1if 2 y=2*x-1 。else y=x。else y=3*x-11 。3、如 x 为 int 类型,请以最简洁的形式写出与规律表达式.x 等价的 C 语言关系表达式。 x
34、=04、表示“整数 x 的确定值大于 5”时值为“真”的C 语言表达式是。x5|x int i,s=0 。fori=1 。i s+=i+1。printf “%dn ”,s。ooeyYZTjj1程序执行后的输出结果是D。A)自然数 1 9 的累加和A)自然数 1 10 的累加和C)自然数 1 9 中奇数之和D)自然数 110 中偶数之和2、有以下程序:main int i,n=0 。fori=2 。ido ifi%3 continue 。n+。 while.i 。n+。printf “n=%dn”,n。程序执行后输出结果是D。A) n=5B) n=2C) n=3D) n=43、下面程序的功能是输
35、出以下形式的金字塔图案:*main int i,j 。fori=1 。iforj=1 。jprintf “。 forj=1 。jprintf “*”。 printf “n ”。可编辑资料 - - - 欢迎下载精品名师归纳总结在下划线处应填写的是B。A) iB) 2*i-1C) 2*i+1D) i+24、有如下程序:main int s=0,a=1,n 。scanf“%d”,&n 。 do s+=1。a=a-2。whilea.=n 。printf “%d”,s。如要使程序输出值为2,就应当从键盘输入的值是B。A) -1B) -3C)-5D) 05、有如下程序段,其中s、 a 、b 、c 均为已经定义为整型变量,且a、c 均已经赋值0)。s=a。forb=1 。bs=s+1。就与上述程序段功能等价的赋值语句是B。 A) s=a+b。B) s=