紫气C
返回首页 | 淘宝问答 | 提交答案
关键字: | 时间:2025-11-17 15:03

发布时间:2024-09-09 05:50

| 人浏览

【答案】《C++语言程序设计》网考复习资料(3)

四、写出每个函数的功能

1int WC(int a[] , int n , int k) {

int c=0;

for (int i=0; i<n; i++) if (a[i]>=k) c++;

return c;

}

功能:

统计数组a中值大于等于K的元素的个数并返回。

2int SC(int a , int b , int c) {

if (a>=b && a>=c) return a;

if (b>=a && b>=c) return b;

if (c>=a && c>=b) return c;

}

功能:

求出abc三个数中的最大值并返回。

3bool WB(int a[ ] , int n , int x) {

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

if (a[i] == x) return true ;

return false ;

}

功能:

从数组a中顺序查找值为x的元素,如查找成功则返回真,否则返回假。

4. #include<iostream.h>

int LJ(int a[], int n) {

int k=0;

for(int i=1;i<n;i++)

if(a[i]>a[k]) k=i;

return a[k];

}

功能:

求出数组an 个元素中的最大值并返回

5template <class Type>

int WE(Type a[ ] , Type b[ ] , int n) {

int c = 0;

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

if (a[i] == b[i]) c++;

return c;

}

功能:

模板函数,比较数组a和数组b的对应元素的值,若对应元素值相等,则统计个数,返回统计结果。

6void LK(int a[ ] , int n , int & m) {

float s = 0; int i;

for ( i=0; i<n; i++ ) s += a[i];

s /= n;

m = 0;

for ( i=0; i<n; i++ ) if (a[i] >= s) m++;

}

功能:

求出数组an 个元素中大于平均值的元素个数用引用变量m带回统计值。

7#include <iostream.h>

void LI(int n) {

int *a=new int[n];

for (int i=0; i<n; i++) cin >>a[i];

for ( i=n-1; i>=0; i--) cout <<*(a+i)<<’ ‘;

cout <<’/n’;

delete []a;

}

功能:

建立一个含有n 个元素的数组,从键盘为各元素赋初值,按下标从大到小的次序输出数组a中的n个元素的值

8int SC(int a , int b , int c) {

if (a>b) a = b;

if (a>c) a = c;

return a;

}

功能:

求出a,b,c三个数中的最小值并返回。

9int SC(int a , int b , int c) {

if (a<b) a = b;

if (a<c) a = c;

return a;

}

功能:

求出a,b,c三个数中的最大值并返回。

10# include <iostream.h>

template <class TT>

TT WG(TT a , TT b) {

if (a>b) return 1;

else if (a == b) return 0;

else return -1;

}

功能:

模板函数,比较两个变量ab的大小,若a>b则返回1,若a=b则返回0,若a<b则返回-1.

11// struct Worker {

// char name[15]; // 姓名

// int age; // 年龄

// float pay; // 工资

// };

istream & operator>>(istream & istr , Worker & x) {

cout <<”请输入一个职工记录:姓名、年龄、工资”<<endl;

istr >>x.name>>x.age>>x.pay;

return istr;

}

功能:

重载提取操作符,用于从输入流中输入一个Worker类型的记录到引用参数x中。

12Struct StrNode {

char name[15]; // 字符串域

StrNode * next; // 指针域

};

void QB(StrNode * & f , int n) {

if (n == 0) { f = NULL ; return ; }

f = new StrNode;

cin >>f->name;

StrNode * p = f;

while ( --n ) {

p = p->next = new StrNode;

cin >>p->name;

}

p->next = NULL;

}

功能:

建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针用引用变量f带回。

13

功能:

建立一个具有n个结点的链表,每个结点的实数值由键盘输入,链表的表头指针由引用变量f带回。

14. 假定结构类型Dnode中的data域为结点值域,next域为结点指针域。

DNode* QB(int n)

{

if(n==0) {return NULL;}

DNode* f=new DNode;

cin>>f->data;

DNode* p=f;

while(--n) {

p=p->next=new DNode;

cin>>p->data;

}

p->next=NULL;

return f;

}

功能:

建立一个具有n个结点的链表,每个结点的data域的值由键盘输入,返回链表的表头指针f

15double FI(double n) {

// n为大于等于1的整数

double x , y = 0;

do {

cin >> x;

n--; y += x;

} while (n>0);

return y;

}

功能:

求出从键盘上输入的n个实数之和并返回

16int LK(int a[] , int n) {

float s = 0; int i;

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

s += a[i];

s /= n;

int m = 0;

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

if (a[i]<s) m++;

return m;

}

功能:

求出数组an 个元素中小于平均值的元素个数并返回

17# include <iostream.h>

template <class Type>

Type WD(Type a[] , int n) {

Type m = a[0];

for (int i=1; i<n; i++)

if (a[i]>m) m = a[i];

return m;

}

功能:

模板函数,从数组an个元素中求出最大值并返回。

18#include<iomanip.h>

#include<fstream.h>

struct student {char name[10]; int age;}; //学生记录类型

void JC(char* fname, int n)

{

ofstream fout(fname, ios::out | ios::binary);

student x;

for(int i=0;i<n;i++) {

cin>>x.name>>x.age;

fout.write((char*)&x, sizeof(x));

}

fout.close();

}

功能:

从键盘向二进制文件fname输入的n学生的信息(name域值和age域值)

19# include <iomanip.h>

# include <fstream.h>

void JD(char * fname)

// 可把以fname所指字符串作为文件标识符的文件称为fname

// 文件,假定该文件保存着一批整数。

{

ifstream fin(fname , ios::in | ios::nocreate | ios::binary);

int x , s = 0 , n = 0;

while (fin.read((char * ) & x , sizeof(x))) {

s += x; n++;

}

cout <<n<<’ ’<<s<<’ ’<<float(s)/n<<endl;

fin.close( );

}

功能:

从二进制文件fname中输入所有整数,计算并显示出所有整数的个数、总和与平均值。

20# include <iomanip.h>

# include <fstream.h>

# include <string.h>

void JA(char * fname)

// 可把以fname所指字符串作为文件标识符的文件称为fname文件

{

ofstream fout(fname);

char a[20]; cin >>a;

while (strcmp(a , “end”) != 0) {

fout <<a<<endl;

cin >>a;

}

fout.clase( );

}

功能:

从键盘上向文件fname写入一批字符串,以“end”作为结束输入的标志。

21.假定以fname所指字符串为文件名的文件中保存着一批字符串,每个字符串的长度均小于20

#include<iomanip.h>

#include<fstream.h>

#include<string.h>

int JB(char* fname,char* key)

{

ifstream fin(fname);

char a[20];

int i=0;

while(fin>>a)

if(strcmp(a,key)==0) i++;

fin.close();

return i;

}

功能:

求出字符串文件fname中保存的所有字符串中与给定字符串key相等的字符串个数并返回。

22#include<iomanip.h>

#include<fstream.h>

void JB(char* fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件,

//假定该文件中保存着一批字符串,每个字符串的长度均小于20

{

ifstream fin(fname);

char a[20];

int i=0;

while(fin>>a) {

cout<<a<<endl;

i++;

}

fin.close();

cout<<"i="<<i<<endl;

}

功能:

从文件fname中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中的字符串个数。

23

功能:

求出数组an个元素的最大值元素,返回该元素的地址。

24

功能:

遍历f单链表,即从表头结点开始依次输出f单链表中每个结点的值。

25

功能:

向二进制文件fname写入由键盘输入的n个整数。

26. double SF(double x, int n) {

//n为大于等于0的整数

double p=1,s=1;

for(int i=1;i<=n;i++) {

p*=x;

s+=p/(i+1);

}

return s;

}

功能:

计算的值并返回。

27. float FH() {

float x,y=0,n=0;

cin>>x;

while(x!=-1) {

n++; y+=x;

cin>>x;

}

if(n==0) return y; else return y/n;

}

功能:

求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。

28. #include<iostream.h>

void WA(int a[], int n) {

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

int k=i;

for(int j=i+1;j<n;j++)

if(a[j]<a[k]) k=j;

int x=a[i]; a[i]=a[k]; a[k]=x;

}

}

功能:

采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

答案有错

上一篇:《C++语言程序设计》网考复习资料(4)

下一篇:《C++语言程序设计》网考复习资料(2)

紫气C手机端XML联系我