问答题基本操作
给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
#include
void fun( int *px, int *py)
{
/**********found**********/
int __(1)__ ;
scanf( "%d",
/**********found**********/
while __(2)__
{ if (k>0 ) a++;
if(k<0 ) b++;
/**********found**********/
__(3)__;
}
*px=a; *py=b;
}
main()
{ int x, y;
fun(
printf("x=%d y=%d/n", x,y );
}
问答题下列给定程序中,函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <conio.h> #include <string.h> #include <stdio.h> #define N 80 int fun(char *s,char *t) int n; char *p, *r; n=0; while(*s) p=s; /**************found***************/ r=p; while(*r) if*r==*p) r++; p++; else break; /**************found***************/ if(*r==0) n++; s++; return n; main() char a[N],b[N]; int m; clrscr(); printf("/nPlease enter string a:"); gets(a); printf("/nPlease enter substring b:"); gets(b); m=funa,b); printf("/nThe result is :m=%d/n",m);
问答题改错题
下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#define N 20
void fun(int *a,int n)
{
int i, m, t, k;
/**********************found***********************/
for(i=0; i
问答题下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和,和值通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/**********found**********/voidfun(intn){inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){/**********found**********/s=s+(Double)a/b;c=a;a=a+b;b=c;}return(s);}voidmain(){intn=5;system(CLS);printf(/nThevalueoffunctionis:%1f/n,fun(n));}
问答题请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值返回。例如,s所指字符串中的内容是:2det35adh253kjsaf7/kj8655x,函数fun返回值为:11注意:部分源程序在文件PROG1.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>void NONO();int fun(char*s){}main(){char*S="2clef35adh25 3kjsdf7/kj8655x"; printf("%S\n",S); printf("%d\n",fun(s)); NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp,*wf; int i; char s[256]; fp=fopen("in.dat","r"); wf=fopen("out.dat","w"); for(i=0;i<10;i++){ fgets(s,255,fp); fprintf(wf,"%d\n",fun(s)); } fclose(fp); fclose(wf);}
问答题给定程序MODIl.C中函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。 例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则C中的字符串应为:aBcdeFgH。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include<stdio.h>#include<string.h>void fun(char *p,char *q,char*c){/**********found**********/int k=1;/**********found**********/ while(*p!=*q) { if(*p<*q) c[k]=*q; else c[k]=*p; if(*p)p++; if(*q) q++; k++; }}main(){char a[10]="aBCDeFgH",b[10]="ABcd",c[80]={'\0'};fun(a,b,C);printf("The string a: ");puts(a);printf("The string b: ");puts(b);printf("The result: ");puts(c);}
问答题已知head指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。请分别编写函数,在链表中查找数据域值最大的结点:
问答题请编写函数fun(),其功能是:将s所指字符串中下标为奇数的字符删除,串中剩余字符形成的新串放在t所指数组中。 例如,当s所指字符串中的内容为siegAHdied,则在t所指数组中的内容应是seAde。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include<conio.h> #include<stdio.h> #include<string.h> void fun(char*s,char t[]) main() char s[100],t[100]; clrscr(); printf("/nPlease enter string s:"); scanf("%s",s); fun(s,t); printf("/nThe result is:%s/n",t);
问答题请编一个函数void fun(int tt[M][N],int PP[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#define M 3#define N 4void fun(int tt[M][N],int pp[N]){}void main() { int t[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; int P[N],i,j,k; system("CLS"); printf("The riginal data is:\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%6d",t[i][j]); printf("\n"); } fun(t,P); printf("\nThe result is:\n"); for(k=0;k<N;k++) printf("%4d",P[k]); printf("\n"); }
问答题请编写一个函数proc(),它的功能是:比较两个字符串的长度(不得调用C语言中求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相等,则返回第1个字符串。 例如,若输入jiangxi<CR> beijing<CR>(<CR>为回车键) 则函数返回jiangxi。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: #include<stdio.h> char * proc(char *s, char *t) void main() char a[20], b[10], *p, *q; printf("Input 1th string: "); gets(a); printf("Input 2th string: "); gets(b); printf("%s", proc(a,b));
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
void fun(STREC a[])
{
}
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
问答题下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和,和值通过函数值返回。例如,若n=5,则应输出8.391667。请改正程序中的错误,使其得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>/**********found**********/voidfun(intn){inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){/**********found**********/s=s+(Double)a/b;c=a;a=a+b;b=c;}return(s);}voidmain(){intn=5;system("CLS");printf("/nThevalueoffunctionis:%1f/n",fun(n));}
问答题(补充每对/**/之间的程序段,完成题目的要求)
问答题假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参m给出了字符串的长度,形参h给出了字符串中前*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
void proc(char*a, int m, int h, int e)
{
}
void main()
{
char s[81], *t, *f;
int m=0, tn=0, fn=0;
printf("Enter a string:/n");
gets(s);
t=f=s;
while(*t)
{t++; m++; } //m为字符串的长度
t--; //指针t指向字符串尾部
while(*t=="*")
{t--; tn++; }
//指针t指向最后一个字母,tn统计尾部"*"的个数
while(*f=="*")
{f++; fn++; }
//指针f指向第一个字母,tn统计前导"*"的个数
proc(s, m, fn, tn);
printf("The string after deleted:/n");
puts(s);
}
问答题下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用一1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数ReadText和Write.Text实现。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构! #include<stdio.h> #include<string.h> #include<stdlib.h> void WriteText(FILE*); void ReadText(FILE*); main() { FILE*fp; if((fp=fopen(“myfile4.txt”,“w”))==NULL) {prinff(“open fail!!\n”);exit(0);} WriteText(f0); fclose(fp); if((fo=fopen(“my6le4.txt”,“r”))==NULL) {prinff(“open fail!!\n”);exit(0);} ReadText(fp); fclose(fp); } /**********found**********/ void WriteText(FILE[1]) { char str[81]; printf(“\nEnter string with一1 to end:\n”); gets(str); while(strcmp(str,“一1”)!=0){ /**********found**********/ fputs([2],fw);fpnts(“\n”,fw); gets(str); } } void ReadText(FILE*fr) { char str[81]; prinff(“\nRead file and output to screen:\n”); fgets(str,81,fr); while(!feof(fr)){ /**********found**********/ prinff(“%s”,[3]); fsets(str,81,fr); } }
问答题给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本 文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(char *s, int a, double f)
{
__1__ fp;
char ch;
fp = fopen("file1.txt", "w");
fprintf(fp, "%s %d %f\n", s, a, f);
fclose(fp);
fp = fopen("file1.txt", "r");
printf("\nThe result :\n\n");
ch = fgetc(fp);
while (!feof(__2__)) {
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的功能是:计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至K所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
移动后的输出为:30 6 17 15 26 46 32 40 45 48
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 10
double fun(double *x)
{ int i,j;double aV,y[N];
av=0;
/**********found***********/
for(i=0; i
问答题给定程序MODI1.C中函数fun()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确的结果。 #include<stdio.h> #include<string.h> #define MAXLINE 20 fun(char *pstr[6]) int i,j; char *p; for(i=0;i<5;i++) /**********found**********/ for(j=i+1,j<6,j++) if(strcmp(*(pstr+i),*(pstr+j))>0) p=*(pstr+i); /**********found**********/ *(pstr+i)=pstr+j; *(pstr+j)=p; main() int i; char *pstr[6],str[6][MAXLINE]; for(i=0;i<6;i++)pstr[i]=str[i]; printf("/nEnter 6 string(1 string at each line):/n"); for(i=0;i<6;i++)scanf("%s",pstr[i]); fun(pstr); printf("The strings after sorting:/n"); for(i=0;i<6;i++)printf("%s/n",pstr[i]);
问答题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,低于平均分的学生数据放在c所指的数组中,高于等于平均分的学生人数通过形参n传回,低于平均分的学生人数通过形参m传回,平均分通过函数值返回。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <stdio.h> #define N 12 typedef struct char num[10]; double s; STREC; double fun(STREC *a,STREC *b,STREC *c,int *n,int *m) main() STREC s[N]="GA05",65,"GA03",86, "GA02",76,"GA04",95,"GA01",93, "GA07",78,"GA08",68,"GA06",88, "GA09",60,"GA11",54,"GA12",56, "GA10",98; STREC h[N],l[N],t; FILE *out; int i,j,m,n; double ave; ave=fun(s,h,l,&n,&m); printf("The %d student data which is higher than %7.3f:/n",n,ave); for(i=0;i<n;i++) printf("%s %4.lf/n",h[i].num, h[i].s); printf("/n"); printf("The %d Student data which iS lower than%7.3f:/n",m,ave); for(i=0;i<m;i++) printf("%s %4.1f/n",l[i].num, l[i].s); printf("/n"); out=fopen("out26.dat", "w"); fprintf(out, "%d/n %7.3f/n",n,ave); for(i=0;i<n-1;i++) for(j=i+1;i<n;j++) if(h[i].s<h[j].s) t=h[i];h[i]=h[i];h[j]=t; /*分数从现到低排列*/ for(i=0;i<n; i++) fprintf(out,"%4.1f/n",h[i].s); fprintf(out,"%d/n %7.3f/n",m,ave); for(i=0;i<m-1;i++) for(j=i+1;i<m;j++) if(l[i].s<l[j].s) t=l[i];l[i]=l[j];l[j]=t; /*分数从高到低排列*/ for(i=0;i<m;i++) fprintf(out,"%4.1f/n",l[i].s); fclose(out);
问答题下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> #define SIZE 20 fun (double *s, double *w) int k, i; double sum; for(k=2, i=0; i<SIZE; i++) s [i]=k; k+=2; sum=0.0; for(k=0, i=0; i<SIZE;i++) sum+=s[i]; /*************found**************/ if(i+1%5==0) w[k]=sum/5; Sum=0; k++; return k; main() double a[SIZE],b[SIZE/5]; int i, k; k=fun(a/b); printf ("The original data:/n"); for(i=0;i<SIZE;i++) if(i%5==0)printf("/n"); printf("%4.0f"/a[i]); printf"/n/nThe result:/n"); for(i=0; i<k; i++) printf("%6.2f",b[i]); printf("/n/n");
