《高级语言程序设计C++》平时作业.docx

上传人:b****7 文档编号:24003746 上传时间:2023-05-23 格式:DOCX 页数:16 大小:23.40KB
下载 相关 举报
《高级语言程序设计C++》平时作业.docx_第1页
第1页 / 共16页
《高级语言程序设计C++》平时作业.docx_第2页
第2页 / 共16页
《高级语言程序设计C++》平时作业.docx_第3页
第3页 / 共16页
《高级语言程序设计C++》平时作业.docx_第4页
第4页 / 共16页
《高级语言程序设计C++》平时作业.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

《高级语言程序设计C++》平时作业.docx

《《高级语言程序设计C++》平时作业.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计C++》平时作业.docx(16页珍藏版)》请在冰豆网上搜索。

《高级语言程序设计C++》平时作业.docx

《高级语言程序设计C++》平时作业

一、分析程序,写输出结果

1.  #include

#include

void main()

{int m, k, i ;

for( m=1; m<=10; m+=2 )

{ k = m/3;

for( i=2; i<=k; i++ )

if( m%i ) cout << m << "  ";

}

}

7 9

 

2.  #include

void fun();

void main()

{int i;

for(i=1;i<5;i++) fun();

cout<

}

void fun()

{ static int a;

int b=2;

a += 2 ;

cout<< a+b <<'\t';

}

4 6 8 10

 

3.  #include

int fun(int n)

{ if(n==0) return 1;

return 2*fun(n-1);

}

void main()

{ int a=5;

cout<

}

32

4.  #include

void main()

{ char *cp="word";

for (int i=0 ; i<4; i++ )

cout<

}

wordordrdd

 

二、.根据程序功能填空。

1. 程序把 10 个数存储到一维数组 a 中,并求该数组中最大值。

#include

void main()

{ int max;

int a[10]={76,55,95,87,85,83,65,90,77,85};

int *p=a;

max=*p;

for( ; p<&a[10]; p++)

if( *p>max )  max=  *p;

cout<<"max= "<

}

2.下面程序的功能是输出 1 至 100 之间每位数字的乘积大于每位数的和的数。

例如,45 两位

数字的乘积为 4×5=20,和为 4+5=9。

#include

void main()

{ int n, k=1, s=0, m;

for(n=1; n<=100; n++)

{ k=1; s=0;

1m=n;

while(2m)

{ k*=m%10;

s+=m%10;

3 m/=10;

}

if(k>s) cout<

}

}

3.程序对输入的 n 求 s = 1 + 1/23 + 1/33 + … + 1/n3 。

#include

void main()

{double s;  int  i, n;

cout<<" n= ";cin>>n;

s = 0;

for (i=1;i

s=s=s+(1.0/(n*n*n) ;

cout<<"s="<

}

4.函数 create 从键盘输入整数序列,以输入 0 为结束。

按输入顺序建立一个以 head 为表头

的单向链表。

struct node{int data; node * next;};

create(node *head)

{node *p, *q;

p=new node;

cin>>p->data;

q=p;

while(p->data)

{if(head==NULL) head=p;

elseq->next=p;;

q=p;

p=new node;;

cin>>p->data;

}

q->next=NULL;

delete p;

} }

5.以下程序求方程的全部整数解:

3x + 2y - 7z = 5( 0 ≤ x, y, z ≤ 100 )

#include

void main()

{ int x, y, z ;

for( x=0; x<=100; x++ )

for( y=0; y<=100; y++ )

{ if( ( z=3*x+2*y-5 ) % 7 )

break;

z=3*x+2*y-5)/7;//求出z的值

if(z<=100&&z>=0)  //检查z的范围

cout << "x=" << x << "  y=" << y << "  z=" << z << endl ;

}

三、程序设计

1. 编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。

1

2 2 2

3 3 3 3 3

4 4 4 4 4 4 4

#include

void main()

{

int i,n;

for (i=0;i<5; i++){

for (n=0;n<2*i-1;n++){

cout<

}

cout<

}

}

2. 请编程序,输入两个正整数啊 a 和 b(a

每行输出数据不超过 10 个。

例如,若输入 a 为 6,b 为 8,则输出格式要求如下:

the factors of 6 :

2 3

the factors of 7 :

no factor

the factors of 8 :

2 4

#include 

using namespace std;

void printFactor(int i);

void main()

{

int numA,numB;

cout<<"Input Two Numbers:

"<

cin>>numA>>numB;

for (int i=numA;i<=numB;i++)

{

printFactor(i);

}

}

void printFactor(int i)

{

cout<<" FACTORS OF "<

"<

int *fact=new int();

int n=0;

for (int k=2;k

{

if (i%k==0)

{

fact[n]=k;

n++;

}

}

if (n==0)

{

cout<<"NO FACTOR"<

}

else

{

for (int j=0;j

{

cout<

if ((j+1)%10==0)

{

cout<

}

}

cout<

}

}

3.请编程序,找出 1 至 99 之间的全部同构数。

同构数是这样一组数:

它出现在平方数的右边。

例如:

5 是 25 右边的数,25 是 625 右边的数,所以 5 和 25 都是同构数。

#include

using namespace std;

int main()

{

long x,y,i=10;

int flag=0;

for(x=1;x<100;x++)

{

y=x*x;

while(y/i!

=0)

{

if(y%i==x)

{

flag=1;

break;

}

i=i*10;

}

if(flag==1) cout<

flag=0;

i=10;

}

return 0;

}

4. 编写一个程序,实现如下功能:

(1)从键盘输入 a op b。

其中 a, b 为数值;op 为字符,限制为+、-、*、/ 。

(2)调用函数 count(op,a,b),计算表达式 a op b 的值。

由主函数输出结果。

#include 

using namespace std;

template

T COUNT(char op,T a,T b)

{

switch(op)

{

case '+':

return (a+b);break;

case '-':

return (a-b);break;

case '*':

return (a*b);break;

case '/':

return (a/b);break;

default:

cout << "Error." << endl;break;

}

}

int main()

{

int a,b;

char op;

cin >> a >> op >> b;

if( op == '/' && b == 0 )

{

cout << "Input Error." << endl;

}

cout << "Result is " << COUNT(op,a,b) << endl;

system("pause");

return 0;

}

5. 编写一个程序,实现如下功能:

(1)输入 k(<100)个整数到数组 x[100]中;

(2)计算 k 个数的平均值及大于平均值的元素个数。

#include

float average(int [],int);

int num(int [],int);

void main()

{

int k,i,x[100];float ave;

for(k=0;k<100;k++)

{

cin>>i;

if(i==0){

break;

}

x[k]=i;

}

ave=average(x,k);

cout<<"平均值"<

cout<<"大于平均值的元素个数"<

}

float average(int u[],int k)

{

int a,sum=0;

for(a=0;a

sum+=u[a];

return (float)sum/k;

}

int num(int u[],int k)

{

int b,c,m=0;

int ave=average(u,k);

for(c=0;c

{

if(u[c]>ave)m++;}

return m;

}

6. 定义函数

void reversion(int ary[],int size);

逆置数组ary的元素。

例如实参数组原来为 [ 1,5,3,2,6,8,9,4 ],调用函数

reversion 后变成为 [ 4,9,8,6,2,3,5,1 ]。

 

void reversion(int ary[],int size){

int i;

int temp;

for(i=0;i

temp = ary[i];

ary[i] = ary[size-i];

ary[size-i] = temp;

}

}

7.数组 a 包含 50 个整数,把 a 中所有的后项除以前项之商取整后存入数组 b(即 b[i]=a[i]

/a[i-1],并且 b[50]=a[20]/a[1]),最后按每行 5 个元素的格式输出数组 b。

#include

void main()

{ int a[50],b[50];

int i,j=0;//j 用来控制换行

for(i=1;i<=50;i++)

{ cout<<"\nInput a[ "<

 ";  cin>>a[i];

}

for(i=1;i<=50;i++)

{ if(i!

=50)b[i]=a[i]/a[i-1];

elseb[i]=a[20]/a[1];

}

for(i=0;i<=50;i++)

{ if(j!

=5)  cout<<"\n";

cout<<""<

}

}

8. 编程输出所有不超过 100 的其平方具有对称性质的正整数(也称回文数)。

输出格式如下:

number square

11

24

39

11 121

22 484

26 676

 

#include

void main()

{  int i;

long text(int i);//判断 i 的 i^2 是不是回文数的函数

for(i=4;i<=100;i++)

{ if(text(i)!

=0)  cout<<"\n "<

}

}

long text(int i)

{ long sum,k,sum1=0;

sum=i*i;

k=sum;

while(k>0)

{ sum1=sum1*10+k%10 ;

k=k/10;

}

if(sum1==sum)return i*i;

elsereturn 0;

}

9. 编写程序,打印如下杨辉三角。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

 

#include

void main()

{

int a[5][5],i,j;

for(i=0;i<5;i++)

{

for(j=5;j>=i;j--)

printf("%2c",' ');/*两个空格*/

for(j=0;j<=i;j++)

{

if(i==j||j==0)

a[i][j]=1;

else

a[i][j]=a[i-1][j]+a[i-1][j-1];

printf("%3d ",a[i][j]); /*%3d 后一个空格*/

if(i==j)

printf("\n");

}

}

}

10.定义一个函数,计算长度为 k 的整型数组元素的平均值及大于平均值的元素个数。

调用函

数的语句为:

count(a,k,ave,num);

其中 a 是数组名,k 是数组元素个数,ave 返回的平均值,num 返回大于平均值的元素个数。

void count(a,k,&ave,&num){

int count = 0,sum = 0;

int i;

//求平均数

for(i = 0; i < a; i++){

sum += a[i];

}

ave = (float)sum / (float)a;

//求大于平均数的个数

for(i = 0; i < a; i++){

if(a[i] > ave) count++;

}

num = count;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1