1.程序填空题
给定程序的功能是调用函数fun建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile3.dat的二进制文件中。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct
{
int num;
char name[10];
char tel[10];
}STYPE;
void check();
/**********found**********/
int fun(___1___ *std)
{
/**********found**********/
___2___ *fp;
int i;
if((fp=fopen("myfile3.dat","wb"))==NULL)
return (0);
printf("\nOutput data to file !\n");
for(i=0; i<N; i++)
/**********found**********/
fwrite(&std[i], sizeof(STYPE), 1, _3_);
fclose(fp);
return (1);
}
int main()
{
STYPE s[10]={{1,"aaa","1111"},{1,"bbb","2222"},
{1,"ccc","3333"}, {1,"ddd","4444"},
{1,"eee","5555"}};
int k;
k=fun(s);
if (k==1)
{ printf("Succeed!"); check(); }
else
printf("Fail!");
return 0;
}
void check()
{
FILE *fp;
int i;
STYPE s[10];
if((fp=fopen("myfile3.dat","rb"))==NULL)
{ printf("Fail !!\n"); exit(0); }
printf("\nRead file and output to screen :\n");
printf("\n num name tel\n");
for(i=0; i<N; i++)
{
fread(&s[i],sizeof(STYPE),1, fp);
printf("%6d %s %s\n",s[i].num,s[i].name,s[i].tel);
}
fclose(fp);
}
2.程序修改题
给定程序中,函数fun的功能是:从低位开始取出长整数s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,若s=7654321,则t=7531。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
/************found************/
void fun (long s, long t)
{
long sl=10;
*t = s % 10;
while ( s > 0)
{
s = s/100;
*t = s%10 * sl + *t;
/************found************/
sl = sl*100;
}
}
int main()
{
long s, t;
printf("\nPlease enter s:");
scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
return 0;
}
3.程序设计题
编写函数fun,它的功能是:将两个两位正整数a、b合并形成一个整数存放在c中,合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,将b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12时,调用该函数后,c=1524。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
void fun(int a, int b, long *c)
{
}
int main()
{
int a,b; long c;
printf("Input a b:");
scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %d\n", c);
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, a,b ;
long c ;
rf = fopen("in.dat", "r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%d,%d", &a, &b) ;
fun(a, b, &c) ;
fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)STYPE (2)FILE (3)fp
2. void fun (long s, long *t)
sl = sl*10;
3. void fun(int a, int b, long *c)
{
*c=1000*(b/10)+100*(a%10)+10*(b%10)+a/10;
}
第46套参考答案1.程序填空题
给定程序中,人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回;若指定编号不存在,返回数据中的编号为空串。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#define N 8
typedef struct
{
char num[10];
int year,month,day ;
}STU;
/**********found**********/
___1___ fun(STU *std, char *num)
{
int i;
STU a={"",9999,99,99};
for (i=0; i<N; i++)
/**********found**********/
if (strcmp(___2___,num)==0)
/**********found**********/
return (___3___);
return a;
}
int main()
{
STU std[N]={{"111",1984,2,15},{"222",1983,9,21},
{"333",1984,9,1},{"444",1983,7,15},
{"555",1984,9,28},{"666",1983,11,15},
{"777",1983,6,22},{"888",1984,8,19}};
STU p;
char n[10]="666";
p=fun(std,n);
if(p.num[0]==0)
printf("\nNot found !\n");
else
{
printf("\nSucceed !\n ");
printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day);
}
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#include <string.h>
#define MAXLINE 20
void fun(char *pstr[6])
{
int i, j ;
char *p ;
for (i = 0 ; i < 5 ; i++)
{
/**************found**************/
for (j=i+1, j<6, j++)
{
if(strcmp(*(pstr+i), *(pstr+j))>0)
{
p = *(pstr + i) ;
/**************found**************/
*(pstr + i) = pstr + j ;
*(pstr + j) = p ;
}
}
}
}
int main()
{
int i ;
char *pstr[6], str[6][MAXLINE] ;
for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;
printf("\nEnter 6 string(1 string at each line):\n");
for(i=0 ; i<6; i++) scanf("%s", pstr[i]);
fun(pstr) ;
printf("The strings after sorting:\n") ;
for (i = 0 ; i < 6 ; i++) printf("%s\n", pstr[i]);
return 0;
}
3.程序设计题
编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串:123412132,输入字符1,则输出3。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
#define M 81
void NONO(void);
int fun(char *ss, char c)
{
}
int main()
{
char a[M], ch;
printf("\nPlease enter a string:");
gets(a);
printf("\nPlease enter a char:");
ch = getchar();
printf("\nThe number of the char is: %d\n",fun(a,ch));
NONO();
return 0;
}
void NONO(void)
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i ;
FILE *rf, *wf ;
char a[M], b[M], ch ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++)
{
fscanf(rf, "%s", a) ;
fscanf(rf, "%s", b) ;
ch = *b ;
fprintf(wf, "%c=%d\n", ch, fun(a, ch)) ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)STU (2)std[i].num (3)std[i]
2. for (j=i+1; j<6 ; j++)
*(pstr + i) = *(pstr + j) ;
3. int fun(char *ss, char c)
{
int i,n=0;
for (i=0;ss[i]!='\0';i++)
if (ss[i]==c) n++;
return n;
}
第47套参考答案1.程序填空题
给定程序中,函数fun的功能是:计算出带头结点的单向链表中各结点数据域之和作为函数值返回。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <stdlib.h>
#define N 8
typedef struct list
{
int data;
struct list *next;
} SLIST;
SLIST *creatlist(int *);
void outlist(SLIST *);
int fun(SLIST *h)
{
SLIST *p;
int s=0;
p=h->next;
while(p)
{
/**********found**********/
s+= p->___1___;
/**********found**********/
p=p->___2___;
}
return s;
}
int main()
{
SLIST *head;
int a[N]={12,87,45,32,91,16,20,48};
head=creatlist(a);
outlist(head);
/**********found**********/
printf("\nsum=%d\n", fun(___3___));
return 0;
}
SLIST *creatlist(int a[])
{
SLIST *h,*p,*q;
int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i<N; i++)
{
q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{
SLIST *p;
p=h->next;
if (p==NULL) printf("The list is NULL!\n");
else
{
printf("\nHead ");
do {
printf("->%d", p->data);
p=p->next;
} while(p!=NULL);
printf("->End\n");
}
}
2.程序修改题
给定程序中,函数fun的功能是:根据形参m,计算
S=1+1/2+1/3+…+1/m
例如,若输入5,则应输出2.283333。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
double fun(int m)
{
double t = 1.0;
int i;
for( i = 2; i <= m; i++ )
/**********found**********/
t += 1/i;
/**********found**********/
return t
}
int main()
{
int m;
printf( "\nPlease enter 1 integer number:" );
scanf( "%d", &m );
printf( "\nThe result is %lf\n", fun( m ) );
return 0;
}
3.程序设计题
编写函数fun,它的功能是:统计一个长度为2的字符串substr在另一个字符串sub中出现的次数。
例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为as,则应输出6。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#include <string.h>
int fun(char *str,char *substr)
{
}
int main()
{
char str[81],substr[3];
int n;
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
NONO();
return 0;
}
void NONO(void)
{
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
char str[81],substr[3], ch;
int n,len, i = 0;
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
while(i < 5)
{
fgets(str, 80, rf) ;
fgets(substr, 10, rf) ;
len = strlen(substr) - 1 ;
ch = substr[len] ;
if(ch == '\n' || ch == 0x1a) substr[len] = 0 ;
n=fun(str,substr);
fprintf(wf, "%d\n", n) ;
i++ ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)data (2)next (3)head
2. t += 1.0/i;
return t;
3. int fun(char *str,char *substr)
{
int i,n=0;
for (i=0;str[i]!='\0' && str[i+1]!='\0';i++)
if (str[i]==substr[0] && str[i+1]==substr[1])
n++;
return n;
}
第48套参考答案1.程序填空题
给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,函数返回值为4。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 9
int fun(int a[], int n)
{
int i,j;
j = 0;
for (i=0; i<n; i++)
/**********found**********/
if (___1___== 0)
{
/**********found**********/
___2___ = a[i]; j++;
}
/**********found**********/
return ___3___;
}
int main()
{
int b[N]={9,1,4,2,3,6,5,8,7}, i, n;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
n = fun(b, N);
printf("\nThe number of even :%d\n", n);
printf("\nThe even :\n");
for (i=0; i<n; i++) printf("%4d ", b[i]);
printf("\n");
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:根据形参m,计算
t=1-1/2-1/3-…-1/m
例如,若主函数中输入5,则应输出-0.283333。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
double fun(int m)
{
/**********found**********/
double t;
int i;
for( i = 2; i <= m; i++ )
/**********found**********/
t = 1.0-1 /i;
return t;
}
int main()
{
int m ;
printf( "\nPlease enter 1 integer numbers:\n" );
scanf( "%d", &m);
printf( "\nThe result is %f\n", fun(m));
return 0;
}
3.程序设计题
编写函数fun,它的功能是:删除字符串中的所有空格。
例如,主函数中输入“asd af aa z 67”,则输出为“asdafaaz67”。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
void fun(char *str)
{
}
int main()
{
char str[81];
printf("Input a string:") ;
gets(str);
puts(str);
fun(str);
printf("*** str: %s\n",str);
NONO();
return 0;
}
void NONO(void)
{
/* 请在此函数内打开文件,输入调试数据,调用 fun 函数,
输出数据,关闭文件。 */
char str[81];
int n = 0;
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
while(n < 10)
{
fgets(str, 80, rf);
fun(str);
fprintf(wf, "%s", str) ;
n++ ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)a[i]%2 (2)a[j] (3)j
2. double t=1.0;
t = t-1.0/i;
3. void fun(char *str)
{
int i,j;
for (i=0,j=0; str[i]!='\0';i++)
if (str[i]!=' ') str[j++]=str[i];
str[j]='\0';
}
第49套参考答案
1.程序填空题
给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中。
例如,若输入字符串“abcdef35adgh3kjsdf7”,则输出结果为4。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
void fun(char *s, int *t)
{
int i, n;
n=0;
/**********found**********/
for(i=0; ___1___; i++)
/**********found**********/
if(s[i]>='0'&&s[i]<= ___2___ ) n++;
/**********found**********/
___3___ ;
}
int main()
{
char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("\nThe original string is : %s\n",s);
fun(s,&t);
printf("\nThe result is : %d\n",t);
return 0;
}
2.程序修改题
给定程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数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=1;
for(j=2;j<=sqrt((double)i);j++)
if (i%j==0) y=0;
if (y==1)
{
/**************found**************/
d==a-i;
for(j=2;j<=sqrt((double)d);j++)
if (d%j==0) y=0;
if (y==1)
{ *b=i; *c=d; break; }
}
}
}
int main()
{
int a,b,c;
do
{
printf("\nInput a: ");
scanf("%d",&a);
} while(a%2 || a==2);
fun(a,&b,&c);
printf("\n\n%d = %d + %d\n",a,b,c);
return 0;
}
3.程序编写题
编写函数fun,它的功能是:计算n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中输入n为20,则输出为:s=0.583333。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void NONO(void);
double fun(int n)
{
}
int main()
{
int n;
double s;
printf("\nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("\n\ns=%f\n",s);
NONO();
return 0;
}
void NONO(void)
{/* 请在此函数内打开文件,输入测试数据,调用 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, "%f\n", s) ;
}
fclose(rf) ;
fclose(wf) ;
}
1.(1)s[i]!='\0' (2)'9' (3)*t=n
2. y=1;
d=a-i;
3. double fun(int n)
{
double s=0.0;
int i;
for (i=1;i<=n;i++)
if (i%5==0 || i%9==0)
s+=1.0/i;
return s;
}
第50套参考答案
这里是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