C习题及其解答(第3版).pdf
《C习题及其解答(第3版).pdf》由会员分享,可在线阅读,更多相关《C习题及其解答(第3版).pdf(137页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、习题1 及其解答1.1选择题1.个最简单的C+程序,可以只有一个(c)o(a)库函数(b)自定义函数(c)main函数(d)空函数2.用C+语言编制的源程序要变为目标程序必须要经过(d)o(a)解释(b)汇编(c)编辑(d)编译3.C+程序中的简单语句必须以(b)结束。(a)冒号(b)分号4.有说明 int a=0;double x=5.16;(c)以下语句中,(c(a)x=a/x;(b)x=x/a;(c)5.执行C+程序时出现的“溢出”错误属于(a)编译6.下列选项中,(a)while(c)sizeof(b)连接(c)全部都是C+关键字的选项为(IF Staticcase extern(b)
2、(d)a=a%x;c)错误。运行c)o空格()属于编译错误。(d)x=x*a;break char(d)逻辑goswitch float integer7.按C+标识符的语法规定,合法的标识符是(a)o(a)_abc(b)new8.C+语句中,两个标识符之间(c)n)不能作为C+的分隔符。(d)(d)花括号age(a)数字(b);(c):(d)+9.下列正确的八进制整型常量表示是(b(a)OaO(b)0151 0.下列错误的十六进制整型常量表示是(a)0 x11(b)Oxaf)o(c)080c)o(c)Oxg(d)(d)0 x10Oxlf1 1.在下列选项中,全部都合法的浮点型数据的选项为(b
3、(a)-le3.5(c)0.2e-215.2e-4-12345.e-5(b)(d)12.34)ole+50.IE-125.0e(l+4)0.1 8e+21 2.下列正确的字符常量为(d)o(a)“a”1 3.下列选项中,(b)name(c)a(d),io rd)不能交换变量a和b的值。(a)t=b;b=a;(c)t=a;a=b;a=t;b=t;(b)a=a+b;b=a-b;a=a-b;(d)a=b;b二 a;1 4.关于下列语句叙述错误的是(int i=10,*p=&i;(a)p的值为的(c)*p表示变量i 的值a)o(b)(d)P指向整型变量ip的值是变量i 的地址1 5.有以下变量说明,下
4、面不正确的赋值语句是(b)。int a=5,b=10,c;int*pl=&a,*p2=&b;(a)*p 2 =b;(b)p l =a ;(c)p 2 =p l ;(d)c 二 *p l *(*p 2 );1 6.有以卜.变量说明,下面正确的语句是(b)。i n t a=1 0,b;i n t&p a=a,&p b=b;(a)&p b=a;(b)p b=p a;(c)p b=&p a;(d)*p b=*p a;1 7.执行下面语句序列后,a和b的值分别为(b)oi n t a =5 ,b=3 ,t ;i n t&r a =a ;i n t&r b=b;t =r a ;r a =r b;r b=t
5、 ;(a)3和3 (b)3和5 (c)5和3 (d)1 8 .在下列运算符中,(d )优先级最高。(a)=(b)*=(c)+(d)*1 9.在下列运算符中,(d )优先级最低。(a)!(b)&(c)!=(d)5和5?:2 0 .设i n t i=l,j=2;则表达式i+j的值为(c ),(a)1 (b)2 (c)3 (d)42 1 .设i n t i=l,j=2;则表达式+i+j的值为(d )o(a)1 (b)2 (c)3 (d)42 2 .在下列表达式选项中,(c )是正确。(a)+(a+)(b)a+b(c)a+b(d)a+b2 3 .已 知i n t i=0,j=l,k=2;则逻辑表达式+
6、i|j&+k的值为()o(a)0 (b)1 (c)2 (d)32 4 .执行下列语句后,x的值是(d ),y的值是(c )oi n t x,y ;x=y=l;+x|+y;(a)不确定(b)0 (c)1 (d)22 5.设x为整型变量,不凿正确表达数学关系1XV 5的C+逻辑表达式是((a)1 x 5(c)K x&x 5(b)x=2 I|x=3|x=4(d)!(x =5)2 6.已 知i n t x=5;执行下列语句后,x的值为(c )。X +=X -=X *X;(a)2 5 (b)4 0 (c)-4 0 (d)2 02 7 .设i n t a=l,b=2,c=3,d=4;则以下条件表达式的值为
7、(a )。ab?a:cd?c:d(a)1 (b)2 (c)3 (d)42 8 .以下逗号表达式的值为(d )o(x =4 *5,x *5 ),x +2 5(a)2 5 (b)2 0 (c)1 0 0 (d)4 51.2把下列数学表达式写成C+算术表达式12.x x x (a x+b)+c +d +e3.I n (1+|a+b|0)a-bL J l +cos 4 8 6.l g(a2+a b+b2)【解答】1.1/(1 +1/(1 +l/(x +y)2.x*(x*(x*(a*x+b)3.1 +D O W(f a bs (a +bc )+d )+ea -b),1 0)4.s q r t(1 +3.
8、1 4 1 5 9/2 *c o s(4 8 *3.1 4 1 5 9/1 8 0 )5.l/t a n(1 -x*x )/(1+x*x)或者 c o s(1 -x*x )/(1+x*x )/s i n(1 -x*x )/(1+x*x )6.I o g l 0(a*a+a*b +b*b)1.3 用逻辑表达式表示下列条件1.i被j整除 2.n是小于正整数k的偶数3.I WXG O 4.x,y其中有一个小于z5 .y -1 0 0,-1 0 ,并且 y 任 1 0,1 0 0 6.坐标点(x,y)落在以(1 0,2 0)为圆心,以3 5为半径的圆内7 .三条边a,b和c构成三角形8 .年份Y e
9、a r能被4整除,但不能被1 0 0整除或者能被4 0 0整除【解答】1.i%j =二 0 2.(n k)&(n%2 二 二 0)3.K=x&x 1 0 4.x z|y =-1 0 0&y =1 0&y =1 0 0 )6.s q r t(p o w(x-1 0),2)+p o w(y-2 0),2)c&b+c a&c+a b8.(y e a r%4 =0)&(y e a r%1 0 0!=0)|(y e a r%4 0 0-0)1.4 阅读下列程序,写出执行结果1.t t i n c l u d e u s i n g n a m e s p a c e s t d;i n t m a i
10、n()i n t a =1,b=2;bo o l x,y;c o u t (a+)+(+b)e n d l;c o u t a%b e n d l;x =!a b;y =a&b;c o u t x e n d l;c o u t y e n d l;)【解答】42012.t t i n c l u d e u s i n g n a m e s p a c e s t d;i n t m a i n()i n t x,y,z,f;x =y =z =1;f =-x|y-&z+;c o u t x =x e n d l;c o u t y =y e n d l;c o u t z=z e n d
11、l;c o u t “f =f e n d l;)【解答】x=0y=0z=2f=l3.t t i n c l u d e#i n c l u d e u s i n g n a m e s p a c e s t d;i n t m a i n()i n t a=1 2 3;i n t&r a=a;i n t *p a=&a;c o u t s e t w(5)d e c a s e t w (5)o c t r a s e t w (5)h e x *p a e n d l ;【解答】1 2 3 1 7 3 7 b1.5 思考题1 .什么叫数据类型?变量的类型定义有什么作用?【解答】数 据“
12、类型”是对数据的抽象。类型相同的数据有相同的表示形式、存储格式以及相关的操作。定义个变量时,计算机根据变量的类型分配存储空间,并以该类型解释存放的数据。2 .普通数据类型变量和指针类型变量的定义、存储、使用方式上有何区别?请编写一个程序验证之。【解答】验证程序:变量类型定义存储使用方式数据类型标识符数据值通过名访问即直接访问对变量内容操作指针类 型*标识符地址值通过指针变量的地址值间址访问对象#includeusing namespace std;int main()int a,b,c;cout*a,b,c=cin a b c;对普通数据类型变量赋值int*pa=&a,*pb=&b,*pc=&
13、c;用变量地址值初始化指针变量cout a,b,c=X b,“c cndl;名访问,输出a,b,c的值coutz,pa,pb,pc=*p a,,z,p b z,,,pcendl;/输出指针变量的地址值间址访问,输出pa,pb,pc指向的变量的赋值cout,v*pa,*pb,*pc=z,*pc endl;3 .什么叫数据对象的引用?对象的引用和对象的指针有什么区别?请用一个验证程序说明之。【解答】引用是为数据对象定义别名。引用与指针有以下几点区别:(1)引用名不是内存变量,而指针变量要开辟内存空间。(2)引用名需要在变量定义与变量名绑定,并且不能重定义:指针变量可以在程序中赋给不同的地址值,改变
14、指向。(3)程序中用变量名和引用名访问对象的形式和效果样;指针变量通过间址访问对象。验证程序:#includeusing namespace std;int main()int a;cout/za=/z;cin a;int ra=a;int*pa=&a;cout a 的值:a endl;cout a 的地址:&a cndl;cout*ra 的值:*ra endl;cout ra 的地址:&ra endl;cout/pa所指向的变量的值:X*paendl;cout pa 的地址:pa endl;4.数据对象在C+U 有什么不同的访问方式?请编写一个程序验证之。【解答】数据对象在C+中的访问方式有
15、:名访问,引用(别名)访问,间址访问。验证程序:ncludeusing namespace std;int main()int a;couta=;cin a;a=a+5;名访问cout&a endl;输出变量地址cout*(&a)a&a x (2)(a+b)!=x (3)a|(b+x)(4)a=(b*x)(5)a-b x (6)(a/x=b)7.阅读以下程序,分析下面语句序列中每一个字符“*”和 的 意 义,写出输出结果。#include using namespace std;int main()int a=1 0,b=2 0;int*p=&a,*q=&b;*p=*p*q;int&ra=a;
16、ra=a;int*&rt=q;*rt=3 0;coul a=a nb=”X*p n*q=”*qz,nra=/,ra n*rt=z/*rtendl;)【解答】字 符 和 的 意 义 见 程 序 中 添 加 的 注 释。ttinclucie using namespace std;int main()int a=1 0,b=2 0;int*p=&a,*q=&b;/是指针类型说明符,“也”是取址运算符*p=*p*q;第1、2、4个“*”是间址访问符,第3个 算 术 乘 运 算 符i nt&r a=a;/“&”是引用说明符i nt *&r t =q;/“*”是指针类型说明符,是引用说明符*r t =3
17、0;/“*”是间址访问符/输出语句中的“*”是间址访问符co u t a=Xa ”nb=b n*p =*p n*q=”*q,nr a=,r az,n*r t=z,*r t e nd l;)程序输出结果为:a=200b=30*p=200*q=30r a=200*r t=301.6 编程题1.输入个三位整数,将它反向输出。【解答】#i ncl u d e u s i ng nam e s p ace s t d;i nt m ai n()i nt x,i,j,k;co u t p l e as e i np u t x:;ci n x;i =x/100;j =x/10%10;k =x%10;co
18、u t k j i e nd l;2.输入平面上某点横坐标x和纵坐标y,若该点在由图3.1表示的方块区域内,则输出1;否则,输出0。图L U正方形【解答】i ncl u d e u s i ng nam e s p ace s t d;i nt m ai n()d o u bl e x,y,b;co u t ”p l e as e i np u t x,y:;ci n x y;b=(-2=x )&(x=2)&(-2=y )&(y=2);co u t b e nd l;)3.输入三个整数,求出其中最小数(要求使用条件表达式)。【解答】t t i ncl u d e u s i ng nam e
19、s p ace s t d;i nt m ai n()i nt a,b,c,t e m p,m i n;co u t ”p l e as e i np u t a,b,c:;ci n a b c;t e m p =(ab)?a:b;m i n=(t e m p c)?t e m p:c;co u t m i n=0)i f(x =0)y =0e l s e y =-1;(c)i f(x =0)(b)i f(x=y )i+;(d)i f(!x )i+;x 0(b)y =-1;i f(x !=0)i f(x 0)y =1;e l s e y =0;(d)y =-1;i f(x 0)y =-1i f
20、(x =0)e l s e y =0;i f(x 0)y =-1;e l s e y =1 ;e l s e y =1;3.假 设 i=2,执行下列语句后i 的 值 为(b)os w i t ch(i )cas e 1:i +;cas e 2:i ;cas e 3:+i ;br e ak ;cas e 4:一 i ;d e f au l t :i +;)(a)1(b)2(c)3(d)44.已知i nt i=0,x=0;下面w h i l e 语句执行时循环次数为(d )。w h i l e(!x&i 3)x+;i+;(a)4(b)3(c)2(d)15 .已知i nt i=3;下面d o _w
21、h i l e 语句执行时循环次数为(b)。d o i 一-;co u t i e nd l;w h i l e (i !=1 );(a)1(b)2(c)36.卜.面f o r 语句执行时循环次数为(b)oi nt i;f o r (i=0,j=5;i=j;)co u t i j e nd l;i+;j-;)(d)无限(c)i nt a=5 ;w h i l e(a)a一;(a)0(b)5(c)107.以下死循环的程序段是(b)o(a)i nt x;f o r(i nt x=0;x=0);(d)无限(d)i nt i=3;f o r(;i ;i -)2.2阅读下列程序,写出执行结果1.#i n
22、cl u d e u s i ng nam e s p ace s t d;i nt m ai n()i nt a,b,c,d,x;a=c=0;b=1;d =20;i f(a)d =d-10;e l s e i f(!b)i f(!c)x =15;e l s e x =25;co u t d e nd l;)【解答】202.t t i ncl u d e u s i ng nam e s p ace s l d;i nt m ai nO i nt a=0,b=1;s w i t ch(a)cas e 0:s w i t ch(b)cas e 0:co u t/*a=*az b e n d l;
23、br e ak;cas e 1 :co u t a=a b=*b e nd l;br e ak;)cas e 1:a+;b+;co u t z,a=*a/,b=be nd l;)【解答】a=0 b=1a=1 b=23.t t i ncl u d e u s i ng nam e s p ace s t d;i nt m ai nO i nt i =1;w h i l e(i=10)i f(+i%3!=1)co nt i nu e;e l s e co u t i e nd l;)【解答】47104.f f i ncl u d e u s i ng nam e s p ace s t d;i n
24、t m ai n()i nt i =0,j =5;d o(i+;j ;i f (i 3)br e ak;w h i l e (j 0);co u t i=i t j=j e nd l;)【解答】i=4 j=1i.#i ncl u d e u s i ng nam e s p ace s t d;i nt m ai n()i nt i,j;f o r(i=l,j=5;i j;i+)j ;co u t i,tJ j e nd l;)【解答】3 36.#i ncl u d e u s i ng nam e s p ace s t d;i nt m ai nO i nt i,s =0;f o r(i=
25、0;i 5;i+)s w i t ch(i )cas e 0cas e 1cas e 2s +=i;br e ak;s +=i;br e ak;s +=i;br e ak;d e f au l t:s +=2;co u t *s=/s e nd l;)【解答】s 二 77.#i ncl u d e u s i ng nam e s p ace s t d;i nt m ai nO i nt i,j,x =0;f o r(i=0;i=3;i+)x+;f o r(j=0;j=9 0,B-(9 0,80,C-(80,70,D-(70,60,E-60#i ncl u d e u s i ng nam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 及其 解答
限制150内