C语言程序设计吕凤煮课后答案

上传人:go****ng 文档编号:158161042 上传时间:2022-10-03 格式:DOCX 页数:125 大小:114.16KB
收藏 版权申诉 举报 下载
C语言程序设计吕凤煮课后答案_第1页
第1页 / 共125页
C语言程序设计吕凤煮课后答案_第2页
第2页 / 共125页
C语言程序设计吕凤煮课后答案_第3页
第3页 / 共125页
资源描述:

《C语言程序设计吕凤煮课后答案》由会员分享,可在线阅读,更多相关《C语言程序设计吕凤煮课后答案(125页珍藏版)》请在装配图网上搜索。

1、 第1章 C+语言概述 练习题1 1.1 判断题 1C+语言和C语言都是面向对象的程序设计语言。2面向对象方法具有封装性、继承性和多态性。3C语言是C+语言的一个子集。C+语言继承了C语言。4C+语言程序与C语言程序一样都是函数串。5C+语言支持封装性和继承性,不支持多态性。6C+语言比C语言对数据类型要求更加严格了。7C+语言对C语言进行了一次改进,使得编程更加方便了。8C+源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。9编译C+源程序时,出现了警告错(Warning)也可以生成可执行文件。10C+语言程序的实现也要经过编辑、编译连接和运行3个步骤。1.2 单选题 1下列关于面

2、向对象概念的描述中,错误的是( C )。A面向对象方法比面向过程方法更加先进B面向对象方法中使用了一些面向过程方法中没有的概念C面向对象方法替代了结构化程序设计方法D面向对象程序设计方法要使用面向对象的程序设计语言2下列各种高级语言中,不是面向对象的程序设计语言是( D )。AC+ BJava CVB DC 3下列关于类的描述中,错误的是( A )。A类就是C语言中的结构类型B类是创建对象的模板C类是抽象数据类型的实现D类是具有共同行为的若干对象的统一描述体4下列关于对象的描述中,错误的是( C )。A对象是类的一个实例B对象是属性和行为的封装体C对象就是C语言中的结构变量D对象是现实世界中客

3、观存在的某种实体5下列关于C+程序中使用提取符和插入符的输入/输出语句的描述中,错误的是( C )。A提取符是对右移运算符()重载得到的B插入符是对左移运算符()重载得到的C提取符和插入符都是双目运算符,它们要求有两个操作数D提取符和插入符在输入/输出语句中不可以连用1.3 填空题 1C+语言具有面向对象方法中要求的三大特性:封装性 、 继承性 和 多态性 。 2C+程序中,有且仅有一个主 函数。3C+程序是由类 和 函数 组成的。 1 4C+源程序的扩展名是 cpp 。5使用插入符进行标准输出文件输出时,使用的输出流对象名是 cout 。1.4 上机调试下列程序,并分析输出结果 1 #inc

4、lude void main() int i,j; coutij; couti=i,j=jendl; couti+j=i+j,i*j=i*jendl; 假定,输入数据如下: Enter x y:5V9l 答: i=5,j=9 i+j=14,i *j=45 2 #include int max(int,int); void main() int a,b,c; a=5; b=8; c=max(a,b); coutmax(a,b)=cy?x:y; 答: max(5,8)=8 3文件e1.4.3.cpp内容如下: #include void f1(),f2(); void main() cout在北京

5、.n; f1(); f2(); cout再见.n; 2 文件1.4.3-1.cpp内容如下: #include void f1() cout在上海.n; 文件1.4.3-2.cpp内容如下: #include void f2() cout在广州.n; 答: 在北京。 在上海。 在广卅。 再见。 1.5 编译下列程序,修改所出现的错误,获得正确结果 1 main() coutIn main().n 答:修改后如下: #include void main() coutIn main().n; 2 #include void MAIN() cina; int b=a+a; coutb=bn; 答:修

6、改后如下: #include void main() int a; 3 cina; int b=a+a; coutb=”b”n; 3 #include void main() int i,j; i=5; int k=i+j; COUTi+j=kendl; 答:#include void main() int i,j; j=10; i=5; int k=i+j; couti+j=kendl; 1.6 通过对1.5题中3个程序的修改,回答下列问题 从1.5题中第1题程序的修改中,总结出编程应该注意哪些问题。答:C+程序要包含iostraem.h,main()函数前应加类型说明符void。C+程序中

7、所出现的变量是否必须先说明后使用?在函数体内说明变量时是否都要放在函数体的开头? 答:C+程序中所出现的变量必须先说明后使用。在函数体内说明变量时不一定要放在函数体的开头。使用cout和插入符()输出字符串常量时应注意什么? 答:可输出一个字符串常量,也可输出多个字符串常量。每输出一个字符串常量要使用一次插入符( D%= 10下列运算符中,优先级最低的是( B )。A= B?: C| D& 11已知:int a(3);下列表达式中,错误的是( C )。Aa%2=0 Ba-+2 C(a-2)+ Da=2 12已知:int b(5),下列表达式中,正确的是( D )。Ab=a B+(b-1) Cb

8、%2.5 Db=3,b+1,b+2 6 13下列关于类型转换的描述中,错误的是( C )。A类型转换运算符是() B类型转换运算符是单目运算符C类型转换运算符通常用于保值转换中D类型转换运算符作用于表达式左边14下列表达式中,其值为0的是( A )。A5/10 B!0 C24?0:1 D2&2|0 15下列表达式中,其值不为逻辑值的是( A )。A算术表达式 B关系表达式C逗号表达式 D逻辑表达式16下列关于数组概念的描述中,错误的是( B )。A数组中所有元素类型是相同的B数组定义后,它的元素个数是可以改变的C数组在定义时可以被初始化,也可以不被初始化D数组元素的个数与定义时的每维大小有关1

9、7下列关于数组维数的描述中,错误的是( C )。A定义数组时必须将每维的大小都明确指出B二维数组是指该数组的维数为2 C数组的维数可以使用常量表达式D数组元素个数等于该数组的各维大小的乘积18下列关于数组下标的描述中,错误的是( B )。AC+语言中数组元素的下标是从0开始的B数组元素下标是一个整常型表达式C数组元素可以用下标来表示D数组元素的某维下标值应小于该维的大小值19下列关于初始值表的描述中,错误的是( C )。A数组可以使用初始值表进行初始化B初始值表是用一对花括号括起的若干个数据项组成的C初始值表中数据项的个数必须与该数组的元素个数相等D使用初始值表给数组初始化时,没有被初始化的元

10、素都具有默认值20下列关于字符数组的描述中,错误的是( D )。A字符数组中的每一个元素都是字符B字符数组可以使用初始值表进行初始化C字符数组可以存放字符串D字符数组就是字符串21下列关于字符串的描述中,错误的是( C )。A一维字符数组可以存放一个字符串B二维字符数组可以存放多个字符串C可以使用一个字符串给二维字符数组赋值D可以用一个字符串给二维字符数组初始化22已知:int a5 = 1, 2, 3, 4; 下列数组元素值为2的数组元素是( B )。Aa0 Ba1 Ca2 Da3 7 23已知:int ab 3 = 1, 5, 6, 3, 0,2; 数组元素ab11的值为( A )。A0

11、B1 C2 D3 24已知:char s =abcd;输出显示字符c的表达式是( C )。As Bs+2 Cs2 Ds3 25已知:char ss 6=while, for, else, break;输出显示reak字符串的表达式是( B )。Ass3 Bss3+1 Css+3 Dss31 2.3 填空题 1C+语言中,基本数据类型包含有整型、浮点型 、 字符型 、空值型和 布尔型。2变量的存储类可分为自动类 、 寄存器类 、 外邹类 和静态存储类。 3浮点型常量可分为单精度、双精度 和 长双精度 浮点型常量。 4结合性从右至左的运算符有单目运算符 、 双目运算符 和赋值运算符。 5条件表达式

12、是由三目 运算符组成的,该表达式的类型是由冒号左边和右边两个操作数中类型高 的操作数类型决定的。 6已知:double dd 3=1.2, 2.4, 3.6, 4.8, 5.2,6.4; 这里dd是一个二 维数组的数组名,该数组共有 9 个元素,每个元素的类型是 double 。数组元素dd00的值是 1.2 ,dd11的值是 5.2 ,数组元素dd22的值是 0 。7已知:char ss 6=while, break, for, else; 字符数组ss是二 维数组,它的第1维大小应该是 4 。使用cout和输出字符串for时,对应的表达式是 ss+2 。使用cout和输出字符串break的

13、子串reak时,对应的表达式是 ss1+1 。使用cout和输出字符串else中的字符s时,对应的表达式是 ss32 。2.4 分析下列程序 1 #include void main() int a,b; coutba; int d=a-b; coutd=dendl; 假定输入为5和8。答: d=3 2 #include void main() const int A=8; const char CH=k; 8 const double D=8.5; coutA=Aendl; coutCH+2=char(CH+2)endl; coutD-5.8=D-5.8endl; 答: A=8 CH=2=m

14、 D-5.8=2.7 3 #include int a=9; void main() int b=5; couta+b=a+bendl; static int c; coutc+a=c+aendl; const long int d=8; couta+d-b=a+d-bendl; 答: a+b=14 c+a=9 a+d-b=12 4 #include void main() int a=3; char b=m; couta=a,b=bendl; int a=5; b=n; couta=a,b=bendl; couta=a,b=bendl; 答: a=5,b=m a=3,b=n a=3,b=n

15、5 #include 9 void main() cout6%4*5/3+3endl; cout(10&3|8)endl; cout(52)endl; cout4endl; 答: 6 10 21 -5 6 #include void main() int a=5; coutlong(&a),sizeof(a),sizeof(int)endl; double b=1.5; coutsizeof(1.5f),sizeof(b),sizeof(1.5L)endl; 答: ,4,4 4,8,8 7 #include void main() int a=3,b=5; coutb+a=b-2),(a!=b

16、+a=b)endl; char c=k; cout(c=k),(-c!=h+2)endl; float f=2.3f; cout(-f=f)endl; 答: 0,1 1,0 1 8 #include void main() int i,j,k; i=j=k=5; 10 !i&+j&-k; couti,j,kendl; i|j-|+k; couti,j,kendl; i-5|j-5&+k; couti,j,kendl; 答: 5,5,5 5,5,5 5,5,5 9 #include void main() int i(5),j(8); cout(i=i*=j)endl; i=5,j=8; i=5

17、*j/(j- -5); couti,jendl; i=5,j=8; cout(j+=i*=j-5)endl; 答: 40 13,7 23 10 #include int a=8; void main() int b=6; double d=1.5; d+=a+b; coutdendl; cout(a=1,b=2,d=2.5,a+b+d)endl; cout(a0?a:b0?a+:b+)endl; 答: 15.5 5.5 2 11 #include void main() 11 int m3=9,8,7,6,5,4,3,2,1,s=0; for(int i=0;i3;i+) s+=mii; co

18、utsendl; 答: 15 12 #include void main() char s=bhy543kpm345; for(int i=0;si!=0;i+) if(si=a&si=z) continue; coutsi; coutendl; 答: 543345 13 #include void main() int b=5,-3,4,1,-8,9,0,10; int i=0,j; for(j=i;ibj) j=i; coutj,bjendl; 答: 7,10 14 #include void main() int a3=1,2,3,4,5,6,7,8,9; int s1(0),s2(0)

19、; for(int i=0;i3;i+) for(int j=0;j3;j+) if(i!=j) 12 s1+=aij; if(i+j=1) s2+=aij; couts1=s1,s2=s2endl; 答: s1=30,s2=6 15 #include void main() char s=#%#; for(int i=0;i3;i+) for(int j=0;ji;j+) cout ; for(int k=0;k3;k+) coutsk; cout0;i-) for(int j=0;ji-1;j+) cout ; for(int k=0;k3;k+) coutsk; coutendl; 答:

20、 #%# #%# #%# #%# #%# 2.5 编程题 1已知:int a=3,b=5;编程计算下列两个代数式的值,并比较它们是否相等。 (a+b)2 和 a2+2ab+b2 答: 编程如下: #include void main() int a=3,b=5; int d1=(a+b)*(a+b); 13 int d2=a*a+2*a*b+b*b; coutd1=d1endld2=d2endl; 从结果中可以看出d1和d2值是相等的。2已知:int x=5;编程求下列代数式的值。f(x)=3x3+2x2+5x+2 答:编程如下: #include void main() int x=5; i

21、nt f=3*x*x*x+2*x*x+5*x+2; coutfendl; 3从键盘上输入两个double型数,编程输出其中最小者。答:编程如下: #include void main() double a,b; coutab; cout输入的两个数中较小的是; if(a=b) coutaendl; else coutbendl; 4华氏温度转换成摄氏温度的计算公式如下: C=(F-32)*5/9 其中,C表示摄氏温度,F表示华氏温度。从键盘上输入一摄氏温度,编程输出对应的华氏温度。答:编程如下: #include void main() double c,f; coutc; f=9.0/5.0

22、*c+32.0; cout摄氏温度为c华氏温度为fendl; 14 从键盘上输入5个浮点数,输出它们的和以及平均值。答:编程如下: #include void main() double a,b,c,d,e; coutabcde; double f=a+b+c+d+e; cout输入的5个数的和是f平均值是f/5.0endl; 将字符串12345,逆向输出为54321。答:编程如下: #include void main() char a=12345; couta4a3a2a1a0endl; 2.6 简单回答下述问题 C+语言中注释符的格式如何?注释信息的功能是什么? 答:注释符格式有2种:

23、格式一: /* */ 格式二: / 注释信息是用来对程序进行提示和说明的。使用const定义符号常量比使用#define定义符号常量有何优点? 答:使用const定义符号常量时要指出数据类型,而用#define定义符号常量时不需提出类型,因此前者比后者对类型要求更严格,这样会更安全。内部静态存储类变量有何特点? 答:内部静态存储类变贯的特点是作用域较小,但寿命很长,这种变量作用域与寿命不一致,因此会出现不可见但又存在的情况。在使用插入符(c?b:c; 这是一个条件表达式还是赋值表达式? 答:表达式类型由优先级低的运算符组成的表达式来确定。 15 这是一个赋值表达式,因为赋值运算符优先级低于三目

24、运算符。1.数组元素个数是由什么决定的? 答:数组元素个数是由维数及其大小来决定的。一维数组元素个数是该维的大小,二维数组的元素个数是两维大小之积等。1.数组元素下标有何规定? 答:C+语言中,数组元素下标从0开始。1.初始值表中数据项的类型和个数有何规定? 答:初始值表中数据项的类型应与该变是类型相同,个数应小于或等于被初始化的数组元素的个数。1.字符数组和字符串有什么关系? 答:字符数组中可存放字符串,而字符数组不都是存放字符串的。如果字符数组中有字符串结束符,则说明该字符数存放的是字符串。10一个数组中的元素类型是否一定相同?何时定义的数组元素具有默认值? 答:数组中元素类型必须相同。存

25、储类为外部和静态的数组其元素具有默认值。 第3章 语句和预处理 练习题3 3.1 判断题 1表达式和表达式语句是不同的。 2空语句是一种没有用处的语句。 3复合语句就是分程序。 4条件语句中if子句和else子句都是必须有并且仅有一个。 5条件语句中else if子句可以没有,也可以有多个。 6开关语句可实现多路分支。 7开关语句的中必须有一个break语句,否则该开关语句便无法退出。 8任何循环语句都是至少执行一次循环体。 9退出for循环语句必须是for后面括号内的中间一个表达式的值为0。 10do-while循环语句至少要执行一次循环体。 11循环语句的循环体中可以出现if语句,if语句

26、的if体内不能出现循环语句。 12goto语句中所使用的语句标号是一种标识符,它的作用域是文件级的。 13break语句和continue语句都可以出现在循环体中,但是它们的作用是不同的。 14文件包含命令所能包含的文件类型是不受限制的。3.2 单选题 1下列关于语句的描述中,错误的是( A )。AC+程序中的函数是由若干条语句组成的B每条语句都要实现某种操作C条件语句是用来实现分支操作的D循环语句是用来在一定条件下重复执行某段程序的2下列关于条件语句的描述中,错误的是( C )。Aif语句中最多只能有一个else子句 16 Bif语句的if体内可以出现开关语句Cif语句中else if子句和

27、else子句的顺序是没有限制的Dif语句中else子句是与它最近的if子句配对的3下列关于开关语句的描述中,错误的是( B )。A开关语句中,case子句的个数是不受限制的B开关语句中,case子句的语句序列中一定要有break语句C开关语句中,default子句可以省略D开关语句中,右花括号具有退出开关语句的功能4下列关于循环语句的描述中,错误的是( A )。Awhile循环语句中给定的表达式不能为非0的常量,否则便是死循环Bfor循环语句的循环体内可以出现while循环语句、do-while循环语句和for循环语句C循环语句的循环体可以是空语句D循环语句的循环体内可以出现break语句,也

28、可以出现continue语句5已知:int i(3);下列do-while循环语句的循环次数是( D )。 do couti-endl; i-; while(i!=0); A0 B3 C1 D无限6下列for循环语句的循环次数是( B )。 for(int i(0), j(5); i=3; i+, j-); A3 B无限C5 D0 7下列while循环语句的循环次数是( A )。 while(int i(0) i-; A0 B1 C2 D无限8下列程序段执行后,j值是( B )。 for(int i(0), j(0); i10; i+) if(i) j+; A0 B9 C10 D无限9已知:t

29、ypedef char CH;下列描述中,正确的是( A )。A使用CH定义的变量是char型变量B使用CH定义的是一个字符常量C使用CH定义的变量其类型不确定D使用CH定义的是一个字符串10下列关于预处理命令的描述中,错误的是( D )。A预处理命令最左边的标识符是# B预处理命令是在编译前处理的C宏定义命令可以定义符号常量D文件包含命令只能包含.h文件3.3 填空题 17 1表达式语句是一个表达式后边加上 分号(;) 组成的。空语句是只有一个分号的语句。 2复合语句是由 两条条或 两条 条以上的语句加上 花括号() 组成的。3分程序是一种带有 说明 语句的复合语句。4循环语句的共同特点是都

30、应具有循环体 和 退出循环的条件 。 5下列程序是求100之内的能被7整除的自然数之和。 #inelude void main( ) int sum; _sum=0_; for(int i(1);_i=100_; i+) if(_i%7=0_) sum+=i; coutsumendl; 3.4 上机调试下列程序,并分析其输出结果 1 #include void main() int a(8),b(5); if(!a) b-; else if(b) if(a) a+; else a-; else b+; couta,bendl; 答: 9,5 2 #include void main() int

31、 a(10); while(-a) if(a=5) break; if(a%2=0&a%3=0) continue; coutaendl; 18 答: 9 8 7 3 #include void main() int b(10); do +b; cout+bendl; if(b=15) break; while(b15); coutok! endl; 答: 12 14 16 ok! 4 #include void main() int w(5); do switch(w%2) case 1: w-; break; case 0: w+; break; w-; coutw0); 答: 3 1 -

32、1 5 #include void main() int a(4),b(5),i(0),j(0); 19 switch(a) case 4: switch(b) case 4: i+; break; case 5: j+; break; default: i+;j+; case 5: i+; j+; break; default: i+;j+; couti,jendl; 答: 1,2 6 #include void main() int b(10); for(int i=9;i=0;i-) switch(i) case 1: case 4: case 7: b+;break; case 2:

33、case 5: case 8: break; case 3: case 6: case 9: b+=2; coutbendl; 答: 19 7 #include void main() int a(6); for(int i(1);i=a;i+) for(int j=1;j=a-i;j+) cout ; for(j=1;j=2*i-1;j+) coutA; coutendl; 20 答: A AAA AAAAA AAAAAAA AAAAAAAAA AAAAAAAAAAA 8 #include #define MAX(x,y) (x)(y)?(x):(y) void main() typedef

34、 int IN; IN a(3),b(4),c; c=MAX(a,b)*2; coutcendl; 答: 8 3.5 编程题 .求100之内的自然数中奇数之和。答:编程如下: #include void main() int s=0; for(int i=1;i100;i+=2) s+=i; coutsendl; .求两个整数的最大公约数和最小公倍数。 答:编程如下: 假定两个整数分别为15和25,求它们的最大公约数和最小公倍数。 #include void main() int m,n,t; m=15; n=25; if(mn) t=m; 21 m=n; n=t; int m0=m,n0=n

35、; while(n!=0) t=m%n; m=n; n=t; cout最大公约数为mendl; cout最小公倍数为m0*n0/mendl; .求下列分数序列前15项之和。 2/1,3/2,5/3,8/5,13/8, 答:编程如下: #include void main() int a; double i=2,j=1,sum=0,t; for(a=1;a15;a+) sum+=i/j; t=i; i+=j; j=t; coutSUM=sumendl; 4按下列公式,求e的近似值。 e=1+1/1 !+1/2 !+1/3 !+1/n! 答:编程如下: #include #include void

36、 main() double x(1),s(0); for(int i=1;fabs(x)1e-8;i+) x*=(-1.0)*(2*i-3)/(2*i-1); s+=x; 22 s*=4; coutpi=sendl; 5求下列式子之和,假定n=10。 S=1+(1+2)+(1+2+3)+(1+2+3+n) 答:编程如下: #include void main() int s(0),s1(0); for(int i=1;i=10;i+) s1+=i; s+=s1; coutsendl; 3.6 简单回答下列问题 .分程序是复合语句吗?复合语句与分程序的区别是什么? 答:分程序是复合语句。复合语

37、句与分程序的区别在于含有说明语句的复合语句称为分程序。.if语句中,else子句的功能是什么? 答:该子句的功能是当if子句和所有else if子句的条件都为0时,则执行else子句。.在开关语句中,是否每个case子句后面的中都应该有break语句? 答:通常case子句后面的中都有break语句,根据需要也可以没有break语句。.循环语句的循环体中出现的continue语句的作用是什么? 答:结束本次循环,转到循环头判断是否继续循环。 .文件包含命令的功能吗?该命令一定要放在程序首部吗? 答:该预处理命令是将指定的包含文件内容放在该命令出现的地方。通常放在程序开头,便于后边语句的使用。第

38、4章 指针和引用 练习题4 4.1 判断题 1指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。 23 2指针的类型是它所指向的变量或对象的类型。 3定义指针时不可以赋初值。 4指针可以赋值,给指针赋值时一定要类型相同,级别一致。 5指针可以加上或减去一个int型数,也可以加上一个指针。 6两个指针在任何情况下相减都是有意义的。 7数组元素可以用下标表示,也可以用指针表示。 8指向数组元素的指针只可指向数组的首元素。 9指向一维数组的指针是一个二级指针。 10指针数组的元素可以是不同类型的指针。 11字符指针是指向字符串的指针,可以用字符串常量给字符指针

39、赋值。 12引用是一种变量,它也有值和地址值。 13引用是某个变量的别名,引用是被绑定在被引用的变量上。 14创建引用时要用一个同类型的变量进行初始化。 15指针是变量,它可以有引用,而引用不能有引用。4.2 单选题 1下列关于定义一个指向double型变量的指针,正确的是( B )。Aint a(5);double *pd=a; Bdouble d(2.5),*pd=&d; Cdouble d(2.5),*pd=d; Ddouble a(2.5),pd=d; 2下列关于创建一个int型变量的引用,正确的是( A )。Aint a(3),&ra=a; Bint a(3),&ra=&a; Cdo

40、uble d(3.1);int &rd=d; Dint a(3),ra=a; 3下列关于指针概念的描述中,错误的是( B )。A指针中存放的是某变量或对象的地址值B指针的类型是它所存放的数值的类型C指针是变量,它也具有一个内存地址值D指针的值(非常量指针)是可以改变的4下列关于引用概念的描述中,错误的是( A )。A引用是变量,它具有值和地址值B引用不可以作数组元素C引用是变量的别名D创建引用时必须进行初始化5已知:int a5,*p=a;则与+*p相同的是( D )。A*+p Ba0 C*p+ D+a0 6已知:int a =1,2,3,4,5,*p=a;在下列数组元素地址的表示中,正确的是

41、( C )。A&(a+1) B&(p+1) C&p2 D*p+ 7已知:int a34,(*p)4;下列赋值表达式中,正确的是( A )。Ap=a+2 Bp=a1 Cp=*a Dp=*a+2 8已知:int b35=0;下列数组元素值的表示中,错误的是( D )。A*(b+1) B(*(b+1)2 C*(*(b+1)+1) D*(b+2) 9已知:int a=1,b=2,*p2;下列表达式中正确的是( C )。 24 Ap=&a Bp=&b Cp0=&a,p1=&b Dp =&a,&b; 10已知:int a(5),&ra=a;下列描述中,错误的是( D )。Ara是变量a的引用,即为变量的别

42、名 Bra的值为5 Cra的地址值为&a D改变ra的值为10,变量a值仍为5 4.3 填空题 1单目运算符&作用在变量名左边,表示该变量的地址值 ,单目运算符*作用在指针名的左边,表示取该变量的值 。2指向一维数组元素的指针是一 级指针,指向二维数组元素的指针是一 级指针,指向一维数组的指针是二 级指针,指向一级指针的指针是二 级指针,一维一级指针数组名是二 级指针的地址值,二维数组的数组名是 二级指针的地址值。3在一个二维数组b35中,b0与 *b 是等价的,&b1与 b+1 是等价的。4指针的运算有4种,它们是赋值 运算、一个指针加减整型数的运算、两个指针相减和比较 运算。 5引用不是变

43、量,它是某个变量或对象的别名 。引用的值是被引用的变量的值 ,引用的地址值是 被引用的变量的地址值。 4.4 分析下列程序的输出结果 1 #include void main() int a=5,4,3,2,1; int *p=&a2; int m(5),n; for(int i(2);i=0;i-) n=(*(p+i)*a)?*(p+i):*a; coutnendl; 答: 1 2 3 2 #include void main() char *p1,*p2; p1=abcqrv; p2=abcpqo; while(*p1&*p2&*p2+=*p1+) ; int n=*(p1-1)-*(p2

44、-1); coutnendl; 25 答: 1 3 #include int a=10,9,6,5,4,2,1; void main() int n(7),i(7),x(7); while(x*(a+i) *(a+i+1)=*(a+i); i-; *(a+i+1)=x; for(i=0;in;i+) cout*(a+i),; coutaiendl; 答: 10,9,7,6,5,4,2,1 4 #include int a3=1,2,3,4,5,6,7,8,9; int *p=a0,a1,a2; int *pp=p; void main() int (*s)3=a; for(int i(1);i3;i+)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!