问答题例如, 在主函数中从键盘给x输入0.21后,输出为:s=1.100000。
注意: 部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的
花括号中填入你编写的若干语句。
给定源程序:
#include
#include
double fun(double x)
{
}
main()
{ double x,s;
printf("Input x: "); scanf("%lf",
s=fun(x);
printf("s=%f/n",s);
NONO();
}
问答题函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDE FG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“135”。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数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,其功能是:找出一维整型数组元素中最大的值所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意:部分源程序给出如下。
请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
试题程序:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void fun(int a[],int n,int*max,int*d)
{
}
void main()
{
int i,x[20],max,index,n=10;
sranf((unsigned)time(NULL));
for(i=0;i<=n;i++)
{
x[i]=rand()%50;
printf("%4d",x[i]);//输出一个随机数组
}
printf("/n");
fun(x,n,
printf("Max=%5d,Index=%4d/n",max,index);
}
问答题函数fun()的功能是:将s所指字符串中的字母转换为按字母序列排列的其后续字母(注:Z转换为A,z转换为a),其他字符不变。 改正函数fun()中指定部分的错误,使它能得出正确的结果。 #include<stdio.h> #include<ctype.h> void fun(char *s) /**********found**********/ while(*s!='@') if(*s>='A' else if(*s=='Z')*s='a'; else *s+=1; /**********found**********/ (*s)++; main() char s[80]; printf("/n Enter a string with length<80.:/n/n");gets(s); print"/n The string:/n/n");puts(s); fun(s); printf("/n/n The Cords:/n/n");puts(s);
问答题给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<stdlib.h>3 int fun(char *source,char*target)4 {FILE *fs,*ft; char ch;5 /**********found**********/6 if((fs=fopen(source,_1__))==NULL)7 return 0;8 if((ft=fopen(target,''w''))==NULL)9 return 0;10 printf(''\nThe data in file:\n'');11 ch=fgetc(fs);12 /**********found**********/13 while(!feof(__2__))14 { putchar(ch);15 /**********found**********/16 fputc(ch,__3__);17 ch=fgetc(fs);18 }19 fclose(fs);fclose(ft);20 printf(''\n\n'');21 return 1;22 }23 main()24 { char sfname[20]=''myfile1'', tfname[20]=''myfile2'';25 FTTE *myf;int i;char c;26 myf=fopen(sfname,''w'');27 printf(''\nThe originaldata:\n'');28 for(i=1;i<30;i++)29 { c='A'+rand() %25;30 fprintf(myf,''%c'',c);31 printf(''%c'',c);}32 fclose(myf);printf(''\n\n'');33 if(fun(sfname,tfname))34 printf(''Succeed!'');35 else printf(''Fail!'');36 }
问答题编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考。)
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
void fun(char(*a)[81], int num, char**max)
{
/*以下代码仅供参考*/
int i, k=0, len, maxlen; /*k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长*/
maxlen=strlen(a[k]);
for(i=1; i<num; i++)
{
/*以下完成查找最长串*/
}
*max=a[k];
}
main()
{
char ss[10][81], *ps;
int n, i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i], "****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=1;
fun(ss, n,
printf("/nmax=%s/n", ps);
}
问答题编写函数int proc(int lim,int aa[M]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数。
例如,若输入12时,则输出:2 3 5 7 11。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<iconio.h>
#include<stdio.h>
#define M 100
int proc(int lim,int aa[M])
{
}
void main()
{
int limit,i,sum;
int arr[M];
system("CLS");
printf("输入一个整数");
scanf("%d",
sum=proc(limit,arr);
for(i=0;i<sum;i++)
{
if(i%10==0
printf("%5d",arr[i]);
}
}
问答题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define M 5
#define N 20
void fun(char (*ss)[N])
{ int i, j, n, len=0;
for(i=0; i
{ len=strlen(ss[i]);
if(i==0) n=len;
if(len>n)n=len;
}
for(i=0; i
/**********found**********/
n=strlen(___1___);
for(j=0; j
/**********found**********/
ss[i][ ___2___]='*';
/**********found**********/
ss[i][n+j+ ___3___]='/0';
}
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int i;
printf("The original strings are :/n");
for(i=0; i
printf("/n");
fun(ss);
printf("The result is :/n");
for(i=0; i
}
问答题下列给定程序的功能是:建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>typedef struct aa{ int data; struct aa * next;}NODE;fun(NODE * h){ int max=-1; NODE*P;/*********found*********/ P=h; while(P) {if(P->data>max) max=P->data;/*********found*********/ P=h->next; } return max;}outresult(int s,FILE*pf){fprintf(pf,"\nThe max in link:%d\n",s);}NODE*creatlink(int n,int m){NODE * h,*p,*s ; int i; h=P=(NODE*)malloc(sizeof(NODE)); h->data=9999; for(i=1;i<=n;i++) {s=(NODE*)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s;p=p->next; } p->next=NULL; return h;}outlink(NODE*h,FILE*Pf){NODE*P; p=h->next; fprintf(pf,"\n The LIST:\n\nHEAD"); while(P) {fprintf(pf,"->%d",P->data); P=P->next;) fprintf(pf,"\n");}main(){NODE*head;int m; system("CLS"); head=creatlink(12,100); outlink(head,stdout); m=fun(head); printf("\nThe RESULT:\n"); outresult(m,stdout);}
问答题给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵
1 2 3
4 5 6
7 8 9
程序执行结果为
0 0 1
0 0 4
0 0 7
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#define N 4
void fun(int(*t)[N], int m)
{int i, j;
/**********found**********/
for(i=0; i<N; ______)
{for(j=N-1-m; j>=0; j--)
/**********found**********/
t[i][j+______]=t[i][j];
/**********found**********/
for(j=0; j<______; j++)
t[i][j]=0;
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m;
printf("/nThe original array:/n");
for(i=0; i<N; i++)
{for(j=0; j<N; j++)
printf("%2d", t[i][j]);
printf("/n");
}
printf("Input m(m<=%d): ", N); scanf("%d",
fun(t, m);
printf("/nThe result is:/n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++)
printf("%2d", t[i][j]);
printf("/n");
}
}
问答题请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度
0.0005, 即某项小于0.0005时停止迭代):
π 1 1×2 1×2×3 1×2×3×4 1×2×…×n
─ = 1+─+─—+────+──────+……+────────
2 3 3×5 3×5×7 3×5×7×9 3×5×…×(2n+1)
程序运行后,如果输入精度0.0005,则程序输出为3.14…。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
double fun ( double eps)
{
}
main( )
{ double x;
printf("Input eps:") ;
scanf("%lf", printf("/neps = %lf, PI=%lf/n", x, fun(x));
NONO();
}
问答题程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][N], int n),函数的功能是:使数组左下三角元素中的值乘以n 。
例如:若n的值为3,a 数组中的值为 | 1 9 7 | | 3 9 7 |
a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 6 9 8 |
| 4 5 6 | | 12 15 18|
注意: 部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 5
int fun ( int a[][N], int n )
{
}
main ( )
{ int a[N][N], n, i, j;
printf("***** The array *****\n");
for ( i =0; i=3 );
printf("n = %4d\n",n);
fun ( a, n );
printf ("***** THE RESULT *****\n");
for ( i =0; i
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include <stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
void fun(STREC a[])
{
STREC tmp;
inti,j;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
{ /*请按题目要求完成以下代码*/
}
}
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",66},{"GA017",64},
{"GA018",64},{"GA016",72}};
int i;FILE *out;
fun(s);
printf("The data after sorted:/n");
for(i=0;i<N;i++)
{ if((i)%4==0)printf("/n");
printf("%s%4d",s[i].num,s[i].s);
}
printf("/n");
out=fopen("c://test//out.dat","w");
for(i=0;i<N;i++)
{ if((i)%4==0
fprintf(out,"%4d",s[i].s);
}
fprintf(out,"/n");
fclose(out);
}
问答题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:30 6 17 15 26 46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdlib.h>2 #include<stdio.h>3 #define N 104 double fun(double *x)5 { int i,j;double av,y[N];6 av=0;7 /**********found**********/8 for(i=0;i<N; i++) av+=__1__;9 for(i=j=0; i<N;i++)10 if(x[i]<av){11 /**********found**********/12 y[j]=x[i];x[i]=-1;_2__;}13 i=0;14 while(i<N)15 { if(x[i]!=-1)y[j++]=x[i];16 /**********found**********/17 __3__;18 }19 for(i=0;i<N;i++)x[i]=y[i];20 return av;21 }22 main()23 { int i;double x[N];24 for(i=0;i<N;i++){x[i]=rand()%50;printf(''%4.of'',x[i]);}25 printf(''\n'');26 printf(''\nThe average is:%f\n'',fun(x));27 printf(''\nThe result:\n'',fun(x));28 for(i=0 ; i<N;i++) printf(''%5.of'',x[i]);29 printf(''\n'');}
问答题编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为: F(0)=0,F(1):1 F(n)=F(n—1)+F(n一2) 例如,当t=1000时,函数值为1597。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < conio.h >#include < math.h >#include < stdio.h >int fun(int t){}main(){ int n; n=10 00; printf("n:%d,f=%d/n",n,fun(n));}
问答题下列给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去掉,剩余的数按原来从高位到低位的顺序组成一个新数,并通过形参指针n传回所指变量。
例如,若输入一个数27638496,则新数为739。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
void fun(unsigned long*n)
{ unsigned long x=0,i;int t;
i=1;
while(*n)
/*********found*********/
{t=*n%
【1】
;
/*********found*********/
if(t%2 1=
【2】
)
{x=x+t*i;i=i*10;)
*n=* n/10;
}
/*********found*********/
*n=
【3】
;
}
mein()
{ unsigned long n=一1;
while(n >9 9 9 9999 9||n < 0)
f printf("Please input(0 <
n < 1 000 00 00 0):");
Scanf("%id",&n);}
fun(&n);
printf("/nThe result is:%Id/n",n);
}
问答题给定程序中,函数fun的功能是:
将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
void fun(char *s,int a,double f)
{
/*********found*********/
【1】
fp;
char ch;
fp=fopen("filel.txt","w");
fprintf(fp,"%s%d%f/n",s,a,f);
fclose(fp);
fp=fopen ("filel.txt","r");
printf ("/nThe result:/n/n");
ch=fgetc(fp);
/*********found*********/
while(!feof(
【2】
)){
/*********found*********/
putchar(
【3】
);ch=fgetc(fp);}
putchar('/n');
fclose(fp);
}
main()
{char a[10]="Hello!";
int b=12345;
double C=98.76;
fun(a,b,c);
}
问答题编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>#include<math.h>doublefun(doublex,intn){}main(){voidNONO();printf("%f/n",fun(0.3,10));NONO();}voidNONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti,n;doubles,x;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%1f,%d",s=fun(x,n);fprintf(wf,"%f/n",s);}fclose(fp);fclose(wf);}
问答题下列给定程序中,函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中,再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中,依此类推。
例如,若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.n>
#define N 9
/*********found*********/
void fun(int
【1】
,int n)
{ int i,j,max,min,px,pn,t;
/*********found*********/
for(i=0;i<n一1;i+=
【2】
)
{ max=min=a[i];
px=pn=i;
/*********found*********/
for(j=
【3】
;j<n;j++)
{if(max<a[j])
{max=a[j]; px=j;}
if(min>a[j])
{min=a[j];pn=j;)
}
if(px!=i)
{t=a[i];a[i]=max;
a[px]=t;
if(pn==i)pn=px;
}
if(pn!=i+1)
{t=a[i+1];a[i+1]=min;
a[pn]=t;)
}
}
main()
{int b[N]={1,4,2,3,9,6,5,8,7),i;
printf("\nThe original data:\n");
for(i=0;i<N;i++)
printf("%4 d",b[i]);
printf("\n");
fun(b,N);
printf("\nThe data after moving:\n");
for(i=0;i<N;i++)
printf("%4 d",b[i]);
printf("\n");
}
问答题请编写一个函数,函数的功能是删除字符串中的所有空格。例如,主函数中输入''asd afaa z67'',则输出为''asdafaaz67''。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 #include<ctype.h>3 void fun(char *str)4 {56 }7 main()8 {9 char str[81]; void NONO ();10 printf(''Input a string:'');11 gets(str);12 puts(str);13 fun(str);14 printf(''*** str: %s\n'',str);15 NONO();16 }17 void NONO()18 {19 /*请在此函数内打开文件,输入调试数据,调用fun函数,输出数据,关闭文件。*/20 char str[81];21 int n=0;22 FILE *rf,*wf;23 rf= fopen(''in.dat'',''r'');24 wf=fopen(''out.dat'',''w'');25 while(n<10) {26 fgets(str, 80, rf);27 fun(str);28 fprintf(wf,''%s'',str);29 n++;30 }31 fclose(rf);32 fclose(wf);33 }
