问答题请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入“abc4EFg”,则应输出“aBc4EFg”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun(char*ss)
{
}
void main()
{
char tt[81];
system("CLS");
printf("/nPlease enter an string within 80 characters:/n");
gets(tt);
printf("/n/nAfter changing,the string/n%s",tt);
fun(tt);
printf("/nbecomes/n%s/n",tt);
}
问答题给定程序MODI1.C中函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为:"abcdabfabcdx",t中的内容为:"ab"时,
输出结果应是:abcdx。
当字符串中的内容为:"abcdabfabcdx",t中的内容为:"abd"时,则程序输出未找到信息:not be found!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
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 ;
}
main()
{
char s[100], t[100], *p;
printf("/nPlease enter string S :"); scanf("%s", s );
printf("/nPlease enter substring t :"); scanf("%s", t );
p = fun( s, t );
if ( p ) printf("/nThe result is : %s/n", p);
else printf("/nNot found !/n" );
}
问答题给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。 例如,输入的数为:55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1 #include<stdio.h>2 void fun(float *a,float *b,float * c)3 {4 /**********found**********/5 float *k;6 if(*a<*b)7 { k=*a; *a=*b; *b=k;}8 /**********found**********/9 if(*a>*c)10 { k=*c; *c=*a; *a=k,}11 if(*b<*c)12 { k=*b;*b=*c;*c=k;}13 }14 main()15 { float a,b,c;16 printf(''Input a b c:''); scanf(''%f%f%f'',&a,&b,&c);17 printf(''a=%4.1f,b=%4.1f, c=%4.1f\n\n'',a,b,c);18 fun(&a,&b,&c);19 printf(''a=%4.1f,b=%4.1f, c=%4.1f\n\n'',a,b,c);20 }
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。 注意:部分源程序给出如下。 请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include <stdio.h> #include <conio.h> void fun (char *a) void main() char s[81]; printf("Enter a string:/n"); gets(s); fun(s); printf("The string after deleted:/n"); puts(s);
问答题假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:除了尾部的,:号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。
例如,若字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容应当是ABCDEFG******。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio. h>
#include<stdio. h>
void fun(char *a, char *p)
{
}
main ( )
char s[81],*t;
printf ("Enter a string: /n ");
gets (s);
t=s;
while (*t)
t++;
t--; /*指针t指向字符串尾部* /
while (*t== '*' )
t--; /*指针t指向最后一个字母*/
fun (s, t);
printf ("The string after deleted: /n");
puts (s);
}
问答题请编写函数fun,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define N 80
void fun(int*w,int p,int n)
{
}
main()
{int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
printf("The original data:/n");
for(i=0;i<n;i++)printf("%3d",a[i]);
printf("/n/nEnter p:");scanf("%d",
fun(a,p,n);
printf("/nThe data after moving:/n");
for(i=0;i<n;i++)printf("%3d",a[i]);
printf("/n/n");
}
问答题给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<stdlib.h>3 typedef struct aa4 {int data; struct aa *next;} NODE;5 int fun(NODE *h)6 { int sum=0;7 NODE *p;8 /**********found**********/9 p=h;10 while(p)11 { if(p->data%2==0)12 sum+=p->data;13 /**********found**********/14 p=h->next;15 }16 return sum;17 }18 NODE *creatlink(int n)19 (NODE *h,*p,*s;20 int i;21 h=p=(NODE*)malloc(sizeof(NODE));22 for(i=1;i<=n;i++)23 {s=(NODE *)malloc(sizeof(NODE));24 s->data=rand()%16;25 s->next=p->next;26 p->next=s;27 p=p->next;28 }29 p->next=NULL;30 return h;31 }32 outlink(NODE *h,FILE *pf)33 {NODE *p;34 p=h->next;35 fprintf(Pf,''in\nTHE LIST:in\n HEAD'');36 while(p)37 {fprintf(pf,''->%d'',p->data); p=p->next;}38 fprintf(pf,''in'');39 }40 outresult(int s,FILE *pf)41 { fprintf(pf,''\nThe sum of even numbers:%d\n'',s);}42 main()43 { NODE *head;int even;44 head=creatlink(12);45 head->data=9000;46 outlink(head,stdout);47 even=fun(head);48 printf(''\nThe result:in''); outresult(even,stdout);49 }
问答题下列给定的程序中,函数proc()的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为600,则函数的值为5671。请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int proc(int k)
{int m=0, mc=0, j;
while((k>=2) mc++; }
k--;
//****found****
return m;
}
void main()
{
system("CLS");
printf("%d/n", proc(600));
}
问答题下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#nelude<stdio.h>#include<conio.h>#include<stdlib.h>int fun(int k){ int m=0,mc=0,j; while((k>=2)&&(me<10)) {/******found******/ if((k%13=0)‖(k%17=0)) {m=m+k;mc++;} k一一;/******found******/ return m; }void main(){prinff(“%d\n”,fun(500));}
问答题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。
例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 8
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;
double fun(STREC *h)
{
}
STREC * creat(double *s)
{STREC *h,*p,*q; int i=0;
h=p=(STREC*)malloc(sizeof(STREC
)); p->s=0;
while(is=s[i]; i++; p->next=q; p=q;
}
p->next=0;
return h;
}
outlist(STREC *h)
{STREC *p;
p=h->next; printf("head");
do
{printf("->%4.If",p->s);p=p->
next;}
while(p!=0);
printf("/n/n")/
}
main ()
{double s[N] = {85,76,69,85,91,
72, 64,87 },ave;
void NONO ();
STREC *h;
h=creat(s); outlist(h);
ave=fun(h);
printf("ave= %6.3f/n",ave);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,
调用函数,输出数据,关闭文件。*/
FILE *in, *out ;
int i,j ; double s[N],ave;
STREC *h ;
in = fopen("in.dat","r");
out = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
for(j=0 ; j < N; j++)
fscanf(in, "%lf,",
h=creat(s);
ave=fun(h);
fprintf(out, "%6.31f/n", ave) ;
}
fclose(in);
fclose(out); }
问答题请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:
876 675 896 101 301 401 980 431 451 777
则输出结果为:6,980
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun (int *s, int t, int *k)
{
}
main()
{
int a[10]={876,675f 896,101,301,
401,980,431,451,777},k;void NONO();
fun (a, 10, &k);
printf("%d, %d/n", k, a[k]);
NONO();
}
void NONO ()
{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int a[10], i,k,j ;
FILE *rf, *wf ;
rf= fopen "in.dat","r");
wf=fopen ("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
for(j=0 ; j <10 ; j++) fscanf
(rf, "%d",&a[j]);
fun (a, 10, &k);
fprintf (wf, "%d,%d/n",k,a[k]);
}
fclose (rf);
fclose (wf);
}
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 注意:部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<string.h>3 #define N 104 typedef struct ss5 { char num[10]; int s;) STU;6 void fun(STU a[],STU *s)7 {8 }9 main()10 {STU a[N]={{''A01'',81},{''A02”,89},{''A03'',66},{''A04'',87},{''A05'',77},{''A06'',90},{''A07'',79},{''A08'',61},{''A09'',80},{''A10'',71}},m;11 int i;void NONO();12 printf(''***** The original data *****\n'');13 for(i=0;i<N;i++)printf(''No=%s Mark=%d\n'',a[i].num,a[i].s);14 fun(a,18 }19 void NONO()20 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */21 FILE *rf,*wf;22 STU a[N],m;23 int i;24 rf=fopen(''in.dat'',''r'');25 wf=fopen(''out.dat'',''w'');26 for(i=0;i<10;i++)fscanf(rf,''%s %d'',a[i].mum,&a[i].s);27 fun(a,&m);28 fprintf(wf,''The lowest:%s,%d\n'',m.num,m.s);29 fclose(rf);30 fclose(wf);}
问答题给定程序modi1.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1 #include<stdio.h>2 typedef struct list3 { int data;4 struct list *next;5 }LIST;6 int fun(LIST *h)7 {LIST *p;8 /**********found**********/9 int t;10 p=h;11 /**********found**********/12 while(*p) }13 {14 /**********found**********/15 t=t+p.data;16 p=(*p).next;17 }18 return t;19 }20 main()21 { LIST a,b,c,*h;22 a.data=34;b.data=51;23 c.data=87;c.next='\0';24 h=&a;a.next=&b;b.next=&c;25 printf(''总和=%d\n'',fun(h));26 }
问答题函数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");
