问答题编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在12数的千位和十位上。例如,当a=45,b=12时,调用该函数后,c=1524。注意:部分源程序给出如下。数据文件IN.DAT中的数据不得修改。请勿改动主函数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",&a,&b); fun(a,b,&c); printf("The result is:%id\n",c);}
问答题函数fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数isleap用来判别某一年是否为闰年。例如,若输入:200851,则程序输出:2008年5月1日是该年的第122天。请在程序的下划线处境入正确的内容,并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!试题程序:
问答题从键盘上输入三个数,求出其中最大的一个数。
问答题给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45
按升序排列时的中间数为:8
处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 9
int fun(int x[])
{int i,j,k,t,mid,b[N];
for(i=0;i<N;i++)
b[i]=x[i];
for(i=0;i<=N/2;i++)
{ k=i;
for(j=i+1;j<N;j++)
if(b[k]>b[j])k=j;
if(k!=i)
{
/*********found*********/
t=b[i];b[i]=
【1】
;
b[k]=t;
}
}
/*********found*********/
mid=b[
【2】
];
for(i=0;i<N;i++)
/*********found*********/
if(x[i]
【3】
mid)x[i]=mid;
return mid;
}
main()
{int i,x[N]={1,5,7,23,87,5,8,21,45};
for(i=0;i<N;i++)
printf("%d",x[i]);
printf("\nThe mid data is:%d\n",fun(x));
for(i=0;i<N,i++)
printf("%d",x[i]);
printf("\n");
}
问答题请编写函数proc(),该函数的功能是:计算n门课程的平均分,计算结果作为函数值返回。
例如,有6门课程的成绩是90.5,72,80,61.5,55,60,则函数的值为69.83。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
float proc(float*a,int n)
{
}
void main()
{
float score[30]={90.5,72,80,61.5,55,60},
aver;
aver=proc(score,6);
printf("/nAverage score is:%5.2f/n",aver);
}
问答题下列给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……以此类推。例如,若N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #define N 7 /******found******/ void fun(int(*a)【1】) { int i,j,k,m; if(N%2==0)m=N/2; else m=N/2+1; for(i=0;i<m;i++) { /******found******/ for(j=【2】;j<N—i;j++) a[i][j]=a[N—i一1][j]=i+1; for(k=i+1;k<N—i;k++) /******found******/ a[k][i]=a[k][N—i一1]=【3】; } } main() { int x[N][N]={0},i,j; fun(x); printf("The result is:\n"); for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%3d",x[i][j]); printf("\n"); } }
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导木号不得多于n个,若多于n个,则删除多余的*号;若少于或等于n个,则不做处理。字符串中间和尾部的*号不删除。例如,字符串中的内容为“*******A*BC*DEF*G****”,若n的值为4,删除后,字符串中的内容应当是“****A*BC*DEF*G****”;若n的值为8,则字符串中的内容仍为“*******A* BC*DEF*G****”。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>void fun(char*a,int n){}void main(){ char s[81]; int n; printf("Enter a string:\n"); gets(s); printf("Enter n:"); scanf("%d",&n); fun(s,n); printf("The string after deleted:\n"); puts(s);}
问答题给定程序MODI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前三个字符中,……。待排序的字符串已在主函数中赋予。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
给定源程序:
#include
#include
#define N 80
void insert(char *aa)
{ int i,j,n; char ch;
/**********found**********/
n=strlen[ aa ];
for( i=1; i
/**********found**********/
c=aa[i];
j=i-1;
while ((j>=0)
j--;
}
aa[j+1]=ch;
}
}
main( )
{ char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";
int i ;
printf ("The original string : %s/n", a);
insert(a) ;
printf("The string after sorting : %s/n/n",a );
}
问答题编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,若输入下面的矩阵:
100 200 300
400 500 600
700 800 900
则程序输出:
100 400 700
200 500 800
300 600 900
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <stdio.h>
#include <conio.h>
int fun (int array[3][3])
{
}
main()
{
int i,j;
int array [3][3]={{100,200,300},{400,
500,600},{700,800,900}};
clrscr();
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 ");
}
}
问答题下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
int fun (char*s, char *t)
{
int n;char *p,*r;
n=0;
while(*s)
{
p=s;
r=t;
while(* r)
/**********found**********/
if(*r==*p){r++;p++}
else break;
/**********found**********/
if(r=="\0")
n++;
s++;
}
return n;
}
void main()
{
char s[100],t[100];int m;
system("CLS");
printf("\nPlease enter strings;");
scanf("%s",s);
printf("\nPlease enter substringt;");
scanf("%s",t);
m=fun(s,t);
printf("\nThe result is:m=%d \n",m);
}
问答题下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdlib.h>#include<math.h>#include<stdio.h>floatfun(floatnum){ints;floatn,t,pi;t=1;pi=0;n=1;s=1;/*********found*********/while(t>=num){pi=pi+t;n=n+2;s=-s;/*********found*********/t=s%n;}pi=pi*4;returnpi;}voidmain(){floatn1,n2;system("CLS");printf("Enterafloatnumbet:");scanf("%f",&n1);n2=fun(n1);printf("%6.4f\n",n2);}
问答题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>#define N 8typedef struct{char num[10];double s[N];double ave;}STREC;void fun(STREC*a){}main(){STREC s={''GA005'',85.5,76,69.5,85,91,72,64.5,87.5};int i;void NONO();fun(&s);printf(''The%s'sstudentdata:\n''s.num);for(i=0;i<N;i++)printf(''%4.1f\n'',s.s[i]);printf(''\nave=%7.3f\n'',s.ave);NONO();}void NONO(){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*out;int i,j;STREC s[10]={{''GA005'',85.5,76,69.5,85,91,72,64.5,87.5},{GA001'',82.5,66,76.5,76,89,76,46.5,78.5},{''GA002'',72.5,56,66.5,66,79,68,46.5,58.5},{''GA003'',92.5,76,86.5,86,99,86,56.5,88.5},{''GA004'',82,66.5,46.5,56,76,75,76.5,63.5},{''GA006'',75.5,74,71.5,85,81,79,64.5,71.5},{''GA007'',92.5,61,72.5,84,79,75,66.5,72.5},{''GA008'',72.5,86,73.5,80,69,63,76.5,53.5},{''GA009'',66.5,71,74.5,70,61,82,86.5,58.5},{''GA010'',76,66.5,75.5,60,76,71,96.5,93.5},};out=fopen(''out.dat'',''W'');for(i=0;i<10;i++)fun(&s[i]);fprintf(out,''%7.3f\n'',s[i].ave);fclose(out);}
问答题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。
例如,若学生的成绩是:85,76,69,85,91,72,64,87,则平均分应当是:78.625。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 8
struct 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 (is=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("—>004.1f",p一>s);p=p—> next;)
while(p!=0);
printf("/n/n");
}
main()
{double s[N]={ 85,76,69,85,91,72,
64,87),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
问答题编写函数fun, 函数的功能是求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数的个数。函数fun中给出的语句仅供参考。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#define MAX 100
int fun(int lim, int aa[MAX])
{
/* 以下代码仅供参考 */
int i,j,k=0;
/* 其中变量k用于统计素数个数 */
for(i=2;i<=lim;i++)
{
/* 以下完成判断aa数组中小于或等于lim的素数并统计个数 */
}
return k;
}
main()
{
int limit, i, sum;
int aa[MAX] ;
printf("输入一个整数");
scanf("%d",
sum=fun(limit, aa);
for(i=0 ; i < sum ; i++) {
if(i % 10 == 0
printf("]", aa[i]) ;
}
NONO();
}
问答题编写函数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",&n);s=fun(n);printf("Theresultis:%f\n",s);}
问答题给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
#define N 9
long ctod( char *s )
{ long d=0;
while(*s)
if(isdigit( *s)) {
/**********found**********/
d=d*10+*s-__1__;
/**********found**********/
__2__; }
return d;
}
long fun( char *a, char *b )
{
/**********found**********/
return __3__;
}
main()
{ char s1[N],s2[N];
do
{ printf("Input string s1 : "); gets(s1); }
while( strlen(s1)>N );
do
{ printf("Input string s2 : "); gets(s2); }
while( strlen(s2)>N );
printf("The result is: %ld/n", fun(s1,s2) );
}
问答题请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h> #include <string.h> #define N 80 int fun(char *s) {}main (){ char line[N];int num=0;void NONO ();printf("Enter a string :/n"); gets(line);num=fun(line) ;printf("The number of word is : %d/n/n",num);NONO();}void NONO (){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/FILE *rf, *wf ; int i, num ; char line[N], *p ;rf = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) {fgets(line, N, rf) ;p = strchr(line, '/n');if(p != NULL) *p = 0 ;num = fun(line);fprintf(wf, "%d/n", num);}fclose(rf); fclose(wf);}
问答题给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:
问答题请编写函数proc(),其功能是:计算并输出下列多项式的值。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+m)
例如,若主函数从键盘给m输入20后,则输出为S=1.904762。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
double proc(int m)
{
}
void main()
{
int m;
double s;
printf("/nlnput m:");
scanf("%d",
s=proc(m);
printf("/n/ns=%f/n/n",s);
}
问答题下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEFGHI JK”。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>void fun(char*P,char*b){int i,k=0; while(*P) { i=1; while(i<=3&&*P){/*********found*********/ b[k]=P; k++;P++;i++; } if(*P) {/*********found*********/ b[k++]=" "; }} b[k]='\0';}main(){ char a[80],b[80]; printf("Enter a string:"); gets(a); printf("The original string:"); puts(a); fun(a,b); printf("\nThe string after insert space:"); puts(b);printf("\n\n");}