if(a[i]>a[k])k=i;
return&a[k];
}
11.
//structDNode{
//doubledata;//值域
//DNode*next;//指针域
//};
voidQB(DNode*&f,intn){
if(n==0){f=NULL;return;}
f=newDNode;
cin>>f->data;
DNode*p=f;
while(--n){
p=p->next=newDNode;
cin>>p->data;
}
p->next=NULL;
}
12.
#include
#include
#include
intJB(char*fname,char*key)
//可把以fname所指字符串作为文件标识符的文件称为fname文件,
//假定该文件中保存着一批字符串,每个字符串的长度均小于20。
{
ifstreamfin(fname);
chara[20];
inti=0;
while(fin>>a)
if(strcmp(a,key)==0)i++;
fin.close();
returnI;
}
三、编程
1.已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程2a+5b=126的全部整数组解。
如(13,20)就是其中的一组解。
2.编写一个递归函数intFF(inta[],intn),求出数组a中所有n个元素的平方之和并返回。
3.编写一个函数voidSelectSort(inta[],intn),采用选择排序的方法按升序排列数组a中的n个元素。
参考答案
一、给出下列程序运行后的输出结果
1.2520
2.52
3.2120
4.1015
3050
3015
5.2040
3060
6.well!
good!
pass!
well!
bad!
7.7255
8.357
91113
1517
9.169410
10.WeiRong451235
11.s=55
12.i,s=15,56
13.120120360
14.wangfong43640
wangfong86740
二、写出下列每个函数的功能
1.比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a
2.判断x是否为一个质数,若是则返回1,否则返回0。
3.从键盘输入n个Worker类型的记录到一维数组a中。
4.从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。
5.求出从键盘上输入的n个整数的平方和并返回。
6.采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。
7.把从键盘上输入的n个整数按与输入的相反次序显示出来。
8.从键盘上输入一组字符串到fname文件中,直到输入标志结束的字符串“end”为止。
9.统计出数组a中大于等于值为k的元素个数并返回。
10.求出数组a中n个元素的最大值元素,返回该元素的地址。
11.建立一个具有n个结点的链表,每个结点的实数值由键盘输入,链表的表头指针由引用变量f带回。
12.求出字符串文件fname中保存的所有字符串中与给定字符串key相等的字符串个数并返回。
三、编程
1.
#include
voidmain()
{
inta,b;
for(a=6;a<=30;a++)
for(b=15;b<=36;b++)
if(2*a+5*b==126)cout<<’(‘<2.
intFF(inta[],intn)
{
if(n==1)returna[n-1]*a[n-1];
elsereturna[n-1]*a[n-1]+FF(a,n-1);
}
3.
voidSelectSort(inta[],intn)
{
inti,j,k;
for(i=1;ik=i-1;
for(j=i;jif(a[j]intx=a[i-1];a[i-1]=a[k];a[k]=x;
}
}