第1题:
下列说法不正确的是
A.int *fun();----fun是一个返回int指针的函数
B.int (*fun)();---fun是一个返回int指针的函数
C.int (*array[5])();----array是一个有5个元素的数组,每一个元素都是一个函数指针,指向一个返回int的函数
D.int (*fun(int))(int);----fun是带有一个int参数的函数,返回值是一个函数指针,这个指针指向带有一个int参数并返回int的函数
第2题:
请编写一个函数int fun(int n),其中n为自然数。函数fun()的功能是求出自然数n(包括n)以内所有素数的和,并返回其值。
注意;部分源程序已存在文件PROC11.cpp中。
请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。
文件PROC11.cpp的内容如下:
//PROC11.cpp
include<iostream>
using namespace std;
int fun(int n);
int main()
{
int number;
cout<<"Enter the number which you want to caculate: \n";
cin>>number;
cout<<"The result is:"<<fun(number)<<end1;
return 0;
}
int fun(int n)
{
//* * * * * * * * *
}
第3题:
●试题一
阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。
【函数1.1说明】
函数strcpy(char*to,char*from)将字符串from复制到字符串to。
【函数1.1】
void strcpy(char*to,char*from)
{while( ( 1 ) );}
【函数1.2说明】
函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。
【函数1.2】
void merge(int a[ ],int n,int b[ ],int m,int *c)
{ int i,j;
for(i=j=0;i<n && j<m;)
*c++=a[i]<b[j]? a[i++]:b[j++];
while( (2) )*c++=a[i++];
while( (3) )*c++=b[j++];
}
【函数1.3说明】
递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和。
【函数1.3】
int sum(int a[ ],int n)
{ if(n>0)return (4) ;
else (5) ;
}
●试题一
【答案】(1)*to++=*from++ 或 (*to++=*from++)!=′\0′
(2)i<n 或 i!=n(3)j<m 或 j!=m
(4)a[n-1]+sum(a,n-1);或 a[0]+sum(a+1,n-1);(5)return 0;
【解析】(1)完成字符的复制,并使指针指向下一元素。(2)当出现某一数组所有元素均已合并完成,则将另一数组其他元素直接进行复制。b串已复制完。(3)判断a串是否已复制完。(4)递归函数sun()完成数组n个元素的累加,当n>0时,使用规模为n-1的函数进行递归。(5)当n<=0时,返回0即可。
第4题:
下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的S。例如:若a数组中的值为
a=0 1 2 7 9
1 11 21 5 5
2 21 6 11 1
9 7 9 10 2
5 4 1 4 1
则返回主程序后s的值应为310。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<stdio.h>
include<conio.h>
include<stdlib.h>
define N 5
int fun (int w[][N])
{
}
main()
{
int a[N)[N]={0,1,2,7,9,1,1l,2l,5,5,2, 21,6,11,1,9,7,9,10,2,5,4,1,4,1};
int i,j;
int S;
clrscr( );
printf("*****The array***+*\n");
for (i=0; i<N; i++)
{for(j=0;j<N;i++)
{printf(“%4d”,a[i][j]);}
printf("\n");
}
s=fun(a);
printf(“*****THE RESULT*****\n”);
printf("The sum is:%d\n",s);
}
第5题:
以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回,请填空。(设N己定义)
int fun(int x[N])
{int i,k=0
for(i=0;i<N;i++)
if(x[i]<x[k])k=_____;
return x[k];
}
第6题:
阅读以下说明和C语言函数,将应填入(n)处。
[说明]
函数int find_Max_Min(int a[],int n)的功能是:找出n个元素的数组a中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值:再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;以此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。
[函数]
int find_Max_Min(int a[],int n)
{/*找出n个元素的数组a的最大、最小元素并输出,返回查找过程元素中的比较次数*/
int i,Count=0;
int temp,Maxnum,Minnum;
for(i=0; i<n/2; i++){
Count=Count+1 /*元素比较次数计数*/
if(a[i]>a[(1)])
{/*数组元素交换代码略*/}
}
Maxnum=a[n-1]; Minnum=a[0];
for(i=1;i<n/2+n%2;i++){
Count=(2); /*元素比较次数计数*/
Minnum=(3)? a[i]:Minnum; /*找最小元素*/
Maxnum=(4)?(5):Maxnum; /*找最大元素*/
}
printf("Max=%d\n",Maxnum);
printf("Min=%d\n",Minnum);
return Count;
}
第7题:
阅读以下说明和流程图,回答问题将解答填入对应栏。
[说明]
本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。
注:int min(int X,int y)为返回两数中最小数的函数。
int minInArray(int a[],int n)为返回数组中最小数的函数。
minA为数组中最小值。
[问题l]
将流程图的(1)~(4)处补充完整。
[问题2]
min()函数的定义为(5)。
第8题:
函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如,28的因子为1,2,4,7,14,而28=1+2+4+7+14,因此28是“完全数”。
[C函数1]
int factors(int n)
{ int i,s;
for(i=1,s=0;i<=n/2;i++)
if(n%i=0) (1)______;
if( (2)______ )return 0;
rerurn-1;
}
[说明2]
函数int maxint(int a[],int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
[C函数2]
int maxint(int a[],int k)
{ int t;
if( (3)_____ ) return (4)_______;
t=maxint(a+1, (5)______ );
return(a[0]>t)?a[0]:t;
}
第9题:
请编写一个函数void fun(int p[],int n,int c),其中数组p的元素按由小到大的顺序排列,其元素个数为n。函数fun()的功能是将c插入到数组p中,且保持数组的升序排列。
注意:部分源程序已存在文件PROC9.cpp中。
请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句;
文件PROC9.cpp的内容如下:
//PROC9.cpp
include <iostream>
include <string>
using namespace std;
define M 30
void fun(int p[ ],int n,int c);
int main ()
{
int pp[M],n,i;
int fg, c;
cout<<"Please input n:\n";
cin>>n;
cout<<"Please input the n data:\n";
for (i=0; i<n; i++)
cin>>pp [i];
cout<<"Please input c:\n";
cin>>c;
fun (pp, n, c);
for (i=0; i<n; i++)
cout<<pp [i] << " " ;
cout<<end1;
return 0;
}
void fun(int p[ ],int n, int c)
{
//* * * * * * * * *
}
第10题:
阅读下列函数说明和C代码,将应填入 处的字句写在答题纸的对应栏内。
[函数1.1说明]
函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完全数”。
[函数1.1]
int factors(int n)
{
int i,s;
for(i=1,s=0;i<=n/2;i++)
if(n%i==0) (1) ;
if( (2) )return 0;
return -1;
}
[函数1.2说明]
函数int maxint(int a[], int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
[函数1.2]
int maxint(int a[],int k)
{
int t;
if( (3) ) return (4) ;
t=maxint(a+1, (5) );
return (a[0]>t)?a[0]:t;