问答题下列给定程序中,函数fun的功能是:根据整形参m的值,计算如下公式的值。例如,若m的值为5,则应输出0.536389。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
问答题程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
typedef struct
{ int num;
char name[9];
char sex;
struct { int year,month,day ;} birthday;
float score[3];
}STU;
void show(STU ___1___)
{ int i;
printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex,
tt.birthday.year, tt.birthday.month, tt.birthday.day);
for(i=0; i<3; i++)
printf("%5.1f", ___2___);
printf("\n");
}
main( )
{ STU std={ 1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0 };
printf("\nA student data:\n");
show(___3___);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中。请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是60、69,则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <stdio.h>
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
int fun(STREC*a,STREC*b, int 1, int h)
{
}
void main()
{
STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91},{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}};
STREC h[N];
int i,n,low,heigh,t;
printf("Enter 2 integer number low
scanf("%d%d",
if(heigh<low)
{t=heigh;heigh=low;low=t;}
n=fun(s,h,low,heigh);
printf("The student"s data between%d--%d:\n",low,heigh);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf("\n");
}
问答题函数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所指数组中数据的个数。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 9
/********* found* *********/
void fun (int 【1】, int n)
{ int i, j, max, min, px, pn, t;
/********* found**********/
for (i=0; i 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+l];a[i+l]=min;a[pn]=t;}
}
}
main ()
{int b[N] = {l,4,2,3,9,6,5,8,7}, i;
printf ("/nThe original data:/n");
for (i=0; i
问答题假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。
例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容应当是abcdefg****。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
void proc(char *str, char *p)
{
}
void main()
{
char str[81], *t;
printf("Enter a string:/n");
gets(str);
t=str;
while(*t)
t++;
t--; //指针t指向字符串尾部
while(*t=="*")
t--; //指针t指向最后一个字母
proc(str, t);
printf("The string after deleted:/n");
puts(str);
}
问答题函数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所指数组中数据的个数。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 93 /**********found**********/4 void fun(int___1___,int n)5 { int i,j,max,min,px,pn,t;6 /**********found**********/7 for(i=0;i<n-1;i+=__2__)8 { max=min=a[i];9 px=pn=i;10 /**********found**********/11 for(j=__3__;j<n;j++)12 { if(max<a[j])13 { max=a[j];px=j;)14 if(min>a[j])15 { min=a[j]; pn=j;}16 }17 if(px!=i)18 {t=a[i]; a[i]=max;a[px]=t;19 if(pn==i)pn=px;20 }21 if(pn!=i+1)22 {t=a[2+1];a[i+1]=min;a[pn]=t;}23 }24 }25 main()26 {int b[N]={1,4,2,3,9,6,5,8,7},i;27 printf(''\nThe original data:\n'');28 for(2=0;i<N;i++)printf(''%4d'',b[i]);29 printf(''\n'');30 fun(b,N);31 printf(''\nThe data after moving:\n'');32 for(2=0;i<N;i++)printf(''%4d'',b[i]);33 printf(''\n'');34 }
问答题给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include<stdio.h>
#include<stdlib.h>
fun(int n,int*a)
{int i,j,p,t;
for(j=0;j<n-1;j++)
{p=j;
/**********found**********/
for(i=j+1;i<n-1;i++)
if(a[p]>a[i])
/**********found**********/
t=i;
if(p!=j)
{t=a[j];a[j]=a[p];a[p]=t;}
}
}
putarr(int n,int*z)
{int i;
for(i=1;i<= n;i++,z++)
{printf("%4d",*z);
if(!(i%10))printf("/n");
} printf("/n");
}
main()
{int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;
printf("/n/nBefore sorting %d numbers:/n",n);
putarr(n,aa);
fun(n,aa);
printf("/nAffer sorting%d numbers:/n",n);
putarr(n,aa);
}
问答题人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#defiRe N 8typedef struet{ int num; int year,month,day;}STU;int fun(STU*std,STU*k,int year){ int i,n=0; f10r(i=0;i<N;i++)/******found******/ if(__1__==year)/******found******/ k[n++]=__2__;/******found******/ retum(__3__);}main(){ STU std[N]={{1,1984,2,15},{2,1983,9,21},{3,1984,9,1},{4,1983,7,15},{5,1985,9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}}; STU k[N]; int i,n,year; printf(“Enter a year:”); scartf(“%d”,a,year); n=fun(std,k,year); if(n==0) printf(“\nNo person was bom in%d、n”,year); else { prirtf(“\nlhese persons were in%d\n”,year); for(i=0;i<n;i++) prinff(“%d%d一%d一%d\n”,k[i].num,k[i].year,k[i].month,k[i].day); }}
问答题下列给定程序中,函数fun()的功能是:求出数组中最大数和次最大数,并把最大数和b[0]中的数对调、次最大数和b[1]中的数对调。
请修改程序中的错误,得出正确的结果。
注意:不要改动math()函数,不能增行或删行,也不能更改程序的结构。
试题程序:
#include<conio.h>
#include<stdio.h>
#define N 10
//****error****
void fun()
{
int i, m, t, j;
for(i=0; i<2; i++)
{
//****error****
m=0;
for(j=i+1; j<n; j++)
if(b[j]>b[m])
m=j;
t=b[i];
b[i]=b[m];
b[m]=t;
}
}
void main()
{
int a[N]={5, 12, 9, 7, 10}, n=5, i;
for(i=0; i<n; i++)
printf("%d", a[i]);
printf("/n");
fun(a, n);
for(i=0; i<n; i++)
printf("%d", a[i]);
printf("/n");
}
问答题下列给定程序中,函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串之后。 例如,当s所指的字符串为“ABCDE”时,t所指的字符串应为“EDCBAABCDE”。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include < stdlib.h >#include < conio.h >#include < stdio.h >#include < string.h >void fun(char*s,char*t){/*********found*********/ int i; s1=str1en(s); for(i=0;i < s1;i++)/*********found*********/ t[i]=s[s1一i]; for(i=0 ; i < =s1 ; i++) t[s1+i]=s[i]; t[2*s1]='/0';}void main(){ char s[1 00],t[1 00]; system("CLS"); printf("/n Please enterstring s:"); scanf("%s",s); fun(S,t); printf ("The result is:%s/n",t);}
问答题下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。 例如,若字符串为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 substring:"); gets(substr); printf("%d/n",fun(str,substr));}
问答题编写程序,实现矩阵(3行、3列)的转置(即行列互换)。
例如,若输入下面的矩阵:
100 200 300
400 500 600
700 800 900
则程序输出:
100 400 700
200 500 800
300 600 900
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#indude<stdio.h>
#include<conio.h>
#include<stdlib.h>
void fun(int array[3][3])
{
}
void main()
{
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");
}
}
问答题给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得史改程序的结构!试题程序:
问答题编写函数fun(),其功能是:根据以下公式求π的值(要求精度为0.0005,即某项小于0.0005时停止迭代)。程序运行后,若输入精度为0.0005,则程序应输出为3.14…。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps){}voidmain(){doublex;printf("Inputeps:");scanf("%if",printf("/neps=%if,PI=%if/n",x,fun(x));}
问答题给定程序MODI1.C中,fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中余下的数据。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>#include<stdlib.h>#define N 20int fun(int *b){/*********found*********/ int t[N],i,num for(i=0;i<N;i++) if(b[i]>=10) /*********found*********/ t[++num]=b[i]; /*********found*********/ for(i=0;i<nun;i++) b[i]=t[i]; return(num);}main(){ int a[N],i,num; printf("a数组中的数据:\n"); for(i=0;i<N;i++) {a[i]=rand()%21; printf("%4 d",a[i]);) printf("\n"); num=fun(a); for(i=0;i<num;i++) printf("%4 d",a[i]), printf("\n");}
问答题给定程序MODl1.C中,函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的个数(存在变量one中),并输出结果。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include < stdio.h >void fun(int*s,int n){/*********found*********/ int i,one:0,zero; for(i=0 ; i < n; i++)/*********found*********/ switch(S[i]); {/*********found*********/ case 0:zero++; case 1:one++; } printf("one:%d zero:%d/n",one,zero);}main(){int a[20]={1,1,1,0,1,0,0,0,1,0,0,1 ,1,0 ,0,1,0 ,1,0.0},n=20; fun(a,n);}
问答题函数fun的功能是:计算直到-6。若x=2.5,函数值为:1.917915。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#includedoublefun(doublex){doublef,t;intn;f=1.0+x;/**********found**********/t=【1】;n=1;do{n++;/**********found**********/t*=(-1.0)*x/【2】;f+=t;}/**********found**********/while(【3】>=le-6);returnf;}main(){doublex,y;x=2.5;y=fun(x);printf("/nTheresultis:/n");printf("x=%-12.6fy=%-12.6f/n",x,y);}
问答题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、"ZhangQi"、93、85、87,修改后输出t中的数据应为:10004、"LiJie"、93、85、87。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
struct student {
long sno;
char name[10];
float score[3];
};
void fun(struct student *b)
{
/********** found**********/
b【1】 = 10004;
/********** found**********/
strcpy(b【2】, "LiJie");
}
main ()
{struct student t={10002,
"ZhangQi",93,85,87} ;
int i;
printf("/n/nThe original data:/n");
printf("/nNo: %ld Name: %s/nScores:
",t.sno, t.name);
for (i=0; i<3; i++)
printf("%6.2f ",t.score[i]);
printf("/n");
/********** found* *********/
fun (【3】) ;
printf("/nThe data after modified:
/n");
printf("/nNo: %ld Name: %s/nScores:
",t.sno, t.name);
for (i=0; i<3; i++)
printf("%6.2f ", t.score[i]);
printf("/n");
}
问答题下列给定程序中,函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
例如,调用fun函数之前给字符串输入“ABCDeFGH”,调用后字符串中的内容应为“eABCDFGH”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
void fun(char*p)
{
char max,*q;int i=0;
max=p[i];
while(p[i]!=0)
{
if(max<p[i])
{ max=p[i];
/**********found**********/
q=p+i
}
i++;
}
/**********found**********/
while(q<p)
{
*q=*(q-1);q--;
}
p[0]=max;
}
void main()
{
char str[80];
printf("Enter a string:");gets(str);
printf("\nThe original string:");
puts(str);
fun(str);
printf("\nThe string after moving:");
puts(str);printf("\n\n");
}
问答题编写函数fun,其功能是:实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。 例如,输入下面的矩阵: 1 2 3 …… 4 5 6 …… 7 8 9 其转置矩阵为: 1 4 7 …… 2 5 8 …… 3 6 9 程序输出: 2 6 10 …… 6 10 14 …… 10 14 18 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<stdio.h> #include<conio.h> #include<stdlib.h> void fun(int a[3][3],int b[3][3]) void main() ( int a[3][3]=1,2,3,4,5,6,7,8,9,t[3][3]; int i,j; system("CLS"); fun(a,t); for(i=0;i<3;i++) for(j=0;j<3;j++) print[("%7d",t[i][j]); printf("/n");
