问答题给定函数MODl1.c中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入:77777,则输出将是:32767。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1 #include<stdio.h>2 #include<string.h>3 #inolude<stdlib.h>4 int fun(char*p)5 { int n;6 /**********found**********/7 n=*p-'o';8 p++;9 while(*p!=0) {10 /**********found**********/11 n=n*8+*p-'0';12 p++;13 }14 return n;15 }16 main()17 { char s[6];int i;int n ;18 printf(''Enter a string (ocatal digits):'');gets(s);19 if(strlen(s)>5){printf(''Error:stririg too longer!\n\n''); exit(0);}20 for(2=0;s[i];i++)21 if{s[i]<'0'|| s[i]>'7'{22 { printf(''Error: %c not is ocatal digits!\n\n'',s[i]);exit(0);}23 printf(''The original string:'');puts(s);24 n=fun(s);25 printf(''\n%S is convered to integer number:%d\n\n'',s,n);26 }
问答题下列给定程序中,函数fun的功能是:删除指针P所指字符串中的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用'#'结束输入。请改正程序中的错误,使它能输出正确的结果。注意:不得增行或删行,也不得更改程序的结构!试题程序:#include<string.h>#include<stdio.h>#include<etype.h>fun(char*P){int i,t;char c[80];/******found******/For(i=0,t=0;P[i];i++) if(!isspace(*(P+i))) c[t++]=P[i];/******found******/ c[t]=“\0”; strepy(p,c);}main(){ char c,s[80]; int i=0; prinff(“Input a string:”); c=getchar(); while(c!=‘#’) { s[i]=c;i++;c=getehar(); } 8[i]=‘\0’; fun(s); puts(s);}
问答题下列给定程序中,函数proc()的功能是:求S的值。设
S=(22/(1*3))*(42/(3*5))*(62/(5*7))
*…*(2k)2/((2k-1)*(2k-1))
例如,当k为20时,函数的值应为1.551759。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
//****found****
proc(int k)
{
int n; float s, w, p, q;
n=1;
s=1.0;
while(n<=k)
{
w=2.0*n;
p=w-1.0;
q=w+1.0;
s=s*w*w/p/q;
n++;
}
//****found****
return s
}
void main()
{
system("CLS");
printf("%f/n", proc(20));
}
问答题下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“AB,CD”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: #include<conio.h> #include<stdio.h> #include<string.h> char*fun(char tt[]) { int;i; for(i=0;tt[i];i++) /*********found*********/ if((tt[i]>='a')‖(tt[i]<='z'))/*********found*********/ tt[i]+=32; return(tt); } main() { char tt[81]; printf("\nPlease enter a string:"); gets(tt); printf("\nThe result string is:\n%s",fun(tt));}
问答题给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。
例如,有下列矩阵:
1 2 3
4 5 6
7 8 9
10 11 12
若k为2,程序执行结果为:
7 8 9
4 5 6
1 2 3
10 11 12
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<Stdio.h>
#define N 3 ’
#define M 4
/*********found*********/
void fun(int(*a)[N],int
【1】
)
{ int i,temp;
/*********found*********/
for(i=0;i<
【2】
;i++)
{temp=a[0][i];
/*********found*********/
a[0][i]=
【3】
;
a[k][i]=temp;
}
}
main()
{int x[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j;
printf("The array before moving:\n\n");
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
printf("%3d",x[i][j]);
printf("\n\n");
}
fun(x,2);
printf("The array after moving:\n\n");
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
printf("%3 d",x[i][j]);
printf("\n\n");
}
}
问答题函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则'0'转换成'9','1'啭换成'8','2'转换成'7',……,'9'转换成'0';若是其他字符则保持不变;并将转换后的结果作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 /**********found**********/3 ___1___ fun(char ch)4 {5 /**********found**********/6 if(ch>='0' &&__2__)7 /**********found**********/8 return '9'-(ch- __3__ );9 return ch;10 }11 main()12 { char c1,c2;13 printf(''\nThe result:\n'');14 c1='2';c2=fun(c1);15 printf(''c1=%c c2=%c\n'', c1,c2);16 c1='8';c2=fun(c1);17 printf(''c1=%c c2=%c\n'',c1,c2);18 c1='a';c2=fun(c1);19 printf(''c1=%c c2=%c\n'',c1,c2);20 }
问答题给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKl.C中。不得增行或删行,也不得更改程序的结构! #include<stdio.h> #include<string.h> #include<stdlib.h> void WriteText(FILE*); void ReadText(FILE*); main() {FILE*fp; if((fp=fopen("myfile4.txt","w"))==NULL) {printf("open fail!!\n");exit(0);} WriteText(fp); fclose(fp); if((fp=fopen("myfile4.txt","r"))==NULL) {printf("open fail!!\n");exit(0);} ReadText(fp); fclose(fp); } /**********found**********/ void WriteText(FILE___1___) { char str[81]; printf(”haEnter string with-1 to end:\n|); gets(str); while(strcmp(str,"-1")!=0){ /**********found**********/ fputs(___1___,fw);fputs("\n",fw); gets(str); } } void ReadText(FILE*fr) { char str[81]; printf("\nRead file and output to screen:\n"); fgets(str,81,fr); while(!feof(fr)){ /**********found**********/ printf("%s",___1___); fgets(str,81,fr); }}
问答题
编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志。)
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<string.h>
void fun(char(*a)[81], int num, char**max)
{
}
main()
{
char ss[10][81], *ps; void NONO();
int n, i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i], "****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
fun(ss, n,
printf("/nmax=%s/n", ps);
NONO();
}
void NONO()
{
/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
char ss[20][81], *ps;
int n, i=0;
FILE *rf, *wf;
rf=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
fgets(ss[i], 81, rf);
while(!strncmp(ss[i], "****", 4)==0)
{
i++;
fgets(ss[i], 81, rf);
}
n=i;
fun(ss, n,
fprintf(wf, "%s", ps);
fclose(rf);
fclose(wf);
}
问答题下列给定程序中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。例如,当s所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行.也不得更改程序的结构!试题程序:#include<conio.h>#include<stdio.h>#include<string.h>/*********found*********/void fun(char s,char t){ int i,d; d=strlen(s); for(i=0 ;i<d;i++) t[i]=s[i]; for(i=0;i<d;i++) t[d+i]=s[d-1-i];/*********found*********/ t[2*d-1]='\0';}main(){ char s[100],t[100]; printf("\nPlease enter string s:"); scanf("%s",s); fun(s,t); printf("\nThe result is:%skn",t);}
问答题给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构:试题程序:
问答题给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。 例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64 则低于平均分的学生人数为:4(平均分为:75.5625)。 请改正程序中的错误,使它能统计出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 203 int fun(float *s,int n,float* aver)4 { float ave,t=0.0;5 int count=0,k,i;6 for(k=0;k<n ; k++)7 /**********found**********/8 t=s[k];9 ave= t/n;10 for(i=0;i<n;i++)11 if (s[i]<ave) count++ ;12 /**********found**********/13 *aver=Ave ;14 return count ;15 }16 main()17 { float s[30],aver;18 int m,i;19 printf (''\nPlease enter m:'');scanf(''%d'',&m);20 printf(''\nPlease enter %d mark:\n'', m);21 for(i=0;i<m;i++)scanf(''%f'',s+i);22 printf(''\nThe number of students:%d\n'',fun(s,m,&aver));23 printf(''Ave=%f\n'',aver);24 }
问答题编写函数fun,函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数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]);
}
}
问答题请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):程序运行后,如果输入精度0.0005,则程序输出为3.14…。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数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=1+x+x
2
/2!+x
3
/3[+…+x
n
/n!
例如,当n=10,x=0.3时,函数值为1.349859。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double fun(double x,int n)
{
}
void main()
{
system("CLS");
printf(”%f",fun(0.3,10));
}
问答题学生的记录由学号和成绩组成,M名学生的数据已通过主函数存入结构体数组stu中,请编写函数proc(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,低于平均分的学生数据放在c所指的数组中,高于等于平均分的学生人数通过形参n传回,低于平均分的学生人数通过形参m传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define M 12
typedef struct
{ char num[10];
double s;
}STREC;
double proc(STREC*stu,STREC*b,STREC*c,int*n,int*m)
{
}
void main()
{
STREC stu[M]={{"GA05",65},{"GA03",86},
{"GA02",76},{"GA04",95},{"tGA01",93},
{"GA07",78},{"GA08",68},{"GA06",88),
{"GA09",60},{"GA11",54},{"GA12",56},
{"GA10",98}};
STREC h[M],l[M];
int i,m,n;
double ave;
ave=proc(stu,h,l,
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[i].s);
printf("/n");
printf("The%d student data which is lower
than%7.3f:/n",m,ave);
for(i=0;i<m;i++)
printf("%s%4.1f/n",l[i].num,
l[i].s);
printf("/n");
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, long sno)
{ FILE *fp;
STU n; int i;
fp = fopen(filename,"rb+");
/**********found**********/
while (!feof(__1__))
{ fread(
/**********found**********/
if (n.sno__2__sno) break;
}
if (!feof(fp))
{ for (i=0; i<3; i++) n.score[i] += 3;
/**********found**********/
fseek(__3__, -1L*sizeof(STU), SEEK_CUR);
fwrite(
}
fclose(fp);
}
main()
{ STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88},
{10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87},
{10005,"ZhangSan", 95, 80, 88}}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
printf("/nThe original data :/n");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
for (j=0; j
{ printf("/nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);
printf("/n");
}
fun("student.dat", 10003);
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf("/nThe data after modifing :/n");
for (j=0; j
{ printf("/nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);
printf("/n");
}
}
问答题下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,Z和y的值不相等。 例如,当X的值为9,y的值为11,z的值为15时,函数值为-350。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<scdlib.h> #include<stdio.h> #include<math.h> /*******found********/ #define FU(m,n)(m/n) float fun(float a,float b,float c) float value; value=FU(a+b,a-b)+FU(c+b,c-b); /********found********/ retum(Value); void main() float x,y,z,sum; printf("Input x y z:"); scanf("%f%f%f printf("x=%f,y=%f,z=%f/n",x,y,z); if(x==y||y==z) (printf("Data error!/n");exit(0);) sum=fun(x,Y,z); printf("The result is:%5.2f/n",sum);
问答题编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。
x
n+1
=cos(x
n
)
迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,把x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出结果Root=0.739086。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<math.h>
2 #include<stdio.h>
3 double fun()
4 {
5
6 }
7 main()
8 {
9 void NONO();
10 printf(''Root=%f\n'',fun());
11 NONO();
12 }
13 void NONO()
14 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
15 FILE *wf;
16 wf=fopen(''out.dat'',''w'');
17 fprintf(wf,''%f\n'',fun());
18 fclose(wf);
19 }
问答题给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a C languageprogram.,函数的返回值为6。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
int fun (char *s)
{ int n=0,flag=0;
____1____ ; flag=1; }
____3____;
}
return n;
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) ;
}
问答题下列给定程序中,函数proc()的功能是:计算str所指字符串中含有t所指字符串的数目,并作为函数值返回。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#define M 80
int proc(char *str, char *t)
{
int n;
char *p, *r;
n=0;
while(*str)
{
p=str;
//****found****
r=p;
while(*r)
if(*r==*p){r++; p++; }
else break;
//****found****
if(*r==0)
n++;
str++;
}
return n;
}
void main()
{
char str[M], b[M]; int m;
system("CLS");
printf("/nPlease enter string str:");
gets(str);
printf("/nPlease enter substring b:");
gets(b);
m=proc(str, b);
printf("/nThe result is:m=%d/n", m);
}
