c++语言程序设计讲解_第1页
c++语言程序设计讲解_第2页
c++语言程序设计讲解_第3页
c++语言程序设计讲解_第4页
c++语言程序设计讲解_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

例:输出可大可小的正方形图案,最外层是第一层,要求每层上用得数字与层数相同。当n=5时,输出:1111111111

2222222

11

2

33333

2

11

2

3

444

3

2

11

2

3

4

5

4

3

2

11

2

3

444

3

2

11

2

33333

2

11

2222222

1111111111作业123456789123456789#include<stdio.h>voidmain(){ inta[50][50],i,j,k,n; scanf("%d",&n); for(k=1;k<=n;k++) for(i=k;i<=2*n-k;i++) for(j=k;j<=2*n-k;j++) a[i][j]=k; for(i=1;i<=2*n-1;i++) { for(j=1;j<=2*n-1;j++) printf("%3d",a[i][j]); printf("\n"); }}16.读程序并填空。下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,最后输出数组a。#include<iostream.h>#include<

>voidmain(){

chara[]="clanguage",t;inti,j,k;k=

;for(i=0;i<=k-2;i+=2) for(j=

;j<k;

) if(

){t=a[i];a[i]=a[j];a[j]=t;}

;

}string.hi+2j=j+2a[i]>a[j]cout<<a;strlen(a)#include<iostream.h>voidmain(){ chars[]={"012xy"}; inti,n=0; for(i=0;s[i]!=0;i++) if(s[i]>='a'&&s[i]<='z') n++; cout<<n<<endl;}17.写出以下程序运行结果。举例2012xy\0s01234518.写出以下程序运行结果。举例6565ab2\0ch012345#include<iostream.h>voidmain(){ charch[]={"65ab23"}; inti,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i++) s=10*s+ch[i]-'0'; cout<<s<<endl;}36#include<stdio.h>voidmain(){ chara[50],b[50]; inti; gets(a); gets(b); i=0; while((a[i]==b[i])&&(a[i]!='\0')&&(b[i]!='\0')) i++; if(a[i]<b[i]) printf("a<b"); elseif(a[i]>b[i]) printf("a>b"); else printf("a=b");}比较两个字符串大小:作业19.求费波纳契数列中前6项的阶乘之和,即求1!+1!+2!+3!+5!+8!要求用函数实现求某个数阶乘,计算结果在主函数中输出。#include<iostream.h>intjie(intx){ inti,res=1; for(i=1;i<=x;i++) res*=i; returnres;}voidmain(){ intsum; sum=jie(1)+jie(1)+jie(2)+jie(3)+jie(5)+jie(8); cout<<sum<<endl;}voidmain(){ inta[50],sum,i,n; cin>>n; a[1]=1; a[2]=1; for(i=3;i<=n;i++) a[i]=a[i-1]+a[i-2]; sum=0; for(i=1;i<=n;i++) sum+=jie(a[i]); cout<<sum<<endl;}费波纳契数列费波纳契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。一般而言,兔子在出生两个月后就有了繁殖能力。一对兔子每个月能生出一对小兔子,如果所有兔子都不死,那么一年后可以繁殖多少对兔子?#include<stdio.h>voidfun(inta,intb,intc){c=a*b;}voidmain(){intc=1;fun(2,3,c);printf("%d\n",c);}20.写结果。函数1c

1形参ab32c16#include<stdio.h>intprime(intn){ inti,leap=1; for(i=2;i<=n-1;i++) if(n%i==0) leap=0; returnleap;}voidmain(){ inti,n; for(n=4;n<=50;n+=2) for(i=2;i<n;i++) { if(prime(i)&&prime(n-i)) { printf("%d=%d+%d\n",n,i,n-i); break; } }}作业验证哥德巴赫猜测:21.写结果x[0]2474x[1]x[2]x[3]x数组a[0]a[1]a[2]a[3]j3t24742&x[0]

a数组作形参#include<iostream.h>voidfun(inta[],inti,intj){intt;while(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j--; }}voidmain(){intx[]={2,4,7,4},i;fun(x,0,3);for(i=0;i<4;i++) cout<<x[i];}i042124742122:写结果a[0]1234a[1]a[2]a[3]a数组a[0]a[1]a[2]a[3]&a[2]

a6#include<stdio.h>voidsum(inta[]){a[0]=a[-1]+a[1];}voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}5678910a[4]a[5]a[6]a[7]a[8]a[9]a[4]a[5]a[6]6a[7]a[-1]数组作形参程序举例#include<iostream.h>intfunc(inti){ staticintf=1; f=f*i; returnf;}voidmain(){ inti,n,m; n=3; for(i=1;i<=n;i++) m=func(i); cout<<m<<endl;}23.写结果。6if11i2i3inm1312223664考试本卷须知考试时间:5月28日笔试:8:30~9:30教九楼B座502601

上机:10:30-11:30教九楼六楼机房C、D区笔试和上机考试时间均60分钟平时成绩(15分)+笔试(55分)+上机(30分)考试本卷须知笔试〔55分〕:一、改错〔5分〕5*1二、填空〔10分〕5*2三、读程序〔40〕10*4完全写对才给分注意:请将答案写在下表中的对应位置,不填、填错、或写在试卷其它位置均不得分。考试本卷须知上机考试本卷须知:试卷上请写明机位号1.文件名命名要求:试题1的文件名为cpp1.cpp试题2的文件名为cpp2.cpp试题3的文件名为cpp3.cpp2.文件存储位置:比方K盘根文件夹〔1〕在K盘根文件夹中建一个文件夹,名字为学号+姓名,例如:某同学名字为张三,学号为321000,那么文件夹名字为:321000张三。〔2〕将文件cpp1.cpp、cpp2.cpp、cpp3.cpp保存到上述文件夹中。3.保存文件类型〔扩展名〕及位置错误,概不得分。考试本卷须知上机〔30分〕:任意一题完全正确得15分,任意两题完全正确得25分,三题完全正确得30分,完全正确含义为无语法错误、编译连接正常、结果无任何错误。VC++6.0环境相关操作〔如何强制终止VC++,如何切换插入和改写状态等〕监考教师在考试时,不再答复任何有关考试题目的问题。K盘盘符显示盘符显示和同学们的机器号有关,例如,某位同学的机器号是B03,那么其机器中K盘盘符的显示为:B03(位于“Jf-b\wks”上)(K)考试本卷须知提前半小时到达考试地点;按照安排的机位号就座;带学生证、笔,其它物品不能带入考场;不准携带U盘、等电子设备进入考场;如果机器出现问题,请及时报告监考老师。考试本卷须知结构体结构体是一种构造数据类型。它允许将相关的数据组织成一个整体,定义一种复合数据类型。使用结构体时,遵循的3个步骤:使用struct关键字声明一个自定义的数据类型〔称其为结构体类型〕;使用第①步声明的结构体类型定义变量、数组或者指针;在程序中使用第②步中定义的结构体变量、数组、指针,对数据进行处理。结构体——类型说明声明一个结构体类型的一般形式:struct结构体标记名{成员列表;};struct_student{charno[9]; //学号charname[12];//姓名floatchinese;//语文成绩floatmath; //数学成绩floatenglish;//英语成绩};C语言规定必须将struct_student作为一个整体看成类型名。一个更好记忆的别名:typedefstruct_studentStudent;为了使用方便,可以给结构体类型起声明一个结构体类型的定义别名形式:typedefstruct结构体标记名{成员列表;}结构体类型别名;typedefstruct_student{charno[9]; //学号charname[12];//姓名floatchinese;//语文成绩floatmath; //数学成绩floatenglish;//英语成绩}Student;结构体——类型说明结构体——定义结构体变量定义结构体类型变量定义结构体类型指针struct_studentzhang3,li4,ss[30];或者Studentzhang3,li4,ss[30];Studentzhang3={"20052369","张三",90,85,80};Studentli4={"20052370","李四",75,80.5,85};Student*pw,wang5;pw=&wang5;结构体——结构体定义的其他问题可以在说明结构体类型的同时定义结构体变量。某些情况也可以省略结构体标记名,直接定义结构体变量。struct{ intyear; intmonth; intday;}d1,d2,d3;struct_book{charname[80];charcode[20];charauthor[20];}bk1,bks[50],*bkp;结构体可以嵌套定义。structdate{ intyear; intmonth; intday;};structperson{ intid; charname[10]; chargender; structdatebirthday;};结构体——结构体定义的其他问题结构体——结构体变量的使用结构体作为整体使用使用结构体成员Studentst3;st3.chinese=86;st3.math=80;st3.english=75;strcpy(st3.no,"20052375");strcpy(,"黎明");Studentst1={"20052369","张三",90,85,80},st2;st2=st1;只有赋值运算一种结构体变量的成员结构体变量名.成员名如果成员本身又是一个结构体变量,必须逐级找到最低级的成员才能使用。structpersonboy;=1990;=1;=1;structdate{ intyear; intmonth; intday;};structperson{ intid; charname[10]; chargender; structdatebirthday;};使用结构体成员Studentst,*p1;p1=&st;p1->chinese=86;p1->math=80;p1->english=90;strcpy(p1->no,"20052380");strcpy(p1->name,"王小丫");结构体指针的成员结构体指针名->成员名“.”和“->”都是取成员运算符,“.”表示取结构体指针的成员,“->”表示取指针所指向的结构体变量的成员。结构体——结构体变量的使用#include<iostream.h>structstudent{ charname[20]; intscore[4]; floataverage; };voidmain(){ structstudentstud1; inti; cin>>; floatsum=0; for(i=0;i<4;i++) { cin>>stud1.score[i]; sum=sum+stud1.score[i]; } stud1.average=sum/4; cout<<stud1.average<<endl;}#include<iostream.h>#include<string.h>structuser{ charname[10]; charpassword[10]; };voidmain(){ structusera[4]={{"kate","123"},{"lucy","456"}, {"jack","789"},{"lily","000"}}; charna[10],pass[10]; inti; cin>>na; cin>>pass; for(i=0;i<4;i++) if((strcmp(na,a[i].name)==0) &&(strcmp(pass,a[i].password)==0)) { cout<<"用户名密码正确"; break; } if(i>=4) cout<<"用户名密码不正确";}文件操作过程:

★文件文件读/写关闭文件定义文件指针打开文件错?结束TF标准I/O:从键盘输入数据,输出到显示器屏幕。文件I/O:以文件作为输入输出对象,从文件中读入数据,运行结果保存在文件中。★文件定义文件指针 FILE*文件指针名;在stdio.h中定义的一种结构体类型,可看作类型

温馨提示

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

评论

0/150

提交评论