问答题给定程序MODI1. C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio. h>
/**********found**********/
fun(char a)
{if (*a)
{fun(a+1);
/************found************/
printf("%c" *a);
}
}
main( )
{ char s[10]="abcd";
printf("处理前字符串=%s/n处理后字符串=", 8);
fun(s), printf("/n");
}
问答题请编写函数fun,其功能是:计算并输出例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。注意:要求n的值大于1但不大于100。部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<math.h>#include<stdio.h>doublefun(intn){}main(){intn;doubles;printf("/n/nInputn:");scanf("%d",s=fun(n);printf("/n/ns=%f/n/n",s);NONO();}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE*rf,*wf;intn,i;doubles;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d",s=fun(n);fprintf(wf,"%lf/n",s);}fclose(rf);fclose(wf);}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。
例如,字符串中的内容为:“* * * *A*BC*DEF*G* * * * * * *”,删除后,字符串中的内容应当是:“* * * *A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include <stdio.h>
void fun(char *a)
{
}
main( )
{char s[81];void NONO();
printf("Enter a string:/n");gets(s);
fun(s);
printf("The string after deleted:/n");puts(s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
FILE * in,*out;
int i; char s[81];
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(in,"%s",s);
fun(s);
fprintf(out,"%s/n",s);
}
fclose(in);
fclose(out);
}
问答题请编写函数proc(),该函数的功能是:将str所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若str所指字符串中的内容为aBcdefg789,其中字符B的ASCII码值为偶数……字符8的ASCII码值为偶数……都应当删除,其他依此类推。最后t所指的数组中的内容应是aceg79。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
void proc(char*str,char t[])
{
}
void main()
{
char str[100],t[100];
system("CLS");
printf("/nPlease enter string S:");
scanf("%s",str);
proc(str,t);
printf("/nThe result is:%s/n",t);
}
问答题编写函数fun,其功能是计算:s作为函数值返回。在C语言中可调用log(n)函数求ln(n)。log函数的引用说明为:doublelog(doublex)。例如,若m的值为20,则fun函数值为6.506583。注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>doublefun(intm)inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i);/*计算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/returnsqrt(s);/*对s求平方根并返回*/voidmain()system("CLS");printf("%f/n",fun(20));
问答题给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在BIANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(int*px,int*PY)
{
/*********found*********/
int
【1】
;
scanf("%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);
}
问答题给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。例如,若n=5,则应输出:8.391667。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1#include<stdio.h>2/**********found**********/3fun(intn)4{inta=2,b=1,c,k;5doubles=0.0;6for(k=1;k<=n;k++)7{s=s+1.0*a/b;8/**********found**********/9c=a;a+=b;b+=c;10}11return(s);}12main()13{intn=5;14printf(''\nThevalueoffunctionis:%1f\n'',fun(n));15}
问答题请编写函数fun, 函数的功能是: 将放在字符串数组中的M个字符串(每串的长度不超过N), 按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。
例如, 字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符串的内容应是: AAAABBBBBBBCC。
提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define M 3
#define N 20
void fun(char a[M][N], char *b)
{
/* 以下代码仅供参考 */
int i; *b=0;
}
main()
{ char w[M][N]={"AAAA","BBBBBBB","CC"}, a[100];
int i ;
printf("The string:/n");
for(i=0; i
printf("/n");
fun(w,a);
printf("The A string:/n");
printf("%s",a);printf("/n/n");
NONO();
}
问答题给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<stdlib.h>
#define N 8
typedef struct list
{ int data;
struct list *next;
} SLIST;
SLIST *creatlist(int *a);
void outlist(SLIST*);
void fun(SLIST *h, int *n)
{SLIST *p;
/**********found**********/
______=0;
p=h->next;
while(p)
{ (*n)++;
/**********found**********/
p=p->______;
}
}
main()
{ SLIST *head;
int a[N]={12,87,45,32,91,16,20,48}, num;
head=creatlist(a); outlist(head);
/**********found**********/
fun(______,
printf("/nnumber=%d/n", num);
}
SLIST *creatlist(int a[])
{SLIST *h, *p, *q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i<N; i++)
{q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{SLIST *p;
p=h->next;
if(p==NULL)printf("The list is NULL!/n");
else
{printf("/nHead");
do
{printf("->%d", p->data); p=p->next;}
while(p!=NULL);
printf("->End/n");
}
}
问答题请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<math.h>#include<stdlib.h>double fun(double x,int n){}void main(){ FILE *wf; system("CLS"); printf("%f",fun(0.3,10));/*******************/ wf=fopen("out.dat","W"); fprintf(wf,"%f",fun(0.3,10)); fclose(wf);/*******************/}
问答题编写函数fun,其功能是:根据以下公式计算s,并将计算结果作为函数值返回,n通过形参传人。例如,若n的值为11时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn)voidmain()intn;floats;system("CLS");printf("/nPleaseenterN:");scanf("%d",s=fun(n);printf("Theresultis:%f/n",s);
问答题请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。
例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define N 80
void fun(int *w, int p, int n)
{
}
main()
{ int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i,p,n=15;
printf("The original data:/n");
for(i=0; iprintf("/n/nEnter p: ");scanf("%d",
fun(a,p,n);
printf("/nThe data after moving:/n");
for(i=0; iprintf("/n/n");
NONO();
}
问答题下列给定程序中,函数fun的功能是:先把形参a所指数组中的最小值放在元素a[0]中,把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依次类推。 例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7;则按规则移动后,数据排列为:1,9,2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。 规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #define N 9 void fun(int a[],int n) int i,j,max,min,px,pn,t; for(i=0;i<n-1;i+=2) /********found********/ max=min= (1) ; px=pn=i; for(j=i+1;j<n;j++) /********found********/ if(max< (2) ) (max=a[j];px=j;) /********found********/ if(min> (3) ) (min=a[j];pn=j;) if(pn!=i) (t=a[i]=a[i]=min;a[pn]=t; if(px=i)px=pn; if(px!=i+1) (f=a[i+1];a[i+1]=max; a[px]=t;) void main() int b[N]=(9,1,4,2,3,6,5,8,7),i; printf("/nThe original data:/n"); for(i=0;i<N;i++) printf("%4d",b[i]); printf("/n"); fun(b,N); printf("/nThe data after moving:/n"); for(i=0;i<N;i++) printf("%4d",b[i]); printf("/n");
问答题编写程序,实现矩阵(3行、3列)的转置(即行列互换)。 例如,若输入下面的矩阵: 100 200 300 400 500 600 700 800 900则程序输出: 100 400 700 200 500 800 300 600 900 注意:部分源程序在文件PROGI.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#include < conio.h >#include < stdlib.h >voici fun (int array[3][3]) {}void main () { FILE *wf;int i,j,int array [3] [3] = { {100,200,300 },{400,500,600 }, {700,800,900 } };system "'CLS ") ;for(i=0;i < 3;i++){for(j=0;j < 3;j++)printf ("% 7d ",array[i][j]):printf ("/n ") ;}fun (array) ;printf ("converted array:/n ") ;for(i=0;i < 3;i++){for(j=0; j < 3;j++)printf ( "%7d ", array [ i][j]);printf ("/n ") :}/*********found*********/wf = fopen ("out.dat", "w") ;for(i=0;i < 3;i++){for(j=0;j < 3;j++)fprintf ( wf, "% 7d ",array[ i] [ j ] ) ; fprintf (wf, "/n") ; fclose (wf);/*********found*********/}
问答题给定程序MODI1.C中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。 请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<math.h>3 void fun(int a,int *b,int *c)4 { int i,j,d,y;5 for(i=3;i<=a/2;i=i+2) {6 /**********found**********/7 y=1;8 for(j=2;j<=sqrt((double)i);j++)9 if(i%j==0)y=0;10 if(y==1){11 /**********found**********/12 d==a-i;13 for(j=2;j<=sqrt((double)d);j++)14 if(d%j==0)y=0;15 if(y==1)16 {*b=i;*c=d;}17 }18 }19 }20 main()21 { int a,b,c;22 do23 {printf(''\nInput a:''); scanf(''%d'',&a);}24 while(a%2);25 fun(a,&b,&c);26 printf(''\n\n%d=%d+%d\n'',a,b,c);27 }
问答题请编写函数fun,该函数的功能是:判断字符串是否为回文,若是,则函数返回1,主函数中输出”YES”,否则返回0,主函数中输出” NO”。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include < stdio .h >#define N 80int fun (char * str){main () { char s[N] ; FILE * out; char * test[] ={"1234321","123421", "123321", "abcdCBA" } ; int i; printf ("Enter a string : "); gets (s) ; printf ("/n/n") ; puts (s) ; if (fun (s)) printf ("YES/n") ; else printf ("NO/n") ;/******************/ out = fopen ("out.dat"'"w") ; if (fun (test[i] )) fprintf (out, "YES/n") ; else fprintf (out, "NO/n") ; fclose (out) ;/******************/ }
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define M 14
void NONO();
void fun(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,
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("c:/test/in.dat","r");
wf=fopen("c:/test/out.dat","w");
for(i=0;i<M;i++)
{for(j=0;j<M;j++)
{fscanf(fp,"%c",}
}
fun(a,
fprintf(wf,"A=%d/n",x);
fprintf(wf,"C=%d/n",y);
fclose(fp);
fclose(wf);
问答题请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数:876 675 896 101 301 401 980 431 451 777 则输出结果为:6,980 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int *s,int t,int *k)3 {4 }5 main()6 {7 int a[10]={876,675,896,101,301,401,980,431,451,777},k;void NONO();8 fun(a,10,&k);9 printf(''%d,%dkn'',k,a[k]);10 NONO();11 }12 void NONO()13 {/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/14 int a[10],i,k,j;15 FILE *rf,*wf;16 rf=fopen(''in.dat'',''r'');17 wf=fopen(''out.dat'',''w'');18 for(i=0;i<10;i++) {19 for(j=0;j<10;j++)fscanf(rf,''%d'',21 fprintf(wf,''%d,%d\n'',k,a[k]);22 }23 fclose(rf);24 fclose(wf);}
问答题下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。
例如,若字符串为aass 1kaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
int fun(char *str, char *substr)
{ int i, j, k, num=0;
/********** found**********/
for(i=0, str[i], i++)
for(j=i, k=0; substr[k]==str[j]; k++, j++)
/********** found**********/
If(substr[k+1]=='\0')
{ num++;
break;
}
return num;
}
main()
{
char str[80], substr[80];
printf(Input a string:);
gets(str);
printf(Input a substfing: );
gets(substr);
printf(%d\n, fun(str, substr));
}
问答题函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则转换成对应的小写英文字母;若是其它字符则保持不变;并将转换后的结果作为函数值返回。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
char fun(char ch)
{
/**********found**********/
if ((ch>='a')___1___(ch<='z'))
return ch -'a' + 'A';
if ( isupper(ch) )
/**********found**********/
return ch +'a'-___2___ ;
/**********found**********/
return ___3___;
}
main()
{ char c1, c2;
printf("/nThe result :/n");
c1='w'; c2 = fun(c1);
printf("c1=%c c2=%c/n", c1, c2);
c1='W'; c2 = fun(c1);
printf("c1=%c c2=%c/n", c1, c2);
c1='8'; c2 = fun(c1);
printf("c1=%c c2=%c/n", c1, c2);
}