1.程序填空题
给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。
例如,s所指字符串为:asd123fgh543df,处理后新字符串为:asdfghdf123543。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *fun(char *s)
{
int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{
if(((s[i]>='a')&&(s[i]<='z'))||
((s[i]>='A')&&(s[i]<='Z')))
{
/**********found**********/
t[j]=__1__; j++;
}
else
{
p[k]=s[i]; k++;
}
}
/**********found**********/
for(i=0; i<__2__; i++) t[j+i]=p[i];
/**********found**********/
t[j+k]= __3__;
return t;
}
int main()
{
char s[80];
printf("Please input: ");
scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:求出以下分数序列的前n项之和。
2/1,3/2,5/3,8/5,13/8,21/13,……
例如,若n=5,则应输出:8.391667。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
/**************found**************/
fun( n )
{
int a = 2, b = 1, c, k ;
double s=0.0 ;
for ( k = 1; k <= n; k++ )
{
s = s + 1.0 * a / b ;
/**************found**************/
c = a; a += b; b += c;
}
return(s) ;
}
int main( )
{
int n = 5 ;
printf("\nThe value of function is: %f\n", fun(n));
return 0;
}
3.程序设计题
编写函数fun,其功能是:求Fibonacci数列中大于s的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0 F(1)=1
F(n)=F(n-1)+F(n-2)
例如,当s=1000时,函数值为1597。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
int fun(int s)
{
}
int main()
{
int n;
n=1000;
printf("n=%d,f=%d\n",n,fun(n));
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, n, s ;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for (i = 0 ; i < 10 ; i++)
{
fscanf(fp, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%d\n", s) ;
}
fclose(fp) ;
fclose(wf) ;
}
1.(1)s[i] (2)k (3)'\0'
2. double fun(int n)
c = a+b; b=a; a=c;
3. int fun(int s)
{
if (s<0) return 0;
int a=0,b=1,c;
c=a+b;
while (c<=s)
{
a=b;
b=c;
c=a+b;
}
return c;
}
第11套参考答案1.程序填空题
函数fun的功能是:计算

的前n项。
例如,若x=2.5,n=12,函数值为:12.182340。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
double fun(double x, int n)
{
double f, t;
int i;
f = 1.0;
/**********found**********/
t = ___1___;
/**********found**********/
for (i=___2___; i<n; i++)
{
/**********found**********/
t *= x/___3___;
f += t;
}
return f;
}
int main()
{
double x, y;
x=2.5;
y = fun(x, 12);
printf("\nThe result is :\n");
printf("x=%-12.6f y=%-12.6f\n", x, y);
return 0;
}
2.程序修改题
假定整数数列中的数不重复,并存放在数组中。给定程序中函数fun的功能是:删除数列中值为x的元素。N中存放的是数列中元素的个数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#define N 20
int fun(int *a,int n,int x)
{
int p=0,i;
a[n]=x;
while(x!=a[p])
p=p+1;
/************found************/
if (p=n) return -1;
else
{
for(i=p;i<n;i++)
/************found************/
a[i+1]=a[i];
return n-1;
}
}
int main()
{
int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;
n=10;
printf("The original data :\n");
for (i=0;i<n;i++) printf("%5d",w[i]);
printf("\nInput x (to delete):");
scanf("%d",&x);
printf("Delete : %d\n",x);
n=fun(w,n,x);
if (n==-1)
printf("***Not be found!***\n\n");
else
{
printf("The data after deleted:\n");
for(i=0;i<n;i++) printf("%5d",w[i]);
printf("\n");
}
return 0;
}
3.程序设计题
编写函数fun,其功能是:计算下列多项式的值。
例如,若n=50,函数值为:1.718282。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO( );
double fun(int n)
{
}
int main()
{
int n;
double s;
printf("\nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n\n",s);
NONO();
return 0;
}
void NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ;
double s ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
1.(1)1.0 (2)1 (3)i
2. if (p==n) return -1;
a[i]=a[i+1];
3. double fun(int n)
{
double s=0.0,t=1.0;
int i;
for (i=1;i<=n;i++)
{
t=t/i;
s+=t;
}
return s;
}
第12套参考答案1.程序填空题
给定程序中,函数fun的功能是:求出形参ss所指字符串中最长字符串的长度,将其余字符串右边用字符“*”补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#define M 5
#define N 20
void fun(char (*ss)[N])
{
int i, j, n, len=0;
for(i=0; i<M; i++)
{
len=strlen(ss[i]);
if(i==0) n=len;
if(len>n)n=len;
}
len=n;
for(i=0; i<M; i++)
{
/**********found**********/
n=strlen(___1___);
for(j=0; j<len-n; j++)
/**********found**********/
ss[i][ ___2___]='*';
/**********found**********/
ss[i][ ___3___]='\0';
}
}
int main()
{
char ss[M][N]={"shanghai","guangzhou",
"beijing","tianjing","cchongqing"};
int i;
printf("The original strings are :\n");
for(i=0; i<M; i++) printf("%s\n",ss[i]);
printf("\n");
fun(ss);
printf("The result is :\n");
for(i=0; i<M; i++) printf("%s\n",ss[i]);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中。
例如,输入:55 12 34,输出结果为:a=55.0,b=34.0,c=12.0。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
void fun(float *p,float *q,float *s)
{
/**********found**********/
float *k;
if( *p<*q )
{ k=*p; *p=*q; *q=k; }
/**********found**********/
if( *p>*s )
{ k=*s; *s=*p; *p=k; }
if( *q<*s )
{ k=*q; *q=*s; *s=k; }
}
int main()
{
float a,b,c;
printf("Input a b c: ");
scanf("%f%f%f",&a,&b,&c);
printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);
fun(&a,&b,&c);
printf("a = %4.1f, b = %4.1f, c = %4.1f\n\n",a,b,c);
return 0;
}
3.程序设计题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中。编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
int fun(STREC *a,STREC *b)
{
}
int main()
{
STREC s[N]={{"GA05",85},{"GA03",76},
{"GA02",69},{"GA04",85},{"GA01",91},
{"GA07",72},{"GA08",64},{"GA06",87},
{"GA015",85},{"GA013",91},{"GA012",64},
{"GA014",91},{"GA011",91},{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n;FILE *out;
n=fun(s,h);
printf("The %d highest score:\n",n);
for(i=0;i<n;i++)
printf("%s %4d\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out.dat","w");
fprintf(out,"%d\n",n);
for (i=0;i<n;i++)
fprintf(out,"%s %4d\n",h[i].num,h[i].s);
fclose(out);
}
1.(1)ss[i] (2)n+j (3)n+j
2. float k;
if( *p<*s )
3. int fun(STREC *a,STREC *b)
{
int i,n=0,max;
max=a[0].s;
for (i=1;i<N;i++)
if (max<a[i].s) max=a[i].s;
for (i=0;i<N;i++)
if (max==a[i].s) b[n++]=a[i];
return n;
}
第13套参考答案1.程序填空题
用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删除(把数表中相应位置的值置为0);接着从数表中找到下一个非0数,并从数表中删除该数的所有倍数,以此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,…。
函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
int fun(int n)
{
int a[10000], i,j, count=0;
for (i=2; i<=n; i++) a[i] = i;
i = 2;
while (i<n)
{
/**********found**********/
for (j=a[i]*2; j<=n; j+=___1___)
a[j] = 0;
i++;
/**********found**********/
while (___2___==0)
i++;
}
printf("\nThe prime number between 2 to %d\n", n);
for (i=2; i<=n; i++)
/**********found**********/
if (a[i]!=___3___)
{
count++;
printf( count%15?"%5d":"\n%5d",a[i]);
}
return count;
}
int main()
{
int n=20, r;
r = fun(n);
printf("\nThe number of prime is : %d\n", r);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
/**********found**********/
char fun(char *s, char *t)
{
int sl=0,tl=0;
char *ss, *tt;
ss=s; tt=t;
while(*ss)
{
sl++;
/**********found**********/
(*ss)++;
}
while(*tt)
{
tl++;
/**********found**********/
(*tt)++;
}
if(tl>sl) return t;
else return s;
}
int main()
{
char a[80],b[80];
int i;
printf("\nEnter a string : ");
gets(a);
printf("\nEnter a string again : ");
gets(b);
printf("\nThe longer is :\n\n\"%s\"\n",fun(a,b));
return 0;
}
3.程序设计题
编写函数fun,它的功能是:求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回。
例如,n=1000时,函数值应为:s=153.909064。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <math.h>
double fun(int n)
{
}
int main()
{
printf("s=%f\n",fun(1000));
void NONO(void);
NONO();
return 0;
}
void NONO(void)
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
FILE *wf;
wf = fopen("a28.out", "w") ;
fprintf(wf,"s=%f\n",fun(1000));
fclose(wf) ;
}
1.(1)a[i] (2)a[i] (3)0
2. char *fun(char *s, char *t)
ss++;
tt++;
3. double fun(int n)
{
double s=0;
int i;
for (i=1;i<n;i++)
if (i%3==0 && i%7==0)
s+=i;
s=sqrt(s);
return s;
}
第14套参考答案
1.程序填空题
人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 8
typedef struct
{
int num;
int year,month,day ;
}STU;
int fun(STU *std, STU *k, int year)
{
int i,n=0;
for (i=0; i<N; i++)
/**********found**********/
if( ___1___==year)
/**********found**********/
k[n++]= ___2___;
/**********found**********/
return (___3___);
}
int main()
{
STU std[N]={ {1,1984,2,15},{2,1983,9,21},
{3,1984,9,1},{4,1983,7,15},
{5,1985,9,28},{6,1982,11,15},
{7,1982,6,22},{8,1984,8,19}};
STU k[N];
int i,n,year;
printf("Enter a year : ");
scanf("%d",&year);
n=fun(std,k,year);
if(n==0)
printf("\nNo person was born in %d \n",year);
else
{
printf("\nThese persons were born in %d \n",year);
for(i=0; i<n; i++)
printf("%d %d-%d-%d\n",k[i].num,k[i].year,
k[i].month,k[i].day);
}
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:通过某种方式实现两个变量值得交换,规定不允许增加语句和表达式。例如,a=3,b=8,程序运行后a=8,b=3。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
int fun(int *x,int y)
{
int t ;
/**************found**************/
t = x ; x = y ;
/**************found**************/
return(y) ;
}
int main()
{
int a = 3, b = 8 ;
printf("%d %d\n", a, b) ;
b = fun(&a, b) ;
printf("%d %d\n", a, b) ;
return 0;
}
3.程序设计题
编写函数fun,它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
void fun (int *a, int *n)
{
}
int main()
{
int aa[1000], n, k ;
fun(aa, &n);
for ( k = 0 ; k < n ; k++ )
if ((k+1)%10==0) printf("\n") ;
else printf("%5d", aa[k]) ;
NONO( );
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int aa[1000], n, k ;
FILE *fp ;
fp = fopen("out.dat","w") ;
fun ( aa, &n ) ;
for ( k = 0 ; k < n ; k++ )
if ((k+1)%10==0) fprintf(fp, "\n") ;
else fprintf(fp, "%5d", aa[k]) ;
fclose(fp) ;
}
1.(1)std[i].year (2)std[i] (3)n
2. t = *x ; *x = y ;
return (t) ;
3. void fun (int *a, int *n)
{
int i,j;
j=0;
for (i=1;i<=1000;i++)
if ((i%7==0 || i%11==0)&& (i%77!=0))
a[j++]=i;
*n=j;
}
第15套参考答案
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
运行bundleinstall后出现此错误:Gem::Package::FormatError:nometadatafoundin/Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gemAnerroroccurredwhileinstallinglibv8(3.11.8.13),andBundlercannotcontinue.Makesurethat`geminstalllibv8-v'3.11.8.13'`succeedsbeforebundling.我试试gemin
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我有一个帖子属于城市的关系,城市又属于一个州,例如:classPost现在我想找到所有帖子及其所属的城市和州。我编写了以下查询来获取带有城市的帖子,但不知道如何在同一查找器中获取带有城市的相应州:@post=Post.find:all,:include=>[:city]感谢任何帮助。谢谢。 最佳答案 Post.all(:include=>{:city=>:state}) 关于ruby-on-rails-使用Rails事件记录获取二级模型,我们在StackOverflow上找到一个类似的问
我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包