问答题函数fun的功能是将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若S所指字符串中的内容为“ABCDEFG12345”,其中,字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“135”。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
#include<string.h>
void fun(char*s,char t[])
{
}
main()
{
char s[100],t[100];
printf("/nPlease enter string S:"):
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
问答题给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 5
typedef struct node {
int data;
struct node *next;
} NODE;
____1____ fun(NODE *h)
{NODE *p,*q,*r;
p =h;
if (p == NULL)
return NULL;
q = p—>next;
p—>next = NULL;
while (q)
{
r = q—>____2____ ;
q—>next = p;
p = q;
q = ____3____ ;
}
return p;
}
NODE *creatlist (int a [ ] )
{NODE *h,*p,*q; int i;
h=NULL;
{ q= (NODE *) malloc (sizeof (NODE)) ;
q—>data=a [i] ;
q—>next = NULL;
if (h == NULL) h= p = q;
else {p—>next = qf p = q; }
return h;
}
void outlist (NODE *h)
{NODE *p;
p=h;
if (p==NULL) printf("The list is
else
{ printf ("/nHead ") ;
cio
{ printf("—>%d",p—>data) ; p=p
—>next; }
while (p ! =NULL) ;
printf ( "—>End/n") ;
}
}
main ()
{NODE *head;
int a[N]={2,4,6,8,10};
head=creatlist (a) ;
printf ( " /nThe original list: /n") ;
outlist (head) ;
head=fun (head) ;
printf("/nThe list after
inverting: /n") ;
outlist (head) ;
}
问答题已知一个数列从0项开始的前3项:0、0、1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。 例如,当n= 10时,程序的输出结果应为23. 197745。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1,C中,不要改动mam函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h > #include < conio.h >#include < stdio.h >#include < math.h >/*********found*********/fun(int n){double sum |s0|s1, s2,s; int k; sum=1.0; if(r1 < =2)sum=0.0; s0=0.0;s1=0.0;s2=1.0; for(k=4;k < =n;k++) {s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s; }/*********found*********/ return sum}void main(){int n; system("CLS"); printf("Input N="); scar1f("%d",&n); printf("%f/n",fun(n));}
问答题下列给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值:例如,若m的值为5,则应输出1.463611。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>doublefun(intm){doubleY=1.0;inti;/*********found*********/for(i=2;i<m;i++)/*********found*********/y+=1/(i*i);return(y);}main(){intn=5;printf("\nTheresultis%lf\n",fun(n));}
问答题请编写函数tim,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是:33 44 55 33 44 55 33 44 55 33 44 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>void fun (int s [] [10] , int b[], int*n, int mm, int nn){}main (){int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;int a[100]={0},n=0;void NONO ();printf("The matrix:/n");for(i=0; i<3; i++) {for(j=0/j<4;j++) printf("%3d", w[i][j]); printf("/n"); }fun(w,a,printf("The A array:/n"); for(i=0;i<n;i++) printf("%3d",a[i]);printf("/n/n") ;NONO();} void NONO (){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */FILE *rf, *wf ; int i, j, k ; int w[10][10],a[100],n=0,mm,nn; rf = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(k = 0 ; k < 5 ; k++) { fscanf(rf, "%d %d", for(i = 0 ; i < mm ; i++) for (j = 0 ; j < nn ; j++) fscanf (rf, "%d", fun(w, a, for(i=0;i<n;i++) fprintf(wf,"%3d",a[i]); fprintf(wf,"/n");}fclose(rf); fclose(wf); }
问答题下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MOD11.C中,不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>#define MAXLINE 20fun(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+j)=*(pstr+i);*(pstr+j)=p;}}}}}void main( ){int i;char * pstr[6],str[6][MAXUNE];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++) scartf(''%s'',pstr[i]);fun(pstr);printf(''The strings after sorting:\n'');for(i=0;i<6;i++)printf(''%s\n'',pstr[i]);}
问答题下列给定程序中,函数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<scdio.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) ; 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");
问答题给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。
例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
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;
}
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
gets(substr);
printf("%d/n",fun(str,substr));
}
问答题请编写函数fun(),它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在 a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> void fun (int *a,int *n) main() int aa[1000], n, k; clrscr(); fun(aa, for(k=0;k if((k+1)%10==0) printf("%5d",aa[k]); printf("/n"); /*一行写9个数*/ else printf("%5d ",aa[k]);
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组S中。请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
void fun(STREC a[])
{
}
void main()
{
STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},
{"GA004",85},{"GA001",91},{"GA007",72},
{"GA008",64},{"GA006",87},{"GA015",85},
{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},
{"GA016",72}};
int i;
fun(s);
printf("The data after sorted:/n");
for(i=0;i<N;i++){
if(i%4==0)/*每行输出4个学生记录*/
printf("/n");
printf("%s%4d",s[i].num,s[i].s);}
printf("/n");
}
问答题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void fun(int x,int pp[],int*n)
{
}
void main()
{
FILE*wf;
int x,aa[1000],n,i;
system("CLS")j
printf("/nPlease enter an integer number:/n");
scanf("%d",
fun(x,aa,
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("/n");
/*********found*********/
wf=fopen("out.dat","w");
fun(30,aa,
for(i=0;i<n;i++)
fprintf(wf,"%d",aa[i]);
fclose(wf);
/*********found*********/
}
问答题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 5
#define M 15
void fun(char (*ss)[M], char *substr)
{ int i,find=0;
/**********found**********/
for(i=0; i< __1__ ; i++)
/**********found**********/
if( strstr(ss[i], __2__) != NULL )
{ find=1; puts(ss[i]); printf("/n"); }
/**********found**********/
if (find==__3__) printf("/nDon't found!/n");
}
main()
{ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];
int i;
printf("/nThe original string/n/n");
for(i=0;i
printf("/nEnter a string for search : "); gets(str);
fun(x,str);
}
问答题假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:使字符串中前部的*号不得多余m个;若多余m个,则删除多余的*号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为****A*BC*DEF*G****,若m的值为2,删除后,字符串中的内容则应当是**A*BC*DEF*G****;若m的值为4,则字符串中的内容仍为****A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void proc(char*a, int n)
{
}
void main()
{char str[81]; int m;
printf("Enter a string: /n"); gets(str);
printf("Enter m: "); scanf("%d",
proc(str, m);
printf("The string after deleted: /n");
puts(str);
}
问答题编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1#include<stdio.h>2#include<math.h>3doublefun(doublex,intn)4{5}6main()7{voidNONO();8printf(''%f\n'',fun(0.3,10));9NONO();10}11voidNONO()12{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/13FILE*fp,*wf;14inti,n;15doubles,x;16fp=fopen(''in.dat'',''r'');17wf=fopen(''out.dat'',''w'');18for(i=0;i<10;i++){19fscanf(fp,''%if,%d'',&x,22}23fclose(fp);24fclose(wf);}
问答题给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。 例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 /**********found**********/3 IsPrime(int n);4 { int i,m;5 m=1;6 for(i=2;i<n;i++)7 /**********found**********/8 if !(n%i)9 { m=0;break;}10 return(m);11 }12 main()13 { int j,k;14 printf(''\nPlease enter an integer number between 2 and 10000:'');scanf(''%d'',&k);15 printf(''\n\nThe prime factor(s)of%d is(are):'',k);16 for(j=2;j<=k;j++)17 if((!(k%j))&&(IsPrime(J)) ) printf(''\n%4d'',j);18 printf(''\n'');19 }
问答题编写函数fun,其功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:doublelog(doublex)。例如,若m的值为20,则fun的函数值为6.506583。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#lnclude<stdio.h>#include<math.h>doublefun(intm)voidmain()system("CLS");printf("%f/n",fun(20));
问答题给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在【2】处使fa指向函数f1,在【3】处使fb指向函数f2。当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
double f1(double x)
{ return x*x;}
double f2(double x, double y)
{ return x*y;}
double fun(double a, double b)
{
**********found**********/
【1】 (*f) ();
double rl, r2; /**********found**********/
f=【2】; /* point fountion fl */
rl = f(a);
/**********found**********/
f=【3】 ; /* point fountion f2 */
r2 = (*f)(a, b);
return rl + r2;
}
main ()
{ double xl=5, x2=3, r;
r = fun(xl, x2);
printf("/nxl=%f, x2=%f, xl*xl+
xl*x2=%f/n",xl, x2, r);
}
问答题下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件NOD11.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h >#include < conio.h >#include < stdio.h >int fun(int m){int i,k; for(i=m+1;;i++) {for(k=2; k < i;k++)/*********found*********/ if(i%k!=0) break;/*********found*********/ if(k < i) return(i); }}void main(){int n; system("CLS"); printf("/nPlease enter n:"); scanf("%d",&n); printf("%d/n",fun(n));}
问答题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<stdlib.h>3 #define N 84 struct slist5 {double s;6 struct slist *next;7 };8 typedef struer slist STREC;9 double fun(STREC *h)10 {1112 }13 STREC * creat(double * s)14 {STREC *h,*p,*q;int i=0;15 h=p=(STREC *)malloc(sizeof(STREC));p->s=0;16 while(i<N)17 {q=(STREC *) malloc(sizeof(STREC));18 q->s=s[i];i++;p->next=q;p=q;19 }20 p->next=0;21 return h;22 }23 outlist(STREC *h)24 {STREC *p;25 p=h->next;printf(''head'');26 do27 {printf(''->%4.1f'',p->s);p=p-> next;)28 while(p!=0);29 printf(''\n\n'');30 }31 main()32 {double s[N]={85,76,69,85,91,72,64,87},ave;33 void NONO();34 STREC *h;35 h=creat(s);outlist(h);36 ave=fun(h);37 printf(''ave=%6.3f\n'',ave);38 NONO();39 }40 void NONO()41 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */42 FTLE *in,*out;43 int i,j;double s[N],ave;44 STREC *h;45 in=fopen(''in.dat'',''r'');46 out=fopen(''out.dat'',''w'');47 for(i=0;i<10;i++) {48 for(j=0 ; j<N;j++)fscanf(in,''%1f,'',&s[j]);49 h=creat(s);50 ave=fun(h);51 fprintf(out,''%6.31f\n'',ave);52 }53 fclose(in);54 fclose(out);}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #define N 8 typedef struct char num[10]; double s; STREC; double fun(STREC*a,STREC*b,int*n) void main() STREC s[N]="GA05",85,"GA03",76,"GA02",69,"GA04",85,"GA01",91,"GA07",72,"GA08",64,"GA06",87; STREC h[N]; int i,n; double ave; ave=fun(s,h, printf("The%d student data which is lower than%7.3f:/n" n,ave); for(i=0;i<n;i++)/*输出成绩低于平均值的学生记录*/ printf("%s%4.1f/n",h[i],num,h[i],s; printf("/n");
