问答题下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。例如,若输入5,则应输出一0.283333。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:1#include<stdlib.h>2#include<conio.h>3#include<stdio.h>4doublefun(intm)5{6doublet=1.0;7inti;8for(i=2;i<=m;i++)9/*********found*********/10t=1.0—1/i;11/*********found*********/12;13}14voidmain()15{intm;16system("CLS");17printf("\nPleaseenter1integetnumbers:\n");18scanf("%d",&m);19printf("\n\nTheresultis%1f\n",20fun(m));21}
问答题给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 6
typedef struct node {
int data;
struct node *next;
} NODE;
void fun (NODE *h)
{NODE *p,*q; int t;
while (p) {
q=____2____;
while (q) {
/*********found**********/
if (p—>data ____3____ q—>data)
{ t — p—>data; p—>data = q—>
data; q=>data = t; }
q = q—>next;
}
p= p—>next;
}
}
NODE *creatlist (int a [ ] )
{NODE *h,*p,*q; int i;
h= (NODE *) malloc (sizeof (NODE)) ;
h—>next = NULL;
{ q= (NODE *) malloc (sizeof (NODE)) ;
q—>data=a [i] ;
q—>next = NULL;
if (h—>next == NULL) h—>next =
p = q;
else {p—>next = q; p = q; }
}
return h;
}
void outlist (NODE *h)
{NODE *p;
p = h—>next;
if (p==NULL) printf("The list is
else
{ printf ("/nHead ") ;
do
{ printf("—>%d",p—>data) ; p=p
—>next; }
while (p ! =NULL) ;
printf ("—>End/n") ;
}
}
main ()
{NODE *head;
int a[N]= {0,10,4,2,8f 6 };
head=creatlist (a) ;
printf ("/nThe original list:/n") ;
outlist (head) ;
fun (head) ;
printf ("/nThe list after sorting:
outlist (head) ;
}
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为:10004、"Lijie"、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
struct student {
long sno;
char name [10] ;
float score [3];
};
void fun (struct student *b)
{
/**********found**********/
b ____1____ =10004;
/**********found**********/
strcpy (b____2____, "Lijie") ;
main ()
{ struct student t={10002,
"ZhangQi",93,85,87} ;
int i;
printf ("/n/nThe original data:/nf') ;
printf("/nNo: %ld Name: %s/nScores:
",t.sno, t.name) ;
for (i=0; i<3; 1++) printf ( " %6 . 2 f printf ("/n") ;
/**********found**********/
fun (____3____ ) f
printf("/nThe data after modified:
printf("/nNo: oold Name: %s/nScores:
",t.sno, t.name) ;
for (i=0; i<3f i++) printf("%6.2f
printf ("/n") ;
}
问答题学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define M 12
typedef struct
{cbar num[10];
double s;
}
STREC;
douhle proc(STREC*a, STREC*b, int*n)
{
}
void main()
{
STREC stu[M]={{"GA05", 85}, {"GA03", 76}, {"GA02", 69}, {"GA04", 85}, {"GA01", 91},{"GA07", 72}, {"GA08", 64}, {"GA06", 87},{"GA09", 60}, {"GA11", 79}, {"GA12", 73},{"GA10", 90}};
STREC h[M];
int i, n;
double ave;
ave=proc(stu, h,
printf("The%d student data which ishigher 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");
}
问答题给定程序modil.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include<stdio.h>typedef struct list{int data;struct list *next;}LTST;int fun(LIST *h){LTST *p;/**********found**********/ int t; p=h;/**********found**********/while(*p){/**********found**********/ t=t+p.data; p=(*p).next; } return t;}main()(LIST a,b,c,*h;a.data=34;b.data=51;c.clara=87;c.next='\0';h=&a;a.next=&b;b.next=&c;printf("总和=%d\n",fun(h));}
问答题下列给定程序中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放人pt所指存储区中。例如:把3个串“abc”、“CD”、“EF”连接起来,结果是“abcCDEF”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:
问答题给定程序MODII.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为:4(平均分为:75.5625)。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define N 20
int fun (float *s, int n, float
*aver)
{ float ave, t = 0.0 ;
int count =0, k, i ;
for (k = 0 ; k < n ; k++)
/********** found**********/
t = s[k] ;
ave = t / n ;
for (i = 0 ; i < n ; i++)
if (s[i] < ave) count++ ;
/********** found**********/
*aver = Ave ;
return count ;
}
main()
{ float s[30], aver ;
int m, i ;
printf ("/nPlease enter m: ");
scanf ("%d",
printf ("/nPlease enter %d mark:
/n ", m);
for(i = 0 ; i < m ; i++)
scanf ("%f", s + i) ;
printf("/nThe number of
students:%d/n",fun (s, m, saver));
printf("Ave = %f/n", aver);
}
问答题请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入"abc4Efg",则应输出"aBc4EFg"。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < stdio.h >#include < string.h >#include < stdlib.h >void fun(char*ss){}void main(){ FILE*wf; char tt[81],s[81]="abc4Efg"; system("CLS"); printf("/nPlease enter an stringwithin 80 characters:/n"); gets(tt); printf("/n/nAfter changing,the string/n%s",tt); fun(tt); printf("/nbecomes/n%s/n",tt);/******************/ wf=fopen("out.dat","W"); fun(s); fprintf(wf,"%s",s); fclose(wf);/******************/}
问答题下列给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之前,并保持数字字符串和非数字字符串原有的次序。
例如,s所指的字符串为“def35adh3kjsdf7”,执行后结果为“3537defadhkjsdf”。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!
#include
void fun(char*s) {int i,j=0,k=0;char t1[80],t2[80]; for(i=0;s[i]!='\0';i++) if(s[i]>='0'&&s[i]<='9') { /**********found**********/ t2[j]=s[i];【1】; } else t1[k++]=s[i]; t2[j]=0;t1[k]=0; /**********found**********/ for(i=0;i<k;i++)【2】; /**********found**********/ for(i=0;i<【3】;i++)s[k+i]=t2[i]; } void main() {char s[80]=''ba3a54j7sd567sdffs''; printf(''\nThe original string is:%s\n'',s); fun(s); printf(''\nThe result is:%s\n'',s); }
问答题给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请修改程序中的错误,使它能得出正确的结果。
#include<stdio.h>
#defineN 20
void fun(int a[],int n)
{int i,j,t,p;
for(j=0;j<n-1;j++){
/**********found**********/
P=j
for(i=j;i<n;i++)
if(a[i]<a[p])
/**********found**********/
P=j;
t=a[p];a[p]=a[j];a[j]=t;
}
}
main()
{
int a[N]={9,6,8,3,-1},i,m=5;
printf("排序前的数据:");
for(i=0;i<m;i++)printf("%d",a[i]);printf("/n");
fun(a,m);
printf("排序后的数据:");
for(i=0;i<m;i++)printf("%d",a[i]);printf("/n");
}
问答题函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s所指串中剩余的字符形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCII码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是“BDF12345”。
请勿改动主函数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的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。
例如,形参s所指的字符串为:abedefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#defiFte N 80
void fun(char*s,int n,char,*t)
{ intz len,i,j=0;
len=strlen(s);
/*********found*********/
if(n>=len)strcpy(
【1】
);
else {
/*********found*********/
for(i=len—n;i<=len-1;i++)
t[j++]=
【2】
;
/*********found*********/
t[j]=
【3】
;
}
}
main()
{char s[N],t[N];int n;
printf("Enter a string:");
gets(s);
printf("Enter n:");
scanf("%d",&n);
fun(s,n,t);
printf("The string t:");
puts(t);
}
问答题给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(int *x,int y)
{ int t ;
/********** found**********/
t = x ; x = y ;
/********** found* *********/
return(y);
}
main ()
{ int a = 3, b = 8 ;
printf("%d %d/n", a, b);
b = fun(
printf("%d %d\n",a,b);
}
问答题请编写函数proc(),其功能是:计算并输出下列多项式值。
S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)
例如,若主函数从键盘给n输入100后,则输出为S=5.878031。
n的值要求大于1但不大于100。
注意:部分源程序给出如下。
请勿改动主函数main()和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
double proc(int n)
{
}
void main()
{
int n;
double sum;
printf("/nInput n:");
scanf("%d",
sum=proc(n);
printf("/ns=%f/n",sum);
}
问答题请编写函数fun,函数的功能是:将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。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int s[][10],int b[],int*n,int mm,int nn)3 {4 }5 main()6 {int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;7 int a[100]=(0),n=0;void NONO();8 printf(''The matrix:\n'');9 for(i=0; i<3;i++)10 {for(j=0;j<4;j++) printf(''%3d'',w[i][j]);11 printf(''\n'');}12 fun(w,a,&n,3,4);13 printf(''The A array:\n'');14 for(i=0;i<n;i++) printf(''%3d'',a[i]);printf(''\n\n'');15 NONO();}16 void NONO()17 {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */18 FILE *rf,*wf;int i,j,k;19 int w[10][10],a[100],n=0,mm,nn;20 rf=fopen(''in.dat'',''r'');21 wf=fopen(''out.dat'',''w'');22 for(k=0;k<5;k++){23 fscanf(rf,''%d%d'', j<nn ; j++) fscanf(rf,''%d'',&w[i][j]);26 fun(w,a,&n,mm,nn);27 for(i=0;i<n;i++) fprintf(wf,''%3d'',a[i]); fprintf(wf,''\n'');28 }29 fclose(rf);fclose(wf);}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。
例如,若a所指数组中的数据最初排列为:9,1, 4,2,3,6,5,8,7;则按规则移动后,数据排列为:1,9, 2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。
规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#define N 9
void fun(int a[],int n)
{int i l J r max t min f px f pn,t;
for(i=0;i < n一1;i+=2)
{
/*********found*********/
max=min=
【1】
;
px=pn=i;
for(j=i+1;j < n;j++) {
/*********found*********/
if(max <
【2】
)
{max=a[j];px=j;)
/*********found*********/
if(min >
【3】
)
{min=a[j];pn=j;)
}
if(pn!=i)
(t=a[i];a[i]一min;a[pn]=t;
if(px==i)px=pn;
}
if(px!=i+1)
( t=a[i+1];a[i+1]=max;
a[px]=t;)
}
}
void main()
{ int b[N]=(9,1,4,2,3,6,5,8,7},i,
printf("/nThe original data:
/n"),
for(i=0;i < N;i++)
printf("%4 d",b[i]);
printf("/n");
fun(b,N);
printf("/nThe data after
moving:/n");
for(i=0;i < N;i++)
printti("%4 d",b[i]);
printi("/n");
}
问答题给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:函数返回指定成绩的学生数据,指定的成绩在主函数中输入。若没找到指定的成绩,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<stdio.h> #include<stdlib.h> #define N 16 typedef struct char num[l0]; int s; STREC; STREC fun(STREC *a,int b) main() STREC s[N)="GA005",76,"GA003",89, "GA002",64,"GA004",75,"GA001",88, "GA007",65,"CA008",96,"GA006",69, "GA015",85,"GA013",78,"GA012",62, "GA014",60,"GA011",73,"GA017",72, "GA018",98,"GA016",94; STREC h; int m; int i,n; FILE *out; printf("The original data:/n"); for(i=0;i<N;i++) if(i%4==0) printf("/n"); /*每行输出4个学生记录*/ printf("%s%3d",s[i].num,s[i].s); printf("/n/nEnter the score:"); scanf("%d",&m); h=fun(s,m); printf("The data:"); printf("/n%s %4d/n",h.mum,h.s); printf("/n"); out=fopen("out24.dat","w"); h=fun(s,85); fprintf(out,"%s %4d/n",h.num,h.s); fclose(out);
问答题下列给定程序中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指的数组的尾部。例如,当a所指字符串中的内容为“abc.defg”,b所指字符串中的内容为“1234”时,c所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,c所指数组中的内容应该为“1g2f3e4dcba”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<string.h>void fun(char*a,char*b,char*c){ int i,j;char ch; i=0;j=strlen(b)一1;/******found******/ while(i>j) { ch=b[i];b[i]=b[j];b[j]=eh; 1++;]一一; } while(*a‖*b) {/******found******/ If(*a) { *c= *a;c++;a++;} if($b) {* c=*b;c++;b++;} } *c=0:}main(){char sl[100],s2[100],t[200];prinff(“\nEnter sl string:”);scanf(“%S”,s1);prinff(“\nEnter s2 string:”);scanf(“%s”,s2);fun(s1,s2,t);printf(“\nThe result is:%s\n”,t);}
问答题已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。己给出函数的首部,请完成该函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio. h>
#include<string. h>
#include<aonio .h>
#define N 10
typedef struct ss
{ char num[10];
iht s;
} STU;
fun(STU ail, STU *s)
{
}
main()
{
STU a[N]={ {"A01",81}, {"A02",89},
{ "A03", 66 }, { "A04", 87 }, { "A05", 77 },
{ "A06", 90 }, { "A07", 79}, { "A08", 61 },
{ "A09", 80 ), { "Al 0", 71 } }, m;
int i;
clrscr 0;
printf ("*****The original data*****");
for (i=0; i<N; i++)
printf ("No=%s Mark=%d/n", ail] .num,
a[i] .s);
fun (a,
printf ("*****THE RESULT*****/n");
printf ("The lowest :%s, %d/n",m.num,
m.s);
}
