C语言程序设计第六章 函 数
更新时间:2024-07-08 16:59:02 阅读量: 综合文库 文档下载
第六章 函 数
一、单项选择题
1.在C语言程序中,有关函数的定义正确的是( B )。 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套
2.以下对C语言函数的有关描述中,正确的是( A )。
A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B.C函数既可以嵌套定义又可递归调用 C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中 3.函数调用语句f((e1,e2),(e3,e4,e5));中参数个数是( C )。 A. 5 A. auto
B. 4
C. 2
D. 1
D.无存储类型
4.C语言中函数的隐含存储类型是( C )。
B. static
C. extern
5.能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是( A )。 A. return这二个数
B. 形参用二个元素的数组 D. 用二个全局变量
C. 形参用二个这种数据类型的指针
A. void main( ) { char s[20]=―abcdefgh‖; fun(s); ?? } C. void main( ) { char s[20]=―abcdefgh‖; char *p=s; fun(p); ?? } 7.以下程序的输出结果是( C )。 fun(char **m)
{ ++m; printf(―%s\\n‖,*m); } void main( )
{ char *a[ ]={―BASIC‖,―FOXPRO‖,―C‖};
fun(a); }
A. BASIC
49
6.有一函数的定义如:void fun(char *s){??},则不正确的函数调用是( D )。
B. void main( ) { char s[20]=―abcdefgh‖; fun(&a[0]); ?? } D. void main( ) { char s[20]=―abcdefgh‖; fun(s[ ]); ?? } B. ASIC C. FOXPRO D. C
8.函数的功能是交换x和y中的值;且通过正确调用返回交换结果。不能正确执行此功能的函数是( B )。 A. funa(int *x, int *y) { int i,*p=&i; *p=*x; *x=*y; *y=*p } C. funa(int *x, int *y) { int p; p=*x; *x=*y; *y=p; } } } D. funa(int *x, int *y) { *x=*x+*y; *y=*x-*y; *x=*x-*y; B. funa(int x, int y) { int t; t=x; x=y; y=t; 9.要求函数的功能是在一维数组a中查找x值:若找到则返回所在的下标值,否则返回0;数放在a[1]到a[0]中。不能正确执行此功能的函数是( C )。 B. funa(int *a, int n, int x) A. funa(int *a, int n, int x) { int k; { *a=x; for(k=1;k<=n;k++) while(a[n]!=x) n--; if(a[k]==x) return(k); return(n); return(0); } } C. funa(int a[ ], int n, int x) D. funa(int a[ ], int n, int x) { int *k; { int k=0; do k++; a[0]=k; k=a+n; while((k
sub1(char a, char b){ char c; c=a; a=b; b=c; } sub1(char *a, char b){ char c; c=a; *a=b; b=c; } sub1(char *a, char *b){ char c; c=*a; *a=*b; *b=c; } void main( ) { char a,b;
a=?A‘; b=?B‘; sub3(&a, &b); putchar(a); puchar(b); a=?A‘; b=?B‘; sub2(&a, b); putchar(a); puchar(b); a=?A‘; b=?B‘; sub1(a, b); putchar(a); puchar(b); }
A. BABBAB
B. ABBBBA
C. BABABA
D. BAABBA
二、填充题
1.变量的作用域主要取决于变量 局部变量或是全程变量 ,变量的生存期既取决于变量 局部变量或是全程变量 ,又取决于变量 存储类型 。
2.从变量的存储类型来说, 外部声明型 变量不允许初始化。 自动型 变量、 寄存器型 变量和 静态型 变量可以初始化。其中变量如果不进行初始化,则 自动型
50
变量和 寄存器型 变量的初值不确定,而 静态型 变量初值为0。 3.静态型内部变量的作用域是 所定义的函数或复合语句内 。
4.函数中的形参和调用时的实参都是数组名时,传递方式为 地址传递 ,都是变量时,传递方式为 值传递 。
5.函数的形式参数的作用域为 函数内部 ,全局的外部变量和函数体内定义的局部变量重名时, 局部 变量优先。
6.若自定义函数要求返回一个值,则应在该函数体中有一条 return 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 void 。
7.若函数的形式参数是指针类型,则实参可以是 变量地址 、 指针 或 数组名 。 8.函数的参数为char *类型时,虚参与实参结合的传递方式为 地址传递 。 9.函数的实参为常量时,虚参与实参结合的传递方式为 值传递 。 10.对下列递归函数,函数调用f(3)的返回值是 9 。
int f(int n) { return((n==0)?1:f(n-1)+2); }
11.函数f定义如下,调用f(“1475”)的返回值为 17 。
int f (char *s) { int k=0; while (*s)k+=*s++-?\\0‘; return k; }
12.函数change定义如下,a=0、b=5,执行change (a,b)后a、b的值分别为 10,5 。
void change (int a, int b) { int t=0; t=a; a=b; b=t; }
13.已知三角形边长a、b、c和s=(a+b+c)/2,计算其面积的算术表达式为 sqrt (s*(s-a)*(s-b)*(s-c)) 。
14.已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为 (-b+sqrt(b*b-4*a*c))/(2*a) 。
15.p为本金,r为5年期存款年利率,计算存款p元5年到期时本金、利息总和的算术表达式为 p*pow (1+r,5) 。
16.将数学式(x+1)e2x写作算术表达式为 (x+1)*exp(2*x) 。
17.调用find函数求实参数组中最大值,再调用find函数求实参数组中最下值。
#include
{ float s,a[7]={2,6,3,8,3,12,9}; float find (float*, int, int);
s=find(a,7,1); printf(―%f\\n‖,s) ; s=find(a,7,-1) ; printf(―%f\\n‖,s); }
float find(float *p, int n, int flag) { int i; float t,fh;
if(flag>=0) fh=1; else fh=-1; t=*p ; for(i=1;i
51
18.对数组按值从大到小的顺序排序后输出。
#include
{ float a[7]={2,6,3,8,3,12,9}; void sort (float*, int); sort(a,7) ; for(int i=0;i<7;i++) printf(―%f‖,a[i]); printf(―\\n‖); }
void sort (char *p, int n) { int i,j,k; float t; for(i=o;i k=i; for(j=i+1;j { t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } } 19.下列函数求任意阶多项式a0+a1X+a2X2+…+anXn的值并返回多项式的值。 float sum(float *a, int n) { float y,t=1; int I; scanf(―%f‖,&x); y=*a; for(I=1;I<=n;I++){ t=t*x; y+=*(a+I)*t; } return y; } 20.下列函数在n个元素的一维数组中,找出最大值、最小值并传送到调用函数。 #include void find (float *p, int *max, int *min, int n) { int k; float t; *max=*p; *min=*p; for(k=1;k if( t>*max ) *max=t; if(t<*min) *min=t; } } 52 21.下列函数用于任意方阵(行数等于列数的二维数组)转置。 void mt(float *a, int n ) 如数组:1 { int i,j; float t; 2 for(i=0;i 22.下列程序读入六个字符串,排序后输出。 #include for(j=i+1;j if(k!=i) { temp=a[i]; a[i]=a[k]; a[k]=temp; } // 指针数组元素交换 } } void main ( ) { char *name[6], ch[6][30]; int k; for(k=0; k<6; k++) name[k]=ch[k]; for(k=0; k<6; k++) gets(name[k]); sort(name,6); for(k=0; k<6; k++) puts(name[k]); } 23.下列函数用矩形公式求f(x)在[a,b]的定积分:先M等积分区间求得积分近似值,在2M等份近似值,再4M等份求得近似值,……,当两次积分近似值之差的绝对值小于eps时返回计算结果。 float sum (float a,float b, int m, float eps) { float h,s1=0,s2,x; int i, flag=1; while(flag){ s2=0; x=a; h=(b-a)/m; for(I=1;I<=m;I++){ s2+=(f(x)+f(x+h))*h/2; x=x+h; } if(fabs(s1-s2) 53 11 3 3 5 2 3 4 5 4 6 7 4 2 -4 4 -2 5 2 -7 4 6 7 -4 5 24.若给fun函数的形参s传递字符串:“∪∪6354abc”(其中“∪”表示空格字符),则函数的返回值是 6354 。 #include for(n=0;isdigit(*s);s++) n=10*n+(*s-?0‘); return(sign *n); } fun函数中,先由for(; isspace(*s); s++);转过字符串中的先导空格字符,系统函数isspace(*s)是判断空格字符的。若有字符‘-’,sign放-1,否则放1,移过字符‘-’或‘+’。从此取出字符串中的数字字符(系统函数isdigit(*s)是判断数字字符的)其它字符不要,变成整数后,按位乘10相加(n=n*10+(*s-?0‘)),最后返回数sign *n值。 25.下面函数要求计算两个整数x、y之和,并通过形参z传回该和值,请填空。 void add (int x, int y, int *z ) { *z =x+y; return; } 由于不用return返回值,因此z必须为指针 int *z ,调用时用add(a,b,&c)使z指向实参c,相加结果放 *z =x+y,即放实参c。 26.以下函数用来在w数组中插入x。n所指向的存储单位中存放w数组中字符个数。 数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。 Void fun (char *w, char x, int *n) { int i,p=0; w[*n]=x; while(x>w[p]) p++; for(i=*n;i>p;i--) w[i]= w[i-1] ; w[p]=x; ++*n; } w中从0算起有n指向数个字符,则w[*n]是空的,先把x中的字符放w[*n]。找出按序x中字符应放的位置p。(while (x[p]) p++),从最后一个字符w[i=*n](即要插入的字符)开始向前移位(w[I]= w[i-1] )直到位p,则就把最后一个字符(即要插入的字符)插入到了p位。 27.函数my_cmp( )的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即当s>t时返回正值,当s my_cmp (char *s, char *t) { while (*s==*t) { if (*s==?\\0‘) return (0); ++s, ++t; } return ( *s-*t ); } 54 28.以下程序是把字符串中的内容按逆序输出,但不要改变串中的内容,请填空。 void inverp (char *a) { if(!*a) return; inverp (a+1); printf(―%c‖,*a); } 该递归函数的出口是if,因此,在此要填入遇到字符串结束标志时返回。字符串结束标志的方式有四种:*a==?\\0‘,*a==0或!*a。由于if中已有求反运算符!,故可填入:*a或填(*a!=?\\0‘),(*a!=NULL),(*a!=0)。显然%c*后要填入 a 。 三、程序分析题 1.阅读程序,写出函数的主要功能。 void ch (int *p1, int *p2) { int p; if (*p1>*p2) (p=*p1; *p1=*p2; *p2=p;) } 函数的功能是能把p1和p2所指的实参数据交换。 2.阅读函数,写出函数的主要功能。 float av (float a[ ], int n) { int i; float s; for (i=0,s=0;i 函数的功能:求出n个实数的平均值。 3.阅读下面程序,写出运算结果。 unsigned fun6 (unsigned num) { unsigned k=1; do { k*=nuum; num/=10; } while (num); return k; } void main ( ) { unsigned n=26; printf(―%d\\n‖,fun6(n)); } 运算结果:把一个无符号整数一位一位取出相乘。结果为12。 4.阅读下面程序,写出运算结果,并说明原因。 #include { int a[ ]={3,8,4,2},i,x=0; for(i=0;i<4;i++) { sub(a,x); printf(―=‖,x); } } 55 sub (int *s, int y) { static int t=0; y=s[t]; t++; } 程序运算结果:0 0 0 0,这是因为sub(a,x)的调用x对应y,是值调用,y的值并不返回给x,四次调用x都是0。 5.阅读下面程序,写出运算结果,并说明函数的功能。 #include 35,45,-85, -17,57,97}; func (a,&m,&row,&col,3,3); printf (―%d,%d,%d\\n‖,m,row,col); } func (int a[ ][ ], int *x, int *y, int *z, int m, int n) { int i,j,*x=a[0][0]; for(i=0;i { *x=a[i][j]; *y=i; *z=j; } } 程序运算结果:-85,1,2。 该函数的功能是求二维数组中最小元素值及它的行列下标。由于有三个数据要返回,因此用三个整数指针,而调用这个函数时,用了三个整数的地址。 6.阅读下面程序,写出运算结果。 #include { printf(―]\\n‖,fun(4)); } fun (int n) { int t; if((n==0)||(n==1)) t=3; else t=n*fun (n-1) return t; } 求fun (4),可用推展和回溯法读递归函数计算结果为:72。 7.阅读下面程序,写出运算结果。 #include void main ( ) 运行时输入:5 –7 3 输出结果:3 { int a,b,c; }; 5 3 –7 find (int, int, int); 56 scanf (―%d%d%d‖,&a,&b,&c); printf (―%d\\n%d,%d,%d\\n‖,find (a,b,c),a,b,c); } int find (int a, int b,int c) { int u,s,t; u=((u=(a>b)?a:b)>c)?u:c; t=((t=(a 8.阅读下面程序,写出运算结果。 #include void fun1(int n, int a[ ][3]) 输出结果: 1 4 2 { for(int i=0;i for(int j=0;j void main ( ) { int a[3][3]={{6,4,2},{8,6,4},{9,6,3}}; fun1(3,a); for(int i=0;i<3;i++){ for(int j=0;j<3;j++) printf(―%d‖,a[i][j]); printf(―\\n‖); } } 9.阅读下面程序,写出运算结果。 #include if(m==2||m==3) return 1; 输出结果: 2,3,5,7 if(m<2||m%2==0) return 0; for(i=3;i void main ( ) { int n; for(n=1;n<10;n++) if(fun3(n)==1) printf(―%d ‖,n); } 10.阅读下面程序,写出运算结果。 #include void sub(int *a, int *b, int *c,m,n) { int i,j; 输出结果: 1 5 3 8 4 9 –4 6 for(i=0;i 57 1 1 1 3 2 1 for(j=0;j void main ( ) { int i,x[5]={1,5,3,8,4},y[3]={9,-4,6},z[8]; sub(x,y,z,5,3); for(i=0;i<8;i++) printf(―%d ‖,z[i]); printf(―\\n‖); } 11.阅读下面程序,写出运算结果。 #include void sort(char *a[ ], int n) 输出结果: afternoon { int i,j,k; char *temp; evening for(i=0;i if(strcmp(a[j],a[k])<0) k=j; if(k!=i){ temp=a[i]; a[i]=a[k]; a[k]=temp; } } } void main ( ) { char *name[4]; ch[4][15]={―morning‖,―afternoon‖,―night‖,―evening‖}; int k; for(k=0;k<4;k++) name[k]=ch[k]; sort(name,4); for(k=0;k<4;k++) printf(―%s\\n‖,name[k]); } 12.阅读下面程序,写出运算结果。 #include ―stdio.h‖ void pline (char *a, char c, int l, int n) { int i; for(i=1;i int i; void (*pf)(char*, char, int, int); pf=pline; for(i=1;i<5;i++){ (*pf)(a,?$‘,5-i,2*i-1); puts(a); } } 58 13.阅读下面程序,写出运算结果。 #include ―stdio.h‖ int binary (int x, int a[ ], int n) 输出结果: 1 { int low=0,high=n-1,mid; while(low<=high){ mid=(low+high)/2; if(x>a[mid]) high=mid-1; else if(x void main ( ) { static int a[ ]={4,0,2,3,1}; int i,t,j; for(i=1;i<5;i++){ t=a[i]; j=i-1; while(j>=0&&t>a[j]){ a[j+1]=a[j]; j--; } a[j+1]=t; } printf(―%d\\n‖,binary(3,a,5)); } 14.阅读下面程序,写出运算结果。 #include #include { double f (double, int); printf(―\\n‖,f(2.0,14)); } double f (double x, int n) { double t; if(n==1) t=x; else { if(n/2*2==n) t=x*f(x,n/2); else t=x*pow(f(x,n/2),2.0); } return t; } 15.阅读下面程序,写出运算结果。 #include double t (double a,double(*f)(double)) 59 输出结果: 256.000000 { return(*f)(a*a); } double f(double x) { return 2.0*x; } double g(double x) { return 2.0+x; } void main ( ) { x=4.0; u=t(x,f); v=t(x,g); printf(―u=%5.3fv=%5.3f\\n‖,u,v); } 四、程序设计题 1.编一个名为root的函数,求方程ax2+bx+c=0的b2-4ac,并作为函数的返回值。其中的a、b、c作为函数的形式参数。 解:float root (float a, float b, float c) { return (b*b-4*a*c); } 2.编一个函数,若有参数y为闰年,则返回1,否则返回0。 解:int year (int y) { if ((y%4==0&&y0!=0)||y@0==0) return 1; else return 0; } 3.编一个无返回值、名为root2的函数,要求如下: 形式参数:a,b,c单精度实型,root单精度实型数组名。 功能:计算ax2+bx+c=0的两个实根(设b2-4ac>0)存入root[2]中。 解:#include void root2 (float root[2], float a, float b, float c) { float p; p=sqrt(b*b-4*a*c); root[0]=(-b+p)/(2*a); root[1]=(-b-p)/(2*a); } 4.编一个无返回值、名为max_min的函数,对两个整数实参能求出它们的最大公约数和最小公倍数并显示。 解:void max_min (int m, int n) { int a=m, b=n, t, r; if(m printf(―%d 和 %d 的最大公约数是%\\n‖,a,b,n); printf(―%d 和 %d 的最小公倍数是%\\n‖,a,b,a*b/n); } 60 5.编一个能判断一个整数是否是素数的函数,并用它求出3到100之间的所有素数。 解:#include #include int prime (int m) for(a=3; a<=100; a++) { int k,i; if(prime(a) printf(―=‖,a); k=sqrt(m); printf(―\\n‖); for(i=2;i<=k;i++) } if(m%i==0) return 0; return 1; } 6.编一个名为days的函数,要求如下: 形式参数:整数y,m,d分别表示年、月、日。 功能:计算该日是该年的第几天。 返回值:整数第几天。 解:int days (int y, int m, int d) { int n; switch (1) { case 1: n=0; if(m==1) break; case 2: n=n+31; if(m==2) break; case 3: n=n+28; if(m==3) break; case 4: n=n+31; if(m==4) break; case 5: n=n+30; if(m==5) break; case 6: n=n+31; if(m==6) break; case 7: n=n+30; if(m==7) break; case 8: n=n+31; if(m==8) break; case 9: n=n+31; if(m==9) break; case 10: n=n+30; if(m==10) break; case 11: n=n+31; if(m==11) break; case 12: n=n+30; } n=n+d; if(m>2) if((y%4==0&&y0!==0)||(y@0==0)) return n; } 7.编一个无返回值,名为trus的函数,要求如下:形式参数:s1[2][3], s2[3][2] 整型数组。 功能:将s1数组转置后存入s2数组中。 解:void trus (int s1[2][3], int s2[3][2]) { int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) s2[j][i]=s1[i][j]; } 61 n=n+1; 8.编一个名为countc函数,要求如下: 形式参数:array存放字符串的字符型数组名。 功能:统计array数组中大小写字母的数目。 返回值:字符串中大小写字母的数目。 解:include int countc (char array[ ]) { int i,n=0; for(i=0;i if(array[i]<=?A‘&&array[i]>=?Z‘) n++; return n; } 9.编一个名为link函数,要求如下: 形式参数:s1[40],s2[40],s3[80]存放字符串的字符型数组。 功能:将s2连接到s1后存入s3中。 返回值:连接后字符串的长度。 解:include int link (char s1[40], char s2[40], char s3[80]) { int i,k,n=0; for(i=0;i for(i=0;i 10.编一个函数,返回一维实型数组前n个元素的最大数、最小数和平均值。数组、n和最大数、最小数、平均值均作为函数的形式参数,本函数无返回值(用指针方法实现)。 解:void fun (float a[ ], int n, float *max, float *min, float *vag) { int i; *vag=a[0]; *max=a[0]; *min=a[0]; for(i=1;i { if(a[i]>*max) *max=a[i]; if(a[i]<*min) *min=a[i]; *vag=*vag+a[i]; } *vag=*vag/n; } 11.编一个函数,用“冒泡法”对字符数组中的字符按由小到大顺序排列。 要求字符数组作为形参。 解:void sortc (char a[ ]) { int n,i,j; char ch; 62 n=strlen(a); for(i=0;i { ch=a[j]; a[j]=a[j+1]; a[j+1]=ch; } } 12.编一个函数,能将十六进制转换成十进制。 形参:字符指针,指向放十六进制数的字符数组 返回值:十进制整数 解:#include int tv (char *s) { int m,n=0; while(*s!=?\\0‘) { if(isalpha(*s)) *s=toupper(*s); switch(*a){ case ?F‘: m=15; break; case ?E‘: m=14; break; case ?D‘: m=13; break; case ?C‘: m=12; break; case ?B‘: m=11; break; case ?A‘: m=10; break; default: m=*s-48; } n=n*16+m; s++; } return n; } 13.用递归法将一个整数转换成字符串。 解:#include < string.h> void convert (char *b) // 倒置数组 char a[255]; // 全局数组 { int l,i; void contw (int m) // 递归转换 char c,*p; { int n; l=strlen(b); p=b+l-1; static int i=1; for(i=1,b++; i 63 void main ( ) { int n; void contw (int m); void convert (char *b); printf(―输入一整数:‖); scanf(―%d‖,&n); if(n<0) {a[0]=?-‘; n=-m; } else a[0]=? ‘; contw(n); convert(a); printf(―字符串:%s\\n‖,a); return; } 64 void main ( ) { int n; void contw (int m); void convert (char *b); printf(―输入一整数:‖); scanf(―%d‖,&n); if(n<0) {a[0]=?-‘; n=-m; } else a[0]=? ‘; contw(n); convert(a); printf(―字符串:%s\\n‖,a); return; } 64
正在阅读:
C语言程序设计第六章 函 数07-08
18秋《计算机应用基础》在线作业一103-08
简爱读书笔记500字12-11
Topic 27 是否应做不愿做的事07-24
对对联教案(详案)09-18
宏观经济学第四版印刷版(习题)11-15
凸函数的性质及其在证明不等式中的应用05-20
北京高考英语看图作文训练素材一05-23
3500字方正硬笔楷书字帖(笔画顺序)05-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 语言
- 中华人民共和国全国人民代表大会和地方各级人民代表大会选举法
- 湖南师范大学附属中学2018届高三12月月考(四)物理试题
- 计算机组成原理 第三章系统总线 第五节总线控制
- 学校图书室管理制度
- qc提高剪力墙垂直度和平整度
- XXX车站围护结构施工方案
- 兰州交通大学《铁路运输组织学》试卷-答案
- 计算化学复习概要
- 三年级上学期科学练习题
- 三年级下册数学第九单元集体备课讨论稿
- 《周髀算经》与古代域外天学
- 注会税法·刘颖预科班·第2讲 税法基础知识1
- 化疗患者要注意的事项及护理知识
- 学校2012 - 2015年发展规划
- 2015-2020年中国松香树脂市场深度调查与市场年度调研报告 - 图文
- 港口工程初步设计文件编制规定
- 利用黑龙江省世行贷款建设 - 奶牛养殖区项目建设可行性研究报告
- 输尿管软镜与经皮肾镜治疗肾结石的对比研究
- 2014-2015学年湖北省十堰市丹江口市八年级(下)期末数学
- 丰都中心小学2017年“国庆”假期安全教育活动简报(第二十三期)