问答题给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。
例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
fun (char *str,char *substr)
{ int i,j,k,num=0;
/************found************/
for(i = 0, str[i], i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
If(substr[k+1]=='/0')
{ num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
gets(substr);
printf("%d/n",fun(str,substr));
}
问答题请编写函数fun(),它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在 a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> void fun (int *a,int *n) main() int aa[1000], n, k; clrscr(); fun(aa, for(k=0;k if((k+1)%10==0) printf("%5d",aa[k]); printf("/n"); /*一行写9个数*/ else printf("%5d ",aa[k]);
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组S中。请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
void fun(STREC a[])
{
}
void main()
{
STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},
{"GA004",85},{"GA001",91},{"GA007",72},
{"GA008",64},{"GA006",87},{"GA015",85},
{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},
{"GA016",72}};
int i;
fun(s);
printf("The data after sorted:/n");
for(i=0;i<N;i++){
if(i%4==0)/*每行输出4个学生记录*/
printf("/n");
printf("%s%4d",s[i].num,s[i].s);}
printf("/n");
}
问答题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void fun(int x,int pp[],int*n)
{
}
void main()
{
FILE*wf;
int x,aa[1000],n,i;
system("CLS")j
printf("/nPlease enter an integer number:/n");
scanf("%d",
fun(x,aa,
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("/n");
/*********found*********/
wf=fopen("out.dat","w");
fun(30,aa,
for(i=0;i<n;i++)
fprintf(wf,"%d",aa[i]);
fclose(wf);
/*********found*********/
}
问答题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 5
#define M 15
void fun(char (*ss)[M], char *substr)
{ int i,find=0;
/**********found**********/
for(i=0; i< __1__ ; i++)
/**********found**********/
if( strstr(ss[i], __2__) != NULL )
{ find=1; puts(ss[i]); printf("/n"); }
/**********found**********/
if (find==__3__) printf("/nDon't found!/n");
}
main()
{ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];
int i;
printf("/nThe original string/n/n");
for(i=0;i
printf("/nEnter a string for search : "); gets(str);
fun(x,str);
}
问答题假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:使字符串中前部的*号不得多余m个;若多余m个,则删除多余的*号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为****A*BC*DEF*G****,若m的值为2,删除后,字符串中的内容则应当是**A*BC*DEF*G****;若m的值为4,则字符串中的内容仍为****A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void proc(char*a, int n)
{
}
void main()
{char str[81]; int m;
printf("Enter a string: /n"); gets(str);
printf("Enter m: "); scanf("%d",
proc(str, m);
printf("The string after deleted: /n");
puts(str);
}
问答题编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1#include<stdio.h>2#include<math.h>3doublefun(doublex,intn)4{5}6main()7{voidNONO();8printf(''%f\n'',fun(0.3,10));9NONO();10}11voidNONO()12{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/13FILE*fp,*wf;14inti,n;15doubles,x;16fp=fopen(''in.dat'',''r'');17wf=fopen(''out.dat'',''w'');18for(i=0;i<10;i++){19fscanf(fp,''%if,%d'',&x,22}23fclose(fp);24fclose(wf);}
问答题给定程序MODI1.C的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。 例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 /**********found**********/3 IsPrime(int n);4 { int i,m;5 m=1;6 for(i=2;i<n;i++)7 /**********found**********/8 if !(n%i)9 { m=0;break;}10 return(m);11 }12 main()13 { int j,k;14 printf(''\nPlease enter an integer number between 2 and 10000:'');scanf(''%d'',&k);15 printf(''\n\nThe prime factor(s)of%d is(are):'',k);16 for(j=2;j<=k;j++)17 if((!(k%j))&&(IsPrime(J)) ) printf(''\n%4d'',j);18 printf(''\n'');19 }
问答题编写函数fun,其功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:doublelog(doublex)。例如,若m的值为20,则fun的函数值为6.506583。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#lnclude<stdio.h>#include<math.h>doublefun(intm)voidmain()system("CLS");printf("%f/n",fun(20));
问答题给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在【2】处使fa指向函数f1,在【3】处使fb指向函数f2。当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
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 rl, r2; /**********found**********/
f=【2】; /* point fountion fl */
rl = f(a);
/**********found**********/
f=【3】 ; /* point fountion f2 */
r2 = (*f)(a, b);
return rl + r2;
}
main ()
{ double xl=5, x2=3, r;
r = fun(xl, x2);
printf("/nxl=%f, x2=%f, xl*xl+
xl*x2=%f/n",xl, x2, r);
}
问答题下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件NOD11.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h >#include < conio.h >#include < stdio.h >int fun(int m){int i,k; for(i=m+1;;i++) {for(k=2; k < i;k++)/*********found*********/ if(i%k!=0) break;/*********found*********/ if(k < i) return(i); }}void main(){int n; system("CLS"); printf("/nPlease enter n:"); scanf("%d",&n); printf("%d/n",fun(n));}
问答题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。 例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<stdlib.h>3 #define N 84 struct slist5 {double s;6 struct slist *next;7 };8 typedef struer slist STREC;9 double fun(STREC *h)10 {1112 }13 STREC * creat(double * s)14 {STREC *h,*p,*q;int i=0;15 h=p=(STREC *)malloc(sizeof(STREC));p->s=0;16 while(i<N)17 {q=(STREC *) malloc(sizeof(STREC));18 q->s=s[i];i++;p->next=q;p=q;19 }20 p->next=0;21 return h;22 }23 outlist(STREC *h)24 {STREC *p;25 p=h->next;printf(''head'');26 do27 {printf(''->%4.1f'',p->s);p=p-> next;)28 while(p!=0);29 printf(''\n\n'');30 }31 main()32 {double s[N]={85,76,69,85,91,72,64,87},ave;33 void NONO();34 STREC *h;35 h=creat(s);outlist(h);36 ave=fun(h);37 printf(''ave=%6.3f\n'',ave);38 NONO();39 }40 void NONO()41 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */42 FTLE *in,*out;43 int i,j;double s[N],ave;44 STREC *h;45 in=fopen(''in.dat'',''r'');46 out=fopen(''out.dat'',''w'');47 for(i=0;i<10;i++) {48 for(j=0 ; j<N;j++)fscanf(in,''%1f,'',&s[j]);49 h=creat(s);50 ave=fun(h);51 fprintf(out,''%6.31f\n'',ave);52 }53 fclose(in);54 fclose(out);}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,其功能是:把低于平均分的学生数据放入b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #define N 8 typedef struct char num[10]; double s; STREC; double fun(STREC*a,STREC*b,int*n) void main() STREC s[N]="GA05",85,"GA03",76,"GA02",69,"GA04",85,"GA01",91,"GA07",72,"GA08",64,"GA06",87; STREC h[N]; int i,n; double ave; ave=fun(s,h, printf("The%d student data which is lower 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");
问答题学生的记录由学号和成绩组成。N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 12
typedef struct
{
char num[10];
double s;
}STREC;
double fun(STREC *a, STREC *b, int *n)
{
}
void 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];
int i, 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[j].s);
printf("/n");
}
问答题给定程序中,函数fun的功能是:
利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BIANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#1r1clucle < stotio.h >
#include < string.h >
#define N 5
#define M 8
void fun(char(*ss)[M])
{char*ps[N],* tp;int i,j,k;
for(i=0;i < N;i++)
ps[i]=ss[i];
for(i=0 ; i < N—1;i++){
/*********found*********/
k=
【1】
;
for(j=i+l;j < N;j++)
/*********found*********/
if(str1en(ps[k]) < str1en
(
【2】
)k=j;
/*********found*********/
tp=ps[i];ps[i]=ps[k];
ps[k]=
【3】
;
}
printf f"/nThe string after
sorting by length:/n/n");
for(i=0;i < N;i++)puts(ps[i]);
}
main()
{ char ch[N] [M] = { "red","green",
"blue ", "yellow", "black" } ;
int i;
printf ( " /nThe original string
puts (ch[i] ) ; printf ("/n") ;
fun (ch) ;
}
问答题编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如,若n为1000时,程序输出应为:s=153.909064。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<math.h>
#include<stdio.h>
double fun(int n)
{
}
main()/*主函数*/
{
printf("s=%f/n",fun(1000));
}
问答题下列给定程序中,函数fun()的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构. 试题程序: #include <conio.h> #include <stdio.h> #include <string.h> int fun (char *s, char *t) int n; char *p, *r; n=0; while(*s) p=s; r=t; while (*r) /**************found**************/ if(*r==*p) r++; p++ else break; /*************found**************/ if(r=='/0') n++; s++; return n; main() char s[100], t[100]; int m; clrscr(); printf("/nPlease enter string s: "); scanf ("%s",s); printf("/nPlease enter substring t: "); scanf ("%s",t); m=fun (s,t); printf("/nThe result is: m=%d/n", m);
问答题请编写函数fun,该函数的功能是:将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符B的ASCII码值为偶数,字符2的ASCII码值为偶数,都应当删除,其他依次类推。最后t所指的数组中的内容应是“ACEG135”。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
void fun(char *s,char t[])
{
}
void main()
{
char s[100],t[100];
system{"CLS");
printf("/nPlease enter string S:");
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
问答题请编写函数fun:在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。
注意:部分源程序存在PROG1. C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <stdio. h>
void NONO( );
void fun(int *a, int *b, int*c, int *d)
{
}
main( )
{int a, b, c, d;
printf("请输入4个整数: ");
scanf("%d%d%d%d",
printf("原始顺序: %d, %d, %d, %d/n", a, b, c, d);
fun(
printf("处理后: %d, %d, %d, %d/n", a, b, c, d);
NONO( );
}
void NONO( )
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FTLE *fp, *wf;
int i, a, b, c, d;
fp=fopen
("C://WEXAM//24990001//in. dat", "r");
wf=fopen
("C://WEXAM//24990001//out. dat", "w");
for(i=0; i<5; i++)
{
fscanf(fp, "%d%d%d%d",
fun(
fprintf(wf, "a=%d, d=%d/n", a, d);
}
fclose(fp);
fclose(wf);
}
问答题函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为
“ABCDEFGl23456”,其中字符A的ASCII码值为奇数,因此应当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是“246”。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun(char*s, char t[])
{
}
void main()
{
char s[100],t[100];
system("CLS");
printf("/nPlease enter string S:");
scanf("%s",s);
fun(s,t);
printf("/nThe result is:%s/n",t);
}
