问答题编写fun,其功能是:实现两个字符串的连接(不要使用库函数strcat)。例如,分别输入下面两个字符串:welcome to beijing程序运行后的输出结果是:welcome to beijing注意:部分源程序文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>void fun(char pl[],char p2[]){}main()char s1[80],s2[40];void File Opr();{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);File Opr();}void File Opr();{/+本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int i;FILE*rf。*wf;char s1[80],s2[40];rf=fopen(''in.dat'',''r'');wf=fopen(''out.dat'',''w'');for(i=0;i<10;i++)fscanf(rf,''%s'',s1);fscanf(rf,''%s'',s2);fun(s1,s2);fprinTf(wf,''%s\n'',s1);fclose(rf);fclose(wf);}
问答题编程题
编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。
例如:n为1000时,函数值应为s=96.979379。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
double fun(int n)
{
}
main()
{
clrscr();
printf("s=%f/n", fun(1000));
}
问答题请编写函数fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void fun(int a[],int n,int*max,int*d)
{
}
void main()
{
int i,x[20],max,index,n=10;
stand((unsigned)time(NULL));
for(i=0;i<=n;i++)
{
x[i]=rand()%50;
printf("%4d",x[i]);
/*输出一个随机数组*/
}
printf("/n");
fun(x,n,
printf("Nax=%5d,Index=%4d/n",max,index);
}
问答题下列给定程序中,函数proc()的功能是:在字符串的最前端加入m个*号,形成新串,并且覆盖原串。
例如,用户输入字符串abcd(以Enter键结束),然后输入m值为3,则结果为***abcd。
注意:字符串的长度最长允许为79。
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
void proc(char str[], int m)
{
char a[80], *p;
int i;
//****found****
str=p;
for(i=0; i<m; i++) a[i]="*";
do
{a[i]=*p;
//****found****
i++;
}
while(*p);
//****found****
a[i]=0;
strcpy(str, a);
}
void main()
{int m; char str[80];
system("CLS");
printf("/nEnter a string: "); gets(str);
printf("/nThe string: %s/n", str);
printf("/nEnter n(number of*): ");
scanf("%d",
proc(str, m);
printf("/nThe string after inster: %s/n", str);
}
问答题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
主函数中输出:46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 10
double fun(double x[],double *y)
{ int i,j; double av;
/**********found**********/
av=【1】;
/**********found**********/
for(i=0; iav) y[【3】]=x[i];
y[j]=-i; return av;
}
main()
{ int i; double x[N],y[N];
for(i=0; i=0; i++)
printf ("%5.1f ",y[i]) ;
printf("/n");
}
问答题请编写一个函数 unsigned fun ( unsigned w ),w 是一个大于10的无符号整数,若 w 是 n (n ≥ 2)位的整数,函数求出w的低 n-1位的数作为函数值返回。
例如:w 值为 5923,则函数返回 923; w 值为 923 则函数返回 23。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
unsigned fun ( unsigned w )
{
}
main( )
{ unsigned x;
printf ( "Enter a unsigned integer number : " ); scanf ( "%u",
printf ( "The original data is : %u/n", x );
if ( x < 10 ) printf ("Data error !");
else printf ( "The result : %u/n", fun ( x ) );
NONO( );
}
问答题编写函数proc(),它的功能是:根据公式求p的值,结果由函数值带回。m与n为两个正数且要求m>n。p=m!/(n!(m-n)!),例如,m=20,n=10时,运行结果为184756.000000。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
float proc(int m,int n)
{
void main()
{
system("CLS");
printf("p=%f/n",proc(20,10));
}
问答题给定程序中,函数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;
p=h;
while(p){
/**********found**********/
q=______;
/**********found**********/
while(______)
{if(p->data>q->data)
{t=p->data; p->data=q->data; q->data=t;}
q=q->next;
}
/**********found**********/
p=______;
}
}
NODE *creatlist(int a[])
{NODE *h, *p, *q; int i;
h=NULL;
for(i=0; i<N; i++)
(q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h==NULL)h=p=q;
else{p->next=q; p=q;}
}
return h;
}
void outlist(NODE *h)
{NODE *p;
p=h;
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 inverting:/n");
outlist(head);
}
问答题给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的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 *h,int x)9 {SLIST *p,*q,*s;10 s=(SLIST *)malloc(sizeof(SLIST));11 /**********found**********/12 s->data= __1_;13 q=h;14 p=h->next;15 while(p!=NULL &&x>p->data){16 /**********found**********/17 q=__2__;18 p=p->next;19 }20 s->next=p;21 /**********found**********/22 q->next=__3___;23 }24 SLIST*creatliSt(int *a)25 {SLIST *h,*p,*q;int i;26 h=p=(SLIST *)malloc(sizeof(SLIST));27 for(i=0;i<N;i++)28 {q=(SLIST *)malloc(sizeof(SLIST));29 q->data=a[i];p->next=q;p=q;30 }31 p->next=0;32 return h;33 }34 void outlist(SLIST *h)35 {SLIST *p;36 p=h->next;37 if(p==NULL)printf(''\nThe list is NULL!\n'');38 else39 {printf(''\nHead'');40 do{ printf(''->%d'',p->data); p=p->next;} while(p!=NULL);41 printf(''->End\n'');42 }43 }44 main()45 {SLIST *head;int x;46 Inta[N]={11,12,15,18,19,22,25,29};47 head=creatlist(a);48 printf(''\nThe list before inserting:\n'');outlist(head);49 printf(''\nEnter a number: ''); scanf(''%d'',&x);50 fun(head,x);51 printf(''\nThe list after inserting:\n'');outlist(head);52 }
问答题请编写函数fun,其功能是:计算并输出当x<0.97时,如下多项式的值,直到|Sn-Sn-1|<0.000001为止。例如,若主函数从键盘给x输入0.21后,则输出为S=1.100000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<math.h>doublefun(doublex){}main(){inti;doublex,s;printf("Inputx");scanf("%lf",s=fun(x);printf("S=%f/n",s);}
问答题编写函数fun,它的功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是:doublelog(doublex)。例如,若m的值为:20,fun函数值为:6.506583。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<math.h>#include<stdio.h>doublefun(intm){}main(){voidNONO();printf("%f/n",fun(20));NONO();}voidNONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*}FILE*fp,*wf;inti,n;doubles;fp=fopen("in.dat","r");wf=fopen("out.dat","w")for(i=0;i<10;i++){fscanf(fp,"%d",s=fun(n);fprintf(wf,"%f/n",s);}fclose(fp);fclose(wf);}
问答题
给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <stdlib.h>
typedef struct aa
{ int data;struct aa *next;}NODE;
int fun(NODE *h)
{ int sum=0;
NODE *p;
/***********found**********/
p=h;
while(p)
{ if(p->data%2==0)
sum +=p->data;
/***********found**********/
p=h->next;
}
return sum;
}
NODE *creatlink(int n)
{NODE *h,*p,*s;
int i;
h=p=(NODE *)malloc(sizeof(NODE));
for(i=1;i<=n;i++)
{ s=(NODE *)malloc(sizeof(NODE));
s->data=rand()%16;
s->next=p->next;
p->next=s;
p=p->next i
}
p->next=NULL;
return h;
}
outlink(NODE *h,FILE *pf)
{NODE *p;
p=h->next;
fprintf(pf,"/n/nTHE LIST:/n/n HEAD");
while (p)
{ fprintf(pf,"->%d",p->data);p=p->next;}
fprintf(pf,"/n");
}
outresult(int s,FILE *pf)
{ fprintf(pf,"/nThe sum of even numbers:%d/n",s);}
main()
{NODE *head;int even;
head=creatlink (12);
head->data=9000;
outlink(head,stdout);
even=fun(head);
printf("/nThe result:/n");
outresult(even,stdout);
}
问答题给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 void fun(char *s)3 { int i,n,k;char c;4 n=0,5 for(i=0;s[i]!='\0';i++)n++;6 /**********found**********/7 if(n%2==0)k=n__1__;8 else k=n-2;9 /**********found**********/10 c=__2__;11 for(i=k-2; i>=1j i=i-2) s[i+2]=s[i];12 /**********found**********/13 s[1]=__3__;14 }15 main()16 { char s[80]=''abcdefgh'';17 printf(''\nThe original string is:%s\n'',s);18 fun(s);19 printf(''\nThe result is:%s\n'',s);20 }
问答题下列给定程序中函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdio.h> 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') t2[j]=s[i]; (1) ; else t1[k++]=s[i]; t2[j]=0; t1[k]=0; for (i=0; i<k; i++) (2) ; for (i=0; i< (3) ; i++) s[k+i]=t2[i]; main () char s [ 80 ]="ba3a54j7sd567sdffs"; printf ("/nThe original string is: % s/n", s); fun (s); printf ("/nThe result is :% s/n", s);
问答题给定程序中,函数fun的功能是:在形参SS所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANKl.C中。 不得增行或删行,也不得更改程序的结构! #include<stdio.h> #include<string.h> #define N 5 #define M 8 int fun(char(*ss)[M],char*t) {int i; /**********found**********/ for(i=0;i<__1__;i++) /**********found**********/ if(strcmp(ss[i],t)==0)return__2__; return-1; } main() {char chIN][M]={"if","while","switch","int","for"},t[M]; int n,i; printf("\nThe original string\n\n"); for(i=0;i<N;i++)puts(ch[i]);printf("\n"); printf("\nEnter a string for search:");gets(t); n=fun(ch,t); /**********found**********/ if(n==__3__)printf("\nDon’t found!\n"); else printf("\nThe position is%d.\n",n); }
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 8
typedef struct
{ int num;
int year,month,day ;
}STU;
int fun(STU *std, STU *k, int year)
{ int i,n=0;
for (i=0; i
/**********found**********/
if( ___1___==year)
/**********found**********/
k[n++]= ___2___;
/**********found**********/
return (___3___);
}
main()
{ STU std[N]={ {1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15},
{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};
STU k[N]; int i,n,year;
printf("Enter a year : "); scanf("%d",
n=fun(std,k,year);
if(n==0)
printf("/nNo person was born in %d /n",year);
else
{ printf("/nThese persons were born in %d /n",year);
for(i=0; i
printf("%d %d-%d-%d/n",k[i].num,k[i].year,k[i].month,k[i].day);
}
}
问答题a=3;
a+=(a<1)?a:1; printf(“%d”,a);
结果是__________。
问答题下列给定程序中,函数fun的功能是:按以下递归公式求函数的值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>/*********found*********/fun(n){intc;/*********found*********/if(n=1)c=10;elsec=fun(n一1)+2;return(c);}main(){intn;printf("Entern:");scanf("%d",&n);printf("Theresult:%d/n/n",fun(n));}
问答题编写函数fun,其功能是:实现B=A+A",即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。例如,程序输出:注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){}voidmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];inti,j;system("CLS");fun(a,t);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%/d",t[i][j]);printf("/n");}}
