历年国家计算机二级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;i 第五套 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;i 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 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;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 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 { 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; 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 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;i 第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 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 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;i 第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
正在阅读:
中国风扇叶行业市场前景分析预测报告(目录) - 图文01-05
爬山的启示作文700字07-14
2013-2014学年八年级英语(下)(人教版)期中检测题03-08
填空题27(无机化学)专项练一04-12
有机化学方程式的书写练习04-30
测量工具的使用08-05
数电课程设计-30秒倒计时器12-14
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 国二
- 上机
- 真题
- 历年
- 二级
- 整理
- 语言
- 计算机
- 国家
- 100
- 一年级上册书法教学计划
- 鄂教版四年级语文下册全册完整教案
- 外汇业务核算练习答案
- 全省科研单位名录
- 综述范文
- 如何求七参数
- 1000MW凝汽器、低加、轴加说明书修改版
- 盐田国际行政办公大楼桩基础工程施工组织设计
- 设立股权投资公司可研报告
- 2019届江苏省南通市三县(通州区、海门市、启东市)高三第一学期期末联考数学试题(解析版)
- 2017-2018学年高中物理人教版必修2习题:第七章 机械能守恒定律 第9节 实验:验证机械能守恒定律2 含答案
- 宏观经济学第6章+总需求与总供给习题
- 关于新年广播稿开头
- 新标准大学英语BOOK4-unit2教案-李骠
- 精细有机合成试题及答案
- 单片机填空题
- 高中物理经典题库-力学选择题136个
- 比比谁厉害
- 讲话稿:在全省城市综合管廊、海绵城市建设和黑臭水体整治工作推进会上的讲话
- 教育心理学案例分析题(一)汇总