问答题给定程序MODI1.C中 fun 函数的功能是:求
s = aa… aa - ... - aaa - aa - a
(此处 aa… aa 表示 n 个 a, a 和 n 的值在 1 至 9 之间)
例如 a = 3, n = 6, 则以上表达式为:
s = 333333 - 33333 - 3333 - 333 - 33 - 3
其值是:296298
a 和 n 是 fun 函数的形参,表达式的值作为函数值传回 main函数。
请改正程序中的错误,使它能计算出正确的结果。
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
long fun (int a, int n)
{ int j ;
/**************found**************/
long s = 0, t = 1 ;
for ( j = 0 ; j < n ; j++)
t = t * 10 + a ;
s = t ;
for ( j = 1 ; j < n ; j++) {
/**************found**************/
t = t % 10 ;
s = s - t ;
}
return(s) ;
}
main( )
{ int a, n ;
printf( "/nPlease enter a and n:") ;
scanf( "%d%d",
printf( "The value of function is: %ld/n", fun ( a, n ) );
}
问答题给定程序中,函数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;
/**********found**********/
p = __1__ ;
while (p) {
/**********found**********/
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;
for(i=0; i
{ 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 NULL!/n");
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, 8, 6 };
head=creatlist(a);
printf("/nThe original list:/n");
outlist(head);
fun(head);
printf("/nThe list after sorting :/n");
outlist(head);
}
问答题给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:7654321时,t中的数为:7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 /**********found**********/3 void fun(long s,long t)4 { long s1=10;5 *t=s%10;6 while(s>0)7 { s=s/100;8 *t=s%10 * s1+*t,9 /**********found**********/10 s1=s1*100;11 }12 }13 main()14 {long s,t;15 printf(''\nPlease enter s:''); scanf(''%ld'',&s);16 fun(s,&t);17 printf(''The result is:%1d\n'',t);18 }
问答题下列给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参c所指的变量中,最后在主函数中输出。 例如, 若形参s所指的字符串为“abcdef35adah3kjsdf7”,则输出结果为4。 请在下划线处填入正确内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> void fun(char*s,int*t) int i,n; n=0; /********found********/ for(i=0; (1) =0;i++) /********found********/ if(s[il>='0' /********found********/ (3) main() char s[80]="abcdef35adgh3kjsdf7"; int t; printf("/nThe original string is:%s/n",s); fun(s, printf("/nThe result is:%d/n"t);
问答题给定程序modil.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>typedef struet list{int data;struet list*next;}LIST;int fun(UST*h){LIST*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.data=87;C.next='\0';h=&a;a)next=&b;b.next=&c;printf("总和=%d\n",fun(h));}
问答题下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 8
typedef struct list
{ int data;
struer liSt*next;
}SLIST;
void fun(SLIST *h,int x)
{ SLISTp,*q,*s;
s=(SLIST*)malloc(Sizeof (SLIST));
/*********found*********/
S->data=
【1】
;
q=h;
P=h->next;
while(p!=NULL&&x>p->data){
/*********found*********/
q=
【2】
;
p=p->next;
}
s->next=p;
/*********found*********/
q->next=
【3】
;
}
SLIST * creatlist(int*a)
{ SLIST*h,*P,*q;int i ;
h=P=(SLIST*)malloc(sizeof(SLIST));
for(i=0;i<N;i++)
{q=(SLIST*)malloc(sizeof(SLIST));
q->data=a[i];P->nexL=q;p=q;
}
p->nexL=0 ;
return h;
}
void outlist(SLIST*h)
{ SLIST*P;
P=h->next;
if(P==NULL)
printf("\nThe list is NULL!\n");
else
{ printf("\nHead");
do{printf("->%d",P->
data);
P=P->next;
}while(p!=NULL);
printf("->End\n");
}
}
main()
{ SLIST*head; int X;
int a[N]={11,12,15,18,19,22,25,29);
head=treatlist(a);
printf("\nThe list before inserting:\n");
outlist(head);
printf("\nEnter a number: ");
scanf("%d",&x);
fun(head,x);
printf("\nThe list after inserting:\n");
outliSt(head);
}
问答题给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
void fun(char *s)
{ int i,j;
for(i=0,j=0; s[i]!='\0'; i++)
if(s[i]>='0'
s[j]="\0";
}
main()
{ char item[80];
printf("\nEnter a string : ");gets(item);
printf("\n\nThe string is : \"%s\"\n",item);
fun(item);
printf("\n\nThe string of changing is : \"%s\"\n",item );
}
问答题请编—个函数float fun( double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。 例如,若h值为1234, 567,则函数返回1234. 570000;若h值为1234.564,则函数返回1234. 560000。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#include < coni < *h >#include < stdlib.h >float fun (float h ){}void main (){ FILE *wf; float a; system ("CLS") ; printf ("Enter a: ") ; scanf ("% f"f &a) ; printf "The original data is : ") ; printf ("% f/n/n", a) : printf ("The result:%f/n", fun(a));/*********found*********/wf = fopen "out.dat", "w") :fprintf (wf, "f% f", fun (8.32533));fclose (wf) ;/*********found*********/}
问答题下列给定程序中,函数fun的功能是:找出100一x(x≤999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294 、 339 、 348 、 357 、 366 、 375、384 、 393,429 、 438 、 447 、456、465、474、483、492,共有26个。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
int fun(int x)
{ int n , s1 , s2 , s3 , t;
/*********found*********/
n=
【1】
;
t=100;
/*********found*********/
while(t < =
【2】
)
{s1=t%10;s2=(t/10)%10;
s3=t/100;
if(s1+s2+s3==1 5)
{printf("%d',t);
n++;
}
/*********found*********/
【3】
;
}
return n;
}
main()
{ int x=一1;
while(x >999 ||x < 0)
{printf("Please input(0 < x < =999):");
scanf("%d",&x);}
printf("/nThe resultis:%d/n",fun(x));
}
问答题下列给定程序的功能是:读入一个整数k(2≤k≤10000),输出它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2,3,5,7,11。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程存的结构!试题程序:
问答题程序定义了N×N的二维数组,并在主函数中自动赋值。
请编写函数fun(int a[][N],int n),该函数的功能是使数组左下半三角元素中的值加上n。
例如:若n的值为3,a数组中的值为
a=2 5 4
1 6 9
5 3 7
则返回主程序后a数组中的值应为
5 5 4
4 9 9
8 6 10
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数full的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define N 5
fun(int a[][N],int n)
{
}
main()
{
int a[N][N],n,i,j;
clrscr();
printf("***** The array *****/n");
for(i=0;i<N;i++)
/*产生—个随机5*5矩阵*/
{
for(j=0;j<N;j++)
{
a[i][j]=rand()%10;
printf("%4d",a[i][j]);
}
printf("/n");
}
do
n=rand()%10;
/*产生一个小于5的随机数n*/
while(n>=5);
printf("n=%4d/n",n);
fun(a,n);
printf("*****THE RESULT*****/n");
for(i=0;i<N;i++)
{
for(j=0;j<N;i++)
printf("%4d",a[i][j]);
printf("/n");
}
}
问答题请编写函数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。部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdiO.h>
#define N 80
void fun(int *w,int p,int n)
{
}
main()
{in[ a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
printf("The odginal data:/n");
for(i=0;i<n;i++)printf("%3d",a[i]);
printf("/nEnter p:");
scanf("%d",&p);
fun(a,p,n);
printf ("/n The data after moving:/n");
for(i=0;i<n;i++)printf("%3d”,a[i]);
}
问答题给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#define SIZE 20
fun (double *s, double *w)
{ int k,i; double sum;
for ( k=2,i=0;i
问答题下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<math.h>#include<sfdio.h>floatfun(floatnum)ints;floatn,t,pi;f=1;pi=0;n=1;s=1;/*******found********/while(t>=num)pi=pi+t;n=n+2;s=-s;/********found********/t=s%n;pi=pi*4;returnpi;voidmain()floatn1,n2;system("CLS");printf("Enterafloatnumber:");scanf("%fn2=fun(n1);printf("%6.4f/n",n2);
问答题请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放存主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define N 50
#define M 11
void fun(int *a,int *b)
{
}
double rnd()
{static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m;return((double)r/m);
}
main()
{int age[N],i,d[M];
for(i=0;i<N;i++)age[i]=(int)(115*rnd());
printf("The original data:/n");
for(i=0;i<N;i++)printf((i+1)%10==0?"%4d/n":"%4d",age[i]);
printf("/n/n");
fun(age,d);
for(i=0;i<10;i++)printf("%4d---%4d:%4d/n",i*10,i*10+9,d[i]);
printf("Over 100:%4d/n",d[10]);
}
问答题给定程序中,函数fun的功能是:
用函数指针指向要调用的函数,并进行调用。
规定在
【2】
处使f指向函数f1,在
【3】
处使f指向函数f2。
当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2= 40.000000。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio .h >
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 r1, r2;
/*********found*********/
f=
【2】
;
r1=f(a);
/*********found*********/
f=
【3】
;
r2=(*f)(a,b);
return r1 + r2;
}
main ()
{ double x1 =5, x2 =3, r,
r = fun (xl, x2);
printf ("/nx1 = % f, x2 = % f,
x1 * x1 +x1 * x2 = % f/n",x1, x2, r) ;
}
问答题请编写函数,删除字符串中指定位置(下标)上的字符。删除成功函数返回被删字符;否则返回空值。
问答题
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
#define N 12
typedef struct
{ char num[10];
double s;
} STREC;
double fun(STREC *a,STREC *b,int *n)
{
}
main()
{STREC s[N]={{"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[N],t;FILE *out;
int i,j,n;double ave;
ave=fun(s,h,
printf("The %d student data which is higher 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");
out=fopen("out.dat","w");
fprintf(out,"%d/n%7.3f/n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(h[i].s<h[j].s) { t=h[i];h[i]=h[j];h[j]=t;}
for(i=0;i<n;i++)
fprintf(out,"%4.1f/n",h[i].s);
fclose(out);
}
问答题下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若s所指字符串为“baacda”,c中的字符为a,执行后s所指字符串为“baaaacalaa”。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> void fun(char*s,char c) int i,j,n; /********found********/ for(i=0;s[i]!= (1) ;i++) if(s[i]==c) /********found********/ n= (2) ; while(s[i+1+n]!='/0')n++; for(j=i+n+1;j>i;j--) s[j+1]=s[j]; /********found********/ s[j+1]= (3) ; j=i+1; main() char s[80]="baacda",c; printf("/nThe string:%s/n,s); pnntf("/nInput a character:"); scanf("%c", fun(s,c); printf("/nThe result is:%s/n",s);
问答题给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。例如,若m中的值为5,则应输出:1.463611。请改正程序中的错误,使它能得到正确结果。[注意]不要改动main函数,不得增行或删行,也不得更改程序的结构。[试题源程序]#include<stdi0.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%1f/n",fun(n));
