问答题下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为eh的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<stdlib.h>#define N 8typedef struet list int data; struet list*next;}SLIST;SLIST*creatlist(char*);void ouflist(SLIST});int fun(SLIST*h,char ch){ SLIST*P;int n=0; P=h一>next;/******found******/while(P!=__1__){ n++: if(P一>data:=ch)/******found******/ return __2__; else P=P一>next: } return 0;}main()i SLIST$head:int k;char eh; chae:a[N]=;‘m’,‘P’,’g‘,’a’,‘w’; ‘x’.‘r’,‘d’;; head:creatlist(a); outhst(nead); printf(“Enter a letter:”); scanf(“%c,&chj: k:fun(___3___); if (k==0) prinff(“\nNot found!\n”); else onnff(The sequence number is:%d\n”,k):}SLIST*creatlist(char*a){ SLIST*h,*P,*q;int i;h=P=(SLIST*)malloe(sizeof(SLIST));for(i=0;i<N;i++){ q=(SLIST*)malloc(sizeof(SLIST)); q一>data=a[i]; P一>next=q; p=q;}P一>next=0:return h:}void outlist(SLIST*h){SLIST*p;P=h一>next;if(P==NULL) prinff(“\nThe list is NULL!\n”); else { printf(“\nHead”); do { prinff(“一>%c”,P一>data); P=p一>next; }while(P!=NULL); printf(“一>End\n”); }}
问答题函数fun的功能是将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12时,调用该函数后,c=5241。
注意:部分源程序存在文件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);
}
问答题给定程序modil.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>typedef struct list{int data; struct list*next;}LIST;int fun(LIST*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,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。 注意:部分源程序存在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>char *fun (char *s, char *t){}main (){ char a[20] ,b[20] ;void NONO () ;printf("Input 1th string:");gets(a) ;printf("Input 2th string:");gets(b);printf("%s/n",fun (a, b) ) ;NONO ();}void NONO (){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *fp, *wf ; int i ;char a[20], b[20] ; fp = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s %s", a, b); fprintf(wf, "%s/n", fun(a, b)); }fclose(fp); fclose(wf); }
问答题给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include/************found************/intfun(n){intc;/************found************/if(n=l)c=10;elsec=fun(n-l)+2;return(c);}main(){intn;printf("Entern:");scanf("%d",printf("Theresult:%d/n/n",fun(n));}
问答题填空题
请补充main函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
main()
{
long int n;
clrscr();
printf("Enter the data;/n");
scanf(【1】);
printf("*** the absolute value ***/n");
if(n<0)
【2】
printf("/n/n");
printf(【3】);
}
问答题请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。
例如,当a=16,b=35,调用该函数后,c=5361。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
void fun(int a,int b/long*c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf("Input a,b;");
scanf("%d%d",&a,&b);
fun(a,b,&c);
printf("The result is:%ld/n",c);
}
问答题请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如:若输入17,则应输出9和4,6,8,9,10,12,14,15,16。
注意:部分源程序在文件PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
文件PROG1.C内容如下:
#include<stdio.h>
void fun(int m,int *k,int xx[])
{
}
void main{{U}} {{/U}}{
int m,n,zz[100];
printf("/nPlease enter an integer number between 10 and 100:");
scanf("%d",&n);
fun(n,&m,zz);
printf("/nThere are%d non-prime numbers less than%d:/n",m,n);
for(n=0;n<m;n++)printf("%4d",zz[n]);
printf("/n"):
}
问答题下列给定程序中,函数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==15)
{ 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 result is:%d\n",fun(x));
}
问答题请编写一个函数int fun (int *s,int t,int *k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:
234 345 753 134 436 458 100 321 135 760
则输出结果为6,100。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
int fun(int *s,int t,int *k)
{
}
main()
{
int a[10]={234,345,753,134,436,458,
100,321,
135,760),k;
clrscr();
fun(a,10,&k);
printf("%dr %d/n", k, a[k]);
}
问答题请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第1到第m个字符,平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。
例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串中的内容应该是: DEFGHIJKABC。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 80
void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */
{
int i; char t;
t=w[0];
for(i=0;i
问答题请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):程序运行后,如果输入精度0.0005,则程序输出为3.14…。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include<stdio.h>#include<math.h>doublefun(doubleeps){}main(){doublex;printf("Inputeps:");scanf("%lf",printf("/neps=%lf,PI=%lf/n",x,fun(x));}
问答题请编写函数fun(),其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新中放在t所指的数组中。 例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的 ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<string.h> void fun(char*s,char t[]) main() char s[100],t[100]; clrscr(); printf("/nPlease enter string S:"); scanf("%s",s); fun(s,t); printf("/nThe result is:%s/n",t);
问答题N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出平均分,并由函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序 #include <stdlib.h> #include <stdio.h> #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 (i<N) q=(STREC *)malloc (sizeof (STREC)); q->s=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.1f ", p->s); p=p->next; /*输出成绩* / while (p !=NULL); printf ("/n/n"); void main () double s[N]=85, 76, 69, 85, 91, 72, 64, 87 , ave; STREC * h; h=creat (s); outlist (h); ave=fun (h); printf("ave=% 6.3f/n", ave);
问答题编写程序,实现矩阵(3行、3列)的转置(即行列互换)。例如,若输入下面的矩阵:则程序输出:注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<Conio.h>#include<stdlib.h>voidfun(intarray[3][3]){}voidmain(){FILE*wf;inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};system("CLS");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("/n");}fun(array);printf("Convertedarray:/n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("/n");}/*********found*********/wf=fopen("out.dat","w");for(i=0;i<3;i++){for(j=0;j<3;j++)fprintf(wf,"%7d",array[i][j]);fprintf(wf,"/n");}fclose(wf);/*********found*********/}
问答题下列给定程序中,函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MOD11.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>#defineM10inta[M][M]={0};/*********found*********/voidfun(int**a,intm){intj,k;for(j=0;j<m;j++)for(k=0;k<m;k++)/*********found*********/a[j][k]=k*j;}main(){inti,j,n;printf("Entern:");scanf("%d",&n);fun(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("/n");}}
问答题请编写一个函数void fun(int m,intk,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。 例如,若输入17,5,则应输出19、23、29、31、37。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#incJude < conio.h >#2nclude < stdio.h >#include < stdlib.h >void fun(int m,int k,int xx[]){}void main(){ FTLE * wf; int m,n,zz[1 0 0 0]; system("CLS"); printf"/nPlease enter two integers:"); scanf("%d%d",&m,&n); fun(m,n,z z); for(m=0;m < n;m++) printf("%d",zz[m]);printf("/n");/*********found*********/ wf=fopen("out.dat","w"); fun(1 7,5,zz); for(m=0;m < 5;m++) fprintf(wf,"%d",zz[m]); fclose(wf);/*********found*********/}
问答题编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。 例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include < stdlib.h >#include < conio.h >#include < stdio.h >void fun(int m,int*k,int xx []){}void main(){ int m,n,zz[100]; system("CLS"); printf ("/nPlease enter aninteger number between 10and 100;"); scanf("%d",&n); fun(n,&m,zz); printf("/n/nThere are%dnon—prime numbers less than%d:",m,n); for(n=0;n < m;n++) printf("/n%4 d",zz[n]);}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:“* * * *A*BC*DEF*G* * * * * * *",删除后,字符串中的内容应当是:“* * * *ABCDEFG”。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void fun(char*a)
}
}
main( )
{char 8[81];void NONO();
printf("Enter a string:/n");gets(s);
fun(s);
printf("The string after deleted:/n");puts(s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE * in, *out;
int i;char s[81];
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<10;i++)
{
fscanf(in,"%s",s);
fun(s);
fpfintf(out,"%s/n",s);
}
fclose(in);
fclose(out);
}
问答题给定程序中,函数fun的功能是:在形参SS所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 #define N 54 #define M 105 int fun(char(*ss)[M],int k)6 {int i,j=0,len;7 /**********found**********/8 for(i=0 ; i<_1_;i++)9 { len=strlen(ss[i]);10 /**********found**********/11 if(len<= __2__)12 /**********found***********/13 strcpy(ss[j++],__3___);}14 return j;}15 main()16 {char x[N][M]={''Beijing'',''Shanghai'',''Tianj ing'',''Nanj ing'',''Wuhan''};17 int i,f;18 printf(''\nThe original string\n\n'');19 for(i=0;i<N;i++)puts(x[i]);20 printf(''\n'');21 f=fun(x,7);22 printf(''The string witch length is less than or equal to 7:\n'');23 for(i=0;i<f;i++) puts(x[i]);24 printf(''\n'');}