问答题给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include<stdio.h>void fun(int *px,int *py){/**********found**********/int 【1】 ;scanf("%d",&k);/**********found**********/while 【2】{if(k>0)a++; if(k<0)c++;/**********found**********/ 【3】 ;} *px=a;*py=c;}main(){int x,y; fun(&x,&y); printf("x=%d y=%d\n",x,y);}
问答题给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为: 10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < stdlib.h >
#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 if
h = (NODE * ) malloc (sizeof
(NODE));
h 一 >next = NULL;
for(i=0;i < N;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 soroutlist (head) ;
}
问答题给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。 例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 long fun(long num)3 {4 /**********found**********/5 long k;6 do7 { k*=num%10;8 /**********found**********/9 num\=10;10 }while(num);11 return(k);12 }13 main()14 {long n;15 printf(''\nPlease enter a number:'') scanf(''%1d'',&n);16 printf(''\n%1d\n'',fun(n);}
问答题下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intin),该函数的功能是使数组右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#include<string.h>5#defitieN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<N;i++)16{for(j=0;j<N;j++)17{a[i][j]=rand()%20;18printf("%4d",a[i][j]);19}20printf("\n");21}22m=rand()%4;23printf("m=%4d\n",m);24fun(a,m);25printf("THERESULT\n");26for(i=0;i<N;i++)27{for(j=0;j<N;j++)28printf("%4d",a[i][j]);29printf("\n");30}31/*********found*********/32out=fopen("out.dat","w");33for(i=0;i<N;i++)34for(j=0;j<N;j++)35a[i][j]=i*j;36fun(a,8);37for(i=0;i<N;i++)38{for(j=0;j<N;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found*********/44}
问答题请编写函数fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。要求函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出。注意:部分源程序在文件PROG1.C中。请勿改动mmn函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 50#define M 11void fun(int*a,int;*b){}double rnd(){ static t=29,c=217,m=1024,r=0; r=(r*t+c)%m; return((doubZe)r/m);}void main(){ FILE*wf; int age[N],i,d[M]; int b[N]={32,45,15,12,86,49,97,3,44,52,17,95,63}; 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]);/*每行输出10个数*/ 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]);/******************/ wf=fopen("out.dat","w"); fun(b,d); for(i=0;i<10;i++) fprintf(wf,"%4d--%4d:%4d\n",i*10,i*10+9,d[i]); fprintf(wf,"over 100:%4d",d[10]); fcloSe(wf);/******************/}
问答题下列给定程序中,函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码值为偶数的字符依次放入t所指数组中。例如,字符串中的数据为“AABBCCDDEFFF”,则输出应当是“ABBCDDEFF”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>#include<string.h>#define N 80void fun(char*s,char t[]){ int i,j=0; for(i=0;i<(int)strlen(s);i++)/*********found*********/ if(i%2&&s[i]%2==0) t[j++]=s[i];/*********found*********/ t[i]='\0';}main(){ char s[N],t[N]; printf("\nplease enther string s:"); gets(s); fun(s,t); printf("\nThe result is:%s\n",t);}
问答题请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int *a,int *n)3 {5 }6 main()7 { int aa[1000],n,k;8 void NONO();9 fun(aa,&n);10 for (k=0; k<n; k++)11 if((k+1)%10==0)printf(''\n'');12 else printf(''%5d'',aa[k]);13 NONO();}15 void NONO()16 {/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/17 int aa[1000],n,k;18 FILE *fp;19 fp=fopen(''out.dat'',''w'');20 fun(aa,&n);21 for(k=0;k<n;k++)22 if((k+1)%10==0)fprintf(fp,''\n'');23 else fprintf(fp,''%5d'',aa[k]);24 fclose(fp);}
问答题给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。
例如,从主函数输入一个整数:27638496,函数返回值为:26846。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
unsigned long fun (unsigned long n)
{ unsigned long x=0, s, i; int t;
s=n;
/********** found**********/
i=【l】;
/********** found**********/
while (【2】)
{ t=s%10;
if(t%2==0){
/********** found***********/
x=x+t*i; i=【3】;
}
s=s/10;
}
return x;
}
main ()
{ unsigned long n=-l;
while(n>99999999||n<0)
{printf("Please input:(0
问答题下列给定程序中,函数fun的功能是:求S的值。例如,当k为10时,函数的值应为1.533852。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODIl,C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>/*********found*********/fun(intk){intn;floats,w,p,q;n=1;s=1.0;while(n<=k){w=2.0,lcn;p=w一1.0;q=w+1.0;s=s*w*w/p/q;n++;}/*********found*********/returns}voidmain(){system("CLS");printf("%f/n",fun(10));}
问答题给定程序MODI1.C中函数fun的功能是: 计算s所指字符串中含有t所指字符串的数目, 并作为函数值返回。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
#define N 80
int fun(char *s, char *t)
{ int n;
char *p , *r;
n=0;
while ( *s )
{ p=s;
/*********found**********/
r=p;
while(*r)
if(*r==*p) { r++; p++; }
else break;
/*********found**********/
if(*r= 0)
n++;
s++;
}
return n;
}
main()
{ char a[N],b[N]; int m;
printf("/nPlease enter string a : "); gets(a);
printf("/nPlease enter substring b : "); gets( b );
m=fun(a, b);
printf("/nThe result is : m = %d/n",m);
}
问答题请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。 S=1-x+x2/2!-x3/3!+…+(-1*x)n/n! 例如,当n=15,x=0.5时,函数值为0.606531。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<math.h> double fun(double x, int n) main() clrscr(); printf("%f ",fun (0.5,15));
问答题给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
int fun (NODE *h)
{ int max=—1;
NODE *p;
p=h ;
while (p)
{ if(p—>data>max)
max=p—>data;
p=h—>next ;
}
return max;
}
outresult(int s,FILE *pf)
{ fprintf(pf,"/nThe max in
NODE *creatlink(int n. int m)
int i;
h=p= (NODE *) malloc (sizeof (NODE)) ;
h—>data=9999;
for(i=l; idata=rand () %m; s—>next=p—>
next;
p—>next=s; p=p—>next;
p—>next=NULL;
return h;
}
outlink(NODE *h,FILE *pf)
{NODE *p;
p=h—>next;
fprintf (pf,"/nTHE LIST:/n/n HEAD ") ;
while (p)
{ fprintf (pf,"—>%d ",p—>data) ;
p=p—>next; }
fprintf (pf,"/n") ;
}
main ()
{NODE *head; int m;
head=creatlink (12, 100) ;
outlink (head , stdout) ;
m=fun (head) ;
printf("/nTHE RESULT :/n");
outresult (m, stdout) ;
}
问答题请编写函数proc(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
1 1 2 2 2 3 4 4 5 6 6 6 6 7 7 8
9 9 10 10 10 10
删除后,数组中的内容应该是:
1 2 3 4 5 6 7 8 9 10
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define M 80
int proc(int a[],int n)
{
}
void main()
{
int arr[M]={1,1,2,2,2,3,4,4.5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=22;
printf("The original data:/n");
for(i=0;i<n;i++)
printf("%3d",arr[i]);
n=proc(arr,n);
printf("/n/nYhe data after deleted
:/n");
for(i=0;i<n;i++)
printf("%3d",arr[i]);
printf("/n/n");
}
问答题编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串:
FirstString--
SecondString
程序输出:
FirstString--SecondString
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include <stdio.h>
void fun(char p1[],char p2[])
{
}
main()
{ char s1[80],s2[40];
printf("Enter s1 and s2:/n");
scanf("%s%s",s1,s2);
printf("s1=%s/n",s1);
printf("s2=%s/n",s2);
printf("Invoke fun(s1,s2):/n");
fun(s1,s2);
printf("After invoking:/n");
printf("%s/n",s1);
}
问答题函数fun的功能是将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并方式是将a中的十位和个位数依次放在变量a的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12时,调用该函数后,c=4251。
注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。给定源程序如下。
#include<stdio.h>
void fun(int a,int b,long*c)
{
}
main()
{ int a,b;long c;
printf("Input a b:");
scanf("%d%d",
fun(a,b,
printf("The result is:%ld/n",c);
}
问答题编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#define MAX 100
int fun(int lim, int aa[MAX])
{
/*以下代码仅供参考*/
int i, j, k=0;
/*其中变量k用于统计素数个数*/
for(i=2; i<=lim; i++)
{
/*以下找出小于或等于lim的素数存入aa数组中并统计素数个数*/
}
return k;
}
main()
{
int limit, i, sum;
int aa[MAX];
printf("输入一个整数:");
scanf("%d",
sum=fun(limit, aa);
for(i=0; i<sum; i++){
if(i%10==0
printf("%5d", aa[i]);
}
}
问答题给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<stdlib.h>3 #define N 84 typedef struct list5 { int data;6 struct list *next;7 } SLIST;8 void fun(SLIST *p)9 { SLIST *t,*s;10 t=p->next;s=p;11 while(t->next!=NULL)12 { s=t;13 /**********found**********/14 t=t->__1__;15 }16 /**********found**********/17 printf(''%d'',__2___ );18 s->next=NULL;19 /**********found**********/20 free( __3__ );21 }22 SLIST *creatlist(int *a)23 {SLIST *h,*p,*q;int i;24 h=p(SLIST*)malloc(sizeof(SLIST));25 for(i=0;i<N;i++)26 {q=(SLIST *)malloc(sizeof(SLIST));27 q->data=a[i];p->next=q;p=q;28 }29 p->next=0;30 return h;31 }32 void outlist(SLIST *h)33 {SLIST *p;34 p=h->next;35 if (p==NULL)printf(''\nThe list is NULL!\n'');36 else37 { printf(''\nHead'');38 do { printf(''->%d'',p->data);p=p->next;} while(p!=NULL);39 printf(''->End\n'');40 }41 }42 main()43 { SLIST *head;44 int a[N]={11,12,15,18,19,22,25,29};45 head=creatlist(a);46 printf(''\nOutput from head:\n'');outlist(head);47 printf(''\nOutput from tail:\n'');48 while(head->next!=NULL){49 fun(head);50 printf(''\n\n'');51 printf(''\nOutput from head again:\n'');outlist(head);52 }53 }
问答题请编写一个函数proc(),它的功能是:比较2个字符串的长度(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。若2个字符串长度相等,则返回第1个字符串。
例如,输入shanghai<CR>hebei<CR>(<CR>为Enter键),函数将返回hebei。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
char*proc(char*str, char*1)
{
}
void main()
{
char a[20], b[10];
printf("Input 1th string: ");
gets(a);
printf("Input 2th string: ");
gets(b);
printf("%s", proc(a, b));
}
问答题请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应是:
33 33 33 33 44 44 44 44 55 55 55 55。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
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,&n,3,4);
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] [101,a[100],n=0,mm,nn;
rf = fopen ("in.dat","r");
wf= fopen ("out.dat","w");
for(k= 0 ; k< 5 ; k++) {
fscanf(rf,"%(i %d",&mmr &nn);
for(i=0 ; i
问答题请编一个函数void proc(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define M 3
#define N 4
void proc(int tt[M][N], int pp[N])
{
}
void main()
{
int str[M][N]={{34, 56, 84, 78},
{23, 84, 93, 12},
{28, 38, 39, 93}};
int p[N], i, j, k;
system("CLS");
printf("The riginal data is: /n");
for(i=0; i<M; i++)
{
for(j=0; j<N; j++)
printf("%6d", str[i][j]);
printf("/n");
}
proc(str, p);
printf("/nThe result is: /n");
for(k=0; k<M; k++)
printf("%4d", p[k]);
printf("/n"); }
