1.程序填空题
给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符。若找不到相同的字符则函数不做任何处理。
例如,s所指字符串为:baacda,c中的字符为a,执行后s所指字符串为:baaaacdaa。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
void fun(char *s, char c)
{
int i, j, n;
/**********found**********/
for(i=0; s[i]!=___1___ ; i++)
if(s[i]==c)
{
/**********found**********/
n=___2___ ;
while(s[i+1+n]!='\0') n++;
for(j=i+n+1; j>i; j--) s[j+1]=s[j];
/**********found**********/
s[j+1]=___3___ ;
i=i+1;
}
}
int main()
{
char s[80]="baacda", c;
printf("\nThe string: %s\n",s);
printf("\nInput a character: ");
scanf("%c",&c);
fun(s,c);
printf("\nThe result is: %s\n",s);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:将十进制正整数m转换成k(2<=k<=9)进制数,并按位输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
void fun(int m,int k)
{
int aa[20],i;
for (i=0;m;i++)
{
/************found************/
aa[i]=m/k;
m/=k;
}
/************found************/
for(;i;i--)
printf("%d",aa[i]);
}
int main()
{
int b,n;
printf("\nPlease enter a number and a base:\n");
scanf("%d %d",&n,&b);
fun(n,b);
printf("\n");
return 0;
}
3.程序设计题
编写函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如,若有5门课程的成绩是:90.5、72、80、61.5、55,则函数值为:71.80。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
float fun(float *a,int n)
{
}
int main()
{
float score[30]={90.5,72,80,61.5,55},aver;
aver=fun(score,5);
printf("\nAverage score is: %5.2f\n",aver);
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, j ;
float aver, score[5] ;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
for(j = 0 ; j < 5 ; j++)
fscanf(fp,"%f,",&score[j]) ;
aver = fun(score, 5) ;
fprintf(wf, "%5.2f\n", aver) ;
}
fclose(fp) ;
fclose(wf) ;
}
1.(1)'\0' (2)0 (3)c
2. aa[i]=m%k;
for(i=i-1;i>=0;i--)
3. float fun(float *a,int n)
{
float sum=0.0;
int i;
for (i=0;i<n;i++)
sum+=a[i];
return sum/n;
}
第66套参考答案1.程序填空题
给定程序中,函数fun的功能是:将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 9
long ctod(char *s)
{
long d=0;
while(*s)
if (isdigit( *s))
{
/**********found**********/
d=d*10+*s-__1__;
/**********found**********/
__2__;
}
return d;
}
long fun(char *a, char *b)
{
/**********found**********/
return __3__;
}
int main()
{
char s1[N],s2[N];
do
{
printf("Input string s1 : ");
gets(s1);
} while (strlen(s1)>N);
do
{
printf("Input string s2 : ");
gets(s2);
} while (strlen(s2)>N);
printf("The result is: %ld\n", fun(s1,s2));
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:计算函数
F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x!=y,z!=y。
例如,当x=9,y=11,z=15时,函数值为-3.50。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#include <math.h>
#define FU(m,n) (m/n)
float fun(float a,float b,float c)
{
float value;
/************found************/
value=FU(a+b,a-b)+FU(c+b,c-b);
/************found************/
Return(Value);
}
int main()
{
float x,y,z,sum;
printf("Input x y z: ");
scanf("%f%f%f",&x,&y,&z);
printf("x=%f,y=%f,z=%f\n",x,y,z);
if (x==y||y==z) {printf("Data error!\n");}
sum=fun(x,y,z);
printf("The result is : %5.2f\n",sum);
return 0;
}
3.程序设计题
假定输入的字符串中只包含字母和*号。编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
例如,字符串中的内容为:*****A*BC*DEF*G***,删除后,字符串的内容应当为:A*BC*DEF*G***。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
void fun(char *a)
{
}
int main()
{
char s[81];
printf("Enter a string:\n");
gets(s);
fun( s );
printf("The string after deleted:\n");
puts(s);
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i ; char s[81] ;
in = fopen("in.dat","r") ;
out = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(in, "%s", s) ;
fun(s) ;
fprintf(out, "%s\n", s) ;
}
fclose(in) ;
fclose(out) ;
}
1.(1)'0' (2)s++ (3)ctod(a)+ctod(b)
2. value=FU((a+b),(a-b))+FU((c+b),(c-b));
return(value);
3. void fun(char *a)
{
int i,j;
for (i=0;a[i]=='*';i++);
for (j=0;a[i]!='\0';i++)
a[j++]=a[i];
a[j]='\0';
}
第67套参考答案1.程序填空题
给定程序中,通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是:从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 5
typedef struct student
{
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename)
{
FILE *fp;
int i, j;
STU s[N], t;
/**********found**********/
fp = fopen(filename, __1__);
fread(s, sizeof(STU), N, fp);
fclose(fp);
for (i=0; i<N-1; i++)
for (j=i+1; j<N; j++)
/**********found**********/
if (s[i].sno __2__s[j].sno)
{ t=s[i]; s[i]=s[j]; s[j]=t; }
fp = fopen(filename, "wb");
/**********found**********/
__3__(s, sizeof(STU), N, fp);
fclose(fp);
}
int main()
{
STU t[N]={ {10005,"ZhangSan", 95, 80, 88},
{10003,"LiSi", 85, 70, 78},
{10002,"CaoKai", 75, 60, 88},
{10004,"FangFang", 90, 82, 87},
{10001,"MaChao", 91, 92, 77}}, ss[N];
int i,j;
FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), 5, fp);
fclose(fp);
printf("\n\nThe original data :\n\n");
for (j=0; j<N; j++)
{
printf("\nNo: %ld Name: %-8s Scores: ",t[j].sno, t[j].name);
for (i=0; i<3; i++)
printf("%6.2f ", t[j].score[i]);
printf("\n");
}
fun("student.dat");
printf("\n\nThe data after sorting :\n\n");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), 5, fp);
fclose(fp);
for (j=0; j<N; j++)
{
printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=0; i<3; i++)
printf("%6.2f ", ss[j].score[i]);
printf("\n");
}
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
void fun(char *s)
{
int i,j;
for(i=0,j=0; s[i]!='\0'; i++)
if(s[i]>='0' && s[i]<='9')
/**********found**********/
s[j]=s[i];
/**********found**********/
s[j]="\0";
}
int main()
{
char item[80];
printf("\nEnter a string : ");
gets(item);
printf("\nThe string is : \"%s\"\n",item);
fun(item);
printf("\nThe string of changing is :\"%s\"\n",item);
return 0;
}
3.程序设计题
编写函数fun,它的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
例如,二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容应为:WSHWSHWSHWSH。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#define M 3
#define N 4
void NONO(void);
void fun(char (*s)[N], char *b)
{
}
int main()
{
char a[100],w[M][N]={{'W','W','W','W'},
{'S','S','S','S'},{'H','H','H','H'}};
int i,j;
printf("The matrix:\n");
for(i=0; i<M; i++)
{
for(j=0;j<N; j++)
printf("%3c",w[i][j]);
printf("\n");
}
fun(w,a);
printf("The A string:\n");puts(a);
printf("\n\n");
NONO();
return 0;
}
void NONO(void)
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i,j,k ;
char a[100],w[M][N], b ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(k = 0 ; k < 10 ; k++)
{
for(i = 0 ; i < M ; i++)
{
for(j = 0 ; j < N ; j++)
fscanf(rf, "%c", &w[i][j]) ;
fscanf(rf, "%c", &b) ;
}
fun(w, a) ;
fprintf(wf, "%s\n", a) ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)"rb" (2)> (3)fwrite
2. s[j++]=s[i];
s[j]='\0';
3. void fun(char (*s)[N], char *b)
{
int i,j,k=0;
for (j=0;j<N;j++)
for (i=0;i<M;i++)
b[k++]=s[i][j];
b[k]='\0';
}
第68套参考答案1.程序填空题
给定程序中,函数fun的功能是:将N*N矩阵中元素的值按列右移一个位置,右边被移出矩阵的元素绕回左边。
例如,N=4,有下列矩阵
21 12 13 24
25 16 47 38
29 11 32 54
42 21 33 10
移动后结果为
24 21 12 13
38 25 16 47
54 29 11 32
10 42 21 33
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 4
void fun(int (*t)[N])
{
int i, j, x;
/**********found**********/
for(i=0; i<___1___; i++)
{
/**********found**********/
x=t[i][___2___] ;
for(j=N-1; j>0; j--)
t[i][j]=t[i][j-1];
/**********found**********/
t[i][___3___]=x;
}
}
int main()
{
int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
printf("The original array:\n");
for(i=0; i<N; i++)
{
for(j=0;j<N;j++) printf("%2d ",t[i][j]);
printf("\n");
}
fun(t);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{
for(j=0;j<N;j++) printf("%2d ",t[i][j]);
printf("\n");
}
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。
例如,若输入:I am a student to take the examination,则应输出:I aM A studenT tO takE thE examinatioN。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void fun( char *p )
{
int k = 0;
for( ; *p; p++ )
if( k )
{
/**********found***********/
if( p == ' ' )
{
k = 0;
/**********found***********/
* (p-1) = toupper( *( p - 1 ) )
}
}
else
k = 1;
}
int main()
{
char chrstr[64];
int d ;
printf( "\nPlease enter an English sentence within 63 letters: ");
gets(chrstr);
d=strlen(chrstr) ;
chrstr[d] = ' ' ;
chrstr[d+1] = 0 ;
printf("\n\nBefore changing:\n %s", chrstr);
fun(chrstr);
printf("\nAfter changing:\n %s", chrstr);
return 0;
}
3.程序设计题
编写函数fun,它的功能是:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。
例如,原来的字符串为CEAedca,排序后输出为:CedcEAa。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
void NONO(void);
void fun(char *s,int num)
{
}
int main()
{
char s[10];
printf("输入7个字符的字符串:");
gets(s);
fun(s,7);
printf("\n%s",s);
NONO();
return 0;
}
void NONO(void)
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
char s[10] ;
FILE *rf, *wf ;
int i = 0 ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
while(i < 10)
{
fgets(s,10,rf) ;
s[7] = 0 ;
fun(s,7);
fprintf(wf, "%s\n", s) ;
i++ ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)N (2)N-1 (3)0
2. if( *p == ' ' )
* (p-1) = toupper(*(p-1));
3. void fun(char *s,int num)
{
int i,j,k;
char t;
for (i=1;i<num-2;i++)
{
k=i;
for (j=i+1;j<num-1;j++)
if (s[k]<s[j]) k=j;
t=s[i]; s[i]=s[k]; s[k]=t;
}
}
第69套参考答案
1.程序填空题
给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序依次放入形参b所指的一维数组中。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 4
void fun(int (*a)[N], int *b)
{
int i,j;
for(i=0; i<N; i++)
{
/**********found**********/
b[i]= __1__;
for(j=1; j<N; j++)
/**********found**********/
if(b[i] __2__ a[j][i]) b[i]=a[j][i];
}
}
int main()
{
int x[N][N]={ {12,5,8,7},{6,1,9,3},
{1,2,3,4},{2,8,4,3} },y[N],i,j;
printf("\nThe matrix :\n");
for(i=0;i<N; i++)
{
for(j=0;j<N; j++) printf("%4d",x[i][j]);
printf("\n");
}
/**********found**********/
fun(__3__);
printf("\nThe result is:");
for(i=0; i<N; i++) printf("%3d",y[i]);
printf("\n");
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:按以下递归公式求函数值
例如,当n=5时,函数值为18;当n=3时,函数值为14。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
/************found************/
void fun ( n )
{
int c;
/************found************/
if(n=1)
c = 10 ;
else
c= fun(n-1)+2;
return(c);
}
int main()
{
int n;
printf("Enter n : ");
scanf("%d",&n);
printf("The result : %d\n", fun(n));
return 0;
}
3.程序设计题
假定输入的字符串中只包含字母和*号。编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*;若少于或等于n个,则什么也不做。前面和中间的*号不删除。
例如,字符串中的内容为:***A*BC*DEF*G*****,若n的值为4,删除后,字符串的内容应当为:***A*BC*DEF*G****;若n的值为8,则字符串的内容仍为:***A*BC*DEF*G*****。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
void fun( char *a,int n)
{
}
int main()
{
char s[81];
int n;
printf("Enter a string:\n");
gets(s);
printf("Enter n : ");
scanf("%d",&n);
fun( s,n );
printf("The string after deleted:\n");
puts(s);
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i, n ;
char s[81] ;
in = fopen("in.dat","r") ;
out = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(in, "%s", s) ;
fscanf(in, "%d", &n) ;
fun(s,n) ;
fprintf(out, "%s\n", s) ;
}
fclose(in) ;
fclose(out) ;
}
1.(1)a[0][i] (2)< (3)x,y
2. int fun(int n)
if(n==1)
3. void fun( char *a,int n)
{
int i,j;
for (i=0,j=0;a[i]!='\0';i++)
if (a[i]!='*') j=0;
else j++;
if (j>n) a[i-j+n]='\0';
}
第70套参考答案
这里是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,
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用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
我有一个帖子属于城市的关系,城市又属于一个州,例如:classPost现在我想找到所有帖子及其所属的城市和州。我编写了以下查询来获取带有城市的帖子,但不知道如何在同一查找器中获取带有城市的相应州:@post=Post.find:all,:include=>[:city]感谢任何帮助。谢谢。 最佳答案 Post.all(:include=>{:city=>:state}) 关于ruby-on-rails-使用Rails事件记录获取二级模型,我们在StackOverflow上找到一个类似的问
Ruby中如何“一般地”计算以下格式(有根、无根)的JSON对象的数量?一般来说,我的意思是元素可能不同(例如“标题”被称为其他东西)。没有根:{[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]}根包裹:{"posts":[{"title":"Post1","body":"Hello!"},{"title":"Post2","body":"Goodbye!"}]} 最佳答案 首先,withoutroot代码不是有效的json格式。它将没有包
目标我正在尝试计算自给定日期以来周的距离,而无需跳过任何步骤。我更喜欢用普通的Ruby来做,但ActiveSupport无疑是一个可以接受的选择。我的代码我写了以下内容,这似乎可行,但对我来说似乎还有很长的路要走。require'date'DAYS_IN_WEEK=7.0defweeks_sincedate_stringdate=Date.parsedate_stringdays=Date.today-dateweeks=days/DAYS_IN_WEEKweeks.round2endweeks_since'2015-06-15'#=>32.57ActiveSupport的#weeks
技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进
如何计算两个字符串之间的字符交集?例如(假设我们有一个名为String.intersection的方法):"abc".intersection("ab")=2"hello".intersection("hallo")=4好的,男孩女孩们,感谢你们的大量反馈。更多示例:"aaa".intersection("a")=1"foo".intersection("bar")=0"abc".intersection("bc")=2"abc".intersection("ac")=2"abba".intersection("aa")=2一些补充说明:维基百科定义intersection如下:Int