第一篇:化学必修2 第三章 第一节 课后习题解答 P64
高一化学必修2 教案 阿不力米提 热
第二篇:化学必修2 第三章 第三节 课后习题解答 P76
高一化学必修2 教案 阿不力米提 热
第三篇:第一节 课后习题
第一单元走进化学世界
课题1 物质的变化和性质 课后作业
1、化学变化的特征是()
A、有发光、发热现象B、物质的状态或颜色发生变化
C、有气体放出或沉淀生成D、有其它物质生成2、下列变化属于物理变化的是()
A、火药爆炸B、煤的燃烧
C、矿石粉碎D、钢铁生锈
3、下列现象属于化学变化的是()
A、冰融化成水B、钢铁生锈
C、钢锭轧成钢条D、蜡烛熔化
4、下列变化有一种变化与其它三种变化的类型不同,这种变化是()A、蒸发B、变形C、水变成冰D、物质燃烧
5、下列变化前者是物理变化,后者是化学变化的是()
A、汽车内胎爆炸,火药爆炸
B、动植物呼吸,植物光合作用
C、铁在潮湿的空气中生锈,铁铸成锅
D、氧气使燃着的木条燃烧更旺,蒸发食盐水得到食盐和水
6下列哪种变化与其他变化有本质区别()
A火药爆炸B衣服晾干C纸张燃烧D酒变酸
7日常生活中的下列变化,只发生了物理变化的是()
A蔬菜腐烂B面包发霉C灯泡通电后发光D菜刀生锈
8下列物质的性质中属于化学性质的是()
A导电性B可燃性C延展性D挥发性
9水在一定条件下表现出来的性质中,属于化学性质的是()
A能分解B能沸腾C能流动D能结冰
10下列工艺制作过程中包含了化学变化的是()
A红纸剪成窗花B泥土烧成瓷器C冰块制成冰雕D木板制成模型飞机
11下列变化中,前者属于物理变化,后者属于化学变化的是()
A山体滑坡、电灯发光B铁丝受力弯曲、木材制成桌椅
C纸张燃烧、冰融化成水D石蜡熔化、钢铁生锈
12下列词语包含化学变化的是()
A木已成舟B花香四溢C蜡炬成灰D滴水成冰
13、下列描述:①铜在潮湿的空气中会生锈 ②铜绿是一种绿色粉末 ③加热铜绿生成氧化铜、二氧化碳与水 ④氧化铜为黑色粉末 ⑤加热时产生的水蒸气在试管口冷凝成水珠 ⑥二氧化碳是一种无色无味的气体 ⑦二氧化碳不可燃 ⑧二氧化碳通入澄清石灰水中,石灰水变浑浊。其中属于物理变化的是(填序号,下同);属于化学变化的是;属于物理性质的是;属于化学性质的是。
第四篇:C语言课后习题解答
第七章 函数调用 7-1 写两个函数,分别求两个整数的最大公约数和最小公倍数,#include
void main(){ int hcf(int,int);int lcd(int,int,int);
int u,v,h,l;scanf(“%d,%d”,&u,&v);
h=hcf(u,v);printf(“H.C.F=%dn”,h);
l=lcd(u,v,h);printf(“L.C.D=%dn”,l);}
int hcf(int u,int v){ int t,r;if(v>u){
t=u;
u=v;
v=t;} while((r=u%v)!=0){
u=v;
v=r;} return(v);}
int lcd(int u,int v,int h){ return(u*v/h);} 7-2 求方程ax*x+bx+c=0的根,用3个函数分别求当b*b-4ac大于0,等于0、小于0时的根并输出结果。从主函数输入abc的值。
#include
void main(){ void greater_than_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;printf(“input a,b,c:”);scanf(“%f,%f,%f”,&a,&b,&c);
printf(“equation: %5.2f*x*x+%5.2f*x+%5.2f=0n”,a,b,c);disc=b*b-4*a*c;printf(“root:n”);if(disc>0){
greater_than_zero(a,b);
printf(“x1=%fttx2=%fn”,x1,x2);} else if(disc==0){
equal_to_zero(a,b);
printf(“x1=%fttx2=%fn”,x1,x2);} else {
smaller_than_zero(a,b);
printf(“x1=%f+%fitx2=%f-%fin”,p,q,p,q);} }
void greater_than_zero(float a,float b){ x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);} void equal_to_zero(float a,float b){ x1=x2=(-b)/(2*a);}
void smaller_than_zero(float a,float b){ p=-b/(2*a);q=sqrt(-disc)/(2*a);}
7-3 写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。
#include
void main(){ int prime(int);int n;printf(“ninput an integer:”);scanf(“%d”,&n);
if(prime(n))
printf(“n %d is a prime.n”,n);else
printf(“n %d is not a prime.n”,n);}
int prime(int n){ int flag=1,i;for(i=2;i if(n%i==0) flag=0;return(flag);} 7-4 写一个函数,使给定的一个3x3的二维整形数组转置,即行列转换。#include void main(){ void convert(int array[][3]);int i,j;printf(“input array:n”);for(i=0;i for(j=0;j scanf(“%d”,&array[i][j]); printf(“noriginal array :n”);for(i=0;i for(j=0;j printf(“%5d”,array[i][j]); printf(“n”);} printf(“convert array:n”);for(i=0;i for(j=0;j printf(“%5d”,array[i][j]); printf(“n”);} } void convert(int array[][3]){ int i,j,t;for(i=0;i for(j=i+1;j { t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } } 7-5 写一个函数,是输入的字符串按反序存放,在主函数中输入和输出字符窜。#include printf(“input string:”);scanf(“%s”,str); inverse(str); printf(“inverse string:%sn”,str);} void inverse(char str[]){ char t;int i,j;for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--){ t=str[i]; str[i]=str[j-1]; str[j-1]=t;} } 7-6 写一个函数,将两个字符窜连接。 #include concatenate(s1,s2,s);printf(“nThe new string is %sn”,s);} void concatenate(char string1[],char string2[],char string[]){ int i,j;for(i=0;string1[i]!=' ';i++) string[i]=string1[i];for(j=0;string2[j]!=' ';j++) string[i+j]=string2[j];string[i+j]=' ';} 7-7 写一个函数,将字符窜中元音字母复制到另一个字符窜,然后输出。#include void main(){ void cpy(char [],char []);char str[80],c[80];printf(“input string:”);gets(str); cpy(str,c); printf(“The vowel letters are:%sn”,c);} void cpy(char s[],char c[]){ int i,j;for(i=0,j=0;s[i]!=' ';i++) if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'|| s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U') { c[j]=s[i]; j++; } c[j]=' ';} 7-13 输入10个学生5门课的成绩,分别用函数实现下列功能。1 计算每个学生平均分。2 计算每门课的平均分。找出所有50个分数中最高的分数所对应的学生和课程。4 计算平均方差。 #include void main(){ int i,j;float h;float s_var(void);float highest();void input_stu(void);void aver_stu(void);void aver_cour(void); input_stu();aver_stu();aver_cour(); printf(“n NO.cour1 avern”);for(i=0;i printf(“n NO %2d ”,i+1); for(j=0;j printf(“%8.2f”,score[i][j]); printf(“%8.2fn”,a_stu[i]);} printf(“naverage:”);for(j=0;j printf(“%8.2f”,a_cour[j]);printf(“n”); h=highest(); cour2 cour3 cour4 cour5 printf(“highest:%7.2f NO.%2d course %2dn”,h,r,c);printf(“variance %8.2fn”,s_var());} void input_stu(void){ int i,j;for(i=0;i printf(“ninput score of student%2d:n”,i+1); for(j=0;j scanf(“%f”,&score[i][j]);} } void aver_stu(void){ int i,j;float s;for(i=0;i for(j=0,s=0;j s+=score[i][j]; a_stu[i]=s/5.0;} } void aver_cour(void){ int i,j;float s;for(j=0;j s=0; for(i=0;i s+=score[i][j]; a_cour[j]=s/(float)N;} } float highest(){ float high;int i,j;high=score[0][0];for(i=0;i for(j=0;j if(score[i][j]>high) { high=score[i][j]; r=i+1; c=j+1; } return(high);} float s_var(void){ int i;float sumx,sumxn;sumx=0.0;sumxn=0.0;for(i=0;i sumx+=a_stu[i]*a_stu[i]; sumxn+=a_stu[i];} return(sumx/N-(sumxn/N)*(sumxn/N));} 7-14 写几个函数: 输入10个职工的姓名和职工号 按职工号由小到大的顺序排序,姓名顺序也随之调整。要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。 #include void main(){ void input(int [],char name[][8]);void sort(int [],char name[][8]);void search(int ,int [],char name[][8]);int num[N],number,flag=1,c;char name[N][8]; input(num,name);sort(num,name);while(flag==1){ printf(“ninput number to look for:”); scanf(“%d”,&number); search(number,num,name); printf(“continue ot not(Y/N)?”); getchar(); c=getchar(); if(c=='N'||c=='n') flag=0;} } void input(int num[],char name[N][8]){ int i;for(i=0;i printf(“input NO.: ”); scanf(“%d”,&num[i]); printf(“input name: ”); getchar(); gets(name[i]);} } void sort(int num[],char name[N][8]){ int i,j,min,templ;char temp2[8];for(i=0;i min=i; for(j=i;j if(num[min]>num[j]) min=j; templ=num[i]; strcpy(temp2,name[i]); num[i]=num[min]; strcpy(name[i],name[min]); num[min]=templ; strcpy(name[min],temp2);} printf(“n result:n”);for(i=0;i printf(“n %5d%10s”,num[i],name[i]);} void search(int n,int num[],char name[N][8]){ int top,bott,mid,loca,sign;top=0;bott=N-1;loca=0;sign=1; if((n loca=-1;while((sign==1)&&(top<=bott)){ mid=(bott+top)/2; if(n==num[mid]) { loca=mid; printf(“NO.%d , his name is %s.n”,n,name[loca]); sign=-1; } else if(n bott=mid-1; else top=mid+1;} if(sign==1 || loca==-1) printf(“%d not been found.n”,n);} 第八章 指针 8-1 1 输入3个整数,按由小到大的顺序输出 #include int *p1,*p2,*p3;p1=&a;p2=&b;p3=&c;scanf(“%d,%d,%d”,p1,p2,p3);if(*p1>*p2)swap(p1,p2);if(*p1>*p3)swap(p1,p3);if(*p2>*p3)swap(p2,p3);printf(“%d,%d,%dn”,a,b,c);} void swap(int*p1,int*p2){ int p;p=*p1;*p1=*p2;*p2=p;} 8-2 输入3个整数按有小到大的顺序输出。#include void main(){ void swap(char *,char *);char str1[20],str2[20],str3[20];printf(“input three line:n”);gets(str1);gets(str2);gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2);if(strcmp(str1,str3)>0) swap(str1,str3);if(strcmp(str2,str3)>0) swap(str2,str3);printf(“Now,the order is:n”);printf(“%sn%sn%sn”,str1,str2,str3);} void swap(char *p1,char *p2){ char p[20];strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);} 8-3 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1输入10个数;2 进行处理;3 输出10个数 #include void main(){ void input(int *); void max_min_value(int *); void output(int *);int number[10]; input(number); max_min_value(number); output(number); } void input(int *number) { int i;printf(“input 10 numbers:”);for(i=0;i<10;i++) scanf(“%d”,&number[i]);} void max_min_value(int *number) { int *max,*min,*p,temp;max=min=number;for(p=number+1;p if(*p>*max) max=p; else if(*p<*min) min=p; temp=number[0];number[0]=*min;*min=temp; if(max==number) max=min;temp=number[9];number[9]=*max;*max=temp;} void output(int *number) { int *p;printf(“Now,they are: ”);for(p=number;p printf(“%d ”,*p);printf(“n”);} 8-7 有一个字符窜,包含n个字符。写一个函数,将此字符窜中从m个字符开始的全部字符复制成为另一个字符窜。 #include void main(){ void copystr(char *,char *,int); int m;char str1[20],str2[20]; printf(“input string:”);gets(str1); printf(“which character that begin to copy?”);scanf(“%d”,&m); if(strlen(str1) printf(“input error!”);else { copystr(str1,str2,m); printf(“result:%sn”,str2);} } void copystr(char *p1,char *p2,int m) { int n;n=0;while(n n++; p1++;} while(*p1!=' '){ *p2=*p1; p1++; p2++;} *p2=' ';} 8-9 写一个函数,使给定的一个3x3的二维整形数组转置,即行列转换。 #include void main(){ void move(int *pointer);int a[3][3],*p,i;printf(“input matrix:n”); for(i=0;i<3;i++) scanf(“%d %d %d”,&a[i][0],&a[i][1],&a[i][2]); p=&a[0][0];move(p); printf(“Now,matrix:n”);for(i=0;i<3;i++) printf(“%d %d %dn”,a[i][0],a[i][1],a[i][2]);} void move(int *pointer){ int i,j,t;for(i=0;i<3;i++) for(j=i;j<3;j++) { t=*(pointer+3*i+j); *(pointer+3*i+j)=*(pointer+3*j+i); *(pointer+3*j+i)=t; } } 8-13 将n个数按输入顺序的逆序排列,用函数实现。 #include void main(){ void sort(char *p,int m);int i,n;char *p,num[20]; printf(“input n:”);scanf(“%d”,&n); printf(“please input these numbers:n”);for(i=0;i scanf(“%d”,&num[i]); p=&num[0];sort(p,n); printf(“Now,the sequence is:n”);for(i=0;i printf(“%d ”,num[i]);printf(“n”);} void sort(char *p,int m){ int i;char temp, *p1,*p2;for(i=0;i p1=p+i; p2=p+(m-1-i); temp=*p1; *p1=*p2; *p2=temp;} } 第九章 用户建立的数据类型 9-1 定义一个结构体变量(包扩年、月、日)。计算该日在本年中的第几天,注意闰年问题。 #include struct { int year;int month;int day;}date; void main(){ int days;printf(“input year,month,day:”);scanf(“%d,%d,%d”,&date.year,&date.month,&date.day); switch(date.month){ case 1: days=date.day; break;case 2: days=date.day+31;break;case 3: days=date.day+59;break;case 4: days=date.day+90;break;case 5: days=date.day+120;break;case 6: days=date.day+151;break;case 7: days=date.day+181;break;case 8: days=date.day+212;break;case 9: days=date.day+243;break;case 10: days=date.day+273;break;case 11: days=date.day+304;break;case 12: days=date.day+334;break;} if((date.year %4== 0 && date.year % 100!= 0 ||date.year % 400 == 0)&& date.month >=3) days+=1; printf(“%d/%d is the in %d.n”,date.month,date.day,days,date.year);} %dth day 9-2 写一个函数days,实现第一题的计算,由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。 clude struct { int year;int month;int day;}date; void main(){ int i,days;int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};printf(“input year,month,day:”);scanf(“%d,%d,%d”,&date.year,&date.month,&date.day); days=0;for(i=1;i days=days+day_tab[i];days=days+date.day;if((date.year%4==0 && date.year%100!=0 || date.year%400==0)&& date.month>=3) days=days+1; printf(“%d/%d is the in %d.n”,date.month,date.day,days,date.year);} %dth day 9-3 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num.name,score[3],用主函数输入这些记录,用print函数输出这些记录。 #include struct student { char num[6];char name[8];int score[4];}stu[N]; void main(){ void print(struct student stu[6]);int i,j;for(i=0;i printf(“ninput score of student %d:n”,i+1); printf(“NO.: ”); scanf(“%s”,stu[i].num); printf(“name: ”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%d”,&stu[i].score[j]); } printf(“n”);} print(stu);} void print(struct student stu[6]){ int i,j;printf(“n NO.name score1 score2 score3n”);for(i=0;i printf(“%5s%10s”,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(“%9d”,stu[i].score[j]); printf(“n”);} } 9-4 在第3题的基础上,编写一个函数input,用来输入5个学生的数据记录。 #include struct student { char num[6];char name[8];int score[4];} stu[N]; void main(){ void input(struct student stu[]);void print(struct student stu[]);input(stu);print(stu);} void input(struct student stu[]){ int i,j;for(i=0;i printf(“input scores of student %d:n”,i+1); printf(“NO.: ”); scanf(“%s”,stu[i].num); printf(“name: ”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%d”,&stu[i].score[j]); } printf(“n”);} } void print(struct student stu[6]){ int i,j;printf(“n NO.name score1 score2 score3n”);for(i=0;i printf(“%5s%10s”,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(“%9d”,stu[i].score[j]); printf(“n”);} } 9-5 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总成绩,以及最高分的学生数据(包括学号、姓名、3门课程成绩、平均分数) #include struct student { char num[6];char name[8];float score[3];float avr;} stu[N]; void main(){ int i,j,maxi;float sum,max,average;for(i=0;i printf(“input scores of student %d:n”,i+1); printf(“NO.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%f”,&stu[i].score[j]); } } average=0;max=0;maxi=0;for(i=0;i sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=N; printf(“ NO.name score1 score2 for(i=0;i printf(”%5s%10s“,stu[i].num,stu[i].name); for(j=0;j<3;j++) printf(”%9.2f“,stu[i].score[j]); printf(” %8.2fn“,stu[i].avr);} printf(”average=%5.2fn“,average);printf(”The highest score score3 averagen“);is : student %s,%sn”,stu[maxi].num,stu[maxi].name);printf(“his scores are:%6.2f,%6.2f,%6.2f,average:%5.2f.n”, stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);} 《王几何》课后习题解答 一、快速默读课文,概括文章的主要内容,说说王几何老师给你留下了怎样的印象。 本文写了王几何老师上第一节课时的情形,刻画了一位风趣幽默、教学水平高、业务能力强、学识广博的老师形象。 印象:王老师和蔼风趣,是良师又是益友,是平凡朴实、学生喜欢爱戴的人,他留给我的印象终生难忘。 二、王老师请同学们在黑板上画圆和三角形,用意是什么?文章中的这些描写,在结构和内容表达上有什么作用? 王老师请同学们在黑板上画圆和三角形,用意是让同学们明白只要功夫深,铁棒可以磨成针!要大家牢记一种热爱知识和持之以恒的学习精神。 文章中的这段描写,在结构上总结了上文,在内容上点明了主旨。 三、这是一篇典型的写人记事的文章,作者从外貌、神态、语言、动作等不同方面刻画了一位老师的形象。先在课文中圈点出相关描写,然后任选一个方面写一段评价文字,与同学交流。如果你喜欢画画,可以用简笔线条勾勒出王老师的肖像。 示例:“矮胖老师依然不说一句话,但却渐渐收起了笑容,用黑板刷轻轻敲击着讲台上的课桌,待全班同学安静下来,他突然面向课堂,反手在背后的黑板上徒手画了一个篮球大的圆,紧接着,又反手画了一个等边三角形。” 这段文字运用了神态、动作等描写方法,寥寥几笔,一个水平高,业务熟,见识广的教师形象跃然纸上。 / 1第五篇:《王几何》课后习题解答