问答题给定程序MODI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/************found************/
fun (char a)
{ if (*a)
{fun (a+1);
/************found************/
printf( "%c" *a);
}
}
main()
{char s[10] ="abcd";
printf("处理前字符串=%s/n处理后字符串=",s);
fun (s); printf("/n");
}
问答题给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
typedef struct
{ int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{ int i;
printf("%d %s : ",tt.num,tt.name);
for(i=0; i___2___ *=a;
}
main( )
{ STU std={ 1,"Zhanghua",76.5,78.0,82.0 };
float a;
printf("/nThe original number and name and scores :/n");
show(std);
printf("/nInput a number : "); scanf("%f",
/**********found**********/
modify(___3___,a);
printf("/nA result of modifying :/n");
show(std);
}
问答题给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
typedef struct
{ int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{ int i;
printf("%d %s : ",tt.num,tt.name);
for(i=0; i___2___ *=a;
}
main( )
{ STU std={ 1,"Zhanghua",76.5,78.0,82.0 };
float a;
printf("\nThe original number and name and scores :\n");
show(std);
printf("\nInput a number : "); scanf("%f",
modify(___3___,a);
printf("\nA result of modifying :\n");
show(std);
}
问答题请编写函数proc(),它的功能是:求出1~1000中能被5或13整除,但不能同时被5和13整除的所有整数,并将它们放在arr所指的数组中,通过n返回这些数。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void proc(int*arr,int*n)
{
}
void main()
{
int arr[1000],n,k;
system("CLS");
proc(arr,
for(k=0;k<n;k++)
if((k+1)%10==0)
{
printf("%5d",arr[k]);
printf("/n");//一行写10个数
}
else
printf("%5d",arr[k]);
}
问答题给定程序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,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include<stdlib.h> #include<stdio.h> void fun(int a[],int n,int*max,int*d) { } main() { int i,x[20],max,index,n=10;void NONO(); for(i=0;i<n;i++){x[i]=rand()%50;printf("%4d",x[i]);} printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index); NONO();} void NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE*fp,*wf; int i,x[20],max,index,n=10,j; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ for(i=0;j<n;j++)fscanf(fp,"%d,",&x[j]); fun(x,n,&max,&index); fprintf(wf,"Max=%d,Index=%d\n”,max,index); } fclose(fp); fclose(wf);}
问答题给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf.
请在程序韵下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得哽改程序的结构!
#include
void fun(char *s)
{int i, n, k; char c;
n=0;
for(i=0; s[i]!='/0';i++) n++;
/************ found**********/
if(n%2==0) k=n-【1】 ;
else k=n-2;
/********** found**********/
c=【2】 ;
for(i=k-2;i>=l;i=i-2)
s[i+2]=s[i];
/**********found**********/
s[l]=【3】 ;
}
main()
{ char s[80]="abcdefgh";
printf("/nThe original string
is : %s/n",s);
fun(s);
printf("/nThe result is : %s/n",s);
}
问答题给定程序modi1.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。1 #include<stdio.h>2 typedef struct list3 { int data;4 struct list *next;5 }LIST;6 int fun(LIST *h)7 {LIST *p;8 /**********found**********/9 int t;10 p=h;11 /**********found**********/12 while(*p)13 {14 /**********found**********/15 t=t+p.data;16 p=(*p).next;17 }18 return t;19 }20 main()21 { LIST a,b,c,*h;22 a.data=34;b.data=51;23 c.data=87;c.next='\0';24 h=&a;a.next=&b;b.next=&c;25 printf(''总和=%d\n'',fun(h));26 }
问答题程序通过定义学生结构体数组,存储若干名学生的学号、姓名和三门课的成绩。函数fun的功能是:将存放学生数据的结构体数组,按姓名的字典序(从小到大)排序。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
struct student {
long sno;
char name[10];
float score[3];
};
void fun(struct student a[],int n)
{
/*********found*********/
【1】
t;
int i,j;
/*********found*********/
for(i=0;i<
【2】
;i++)
for(j=i+1;j<n;j++)
/*********found*********/
if(strcmp(
【3】
)>0)
{t=a[i];a[i]=a[j];
a[j]=t;
}
}
main()
{ struct student s [4] ={{1000l,"ZhangSan",95,80,88),{10002,"LiSi",85,70,78),{10003,"CaoKai",75,60,88},{10004,”FangFang“,90,82,87});
int i,j;
printf("\n\nThe original data:\n\n");
for(j=0;j<4;j++)
{ printf("\nNo:%ld Name:%-8s Scores:",s[j].sno,s[j].
name);
for(i=0;i<3;i++)
printf("%6.2 f",s[j].score[i]);
printf("\n");
}
fun(S,4);
printf("\n\nThe data after sorting:\n\n");
for(j=0;j<4;j++)
{printf("\nNo:%ld Name:%一8 sScores:",s[j].sno,s[j].name);
for(i=0;i<3;i++)
printf("%6.2f",S[j].scoEe[i]);
printf("\n");
}
}
问答题用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,1 1,13,17,19,23,……。 函数fun的作用是:用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>int hn(int n){int a[10000],i,j,count=0;for(i=2;i<=n;i++) a[i]=i; i=2; while(i<n) {/******found******/ for(j=a[i]*2;j<=n;j+=___1___) a[j]=0; i++:/******found******/ while(___2___==0) i++: } printf(“\nThe prime number between 2to%d\n”,n); for(i=2;i<=n;i++)/******fount******/ if(a[i]!=___3___) { count++: pfinff(count%157“%5d”:”\n%Sd”,a[i]); } return count;}main(){ int n=20,r; r=fun(n); maf(“\nlhe null of prhm is:%dha”,r);}
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include<stdio.h>#include<stdlib.h>#define M 14void NONO();voidfun(char(*t)[M],int*a,int*c){}void get(char(*s)[M])(int i,j;for(i=0;i<M;i++){for(j=0;j<M;j++){s[i][j]=65+rand()%12;printf("%c",s[i][j]);}printf("\n");}}main(){char a[M][M]; int x,y; get(a); fun(a,&x,&y); printf("A=%d C=%d\n",x,y); NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *fp,*wf; int i,j,x,y; char a[M][M];fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<M;i++){for(j=0;j<M;j++) {fscanf(fp, "%c ",&a[i][j]);} } Fun(a,&x,&y); fprintf(wf,"A=%d\n",x); fprintf(wf,"C=%d\n",y); fclose(fp); fclose(wf);}
问答题下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1,1,2,3,5,8,13,21,… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdio.h >long fun(int g){/*********found*********/ switch(g); { case 0:return 0;/*********found*********/ case 1;case 2:return ; } return(fun(g一1)+fun(g2));}void main(){ long fib;int n; printf("Input n:"); Scanf("%d",&n); printf("n=%d/n",n); fib=fun(n); printf("fib=%d/n/n",fib);}
问答题编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。
x
n+1
=cos(x
n
)
迭代步骤如下:
(1)取x
1
初值为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的花括号中填入你编写的若干语句。
#include
#include double fun() { } main() { void NONO () ; printf("Root =%f/n", fun()); NONO(); } void NONO () {/* 本函数用于打开文件,输入数据,调 用函数,输出数据,关闭文件。 */ FILE *wf ; wf = fopen("out.dat","w"); fprintf(wf, "%f/n", fun()); fclose(wf); }
问答题请编写函数proc(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 例如,若二维数组中的值为: 0 1 2 3 4 5 9 7 4 5 4 3 8 3 6 3 5 6 8 7 则函数值为59。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdlib.h> #include<conio.h> #include<stdio.h> #define M 4 #define N 5 int proc(int a[M][N]) void main() int aa[M]EN]=0, 1, 2, 3, 4, 5, 9, 7.4, 5, 4, 3, 8, 3, 6, (3, 5, 6.8, 7; int i, j, y; system("CLS"); printf("The original data is: /n"); for(i=0; i<M; i++) for(j=0; j<N; j++) printf("%6d", aa[i][j]); printf("/n"); y=proc(aa); printf("/nThc sun: %d/n", y); printf("/n");
问答题给定程序MODI1.C中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a 中的值原为8,b中的值原为3, 程序运行后 a 中的值为 3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun(int *x,int y)
{
int t ;
/**************found**************/
t = x ; x = y ;
/**************found**************/
return(y) ;
}
main()
{
int a = 3, b = 8 ;
printf("%d %d/n", a, b) ;
b = fun(
printf("%d %d/n", a, b) ;
}
问答题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<stdlib.h>3 void fun(char *s,int a,double f)4 {5 /**********found**********/6 ___1___ fp;7 char str[100],str1[100],str2[100];8 int a1;double f1;9 fp=fopen(''filel.txt'',''w'');10 fprintf(fp,''%s%d%f\n'',s,a,f);11 /**********found**********/12 __2__;13 fp=fopen(''file1.txt'',''r'');14 /**********found**********/15 fscanf(__3__,''%s%s%s'', str,str1,str2);16 fclose(fp);17 a1=atoi(str1);18 f1=atof(str2);19 printf(''\nThe result:\n\n%s%d%f\n'',str,a1, f1);20 }21 main()22 {char a[10]=''Hello!'';int b=12345;23 double c=98.76;24 fun(a,b,c);25 }
问答题请编写程序统计输入的一行中小写字母的个数。
问答题给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
void fun(char *s)
{ int i,j;
for(i=0,j=0; s[i]!='/0'; i++)
if(s[i]>='0'
/**********found**********/
s[j]="/0";
}
main()
{ char item[80];
printf("/nEnter a string : ");gets(item);
printf("/n/nThe string is : /"%s/"/n",item);
fun(item);
printf("/n/nThe string of changing is : /"%s/"/n",item );
}
问答题编写函数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,&n); for(k=0; k<n; k++) if(k+1)%10==0) printf("%5d", aa[k]); printf("/n"); else printf("%5d", aa[i]);
问答题改错题
下列给定程序中,函数fun()的功能是找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#define N 100
int fun(int *s, int n)
{
int i,j,k,a,b,c;
j=0;
for(i=100; i 1000);
num= fun(a,n);
printf("/n/nThe result :/n");
for(i=0; i
