C复习习题部分实用.pptx
《C复习习题部分实用.pptx》由会员分享,可在线阅读,更多相关《C复习习题部分实用.pptx(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 练习2#include void main()cinx;int p=x*x;cout“p=”p“n”;1)变量必须先声明后使用;2)cout输出字符串时用双引号(“”)括起;int x;第第2页页/共共65页页第1页/共65页 练习3#include void main()int i,j;i=5;int k=i+j;cout“i+j=”k“n”;v没有确定值的变量不能引用!j=1;第第3页页/共共65页页第2页/共65页#include void main()int a,b,c;a=5;b=8;c=max(a,b);coutmax(a,b)=cy?x:y;写出输出结果第第2章章第第4页页/共
2、共65页页第3页/共65页有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是()A)5 B)6 C)8 D)9练习第第5页页/共共65页页第4页/共65页 “指针”通过地址间接访问某个变量;“引用”通过别名直接访问某个变量;比较 例2.5 分析程序输出结果#include void main()int val(5);int&refv=val;/int&refv(val)错 /引用定义时初始化 refv=refv+5;/对引用操作 coutvalendl;int *p=&refv,val1(refv);/取引用的地址值 cout*ptva
3、l1=3或者或者x=3 or x=3|x=3|x=3|x2)等价的表达式是等价的表达式是_。4表达式于语句的重要区别是表达式于语句的重要区别是_。5x*=y+8等价于等价于x=_。112.5 x=2 x*(y+8)(略略)第第9页页/共共65页页第8页/共65页#include /文件包含命令#define A 10 /宏定义命令 void main()#if A0 /条件编译命令 cout0”endl;#elif A0 cout“a0”endl;#else cout“a=0”endl;#endif 输出结果:a0第第3章章第第10页页/共共65页页第9页/共65页#include#defin
4、e PI 3.14159 void main()double r,l,s;coutr;l=2*PI*r;s=PI*r*r;cout“l=”lendl;cout“s=”sendl;void main()double r,l,s;coutr;l=2*3.14159*r;s=3.14159*r*r;cout“l=”lendl;cout“s=”sendl;宏替换第第11页页/共共65页页第10页/共65页#includevoid main()int b(5);#define b 2#define f(x)b*(x)int y(3);coutf(y+1)endl;/宏替换2*(y+1)#undef b
5、coutf(y+1)endl;/变量b*(y+1)#define b 3 coutf(y+1)endl;/宏替换3*(y+1)82012第第12页页/共共65页页第11页/共65页习题1从下面的选项中选出正确的答案在宏定义:#define MAXINT 324中,宏名MAXINT代替的是:a.实型数b.整型数c.常量d.一串字符2分析下列叙述是正确的:a.在带参的宏定义中,形式参数是变量。b.在带参的宏定义中,形式参数是变量。c.宏替换不占用运行时间。d.在带参的宏定义中,要定义其形式参数的类型。3一个C+程序开始执行的位置是:a.程序开头b.预编译c.main函数d.以上答案都不正确4下列叙
6、述正确的是:a 一个程序中可以有多个#include命令行b 在#include命令行中,用双引号和用尖括号将被包含的文件名括起来没有区别c#include命令行只能放在程序开始位置d#include命令后也必须以分号结束第第13页页/共共65页页第12页/共65页习题5.预处理命令在程序中都是以以下哪个符号开头的。a.*b.#c.:d./6 文件包含中被包含的文件的扩展名。a.必须为.h b.不能用.hc.必须是.cd.不一定是.h7带参数的宏定义中,程序中引用宏定义的参数是。a.只能是常量b.只能是整型量c.只能是整型表达式d.可以是任意表达式8在宏定义define PI 3.141592
7、6中,用宏名PI代替是一个。a.单精度数b.双精度数c.常量d.字符串第第14页页/共共65页页第13页/共65页习题_写出下面程序的输出结果#include#define CIR(r)r*rvoid main()int x=1;int y=2;int z;z=CIR(x+y);coutzendl;#include#define TESTvoid main()int x=0;int y=1;int z=1;#ifdef TESTcoutxy;#endifcoutz;5011第第15页页/共共65页页第14页/共65页下列程序执行时输入下列程序执行时输入5,给出运行结果。,给出运行结果。#inc
8、lude#define N-2void main()int n;cinn;#if N0cout1endl;#elsecout-1endl;#endif#ifdef EOFcoutEOFendl;#endif-1-1第第16页页/共共65页页第15页/共65页#include#include f1.cppvoid main()int a(5),b;b=f1(a);coutbendl;#define M(m)m*mint f1(int x)int a(3);return -M(x+a);f1.cpp文件内容如下:宏替换:-x+a*x+a -5+3*5+313第第17页页/共共65页页第16页/共6
9、5页#include void main()int a,b;a=b=5;if(a=1)if(b=5)a+=b;coutaendl;else a-=b;coutaendl;couta+bendl;if体内嵌套10第第18页页/共共65页页第17页/共65页两个浮点数的四则运算#includevoid main()float d1,d2;char op;coutd1opd2;switch(op)float temp;case+:temp=d1+d2;coutd1opd2=tempendl;break;case-:temp=d1-d2;coutd1opd2=tempendl;break;case*:
10、temp=d1*d2;coutd1opd2=tempendl;break;case/:temp=d1/d2;coutd1opd2=tempendl;break;default:couterror!n;Input d1 op d2:4.0*5.24.0*5.2 =20.8第第19页页/共共65页页第18页/共65页下列do-while循环的循环次数为()已知:int i(5);do couti-endl;i-;while(i!=0);A.0;B.1;C.10;D.无限第第20页页/共共65页页第19页/共65页1 如果变量如果变量x,y已经正确定义,已经正确定义,下列语句哪一项不能正确将下列语句
11、哪一项不能正确将x,y的值进行交换:的值进行交换:a.x=x+y,y=x-y,x=x-y;b.t=x,x=y;y=t;c.t=y,y=x,x=t;d.x=t,t=y,y=x2 如要求在如要求在if后一对括号中后一对括号中的表达式,表示的表达式,表示a不等于不等于0的时的时候的值为候的值为真真,则能正确表,则能正确表示这一关系的表达式为:示这一关系的表达式为:a.a0b.!ac.a=0d.a3 下面的这个循环的循环次下面的这个循环的循环次数是:数是:for(int i=0,j=10;i=j=10;i+,j-)a.无限次无限次b.语法错误,不能执行语法错误,不能执行c.10d.14下列下列do-w
12、hile循环的循环循环的循环次数是:次数是:for(int i=0,x=0;!x&i=5;i+)a.5b.6c.1d.无限次无限次第第21页页/共共65页页第20页/共65页看下面几个循环语句,说明循环的含义看下面几个循环语句,说明循环的含义1、while(c=getchar()!=Y&c!=y&c!=N&c!=n);2、while(thue).3、while(i).4、int i=1,sum=0;while(i=100)sum+=i+;接受键盘输入,直到输入的是Y,y,N,n为止。死循环 当i为0时,结束循环 求1+2+3+100的和 第第22页页/共共65页页第21页/共65页#inclu
13、devoid main()int x(5);do switch(x%2)case 1:x-;break;case 0:x+;break;x-;coutx0);4332110-1-15%2=13%2=11%2=1第第23页页/共共65页页第22页/共65页#includevoid main()int a(5),b(6),i(0),j(0);switch(a)case 5:switch(b)case 5:i+;break;case 6:j+;break;default:i+;j+;case 6:i+;j+;break;default:i+;j+;couti,jendl;1,2第第24页页/共共65
14、页页第23页/共65页#include void fun(int a=1,int b=3,int c=5)couta=a,b=b,c=cendl;void main()fun();fun(7);fun(7,9);fun(7,9,11);a=1,b=3,c=5a=7,b=3,c=5a=7,b=9,c=5a=7,b=9,c=11默认值函数定义第第4章章第第25页页/共共65页页第24页/共65页#includevoid main()int a(5),b(7),c(10);couta b cendl;int b(8);float c(8.8);couta b cendl;a=b;int c=b;co
15、uta b cendl;couta b cendl;couta b cendl;5 7 105 8 8.88 8 88 8 8.88 7 10第第26页页/共共65页页第25页/共65页1)以下说法错误的是:)以下说法错误的是:a.全局变量就是在函数外定义的变量,因此又叫做外全局变量就是在函数外定义的变量,因此又叫做外部变量部变量b.一个函数中既可以使用本函数中的局部变量,也可一个函数中既可以使用本函数中的局部变量,也可以使用全局变量以使用全局变量c.局部变量的定义和全局变量的定义的含义不同局部变量的定义和全局变量的定义的含义不同d.如果在同一个源文件中,全局变量和局部变量同名,如果在同一个源
16、文件中,全局变量和局部变量同名,则在局部变量的作用范围内,全局变量通常不起作用则在局部变量的作用范围内,全局变量通常不起作用2)当一个函数无返回值时,定义它的函数类型应是当一个函数无返回值时,定义它的函数类型应是。a.voidb.intc.任意任意d.无无第第27页页/共共65页页第26页/共65页3 C+语言中函数返回值的类型是由语言中函数返回值的类型是由_决定的?决定的?a.return语句中的表达式类型语句中的表达式类型b.调用该函数的主调函数类型调用该函数的主调函数类型c.定义函数时所指定的函数类型定义函数时所指定的函数类型d.以上说法都不正确以上说法都不正确4在一个源文件中定义的全局
17、变量的作用域为:在一个源文件中定义的全局变量的作用域为:a.本程序的全部范围本程序的全部范围b.本函数的全部范围本函数的全部范围c.从定义该变量的位置开始到本文件结束从定义该变量的位置开始到本文件结束d.以上说法都不正确以上说法都不正确第第28页页/共共65页页第27页/共65页5以下对于以下对于C+语言的描述中,正确的是:语言的描述中,正确的是:a.C+语言中调用函数时,值传递方式只能将实参的值传语言中调用函数时,值传递方式只能将实参的值传递给形参,形参的值不能传递给实参递给形参,形参的值不能传递给实参b.C+语言中函数既可以嵌套定义,也可以递归调用语言中函数既可以嵌套定义,也可以递归调用c
18、.函数必须有返回值函数必须有返回值d.C+程序中有调用关系的所有函数必须放在同一源程序程序中有调用关系的所有函数必须放在同一源程序文件中文件中6一个一个C+语言程序总是从语言程序总是从_开始执行:开始执行:a.主程序主程序b.子程序子程序c.主函数主函数d.第一个函数第一个函数第第29页页/共共65页页第28页/共65页7下列叙述中正确的是:下列叙述中正确的是:a.C+语言程序中,语言程序中,main()函数必须在其它函数之前,函数必须在其它函数之前,函数内可以嵌套定义函数函数内可以嵌套定义函数b.C+语言程序中,语言程序中,main()函数的位置没有限制,函函数的位置没有限制,函数内不可以嵌
19、套定义函数数内不可以嵌套定义函数c.C+语言程序中,语言程序中,main()函数必须在其它函数之前,函数必须在其它函数之前,函数内不可以嵌套定义函数函数内不可以嵌套定义函数d.C+语言程序中,语言程序中,main()函数必须在其它函数之后,函数必须在其它函数之后,函数内可以嵌套定义函数函数内可以嵌套定义函数第第30页页/共共65页页第29页/共65页#includevoid f(int j);void main()for(int i(1);i=4;i+)f(i);void f(int j)static int a(10);/内部静态类变量 int b(1);/自动类变量 b+;couta+b+
20、j=a+b+jendl;a+=10;习题习题110+2+1=1320+2+2=2430+2+3=3540+2+4=46第第31页页/共共65页页第30页/共65页传址调用传址调用#includevoid fun(int,int,int*);void main()int x,y,z;fun(5,6,&x);fun(7,x,&y);fun(x,y,&z);coutx,y,zendl;void fun(int a,int b,int*c)b=b+a;*c=b-a;666实参:地址形参:指针习题习题2第第32页页/共共65页页第31页/共65页函数参数的默认值函数参数的默认值#includeint a
21、dd(int x,int y=8);void main()int a(5);coutsum1=add(a)endl;coutsum2=add(a,add(a)endl;coutsum3=add(a,add(a,add(a)endl;int add(int x,int y)return x+y;sum1=13sum2=18sum3=23函数声明习题习题3第第33页页/共共65页页第32页/共65页函数重载函数重载#includevoid ff(int),ff(double);void main()float a(88.18);ff(a);char b(a);ff(b);void ff(doubl
22、e x)coutff(double):xendl;void ff(int x)coutff(int):xendl;ff(double):88.18ff(int):97习题习题3第第34页页/共共65页页第33页/共65页#include#includetdate1.hvoid main()TDate1 today(1998,4,6),tomorrow(1998,4,7);couttoday is ;today.Print();couttomorrow is ;tomorrow.Print();TDate1:TDate1(int y,int m,int d)year=y;month=m;day=
23、d;coutConstructor called.n;TDate1:TDate1()coutDestructor called.n;Constructor Called.Constructor Called.today is 1998-4-6tomorrow is 1998-4-7 Destructor Called.Destructor Called.思考:析构函数调用的顺序?思考:析构函数调用的顺序?第第6章章第第35页页/共共65页页第34页/共65页TDate1:TDate1()/析构函数 coutyear“-month“-day“Destructor.n;1998-4-6 Const
24、ructor.1998-4-7 Constructor.today is 1998-4-6tomorrow is 1998-4-7 1998-4-7 Destructor.1998-4-6 Destructor.TDate1:TDate1(int y,int m,int d)/构造函数 year=y;month=m;day=d;coutyear-month-dayConstructor.n;析构函数的调用顺序与构造函数的调用顺序相反!第第36页页/共共65页页第35页/共65页三、设置参数的缺省值class N public:N(int a=3,int b=5,int c=7);/构造函数缺省
25、值 int Aout()return A;int Bout()return B;int Cout()return C;private:int A,B,C;N:N(int a,int b,int c)A=a;B=b;C=c;v一般成员函数和构造函数都可以设置参数缺省值一般成员函数和构造函数都可以设置参数缺省值例:例:第第37页页/共共65页页第36页/共65页#includevoid main()N X,Y(9,11),Z(13,15,17);coutX=X.Aout(),X.Bout(),X.Cout();coutendl;coutY=Y.Aout(),Y.Bout(),Y.Cout();co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习 习题 部分 实用
限制150内