问答题请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>void fun (int *a, int *n){}main(){ int aa[1000], n, k ;void NONO ();fun (aa, for (k = 0 ; k < n ; k++) if((k + 1) % 10 == 0) printf ("/n"); else printf("%5d", aa[k]);NONO ();} void NONO (){/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int aa[1000], n, k ;FILE *fp ;fp = fopen ("out. dat","w");fun (aa, for (k = 0 ; k < n ; k++) if((k + 1) % 10 == 0) fprintf(fp, "/n");else fprintf(fp, "%5d", aa[k]);fclose(fp); }
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename)
{ FILE *fp; int i, j;
STU s[N], t;
fp = fopen(filename, __1__);
fread(s, sizeof(STU), N, fp);
fclose(fp);
for (i=0; i
问答题请编写函数fun(),其功能是:将所有大于1小于整数m的素数存入xx所指数组中,素数的个数通过k传回。 例如,输入25,则应输出2 3 5 7 11 13 17 19 23。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> void fun(int m,int *k,int xx[ ]) main( ) int m,n,zz[100]; clrscr( ); printf("/nPlease enter an integer number between 10 and 100:"); scanf("%d",&n); fun(n,&m,zz); printf("/n/nThere are%d prime numbers less than %d:",m,n); for(n=0;n<m;n++) printf("/n %4d",zz[n]);
问答题下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<math.h>#include<stdio.h>floatfun(floatnun){ints;floatn,t,pi;t=1;pi=0;n=1:s=1:/*****************fbund*****************/while(t>=num){pi=pi+t;n=n+2;s=-s;/*****************fbund*****************/t=s%n;}pi=pi*4;returnpi;}voidmain(){floatn1,n2;printf("Enterafloatnumber:");scanf("%f",n2=fun(n1);printf("%6.4f/n",n2);}
问答题请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为{"AAAA","BBBBBBB","CC"},则合并后的字符串内容应该是“AAAABBBBBBBCC”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#define M 3#define N 20void fun(char a[M][N],char*b){}void main(){ char w[M][N]={"AAAA","BBBBBBB","CC"}; char a[100]={"##################"); int i; printf("The string:\n"); for(i=0;i<M;i++) puts(w[i]); printf("\n"); fun(w,a); printf("The A string:\n"); printf("%s",a); printf("\n\n");}
问答题给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a clan guage program.,函数的返回值为6。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BIANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
int fun(char,* s)
{int n=0,flag=0;
while(* s!='/0')
{if(*s!=''&&f1ag==0){
/*********found*********/
【1】
;f1ag=1;}
/*********found*********/
if(* s=='')f1ag=
【2】
;
/*********found*********/
【3】
;
}
returen;
}
main()
{char str[81];int n;
printf("/nEnter a line text:/n");
gets(str);
n=fun(str);
printf("/nThere are%d words
in this text./n/n",n);
}
问答题下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。 例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“ABed”,则c中的字符串应为“aBcdeFgH”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >#include < string.h >void fun(char*p,char*q,char*c){/*********found*********/ int k=1;/*********found*********/ while(*p!=*q) { if(*P < *q)c[k]=*q; else c[k]=*p; if(*p)P++; if(*q)q++; k++; }}main(){ char a[10]="aBCDeFgH",b[10]="ABcd",c[80]:{'/0'); fun(a,b,c); printf("The string a:");puts(a); printf("The string b:");puts(b); printf ("The result:");puts(c);}
问答题下列给定程序中,函数fun和funx的功能是:用二分法求方程2x
3
一4x
2
+3x一6=0的一个根,并要求绝对误差不超过0.001。
例如,若给m输入一100,给n输入90,则函数求得的一个根为2.000。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<math.h>
double funx(double x)
{
return(2*x*x*x-4*x*x+3*x-6);
}
double fun(double m,double n)
{
/*********found*********/
int r;
r=(m+n)/2;
/*********found*********/
while(fabs(n—m) <0.001)
{
if(funx(r)*funx(n)<0)
m=r;
else
n=r;
r=(m+n)/2 ;
}
return r;
}
main()
{
double m,n,root;
printf("Enter m n:\n");
scanf("%lf%lf",&m,&n);
root=fun(m,n);
printf("root=%6.3f\n",root);
}
问答题请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#define N 80int fun(int a[],int 13){}void main(){ int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10),i,n=20; printf("rhe original data:/n"); for(i=0;i < n;i++) printf("%3 d",a[i]); n=fun(a,n); printf ("/n/nThe data afterdeleted:/n"); for(i=0;i < n; i++) printf("%3d",a[i]); printf("/n/n");}
问答题请编一个函数fun(char *s),函数的功能是把s所指字符串中的内容逆置。
例如:字符串中原有的字符串为:abcdefg,则调用该函数后, 串中的内容为:gfedcba。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 81
fun ( char *s )
{
}
main( )
{ char a[N];
printf ( "Enter a string : " ); gets ( a );
printf ( "The original string is : " ); puts( a );
fun ( a );
printf("/n");
printf ( "The string after modified : ");
puts ( a );
NONO( );
}
问答题函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12。调用该函数后,c=5241。
请勿改动主函数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);
}
问答题请编写一个函数void fun(char*tt,int PP[]),统计在tt所指字符串中“‘at’”到“‘z’”26个小写字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是: 3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>#include <string.h>void fun(char *tt, int pp[]){}main (){ char aa[1000] ;int bb[26] , k ;void NONO () ;printf ("/nPlease enter a char string:"); scanf("%s", aa) ;fun(aa, bb);for (k = 0 ; k < 26 ; k++) printf ("%d ", bb[k]);printf("/n"); .NONO ();}void NONO (){/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/char aa[1000] ;int bb[2 6] , k, i ;FILE *rf, *wf ;rf = fopen("in.dat","r") ;wf = fopen("out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%s", aa);fun(aa, bb) ;for (k = 0 ; k < 26 ; k++)fprintf (wf, "%d ", bb[k]);fprintf(wf, "/n");}fclose(rf);fclose(wf);}
问答题请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如:若有5门课程的成绩是:90.5,72,80,61.5,55。则函数的值为:71.80。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
float fun(float *a,int n)
{
}
main()
{float score[30]={90.5,72,80,61.5,55},aver;
aver=fun(score,5);
printf("/nAverage score is:%5.2f/n",aver);
}
问答题下列给定程序中函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到m一1的值。 请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include < stdio .h > #include < stdlib.h > typedef struct aa { int data; struct aa * next; } NODE; NODE * Creatlink (int n, int m) { NODE *h=NULL, *p, *s; int i;/*********found*********/ p = (NODE )malloc (sizeof (NODE)) ; h =p; p 一 > next = NULL; { s = < NODE * ) maiioc (sizeof(NODE)); s 一 > data = rand () % m, s 一 > next =p 一 > next; p 一 >next =s; p =p 一 >next; }/*********found*********/ return p;} outlink (NODE * h) { NODE *p; p =h 一 > next; printf ("/n/nTHE LIST :/n/n HEAD "); while (p) { printf (" 一 > % d ",p 一 > data) ; p =p一 > next; } printf ("/n") ; main () { NODE * head; head =Creatlink (8,22) ; outlink (head) ;}
问答题下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。例如,输入”THIs is a boot”,则应输出是1 0 2 2 0。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:1 #include<stdlib.h>2 #include<conio.h>3 #include<stdio.h>4 /*********found*********/5 fun(char*s,int num[5])6 { int k,i=5;7 for(k=0;k<i;k++)8 /*********found*********/9 num[i]=0;10 for(;*s;s++)11 { i=-1;12 /*********found*********/13 switch(s)14 { case'a':case'A':15 { i=0;break;}16 case'e':case'E':17 {i=1;break;}18 case'i':case'I':19 {i=2;break;}20 case'o':case'O':21 {i=3;break;}22 case'u':case'U':23 {i=4;break;)24 }25 if(i>=0)26 num[i]++;27 }28 }29 void main()30 { char sl[81];~nt numl[5],i;31 system(”CLS”);31 printf("\nPlease enter a string:");32 gets(s1);33 fun(s1,num1);34 for(i=0;i<5;i++)35 printf("%d",num1[i]);36 printf("\n");37 }
问答题给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 例如,字符串中的数据为:AABBCCDDEEFF,则输出应当是:ABBCDDEFF。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 #define N 804 void fun(char *s,char t[])5 { int i,j=0;6 for(i=0; i<(int)strlen(s); i++)7 /**********found**********/8 if(i%2&&s[i]%2==0)9 t[j++]=s[i];10 /**********found**********/11 t[i]='\0';12 }13 main()14 { char s[N],t[N];15 printf(''\nPlease enter strings:'');gets(s);16 fun(s,t);17 printf(''\nThe result is:%s\n'',t);18 }
问答题填空题
请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2倒置后接在字符串str1后面。
例如:str1=“How do”,str2=“?od uoy”,结果输出:“How do you do?”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define N 40
void fun(char *str1,char *str2)
{
int i=0,j=0,k=0,n;
char ch;
char *p1=str1;
char *p2=str2;
while(*(p1+i))
i++;
while(*(p2+j))
j++;
n=【1】;
for(;k<=j/2;k++,j--)
{
ch=*(p2+k);
*(p2+k)=*(p2+j);
*(p2+j)=ch;
}
【2】;
for(;【3】;i++)
*(p1+i)=*p2++;
*(p1+i)=''/0'';
}
main()
{
char str1[N],str2[N];
int m,n,k;
clrscr();
printf("***Input the string str1
printf("/nstr1:");
gets(str1);
printf("/nstr2:");
gets(str2);
printf("*** The string str1
puts(str1);
puts(str2);
fun(str1,str2);
printf("*** The new string ***/n");
puts(str1);
}
问答题改错题
下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
85 65.5 69 95.5 87 55 62.5 75
则高于平均分的学生人数为4(平均分为74.312500)。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#define N 20
int fun(float *s, int n,float *aver)
{
/**********************found***********************/
int ave ,t=0;
int count=0,k,i;
for(k=0;k
问答题给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去 除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回 所指变量。
例如,输入一个数:27638496,新的数:为739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
{ t=*n % __1__;
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*n /10;
}
*n=__3__;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf("Please input(0
问答题下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确的结果。 注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <stdio.h> #include <stdlib.h> fun(int n, int *a) int i,j,p,t; for (j=0;j<n-1;j++) P=j; /***************found*******************/ for(i=j+l;i<n-1;i++) if (a[p]>a[i]) /***************found*******************/ t=i; if (p!=j) t=a[j];a[j]=a[p];a[p]=t; putarr( iht n,int *z) int i; for (i=l;i<=n;i++,z++) printf("%4d",*z); if (!(i%10)) printf("/n"); printf ("/n"); main () int aa[20]=9,3,0,4,1,2,5,6,8,10,7,n=11; clrscr(); printf("/n/nBefore sorting %d numbers:/n",n); putarr(n,aa); fun(n,aa); printf("/nAfter sorting %d numbers:/n",n);putarr(n,aa);
