问答题函数fun的功能是:计算的前n项之和。若x=2.5,n=15时,函数值为:1.917914。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<math.h>doublefun(doublex,intn){doubief,t;inti;/**********found**********/f=______;t=-1;for(i=1;i<n;i++){/**********found**********/t*=(______)*x/i;/**********found**********/f+=______;}returnf;}main(){doublex,y;x=2.5;y=fun(x,15);printf("/nThereBultis:/n");printf("x=%-12.6fy=%-12.6f/n",x,y);}
问答题给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在第二空处使fa指向函数f1,在第三空处使fb指向函数f2。当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
double f1(double x)
{ return x*x;}
double f2(double x,double y)
{ return x,y;}
double fun(double a,double b)
{
/**********found**********/
______ (*f)();
double r1,r2;
/**********found**********/
f=______; /* point fountion f1 */
r1=f(a);
/**********found**********/
f=______; /* point fountion f2 */
r2=(*f)(a,b);
return r1+r2;
}
main()
{ double x1=5,x2=3,r;
r=fun(x1,x2);
printf("/nx1=%f,x2=%f,x1*x1+x1*x2=%f/n",x1,x2,r)
}
问答题给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。 例如,若N=3,有下列矩阵: 1 2 3 计算结果为 7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N])4 { int j,r[N];5 for(j=0;j<N;j++)r[j]=t[0][j];6 for(j=0;j<N;j++)7 /**********found**********/8 t[0][N-j-1]=t[j][__1__];9 for(j=0;j<N;j++)10 t[j][0]=t[N-1][j];11 /**********found**********/12 for(j=N-1;j>=0;__2__)13 t[N-1][N-1-j]=t[j][N-1];14 for(j=N-1;j>=0;j--)15 /**********found**********/16 t[j][N-1]=r[__3__];17 }18 main()19 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;20 printf(''\nThe original array:\n'');21 for(2=0;i<N;i++)22 {for(j=0;j<N;j++)printf(''%2d”,t[i][j]);23 printf(''\n'');24 }25 fun(t);26 printf(''\nThe result is:\n'');27 for(i=0;i<N;i++)28 { for(j=0;j<N;j++)printf(''%2d'',t[i][j]);29 printf(''\n'');30 }31 }
问答题程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
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 0)
{ t = a[i]; a[i] = a[j]; a[j] = t; }
}
main()
{ struct student s[4]={{10001,"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.2f ", 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: %-8s Scores: ",s[j].sno, s[j].name);
for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]);
printf("/n");
}
}
问答题函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其它依此类推。最后t所指的数组中的内容应是:“BDF24”。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
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);
}
问答题下列程序定义了M×M的二维数组,并在主函数中自动赋值。请编写函数fun(int arr[][M]),该函数的功能是使数组左下半三角元素中的值全部置成0。例如,arr数组中的值为:
1 2 3
arr=4 5 6
7 8 9
则返回主程序后arr数组中的值应为:
0 2 3
arr=0 0 6
0 0 0
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 5
void proc(int arr[][M])
{
}
void main()
{
int arr[M][M],i,j;
system("CLS");
printf("****The array****/n");
stand((unsigned)time(NULL));
for(i=0;i<M;i++)
//产生一个随机的5*5矩阵
{
for(j=0;j<M;j++)
{
arr[i][j]=rand()%10;
printf("%4d",arr[i][j]);
}
printf("/n");
}
proc(arr);
printf("THE RESULT/n");
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%4d",arr[i][j]);
printf("/n");
}
}
问答题下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为87653142时,t中的数为7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h >#include < stdio.h >#include < conio.h >void fun(long s,long*t){ int d; long s1=1;/*********found*********/ t=0; while(s >0) { d=s%10;/*********found*********/ if(d%2==0) { *t=d*s1+*t; s1*=10; } s/=10; }}void main(){ long s , t; system("CLS"); print("/nPlease enter s:"); scanf("%id",&s); fun(s,&t); printf("The result is:%ldn",t);}
问答题给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在BLANKl.C中。不得增行或删行,也不得更改程序的结构!试题程序: #include<stdio.h> void fun(int*px,int*py) { /***********found***********/ int [1]; scarnf(“%d”,&k); /***********found***********/ while[2] {if(k>0)a++; if(k<0)b++; /***********found***********/ [3]; } *px=a;*py=b; } main() {int x,y; fun(&x,&y); printf(“x=%d y=%d\n”,x,y); {
问答题请编写函数fun(),它的功能是:实现两个字符串的连接(不使用库函数strcat()),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串: FirstString--
SecondString 则程序输出:
FirstString--SecondString [注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序] #include<stdio.h>
#include<conio.h> void fun(char p1[], char p2[])
{ } main() {
char s1[80], s2[40]; clrscr();
printf("Enter s1 and s2:/n"); scanf("%s%s", s1, s2);
printf("s1=%s/n", s1); printf("s2=%s/n", s2);
printf("Invoke fun(s1, s2):/n"); fun(s1, s2);
printf("After invoking:/n"); printf("%s/n",
s1); }
问答题程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),函数的功能是:使数组左下三角元素中的值全部置成0。例如:a数组中的值为|197||097|a=|238|则返回主程序后a数组中的值应为|008||456||000|注意:部分源程序存在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:
问答题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302,311,320、401、410、5000共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 int fun(int x)3 { int n,s1,s2,s3,t ;4 n=0;5 t=100;6 /*********found*********/7 while(t<= __1__) {8 /*********found*********/9 s1=t%10;s2=( __2__ )%10;s3=t/100;10 /*********found*********/11 if(s1+s2+s 3==__3__)12 {printf(''%d'',t);13 n++;14 }15 t++;16 }17 return n;18 }19 main()20 { int x=-1;21 while(x<0)22 { printf(''Please input(x>0):''); scanf(''%d'',&x);}23 printf(''\nThe result is:%d\n'',fun(x));24 }
问答题请编写一个函数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的功能是:将一副扑克牌编号为1,2,3,…,53,54,以某种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉,并始终保持编号为1的牌在最上方,如第一次这样洗牌后的结果为:1,28,2,29,…,53,27,54。两次洗牌后的结果为:1,41,28,15,2,42一一,53,40,27,14,54。
程序的功能是:输出经过n次这样洗牌后的结果。
请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
void fun(int a[55], int n)
fint i,k;
/*********found*********/
int
【1】
[55];
for(i=0;i < n;i++)
{for(k=1;k < =27;k++)
{ b[2*k一1]=a[k];
/*********found*********/
b
【2】
*k]=a[k+27];
}
for(k=1;k < =54;k++)
/*********found*********/
a[k]=
【3】
;
}
}
main()
{int m. a[55],i;
for(i=1; i < 55; i++)a[i]=i;
printf("请输入洗牌次数:");
scanf("%d",&m);
fun (a, m) ;
for (i = 1; i < 55; i ++)
printf ("/n") ;
}
问答题给定程序MODI1.C中函数 fun 的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。
例如,当s所指字符串中的内容为:"abcdabfabc",t1所指子串中的内容为:
"ab",t2所指子串中的内容为:"99"时, 结果,在w所指的数组中的内容应为:
"abcdabf99c"。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
int fun (char *s, char *t1, char *t2 , char *w)
{
int i; char *p , *r, *a;
strcpy( w, s );
/************found************/
while ( w )
{ p = w; r = t1;
while ( *r )
/************found************/
IF ( *r == *p )
{ r++; p++; }
else break;
if ( *r == '/0' ) a = w;
w++;
}
r = t2;
while ( *r ){ *a = *r; a++; r++; }
}
main()
{
char s[100], t1[100], t2[100], w[100];
printf("/nPlease enter string S:"); scanf("%s", s);
printf("/nPlease enter substring t1:"); scanf("%s", t1);
printf("/nPlease enter substring t2:"); scanf("%s", t2);
if ( strlen(t1)==strlen(t2) )
{ fun( s, t1, t2, w);
printf("/nThe result is : %s/n", w);
}
else printf("/nError : strlen(t1) != strlen(t2)/n");
}
问答题下列给定程序中,函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序排列。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdlib.h> #include<string.h> #include<conio.h> #include<stdio.h> #define MAXLINE 20 fun(char*pstr[6]) lnt i,j; char *p; for(i=O;i<5;i++) /********found********/ for(j=i+l,j<6,j++) if(strcmp(*(pstr+i)*(pstr+j))>0) P=*(psfr+i); /********found********/ *(pstr+i)=pstr+j; *(pstr+j)=p; void main() int i; char*pstr[6],str[6][MAXLINE]; system("CLS"); for(i=O;i<6;i++) pstr[i]=str[i]; printf("/nEnter 6 string(1 string at eachline):/n"); for(i=0;i<6;i++) scanf("%s",pstr[i]); fun(pstr); printf("The strings after sorting:/n"); for(i=O;i<6;i++) printf("%s/n"pstr[i]);
问答题编写函数fun,其功能是:将s所指字符串中除了下标为奇数,同时ASCII码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #include<string.h> 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);
问答题改错题
下列给定程序中,函数fun()的功能是:在字符串str中找出ASCⅡ码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。例如,调用fun()函数之前给字符串输入fagAgBDh,调用后字符串中的内容为AfaggBDh。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
/**********************found***********************/
void fun(char p)
{
char min, *q;
int i=0;
min=p[i];
while (p[i]!=0)
{
if (min>p[i])
{
/**********************found***********************/
p=q+i;
min=p[i];
}
i++;
}
while(q>p)
{*q=*(q-1);
q--;
}
p[0]=min;
}
main()
{
char str[80];
printf("Enter a string: ");
gets(str);
printf("/nThe original string: ");
puts(str);
fun(str);
printf("/nThe string after moving: ");
puts(str);
printf("/n/n");
}
问答题给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确结果。注意:不要改动maln函数,不得增行或删行,也不得更改程序的结构。#include/*********found**********/intfun(n){intc;/*********found**********/if(n=1)c=10;elsec=fun(n—1)+2;return(c);}main(){intn;printf("Entern:");scanf("%d",&n)fprintf("Theresult:%d/n/n"rfun(n));}
问答题函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、… 都应当删除,其它依此类推。最后t所指的数组中的内容应是:"ACEG135"。
注意: 部分源程序存在文件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();
}
问答题假定整数数列中的数不重复,并存放在数组中。给定程序MODI1.C中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
给定源程序:
#include
#define N 20
fun(int *a,int n,int x)
{ int p=0,i;
a[n]=x;
while( x!=a[p] )
/TAB p=p+1;
/**********found**********/
if(P==n) return -1;
else
{ for(i=p;i
/**********found**********/
/TAB a[i+1]=a[i];
return n-1;
}
}
main()
{ int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;
n=10;
printf("The original data :/n");
for(i=0;i
printf("/nInput x (to delete): "); scanf("%d",
printf("Delete : %d/n",x);
n=fun(w,n,x);
if ( n==-1 ) printf("***Not be found!***/n/n");
else
{ printf("The data after deleted:/n");
for(i=0;i
}
}