c++习题(非官方)_第1页
c++习题(非官方)_第2页
c++习题(非官方)_第3页
c++习题(非官方)_第4页
c++习题(非官方)_第5页
免费预览已结束,剩余32页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章程序设计初步voidmain(void)xyz输出 intx=1,y=2,z=3;653x+=y+=z;coutxy?y:xendl;6536coutxy?x+:y+endl;6635coutx“, ”yendl;6636,6couty?x+:y+endl;6799couty“, ”zendl;6797,9x=3; y=z=4;344cout=y&y= =x)?1:0endl;3440cout=y&y=xendl;3441112intx=1, y=0, a=0, b=0;switch( x ) case 1:switch( y ) case 0: a+; break;ca

2、se 1: b+; break;case 2:a+; b+; break;case 3:a+; b+;“a, t ?cout“a=a=1a=2b=1a=2b=1“b= ”bendl;123void main(void)输出是什么? inty=10;循环几次?while (y-);cout“y=”yendl;y109.10条件真真真真假输出无无无无 1输出:y=-1循环:10 次1301C+自制期末复习题汇编,未经允许,禁止传阅void main(void) char i, j ;for (i=, a ?,j= , z ? ; ij ; i+, j-)coutij;coutendl;输出:azb

3、ycx.lomn次数iabc.mnjzyx.nmij真真真真真假输出azbycx.mnCRvoid main(void) inti, j, k=0, m=0;输出:for ( i=0; i2; i+)for ( j=0; j3; j+)k=0, m=5k+;k- =j;m=i+j;cout“k= “k“, m=“ mendl;i01i2真真j01230123j3真真真假真真真假k12301230a=10 ; y=0;do a+=2; y+=a;cout“a=“a“, y= “y50)break; while (a=14);第一次:a=12y=12输出:a=12 , y=12第二次:a=16y=

4、28输出:a=16 , y=28第三次:a=16y=44输出a=16 , y=44第四次:a=16y=601421451562C+自制期末复习题汇编,未经允许,禁止传阅void main(void) inti, j, x=0 ;for (i=0 ; i2; i+) x+;for (j=0;j=3; j+) if ( j%2 ) continue;x+;x+;cout“x= “ xendl;输出:x=8void main(void) intk=0;char c=, A ?;doswitch (c+) case, A ?: k+; break;case, B ?: k-;case, C ?: k+

5、=2; break;case, D ?: k=k%2; continue;case, E ?: k=k*10; break;default: k=k/3;k+;while (c, G ?);cout“k=” kendl;i=0i2第一次j01234j%2假真假真x22334i=1i2第二次j01234j%2假真假真x66778i=2 i2结束158c+ABCDEFcBCDEFGk2471114真真真真真假输出:k=4159求范围内的素数(50100):for(t=50, k=0 ; t=100; t+)for( i=2; it; i+)if(t%i=0)t 是否break;判断if (i= =

6、t)为素数 coutt“;k+;if(k%5=0) coutendl;保证每行输出 5 个数据1633C+自制期末复习题汇编,未经允许,禁止传阅下面程序的功能是用公式求 的近似值,直到最后一项的值小于10-6为止。请填空。void main(void)6 inti=1;doublepi=0;while (i*i=10e+6)pi=pi+1.0/(i*i) ;i+;pi=sqrt(6.0 *pi) ;cout“ pi= ”piendl;有 1020 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请填空。#include”stdio.h”void main(void)

7、intday,x1,x2;day=0;x1=1020;while (x1)x2=x1/2-2;x1=x2;day+;cout“day=”dayendl;12n174175第 4 章 函数与预处理void main(void) inti=2, x=5, j=7;void fun(int,int); fun( j, 6);couti, t ? j, t ? xendl;i, intj)void fun ( int intx=7;couti, t ? j, t ?xendl;输出:767275ixj2576776xij2044C+自制期末复习题汇编,未经允许,禁止传阅void main(void )

8、 int x=2,y=3, z=0;void add(int,int,int);cout“(1) x=“x “y=“y “z=“zendl;add (x, y, z);cout (“(3) x=“x “y=“y “z=“zendl;xyvoid add ( int x, int y, int z)23z=x+y; x=x*x; y=y*y;cout(“(2) x= “x “y=“y “z=“zx;y=f1(x);cout“x=“x “, y=“yx;s+=t;cout“s=“fun(x) 0.00001);return s;209计算 100 200 之间的素数,用函数 prime( ) 判断

9、一个数是否是素数,若是该函数返回 1,否则返回 0。int prime(int x)for(int i=2;ix/2;i+) if(x%i=0)return 0;return 1;void main(void) for(int i=100;i=200; i+)if(prime(i)=1)couti ,t?;2106C+自制期末复习题汇编,未经允许,禁止传阅计算输入两个数的最大公约数int gys(inta, int b)int r;if(axy;coutgys(x,y)xyz;if(ab)r=a; a=b; b=r;coutgys(x,y,z)c?r:c;for(int i=r-1;i=1;i

10、-) if(a%i=0&b%i=0&c%i=0)break;return i;2127C+自制期末复习题汇编,未经允许,禁止传阅void recur(char c)void main(void) coutc; recur(,0?);if(c,5?) recur(c+1);cout=10)1f(n/10);12coutnendl;1231234void main(void)12345 f(12345);224void main(void)23-15 int a=2, b=3, c=5;abccouta,t?b,t?cendl;72inta,b=2;aba=b+c;couta,t?

11、b,t?cendl;235c=a-b;725couta,t?b,t?cendl;23-12308C+自制期末复习题汇编,未经允许,禁止传阅void main(void) int a=1,b=2,c=3;+a;a=2c+=+b;b=3, c=6int b=4, c;b=4c=b*3;c=12a+=c;a=14cout“first: ”a ,t?b ,t?cendl;a=14,b=4,c=12a+=c;a=26cout“second:”a ,t?b ,t?cendl;a=26,b=4,c=12cout“third: ”a ,t?b ,t?cendl;a=26,b=3,c=6231在块作用域内可通过

12、作用域运算符“: ”来引用 与局部变量同名的全局变量。#include :i=104int i= 100;void main(void)i=18j=108int i , j=50;i=18;/访问局部变量 i:i= :i+4;/访问全部变量 ij= :i+i;/访问全部变量 i 和局部变量 jcout”:i=”:i?n?;cout”i=”i?n?;cout”j=”j ?n?;2379C+自制期末复习题汇编,未经允许,禁止传阅int i=0;int workover(int i)i=(i%i)*(i*i)/(2*i)+4);cout“i=“iendl;return i;i=5i=2int res

13、t (int i)i=5i=i2?5:0;i=0i=5return i;void main(void) int i=5; rest(i/2);cout“i=“iendl;rest(i=i/2);cout“i=“iendl;i= rest(i/2);cout“i=“iendl;workover(i)cout“i=“iendl;239int f (int a)只赋一int b=0;次初值staticint c=3;b=b+1;c=c+1;returna+b+c;void main(void)inta=2,i;for (i=0;i3;i+)coutf(a)endl;i=0a=2b=0, b=1输出:

14、 7c=3, c=4i=1a=2b=0, b=1输出: 8c=4, c=5i=2a=2b=0, b=1输出: 97c=5, c=68924410C+自制期末复习题汇编,未经允许,禁止传阅int func (int a, int b)static int m=0, i=2;func( 4, 1)i+=m+1;a=4, b=1m=0, i=2m=i+a+b;i=3return m;m=3+4+1=8void main(void)输出: 8,17 int k=4, m=1, p;p=func(k, m);coutpendl;p=func(k, m);coutpendl;func( 4, 1)a=4,

15、 b=1m=8, i=3i=3+8+1=12m=12+4+1=17245intq(intx) inty=1;static intz=1;z+=z+y+;return x+z;void main(void) coutq(1), t ?;coutq(2), t ?;coutq(3), t ?;intfac(intn=2)intt=1;for(inti=1;i=n;i+)t=t*i;return t;void main(void)cout fac(6)fac(endl;)4918输出:输出:246720225511C+自制期末复习题汇编,未经允许,禁止传阅#define A 3#define B(a

16、) (A+1)*a)93执行 x=3*(A+B(7);后, x 的值为 :#define neg(x)(-x)+1)int neg( int x)编译前机械替换,return x+1; 实参形参一一对应void main(void)y=0 int y;y=neg(1);(-1)+1)cout“y=“yendl;277以下程序的运行结果是:#define DEBUGvoid main(void) int a=14, b=15, c;c=a/b;# ifdef DEBUGcout“a=“octa“b=“bendl;# endifcout“c=“deccendl;输出: a=16, b=17c=02

17、84int q(int x) int y=1; staticint z=1;z+=z+y+;return x+z;4918void main(void) coutq(1) ,t?;coutq(2) ,t?;coutq(3) ,t?;29412C+自制期末复习题汇编,未经允许,禁止传阅下面函数 pi 的功能是:根据以下公式,返回满足精度(0.0005)要求的 的值,请填空。11 21 2 31234将后一项除213 53 5 735793以前一项,输入精度找规律#include “math.h ”输出 main( )double pi(double eps) double s, t; int n

18、;double x;t=1,s=0,n=1couteps; n+)s+=t;cinx;t=n*t/(2*n+1);cout “ =“=10)1f(n/10);12coutnendl;1231234void main(void)12345f(12345);296void main(void) char s; cin.get(s);输入:2347while(s!=, n ?) switch(s-?2 ?) case 0:545455555657case 1: couts+4;case 2: couts+4;break;case 3: couts+3;default: couts+2; break;

19、cin.get(s);cout=3)f0 f1 f2 f3 f4 f5f5 f6 f7 .1123581321f i=f i-1+f i-2void main (void) inti;int f 20=1,1;for (i=2 ; i20 ; i+ )f i=f i-1+f i-2;for ( i=0; i20; i+) if (i%5= =0) cout“n”;coutf i , t?;305下面程序的运行结果是:void main(void) int a6, i;for (i=1; i3)%5 ;coutai ,t?;a0 a1 a2 a3 a4 a5随机-40443i 1 2 3 4 5

20、 输出: -4 0 4 4 3 ai -4 0 4 4 330614C+自制期末复习题汇编,未经允许,禁止传阅void main(void) int a33, i, j;a00=0 a01=1a02=2i=0for (i=0; i3; i+)i=1a10=0 a11=1a12=2 for (j=0; j3; j+)if (i= =2)aij=ai-1ai-1j+1;i=2elseaij=j;coutaij ,t?;cout“n”;a20=a1 a10 +1=a1 0+1=1a21=a1 a11 +1=a1 1+1=2a22=a1a12+1=a12+1=3输出: _0_1_2_0_1_2_1_2

21、_3316将数组行列式互换。123147456258789369for (i=0; i3; i+)for (i=0; i3; i+)for (j=0; j3; j+)for (j=0;ji ; j+) t=aij; t=aij;aij=aji;aij=aji;aji=t;aji=t;320void main(void)static intn2,i,j,k;for(i=0;i2;i+)nj+=ni+i+1;coutnktnk+endl;2132215C+自制期末复习题汇编,未经允许,禁止传阅以下程序用于从键盘上输入若干个学生的成绩,统计出平均成绩,并输出低于平均成绩的学生成绩。 输入负数结束vo

22、id main() float x100,sum=0, ave,a;int n=0,i;couta;while(a=0)xn=a;sum+=a ;n+cina;void sort(intx , intn) intt,i,j;for( i=0;in-1;i+)for(j=0;jxj+1)ave=sum/n;cout “ave=“aveendl;for( i=0;in ;i+)if(xiave)cout “x“i “”xiendl;323xa20484106168210 t=xj; xj=xj+1; xj+1=t;void main(void)inta5=20,4,16,8,10;sort(a,

23、5 );for(inti=0;i5;i+)coutait;339有一个一维数组,内放10 个学生成绩,求平均成绩。数组名作函数形参float average (floatarray ) inti;void main(void)floatscore10= 100,90, .;floataver,sum=array0;aver;for(i=1;i10;i+)数组名作aver=average(score) ;sum函数实参c “aver=“aver, n ?;=sum+arrayi;outaver=sum/10;returnaver;34016C+自制期末复习题汇编,未经允许,禁止传阅程序中的函数p

24、( ) 用于计算:n 1主函数利用函数完成计算paxii079s12 vis23 vii0i0int d=2,3,5,4,9,10,8;int v=7,6,3,2,5,1,8,9,3,4;int w=1,2,3,4,5,6,7,8,9,10;int p(int a, int x, int b, int y, intn) int i, s;voidmain(void)for(i=0,s=0 ; in;i+)s+=a*xi+b*yireturn s;343cout “ns2=“p(3,v,4,w,10);int a10, i;void sub1(void)void main(void)for(i=

25、0;i10;i+)ai=i+i; sub1();void sub2(void)sub3(a);inta10,max,i;sub2();max=5;for(i=0;imax;i+)ai=i;sub3(a);void sub3(int a) int i;for(i=0;i10;i+)coutai ,t?;coutendl;输出:02468101214161802468101214161834417C+自制期末复习题汇编,未经允许,禁止传阅char str120=“CHINA ”;coutstrlen(str1)endl;输出: 5char str120=“a book”;coutstrlen(st

26、r1)endl;输出:6char sp =“tv0willn ”;coutstrlen(sp)endl;输出:3char sp =“x69082”;coutstrlen(sp)endl;输出:1370在 a 数组中查找与 x 值相同的元素所在的位置,数据从 a1元素开始存放,请填空:#define MAX 10aiwhile(x!=_)void main(void)i-_; int aMAX+1, x, i;i!=0if(_)for(i=1;i=MAX;i+)coutx“the pos:”iai; elsecout“Enter x:”;cout“Not found”x;a0=x; i=MAX;

27、38718C+自制期末复习题汇编,未经允许,禁止传阅void main(void) char str =“SSSWILTECH1111W1WALLMP1”;char c; intk;for(k=2; (c=strk)!=,0?;k+) switch(c) case,A?: cout,a?;continue; case,1?: break;case 1: while(c=str+k)!=,1?&c!=,0?);case 9: cout,#?;case,E?:case,L?: continue;default: coutc;cout,*?;coutendl;S W I T C H * #

28、W a M P *continue;388以下程序分别在 a 数组和 b 数组中放入 an+1 和 bn+1 个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到 c 数组中,请填空:while( ai!=max|bj!=max)void main(void) if(aibj) int a10=1,2,5,8,9,10,an=5; ck=_ai;int b10=1,3,4,8,12,18, bn=5;k+;int i,j,k, c20, max=9999;i+_aan+1=ban+1=max;elsebji=j=k=0;ck=_;k+;j+_;for(i=0;ik;i+)coutci

29、;coutendl;38919C+自制期末复习题汇编,未经允许,禁止传阅第 6 章 指针与引用void grt(int *x , int *y , int *z) cout +*x ,? +*y ,?*(z+)endl;int a=10, b=40, c=20;void main(void) prt (&a, &b, &c);prt (&a, &b, &c);11, 41, 2012, 42, 20ax10&a+*x: *x=*x+1*(z+):*z ; z=z+1sub( int *s) static int t=0;t=*s + t;

30、return t;void main(void) int i, k;for (i=0; i4; i+)k=sub(&i);i=0t=*s+t=0i=1t=*s+t=1i=2t=*s+t=3i=3 t=*s+t=6k=0 sum=0k=1 sum=1k=3 sum=3k=6 sum=6sum=0sum=1cout“sum=“k ,t?;cout“n”;sum=3sum=620C+自制期末复习题汇编,未经允许,禁止传阅int*p;bpp(inta, int*b)2intc=4;b*p=*b+c;&b&ba=*p-c;pacout“(2) ”a, , *b, , *pendl

31、;4void main(void)inta=1, b=2,c=3;(2)2 6 6*p=*b+4=2+4=6p=&b;(1)1 66a=6-c=2pp(a+c, &b);cout“(1)”a, , b, , *pendl;void main(void)x intx =1,2,3;1p+12ints,i,*p;p+23s=1; p=x;for (i=0; i3; i+)i=0s=s*(*(p+0)=s*1=1i=1s=s*(*(p+1) =s* 2 =2s*=*(p+i);i=2s=s*(*(p+2) =s* 3 =6coutsendl;)6static inta =1, 3,

32、5, 7, 11, 13;1a0main( )3a1 int*p;5a2p=a+3;p&a37a3cout*pt(*p+)endl;11a4cout*(p-2)t*(a+4)=a&*pchar=z)*pchar=*pchar-32;pchar+;if(*pchar=0)break;pchar+;void main(void) char str100;cin.getline(str,100);change(str);coutstrendl;编写函数 int fun(int x, int *pp), 其功能是,求出能整除 x 且不是偶数的各整数,并按照从小到大的顺序放在 pp 指向

33、的内存中,函数返回值为这些整数的个数。 若 x 的值为30, 数组中的数为 1,3, 5,15,函数返回 4。int fun(int x, int *pp) int k=0;for(int i=1;ix;n=fun(x,a); for(inti=0;in;i+)coutait;coutendl;22C+自制期末复习题汇编,未经允许,禁止传阅引用void dd(int &x, int&y, int z)x=x+z;x=8x=13y=y-x;y=-4y=-17z=10;z=10z=10cout“(2)”x,t?y,t?zendl;void main(void)(2)8-410int

34、 a=3,b=4,c=5;(2)13 -1710(1)13 -175for(int i=0;i2;i+)dd(a,b,c);cout“(1)”a,t?b ,t?cendl;void f1( int *px) *px+=10;void f2(int &xx) xx+=10;void main(void)int x=0;coutx=xendl;f1(&x);coutx=xendl;f2(x);coutx=xendl;x=0 x=10 x=20第七章结构体、共同体和枚举类型23C+自制期末复习题汇编,未经允许,禁止传阅根据下面的定义,能打印出字母M 的语句是:structperson

35、 charname9;structpersonclass10=“Jone ”,17, “Paul”,19 ,“Mary”,18, “Adam”,16;A)endl;输出:AdamB)1endl;输出:dC)1endl;输出:aD)0endl;输出:Mvoid main(void) union EXAMPLE struct int x, int y; in; inta,b;e;e.a=1;e.b=2;e.in.x=e.a*e.a;e.in.y=e.b+e.b;x124a bin

36、y8b输出:48coute.in.x ,t?e.in.yendl;void main(void)enum team qiaut, cubs=4, pick, dodger=qiaut-2;coutqiaut ,t?cubs,t?;coutpick ,t?dodgerendl;输出:045-224C+自制期末复习题汇编,未经允许,禁止传阅第 8 章类和对象例 8.2 引用多个对象的成员。(1) 程序 (a)#include using namespace std;class Timepublic:int hour;int minute;int sec;int main( )Time t1;/ 定

37、义对象 t1cint1.hour;/ 向 t1 的数据成员输入数据cint1.minute;cint1.sec;coutt1.hour : t1.minute : t1.sect2.hour;/ 向 t2 的数据成员输入数据cint2.minute;cint2.sec;coutt2.hour : t2.minute : t2.secendl; /输出 t2 中数据成员的值return 0;运行情况如下:1032 4310:32:4322 32 4322:32:43程序是清晰易懂的,但是在主函数中对不同的对象一一写出有关操作,会使程序冗长。为了解决这个问题,可以使用函数来进行输入和输出。见程序(

38、b)。25C+自制期末复习题汇编,未经允许,禁止传阅(2) 程序 (b)#include using namespace std;class Timepublic:int hour;int minute;int sec;int main( )void set_time(Time&);/ 函数声明void show_time(Time&);/ 函数声明Time t1;/ 定义 t1 为 Time 类对象set_time(t1);/调用 set_time 函数,向 t1 对象中的数据成员输入数据show_time(t1);/调用 show_time 函数,输出 t1 对象中的数据T

39、ime t2;/ 定义 t2 为 Time 类对象set_time(t2);/调用 set_time 函数,向 t2 对象中的数据成员输入数据show_time(t2);/调用 show_time 函数,输出 t2 对象中的数据return 0;void set_time(Time& t)/ 定义函数 set_time,形参 t 是引用变量cint.hour;/ 输入设定的时间cint.minute;cint.sec;void show_time(Time& t)/ 定义函数 show_time,形参 t 是引用变量coutt.hour : t.minute :t.secend

40、l;/ 输出对象中的数据运行情况与程序 (a)相同。26C+自制期末复习题汇编,未经允许,禁止传阅(3) 程序 (c)可以对上面的程序作一些修改,数据成员的值不再由键盘输入,而在调用函数时由实参给出,并在函数中使用默认参数。将程序 (b)第 8 行以下部分改为int main( )void set_time(Time&,int hour=0,int minute=0,int sec=0); /函数声明void show_time(Time&);/ 函数声明Time t1;set_time(t1,12,23,34); /通过实参传递时、分、秒的值show_time(t1);Tim

41、e t2;set_time(t2);/使用默认的时、分、秒的值show_time(t2);return 0;void set_time(Time& t,int hour,int minute,int sec)t.hour=hour;t.minute=minute;t.sec=sec;void show_time(Time& t)coutt.hour : t.minute :t.secendl;程序运行时的输出为12:23:34(t1 中的时、分、秒 )0:0:0(t2 中的时、分、秒 )以上两个程序中定义的类都只有数据成员,没有成员函数,这显然没有体现出使用类的优越性。在下面的例子中,类体中就包含了成员函数。27C+自制期末复习题汇编,未经允许,禁止传阅例 8.3 将例 8.2 的程序改用含成员函数的类来处理。#includ

温馨提示

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

评论

0/150

提交评论