问答题下列给定程序中,函数fun()的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。
例如,输入一个整数27638496,函数返回值为64862。
请在标号处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构。
试题程序 #include
<stdio.h> unsigned long fun(unsigned long n) {
unsigned long x=0; int t; while(n) { t=n%
10; /* * * * *found* * * * * / if(t%
2==______) /* * * * *found* * * * * /
x=______+t; /* * * * *found* * * * * /
n=______; } return x;
} main() { unsigned long n=-1;
while(n>99999999||n<0) { printf("Please input
(0<n<100000000): "); scanf("% ld",
} printf("/nThe result is: % ld/n", fun(n)); }
问答题下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。
例如,输入opdye,则应输出deopy。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
int proc(char str[])
{
char c;
unsigned i, j;
for(i=0; i<strlen(str)-1; i++)
for(j=i+1; j<strlen(str); j++)
if(str[i]>str[j])
{
c=str[j];
//****found****
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("CLS");
printf("/nPlease enter a character
string:");
gets(str);
printf("/n/nBefore sorting:/n%s", str);
proc(str);
printf("/nAfter sorting decendingly:n
%s", str);
}
问答题下列给定程序中函数fun的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >#include < conio.h >double fun(int n){ double result:1.0;/*********found*********/ if n==0 return 1.0; while(n >1&&n < 170)/*********found*********/ result=n一一; return result;}main(){ int n; printf("Input N:"); scanf("%d",&n); printf("/n/n%d!=%if/n/n",n,fun(n));}
问答题下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列后续字母(但Z转换为A,z转换为a),其他字符不变。 请改正程序指定部位的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include<stdio.h> #include<ctype.h> void fun(char *s) /**********found**********/ while(*s!='@') if(*s>='A' && *s<='Z' || *s>='a' && 's<='z') if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else *s+=1; /**********found**********/ (*s)++; void main() char s[80]; printf("/n Enter a string with length<80. :/n/n "); gets(s); printf("/n The string:/n/n t"); puts(s); fun(s); printf ("/n/n The Cords: /n/n "); puts(s);
问答题请编写函数fun,函数的功能是:将3行4列矩阵x乘以4行3列矩阵y,结果放在 3行3列矩阵xy中。矩阵相乘的基本方法是:矩阵xy中行列下标分别为i、j的元素的值,是矩阵x中第i行上4个元素与矩阵y中第j列上4个元素对应相乘的和。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <conio.h>
#include <stdio.h>
void fun(int a[3][4],int b[4][3],int ab[3][3])
{
}
main()
{int x[3][4]={{1,0,1,1},{2,1,0,1},{1,2,0,3}};
int y[4][3]={{1,1,1},{0,0,0},{2,1,1},{1,1,3}};
int xy[3][3]={0},i,j;
clrscr();
fun(x,y,xy);
printf("a x b=ab:(3,3):");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%d",xy[i][j]);
printf("/n"):
}
NONO();/*本函数与考生答题无关,考生不得改动,否则后果自负。*/
}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[o]、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后,a所指数组中的数据为:4、2、6、8,返回值为4。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#define N 9
int fun(int a[],int r1)
{ int i,j;
j=0;
for(i=0;i < n;i++)
/*********found*********/
if(
【1】
==0){
/*********found*********/
【2】
=a[i];j++;
}
/*********found*********/
return
【3】
;
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7},i,n;
printf("/nThe original da
ta:/n");
for(i=0;i < N;i++)
printf("%4 d",b[i]);
printf("/n");
n=fun(b,N);
printf("/nThe number of ever1:%d/n",n);
printf("/nThe ever1:/n");
for(i=0;i < n;i++)
printf("%4 d",b[i]);
printf("/n");
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(char*a)
{
/*以下代码仅供参考*/
int i=0,k;
while(a[i]=="*")i++;
k=i;
while(a[i]!="/0")/*以下程序段实现非*字符前移*/
{
}
a[k]="/0";
}
main()
{char s[81];
printf("Enter a string:/n");gets(s);
fun(s);
printf("The string after deleted:/n");puts(s);
}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。
例如,字符串中的内容为:*******A*BC*DEF*G****,删除后,字符串中的内容应当是:A*BC*DEF*G****。在编写函数时,不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun( char *a )
{
}
main()
{ char s[81];
printf("Enter a string:/n");gets(s);
fun( s );
printf("The string after deleted:/n");puts(s);
NONO();
}
问答题下列给定程序中,函数proc()的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不相等。例如,当x的值为10,y的值为20,z的值为30时,函数值为2.00。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
//****found****
#define FU(m, n)(m/n)
float proc(float x, float y, float z)
{
float value;
value=FU(x+y, x-y)+FU(z+y, z-y);
//****found****
return(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=proc(x, y, z);
printf("The result is: %5.2f/n", sum);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdio.h> #defiDe N 16 typedef struct { char num[10]; int s; }STREC; int fun(STREC*a,STREC*b) { } main() {STREC s[N]={{"GA05",85},{"GA03",76),{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA015",85},{"GA013",91),{"GA012",64},{"GA014",91},{"GA011",91),{"GA017",64},{"GA018",64},{"GA016",72}}; STREC h[N]; int i,n;FILE*out; n=fun(s,h); printf("The%d lowest score:\n",n); for(i=0;i<n;i++) printf("%s %4d\n",h[i].num,h[i].s); printf("\n"); out=fopen("out.dat","W"); fprintf(out,"%d\n",n); for(i=0;i<n;i++) fprintf(out,"%4d\n",h[i].s); fclose(out);}
问答题
给定程序MODI1.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其他字符不变。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<ctype.h>
void fun(char *s)
{
/**********found**********/
while(*s!="@")
{ if(*s>="A"
else if(*s=="z") *s="a";
else *s+=1;
}
/**********found**********/
(*s)++;
}
}
main()
{char s[80];
printf("/n Enter a string with length<80. :/n/n"); gets(s);
printf("/n The string:/n/n"); puts(s);
fun(g);
printf("/n/n The Cords:/n/n"); puts(s);
}
问答题给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
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("/nEnter string with -1 to end :/n");
gets(str);
while(strcmp(str,"-1")!=0) {
/**********found**********/
fputs(___2___,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",___3___);
fgets(str,81,fr);
}
}
问答题fun()的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。 例如,若给hum1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。 #include<stdio.h> int fun(int a,int b) int r,t; if(a<b) /**********found**********/ t=a;b=a;a=t; r=a%b; while(r!=0) a=b;b=r;r=a%b; /**********found**********/ return(a); main() int num1,num2,a; printf("Input num1 num2:"); scanf("%d%d", printf("num1=%d num2=%d/n/n",num1,num2); a=fun(num1,num2); printf("The maximun common divisor is%d/n/n",a);
问答题围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N—1,有一只狐狸和一只兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的个洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;……。若狐狸找一圈,请为兔子指出所有不安全的洞号。程序中用a数组元素模拟一个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安全。若形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 100
void fun(int*a,int n)
{int i,t;
for(i=0;i<n;i++)
/*********found*********/
a[i]=
【1】
;
i=0;
/*********found*********/
【2】
=1;
while(i<n)
{a[i]=1;
t++;
/*********found*********/
i=
【3】
;
}
}
main()
{ int a[N],i,n=30;
fun(a,n);
for(i=0;i<n;i++)
if(a[i]==1)
printf("不安全的洞号是:%d\n",i);
}
问答题m个人的成绩存放在score数组中,请编写函数fun(),它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为10,20,30,40,50,60, 70,80,90时,函数返回的人数应该是4,below中的数据应为10,20,30,40。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int below[])
{
}
main()
{
iht i, n, below[9];
int score[9]={10,20,30,40,50,60,70,
80,90};
clrscr();
n=fun(score, 9, below);
printf("/nBelow the average score are: ");
for(i=0;i<n;i++)
printf("%d",below[i]);
}
问答题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其它“*”号全部删除。在编写函数时,不得使用C语言提供的字符串函数。函数fun中给出的语句仅供参考。 例如, 字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:****ABCDEFG。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(char*a)3 {4 /*以下代码仅供参考*/5 int i=0,k;6 while(a[i]=='*')i++;7 k=i;8 while(a[i]!='\0')/*以下程序段实现非*字符前移*/9 {10 }11 a[k]='\0';12 }13 main()14 {char s[81];void NONO();15 printf(''Enter a string:\n'');gets(s);16 fun(s);17 printf(''The string after deleted:\n'');puts(s);18 NONO();19 }20 void NONO()21 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/22 FILE *in,*out;23 int i ; char s[81];24 in=fopen(''in.dat'',''r'');25 out=fopen(''out.dat'',''w'');26 for(i=0;i<10;i++) {27 fscanf(in,''%s'',s);28 fun(s);29 fprintf(out,''%s\n'',s);30 }31 fclose(in);32 fclose(out);33 }
问答题函数fun的功能是:计算1+x++…+的前n项。若x=2.5,函数值为12.182340。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>doublefun(doublex,intn){doublef,t;inti;f=1.0;/******found******/t=【1】;/******found******/for(i=【2】;i<n;i++){/******found******/t*=x/【3】;f+=t;}returnf;}main(){doublex,y;x=2.5;y=fun(x,12);printf("Theresultis:\n");printf("x=%一12.6f,y=%一12.6f\n",x,y);}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。
例如,输入的分数是80和89,则应当把分数低于80和高于89的学生数据进行输出,不包含80分和89分的学生数据。主函数中把80放在low中,把89放在heigh中。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序
#include <stdio.h>
#define N 16
typedef struct
{char num[10];
int s;
}STREC;
int fun(STREC *a,STREC *b,int 1,int h)
{
}
main ()
{
STREC s[N]={{"GA005",55},{"GA003",96},
{"GA002",80},{"GA004",68},{"GA001",88},
{"GA007",74},{"GA008",85},{"GA006",99},
{"GA015",90},{"GA013",53},{"GA012",66},
{"GA014",82},{"GA0ll",73},{"GA017",69},
{"GA018",64},{"GA016",86}};
STEC h[N],tt;
FILE *out;
int i,j,n,low,heigh,t;
printf("Enter 2 integer number low i<n;i++)
printf("%s%4d/n",h[i].num,h[i].s);
/*输出指定分数范围内的学生记录*/
printf("/n");
out=fopen("out23.dat","w");
fprintf(out,"%d/n",n);
n=fun(s,h,70,79);
for(i=0;i<n-1;i++)
/*分数在70~79之外的学生记录按分数从低到高排列*/
for(j=i+l;i<n;j十+)
if(h[i].s>h[j].s)
{
tt=h[i];
h[i]=h[j];
h[j]=tt;
}
for(i=0;i<n;i++)
fprintf(out,"%4d/n",h[i].s);
fprintf(out,"/n");
fclose(out);
}
问答题给定程序MODI1.C中fun函数的功能是:根据整型形参m,计算如下公式的值。例如,若主函数中输入5,则应输出-0.283333。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include<stdio.h>doublefun(intm){doublet=1.0;inti;for(i=2;i<=m;i++)/**********found**********/t=1.0-1/i;/**********found**********/______;}main(){intm;printf("/nPleaseenter1integernumbers:/n");scanf("%d",printf("/nknTheresultis%lf/n",fun(m));}
问答题请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干个空格隔开, 一行的开始没有空格。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#include
#define N 80
int fun( char *s)
{
}
main()
{ char line[N]; int num=0;
printf("Enter a string :/n"); gets(line);
num=fun( line );
printf("The number of word is : %d/n/n",num);
NONO();
}
