问答题假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为****A*BC*DEF*G*******,若 n的值为2,删除后,字符串中的内容则应当是 **A*BC*DEF*G*******;若n的值为4,则字符串中的内容仍为****A*BC*DEF*G******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。 注意:部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> #include <conio.h> void fun (char Aa, int n) main () char s[81];int n; printf ("Enter a string : /n") ;gets (s); printf ("Enter n : "); scanf ("%d", fun( s,n ); printf("The string after deleted :/n"); puts (s);
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60、69,则应当把分数在60—69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#define N 1 6 typedef struct{ char num[1 0]; int s;}STREC;int fun(STREC*a,STREC*b,int 1,int h){}void main(){ STREC s[N]={{"GA005",85},{"GA003",76),{"GA002",69},{"GA004",85),{"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91},{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}}; STREC h[N]; int i,n,low,heigh,t; printf("Enter 2 integer number low&heigh:"); scanf("%d%d",&low,&heigh); if(heigh<low) {t=heigh;heigh=low;low=t;} n=fun(s,h,low,heigh); printf("The student's data between %d--%d:\n",low,heigh); for(i=0;i<n;i++) printf("%s%4d\n",h[i].num,h[i].s); printf("\n");}
问答题编写函数fun,其功能是:将a、b中的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
例如,当a=45,b=12,调用该函数后c=2415。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
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);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 16
typedef struct
{ char num[10] ;
int s;
} STREC;
STREC fun(STREC *a, char *b)
{
}
main ()
{STREC s[N]={{"GA005",85},
{"GA003",76}, {"GA002",69},
{"GA004",85},{"GA001",91},
{"GA007",72},{"GA008",64},
{"GA006",87},{"GA015",85},
{"GA013",91},{"GA012", 64},
{"GA014",91},{"GA011",77},
{"GA017",64}, {"GA018",64},
{"GA016",72}};
STREC h;
char m[10];
int i;FILE *out ;
printf("The original data:/n");
for(i=0; i
问答题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 5
#define M 10
/**********found**********/
void fun(char (*ss) __1__, int k)
{ int i=0 ;
/**********found**********/
while(i< __2__) {
/**********found**********/
ss[i][k]=__3__; i++; }
}
main()
{ char x[N][M]={"Create","Modify","Sort","skip","Delete"};
int i;
printf("/nThe original string/n/n");
for(i=0;i
fun(x,4);
printf("/nThe string after deleted :/n/n");
for(i=0; i
}
问答题请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。若两个字符串长度相等,则返回第1个字符串。 例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<stdio.h> char *fun(char *s, char *t) main() char a[20],b[10],*p,*q; int i; printf ("Input 1th string: "); gets(a); printf"Input 2th string: "); gets(b); printf("%s",fun(a,b));
问答题改正下列程序中不正确的语句。
main()
{ int n ;
float s=1.0;
for(n=10;n>1;n- -)
s=s+1/n;
printf(“%6.1f\n”,s); }
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 8
typedef struct
{ char num [10] ;
double s;
} STREC;
double fun (STREC *a,STREC *b,int *n)
{
}
main ()
{STREC s [Nl={ { "GA05",85},{ "GA03",76},
{ "GA02",69},{ "GA04",85},{ "GA01",91} ,
STREC h[N],t;FILE *out ;
int i,j,n; double ave;
ave=fun (s,h,&n) ;
printf("The %d student data which
is lower than %7.3f:/n",n,ave) ;
printf ( " %s % 4 .1f/n",h [i] .num.
printf ("/n") ;
out = fopen ("out.dat","w") ;
fprintf ( out, " oo d/ n 00 7 . 3f/n" ,n,ave ) ;
for (i=0; ih [jl .s)
fprintf (out," 004.1f/n",h [i] .s) ;
fclose (out) ;
}
问答题请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
例如:二维数组中的值为:
1 3 5 7 9
2 9 9 9 4
6 9 9 9 8
1 3 5 7 0
则函数值为61。
注意:部分源程序存在文件PROG1. C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio. h>
#define M 4
#define N 5
int fun(int a[M][N])
{
}
main( )
{int aa[M][N]=({1, 3, 5, 7, 9), {2, 9, 9, 9, 4}, {6, 9, 9, 9, 8), {1, 3, 5, 7, 0}};
int i, j, y; void NONO( );
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=fun(aa);
printf("/nThe sum:%d/n", y);
printf("/n");
NONO( );
}
void NONO( )
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i, j, y, k, aa[M][N];
FILE *rf, *wf;
rf=fopen("in. dat", "r");
wf=fopen("out. dat", "w");
for(k=0; k<10; k++) {
for(i=0; i<M; i++)
for(j=0; j<N; j++) fscanf(rf. "%d",
y=fun(aa);
fprintf(wf, "%d/n", y);
}
fclose(rf);
fclose(wf);
}
问答题求两个矩阵的和。
问答题给定程序MODI1.C中函数 fun 的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 20
int fun ( int * a, int n )
{ int i, m, t, k ;
for(i=0;ia[m]) k=m;
t=a[i];a[i]=a[m];a[m]=t;
}
}
main( )
{ int x, b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i;
for ( i=0; iprintf("/n");
fun ( b, n );
for ( i=0; iprintf("/n");
}
问答题请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。
问答题
请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio .h>
#define N 80
int fun(int a[],int n)
{
}
main()
{ int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7, 8,9, 9,10,10,10,10},i,n=20;void NONO();
printf("The original data:/n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("/n/nThe data after deleted:/n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("/n/n");
NONO();
}
void NONO()
{/* 请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
FILE *rf,*wf;int a[N],n,i,j;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<5;i++) {
fscanf(rf,"%d",
for(j=0;j<n;j++) fscanf(rf,"%d",
n=fun(a,n);
for(j=0;j<n;j++) fprintf(wf,"%4d",a[j]);
fprintf(wf,"/n");
}
fclose(rf);fclose(wf);
}
问答题给定程序中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为7654321时,t中的数为642。 请改正程序中的错误,使它能得到正确结果。 [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序] #include<stdio.h> /************found***********/ void fun(long s, long t) long s1=10; s/=10; *t=s% 10; /************found************/ while(s<0) s=s/100; *t=s% 10*s1+*t; s1=s1 *10; msin() long s, t; printf("/nPlease enter s:"); scanf("%ld", &s); fun(s, &t); printf("The result is: %ld/n", t);
问答题给定程序中,函数fun的功能是:将NxN矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵: 1 2 3 交换后为: 3 2 1 4 5 6 4 5 6 7 8 9 9 8 7 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 /**********found**********/4 {void fun(int__1__,int n)5 { int i,s;6 /**********found**********/7 { for( ___2__;i++)8 { s=t[i][i];9 t[i][i]=t[i][n-i-1];10 /**********found**********/11 t[i][n-1-i]=__3__;12 }13 }14 main()15 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;16 printf(''\nThe original array:\n'');17 for(i=0;i<N;i++)18 {for(j=0;j<N;j++)printf(''%d'',t[i][j]);19 printf(''\n'');20 }21 fun(t,N);22 printf(''\nThe result is:\n'');23 for(2=0;i<N;i++)24 { for(j=0; j<N; j++) printf(''%d'',t[i][j]);25 printf(''\n'');26 }27 }
问答题程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是求出数组周边元索的平均值并作为函数值返给主函数中的s。例如:a数组中的值为则返回主程序后s的值应为3.375。注意:部分源程序存在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。给定源程序如下。#include<stdio.h>#include<stdlib.h>#defineN5doublefun(intw[][N]){}main(){inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};inti,j;doubles;printf("*****Thearray*****/n");for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4d",a[i][j]);}printf("/n");}s=fun(a);printf("*****THERESULT*****/n");printf("Thesumis:%lf/n",s);}
问答题下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。 例如,当8所指字符串中的内容为“abcdab. fabc”,t1所指串中的内容为“ab”,t2所指子串中的内容为“99”时,结果在w所指的数组中的内容应为 “abcdabt99c”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < conio.h >#include < stdio.h >#include < string.h >void fun(char *s,char t1,chart2,char w){ 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[1 00],t2[100],w[100]; printf("/nPlease enterstring S:"); Scanf("%s",s); printf("/nPlease entersubstring t1:"); scanf("%s",t1); print f("/nPlease entersubstring t2:"); scanf("%s",t2); if(str1en(t1)==str1en(t2)) { fun(s,t1,t2,w); printf ("/nThe resultis:%s、n",w); } else { printf("/nError:str1en(ti)!=str1en(t2)/n"); }}
问答题给定程序中,函数fun的功能是:
将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。
例如,形参s所指的字符串为:Abe@lx56*,程序执行后t所指字符数组中的字符串应为:A@156*。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
int fun(char*s,char *t)
{int n=0;
while(* s)
{if(*s < 97){
/*********found*********/
*(t+n)=
【1】
; n++;}
/*********found*********/
【2】
;
}
*(t+n)=0;
/*********found*********/
return
【3】
;
}
main()
{char s[81],t[81];int n;
printf("/nEnter a string:/n");
gets(s);
n=fun(s,t);
printf("/nThere are%d letter
which ASCII code is lesS than 97:
%s/n",n,t);
}
问答题下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < string.h >
#define N 5
#define M 10
int fun(char(*ss)[M],int k)
{int i,j=0,len;
/*********found*********/
for(i=0;i <
【1】
;i++)
{len=str1en(ss[i]);
/*********found*********/
if(1en < =
【2】
)
/*********found*********/
strcpy(ss[j++],
【3】
);
}
return j;
}
void main()
{ char x[N][M]={"Bei jing","Shanghai","Tianjin"," Nanjing","Wuhan");
int i,f;
printf("/nThe original
string/n/n");
for(i=0;i < N;i++)puts(x [i]);
printf("/n");
f=fun(x,7);
printf("The string witch
length is less than OE equal to
7:/n");
for(i=0;i < f;i++)puts
(x[i]);
printf("/n");
}
问答题请编写一个函数void fun(int m,intk,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。
例如,若输入17,5,则应输出19、23、29、31、37。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void fun(int m,int k,int;xx[])
{
}
void main()
{
FILE*wf;
int m,n,zz[1000];
system("CLS");
printf("/nplease enter two integers:");
scanf("%d%d",
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%d",zz[m]);
printf("/n");
/******************/
wf=fopen("out.dat","w");
fun(17,5,zz);
for(m=0;m<5;m++)
fprintf(wf,"%d",zz[m]);
fclose(wf);
/******************/
}