问答题下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,若S所指字符串为“asdl23fgh543df”,处理后新字符串为“asdfghdf123543”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
char * fun(char*s)
{ int i,j,k,n;char*p,*t;
n=str1en(s)+1;
t=(char *)malloc(n *sizeof(char));
p=(char*)malloc(n * si一
zeof(char));
j=0;k=0;
for(i=0;i < n;i++)
{if(((s[i] >='a')&&(s[i]
< ='z))||((s[i] >='A')&&(s[i]
< ='Z'))){
/*********found*********/
t[j]=
【1】
;j++;}
else
{p[k]=s[i];k++;)
}
/*********found*********/
for(i=0;i <
【2】
;i++)
t[j+i]=p[i];
/*********found*********/
t[j+k]=
【3】
;
return t;
}
main()
{char s[80];
printf("Please input:");
scanf("%s",s);
printf("/nThe result is:%
s/n",fun(s));
}
问答题编程题
请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。
例如:主函数从键盘给输入n的值为56,则输出为sum=1113。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
long fun(int n)
{
}
main()
{
int n;
long sum;
printf("Input n:");
scanf("%d",
sum=fun(n);
printf("sum=%ld/n", sum);
}
问答题请编写一个函数 unsigned fun ( unsigned w ),w 是一个大于10的无符 号整数,若 w 是 n (n ≥ 2)位的整数,函数求出w的低 n-1位的数作为函数值返回。
例如:w 值为 5923,则函数返回 923; w 值为 923 则函数返回 23。
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
unsigned fun ( unsigned w )
{
}
main( )
{ unsigned x;
printf ( "Enter a unsigned integer number : " ); scanf ( "%u",
printf ( "The original data is : %u\n", x );
if ( x < 10 ) printf ("Data error !");
else printf ( "The result : %u\n", fun ( x ) );
NONO( );
}
问答题请编写函数fun,其功能县将形参s所指字符串放入形参a所指的字符数组中,使a中存放同样的字符串。说明:不得使用系统提供的字符串函数。注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语句。试题程序:#include<stdio.h>#defitie N 20void NONO();void fun(char*a,char*s){}main(){char s1[N],*s2="abcdefghijk“; fun(s1,s2); printf("%S、n",s1); printf("%S\n",s2); NONO(),}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp,*wf; int i ; char s1[256],s2[256]; fp=fopen("in.dat","r"), wf=fopen("out.dat","W"); for(i=0;i<10;i++){ fgets(s2,255,fp); fun(s1,s2); fprintf(wf,"%s",s1); } fclose(fp); fclose(wf);}
问答题请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为:1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0则函数值为61。注意:部分源程序在文件PROG1.C中。请勿改主动函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:1 #include<conio.h>2 #include<stdio.h>3 #include<stdlib.h>4 #define M 45 #define N 56 int fun(int a [M] [N])7 {89 }10 void main()11 {12 FILE*wf;13 int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{:6,9,9,9,8),{1,3,5,7,0}};14 int i,j,y;15 system(”CLS,”);16 printf("The original data is:\n");17 for(i=0;i<M;i++)18 {for(j=C;j<N;j++)19 printf("%6d",aa[i][j]);20 printf(”\n”);21 }22 y=fun(aa);23 printf("\nThe sun:%d\n",y);24 printf("\n");25 /******************/26 wf=fopen("out.dat","w");27 fprintf(wf,"%d",y);28 fclose(wf);29 /******************/30 }
问答题请编写一个函数,用来删除字符串中的所有空格。 例如,输入asd af aa z67,则输出为asdafaaz67。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio .h >#include < ctvpe.h >#include < conio.h >#include < stdlib.h >void fun (char*str){}main () { char str[81] ; char Msg[] = "Input a string:"; int n: FILE * out; printf (Msg) ; gets (str) ; puts (str) : fun (str) ; printf (" *** str: %s/n",str) ;/******************/ out = fopen ("out.dat", "w") ; fun (Msg) ; fprintf (out, "% s",Msg) ; fclose (out) ;/******************/}
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。注意:部分源程序存在PROG1.C中,请勿改动主函数mmn和其他函数中的任何内容,仅在函数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,&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("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",&a[i][j]);) } fun(a,&x,&y); fprintf(wf,"A=%d\n",x); fprintf(wf,"C=%d\n",y); fclose(fp); fclose(wf); }
问答题请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<string.h>3 #define N 804 int fun(char *s)5 {67 }8 main()9 { char 1ine[N];int num=0; void NONO();10 printf(''Enter a string:\n'');gets(line);11 num=fun(line);12 printf(''The number of wordis:%d\n\n'',num);13 NONO();14 }15 void NONO()16 {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/17 FILE *rf,*wf;int i,num;charline[N],*p;18 rf=fopen(''in.dat'',''r'');19 wf=fopen(''out.dat'',''w'');20 for(i=0;i<10;i++){21 fgets(1ine,N,rf);22 p=strchr(1ine,'\n');23 if(p!=NULL) *p=0;24 num=fun(1ine);25 fprintf(wf,''%d\n'',num);26 }27 fclose(rf);fclose(wf);28 }
问答题给定程序中,函数fun的功能是:
将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
#include < stdlib.h >
void fun(char*s,int a,double f)
{
/*********found*********/
【1】
fp;
char str[100],str1[100],
sir2[100];
int a1; double f1;
fp=fopen("filel.txt","w");
fprintf(fp,"%s%d%f/n",s,a,f);
/*********found*********/
【2】
;
fp=fopen("filel.txt","r");
/*********found*********/
fscanf(
【3】
,"%s%s%s",str,
str1,str2);
fclose(fp);
al=atoi(str1);
f1=atof(str2);
printf,"/nThe result:/nn%s%d%f/n",str,a1,f1);
}
main()
{ char a[10]="Hello!";
int b=12345;
double c=98.76;
fun(a,b,c);
}
问答题请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如:若有5门课程的成绩是:90.5,72,80,61.5,55。则函数的值为:71.80。 注意:部分源程序存在文件PROGI.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>float fun (float *a , int n){}main (){ float score[30]={90.5,72,80,61.5/55},aver;void NONO ();aver = fun(score, 5); printf("/nAverage score is: %5.2f/n", aver) ;NONO ();}void NONO ()(/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *fp, *wf ;int i, j ;float aver, score [5] ;fp = fopen("in.dat","r");wf = fopen("out.dat","w");for(i = 0 ; i < 10 ; i++) { for(j=0; j<5; j++) fscanf (fp,"%f,",aver = fun(score, 5); fprintf(wf, "%5.2f/n", aver);}fclose(fp);fclose(wf); }
问答题若干名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。请编写函数fun,其功能是:求出学生的平均分,并由函数值返回此平均成绩。例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。注意:部分源程序在文件PROC1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>#include<stdlib.h> #define N 8struct slist{double s;struct slist*next;}:typedef struct slist STREC;double fun(STREC*h){}STREC*creat(double*s){STREC*h,*P,*q;int i=0;h=P=(STREC*)malloc(sizeof(STREC));p一>s=0;while(i<N){q=(STREC*)malloc(sizeof(STREC));q一>s=s[i];i++;p一>next=q;p=q;P一>next=0:return h;}outlist(STREC*h){STREC*P;p=h一>next;printf(''head'');do{printf(''一>%4.1f'',p一>s);p=p一>next;}while(p!=0);printf(''\n\n'');}main(){double s E N]={92,83,72,81,90,85,75,65},ave;void NONO();STREC*h;h=creat(s);outlist(h);ave=fun(h);printf(''ave=%6.3f\n'',ave);NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*in,*out;int i,j;double s [N],ave;STREC*h;in=fopen(''in.dat'',''r'');out=fopen(''out.dat'',''W'');for(i=0;i<10;i++){for(j=0;j<N;j++)fseanf(in,''%lf,'',&s[j]);h=creat(s);ave=fun(h);fprintf(out,''%6.3lf''.ave);}fclose(in);fclose(out);}
问答题给定程序MOD11.C中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为1、1、2、3、5、8、13、21……例如,若给n输入7,该项的斐波拉契数值为13。 #include<stdio.h> long fun(int g) /**********found**********/ switch(g); case 0:return 0; /**********found**********/ case 1;case 2;return 1; retum(fun(g-1)+fun(g-2)); main() long fib;int n; printf("Input n:");scanf("%d",printf("n=%d/n",n); fib=fun(n); printf("fib=%dn/n/n,fib);
问答题给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define M 53 /**********found**********/4 int fun(int n,int xx[][])5 { int i,j,sum=0;6 printf(''\nThe%d x%d matrix:\n'', M, M);7 for(i=0 ; i<M;i++)8 { for(j=0;j<M;j++)9 /**********found**********/10 printf(''%f'',xx[i][j]);11 printf(''\n'');12 }13 for(i=0;i<n;i++)14 sum +=xx[i][i]+xx[i][n-i-1];15 return(sum);16 }17 main()18 { int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};19 printf(''\nThe sum of all elements on 2 diagnals is%d.'',fun(M,aa));20 }
问答题
函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。
例如,当a=45,b=12。调用该函数后,c=1425。
注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(int a, int b, long *c)
{
}
main() /*主函数*/
{ int a, b; long c;
printf("Input a b:");
scanf("%d%",
fun(a, b,
printf("The result is:%ld/n", c);
}
问答题给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 4
void fun(int (*a)[N], int *b)
{ int i,j;
for(i=0; i
/**********found**********/
b[i]= __1__;
for(j=1; j
/**********found**********/
if(b[i] __2__ a[j][i]) b[i]=a[j][i];
}
}
main()
{ int x[N][N]={ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[N],i,j;
printf("/nThe matrix :/n");
for(i=0;i
{ for(j=0;j
printf("/n");
}
/**********found**********/
fun(__3__);
printf("/nThe result is:");
for(i=0; iprintf("/n");
}
问答题函数fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数isleap用来判别某一年是否为闰年。 例如,若输入:2008 5 1,则程序输出:2008年5月1日是该年的第122天。 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!#include<stdio.h>int isleap(int year){int leap;leap=(year%4==0&&year%100!=0 ‖ year%400==0);/**********found**********/return 【1】;}int fun(int year,int month,int day) {inttable[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int days=0,i;for(i=1;i<month;i++)days=days+ table[i];/**********found**********/days=days+ 【2】 ;if(isleap(year)&&month>2)/**********found**********/days=days+ 【3】 ;return days; } main() { int year,month,day,days; printf("请输入年、月、日:");scanf("%d%d%d",&year,&month,&day);days=fun(year,month,day);printf("%d年%d月%d日是该年的第%d天\n",year,month,day,days);}
问答题给定程序MODI1.C中fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。
例如,若输入“I am a student to take the examination.”,则应输出“I aM A studenT to takE thE examination.”。
请修改程序中的错误之处,使它能得出正确的结果。
注意:不要改动main函数,不得删行,也不得更改程序的结构!
#include
#include
#include
void fun(char *p)
{
int k = 0;
if (k)
{
/*********found**********/
if(p== ' ')
{
k = 0;
/**********found***********/
* (p) = toupper (* (p — 1))
else
k =1;
}
main ()
{
char chrstr [64] ;
int d ;
printf ( "/nPlease enter an English
sentence within 63 letters: ") ;
gets (chrstr) ;
d=strlen (chrstr) ;
chrstr [d] = " ;
chrstr [d+l] = 0 ;
printf ( "/n/nBefore
changing:/n %s"t chrstr);
fun (chrstr) ;
printf ("/nAfter changing:/n %s",chrstr) ;
}
问答题编写函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc4EFg”,则应输出“aBc4EFg”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>void fun(char*ss){}void main(void){ char tt[51]; printf("\nPlease enter an character string within 50 characters:\n"); gets(tt); printf("\n\nAfter changing,the string\n%s",tt); fun(tt); printf("\nbecomes\n%s",tt);}
问答题下列给定程序中,函数fun的功能是:按以下递归公式求函数的值。例如,当给n输入5时,函数值为18;当给n输人3时,函数值为14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>/********found********/fun(n)intc;/********found********/if(n=1)c=10;eIsec=fun(n-1)+2;return(c);main()intn;printf("Encern;");scanf("%d",printf("Theresult:%d/n/n",fun(n));
问答题下列给定的程序中,函数proc()的功能是:将str所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。
例如,当str所指字符串中所指的内容为abcdabcdefg,t1所指字符串中的内容为bc,t2所指字符串中的内容为11时,结果在w所指的数组中的内容应为a11da11defg。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数。不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#incIude<conio.h>
#include<stdio.h>
#include<string.h>
//****found****
int proc(char*str, char*t1, char*t2, char*w)
{
char *p, *r, *a;
strcpy(w, str);
while(*w)
{
p=w; r=t1;
//****found****
while(r)
if(*r==*p){r++; p++; }
else break;
if(*r=="/0")
{
=w; r=t2;
//****found****
while(*r){*a=*r; a++; r++}
w+=strlen(t2);
}
else w++;
}
}
void main()
{
char str[100], t1[100], t2[100], w[100];
system("CLS");
printf("/nPlease enter string str:");
scanf("%s", str);
printf("/nPlease enter substring t1:");
scanf("%s", t1);
printf("/nPlease enter substring t2:");
scanf("%s", t2);
if(strlen(t1)==strlen(t2))
{
proc(str, t1, t2, w);
printf("/nThe result is: %s/n", w);
}
else printf("Error: strlen(t2)/n");
}