题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2024-09-01 19:58:10

[填空题][说明]
函数void convert(char *a,int n)是用递归方法将一个正整数n按逆序存放到一个字符数组a中,例如n=123,在a中的存放为’3’、’2’、’1’。
[函数2.1]
void convert(char *a,int n)
int i;
if((i=n/10)! =0) convert( (1) ,i);
*a= (2) ;

[函数2.2说明]
函数int index(char *s,char *t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。
[函数2.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);


更多"[说明] 函数void convert(char *a,int n)"的相关试题:

[填空题][说明]
函数void convert(char *a,int n)是用递归方法将一个正整数n按逆序存放到一个字符数组a中,例如n=123,在a中的存放为’3’、’2’、’1’。
[函数2.1]
void convert(char *a,int n)
int i;
if((i=n/10)! =0) convert( (1) ,i);
*a= (2) ;

[函数2.2说明]
函数int index(char *s,char *t)检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。
[函数2.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);


[填空题]1说明]
函数int circle(int n,int d)判定正整数n的d进制表示形式是否是回文数。
[函数2.1]
int circle(int n,int d)
int s=0,m=n;
while (m)

(1) ;
m/=d;

return (2) ;

[函数2.2说明]
函数int trans(unsigned n,int d,char s[])将一个无符号整数转换为任意d进制数(2≤d≤16)。
[函数2.2]
#define M sizeof(unsigned int)*8
int trans (unsigned n,int d,char s[])
static char digits[]="0123 456789ABCDEF";
char buf [M+1];
int j,i=M;
if (d<2 ||d>16)

s[0]=’/0’;
return 0;

(3) ;
do

(4) ;
n/=d;
while (n) ;
for( (5) ); (s(j)=buf[j]!=’/0’;j++);
return j;


[简答题]

【说明】
函数int funl (int m,int n)的功能是:计算并返回正整数m和n的最大公约数。
【函数2.1】
int funl (iht m,int n){
while( (1) ) {
if(m>n) m=m-n;
else n=n-m;

(2)

【函数2.2说明】
函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。
例如,若字符串str的值为“f3g8d5.ji2e3p12fkp",则函数返回值为3852312。
【函数2.2】
long fun2 (char*str)
int i=0;
long k=0;
char*P=str;
while (*p!=’/0’&& (3) )
if (*p>=’0’&&*p<=’9’)
k= (4) +*p-’0’;
++i;
}
(5)
}
return k;
}
 


[简答题]【程序说明】
函数int commstr(char * str1,char * str2,int * sublen)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。
函数将最长公共子串的长度送入由参数sublen所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。
【程序】
int strlen(char * s)
char *t=s;
while( * ++);
return t-s-1;

int commstr(char) *str1,char *str2,int *sublen
char*s1, *s2;
int count=0,len1 ,len2,k,j,i,p;
len1:=strlen(str1)
len2 = strlen(str2);
if(len1>len2)
s1=str1 ;s2=str2;
else len2 = len1;s1 = str2;s2 = str1;
for(j=len2;j>0;j--) /*从可能最长子串开始寻找*/
for(k=0; (1) <:len2;k++) /*k为子串s2的开始位置*/
for(i=0;s1[ (2) ]!=’/0’;i++;) /*i为子串s1的开始位置*/
/*s1的子串与s2的子串比较*/
for (p=0;p<j)&& (3) ;p++);
if ( (4) ) /*如果两子串相同*/
for(p=0);p<j;p++ /*输出子串*/
printf ("%c",s2[k+p]);
pri
[单项选择]设n的初始值为正整数,设计一个递归算法如下: int fact (int n) { if (n<=0) return 1; else return (n*fact(n-1)); } 以下叙述中正确的是______。
A. 计算fact(n)需要执行n次函数调用
B. 计算fact(n)需要执行n+1次函数调用
C. 计算fact(n)需要执行n+2次函数调用
D. 计算fact(n)需要执行n-1次函数调用
[简答题]请编写一个函数comm(int n,int k),该函数将用递归算法计算从n个人中选择k个人组成一个委员会的不同组合数,由n个人里选k个人的组合数=由(n-1)个人里选k个人的组合数+由(n-1)个人里选(k-1)个人的组合数。 注意:部分源程序已存在文件test41_2.cpp中。 请勿修改主函数main和其他函数中的任何内容,仅在函数comm的花括号中填写若干语句。 源程序文件test41-2.cpp清单如下: #include<iostream.h> int comm(int n, int k) { } void main ( ) { int n=7, k=3; cout<<"n=7,k=3"<<endl; cout<<comm(n,k)<<endl; }
[填空题][函数2.1说明] 求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。 [函数2.1] void func1(int m, int n) { r=m% n; while(r<>0) { (1) ; n=r; (2) ; } return n; } [函数2.2说明] 判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。 [函数2.2] void func2 ( ) { int m, i, k, h=0,leap=1; printf ( "/n" ); for ( m=101;m<=200;m++ ) { (3) ; for (i=2;i<=k; i++ ) if( (4) ) {leap=0;break;} if ( leap ) {printf ( "%-4d",m ); (5) ; if ( h%10==0 ) printf ( "/n" ); } leap=1; } printf ( "/n The total is %d", h ); }
[填空题][函数2.1说明]
求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。
[函数2.1]
void func1(int m, int n)
r=m% n;
while(r<>0)
(1)
n=r;
(2)

return n;

[函数2.2说明]
判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。
[函数2.2]
void func2 ( )
int m, i, k, h=0,leap=1;
printf ( "/n" );
for ( m=101;m<=200;m++ )
(3) ;
for (i=2;i<=k; i++ )
if( (4) )
leap=0;break;
if ( leap )
printf ( "%-4d",m );
(5) ;
if ( h%10==0 )
printf ( "/n" );

leap=1;

printf ( "/n The total is %d", h );

[简答题]请编写一个函数inline long sum(int n),用递归函数完成运算:sum(n)=1*1+2*2+…n*n,递归表达式为 sum(n)=sum(n-1)+n2。
注意:部分源程序已存在文件test10_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。
文件test10_2.cpp的内容如下:
#include<iostream.h>
inline long sum(int n)


void main( )

int n;
cout<<"输入n:";
cin>>n;
cout<<"结果为:"<<sum(n)<<endl;

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

截图扫码使用小程序[完全免费查看答案]
请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码