2009年C语言程序设计实验指导答案
更新时间:2023-09-28 13:03:01 阅读量: 综合文库 文档下载
实验二:变量类型与输入输出
1. a=34,a=53,b=1234,b=4660 ☆
因为0x1234超出了字符类型的表示范围,因此打印的结果看起来奇怪。 2. 输入:a回车
输出:****ch1=a,97****
****ch2=
10,**** 解释ch2的输出:由于输入a回车,因此ch2的值就接受了这个回车,而回车的ascii码的值等于10,因此出现这种结果。如果要修改,需要在ch2=getchar()之前加入一句:getchar(); ☆☆☆
3. 把scanf(“%d”,a)改为scanf(“%f”,&a)
4. 把scanf(“%f”,&a)改为scanf(“%lf”,&a),因为a是double类型的。☆☆☆ 5. 42 42
123.540000 123.540000 1.235400e+002
1.235400e+002 6. 正确的形式:a=3.12,b=9.0 c=10.0 注意的事项是在scanf()中,””中的内容按照原样输入,尽管在实践中没有按照此题那样进行类似输入。 7. 此题不用看
8. #include
9 #include
10 #include
printf(\字符型就是短整形因此用%d格式控制就可打印 ascii code*/ return 0; }
11 12 easy 忽略
实验三:运算符与表达式
1. 输出:a=2,b=1,i=2 ,这是因为++放在后面是“先使用后自加”。☆☆☆☆☆ 2. 输出:f=5.750000,(int)f=5,这是因为利用了强制类型转换(int) 3. 输出:a=3,b=2,c=3,d=3 解释:a和b值不同的原因是在给a赋值的时刻,2,3是用括号包围的,而b没有,而逗号表达式的值等于最后面的那个值。☆☆☆☆☆
4. 输出:-264 原因是首先执行a-=a*a也就是a=12-(12*12)=-132,然后a+=a因此变为-264☆☆ 5. 输出:a=2,b=0,c=2,d=1 这是因为在执行b=a++ && c++时,由于首先使用a的当前值为0,而在“&&”运算符中当左侧的操作数为0时会发生“短路”现象,即不再计算右侧的”c++”直接就可以判定b=0,因此在这一步中c的值并没有发生变化,而运算完此步a=1。而在下一步d=a++ || ++c中,同样会发生短路现象,因为此时首先利用a的当前值1直接就可以判定d=1,而不再执行++c ☆☆☆☆☆ 6. 输出:3,18
输出:3,3 还是逗号运算符和赋值运算符的问题 ☆☆☆☆☆
7. 把s=1/2*a*b改为s=1.0/2*a*b 千万不要忘了在c语言中1/2=0 ☆☆☆☆☆ 8. easy!
9. #include
char ch; printf(\ ch=getchar(); ch-=32; putchar(ch); return 0; }
10 11 12 easy!!
实验四:顺序结构程序设计
1. 其中的两处错误发生在:scanf(“%d”,r)应该改为scanf(“%f”&r);另外一处发生在语句
s=3.14*r*r和语句scanf(“%d”,r)次序颠倒,因为一个变量只有先有值之后才能使用。 2. 执行结果为3,5,8,-858993444,因为d没有赋初值因此打印出一个看起来非常奇怪的值。
☆☆☆☆ 3. 输出 7
4. 输入27 输出 27,这是因为ch1=?2?,ch2=?7?
输入2 7输出 4,这是因为ch1=?2?,ch2=? ?(空格),而空格的ascii码为32,?0?的ascii码为48因此算出结果为4 5 输出 1,1 ☆
6. 输出6,7 ,只需要知道++的前缀和后缀的区别即能做出此题。☆☆☆☆ 7. sum=d1+d2+d3+d4+d5; avg=(float)sum/5; /*需要强制类型转换*/ 8. #include
int a,b,c,max;
printf(\ scanf(\ max=a>b?a:b;
max=max>c?max:c;
printf(\ return 0; }
9. #include
本程序用到sqrt和cos函数,它们位于头文件
程序如下: #include
double F,C;
printf(\ scanf(\
C=(double)5/9*(F-32);
printf(\ return 0; }
本程序中要注意因为整数相除仍为整数,因此5/9永远为0,为了得到正确的结果,首先进
行强制类型转换。 ☆☆☆☆☆
实验五:选择结构程序设计
1.2 easy 忽略 3. -1 此题简单
4. 判定一个数位于一个区间,绝对不能出现60<=score<70的情况 应该 (score>=60 && score<70)
此程序修改为: #include
int score;
if(score>=90 && score<=120) printf(“优”);
else if(score>=80 && score<90) printf(“良”);
else if(score>=70 && score<80) printf(“中”);
else if(score>=60 && score<70) printf(“及格”); else
printf(“不及格”); }
5. 注意switch case中的“fall throught”现象,也就是在没有break的情况下,程序根据匹配的入口一直向下执行,知道碰到break或者}终止。修改时只需要在每个case后面的printf语句后面加上break即可。☆☆☆☆☆ 6. else为if(b>0)的分支,应该改为: #include
int a=2,b=-3; if(a>0) if(b>0) printf(\ else printf(\ else printf(\ return 0; }
7. #include
char c;
c=getchar();
if(c>='a' && c<='z') c-=32;
else if(c>='A' && c<='Z') c+=32; else c=c; putchar(c); return 0; }
注意在此程序中有两点容易发生错误:第一if(c>='a' && c<='z')写成if(?a?<=c<=?z?)。第二就是if(c>='A' && c<='Z')语句前应该加else,如果不加else,可以考虑当输入小写字符if(c>='a' && c<='z')满足,执行c-=32此时c变成大写字母,再继续判断if(c>='A' && c<='Z')又满足执行c+=32又回到小写。☆☆☆☆☆ 8 if(a==5)
9 添加的代码为if((x>=0 && x<=5)|| x>=10) 10 easy
11 easy!但是要注意a=0&&b!=0时,此时有一个根。 12 #include
int main() {
int birthYear,age;
printf(“please input the year of your birth!”); scanf(“%d”,&birthYear); age=2006-birthYear;
age=age>=0?age:12-(-age); switch(age) {
case 0:
printf(“属狗”); break; case 1:
printf(“属鸡”); break; case 2:
printf(“属猴”); break; case 3:
printf(“属羊”); break; case 4:
printf(“属马”); break; case 5:
printf(“属蛇”); break; case 6:
printf(“属龙”); break; case 7:
printf(“属兔”); break; case 8:
printf(“属虎”); break; case 9:
printf(“属牛”); break;
case 10:
printf(“属鼠”); break; case 11:
printf(“属猪”); break; }
return 0;
} 13 #include
}
case 6: printf(\合格\ break; default: printf(\不及格\ }
return 0;
实验六:循环结构程序设计(一)
1. easy! 2. 输出0 3. 循环次数:无限次 for(;;)代表无限次循环
4. 输出:-2-1 ☆☆☆☆☆还是考后缀和前缀的问题 5. 输出:-1 0 把i++换成++i输出:-1 6.
#include
int i;
scanf(”%d”,&i); for(; i!=0;)
scanf(”%d”,&i); }
7. 程序1输出: 0 1 3 6
??? 45
程序2输出: 0 1 2 3
??? 9
因为程序2的s在每次进入for循环体都要重新进行初始化为0
8 完成的功能是:s=1+2+3+?+n 9. 完成的功能是:s=1!+2!+3!+?+n! 10 完成的功能是:s=x1+x2+x3+?+xn
11.#include
int n,i;
long t=1;/*防止阶乘较大而溢出*/ printf(“please input the value of n”); scanf(“%d”,&n); for(i=1;i<=n;i++) t*=i;
printf(“the factorial of n is:%ld”,t);
}☆☆☆☆☆
12 #include
int i,n,t=1;
scanf(“%d”,&n); double s=0.0; for(i=1;i<=n;i++) { t*=i; s+=1/(double)t; }
printf(“%lf”,s); }
注意:在此程序中,整数除以整数还是整数,因此1/2的结果为0而不是0.5,这也是很多同学无论输入的n值是多少都得出结果为1,,因此需要设置s为double类型,并且需要对得出的阶乘进行强制类型转换。☆☆☆☆☆ 13 #include
解决类似程序的关键就是找出后一项和前一项的关系在此程序中x n=xn-1?x ,因此程序中
n出现item=item*x/i;这一语句。
实验7:循环结构程序设计(二)
1.输出 7 easy! 2 easy!
3 #include
int i=0,k=0; do { k+=i; i+=3; printf(\ }while(i<10); }
4. 输出 1,2
3,3 5. 输出1,2
6 #include
7. #include
int i,j,k,sum=0; for(i=1;i<=4;i++) for(j=1;j<=4;j++)
for(k=1;k<=4;k++) {
if(i!=j&&i!=k&&j!=k) {
printf(\ sum++; } } printf(\
printf(\}
8. #include
if((str[i]>='a'&& str[i]<='z') ||(str[i]>='A'&&str[i]<='Z')) letter_num++; else if(str[i]==' ') space_num++; else if(str[i]>='0' && str[i]<='9') digit_num++; else other_num++; } printf(\英文字母个数为%d,空格个数%d,数字个数%d,其他字符个数%d\ return 0;
}☆☆☆☆☆
9. #include
10 #include
11 #include
下面的函数用于求最大公约数 */
int gcd(int u,int v) { int t; if(u 下面的函数用于求最小公倍数 */ int gmd(int u,int v) { return gcd(u,v)*(u/gcd(u,v))*(v/gcd(u,v)); } int main() { int m,n; printf(\ scanf(\ printf(\最大公约数是%d,最小公倍数是%d\ return 0; }☆☆☆☆☆ 12. #include 下面的函数用于判断一个数是否是素数,如果是就返回1否则返回0 */ int isPrime(int m) { int i; for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; } /* 对形参v求出其素数表达式 */ void get_expr(int v) { int i=2; printf(\ while(v!=1) { while(v%i==0 && isPrime(i)) { v/=i; printf(\ } i++; } printf(\} int main() { int i; printf(\ scanf(\ get_expr(i); return 0; } 实验8 综合程序设计练习(一) 1. 输出:3 注意x=1.000000而不是1.800000。 2. 输出:5,7,同样是考查前缀和后缀问题☆☆☆☆☆ 3.easy忽略 4.输出:a=8,b=22 5.填入的内容为:if(k%3==0 || k%7==0) 6. #include 7. #include int a,n,count=1; long int sn=0,tn=0; printf(\ scanf(\ printf(\ while(count<=n) { tn=tn+a; sn=sn+tn; a=a*10; ++count; } printf(\} 8. #include 下面的函数用于判断一个数是否是水仙花数如果是返回1否则返回0 */ int isDaff(int i) { int high,medium,low; high=i/100; medium=(i0)/10; low=i; return (high*high*high+medium*medium*medium+low*low*low==i)?1:0; } int main() { int i; for(i=100;i<=999;i++) if(isDaff(i)) printf(\ return 0; } 9. #include int isTri(int a,int b,int c);//判断是否构成三角形,如果是返回1否则返回0 int rangleTri(int a,int b,int c);// 判断是否构成直角三角形,如果是返回1否则返回0 int isoTri(int a,int b,int c); //判断是否构成等腰三角形,如果是返回1否则返回0 int equTri(int a,int b,int c);// 判断是否构成等边三角形,如果是返回1否则返回0 int main() { int count=0; int a,b,c; printf(\ scanf(\ while(count<5) { if(isTri(a,b,c)) { count++; if(rangleTri(a,b,c)) printf(\ if(isoTri(a,b,c)) printf(\ if(equTri(a,b,c)) printf(\ if(count==5) break; scanf(\ } else { printf(\ scanf(\ } } return 0; } int isTri(int a,int b,int c) { return (a+b>c && a+c>b && b+c>a)?1:0; } int rangleTri(int a,int b,int c) { return (a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b)?1:0; } int isoTri(int a,int b,int c) { return (a==b || b==c || a==c)?1:0; } int equTri(int a,int b,int c) { return (a==b && a==c)?1:0; } 10. 因为两个数是互质数的概念是两个数的最大公约数是1,因此可以利用前面写的求最大公约数的函数 #include int gcd(int u,int v);//求两个数的最大公约数 int huzhi(int u,int v);//判断两个数是否互质,是就返回1否则返回0 int main() { int m,n; printf(\ scanf(\ if(huzhi(m,n)) printf(\ else printf(\ return 0; } int gcd(int u,int v) { int t; if(u u=v; v=t; } while(u%v!=0) { t=u; u=v; v=t%v; } return v; } int huzhi(int u,int v) { return gcd(u,v)==1?1:0; } 11. 可以利用前面写过的判断两个数是否是素数的函数 for循环版本 #include 判断一个数是否是素数 */ int isPrime(int m) { int i; for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; } int main() { int i; for(i=1000;i<=2000;i++) if(isPrime(i)) printf(\ return 0; } while循环版本 #include for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; } int main() { int i=1000; while(i<=2000) { if(isPrime(i)) printf(\ i++; } return 0; } 12 忽略不看 实验9数组 1. 注意当部分初始化时,未初始化的部分元素值为0,因此a[4]~a[9]的值为0,b数组因为 没有初始化所以b[0]~b[9]的值为随机值。 2. easy!忽略 3. N为变量,不能定义数组int a[N],可以在void main()之前加入#define N 10 然后,scanf语句有错,应该改为scanf(“%d”,&a[i]); 4. 填空部分为s+=a[i][j]; 5. 填空部分为max=a[i]; 6. 第一个填空: a[10], 第二个填空:&a[i] 第三个填空a[j]=t ☆☆☆☆☆ 7. 第一个空填写swapFlag=0; 第二个空填写swapFlag=1; 8. 第一个填空: l=m+1, (注意l和1的区别)第二个填空:l<=h☆☆☆☆☆ 9. #include { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } } printf(\ for(i=0;i<4;i++){//输出转置矩阵 for(j=0;j<4;j++) printf(\ printf(\ } return 0; }☆☆☆☆☆ 10 #include int a[10]={2,3,4,5,6},len=5,i;//len为有效长度 for(i=len;i>3;i--)a[i]=a[i-1];//后移元素只能从后面开始 a[3]=7; //插入元素 len++; //有效长度增1 for(i=0;i 11 #include int i,k,m,num[N]; for(i=0;i<30;i++) num[i]=i+1; //给每个人编号 i=0; //i为每次循环时的计数变量 k=0; //k为1 2 3 数的报数 变量 m=0; //m为退出的人数 while(m if(num[i]!=0) k++; if(k==5) { num[i]=0; //对退出的人编号为0 k=0; m++; } i++; if(i==N)i=0; //报数到尾后i恢复为0 } i=0; while(num[i]==0) i++; printf(\}☆☆☆☆☆ 12 #include 实验10 字符串处理 1. 注意a不构成字符数组,因为没有空间存储?\\0? ☆☆☆☆☆ 2. 输出结果为:abcd,因为所有的字符串处理函数碰见?\\0?就中止 3. 在调用strcpy()时q的空间不够,修改为char q[100]; ☆☆☆☆☆ 4. 输出 ABC 也就是说a数组什么也输出不了,因为其第一个字符就是?\\0?(它的ascii码为0而不是?0?) 数组b输出前三个分别为大写的ABC 5. 输出:big,道理同上 6. 第一个空填写j=len-1,第二个空填写str[j]=t; 7. 填写:a[i]!=?\\0?; 8 #include char a[100],b[100]; int i,j; gets(a); gets(b); i=j=0; while(a[i]!='\\0') i++; while(b[j]!='\\0') { a[i]=b[j]; i++; j++; } a[i]='\\0';//这一步很重要,不要忘了在最后加上'\\0'; puts(a); }☆☆☆☆☆ 9. #include 用函数版本为: #include int main() { char a[100]; gets(a); inverse(a); puts(a); 5此题较难,忽略. #include void input_data( int(*p)[5],int n) { int i,j; printf(\ for(i=0;i void average_score(int (*p)[5],int n,double *average_row) { int sum,i,j; for(i=0;i void main() { int score[5][5],i; double average[5]; input_data(score,5); average_score(score,5,average); for(i=0;i<5;i++) printf(\} 6. #include int is_twodigits_same(int n) { int low_digit=n; int mid_digit=((n-low_digit)/10); int high_digit=n/100; if((low_digit==mid_digit || low_digit==high_digit || mid_digit==high_digit) (!(low_digit==mid_digit && low_digit==high_digit))) && return 1; else return 0; } int compute_integer() { int i,j,num; for(i=100;i<=999;i++) for(j=10;j<=33;j++) { if(i==j*j && is_twodigits_same(i)) { num++; printf(\ } } return num; } void main() { compute_integer(); } 7.添加的程序部分为: if(p[i]>*maxp) maxp=p+i; if(p[i]<*minp) minp=p+i; 8. #include void decompose(double f) { int i=(int)f; double d=f-i; printf(\} void main() { double f; printf(\ scanf(\ decompose(f); } 9.忽略 10 #include int disperse(int n,int array[]) { int i=2,count=1,flag; array[0]=1; while(i<=n) { flag=0; while(n%i==0) { flag=1; n/=i; array[count]=i; } i++; if(flag) count++; } return count; } void main() { int n,i,array[100]; printf(\ scanf(\ for(i=0;i 11 忽略 12 难得太大,忽略 13#include void convert(int n,int method,char *result) { char ch[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int temp,i=0; while(n) { temp=n%method; n=n/method; result[i++]=ch[temp]; } result[i]='\\0'; printf(\转换为%d进制后为:\for(;i>=0;i--) printf(\ } int main() { int num,method; char result[100]; printf(\ scanf(\ convert(num,method,result); return 0; } return 0; } 10 easy!参考实验7第八题 11. #include void function(char str[]); /*函数声明在外面*/ void main() { char str[100]; printf(\请输入一行字符串:\ gets(str); str[strlen(str)]='#'; function(str); } void function(char str[]) { int i=0,j=0,k=0; char str1[30][30],str2[100]; int state = 0; //设制一个状态记录str[i]是不是字母, 0表示不是 1 表示是 for(i=0;str[i]!='\\0';i++) { if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z')) { str1[j][k]=str[i]; k++; str1[j][k] ='\\0'; /*字符串都以'\\0'结尾所以每次都保持str1[i]是一个字符串, 复制给str2就不会出现少'\\0'的情况啦*/ state = 1; //及时设置状态 } else { if(state == 1) {j++;} //仅仅让单词存进去 别的字符就别存到str1中了 state = 0; //及时设置状态 k=0; } } strcpy(str2,str1[0]); for(i=1;i if(strlen(str1[i])>strlen(str2)) /*总是让str2保持是最长的字符串*/ strcpy(str2,str1[i]); } printf(\该字符串中最长的单词是:%s\\n\}☆☆ 12 #include char ch[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}, output[20]; int input,temp,n,i=0; printf(\请输入你想要转换的十进制数:\scanf(\ printf(\请输入要转换的进制(2<=n<=16):\scanf(\input=fabs(input); while(input) { temp=input%n; input=input/n; output[i++]=ch[temp]; } output[i]='\\0'; printf(\转换为%d进制后为:\for(;i>=0;i--) printf(\return 0; }☆☆☆本题是对课本的扩展,扩展到任意进制输出,注意用除n取余法,并且逆序输出。 实验11 课堂已讲忽略 实验12 函数(一) 1. 输出结果为1,2 要记住按值传递不改变实参的值而按地址传递可以改变实参的值 2. 输出结果为13542354,做这样的题目记住两点就可以,一是程序从main()函数开始执行,二是当调用完一个函数后,程序流程返回到发生函数调用的地方的下面一条语句继续执行。 3. 填空为max(a,b); 4. 第一个空为*maxp ,第二个空为 &min 其实这是利用形参传地址来使得函数可以返回多个值 5. 填空为 swap(&a[i],&a[j]) 6. 第一个空为double pow(double m,int n); (这一步为函数声明) 第二个空为m 7. 第一个空为include for(i=1;i float TriArea(float a,float b,float c) { float s=(a+b+c)/2; return sqrt(s*(s-a)*(s-b)*(s-c)); } 10 参考第八章第八题 11 #include char t; int i=0,j=strlen(str)-1; for(;i<=j;i++,j--) { t=str[i]; str[i]=str[j]; str[j]=t; } } int main() { char str[100]; gets(str); inverse(str); puts(str); return 0; } 实验13 函数(二) 1. 输出:22 2. 输出:n=-90 3. 输出: i=2,j=2 i=3,j=2 i=4,j=2 此题是重点,static变量具有局部可见性但是具有全局存储属性,也就是说static变量在函数调用结束之后不释放内存,还保留上次的值,这也就是i为什么随着每次f()函数的调用值增1的原因,同时static变量只执行一次初始化。但是一般的auto变量在函数调用的时候分配内存,在调用结束之后释放内存,因此这是j三次函数调用值都等于2的原因。☆☆☆☆☆ 4.输出:543210-1-2-3-4-5-6-7-8@ABCDEFGHIJKLM 此题较难可忽略。 5.输出:A=2,B=1 ,此题关键是理解全局变量和局部变量 ☆☆☆☆☆ 6.输出:5,25 ☆☆☆☆ 7.修改main()函数中的f(y,x)为f(&y,x),程序的输出为2,2 8. #include printf(\ return 0; } double f(double x) { return (2*x*x*x+3*x*x-4*x+1)/(10*x*x+3); } double q(double x) { return 3*f(x)*f(x)*f(x)+2*f(x)*f(x)+f(x); } 9. #include int strcat_new(char *str1,char *str2) { char *p=str1,*q=str2; while(*p)//让p最终指向str1的?\\0? p++; while(*p++=*q++);//把str2连到str1的后面 return p-1-str1;//返回长度指针相减求出的是指针之间的元素个数 } int main() { char str1[100],str2[50]; int i; gets(str1); gets(str2); i=strcat_new(str1,str2); puts(str1); printf(\ return 0; }☆☆☆☆☆ 10. #include int main() { int n; scanf(\ printf(\ return 0; } 11. 此题难度太大,可以忽略 #include void main() { int num; printf(\ scanf(\ bi(num); } 12 虽然简单,但是未学函数指针,此题忽略 输出:4 8 实验14 综合程序设计练习(二) 1.easy!相当于对二维矩阵进行转置 2.输出ABbcd 3.输出12☆☆☆☆☆ 4.easy!改为按地址传递void swap(int *p,int *q);
正在阅读:
2009年C语言程序设计实验指导答案09-28
明胶的研究进展03-16
基辛格简介11-27
观音大士得道壬申宝忏上卷06-25
大学物理习题册01-20
疫情防控表态发言稿精品(共五篇)08-22
女生大一新生必备用品清单02-09
生活中的一件事作文02-05
夏季、雨季、农忙季节施工措施12-30
荷韵作文500字06-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 答案
- 语言
- 指导
- 实验
- 2009
- 第十讲 追及问题
- 2014年温州中学实验班自主招生科学模拟试1
- stm32矩阵按键扫描
- 江西省服装行业企业名录2018版3921家 - 图文
- 优秀家长学校主要事迹
- 毕业论文 Multisim在中职电工电子类课程教学中的应用研究
- 《马克思文艺论著》复习精华
- SWM工法桩实施细则 - 图文
- CFG桩试桩成果报告 - 图文
- 初中物理电功率经典计算题100个
- 专用汽车准入-审查作业指导书 - 图文
- 规整填料塔安装说明书
- 酒店管理系统论文
- 脱贫攻坚镇食用菌现代农业扶贫产业园区产业化扶贫项目实施方案
- 东北大学物理期末复习资料
- 个人扶贫工作心得体会-2019年精选范文
- Unit2 Career Planning说课稿
- 《第二次经济普查年度GDP试算方法(2009.11.5)》
- 公差复习资料jiqi答案
- 认真是一种能力