实验答案函数.docx
《实验答案函数.docx》由会员分享,可在线阅读,更多相关《实验答案函数.docx(21页珍藏版)》请在冰点文库上搜索。
实验答案函数
1.编一个带有函数的程序。
在main()函数中输入一个字符串(长度<20),调用函数fun将该字符串中的所有字符按ASCII码升序排序,然后再输出排序后的字符串。
例如,输入edcba,则应输出abcde.。
#include
intmain()
{
voidfun(charx[],inty);
inti;
charc[20];
printf("Pleaseinputchars:
\n");
gets(c);
i=strlen(c);
fun(c,i);
return0;
}
voidfun(charx[],inty)
inti,j;
charc;
for(i=0;ifor(j=i+1;jif(x[i]>x[j]){c=x[i];x[i]=x[j];x[j]=c;}puts(x);} 2.下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:abcd123efg456变为123456)。修改该程序,要求将红色部分用一个函数来实现。#include"stdio.h"main(){chars[15];inti,j;scanf("%s",s);for(i=0,j=0;s[i]!='\0';i++)if(s[i]>='0'&&s[i]<='9'){s[j]=s[i];j++;}s[j]='\0';printf("\nTheresult:");printf("%s",s);}#includeintmain(){voidfun(charx[]);chars[15];printf("Inputcharstofills[15]:\n");scanf("%s",s);fun(s);return0;}voidfun(charx[]){inti,j;for(i=0,j=0;x[i]!='\0';i++)if(x[i]>='0'&&x[i]<='9'){x[j]=x[i];j++;}x[j]='\0';puts(x);} 3.编写带有函数的程序(函数名为:intfun(ints[],int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如:输入如下整数876675896101301401980431451777则输出结果为:6,980。#includevoidfun(ints[],int*k){inti,max=s[0];for(i=1;i<10;i++)if(max{max=s[i];*k=i;}}intmain(){inta[10]={876,675,896,101,301,401,980,431,451,777};intk;fun(a,&k);printf("%d,%d\n",k,a[6]);return0;} main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。例如:原来数组的元素依次为4、6、8、41、56、77、102。若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。#includevoidfun(ints[],intm){inti,j;for(i=0;;i++)if(s[i]m)break;for(j=6;j>i;j--)s[j+1]=s[j];s[i+1]=m;}intmain(){ints[8]={4,6,8,41,56,77,102};inti,m;puts("Pleaseinputm:");scanf("%d",&m);fun(s,m);for(i=0;i<8;i++)printf("%d",s[i]);putchar('\n');return0;} 程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。拷贝时,’\0’也拷贝过去,但’\0’后面的字符不拷贝。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti;scanf("%s",s2);for(i=0;s2[i]!=’\0’;i++)s1[i]=s2[i];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti;for(i=0;s2[i]!='\0';i++)s1[i]=s2[i];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharsofs2[]:");gets(s2);xp(s1,s2);printf("s1:%s\n",s1);return0;} 6.编写带有函数的程序(函数名为:fun()),功能是将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从0开始的)。例如:输入abbcc45ghNj,则应输出aBbCc45GhNj。#includevoidfun(charx[]){inti;for(i=1;x[i]!='\0';i=i+2)if(x[i]>'a'&&x[i]<'z')x[i]=x[i]-32;}intmain(){charss[80];puts("Inputcharstofillss[]:");gets(ss);fun(ss);puts(ss);return0;}main()函数中,先从键盘上输入一个3行3列整型数组的各个元素的值,然后调用函数fun(),其功能是计算并返回主对角线元素之和。#includeintfun(inta[][3]){inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)s=s+a[i][j];returns;}intmain(){inti,j,k,a[3][3];puts("Input9numberstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);k=fun(a);printf("主对角线之和=%d",k);return0;}10个整数按降序进行排序。修改该程序,要求将红色部分用一个函数来实现。main(){inta[11],i,j,t;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);}#includevoidfun(inta[]){inti,j,t;for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}}intmain(){inta[11],i;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");fun(a);printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);putchar('\n');return0;} 9.编写带有函数的程序(函数名为:intfun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。结果应该是:15455154#includeintfun(intb[]){inti,j=0;for(i=1;i<=55;i++)if(i%3==0)if(i/10==5||i%10==5){b[j]=i;j++;}returnj;}intmain(){inta[100],k,m;m=fun(a);printf("Theresultis:\n");for(k=0;kprintf("%4d",a[k]);printf("\n");return0;} 10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti=0,j;scanf("%s",s1);scanf(“%s”,s2);while(s1[i]!=’\0’)i++;for(j=0;s2[j]!=’\0’;)s1[i++]=s2[j++];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti=0,j;while(s1[i]!='\0')i++;for(j=0;s2[j]!='\0';)s1[i++]=s2[j++];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharstofills1[]:");gets(s1);puts("Inputcharstofills2[]:");gets(s2);xp(s1,s2);puts(s1);return0;} 11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。例如:输入123412132,再输入字符1则应输出3。#includeintfun(chara[],charch){inti,x=0;for(i=0;a[i]!='\0';i++)if(a[i]==ch)x++;returnx;}intmain(){chara[20],ch;printf("Pleaseenterastring:\n");gets(a);printf("Pleaseenterachar:\n");ch=getchar();printf("Thechar\"%c\"hasappeared%dtimes!\n",ch,fun(a,ch));return0;}12.调用函数fun(),其功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。例如:输入字符串为:turbocandBorlandc++输入字符n,则输出为turbocadBorladc++。#includevoidfun(charc[],charx){inti,j=0;for(i=0;c[i]!='\0';i++)if(c[i]!=x){c[j]=c[i];j++;}c[j]='\0';}intmain(){charx,c[80];puts("Inputcharstofillc[]:");gets(c);puts("Inputthecharx:");scanf("%c",&x);fun(c,x);puts(c);return0;}main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,然后再在main函数中输出转置后的数组。例如:原数组为:转置后为:123147456258789369#includevoidfun(inta[][3]){inti,j,t;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}intmain(){inti,j,a[3][3];puts("Input9wordstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);fun(a);puts("a[3][3]turnsto:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);putchar('\n');}return0;} 14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。#includeintfun(inta[]){inti,j=0;for(i=100;i<=1000;i++)if(i%10==i%100/10&&i%10==i/100){a[j]=i;j++;}returnj;}intmain(){inta[50],num=0,i;num=fun(a);printf("Theresult:\n");for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
for(j=i+1;jif(x[i]>x[j]){c=x[i];x[i]=x[j];x[j]=c;}puts(x);} 2.下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:abcd123efg456变为123456)。修改该程序,要求将红色部分用一个函数来实现。#include"stdio.h"main(){chars[15];inti,j;scanf("%s",s);for(i=0,j=0;s[i]!='\0';i++)if(s[i]>='0'&&s[i]<='9'){s[j]=s[i];j++;}s[j]='\0';printf("\nTheresult:");printf("%s",s);}#includeintmain(){voidfun(charx[]);chars[15];printf("Inputcharstofills[15]:\n");scanf("%s",s);fun(s);return0;}voidfun(charx[]){inti,j;for(i=0,j=0;x[i]!='\0';i++)if(x[i]>='0'&&x[i]<='9'){x[j]=x[i];j++;}x[j]='\0';puts(x);} 3.编写带有函数的程序(函数名为:intfun(ints[],int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如:输入如下整数876675896101301401980431451777则输出结果为:6,980。#includevoidfun(ints[],int*k){inti,max=s[0];for(i=1;i<10;i++)if(max{max=s[i];*k=i;}}intmain(){inta[10]={876,675,896,101,301,401,980,431,451,777};intk;fun(a,&k);printf("%d,%d\n",k,a[6]);return0;} main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。例如:原来数组的元素依次为4、6、8、41、56、77、102。若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。#includevoidfun(ints[],intm){inti,j;for(i=0;;i++)if(s[i]m)break;for(j=6;j>i;j--)s[j+1]=s[j];s[i+1]=m;}intmain(){ints[8]={4,6,8,41,56,77,102};inti,m;puts("Pleaseinputm:");scanf("%d",&m);fun(s,m);for(i=0;i<8;i++)printf("%d",s[i]);putchar('\n');return0;} 程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。拷贝时,’\0’也拷贝过去,但’\0’后面的字符不拷贝。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti;scanf("%s",s2);for(i=0;s2[i]!=’\0’;i++)s1[i]=s2[i];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti;for(i=0;s2[i]!='\0';i++)s1[i]=s2[i];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharsofs2[]:");gets(s2);xp(s1,s2);printf("s1:%s\n",s1);return0;} 6.编写带有函数的程序(函数名为:fun()),功能是将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从0开始的)。例如:输入abbcc45ghNj,则应输出aBbCc45GhNj。#includevoidfun(charx[]){inti;for(i=1;x[i]!='\0';i=i+2)if(x[i]>'a'&&x[i]<'z')x[i]=x[i]-32;}intmain(){charss[80];puts("Inputcharstofillss[]:");gets(ss);fun(ss);puts(ss);return0;}main()函数中,先从键盘上输入一个3行3列整型数组的各个元素的值,然后调用函数fun(),其功能是计算并返回主对角线元素之和。#includeintfun(inta[][3]){inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j)s=s+a[i][j];returns;}intmain(){inti,j,k,a[3][3];puts("Input9numberstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);k=fun(a);printf("主对角线之和=%d",k);return0;}10个整数按降序进行排序。修改该程序,要求将红色部分用一个函数来实现。main(){inta[11],i,j,t;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);}#includevoidfun(inta[]){inti,j,t;for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}}intmain(){inta[11],i;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");fun(a);printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);putchar('\n');return0;} 9.编写带有函数的程序(函数名为:intfun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。结果应该是:15455154#includeintfun(intb[]){inti,j=0;for(i=1;i<=55;i++)if(i%3==0)if(i/10==5||i%10==5){b[j]=i;j++;}returnj;}intmain(){inta[100],k,m;m=fun(a);printf("Theresultis:\n");for(k=0;kprintf("%4d",a[k]);printf("\n");return0;} 10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti=0,j;scanf("%s",s1);scanf(“%s”,s2);while(s1[i]!=’\0’)i++;for(j=0;s2[j]!=’\0’;)s1[i++]=s2[j++];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti=0,j;while(s1[i]!='\0')i++;for(j=0;s2[j]!='\0';)s1[i++]=s2[j++];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharstofills1[]:");gets(s1);puts("Inputcharstofills2[]:");gets(s2);xp(s1,s2);puts(s1);return0;} 11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。例如:输入123412132,再输入字符1则应输出3。#includeintfun(chara[],charch){inti,x=0;for(i=0;a[i]!='\0';i++)if(a[i]==ch)x++;returnx;}intmain(){chara[20],ch;printf("Pleaseenterastring:\n");gets(a);printf("Pleaseenterachar:\n");ch=getchar();printf("Thechar\"%c\"hasappeared%dtimes!\n",ch,fun(a,ch));return0;}12.调用函数fun(),其功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。例如:输入字符串为:turbocandBorlandc++输入字符n,则输出为turbocadBorladc++。#includevoidfun(charc[],charx){inti,j=0;for(i=0;c[i]!='\0';i++)if(c[i]!=x){c[j]=c[i];j++;}c[j]='\0';}intmain(){charx,c[80];puts("Inputcharstofillc[]:");gets(c);puts("Inputthecharx:");scanf("%c",&x);fun(c,x);puts(c);return0;}main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,然后再在main函数中输出转置后的数组。例如:原数组为:转置后为:123147456258789369#includevoidfun(inta[][3]){inti,j,t;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}intmain(){inti,j,a[3][3];puts("Input9wordstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);fun(a);puts("a[3][3]turnsto:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);putchar('\n');}return0;} 14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。#includeintfun(inta[]){inti,j=0;for(i=100;i<=1000;i++)if(i%10==i%100/10&&i%10==i/100){a[j]=i;j++;}returnj;}intmain(){inta[50],num=0,i;num=fun(a);printf("Theresult:\n");for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
if(x[i]>x[j])
{c=x[i];x[i]=x[j];x[j]=c;}
puts(x);
2.下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:
abcd123efg456变为123456)。
修改该程序,要求将红色部分用一个函数来实现。
#include"stdio.h"
main()
{chars[15];inti,j;
scanf("%s",s);
for(i=0,j=0;s[i]!
='\0';i++)
if(s[i]>='0'&&s[i]<='9')
{s[j]=s[i];j++;}
s[j]='\0';
printf("\nTheresult:
");
printf("%s",s);
voidfun(charx[]);
chars[15];
printf("Inputcharstofills[15]:
fun(s);
voidfun(charx[])
for(i=0,j=0;x[i]!
if(x[i]>='0'&&x[i]<='9')
{x[j]=x[i];j++;}
x[j]='\0';
3.编写带有函数的程序(函数名为:
intfun(ints[],int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如:
输入如下整数876675896101301401980431451777
则输出结果为:
6,980。
voidfun(ints[],int*k)
inti,max=s[0];
for(i=1;i<10;i++)
if(max
{max=s[i];*k=i;}
inta[10]={876,675,896,101,301,401,980,431,451,777};
intk;
fun(a,&k);
printf("%d,%d\n",k,a[6]);
main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。
原来数组的元素依次为4、6、8、41、56、77、102。
若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。
voidfun(ints[],intm)
for(i=0;;i++)
if(s[i]m)break;
for(j=6;j>i;j--)
s[j+1]=s[j];
s[i+1]=m;
ints[8]={4,6,8,41,56,77,102};
inti,m;
puts("Pleaseinputm:
scanf("%d",&m);
fun(s,m);
for(i=0;i<8;i++)
printf("%d",s[i]);
putchar('\n');
程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。
拷贝时,’\0’也拷贝过去,但’\0’后面的字符不拷贝。
chars1[80],s2[80];
scanf("%s",s2);
for(i=0;s2[i]!
=’\0’;i++)
s1[i]=s2[i];
s1[i]=’\0’;
printf("s1:
%s\n",s1);
voidxp(chars1[],chars2[])
s1[i]='\0';
puts("Inputcharsofs2[]:
gets(s2);
xp(s1,s2);
6.编写带有函数的程序(函数名为:
fun()),功能是将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从0开始的)。
输入abbcc45ghNj,则应输出aBbCc45GhNj。
for(i=1;x[i]!
='\0';i=i+2)
if(x[i]>'a'&&x[i]<'z')
x[i]=x[i]-32;
charss[80];
puts("Inputcharstofillss[]:
gets(ss);
fun(ss);
puts(ss);
main()函数中,先从键盘上输入一个3行3列整型数组的各个元素的值,然后调用函数fun(),其功能是计算并返回主对角线元素之和。
intfun(inta[][3])
inti,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)s=s+a[i][j];
returns;
inti,j,k,a[3][3];
puts("Input9numberstofilla[3][3]:
scanf("%d",&a[i][j]);
k=fun(a);
printf("主对角线之和=%d",k);
10个整数按降序进行排序。
{inta[11],i,j,t;
printf("Input10numbers:
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);}#includevoidfun(inta[]){inti,j,t;for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}}intmain(){inta[11],i;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");fun(a);printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);putchar('\n');return0;} 9.编写带有函数的程序(函数名为:intfun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。结果应该是:15455154#includeintfun(intb[]){inti,j=0;for(i=1;i<=55;i++)if(i%3==0)if(i/10==5||i%10==5){b[j]=i;j++;}returnj;}intmain(){inta[100],k,m;m=fun(a);printf("Theresultis:\n");for(k=0;kprintf("%4d",a[k]);printf("\n");return0;} 10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti=0,j;scanf("%s",s1);scanf(“%s”,s2);while(s1[i]!=’\0’)i++;for(j=0;s2[j]!=’\0’;)s1[i++]=s2[j++];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti=0,j;while(s1[i]!='\0')i++;for(j=0;s2[j]!='\0';)s1[i++]=s2[j++];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharstofills1[]:");gets(s1);puts("Inputcharstofills2[]:");gets(s2);xp(s1,s2);puts(s1);return0;} 11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。例如:输入123412132,再输入字符1则应输出3。#includeintfun(chara[],charch){inti,x=0;for(i=0;a[i]!='\0';i++)if(a[i]==ch)x++;returnx;}intmain(){chara[20],ch;printf("Pleaseenterastring:\n");gets(a);printf("Pleaseenterachar:\n");ch=getchar();printf("Thechar\"%c\"hasappeared%dtimes!\n",ch,fun(a,ch));return0;}12.调用函数fun(),其功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。例如:输入字符串为:turbocandBorlandc++输入字符n,则输出为turbocadBorladc++。#includevoidfun(charc[],charx){inti,j=0;for(i=0;c[i]!='\0';i++)if(c[i]!=x){c[j]=c[i];j++;}c[j]='\0';}intmain(){charx,c[80];puts("Inputcharstofillc[]:");gets(c);puts("Inputthecharx:");scanf("%c",&x);fun(c,x);puts(c);return0;}main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,然后再在main函数中输出转置后的数组。例如:原数组为:转置后为:123147456258789369#includevoidfun(inta[][3]){inti,j,t;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}intmain(){inti,j,a[3][3];puts("Input9wordstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);fun(a);puts("a[3][3]turnsto:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);putchar('\n');}return0;} 14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。#includeintfun(inta[]){inti,j=0;for(i=100;i<=1000;i++)if(i%10==i%100/10&&i%10==i/100){a[j]=i;j++;}returnj;}intmain(){inta[50],num=0,i;num=fun(a);printf("Theresult:\n");for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("Thesortednumbers:
printf("%d",a[i]);
voidfun(inta[])
inti,j,t;
if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;}}intmain(){inta[11],i;printf("Input10numbers:\n");for(i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");fun(a);printf("Thesortednumbers:\n");for(i=1;i<11;i++)printf("%d",a[i]);putchar('\n');return0;} 9.编写带有函数的程序(函数名为:intfun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。结果应该是:15455154#includeintfun(intb[]){inti,j=0;for(i=1;i<=55;i++)if(i%3==0)if(i/10==5||i%10==5){b[j]=i;j++;}returnj;}intmain(){inta[100],k,m;m=fun(a);printf("Theresultis:\n");for(k=0;kprintf("%4d",a[k]);printf("\n");return0;} 10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti=0,j;scanf("%s",s1);scanf(“%s”,s2);while(s1[i]!=’\0’)i++;for(j=0;s2[j]!=’\0’;)s1[i++]=s2[j++];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti=0,j;while(s1[i]!='\0')i++;for(j=0;s2[j]!='\0';)s1[i++]=s2[j++];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharstofills1[]:");gets(s1);puts("Inputcharstofills2[]:");gets(s2);xp(s1,s2);puts(s1);return0;} 11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。例如:输入123412132,再输入字符1则应输出3。#includeintfun(chara[],charch){inti,x=0;for(i=0;a[i]!='\0';i++)if(a[i]==ch)x++;returnx;}intmain(){chara[20],ch;printf("Pleaseenterastring:\n");gets(a);printf("Pleaseenterachar:\n");ch=getchar();printf("Thechar\"%c\"hasappeared%dtimes!\n",ch,fun(a,ch));return0;}12.调用函数fun(),其功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。例如:输入字符串为:turbocandBorlandc++输入字符n,则输出为turbocadBorladc++。#includevoidfun(charc[],charx){inti,j=0;for(i=0;c[i]!='\0';i++)if(c[i]!=x){c[j]=c[i];j++;}c[j]='\0';}intmain(){charx,c[80];puts("Inputcharstofillc[]:");gets(c);puts("Inputthecharx:");scanf("%c",&x);fun(c,x);puts(c);return0;}main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,然后再在main函数中输出转置后的数组。例如:原数组为:转置后为:123147456258789369#includevoidfun(inta[][3]){inti,j,t;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}intmain(){inti,j,a[3][3];puts("Input9wordstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);fun(a);puts("a[3][3]turnsto:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);putchar('\n');}return0;} 14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。#includeintfun(inta[]){inti,j=0;for(i=100;i<=1000;i++)if(i%10==i%100/10&&i%10==i/100){a[j]=i;j++;}returnj;}intmain(){inta[50],num=0,i;num=fun(a);printf("Theresult:\n");for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
inta[11],i;
fun(a);
9.编写带有函数的程序(函数名为:
intfun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
结果应该是:
15455154
intfun(intb[])
inti,j=0;
for(i=1;i<=55;i++)
if(i%3==0)
if(i/10==5||i%10==5)
{b[j]=i;j++;}
returnj;
inta[100],k,m;
m=fun(a);
printf("Theresultis:
for(k=0;kprintf("%4d",a[k]);printf("\n");return0;} 10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。main(){chars1[80],s2[80];inti=0,j;scanf("%s",s1);scanf(“%s”,s2);while(s1[i]!=’\0’)i++;for(j=0;s2[j]!=’\0’;)s1[i++]=s2[j++];s1[i]=’\0’;printf("s1:%s\n",s1);}#includevoidxp(chars1[],chars2[]){inti=0,j;while(s1[i]!='\0')i++;for(j=0;s2[j]!='\0';)s1[i++]=s2[j++];s1[i]='\0';}intmain(){chars1[80],s2[80];puts("Inputcharstofills1[]:");gets(s1);puts("Inputcharstofills2[]:");gets(s2);xp(s1,s2);puts(s1);return0;} 11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。例如:输入123412132,再输入字符1则应输出3。#includeintfun(chara[],charch){inti,x=0;for(i=0;a[i]!='\0';i++)if(a[i]==ch)x++;returnx;}intmain(){chara[20],ch;printf("Pleaseenterastring:\n");gets(a);printf("Pleaseenterachar:\n");ch=getchar();printf("Thechar\"%c\"hasappeared%dtimes!\n",ch,fun(a,ch));return0;}12.调用函数fun(),其功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。例如:输入字符串为:turbocandBorlandc++输入字符n,则输出为turbocadBorladc++。#includevoidfun(charc[],charx){inti,j=0;for(i=0;c[i]!='\0';i++)if(c[i]!=x){c[j]=c[i];j++;}c[j]='\0';}intmain(){charx,c[80];puts("Inputcharstofillc[]:");gets(c);puts("Inputthecharx:");scanf("%c",&x);fun(c,x);puts(c);return0;}main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,然后再在main函数中输出转置后的数组。例如:原数组为:转置后为:123147456258789369#includevoidfun(inta[][3]){inti,j,t;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}intmain(){inti,j,a[3][3];puts("Input9wordstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);fun(a);puts("a[3][3]turnsto:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);putchar('\n');}return0;} 14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。#includeintfun(inta[]){inti,j=0;for(i=100;i<=1000;i++)if(i%10==i%100/10&&i%10==i/100){a[j]=i;j++;}returnj;}intmain(){inta[50],num=0,i;num=fun(a);printf("Theresult:\n");for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
printf("%4d",a[k]);
10.下面程序的功能是将两个字符串连接起来,不要用strcat函数。
inti=0,j;
scanf("%s",s1);
scanf(“%s”,s2);
while(s1[i]!
=’\0’)i++;
for(j=0;s2[j]!
=’\0’;)
s1[i++]=s2[j++];
='\0')
i++;
='\0';)
puts("Inputcharstofills1[]:
gets(s1);
puts("Inputcharstofills2[]:
puts(s1);
11.编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。
输入123412132,再输入字符1则应输出3。
intfun(chara[],charch)
inti,x=0;
for(i=0;a[i]!
if(a[i]==ch)x++;
returnx;
chara[20],ch;
printf("Pleaseenterastring:
gets(a);
printf("Pleaseenterachar:
ch=getchar();
printf("Thechar\"%c\"hasappeared%dtimes!
\n",ch,fun(a,ch));
12.调用函数fun(),其功能是从字符串中删除指定的字符。
同一字母的大小写按不同字符处理。
输入字符串为:
turbocandBorlandc++
输入字符n,则输出为turbocadBorladc++。
voidfun(charc[],charx)
for(i=0;c[i]!
if(c[i]!
=x)
{c[j]=c[i];j++;}
c[j]='\0';
charx,c[80];
puts("Inputcharstofillc[]:
puts("Inputthecharx:
scanf("%c",&x);
fun(c,x);
puts(c);
main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,
然后再在main函数中输出转置后的数组。
原数组为:
转置后为:
123147
456258
789369
voidfun(inta[][3])
if(i{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}}intmain(){inti,j,a[3][3];puts("Input9wordstofilla[3][3]:");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);fun(a);puts("a[3][3]turnsto:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",a[i][j]);putchar('\n');}return0;} 14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。#includeintfun(inta[]){inti,j=0;for(i=100;i<=1000;i++)if(i%10==i%100/10&&i%10==i/100){a[j]=i;j++;}returnj;}intmain(){inta[50],num=0,i;num=fun(a);printf("Theresult:\n");for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
inti,j,a[3][3];
puts("Input9wordstofilla[3][3]:
puts("a[3][3]turnsto:
printf("%d",a[i][j]);
14.利用函数方法编程序:
函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:
111、222、333、……),把这些整数放在s所指数组中,个数作为函数值返回。
intfun(inta[])
for(i=100;i<=1000;i++)
if(i%10==i%100/10&&i%10==i/100)
{a[j]=i;j++;}
inta[50],num=0,i;
num=fun(a);
printf("Theresult:
for(i=0;iprintf("%-5d",a[i]);return0;} 15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。单词是指由空格隔开的字符串。例如:若输入iamastudent,则删除IAmAStudent修改该程序,要求将红色部分用一个函数来实现。main(){charstr[30];inti,j,k=0,x,len;clrscr();gets(str);len=strlen(str);for(i=0;str[i]!=’\0’;i++)if(k){if(str[i]==’’)k=0;}elseif(str[i]!=’’){k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?str[i]-32:str[i];}printf("\n");puts(str);} #includevoidxp(charc[]){inti,k;if(c[0]>='a'&&c[0]<='z')c[0]=c[0]-32;for(i=0;c[i]!='\0';i++)if(k){if(c[i]=='')k=0;}elseif(c[i]!=''){k=1;c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i];}printf("\n");}intmain(){charc[80];puts("Inputcharstofillc[]:");gets(c);xp(c);puts(c);return0;}16.编写带有函数的程序(函数名为:intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#includeintfun(int*s,intt,int*k){inti,max;for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
printf("%-5d",a[i]);
15.下面程序的功能是输入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此行文本。
单词是指由空格隔开的字符串。
例如:
若输入iamastudent,则删除IAmAStudent
{charstr[30];
inti,j,k=0,x,len;
clrscr();
gets(str);
len=strlen(str);
for(i=0;str[i]!
if(k)
{if(str[i]==’’)k=0;}
elseif(str[i]!
=’’)
{k=1;str[i]=str[i]>=’a’&&str[i]<=’z’?
str[i]-32:
str[i];}
puts(str);
voidxp(charc[])
inti,k;
if(c[0]>='a'&&c[0]<='z')
c[0]=c[0]-32;
{if(c[i]=='')k=0;}
elseif(c[i]!
='')
{k=1;c[i]=c[i]>='a'&&c[i]<='z'?
c[i]-32:
c[i];}
charc[80];
xp(c);
16.编写带有函数的程序(函数名为:
intfun(int*s,intt,int*k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
intfun(int*s,intt,int*k)
inti,max;
for(i=0;iif(max{max=s[i];*k=i;}return*k;}intmain(){ints[10]={1,7,2,3,5,9,6,8,4,0};intk;fun(s,10,&k);printf("k=%d\n",k);return0;}17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#includevoidfun(intx,intpp[],int*n){inti,j=0;for(i=1;i<=x;i++)if(x%i==0&&i%2!=0){pp[j]=i;j++;}*n=j;}intmain(){intx,aa[100],n,i;printf("Pleaseenteranumber:\n");scanf("%d",&x);fun(x,aa,&n);for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
return*k;
ints[10]={1,7,2,3,5,9,6,8,4,0};
fun(s,10,&k);
printf("k=%d\n",k);
17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。
若x值为30,则有4个数符合要求,是1,3,5,15。
voidfun(intx,intpp[],int*n)
for(i=1;i<=x;i++)
if(x%i==0&&i%2!
=0)
{pp[j]=i;j++;}
*n=j;
intx,aa[100],n,i;
printf("Pleaseenteranumber:
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;iprintf("%-3d",aa[i]);printf("\n");return0;} 示例2.试纸的选择与使用(1)定量测定(如pH的测定)答题模板:取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)①检验溶液答题模板:将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。即证明××溶液具有××性质。②检验气体答题模板:取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。示例3.沉淀是否完全(1)定性检验答题模板:法Ⅰ:继续滴加沉淀剂法:静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。法Ⅱ:加入原试剂法:静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。(2)定量测定(不能取出上层清液)答题模板:静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。示例4.如何洗涤沉淀答题模板:向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。示例5.沉淀是否洗涤干净答题模板:取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。解答这类试题的三个关键得分点:(1)规范取样:要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。(2)选择试剂:选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。(3)描述现象:需有明显的实验现象或结论、判断。示例6.离子检验的实验操作答题模板:取样→滴加试剂→描述现象→得出结论规范描述:取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。示例7.滴定终点的准确判断答题模板:当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。以结晶为素材的分离提纯问题单一组分问题1.如何从氯化钠溶液中得到氯化钠?(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)问题2.如何从硝酸钾溶液中得到硝酸钾?问题3.如何从硫酸铜溶液中得到硫酸铜晶体?(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。)混合组分问题1.如何除去氯化钠溶液中的少量硝酸钾?(蒸发浓缩,趁热过滤)问题2.如何除去硝酸钾溶液中的少量氯化钠?(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)实验设计与评价基本方法:将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。示例一气体参与的综合实验设计思路气体制备—除杂—收集—尾气处理【变型】①利用气体与某种物质反应的实验气体制备—分离除杂—主体反应—尾气处理或产品保护②定量分析实验气体制备—分离除杂—主体反应—排水量气或称量质量—尾气处理或产品保护
printf("%-3d",aa[i]);
示例2.试纸的选择与使用
(1)定量测定(如pH的测定)
答题模板:
取一小片pH试纸放在表面皿(或玻璃片)上,用玻璃棒蘸取少量待测液,点在pH试纸上,待试纸变色后再与标准比色卡对照,得出测量数据。
(2)定性测定(如红色石蕊试纸、蓝色石蕊试纸、淀粉KI试纸、pH试纸等)
①检验溶液
将××试纸放在表面皿(或玻璃片)上,用洁净的玻璃棒蘸取少量待测液点在试纸的中部,试纸由××色变为××色。
即证明××溶液具有××性质。
②检验气体
取一小片××试纸用蒸馏水润湿,粘在玻璃棒的一端,靠近盛待测气体的容器口(如试管的管口)附近,试纸由××色变为××色,即证明该气体是××。
示例3.沉淀是否完全
(1)定性检验
法Ⅰ:
继续滴加沉淀剂法:
静置,取上层清液少量于试管中,加入××溶液(原沉淀剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)未过量。
法Ⅱ:
加入原试剂法:
静置,取上层清液少量于试管中,加入××溶液(原试剂),观察有无沉淀产生,若产生沉淀,证明××(沉淀剂)已经过量。
(2)定量测定(不能取出上层清液)
静置,向上层清液中继续滴加少量××试剂(原沉淀剂),观察有无沉淀产生,若没有沉淀产生,证明××(沉淀剂)已经过量。
示例4.如何洗涤沉淀
向漏斗中注入蒸馏水,直至没过沉淀,等水自然滤出后,再重复操作2~3次。
示例5.沉淀是否洗涤干净
取少许最后一次洗涤滤液于试管中,滴入少量××溶液(试剂),若(未)出现××现象,表明沉淀已(未)洗涤干净。
解答这类试题的三个关键得分点:
(1)规范取样:
要明确取用“少许”洗涤滤液,且滤液一定是最后一次洗涤液。
(2)选择试剂:
选择合理的试剂,要注意沉淀上可能的杂质是什么,选择相应的检验试剂。
(3)描述现象:
需有明显的实验现象或结论、判断。
示例6.离子检验的实验操作
取样→滴加试剂→描述现象→得出结论
规范描述:
取××溶液(待测液)少量于试管中,滴加几滴××溶液(离子检验的特征试剂),观察到××现象,说明溶液中有××离子。
示例7.滴定终点的准确判断
当滴入最后一滴××标准溶液后,溶液由××色变为××色,且半分钟之内不变色,或者××色褪去,且半分钟之内不恢复原色。
以结晶为素材的分离提纯问题
单一组分
问题1.如何从氯化钠溶液中得到氯化钠?
(加热蒸发,当出现大量晶体时停止加热,用余热蒸干)
问题2.如何从硝酸钾溶液中得到硝酸钾?
问题3.如何从硫酸铜溶液中得到硫酸铜晶体?
(溶解度随温度升高变化较大的物质、结晶水合物以及受热易分解的物质通常采用冷却结晶法,具体操作是“蒸发浓缩、冷却结晶、过滤、干燥”。
)
混合组分
问题1.如何除去氯化钠溶液中的少量硝酸钾?
(蒸发浓缩,趁热过滤)
问题2.如何除去硝酸钾溶液中的少量氯化钠?
(蒸发浓缩,冷却结晶或冷却热饱和溶液,过滤)
实验设计与评价
基本方法:
将一道综合实验题拆解成几个独立又相互联系的小实验题目来解答。
示例一气体参与的综合实验设计思路
气体制备—除杂—收集—尾气处理
【变型】①利用气体与某种物质反应的实验
气体制备—分离除杂—主体反应—尾气处理或产品保护
②定量分析实验
气体制备—分离除杂—主体反应—排水量气或称量质量
—尾气处理或产品保护
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2