版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课程实践报告试题及答案任务一 一、实践任务 1试建立一个类 PP,求出下列多项式的前 n 项的值。ïîïíì- - -=-n _ P n _ _P n_ _ Pnn/ ) ( ) 1 ( ) ( ) 1 2 (1) (2 n 1 110>=nnn 二、详细设计 1、类的描述与定义 (1)私有数据成员 l int n:前若干项的项数。l double_:存放 _ 的值。l double _p:根据 n 的大小动态申请存放 P n (_) 前 n 项的数组空间。(2)公有成员函数 l PP(int num,double _1):构造函数,
2、初始化数据成员 n 和 _,使 p 指向动态申请的数组空间。l PP():析构函数,释放 p 指向的动态内存空间。l double fun(int n1,double _):递归函数,用于求多项式 ) (_ P n 的第 n1 项。注意:将递归公式中的 n 用作函数参数。本函数供 process 函数调用。l void process( ):完成求前 n 项的工作,并将它们存放到 p 指向的动态数组中。l void show( ):输出 n 和 _,并将前 n 项以每行 4 个数的形式输出到屏幕上。2、主要函数设计在主函数中完成对该类的测试。先输入 num 和 _1,并定义一个 PP 类的对象
3、 items,用 num 和 _1 初始化 items 的成员 n 和 _,调用 items 的成员函数,求出并输出多项式前 num 项的值。三、程序清单 #include class PP private:int n;double _;double_p; public:PP(int num,double _1)n=num;_=_1; p=new doublen;PPif(p) delete p;double fun(int n1,double _);void process;void show; ; double PP:fun(int n1,double _) if(n1=0) return
4、 1;else if(n1=1) return _;else if(n1>1) return (2_n1-1)_fun(n1-1,_)-(n1-1)_fun(n1-2,_)/n1; void PP:process for(int i=0;i>num>>_1;PP items(num,_1);cess;items.show; 任务二一、实践任务 2试建立一个类 SP,求k k k kn k n f + + + + = .3 2 1 ) , ( ,另有辅助函数 power(m,n)用于求nm 。二、详细设计 1、类的描述与定义 (1)私有数据成员 l in
5、t n,k:存放公式中 n 和 k 的值; (2)公有成员函数 l SP(int n1,int k1):构造函数,初始化成员数据 n 和 k。l int power(int m, int n):求 m n 。l int fun( ):求公式的累加和。l void show( ):输出求得的结果。2、主要函数设计 在主程序中定义对象 s,对该类进行测试。三、程序清单 #include class SP private:int n,k; public:SP(int n1,int k1)n=n1;k=k1;int power(int m,int n);int fun;void show; ; int
6、 SP:power(int m,int n) int s=1;for(int i=0;i>n1>>k1;SP s(n1,k1);s.fun;s.show; 任务三一、实践任务 3建立一个类 MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。二、详细设计 1、类的描述与定义 (1)私有数据成员 l float array20:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数 l MOVE(float b,int m):构造函数,初始化成员数据。l void average:输出平均值,并将数组中的元素按要求重新放置。
7、l void print:输出一维数组。2、主要函数设计 在主程序中用数据1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3对该类进行测试。三、程序清单 #include class MOVE private:float array20;int n; public:MOVE(float b,int m)for(int i=0;ifloat turn20;j=0;for(i=0;iave)turnn-1-j=arrayi;j+;for(i=0;ifloat b1=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3;int num;num=sizeof(b1)/si
8、zeof(float);MOVE s(b1,num);s.average;s.print; 任务四一、实践任务 4建立一个类 MOVE,将数组中最大元素的值与最小元素的值互换。二、详细设计 1、类的描述与定义 (1)私有数据成员 l int _array:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数 l MOVE(int b,int m):构造函数,初始化成员数据。l void e_change:输出平均值,并将数组中的元素按要求重新放置。l void print:输出一维数组。l MOVE:析构函数。2、主要函数设计 在主程序中用数据21,65,43,87,12,84,
9、44,97,32,55对该类进行测试。三、程序清单 #include class MOVE private:int _array;int n; public:MOVE(int b,int m)array=new intm;n=m;for(int i=0;iint ma_,min;ma_=min=array0;int m;for(i=0,m=0;i=ma_) m=i,ma_=arrayi;int l;for(i=0,l=0;iint te_t=21,65,43,87,12,84,44,97,32,55;int num;num=sizeof(te_t)/sizeof(int);MOVE s(te_
10、t,num);s.print;cout二、详细设计 1、类的描述与定义 (1)私有数据成员 l int n:整型数字。l int y:标记是否为回文数。(2)公有成员函数 l Palindrome (int _) :构造函数,根据 _ 参数初始化数据成员 n,y 初始化为 0。l void huiwen :判断数 n 是否为绝对回文数。l void show( ) :若该数为回文数,则在屏幕显示。2、主要函数设计在主程序中定义 int a,由键盘输入数字。定义一个 Palindrome 类对象 p,用 a 初始化 p,完成对该类的测试。三、程序清单 #include class Palindr
11、ome private:int n;int y; public:Palindrome(int _) n=_;y=0;void huiwen;void show; ; void Palindrome:huiwen int i=0,j=0;int m;m=n;while(m)m/=10;i+;m=n;while(m)m/=2;j+;int_s10=new inti;int_s2=new intj;m=n;for(int k=0;k>a;Palindrome p(a);p.huiwen;p.show; 任务六一、实践任务 6定义一个字符串类 String,实现判断该字符串是否为回文字符串。所谓
12、回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。二、详细设计 1、类的描述与定义 (1)私有数据成员 l char _str;l int y:标记是否为回文字符串。(2)公有成员函数 l String (char _s) :构造函数,用给定的参数 s 初始化数据成员 str。y 初始化为 0。l void huiwen :判断 str 所指向的字符串是否为回文字符串。l void show( ) :在屏幕上显示字符串。2、主要函数设计 在主程序中定义字符串 char s=”ababcedbaba”作为原始字符串。定义一个 String 类对象 test,用 s 初始化
13、 test,完成对该类的测试。三、程序清单 #include #include class String private:char_str;int y; public:String(char_s)int n=strlen(s);str=new charn+1;strcpy(str,s);y=0;void huiwen;void show;String if(str) delete str; ; void String:huiwen int n,judge=0;n=strlen(str);for(int i=0;i一、实践任务 7建立一个类 PHALAN_,生成并显示一个折叠方阵。折叠方阵如下图
14、所示。折叠方阵的生成过程为:起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。二、详细设计 1、类的描述与定义 (1)私有数据成员 1243 1 12510 43611 98712 16151413 l int (_p)20:指向按照折叠规律存放方阵的二维整型数组。l int startnum:折叠方阵的起始数。l int n:存放方针的层数。(2)公有成员函数 l PHALAN_ (int s, int m ):构造函数,初始化成员数据。l void process:生成起始数为 startnum 的 n 行方阵。l void print:输出折叠方阵。l PHALAN_( )
15、:析构函数。2、主要函数设计 在主程序中对该类进行测试。三、程序清单 #include class phalan_ int (_p)20;int startnum;int n;public:phalan_(int s2020,int m)startnum=1;p=s;n=m;void processp00=startnum;for(int i=0;ij)pij=1+i_i+i+i-j;elsepij=1+j_j+i;void printfor(int i=0;i>m;cout这是一篇无可置疑的好范文。有感染力!一、单选题1在C语言中,下列类型属于构造类型的是( D ) A整型 B字符型
16、C实型 D数组类型 2下列字符串不是标识符的是( D ) A.sum B.Average C.Day_night D.M.D.JOHN 3.在C语言中,回车换行符是( A ) A.n B.t C.v D.b 4.在C语言中,语句和数据定义是用( C )作为结束标记的 A句号 B逗号 C分号 D括号 5.设有如下定义: int _=10,y=5,z; 则语句printf(“dn”,z=(_+=y,_/y); 的输出结果是( C ) A0 B1 C3 D4 6.10以下程序的输出结果是( B ) main( ) char c1=8,c2=2;printf(“c,c,d,dn”,c1,c2,c1-c
17、2,c1+c2); A因输出格式不合法,输出出错信息 B8,2,6,106 C8,2,6,10 D8,2,5,9 7两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( A ) main( ) int _; scanf(“d”,&_);if(_+>5) printf(“dn”,_); else printf(“dn”,_-); A7和5 B7和4 C6和4 8.表达式(int)2.1416的值时( A ) A.2 B.2.1 C.0 D.3 9.下列运算符优先级最高的是( B ) A.> B.+ C.&& D.!= 10.C语言容许函数值类型缺省定
18、义,此时该函数值隐含的类型时( B ) A.float型 B.Int型 C.Long 型 D.Double型11、C程序的基本构成单位是( C) A、子程序 B、过程 C、函数 D、文件12、C语言中要求操作数都为整型数据的算术符是(C ) A、/ B、! C、 D、= =13、若int _=1,y=1;则表达式(!_|y-)的值是(B )。 A、0 B、1 C、2 D、114、能正确表示逻辑关系:a10或a0的C语言表达式(D ) A、a>=10 or a=0|a=10 && a=10|a15、double _,y;表达式_=1,y=_+3/2的值是(C )。 A、1
19、B、2 C、2.0 D、2.516、运行C程序的命令是( D ) A、ALT+F5 B、ALT+F9 C、CTRL+F5 D、CTRL+F917、运行完C程序后,查看C程序运行结果的命令是( A ) A、ALT+F5 B、ALT+F9 C、CTRL+F5 D、CTRL+F9 18.若有程序段:int i=2,j; j=i+; printf(“d,d”,+i,j); 该程序段的输出结果是:(D) A、3,2 B、4,3 C、3,3 D、4,2 19设 int a=12; 表达式a+=a-=a_=a的值是(C )。 A 12 B 144 C 0 D 132 20、若给定条件表达式(M)?(a+):
20、(a-),则其中表达式M和( D )等价。 A M=0 B M=1 C M!=1 D M!=021、在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为( D )。 A 只能是逻辑表达式 B只能是关系表达式C 只能是逻辑表达式或关系表达式 D可以是任意表达式22、下列选项中,(A )给变量赋初值是错误的。A int a=b=3; B int a,b,c=5; C int a=3,b,c=a; D float f=3.56;23、在C语言中,一个字符变量在内存中占用( A )个字节。 A 1 B 2 C 3 D 424、int a=12,b=13,c; c=(a25、设有int i;
21、则表达式i=1,+i,+i|+i,i的值为(C ) A.1 B.2 C.3 D.4 30以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(A) A)if(a>b)&&(b>c) k=1; B) if(a>b)|(b>c) k=1 else k=0; C)if(ab) k=1; else if(bc) k=1; else k=0;31、算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性 (B)简洁性 (C)可行性 (D)确定性 32以下选项中可作为C语言合法常量的是 (A ) (A)-80.(B)-080 (C)-8e
22、1.0 (D)-80.0e33、以下叙述中正确的是 (C )(A)用C语言实现的算法必须要有输入和输出操作 (B)用C语言实现的算法可以没有输出但必须要有输入 (C)用C程序实现的算法可以没有输入但必须要有输出 (D)用C程序实现的算法可以既没有输入也没有输出33、以下选项中,不能作为合法常量的是 (B) (A)1.234e04 (B)1.234e0.4 (C)1.234e+4 (D)1.234e034、有以下程序B ) ( main int i=1,j=2,k=3; if(i+=1&&(+j=3|k+=3) printf("d d dn",i,j,k);
23、程序运行后的输出结果是 (D) (A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 335、判断变量ch中的字符是否为数字字符,正确表达式是_D_。 A)ch>=0&&ch=0|ch=0&&ch36、若执行以下程序时从键盘上输入9,则输出结果是_B_A)11 B)10 C)9 D)8 main( ) int n; scanf("d",&n); if(n+37、若w=1,_=2,y=3,z=4;则条件表达式w>_?w:y38、以下非法的赋值语句是( C ) A) n=(i=2,+i); B)j+; C) +(
24、i+1); D)_=j>0;39、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D) A)6.500000 B)6 C) 5.500000 D) 6.000000 40、已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C) A) scanf(“-”,&i,&j,&k); B) scanf(“d d d”,&i,&j,&k); C) scanf(“d,d,d”,&i,&j,&k); D) scanf
25、(“i=d,j=d,k=d”,&i,&j,&k);41、若有以下程序: main int k=2,i=2,m; m=(k+=i_=k);printf(“d,dn”,m,i); 执行后的输出结果是(C) A) 8,6 B) 8,3 C) 6,4 D) 7,4 42、已有定义:int _=3,y=4,z=5;,则表达式!(_+y)+z-1 && y+z/2的值是(D) A) B) C) D) 43 以下选项中,与k=n+完全等价的表达式是(A) A) k=n,n=n+1 B) n=n+1,k=n C) k=+n D) k+=n+139、若有说明:int i,
26、j=7, _p=&i;,则与i=j;等价的语句是B A)i= _P; B)_P=_&J; C)i=&j; D)i=_p; 40、若有以下说明: int a10=1,2,3,4,5,6,7,8,9,10,_p=a; 则数值为6的表达式是C A)_p+6 B)_(p+6) C)_p+=5 D)p+5二、填空题1C语言是通过 库函数 来进行输入和输出的。2C语言的数据类型有四大类,他们是 基本类型、构造类型、指针类型和 空类型 。4下面程序的运行结果是 3.600000,3 main( ) float _; int i; _=3.6;i=(int)_; printf(“_=f
27、,i=d”,_,i); 5数组名定义规则和变量名相同,遵守 标识符 命名规则。6、main( ) char c1,c2,c3; c2=c; c1=c2-1; c3=c2+1; printf(“c,d,cn”,c1,c2,c3); 程序的运行结果是: b,99,d7、main( ) int a=5,b=6,c; c=a; if(a>b) c=1; else if(a= =b) c=0; else c=1 ; printf(“c=dn”,c); 程序的运行结果是: -1 11设_的值为15,n的值为2,则表达式_=(n+=3)运算后,_的值为 0 。 12设 int a=7,b=9,t;执行
28、完表达式t=(a>b)?a:b后,t的值是 9 。 14求10020_间的全部素数。 # include main int m,k,i,n=0; for(m=;m15、main int _,y=1,z=10; if(y!=0) _=5; printf(“_=dt”,_); _=1; if(z0) _=3; else _=5; printf(“_=dn”,_); if(z=y16、百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹? main( ) int hb,hm,hl,n=0; for(hb=0;hb17、写出程序运行结果,并简述
29、功能(运行结果分,功能描述3分,共8分) #include main int i,t; int a10=2,4,6,8,10,1,3,5,7,9; for(i=0;i9 7 5 3 1 10 8 6 4 2 功能描述:将整型数组a以逆序形式显示出来18、有以下语句段 int n1=10,n2=20; printf(“ n1=dnn2=d ”,n1,n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=2019、有以下程序 main( ) int n=0,m=1,_=2; if(!n) _-=1; if(m) _-=2; if(_) _-=3; print
30、f(“dn”,_); 执行后输出结果是 -4 。21、.以下程序运行后的输出结果是_main int a,b,c; a=10;b=20;c=(ab1); printf("d d dn",a,b,c); 答案:10 20 022、任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。 main float a,b,c,a2,b2,c2 scanf("fff,&a,&b,&c); printf("5.1f,5.1f,5.1f",a,b,c); if(a+b>c&&b+c>a&&a+c>b) if(a=b | b=c | a=c)printf("DY"); if(a=b && b=c)printf("DB"); a2=a_a;b2=b_b;c2=c_c; if(a2+b2=c2) |
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届浙江宁波十校高三下学期二模历史试题+答案
- 2025 高中信息技术数据与计算之数据仓库的 ETL 数据质量监控指标体系课件
- 冯斌教智能体博览哲学才能当个好编剧
- 2026年数据企业培育库建立与多元经营主体孵化方案
- 2026华中农业大学海南研究院招聘4人备考题库带答案详解
- 2026四川广安市华蓥市人力资源和社会保障局全市各见习基地招聘第三批就业见习人员25人备考题库【考点精练】附答案详解
- 2026广西北海市工业和信息化局招聘公益性岗位人员1人备考题库附参考答案详解(满分必刷)
- 电力工程安全施工管理手册
- 2025年电力供应保障服务手册
- 道路交通事故处理与理赔指南(标准版)
- 2025年全国高校辅导员职业技能大赛笔试测试卷及参考答案(国赛版)(共3套)
- 起重机制动器调整方法
- TCNAS48-2025成人留置导尿的护理及并发症处理学习解读课件
- 2025年-思想道德修养与法律基础全套课件-国家级课程-新版
- 我是中队小主人(教学设计)二年级下册综合实践活动
- GB/T 28300-2025热轧棒材和盘条表面质量等级
- 印刷厂客户服务标准办法
- 北师大版(2024)八年级上册数学全册教案
- 汽轮发电机组升级改造工程可行性研究报告
- 绿色高端定制农产品市场消费者满意度调查报告
- 辐照加工项目可行性研究报告
评论
0/150
提交评论