问答题给定程序MODI1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>void fun(int*s,int n){/*********found*********/ int i, one=0 ,zero; for(i=0;i<n;i++) /*********found*********/ switch(s[i]); {/*********found*********/ case 0:zero++; case 1:one++; } printf("one:%d zero:%d\n",one,zero);}main(){int a[20]={1,1,1,0,1,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0},n=20; fun(a,n);}
问答题请编写函数proc(),它的功能是计算:
s=(1-ln(1)-ln(2)-ln(3)-…-ln(m))2
s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。log函数的引用说明是double log(double x)。
例如,若m的值为10,则proc()函数值为198.934454。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double proc(int m)
{
}
void main()
{
system("CLS");
printf("%f/n",proc(10));
}
问答题函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
例如,当a=45,b=12。调用该函数后,c=2415。
注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
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);
NONO();
}
问答题
请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符串的内容应是:AAAABBBBBBBCC。
提示:strcat(a, b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<string.h>
#define M 3
#define N 20
void fun(char a[M][N], char *b)
{
}
mein()
{char W[M]IN]={"AAAA", "BBBBBBB", "cc"), a[100];
int i; void NONO();
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");
NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE *rf, *wf;
char w[M][N], a[100]; int i;
rf=fopen("in.dat", "r");
wf=fopen("out.dat", "w");
for(i=0; i<10; i++) {
fscanf(rf, "%s %s %s", w[0], w[1], w[2]);
fun(w, a);
fprintf(wf, "%s/n", a);
}
fclose(rf); fclose(wf);
}
问答题请编写函数proc(),它的功能是求Fibonacci数列中小于n的最大的一个数,结果由函数返回。
Fibonacci数列F(n)的定义为
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
例如,n=500时,函数值为377。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填写所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<stdio.h>
int proc(int t)
{
}
void main()
{
int n;
system("CLS");
n=500;
printf("n=%d,f=%d/n",n,proc(n));
}
问答题函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、… 都应当删除,其它依此类推。最后t所指的数组中的内容应是:"BDF24"。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];
printf("/nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("/nThe result is: %s/n", t);
NONO();
}
问答题下列给定程序中,函数fun的功能是:求出如下分数序列的前n项之和,和值通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/*********found*********/voidfun(intn)(inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){/*********found*********/s=s+(Double)a/b,c=a;a=a+b;b=c;}return(s);}voidmairl(){intn=5;system("CLS");printf("\nThevalueoffunctionis:%lf\n",fun(n));}
问答题请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机
函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]
中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,
其余依此类推, 把100岁 (含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define N 50
#define M 11
void fun( int *a, int *b)
{
}
double rnd()
{ static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m; return((double)r/m);
}
main()
{ int age[N], i, d[M];
for(i=0; i
问答题下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。
例如,当s中的字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdlib.h>
#include <conio<a>h<a>
#include <stdio.h>
#include <string.h>
void fun(char *s, char *t)
{
int i,s1;
s1=strlen(s);
/**********found**********/
for(i=0;i<=s1;i++)
t[i]=S[i];
for(i=0;i<s1;i++)
t[s1+i]=S[i];
/**********found**********/
t[s1]='/0';
}
void main()
{
char s[100],t[100];
system("CLS");
printf("/nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("The result is:%s/n",t);
}
问答题给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为:7654321时,t中的数为:642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/************ found************/
void fun (long s, long t)
{ long sl=10;
s /= 10;
*t = s % 10;
/************ found************/
while (s < 0)
{ s = s/100;
*t = s%10*sl + *t;
s1 = s1 * 10;
}
}
main()
{ long s, t;
printf("/nPlease enter s:");
scanf ("%ld",
fun (s,
printf("The result is:%ld/n",t);
}
问答题下列给定程序中,函数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==
【1】
)
/*********found*********/
x=
【2】
+t;
/*********found*********/
n=
【3】
;
}
return x;
}
main()
{unsigned long n=一1;
while(n >99 9 9 9 9 9 9 ||n < 0)
{print:f("Please input(0 <
n < 1 00 00 0000):");scar1f("%ld",&n);}
print:f("/nThe result:is:% ld/n",fun(n));
}
问答题函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数值返回。例如: 若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 93 int fun(int a[],int n)4 { int i,j;5 j=0;6 for(2=0;i<n;i++)7 /**********found**********/8 if(__1__==0) {9 /**********found**********/10 __2__ =a[i];j++;11 }12 /**********found**********/13 return __3__;14 }15 main()16 { int b[N]={9,1,4,2,3,6,5,8,7},i,n;17 printf(''\nThe original data:\n'');18 for(i=0;i<N;i++) printf(''%4d'', b[i]);19 printf(''\n'');20 n=fun(b,N);21 printf(''\nThe number of even:%d\n'',n);22 printf(''\nThe even:\n'');23 for(2=0;i<n;i++)printf(''%4d'',b[i]);24 printf(''\n'');25 }
问答题函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
void fun(int a[], int n)
{ int i,t;
/************found************/
for(2=0;i< _____1_____;i++)
{
t=a[i];
/**********found**********/
a[i]=a[n一1— _____2_____];
/************found************/
_____3_____ =t;
}
}
main()
{ int b[9]={1,2,3,4,5,6,7,8,9),i;
printf("/nThe original data:/n");
for(i=0;i<9;i++)
printf("%4d",b[i]);
printf("/n");
fun(b,9);
printf("/nThe data after invert:
/n");
for (i=0; i<9; i++)
printf("%4d",b[i]);
printf("/n");
}
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#define N 8
typedef struct
{ int num;
int year, month, day;
}STU;
int fun(STU *std, STU *k, int year)
{ int i, n=0;
for(i=0; i<N; i++)
/**********found**********/
if(______==year)
/**********found**********/
k[n++]=______;
/**********found**********/
return(______);
}
main()
{STU std[N]={{1,1984,2,15}, {2,1983,9,21}, {3,1984,9,1}, {4,1983,7,15}, {5,1985,9,28}, {6,1982,11,15}, {7,1982,6,22}, {8,1984,8,19}};
STU k[N]; int i, n, year;
printf("Enter a year:"); scanf("%d",
n=fun(std, k, year);
if(n==0)
printf("/nNo person was born in%d/n", year);
else
{printf("/nThese persons were born in%d/n", year);
for(i=0; i<n; i++)
printf("%d %d-%d-%d/n", k[i].num, k[i].year, k[i].month, k[i].day);
}
}
问答题函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12时,调用该函数后,c=1524。
注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
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);
NONO();
}
问答题M名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的带头结点。请编写函数proc(),它的功能是:找出学生的最高分,由函数值返回。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define M 8
struct slist
{double s;
struct slist *next;
};
typedef struct slist STREC;
double proc(STREC *h)
{
}
STREC*creat(double*s)
{
STREC *h, *p, *q;
int i=0;
h=p=(STREC*)malloc(sizeof(STREC));
p->s=0;
while(i<M)
//产生8个结点的链表,各分数存入链表中
{
q=(STREC*)malloc(sizeof(STREC));
p->s=s[i]; i++; p->next=q; p=q;
}
p->next=NULL;
return h;
//返回链表的首地址
}
void outlist(STREC *h)
{
STREC *p;
p=h;
printf("head");
do
{printf("->%2.0f", p->s); p=p-next; }
//输出各分数
while(p->next!=NULL);
printf("/n/n");
}
void main()
{
double stu[M]={56, 89, 76, 95, 91, 68, 75, 85}, max;
STREC*h;
h=creat(stu);
outlist(h);
max=proc(h);
printf("max=%6.1f/n", max);
}
问答题给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.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("\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**********/ pfintf("%s"___________(3)); fgets(str,81,fr); }}
问答题给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵: 1 2 3 计算结果为 1 0 0 4 5 6 6 5 0 7 8 9 10 14 9 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构11 #include<stdio.h>2 #define N 43 /**********found**********/4 void fun(int(*t)__1__)5 { int i,j;6 for(i=1 ; i<N;i++)7 ( for(j=0;j<i;j++)8 {9 /**********found**********/10 __2___=t[i][j]+t[j][i];11 /**********found**********/12 __3__=0;13 }14 }15 }16 main()17 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;18 printf(''\nThe originalarray:\n'');19 for(i=0;i<N;i++)20 {for(j=0;j<N;j++) printf(''%2d'',t[i][j]);21 printf(''\n'');22 }23 fun(t);24 printf(''\nThe result is:\n'');25 for(i=0; i<N;i++)26 { for(j=0 ; j<N;j++)printf(''%2d'',t[i][j]);27 printf(''\n'');28 }29 }
问答题给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。
例如,形参S所指的字符串为abs5defl26jkm8,程序执行后的输出结果为22。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int fun(char*S)
{ int sum=0;
while(*s){
/*********found*********/
if(isdigit(*s))
sum+=*s-
【1】
;
/*********found*********/
【2】
;
}
/*********found*********/
return
【3】
;
}
main()
{ char s[81];int n;
printf("\nEnter a string:\n\n");
gets(s);
n=fun(s);
printf("\nThe result is:%d\n\n",n);
}
问答题下列给定的程序中,函数proc()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#define M 20
void proc(int a[], int n)
{
int i, j, t, p;
for(j=0; j<n-1; j++)
//****found****
{ p=j
for(j=j; i<n; i++)
if(a[i]<a[p])
//****found****
p=j;
t=a[p]; a[p]=a[j]; a[j]=t;
}
}
void main()
{
int arr[M]={9, 6, 8, 3, -1}, i, m=5;
printf("排序前的数据:");
for(i=0; i<m; i++)printf("%d", arr[i]);
printf("/n");
proc(arr, m);
printf("排序后的顺序:");
for(i=0; i<m; i++)printf("%d", arr[i]);
printf("/n");
}
