历年国家计算机二级C语言上机国二真题整理100套

更新时间:2023-11-27 02:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一套

程序填空

给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。如输入一个数:27638496,新的数为729 第一空:{ t=*n; 第二空:if(t%2!=0) 第三空:*n=x; 2.程序修改

给定程序modi1.c中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。 double fun(int n ) { double result=1.0; /*****found******/ if(n==0)

return 1.0; while(n>1&&n<170) /*****found******/ result*=n--; return result; }

程序设计

请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。 long fun(char *p) {

int i,len,t; long x=0; len=strlen(p); if(p[0]==’-‘) { t=-1;len--;p++;} else t=1; while(*p) x=x*10-48+(*p++); return x*t; }

第二套

1. 给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 第1 处 FILE * fp;

第2 处 while (!feof(fp)) {

第3 处 putchar(ch); ch = fgetc(fp); } 2.程序修改

给定程序MODI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

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’; } 3.程序设计题

请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 void fun(char s[][N],char *b) {

int i,j,n=0;

for(i=0;i

/*请填写其相应语句完成其功能*/ {

for(j=0;j

b[n]=’\\0’; }

第三套 1.

程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数 fun的功能是重写形参filename所指的文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。 第1处:fp=fopen(filename, ”rb+”)

第2处:fseek(fp,-1L* sizeof(STU),SEEK_END); 第3处:fwrite(&n, sizeof(STU),1,fp);

程序修改

给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 NODE *Creatlink(int n,int m) { NODE *h=NULL,*p,*s; int i;

/*****found******/

p=( NODE *) malloc(sizeof(NODE)); h=p; p->next=null;

for(i=1;i<=n;i++)

{s=( NODE *) malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; }

/*****found******/ return h; } 程序设计

请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。 int fun(char *s) {

int k=1; while(*s) { if(*s==’’)k++; s++; } return k; }

第四套

程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。 第1处fp = fopen(filename, \第2处if (s[i].sno >s[j].sno)

第3处 fwrite(s,sizeof(STU),N,fp);

程序修改

给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,差且覆盖原串。注意:字符串的长度最长允许为79. void fun(char s[ ],int n) {

char a[80],*p; int i;

/*****found******/ p=s;

for(i=0;i

{a[i]=*p; i++; }

/*****found******/ while(*p++) a[i]=0; strcpy(s,a); }

程序设计

2.

3.

1.

2.

3.

请编写函数fun,函数的功能是:统计各年龄段的人数,N个年龄能过调用随机函数获得,并放在主函数的age 数组中:要求函数把0至9岁的年龄段的人数放在d[0]中,把10至19岁的年龄段的人数放在d[1]中,把20至29岁的年龄段的人数放在d[2]中,其余依次类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。 void fun(int *a, int *b) {

int i,j;

for(i=0;i10)b[M-1]++; else b[j]++; } }

第五套 1. 程序填空

给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文件文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串换成相应的整数和浮点数,然后将其显示在屏幕上。

第1处: FILE *fp; 第2处:fclose(fp);

第3处:fscanf(fp,”%s%s%s”,str,str1,str2); 2.程序修改

给定程序MODI1.C中函数fun的功能是:对N名学生的学生成绩,按从高到低的顺序找出前m(m<10) 名学生来,将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 STU *fun(STU a[ ],int m) { STU b[N],*t; int i,j,k;

/*****found******/

t=(STU *)calloc(sizeof(STU),m); for(i=0;i

for(k=0;k

{ for(i=j=0;ib[j].s)j=i; /*****found******/ t[k]=b[j]; b[j].s=0; }

return t; }

3. 程序设计

请编写函数fun,函数的功能是,删去一维数组中所有相同的数,使之只剩一个。数组中的数已按从小到大的顺序排序,函数返回删除后数组中数据的个数。 int fun(int a[ ],int n) {

int i,j=1,k=a[0]; for(i=1;i

第六套 1. 程序填空

给定程序中,函数fun的功能是根据形参i的值返回某个函数年值。当调用正确时,程序输出:x1=5.000000 x2=3.000000.

x1*x1+x1*x2=40.000000

第一处:double fun(int i,double x,double y) 第二处:return f1(x); 第三处:return f2(x,y); 2.程序修改

给定程序MODI1.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。 #include /*****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; }

3. 程序设计

请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平均移到字符串的最后,把第m+1个到最后的;字符移到字符串的前部。 void fun(char *w, int m ) {

int i;

for(i=0;i

第七套 1. 程序填空

程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息,函数fun的功能是输出这位学生的信息。

第1处 void show( STU tt)

第2处 printf(“%5.1f”,tt.score[i]); 第2处 show(std) 2.程序修改

给定程序MODI1中函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 int fun(int *a,int n) { int i,m,t,k; for(i=0;i<2;i++){ /*****found******/ m=i;

for(k=i+1;ka[m])m=k;

t=a[i];a[i]=a[m];a[m]=t; } }

3.程序设计

请编写一个unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的后n-1位的数作为函数值返回。

例如:w值为5923,则函数返回923;w值为923则函数返回23。 unsigned fun( unsigned w ) {

if(w>=10000) return w000; if(w>=1000) return w00; if(w>=100) return w0; return w; }

第八套 1. 程序填空

给定程序通过定义并赋值的方式,利用结构体变量存储了一名学生学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系统a。 第1处 void modify(STU *ss,float a ) 第2处 ss->score[i]*=a; 第3处 modify(&std,a); 2.程序修改

给定程序MODI1.C中函数fun的功能是:求k!<13>,所求阶乘的值作为函数值返回。例如:若k=10,则应输出:3628800。 long fun(int k)

{

/*****found******/ if(k>0)

return (k*fun(k-1)); /*****found******/ else if(k==0) return 1L; }

3.程序设计

程序定义了N*N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N],int n),函数的功能是:使数组左下三角元素中的值乘以n。 int fun(int a[ ][N],int n) { int i,j;

for(i=0;i

a[i][j]*=n; }

第九套

1.程序填空

给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头到尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。

第1处 q=p->next; 第2处 while(q) 第3处 p=p->next; 2.程序修改

给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换成a ),其它字符不变。 void fun(char *s) {

/*****found******/ while(*s)

{ if(*s>’A’&&*s<=’Z’ ||*s>=’a’&&*s<=’z’) { if(*s==’Z’)*s=’A’;

else if(*s==’z’)*s=’a’; else *s=*s+1;} /*****found******/ s++; } }

3.程序设计

void fun(int *w,int p, int n) {

int i,j=0,b[N];

for(i=p+1;i

for(i=0;i

第十套 1程序填空

给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 第1处 row=colum=0;

第2处 if((row!=colum)||(row!=m1))return 0; 第3处 return 1; 2程序修改

给定MODI1.Cfun函数的功能是:根据整型形参m,计算如下公式的值。t=1-1/2-1/3-??-1/m. #include double fun( int m ) {

double t = 1.0; int i;

for(i=2;i<=m;i++)

/********found***********/

1程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。

第1处 struct student * fun(struct student *a)

第2处 for(i=0;i<3;i++) a->score[i]+=1; 第3处 return a;

2程序修改

给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。 /*******found******/ char *fun(char (*sq)[M]) { int i; char *sp; sp=sq[0];

for(i=0;i

if (strlen(sp)

/*******found******/ return sp; } 3程序设计

函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。 #include

void fun (int a, int b, long *c)

{ *c=(b)*1000+(a/10)*100+(b/10)*10+a; }

第二十套 1程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指桑骂槐数组中小于平均值的数据移至数据的前部,大于等于平均值的数据移至x决指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第1处 for(i=0; i

给定程序MODI1.C函数fun的功能是:统计字符串各元音字母(即:A、E、I、O、U)的个数。注意字母不分大、小写。

fun (char *s, int num[5]) { int k, i=5;

for(k=0;k

for( ; *s;s++) { i=-1;

/*******found******/ switch( *s)

{ case ‘a’:case ‘A’: {i=0;break;}

{ case ‘e’:case ‘E’: {i=1;break;}

{ case ‘i’:case ‘I’: {i=2;break;}

{ case ‘o’:case ‘O’: {i=3;break;}

{ case ‘u’:case ‘U’: {i=4;break;} }

if (i>=0) num[i]++; } }

3程序设计

请编写函数fun,函数的功能是求出二级数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

int fun(int a [M][N]) {

int tot = 0, i,j; for(i=0;i

tot +=a[0][i]; tot +=a[M-1][i]; }

for (i=1;i

return tot; }

第21套 1程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第1处 av=s/N;

第2处 y[j++]=x[i];x[i]=-1;} 第3处 if(x[i]!=-1) y[j++]=x[i]; 2程序修改

给定程序MODI1.C的功能是:读入一英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串) /*******found******/ #include /*******found******/ upfst (char *p) {int k=0; for ( ; *p; p++) if (k)

{ if (*p==’’)k=0;} else if (*p!=’’) {k=1; *p=toupper(*p);} }

3程序设计

程序定义了N×N的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值返给主函数中的s。 double fun (int w[][N]) { int i, j, n=0; double sum=0;

for(i=0; i

{ sum+=w[0][i]+w[N-1][i];n+=2;} for (i=1;i

{ sum+=w[i][0]+w[i][N-1]; n+=2; }

return sum/n; }

第22套 1程序填空

给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

第1处 fprintf(fp,〝%d%f\\n〞,i,sqrt((double)i)); 第2处 fclose(fp);

第3处 if ((fp=fopen(fname,〝r〞))==NULL) 2程序修改

给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。 fun (int n,int *a ) { int i,j,p,t;

for(j=0; j

/*******found******/ for (i=j+1; ia[i]) /*******found******/ p=i;

if (p!=j) { t=a[j];a[j]=a[p];a[p]=t;} } }

3程序设计

函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。 #include

void fun (int a, int b, long *c) {

*c=(b)*1000+(a)*100+(b/10)*10+(a/10);} 第23套

1程序填空

给定程序中,函数fun的功能是:找出N*N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。

第1处 b[i]=a[0][i];

第2处 if (b[i]

给定程序MODI1.C中fun函数的功能是:交换主函数中两个变量的值。 /*******found******/ int fun(int *x,int *y) { int t; /*******found******/ t=*x;*x=*y;*y=t; } 3程序设计

编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。 #include #define MAX 100

int fun(int lim, int aa [MAX]) {int i, j, k=0;

for(i=2;i<=lim;i++) {

for(j=2;j<=(i/2);j++) if(i%j==0)break; if(j>(i/2)) aa[k++]=i; } return k;}

第24套 1程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。 第1处 struct student fun(struct student a) 第2处 strcpy(a.name,〝LiSi〞); 第3处 a.score[i]+=1; 2程序修改

假定整数数列中的数不重复,并存放在数组中。给定程序MODI1.C中函数fun的功能是:删除数列中值为x的元素。N中存放的是数列中元素的个数。 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

3程序设计

学生的记录由学号和成绩组成。N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分阶段数最低的学生可能不止一个,函数返回分数最低的学生的人数。 int fun(STREC *a, STREC *b) {

int i,j=0,min=a[0].s; for( i=0;ia[i].s){j=0;b[j++]=a[i];min=a[i].s; } else if (min ==a[i].s) b[j++]=a[i]; } return j; }

第25套 1程序填空

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中编号为空串。

第1处 STU fun(STU *std, char *num) 第2处 if(strcmp(std[i].num,num)==0) 第3处 return (std[i]); 2程序修改

给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。

int fun(char *s,char *t) { int n; char *p,*r; n=0;

while (*s) {p=s;r=t; while (*r) if (*r==*p){

/*******found******/ r++; p++; } else break;

/*******found******/ if (*r==0) n++; s++;

} return n; }

3程序设计

函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

#include #include

void fun (char *s, char t[]) {

int i, j=0;

for(i=0;i

第26套 1程序填空

给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。 函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 第1处 free(q); 第2处 q=p->next; 第3处 q=q->next; 2程序修改

给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。 void fun (int a[], int n) { int i, j, t, p; for (j=0;j

for(i=j;i/*******found******/ p=i;

t=a[p];a[p]=a[j]; a[j]=t; }

3程序设计

请编写一个函数fun,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

void fun (int m, int *a, int *n) { int i; *n=0;

for(i=7;i<=m;i++)

if((i%7==0)||(i==0)) a[(*n)++]=i; }

第27套 1程序填空

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:9.6125588 2222

s=(1*3)/2+(3*5)/4+(5*7)/6+(2*n-1)* (2*n+1)/(2*n)(考试时公式用分式表示) 第1处 s=0;

第2处 for(i=1;i<=n;i++)

第3处 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2程序修改

给定程序MODI1.C中函数fun的功能是:统计substr所指子字符串在str所指字符串中出现伯次数。 fun(char *str, char *substr) { int i,j, k, num=0; /*******found******/ for(i=0;str[i];i++)

for(j=i,k=0;substr[k]==str[j];k++,j++) /*******found******/ if(substr[k+1]==’\\0’) { num++; break; }

return num; }

3程序设计

请编写一个函数fun,它的功能是:根据以下公式求Л的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度0.0005,则程序输出为3.14?. Л/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+?? double fun (double eps) { double s=1,t=1./3; int n=1; while (t>=eps) {s+=t;n++;t=t*n/(2.0*n+1);} return(s*2.0); }

第28套

1.程序填空

给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。 第1处 for(i=0; s[i]!= NULL; i++)

第2 处 if(s[i]>='0'&&s[i]<='9' ) n++; 第3 处 *t=n ; 2程序修改

给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。 int fun (int *x,int y) { int t;

/*******found******/ t=*x ; *x=y;

/*******found******/ return(t); } 3程序设计

请编写函数fun,它的功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 #include

void fun (int *a, int *n) { int i; *n=0; for(i=7;i<1000;i++) if(((i%7)==0||(i)==0&&(iw)!=0) a[(*n)++]=i; }

第29套 1程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 第1处 b->sno = 10004;

第2处 strcpy(b->name,〝LiJie〞); 第3处 fun(&t); 2程序修改

给定程序MODI1.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:例如,a为2时,平方根值为:1.414214

x1=1/2*(x0+a/x0)(考试时是分数形式) /*******found******/

double fun(double a,double x0) { double x1,y; x1=(x0+a/x0)/2.0; /*******found******/ if(fabs(x1-x0)>0.00001) y=fun(a,x1); else y=x1; return y; } 3程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分数通过函数值返回。

double fun (STREC *a, STREC *b, int *n) { double t=0; int i; *n=0; for(i=0;it)b[(*n)++]=a[i]; return t; }

第30套 1程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。 第1处 b=a;

第2处 strcpy(b.name,〝LiSi〞)

第3处 for(i=0;i<3;i++) printf(〝%6.2f〞,b.score[i]); 2程序修改

给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。请改正程序中的错误,使它能计算出正确的结果。 void fun (char *s) { int i, j;

for(i=j=0; s[i]!=’\\0’;i++) if(s[i!=’c’])

/*******found******/ s[j++]=s[i];

/*******found******/ s[j]=’\\0’; } 3程序设计

假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串的前导*号全部移到字符串的尾部。函数fun中给出的语句仅供参考。 void fun(char *a) { char *p,*q; int n=0; p=a;

while(*p==’*’) { n++;p++;} q=a;

while(*p){ *q=*p; p++;q++; } for( ;n>0;n--) *q++=’*’; *q=’\\0’; }

第31套

1程序填空

给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。 第1处 t=i;

第2处 for(j=i+2; j

给定程序MODI1.C中函数fun的功能是:用下面的公式求∏的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如:程序0.0001,则程序输出3.1414

∏/4≈1-1/3+1/5- 1/7+??

float fun (float num) { int s ;

float n, t, pi; t=1;pi=0;n=1;s =1; /*******found******/ while((fabs(t)) >=num) { pi=pi+t; n=n+2; s=-s;

/*******found******/ t=s/n; } pi=pi*4; return pi; }

3程序设计

请编写一个函数void fun (char a[] ,char b[], int n),其功能是:删除一个字符串指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的n中存入指定的下标。 void fun (char a[],char b[],int n) {

strncpy (b,a,n); b[n]=0; strcat(b,a+n+1); }

第32套 1程序填空

给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。 第1处 void fun(char (*ss) [M], int k) 第2处 while (i

给定程序MODI1.C中函数fun的功能是:根据以下公式求∏值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。

Л/2=1+1/3+1/3*2/5

+1/3*2/5*3/7+??(考试时是分数形式) double fun(double eps) { double s,t;int n=1; s=0.0;

/*******found******/ t=1;

while(t>eps) { s+=t;

t=t*n/(2*n+1); n++; }

/*******found******/ return (2*s); } 3程序设计

假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。函数fun中给出的语句仅供参考。 void fun(char *a,int n) {

int i=0,j,k=0;

while(a[k]==’*’)k++; if(k>n) {

i=n;j=k;

for(;a[j]!=0;j++) a[i++]=a[j]; a[i]=0;

} }

第33套 1程序填空

给定程序的功能是:调用 函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 第1处 if((fs=fopen(source,”r”))==NULL) 第2处 while(!feof(fs)) 第3处 fputc(ch,ft); 2程序修改

给定程序MODI1.C中函数fun的功能是:将长整型中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 void fun(long s,long *t) { int d; long s1=1; *t=0;

while(s>0) { d=s;

/*******found******/ if(d%2==0) { *t=d*sl+*t; sl*=10; }

/*******found******/ s/=10; } }

3程序设计

函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。 void fun(int a,int b,long *c) {

*c=(a)*1000+(b/10)*100+(a/10)*10+(b); }

第34套 1程序填空

用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,??函数fun用筛选法找出所有小等于n的素数,并统计素数的个数作为函数值返回。 第1处 for(j=a[i]*2;j<=n;j+=a[i]) 第2处 while(a[i]==0) 第3处 if(a[i]!=0) 2程序修改

给定程序MODI1.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。 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=1; *c=d; }}}}

3程序设计

请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 double fun(int n) {

int i;

double sum=0.0; for(i=1;i<=n;i++) if(i%5==0||i%9==0)

sum+=1.0/i; return sum; }

第35套 1程序填空

给定程序中,函数fun的功能是建立一个N×N的矩形。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,?依次类推。 第1处 void fun(int (*a)[N]) 第2处 for(j=i;j

第3处 a[k][i]=a[k][N-i-1]=i+1; 2程序修改

给定程序MODI1.C中函数fun的功能是:将十进制正整数m转换成k(2≦k≦9)进制数,并按高位到低位顺序输出。

void fun(int m,int k) {

int aa[20],i; for(i=0;m;i++) {

/*******found******/ aa[i]=m%k; m/=k; }

for( ; i; i--)

/*******found******/ printf(“%d”,aa[i-1]); } 3程序设计

编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考) fun(char (*a)[81],int num,char **max) {

int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;i

if(strlen(a[i])>maxlen) { maxlen=strlen(a[i]); k=i; } }

*max=a[k]; }

第36套 1程序填空

给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。 第1处 *n=0;

第2处 p=p->next;

第3处 fun(head,&num); 2程序修改

给定程序MODI1.C中函数fun的功能是:求出s所指字符串最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值NULL。 char *fun(char *s,char *t) {

char *p,*r,*a;

/*******found******/ a=NULL; while(*s) { p=s;r=t; while(*r)

/*******found******/ if(*r==*p) {r++;p++;} else break;

if(*r==’\\0’)a=s; s++; }

return a; }

3程序设计

函数fun找功能是:将s所指字符串中除了下标为偶数,同时ASCII值也为偶数的字符外,其余的全部都删除;串中剩余字符所形成的一个新串放在t所指的数组中。 void fun(char *s,char t[ ]) {

int i,j=0;

for(i=0;i

第37套 1程序填空

给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到输出相应信息。ss所指字符串数组中共有N个字符,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。 第1处 for(i=0;i

第2处 if(strstr(ss[i],substr)!=NULL) 第3处 if(find==0) 2程序修改

给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。 /*******found******/ fun(int x,int y,int z) { int j,t,n,m; j=1; t=j%x; m=j%y; n=j%z;

while(t!=0||m!=0||n!=0) { j=j+1; t=j%x; m=j%y; n=j%z;

/*******found******/ return j; } 3程序设计

假定输入的字符串中只包含中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e 给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。 void fun(char *a,int n,int h,int e) {

char *p=a; int j=0,len=0; while(*p){ p++;len++;} while(j

第38套 1程序填空

函数fun的功能是:反形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。 第1处if(a[i]%2==1) 第2处 j++;

第3处 return j; 2程序修改

给定程序MODI1.C中函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。 int fun(int a,int b) { int r,t; if(a

/*******found******/ t=a;a=b;b=t; } r=a%b;

while(r!=0)

{ a=b;b=r;r=a%b;} /*******found******/

q=w+1.0;

s=s*w*w/p/q; n++; }

/*******found******/ return s; } 3程序设计

编写函数fun,它的功能是计算并输出下列级数和:例如,当n=10时,函数值为0.909091。 s=1/(1*2)+1/(2*3)+??+1/n(n+1) double fun(int n) {

double s=0.0; int i; for(i=1;i<=n;i++) s=s+1.0/(i*(i+1)); return s; }

第48套 1程序填空

给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。

第1处 if(isdigit(*s))sum+=*s-48; 第2处 s++;

第3处 return sum; 2程序修改

给定程序MODI1.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若k的值为500,则函数值为4622。 int fun(int k)

{ int m=0,mc=0,j; while((k>=2)&&(mc<10)) {

/*******found******/ if((k==0)||(k==0)) { m=m+k;mc++;} k--;} return m;

/*******found******/ }

3程序设计

编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。

double fun(int n) {

double sum=0.0; int i; for(i=21;i<=n;i++) if((i%3==0)&&(i%7==0))sum+=i; return sqrt(sum); }

第49套 1程序填空

给定程序中,函数fun的功能是:将形参s所指字符串所有ASCII码小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。 第1处 *(t+n)=*s;n++;} 第2处 s++;

第3处 return n; 2程序修改

给定程序MODI1.C中函数fun的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。

int fun(float x[],int n) {

/*******found******/ int j,c=0;float xa=0.0; for(j=0;j

printf(“ave=%f\\n”,xa); for(j=0;j

/*******found******/ if(x[j]>=xa) c++; return c;

}

3程序设计

编写函数fun,其功能是:根据以下公式求p的值,结果由函数值带回。m与n为两个正整数且要求m>n。 p=m!/(n!*(m-n)!)

float fun(int m,int n) {

float p;

p=1.0*jc(m)/jc(n)/jc(m-n); return p; }

第50套 1程序填空

给定程序中,函数fun的功能是:有N×N 矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素来。 第1处 void fun(int (*t)[N]) 第2处 t[i][j]=t[i][j]+t[j][i]; 第3处 t[j][i]=0; 2程序修改

给定程序MODI1.C中函数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。 /*******found******/

#define FU(m,n) ((m)/(n))

float fun(float a,float b,float c) { float value;

value=FU(a+b,a-b)+FU(c+b,c-b); /*******found******/ return (value); } 3程序设计

规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

void fun(char *a) {

int j=0; char *p=a; while(*p==’*’)p++; while(*p){ a[j++]=*p; p++; } a[j]=0; }

第51套 1程序填空

给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。 第1处 n++;flag=1;}

第2处 if(*s==’’)flag=0; 第3处 s++; 2程序修改

给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。 inf fun(float *s,int n,float *aver) { float ave,t=0.0; int count=0,k,i; for(k=0;k

/*******found******/ t+=s[k]; ave=t/n; for(i=0;i

if(s[i]

3程序设计

请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元。 int fun(int *s,int t,int *k)

{

int i,pos=0,max=*s; for(i=1;i

第52套 1程序填空

给定程序中,函数fun的功能是将N×N矩阵中元素的值按列右移1个位置,右边被称出矩阵的元素绕回左边。

第1处for(i=0;i

给定程序MODI1.C中函数fun的功能是:计算并输出下列级数的前N项之和Sn,直到Sn+1 大于q为止,q的值通过形参传入。

SN=2/1+3/2+4/3+??+N+1/N

double fun(double q) { int n;double s,t; n=2; s=2.0;

while(s<=q) { t=s;

/*******found******/ s=s+(n+1.0)/n; n++; }

printf(“n=%d\\n”,n); /*******found******/ return t; } 3程序设计 编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)定义为:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2) int fun(int t) {

int f0=0,f1=1,f; do { f=f0+f1; f0=f1; f1=f; }while(f

第53套 1程序填空 234

函数fun的功能是:计算f(x)=1+x-x/2!+x/3!-x/4! n-6

直到|x/n!|<10若x=2.5,函数值为:1.917915。 第1处 t=x;

第2处 t*=(-1.0)*x/n;

第3处 while(fabs(t)>=1e-6) 2程序修改

给定程序MODI1.C中函数fun的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为625。

long fun(int x,int y,long *p) { int i; long t=1;

/*******found******/ for(i=1;i<=y;i++) t=t*s; *p=t;

/*******found******/ t=t00; return t; }

3程序设计

请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值,直到|Sn-Sn-1|<0.000001为止 0.5(0.5-1) 0.5(0.5-1)(0.5-2) 0.5(0.5-1)(0.5-2)?(0.5-n+1) S=1+0.5x+─────x^2+ ─────────x^3? +

──────────────x^n

2! 3! n! double fun(double x) {

int n=1; double sn=1;

double xn=1,xn1=0;

while(fabs(xn-xn1)>=0.000001) {

xn=xn*x*(0.5-n+1)/n;

n+=1;

sn+=xn; }

return(sn); }

第54套 1程序填空

给定程序中,函数fun的功能是:计算出带有头节点的单向链表中各节点数据域中值之和作为函数值返回。

第1处 s+=p->data; 第2处 p=p->next;

第3处 printf(“\\nsum=%d\\n”,fun(head)); 2程序修改

给定程序MODI1.C中函数fun的功能是:将s所指字符串中出现的与t1所指字符串相同的子串全部替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。 int fun(char *s,char *t1,char *t2,char *w) {

int i; char *p,*r,*a; strcpy(w,s) while(*w) { p=w;r=t1;

/*******found******/ while(*r) if(*r==*p) {r++;p++;} else break; if(*r==’\\0’) { a=w;r=t2; while(*r) {

/*******found******/ *a=*r;a++;r++; } w+=strlen(t2); }

else w++; } }

3程序设计

函数fun的功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

void fun(char *s,char t[]) {

int i,j=0;

for(i=1;i

第55套 1程序填空

给定程序中,函数fun的功能是:判断形参s所指字符串是否是“回文”(Palindrome)若是,函数返回值为1;不是,函数返回值为0,“回文”是正读和反读都是一样的字符串(不区分大小写字母)。 第1处lp=s;

第2处 lp++;rp--;}

第3处 if(lp

给定程序MODI1.C中函数fun的功能是:求出以下分数序列的前n项之和。

2/1+3/2+5/3+8/5+13/8+21/13+??和值通过函数值近回main函数。例如,若n=5,则应输出:8.391667。

/*******found******/ double fun(int 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); }

3程序设计

请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37,函数fun中给出的语句仅供参考。 void fun(int m,int k,int xx[]) {

int i,j=1,t=m+1; while(j<=k) {

for(i=2;i

第56套 1程序填空

给定程序的功能是:从键盘输入若干行文本(每行不得超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。 第1处void WriteText(FILE *fw)

第2处 fputs(str,fw);fputs(“\\n”,fw); 第3处 printf(“%s”,str); 2程序修改

给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 /*******found******/ void fun(long s,long *t) { long s1=10; *t=s; while(s>0) { s=s/100; *t=s*s1+*t;

/*******found******/ s1=s1*10; } }

3程序设计

函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在c数个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 void fun(int a,int b,long *c) {

*c=(b/10)*1000+(a)*100+(b)*10+(a/10); }

第57套 1程序填空

函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元中;再把a所指数组中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。

第1处max=min=a[i]; 第2处 if(maxa[j]) 2程序修改

给定程序MODI1.C中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、?? long fun(int g) {

/*******found******/ switch(g)

{ case 0:return 0; /*******found******/ case 1:return 1; case 2:return 1; } return (fun(g-1)+fun(g-2)); }

3程序设计

某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。 void fun(STREC *a) { int i;

for(i=0;i

a->ave=a->ave+a->s[i]; a->ave/=N; }

第58套 1程序填空

给定程序中,函数fun的功能是;把形参s所指字符串中最左边的n个字符复制到形参t所指字符数组中,形成一个新串,若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。 第1处 if(n>=len)strcpy(t,s); 第2处 t[j++]=s[i]; 第3处 t[j]=0; 2程序修改

给定程序MODI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值返回。 int fun(int m) { int i,k;

for(i=m+1; ; i++) {

for(k=2;k

/*******found******/ if(i%k==0) break; /*******found******/ if(k>=i)

return (i); }

3程序设计

编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 void fun(int x,int pp[],int *n) {

int i; *n=0; for(i=1;i<=x;i++) if((x%i==0)&&(i%2))pp[(*n)++]=i; }

第59套 1程序填空

给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大,在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 第1处 max=a[i][j];c=j;} 第2处 find=0; 第3处 i++; 2程序修改

给定程序MODI1.C中函数fun的功能是:根据整形形参m的值,计算如下公式的值。??例如:若m中的值为:5,则应输出:0.536389。 t=1-1/(2*2)-1/(3*3)-??-1/(m*m) double fun(int m) { double y=1.0; int i;

/*******found******/ for(i=2;i<=m;i++) /*******found******/ y-=1.0/(i*i); return (y); }

3程序设计

m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。 int fun(int score[],int m,int below[]) {

float av=0.0; int i,j=0; for(i=0;iscore[i]) below[j++]=score[i]; return j; }

第60套 1程序填空

给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。 第1处 void fun(PERSON * std) 第2处 PERSON temp; 第3处 fun(std); 2程序修改

给定程序MODI1.C中函数fun的功能是:将m(1≦m≦10)个字符串连接起来,组成一个新串,放入pt所指存储区中。

int fun(char str[][10],int m,char *pt) {

/*******found******/ int k,q,i;

for(k=0;k

/*******found******/ pt[i]=str[k][i]; pt+=q; pt[0]=0; } }

3程序设计

程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[ ][N]),函数的功能是:使数组左下三角元素中的值全部置成0。 int fun(int a[][N]) {

int i,j;

for(i=0;i

第61套 1程序填空

函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则转换成对应的小写英文字母;并将转换的结果作为函数值返回。 第1处 if((ch>=’a’)&&(ch<=’z’)) 第2处 return ch+’a’-‘A’ 第3处 return ch; 2程序修改

给定程序MODI1.C中函数fun的功能是:给一维数组a输入任意4个整数,并按下列的规律输出。例如输入1、2、3、4,程序运行后将输出以下方阵。

4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4

/*******found******/ void fun(int *a) { int i,j,k,m; printf(“Enter4 number:”) for(i=0;i

scanf(“%d”,&a[i]);

printf(“\\n\\nThe result :\\n\\n:”); for(i=M;i>0;i--) { k=a[M-1];

for(j=M-1;j>0;j--) /*******found******/ a[j]=a[j-1]; a[0]=k; for(m=0;m

printf(“%d”,a[m]); printf(“\\n”); }

3程序设计

请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与n自身)之和。规定n的值不大于1000。 int fun(int n) {

int s=0,i;

for(i=2;i

第62套 1程序填空

给定程序中,函数的功能是:把形参s所指字符串下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedg。 第1处 if(n%2==0) k=n-1; 第2处 c=s[k]; 第3处 s[1]=c; 2程序修改

给定程序MODI1.C中fun函数的功能是:求s=aa?aa-?-aaa-aa-a(此处aa?aa表示n个a,a和n的值在1至9之间) long fun(int a,int n) { int j;

/*******found******/ long s=0,t=0; for(j=0;j

for(j=1;j

/*******found******/ t=t/10; s=s-t; }

return (s); }

3程序设计

请编写一个函数void fun(char *tt, int pp[ ]),统计在tt所指字符串中‘a’至‘z’26个小写字母各自出现的次数,并依次放在pp数组中。 void fun(char *tt,int pp[]) {

char *p=tt; int i; for(i=0;i<26;i++) pp[i]=0;

while (*p)

{ if(*p>=’a’&&*p<=’z’) pp[*p-‘a’]+=1; p++; } }

第63套 1程序填空

给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边值为0。 第1处 for(i=0;i

给定程序MODI1.C是函数fun的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。 int fun(int high)

{ int sum=0,n=0,j,yes; /*******found******/ while((2<=high)&&(n<10)) { yes=1; for(j=2;j<=high/2;j++) if(high%j==0){

/*******found******/ yes=0;break; } if(yes){sum+=high;n++;} high--; }

return sum; }

3程序设计

编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:

取x1初值为0.0

x0=x1,把x1的值赋给x0 x1=cos(x0),求出一个新的x1

若x0-x1的绝对值小于0.000001执行步骤(5)否则执行步骤(2) 所求x1就是方程cos(x)-x=0的一个实根作为函数值返回。

程序将输出结果Root=0.739058。 float fun() {

float x0,x1=0.0; do { x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>0.000001); return x1; }

第64套 1程序填空

给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。 第1处for(p=1;p<=k;p++) 第2处 for(j=0;j

给定程序MODI1.C是函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。例如,若输入2则输出

1 2 2 4

/*******found******/ fun(int a[][M],int m) { int j,k; for(j=0;j

1. 2. 3. 4. 5.

a[j][k]=(k+1)*(j+1); } 3程序设计

函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。 void fun(int a,int b,int *c) {

*c=(a)*1000+(b)*100+(a/10)*10+(b/10); }

第65套 1程序填空

给定程序中,函数fun的功能:将a所指4×3矩阵中第k行的元素与第0行元素交换。例如:有下列矩阵

1 2 3 4 5 6 7 8 9 10 11 12

若k为2,程序执行结果为 7 8 9 4 5 6 1 2 3 10 11 12

第1处 void fun(int (*a)[N],int k) 第2处 for(i=0;i

给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。例如,若输入edcba,则应输出:abcde。 void fun(char t[]) {

char c; int i,j;

/*******found******/ for(i=strlen(t)-1;i;i--) for(j=0;jt[j+1]) { c=t[j];

t[j]=t[j+1]; t[j+1]=c; } }

3程序设计

请编写一个函数fun,其功能:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *ss) {

char *p=ss; int i=0; while(*p){ if((i%2)&&(*p>=’a’&&*p<=’z’)) *p-=32; p++; i++; } }

第66套 1程序填空

给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。 第1处 max=*std;

第2处 if(max.age

第3处 printf(“\\n Name:%s,Age:%d\\n”,max.name,max.age); 2程序修改

给定程序MODI1.C中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入:60和65,输出为:a=65 b=60 /*******found******/ void fun(int *a,int *b) { int t; /*******found******/

t=*b;*b=*a;*a=t; }

3程序设计

请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。 void fun(int tt[M][N],int pp[N]) {

int i,j,min,k; for(i=0;itt[j][i]) { min=tt[j][i]; k=j; } pp[i]=tt[k][i]; } }

第67套 1程序填空

给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。 第1处 while(n

第2处 if(x==a[i])break;

第3处 if(i==n){ a[n]=x;n++;} 2程序修改

给定程序MODI1.C中函数fun的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。 int fun() {

int a[3][3],sum; int i,j;

/*******found******/ sum=0;

for(i=0;i<3;i++) { for(j=0;j<3;j++) /*******found******/ scanf(“%d”,&a[i][j]); } for(i=0;i<3;i++) sum=sum+a[i][i];

printf(“Sum=%d\\n”,sum); }

3程序设计

编写程序,实现矩阵(3行3列)的转置(即行列互换) int fun(int array[3][3]) {

int i,j,arr[3][3];

memcpy(arr,array,9*sizeof(int)); for(i=0;i<3;i++) for(j=0;j<3;j++) array[i][j]=arr[j][i]; }

第68套 1程序填空

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共M个字符串,且串长

给定程序MODI1.C中函数fun的功能是:根据形参m计算如下公式的值。例如,若输入5,则应输出2.283333。

t=1+1/2+1/3+1/4+? +1/m double fun(int m) {

double t=1.0; int i;

for(i=2;i<=m;i++) /*******found******/ t+=1.0/i;

/*******found******/ return t; } 3程序设计

编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 int fun(char *str,char *substr) {

int cnt=0;

char *p=str,*q; while(*p){ q=strstr(p,substr); if(q==NULL)break; p=q+strlen(substr); cnt++; }

第69套 1程序填空

给定程序中,函数fun的功能是将a和b所指的两具字符串转达换成面值相同的整数,并进行相加作为函数值返回,规定字符串只含9个以下数字字符。 第1处 d=d*10+*s-‘0’; 第2处 s++;

第3处 return ctod(a)+ctod(b); 2程序修改

给定程序MODI1.C中函数fun的功能是:分别统计字符串大写字母和小写字母的个数和。 void fun(char *s,int *a,int *b) {

while(*s)

{ if(*s>=’A’&&*s<=’Z’) /*******found******/ *a=*a+1;

if(*s>=’a’&&*s<=’z’) /*******found******/ *b=*b+1; s++; }

3程序设计

请编写函数fun,函数的功能是使用实型整数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)

float fun(float h) {

long w;

w=h*100+1.5; return (float)w/100; }

第70套 1程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参Y所指数组中,在主函数中输出。 第1处av=0;

第2处 av=av+x[i]/N; 第3处 y[j++]=x[i]; 2程序修改

给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。1/100*100+1/200*200+1/300*300+??+1/m*m。

/*******found******/ double fun(int m) { double y=0,d; int i;

/*******found******/ for(i=100;i<=m;i+=100) { d=(double)i*(double)i; y+=1.0/d; }

return (y); }

3程序设计

已知学生的记录由学号和学生成绩构成,N名学生的数据已存入a结构体数组中,请编写函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分) fun(STU a[],STU *s) {

int i,min=a[0],s,j=0; for(i=1;ia[i].s){ j=i; min=a[i].s; } *s=a[j]; }

第71套 1程序填空

给定程序中,函数fun的功能是,将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 第1处p[j]=s[i];j++;}

第2处 for(i=0;i

给定程序MODI1.C中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。

void fun(char *a,char *b,char *c) {

int i,j; char ch;

i=0;j=strlen(b)-1; /*******found******/ while(i

{ ch=b[i];b[i]=b[j];b[j]=ch; i++;j--; }

while(*a||*b){

/*******found******/ if(*a)

{ *c=*a;c++;a++;} if(*b)

{*c=*b;c++;b++;} } *c=0; }

3程序设计

函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。 void fun(char *s,char t[]) {

int i,j=0;

for(i=0;i

第72套

1程序填空 2222 给定程序中,函数fun的功能是:计算下式s=1/2+3/4+5/6+?+(2×n-1)/(2×n)直到 | (2×n-1)2-3

/(2×n)|≤10并把计算结果作为函数值返回。例如,若形参e的值为 1e-3,函数值的返回值2.735678. 第1处 i=0; 第2处 i++;

第3处 x=(2.0*i-1)/((2.0*i)*(2.0*i)); 2程序修改

给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。 /*******found******/

void fun(char *s,char *t) { int i,d;

d=strlen(s);

for(i=0;i

for(i=0;i

/*******found******/ t[2*d]=’\\0’; } 3程序设计

函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 void fun(char *s,chat t[]) {

int i,j=0;

for(i=1;i

第73套 1程序填空 222n-12 给定程序中,函数fun的功能是计算下式s=3/2-5/4+7/6-?+(-1)(2×n-1) )/(2×n)直到 | (2×n-1)2-3

/(2×n)|≤10并把计算结果作为函数值返回,例如:若形参e的值为1e-3,函数的返回值为 0.551690 第1处x=3.0/4; 第2处 while(x>e)

第3处 x=(2*i+1)/(t*t); 2程序修改

给定程序MODI1.C中函数fun的功能是:求出以下分数序列的前n项之和。 2/1,3/2,5/2,8/5,13/8,31/13?和值通过函数值返回到main函数。

/*******found******/ double fun(int n) { int a,b,c,k; double s;

s=0.0;a=2;b=1; for(k=1;k<=n;k++) {

/*******found******/ s=s+(double)a/b; c=a;a=a+b;b=c; }

return s; }

3程序设计

请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调有函数。 fun(int a[][M]) {

int i,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j第74套 1程序填空

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。

第1处 if(std[i].year==year) 第2处 k[n++]=std[i]; 第3处 return (n); 2程序修改

给定程序MODI1.C的功能是:读入一个整数k (2≤k≤10000) ,打印它的所有质因子(即所有为素数的因子)。

/*******found******/ IsPrime(int n) { int i,m; m=1;

for(i=2;i

/*******found******/ if(!(n%i)) { m=0; break;} return (m); }

3程序设计

已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,函数的功能是:找出成绩最高的学生的记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。 fun(STU a[],STU *s) {

int i,max=a[0].s,j=0; for(i=1;i第75套 1程序填空

给定程序中,函数fun的功能是:对行参ss所指字符串数组中的M个字符串按长度有短到长进行排序。ss所指字符串数组中共有M个字符,且串长

第3处 strcpy(ss[k],t); 2程序修改

给定程序MODI1.C中函数fun的功能是:判断ch中的字符是否与str所指串中的某个字符相同:若相同,什么也不做,则将其插在串的最后。 void fun(char *str,char ch) { while(*str&&*str!=ch) str++; /*******found******/ if(*str!=ch) { str[0]=ch; /*******found******/ str[1]=0; } }

3程序设计

请编写一个函数fun(chae*s),函数的功能是把s所指的字符串中的内容逆置。 fun(char *s) {

char b[N]; int i=0,j; memset(b,0,N); for(j=strlen(s)-1;j>=0;j--) b[i++]=s[j]; strcpy(s,b); }

第76套 1程序填空

给定程序中,函2数fun的功能是:计算下式前 25项的和作为函数值返回。22 n-1

s=1×3/2-3×5/4+5×7/6-??+(-1)(2×n-1) × (2×n+1)/( 2×n) 例如,当形参n的值为10时,函数返回:-0.204491。 第1处k=1; 第2处 t=2*j; 第3处 k=k*(-1); 2程序修改

给定程序MODI1.C中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。 int fun(int m) { int k=2;

while(k<=m&&(m%k)) /*******found******/ k++;

/*******found******/ if(m==k) return 1; else return 0; }

3程序设计

请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 void fun(int a[],int n,int *max,int *d) {

int i;

*max=a[0];*d=0; for(i=1;i第77套 1程序填空

给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到底位相反的顺序组成一个新的数。并作为函数值返回。 第1处if(t%2==0) 第2处 x=10*x+t; 第3处 n=n/10; 2程序修改

给定程序MODI1.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位于仍在低位。 void fun(long s,long *t) { int d; long s1=1;

/*******found******/ *t=0;

while(s>0) { d=s;

/*******found******/ if(d%2!=0) { *t=d*sl+*t; s1*=10; }

s/=10; } }

3程序设计

编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 void fun(char p[],char p2[]) {

char *p=p1; while(*p)p++; while(*p2)*p++=*p2++; *p=0; }

第78套 1程序填空

给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3有下列矩阵:

1 2 3 4 5 6 7 8 9 交换后:

3 2 1 4 5 6 9 8 7

第1处 void fun(int t[][N],int n) 第2处 for(i=0;i

由N个有序整数组成的数列已放在一维数组中,给定程序MODI1.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh,查找结束。 /*******found******/ fun(int a[],int m)

{ int low=0,high=N-1,mid; while(low<=high) { mid=(low+high)/2; if(m

/*******found******/ else if(m>a[mid]) low=mid+1; else return (mid); }

return (-1); }

3程序设计

假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其它*全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。 void fun(char *a,char *p) {

char *q=a; int j=0; while(*q&&q

第79套 1程序填空

给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。Ss所指字符串数组中共的M个字符串,且串长

给定程序MODI1.C函数fun的功能是:将功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。 char *fun(char tt[]) {

int i;

for(i=0;tt[i];i++) /*******found******/

if((‘a’<=tt[i])&&(tt[i]<=’z’)) /*******found******/ tt[i]-=32; return (tt); }

3程序设计

请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

void fun(int m,int *k,int xx[]) {

int i,cnt=0;

for(i=0;i

if(isP(i))xx[cnt++]=i; *k=cnt; }

第80套 1程序填空

给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低们的顺序组成一个新的数。并作为函数值返回。 第1处i=1;

第2处 while(s)

第3处 x=x+t*i;i=i*10; 2程序修改

给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。

/*******found******/

int fun(int n,int xx[][M]) { int i,j,sum=0; printf(“\\nThe %d x%d matrix:\\n”,M,M); for(i=0;i

for(i=0;i

sum+=xx[i][i]+xx[i][n-i-1]; return (sum); }

3程序设计

函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c 的个位和百位上。 void fun(int a,int b,long *c) {

*c=(a/10)*1000+(b)*100+(a)*10+(b/10); }

第81套 1程序填空

给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。 第1处 if(s[i]>=’0’&&s[i]<=’9’) 第2处 while(s[i+1+n]!=0)n++; 第3处 s[j+1]=s[j]; 2程序修改

给定程序MODI1.C中函数fun的功能是:根据整形形参m=1,计算如下公式的值。m=1+1/2*2+1/3*3+1/4*4?1/m*m

例如,若m中的值为:5,则应输出1.463611。 double fun(int m) { double y=1.0; int i;

/*******found******/ for(i=2;i<=m;i++) /*******found******/ y+=1.0/(i*i); return (y); }

3程序设计

编写函数fun,函数的功能是:实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。

void fun(int a[3][3],int b[3][3]) {

int c[3][3]; int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) { c[i][j]=a[j][i]; b[i][j]=a[i][j]+c[i][j]; } }

第82套

1程序填空

给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出:符合条件的整数个数作为函数值返回。 第1处while(t<=999)

第2处 s1=t;s2=(t/10);s3=t/100; 第3处 if(s1+s2+s3==x) 2程序修改

给定程序MODI1.C中fun函数的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 /*******found******/ void fun(long s,long *t) { long s1=10; s/=10; *t=s;

/*******found******/ while(s>0) { s=s/100; *t=s*s1+*t; s1=s1*10; } }

3程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 int fun(STREC a[]) {

STREC tmp; int i,j; for(i=0;i第83套 1程序填空

给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出:符合条件的整数个数作为函数值返回。 第1处n=0;

第2处 while(t<=x) 第3处 t++; 2程序修改

给定程序MODI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指字符串中的字符按正序连接到t所指串的后面。 void fun(char *s,char *t) {

/*******found******/ int i,s1; s1=strlen(s); for(i=0;i

3程序设计

函数fun的功能是:将a、b中的两个两位位整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的千位和十位上。 void fun(int a,int b ,int *c) {

*c=(b/10)*1000+(a/10)*100+(b)*10+(a); } 第84套 1程序填空

函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。 第1处 t=a>b?(b>c?b:(a>c?c:a)):((ac)?c:b)); 2程序修改 给定程序MODI1.C中函数fun的功能是:首先将大写字母转换为对应小写字母:若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。 char fun(char c)

{ if(c>=’A’&&c<=’Z’) /*******found******/

c=c+32;

if(c>=’a’&&c<=’u’) /*******found******/ c=c+5; else if(c>=’v’&&c<=’z’) c=c-21; return c; }

3程序设计

请编写函数fun,其功能是:计算并输出??例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。注意:要求n的值大于1但不大于100。 double fun(int n) {

int i;

double fac=1.0; double sum=1.0; for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; } return sum; }

第85套 1程序填空

给定程序的功能是调用 fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。 第1处int fun(STYPE *std) 第2处 FILE *fp;int i;

第3处 fwrite(&std[i],sizeof(STYPE),1,fp); 2程序修改

给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 void fun(char *s,char *t) { int i,s1; s1=strlen(s);

/*******found******/ for(i=0;i

函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。 void fun(int a,int b,long *c) {

*c=(a/10)*1000+(b/10)*100+(a)*10+(b); }

第86套 1程序填空

甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,两每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第0秒。 第1处 maxt=t1;

第2处 for(t=1;t

给定程序MODI1.C中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 /*******found******/

int fun(int a,int b,int c) { if(a+b>c&&b+c>a&&a+c>b){ if(a==b||b==c) return 3; else

if(a==b||b==c||a==c) return 2;

/*******found******/ else return 1; } else return 0; }

3程序设计

编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有素数的平方根之和。 double fun(int n) {

int i,j=0; double s=0; for(i=3;i<=n;i++){ for(j=2;j

第87套 1程序填空

函数fun的功能是:统计长整数n的各个位上出现数1、2、3的次数,并通过外部(全局)变量c1,c2,c3返回主函数。

第1处 switch(n)

第2处 case 1: c1++;break; 第3处 case 2:c2++;break; 2程序修改

给定程序MODI1.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数并把该整数中各位上最大的数字值作为函数值返回。 int fun(unsigned n,int *zero) { int count =0,max=0,t; do

{ t=n;

/*******found******/ if(t==0) count++; if(max

/*******found******/ *zero=count; return max; }

3程序设计

请编写函数fun,其功能是:计算并输出下列多项式的值:s=1+1/1*2+1/1*2*3+?+1/1*2*3*?50 例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。

double fun(int n) {

double s=0,t=1; int i; for(i=1;i<=n;i++) { t*=i; s+=1.0/t; } return s; }

第88套 1程序填空

函数fun的功能是:反形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;蓁以此类推。 第1处 void fun(int *a,int n) 第2处 for(i=0;i

给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中,若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。 fun(double *s,double *w) {

int k,i;double sum; for(k=2,i=0;i

{ s[i]=k; k+=2; }

/*******found******/ sum=0.0;

for(k=0,i=0;i

/*******found******/ if((i+1)%5==0) { w[k]=sum/5; sum=0;k++;} }

return k; }

3程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回。平均分通过函数值返回。

double fun(STREC *a,STREC *b,int *n) {

int i;

double ave=0.0; *n=0; for(i=0;i第89套 1程序填空

给定程序中,函数fun的功能是:求出形参aa所指字符串数组中最长的字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

第2处 for(j=len;j>=0;j--) 第3处 ss[i][j]=’*’; 2程序修改

给定程序MODI1.C中fun函数的功能是:计算整数n的阶乘。请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。 double fun(int n) {

double result=1.0; while(n>1&&n<170) /*******found******/ result*=n--;

/*******found******/ return result; } 3程序设计

编写函数fun,它的功能是:从s所指的字符串删除给定的字符。同一字母的大、小写按不同字符处理。 int fun(char s[],char c) {

char *p=s; int i=0; while(*p){ if(*p!=c)s[i++]=*p; p++;} s[i]=0; }

第90套 1程序填空

函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。 第1处 for(j=2;j

第2处 if(i%j==0) 第3处 if(j>=i) 2程序修改

数列中,第一项值为3,后一项都比前一项的值增5;给定程序MODI1.C中函数fun的功能是:计算前n(4

/*******found******/ sum=0;j=0;

for(k=3,i=0;i

/*******found******/ if(sum%4==2) a[j++]=sum; }

return j; }

3程序设计

请编写函数fun,其功能是:计算并输出下列多项式的值:??例如,在主函数中从键盘给n输入8后,输出为s=0.662872。注意:要求n的值大于1但不大于100。 double fun(int n) {

int i;

double sum=0.0; if(n>1&&n<=100) { for(i=1;i<=n;i++) sum+=1.0/(2*i-1)-1.0/(2*i); } return sum; }

第91套 1程序填空 2n-6

给定程序中,函数fun的功能是计算f(x)=1+x+x/2!+?+x/n!直到|x/n!|<10若x=2.5,函数值为:12.182494。 第1处 f=1.0+x; 第2处 t*=x/n 第3处 f+=t; 2程序修改

给定程序MODI1.C中函数fun的功能是:计算n的5次方的值(规定n的值大于2小于8),通过形参指针传向主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。 int fun(int n,int *value) { int d,s,i;

/*******found******/ d=1;s=0;

for(i=1;i<=5;i++) d=d*n; *value=d;

for(i=1;i<=3;i++) { s=s+d;

/*******found******/ d=d/10; } return s; }

3程序设计

编写函数fun,它的功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 double fun(double x[9]) {

int i;

double avg=0.0,sum=0.0; for(i=0;i<8;i++){ avg=(x[i]+x[i+1])/2; sum+=sqrt(avg); } return sum; }

第92套 1程序填空

给定程序中,函数fun的功能是:计算f(x)=1+x+x/2!+?+x/n!的前n项。若x=2.5,函数值为:12.182340。 的前n项。若x=2.5,函数值为:12.182340。 第1处 t=1;

第2处 for(i=1;i

给定程序MODI1.C中函数fun的功能是;找出100至n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s所指数组中,把这些整数放在s所指数组中,个数作为函数值返回。 int fum(int *s,int n) { int i,j,k,a,b,c; j=0;

for(i=100;i

a=k;k/=10; b=k;k/=10;

/*******found******/ c=k;

if(a==b&&a==c) s[j++]=i; }

return j; }

3程序设计

请编写函数fun的功能是:计算并输出给定10个数的方差:例如:给定的10个数为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,l输出为s=11.730729。 double fun(double x[10]) {

int i;

double avg=0.0,sum=0.0,abs=0.0,fc; for(i=0;i<10;i++) sum+=x[i]; avg=sum/10; for(i=0;i<10;i++) abs+=(x[i]-avg)*(x[i]-avg); fc=sqrt(abs/10); return fc; }

第93套 1程序填空

给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 第1处 t=t->next;

第2处 printf(“%d”,t->data); 第3处 free(t); 2程序修改

给定程序MODI1.C中fun函数的功能是:将字符串中的字符按逆序输出,但不改变字符串的内容。 /*******found******/ fun(char *a) { if(*a) { fun(a+1);

/*******found******/ printf(“%c”,*a); } }

3程序设计

编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 char *fun(char *s,char *t) {

int i;

char *p=s,*q=t; for(i=0;*p&&*q;i++){ p++;q++; } if(*p==0&&*q==0) return s; if(*p)return s; else return t; }

第94套 1程序填空

函数fun的功能是计算f(x)=1+x-2/2!+3/3!-4/4!+??的前n项和。若x=2.5,n=15时,函数值为1.917914

2

n

前n项之和。若x=2,n=5时,函数值为:1.917914。 第1处 f=1;

第2处 t*=(-1)*x/i; 第3处 f+=t; 2程序修改

给定程序MODI1.C中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。 int fun()

{ int i,j,k,sum=0;

printf(“\\nThe result :\\n\\n”); /*******found******/ for(i=1;i<=3;i++) { for(j=1;j<=5;j++) { k=8-i-j;

/*******found******/ if(k>=0&&k<=6) { sum=sum+1; printf(“red:M white:M black:M\\n”,i,j,k); } } }

return sum; }

3程序设计

请编写函数fun,其功能是:计算并输出下列多项式的值:sn=1+1/1!+1/2!+1/3!+1/4!+?1/n!

例如:在主函数中从键盘给n输入15,则输出为:s=2.718282。注意:要求n的值大于1但不大于100。 double fun(int n) {

double s=1; long t=1; int i; for(i=1;i<=n;i++){ t=t*i; s+=1.0/t;} return s; }

第95套 1程序填空

给定程序中,函数fun的功能是:计算N*N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素的值。 第1处 sum=0;

第2处 sum+=t[i][i]; 第3处 sum+=t[i][n-i-1]; 2程序修改 32

给定程序MODI1.C中函数fun和funx的功能是:用二分法求方程2x-4x+3x-6=0的一个根,并要求绝对误差不超过0.001。

double fun(double m,double n) {

/*******found******/ double r; r=(m+n)/2; /*******found******/ while(fabs(n-m)>0.001) { if(funx(r)*funx(n)<0) m=r;

esle n=r; r=(m+n)/2; }

return r; }

3程序设计

假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用c语言提供的字符串函数。 void fun(char *a,char *h,char *p) {

int j=0; char *q=a; while(*q&&q

本文来源:https://www.bwwdw.com/article/wqqt.html

Top