以下ispeime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。int isprime(int a){int i; for(i=2;i<=a/2;【】) if(a%i= =0) return(0); 【】;}
第1题:
以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。#define N 3#define M 3select(int a[N][M],int *n){int i,j,row=0,colum=0;for(i=0;i<N;i++)for(j=0;j<M;j++)if(a[i][j]>a[row][colum]){row=i;colum=j;}*n=;return();}
第2题:
函数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;
}
第3题:
以下程序中的select()函数功能是:在N行M列的二维数组中选出一个最大值作为函数值返回,并通过形参传回此最大值的行下标。请填空完成此程序。
include<iostream>
define N 3
define M 3
using namespace std;
int select(int a[N][M],int *n)
{
int i,j,row=0,colum=0;
for(i=0;i<N;i++)
for(i=0;j<M;j++)
if(a[i][j]>a[row][colum])
{
row=i;
colum=j;
}
*n=【 】;
return 【 】;
}
int main()
{
int a[N][M]={9,11,23,6,1,15,9,17,20};
int max,n;
max=select(a,&n);
cout<<"max="<<max<<"line="<<n<<end1;
return 0;
}
第4题:
下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函数。 Boo1 fun (char*str) { int i=0,j=0; while(str[j]j++; for(j--;i<j&&str[i]==str[j];i++,j--); return i ______ j; }
A.>==
B.||
C.&&
D.<==
第5题:
下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。
main()
{int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if【14】{ y=0; break;}
printf("%d\n", y);
}
第6题:
下列给定的程序中,函数hn()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
include <math.h>
void fun(int a, int *b, int *c)
{ int i,j,d,y;
for (i=3;i<=a/2;i=i+2)
/*************found**************/
{y=0;
for (j=2;j<=sqrt((double)i);j++)
if (i%j==0) y=0;
if (y==1)
/*************found**************/
{ d=i-a;
for (j-2;j<=sqrt((double)d);
j++)
if (d%j==0) y=0;
if (y=-1)
{*b=i; *c=d;}
}
}
}
main ()
{ int a,b,c;
do
{ printf("\nInput a: ");
scanf ("%d", &a); }
while (a%2);
fun (a, &b, &c);
printf ("\n\n%d=%d+%d\n", a,b,c);
}
第7题:
下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(1+10也是在100以内)的个数cnt,以及这些I之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件out64.dat中(数值1不是素数)。
注意:部分源程序已给出。
请勿改动主函数main()和输出数据函数writeDAT()的内容。
试题程序:
include<stdio.h>
int cnt, sum;
int isPrime(int number)
{
int i,tag=1;
if (number==1)
return 0;
for(i=2;tag && i<=number/2;i++)
if(number%i==0) tag=0;
return tag;
}
void countValue ( )
{
}
void main( )
{
cnt=sum=0;
countValue ( );
printf ( "满足条件的整数的个数=%d\n", cnt);
printf ( "满足条件的整数的和值=%d\n", sum);
writeDAT ( );
}
writeDAT ( )
{
FILE *fp;
fp=fopen("out64.dat","w");
fprintf(fp,"%d\n%d\n",cnt,sum);
fclose(fp);
}
第8题:
阅读以下函数说明和C语言函数,将应填入(n)处的字句填写在对应栏内。
[函数2.1说明]
函数fun1 (int m, int k, int xx [])的功能是:将大于整数m且紧靠m的k个素数存入数组xx中传回。例如:若输入17,5,则应输出:19,23,29,31,37。
[函数2.1]
fun1 (int m, int k, int xx [] )
{
inti, j, s=0;
for ( i=m+1; k>0; i++ )
{for (j=2; j<i; j++ )
if ( i %j=0 )
(1)
if( i==j )
{
(2)
k--; }
}
}
[函数2.2说明]
函数void fun 2 ()的功能是:打印出杨辉三角形(要求打印出10行)。
[函数2.2]
void fun2 ( )
{
int i, j;
int a[10][10];
printf ("\n" );
for (i=0; i<10; i++
{a [i] [0]=1;
(3))
for (i=2; i<l0; i++ )
for (j=1; j<i; j++)
(4)
for (i=0; i<10; i++ )
{for (j=0; j<=i; j++ )
(5)
printf ( "\n" );
}
}
第9题:
编写函数int fun(int lim, int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio.h>
include<stdio.h>
define MAX 100
int fun(int lim, int se[MAX])
{
}
main()
{
int limit,i,sum;
int aa[MAX];
clrscr();
printf("输入一个整数");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0) /*每行输出10个数*/
printf("\n");
printf("%5d ",aa[i]);
}
}
第10题:
请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
例如,输入6和21,则输出为:7 11 13 17 19 21。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio. h>
include<stdio. h>
define N 1000
int fun (int n, int m, int bb [N])
{
int i, j, k=0, flag;
for (j=n; j<=m; j++)
{
【 】;
for (i=2; i<j; i++)
if(【 】)
{
flag=0;
break;
}
if(【 】)
bb [k++] =j
}
return k;
}
main ()
{
int n=0,m=0, i, k;
int bb[N];
clrscr ();
printf ("Input n\n");
scanf ("%d", &n);
printf ("Input m\n");
scanf ("%d", &m);
for (i=0; i<m-n; i++)
bb[i]=0;
k=fun (n, m, bb);
for (i=0; i<k; i++)
printf ("%4d",bb [i]);
}
第11题:
阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明1】 函数isPrime(int n)的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1和自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。 【C函数】 int isPrime (int n) { int k, t; if (n==2) return 1; if(n<2|| (1) ) return 0; /* 小于2的数或大于2的偶数不是素数 */ t=(int)sqrt(n)+1; for (k=3; k<t; k+=2) if ( (2) ) return 0; return 1; } 【说明2】 函数int minOne(int arr[], int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。 【C函数】 int minOne (int arr[], int k) { int t; assert (k>0) ; if(k==1) return (3) ; t=minOne(arr+1, (4) ; if (arr[0]<t) return arr[0]; return (5) ; }
第12题:
第13题:
mystrlen函数的功能是计算str所指字符中的长度,并作为函数值返回,请填空。
int mystrlen(char * str)
{ int i;
for(i=0;【 】!='\0';i++);
return(i);}
第14题:
请编写一个函数prim(int num),该函数实现判别参数num是否为素数,在主函数中利用prime()函数验证哥德巴猜想——任何比2大的偶数都可表示为两个素数之和基本功能,根据main函数的调用情况给出正确的返回值。
注意:部分源程序已存在文件test36_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数prim的花括号中填写若干语句。
文件test36_1.cpp的内容如下:
include <iostream.h>
const LEN=100;
int prim(int num)
{
}
void main()
{
int a=7;
int cnt=0;
cout<<"a is 7:\n";
int *s;
s=new int[LEN];
for(int i=2;i<a;i++)
{
if(!prim(i))
{
s[cnt]=i;
cnt++;
}
}
for (i=0;i<cnt;i++)
{
for (int j=i+1;j<cnt;j++)
{
if (s [i] +s [j] ==a)
cout<<s[i]<<'\t'<<s[j]<<'\t'<<end1;
}
}
}
第15题:
[说明1]
函数void convelt(chal *a,int n)是用递归方法将一个正整数n按逆序存放到一个字符数组a中,例如,n=123,在a中的存放为'3'、'2'、'1'。
[C函数1]
void convert(char *a,int n)
{ int i;
if((i=n/10)!=0; convert( (1) ,i);
*a= (2) ;
}
[说明2]
函数int index(char *s,char *t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。
[C函数2]
int index(char *s,char *t)
{ int i,j=0;k=0;
for(i=0;s[i]!:'\0';i++)
( for( (3) ;(t[k]!='\0')&&(s[j]!='\0')&&( (4) );j++,k++);
if( (5) ) return(i);
}
return(-1);
}
第16题:
下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在画线处填上适当内容,实现该函数。
bool fun(char*str)}
int i:0,j=0;
while(str[j]) (6) ;
for(J--;i<j&&str[i]==str[J];i++,J--);
return i (7) J;
}
第17题:
以下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];
}
第18题:
以下程序段是函数返回a所指数组中最小的值所在的下标值,请在下划线处填空。
fun(int *a,int n)
{
int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]) 【 】;
return(p);
}
第19题:
阅读下列函数说明和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;
第20题:
以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)
int fun(int a[N][M])
{int i,j,row=0,col=0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][col])(row=i;col=j;)
return(_____);
}
第21题:
下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数重(I+10也是在100以内)的个数cnt,以及这些I之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件out64.dat中(数值1不是素数)。
注意:部分源程序已给出。
请勿改动主函数main()和输出数据函数writeDAT()的内容。
试题程序:
include<stdio.h>
int cnt,sum;
int isPrime (int number)
{
int i,tag=l;
if (number== 1 )
return 0;
for(i=2;tag && i<=number/2;i++)
if (number%i==0) tag=0;
return tag;
}
void countValue ( )
{
}
void main ( )
{
cnt=sum=0;
countValue ( );
printf ("满足条件的整数的个数=%d\n", cnt);
printf ("满足条件的整数的和值=%d\n", sum);
writeDAT ( );
}
writeDAT ( )
{
FILE *fp;
fp=fopen("out64.dat" , "w");
fprintf (fp, "%d\n%d\n", cnt, sum);
fclose (fp);
}
第22题:
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。int mystrlen(char *str) { int i; for(i=0;;i++); return(i); }
第23题:
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明1]
函数int function(int a)的功能是判断指定的正整数是否为素数,若是,返回1,否则返回0。
[C函数1]
int function(int a)
{ int yes,i;
i=2;yes=1;
while(i<=a/2 && (1) ){
if( (2) ) yes=0;
i++;
}
return yes;
}
[说明2]
函数int deleteARR(int*arr,intn)的功能是指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。函数返回值是互不相同的元素个数。
[C函数2]
int deleteARR(int*arr,int n)
{ int k,j;
k=0;j=1;
while(j<n){
if( (3) )
(4)=arr[j];
j++;
}
return (5);
}