C语言考试习题.ppt
首 页,例题1 填空题例题2 填空题例题3 填空题例题4 填空题例题5 填空题例题6 填空题例题7 填空题例题8 改错题例题9 改错题例题10 改错题,例题11 改错题例题12 改错题例题13 改错题例题14 改错题例题15 编程题例题16 编程题例题17 编程题例题18 编程题例题19 编程题例题20 编程题,例题1 填空题,试题程序,下列给定程序中,函数fun()的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。,#include#include#include char【1】fun(char tt)int i;for(i=0;tti;i+)if(tti=A),题 干,试题答案,例题1试题程序,例题2 填空题,试题程序,下列给定程序中,函数fun()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。,#include#define SIZE 20fun(double*s,double*w)int k,i;double sum;for(k=2,i=0;iSIZE;i+)si=k;k+=2;sum=0.0;for(k=0,i=0;iSIZE;i+)sum+=si;if(i+1)【1】5=0)wk=sum/5;sum=0;k+;【2】k;void main()double aSIZE,bSIZE/5;int i,k;k=fun(a,b);printf(The original data:n);for(i=0;iSIZE;i+)if(i%5=0)printf(n);printf(%4.0f,ai);printf(nnThe result:n);for(i=0;ik;i+)printf(%6.2f,【3】);printf(nn);,题 干,试题答案,例题2试题程序,例题3 填空题,试题程序,下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。,#include#include#include void fun(char*s)while(【1】)if(*s=A,题 干,试题答案,例题3试题程序,例题4 填空题,试题程序,下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为87653142时,t中的数为7531。,#include#include#include void fun(long s,long*t)int d;long s1=1;*t=0;while(s0)d=s【1】10;if(d%2!=0)*t=d*s1+*t;s1*=【2】;s/=【3】;void main()long s,t;system(CLS);printf(nPlease enter s:);scanf(%ld,题 干,试题答案,例题4试题程序,例题5 填空题,试题程序,下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO takE thE examinatioN,#include#include#include#include void fun(char*p)int k=0;for(;*p;p+)if(k)if(*p=)【1】;【2】=toupper(*(p-1);else k=1;void main()char chrstr64;int d;printf(nPlease enter an English sentence within 63 letters:);gets(chrstr);d=strlen(chrstr);chrstrd=;chrstrd+1=0;printf(nBofore changing:n%s,chrstr);【3】;printf(nAfter changing:n%s,chrstr);,题 干,试题答案,例题5试题程序,例题6 填空题,试题程序,下列给定程序中,函数fun()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。,#include#include#include#define N 80int fun(char*s,char*t)int n;char*p,*r;n=0;while(*s)p=s;r=t;while(*r)if(*r=*p)r+;【1】;else break;if(*r=【2】)n+;【3】;return n;void main()char aN,bN;int m;printf(nPlease enter string a:);gets(a);printf(nPlease enter substring b:);gets(b);m=fun(a,b);printf(nThe result is:m=%dn,m);,题 干,试题答案,例题6试题程序,例题7 填空题,试题程序,下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a初值为8,b初值为3,程序运行后a中的值为3,b中的值为8。,#include#include int fun(int*x,int y)【1】t;t=*x;*x=y;return(t)【2】void main()int a=3,b=8;printf(%d%dn,a,b);b=fun(【3】,b);printf(%d%dn,a,b);,题 干,试题答案,例题7试题程序,例题8 改错题,试题程序,下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include#include void fun(char*p,char*q,char*c)int k=0;while(*p|*q)/*found*/if(*p=*q)ck=*q;else ck=*p;if(*p)p+;if(*q)q+;/*found*/k+void main()char a10=fshADfg,b10=sdAEdi,c80=0;fun(a,b,c);printf(The string a:);puts(a);printf(The string b:);puts(b);printf(The result:);puts(c);,题 干,试题答案,例题8试题程序,例题9 改错题,试题程序,下列给定程序中,函数fun()的功能是根据整型形参m,计算如下公式的值。y=1-1/(22)+1/(33)-1/(44)+(-1)(m+1)/(mm)例如:m中的值为5,则应输出0.838611。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include#include#include double fun(int m)double y=1.0;/*found*/int j=1;int i;for(i=2;i=m;i+)j=-1*j;/*found*/y+=1/(i*i);return(y);void main()int n=5;system(CLS);printf(nThe result is%lfn,fun(n);,题 干,试题答案,例题9试题程序,例题10 改错题,试题程序,下列给定程序中,函数fun的功能是按以下递归公式求函数值。例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include/*found*/fun(int n);int c;/*found*/if(n=1)c=15;else c=fun(n-1)*2;return(c);void main()int n;printf(Enter n:);scanf(%d,题 干,试题答案,例题10试题程序,例题11 改错题,试题程序,下列给定程序中函数fun()的功能是计算 的值。例如:给n输入5,则输出0.008333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include#include/*found*/int fun(int n)double result=1.0;if(n=0)return 1.0;while(n1,题 干,试题答案,例题11试题程序,例题12 改错题,试题程序,下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:I am a student to take the examination则应输出:I aM A studenT tO takE thE examinatioN,#include#include#include#include#include void fun(char*p)int k=0;for(;*p;p+)if(k)/*found*/if(p=)k=0;/*found*/*p=toupper(*(p-1);else k=1;,题 干,试题答案,例题12试题程序,void main()char chrstr64;int d;system(CLS);printf(nPlease enter an English sentence within 63 letters:);gets(chrstr);d=strlen(chrstr);chrstrd=;chrstrd+1=0;printf(nBofore changing:n%s,chrstr);fun(chrstr);printf(nAfter changing:n%s,chrstr);,题 干,试题答案,例题12试题程序,例题13 改错题,试题程序,下列给定程序中,函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第1个字符放在第0位中)。例如:字符串中的数据为ADFESHDI,则输出应当是AFESDI。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include#include#include#include#define N 80/*found*/void fun(char s,char t)int i,j=0;for(i=0;istrlen(s);i+)/*found*/if(i%2=0|si%2!=0)tj+=si;tj=0;void main()char sN,tN;system(CLS);printf(nPlease enter string s:);gets(s);fun(s,t);printf(nThe result is:%sn,t);,题 干,试题答案,例题13试题程序,例题14 改错题,试题程序,下列给定程序中,函数fun()的功能是找出100n(n不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。,#include#define N 100int fun(int*s,int n)int i,j,k,a,b,c;j=0;for(i=100;i 1000);num=fun(a,n);printf(nnThe result:n);for(i=0;inum;i+)printf(%5d,ai);printf(nn);,题 干,试题答案,例题14试题程序,例题15 编程题,试题程序,请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include#include void fun(int a,int b,long*c)void main()int a,b;long c;system(CLS);printf(Input a,b;);scanf(%d%d,题 干,试题答案,例题15试题程序,例题16 编程题,试题程序,请编一个函数void fun(int ttMN,int ppN),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include#include#include#define M 3#define N 4void fun(int ttMN,int ppN)void main()int tMN=68,32,54,12,14,24,88,58,42,22,44,56;int pN,i,j,k;system(CLS);printf(The riginal data is:n);for(i=0;iM;i+)for(j=0;jN;j+)printf(%6d,tij);printf(n);fun(t,p);printf(nThe result is:n);for(k=0;kN;k+)printf(%4d,pk);printf(n);,题 干,试题答案,例题16试题程序,例题17 编程题,试题程序,请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。例如:原来的字符串为BdsihAd,则排序后输出为BAdhisd。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include#include#include#include int fun(char*s,int num)void main()char s10;system(CLS);printf(输入7个字符的字符串:);gets(s);fun(s,7);printf(n%s,s);,题 干,试题答案,例题17试题程序,例题18 编程题,试题程序,编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。例如:n为1000时,函数值应为s=96.979379。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include#include#include#include double fun(int n)void main()system(CLS);printf(s=%fn,fun(1000);,题 干,试题答案,例题18试题程序,例题19 编程题,试题程序,请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为 例如:t=1000时,函数值为987。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include#include#include#include int fun(int t)void main()int n;system(CLS);n=1000;printf(n=%d,f=%dn,n,fun(n);,题 干,试题答案,例题19试题程序,例题20 编程题,试题程序,请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。例如:主函数从键盘给输入n的值为56,则输出为sum=1113。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。,#include long fun(int n)void main()int n;long sum;printf(Input n:);scanf(%d,题 干,试题答案,例题20试题程序,例题1分析,填空1:由return语句可以看出,该函数的返回值类型是指向字符串的指针,所以应该使用符号“*”。填空2:从ASCII码表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII码值大32,根据ASCII码值判断该字母是不是大写字母,判断的标准是ASCII码值是否介于A和Z之间。填空3:根据题目的意思这里应该调用函数fun对字符串tt进行转换,所以应该使用tt作为函数的参数。,例题2分析,填空1:根据题目的意思,这里是执行按顺序对每5个元素求一个平均值的操作,所以应该使用取余符号“%”,如果是5的倍数,则该式子的值为零。填空2:根据C语言的规定,除了使用关键字void的任何一个子函数都应该有返回值,所以应该使用关键字return把变量k的值返回主函数。填空3:由题目的意思可知这里是把存在数组b中的内容依次循环输出,所以后面的变量名应该使用bi。,例题3分析,填空1:从C语言的学习中我们知道,while语句的结束条件是括号中的式子结果为0,而一个字符串的结尾标志为0,即满足循环的结束条件,所以一般情况下C语言中使用字符串的结尾作为结束循环的标志;s为指向一个数组的指针,*s为取出s指向的内容。填空2:根据题目的意思,若该字母不是z或Z,则该字母的ASCII码值加1。填空3:根据题目的意思,要对字符串所有字母进行遍历,使用指针进行这一过程应该使用循环,即每次都对该指针进行加一操作。,例题4分析,填空1:根据题目的意思,此处是由低到高逐位地提取变量d的每一位,然后再进行判断,所以可以推断出这里应该使用取余符号“%”。填空2:根据题目的意思,这里是把提取出来满足条件的数字依次从低到高填入一个新的变量t中,所以进行的操作应该是每一个数字都循环乘以10,再加上原来的部分,例如:依次得到数字321,最后应该输出123。填空3:由算法可以看出,这里应该是进行完毕一次提取,所以应该舍弃最低位个位,即把变量s除以10。,例题5分析,填空1:根据题目的意思,这里应该是以变量k作为判断标志,如果标志为1并且当前指针指向空格就应该把标志返回0,以便下一次检测。填空2:根据题目的意思,此处进行的是将p所指单词的最后一个字母改成大写,但是此时p已经循环到了单词后面的那个空格,所以应该对p-1进行操作。填空3:由算法可以看出,这里应该是进行函数调用,根据前面的子函数定义可以知道,参数是一个指向向字符串的指针,所以应该把数组的名字(也可以认为是指向数组首地址的指针)作为参数。,例题6分析,填空1:根据题目的意思,这里应该是把要比较的字符串和原字符串的一部分进行逐个字符的比较,所以指向原字符串的指针p也应该进行每步加一的操作。填空2:根据题目的意思,此处是判断上一步的比较是否与r指向的完整的字符串相等,如果完全相同,则r应该指向字符串的末尾,即0。填空3:由算法可以看出,这里应该是进行的整个while循环,即应该控制s指针不停的向后移动直到字符串结尾。,例题7分析,填空1:根据题目的意思,这里应该是声名一个新的变量t,由后面的赋值语句以及返回语句可以明白这个变量应该是整型的(因为函数的返回值类型是int)。填空2:根据题目的意思,此处是子函数的返回语句,由C语言的知识,每个语句的结尾都应该使用“;”。填空3:fun()函数的调用方式说明fun()函数的参数应当为指针类型,即应该把变量的地址作为参数传递(符号“&”是取地址操作)。,例题8分析,错误1:依题意,把ASCII值小或相等的字符存放到c数组中,故if语句的关系运算符应为“=”。错误2:C语言规定,每个语句要用分号结束。,例题9分析,错误1:为了做后面的除法运算,j要定义为实型数,否则除得的结果将为整数。错误2:题中公式是加减相间的运算,通过j来实现。,例题10分析,错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if后面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。,例题11分析,错误1:函数的返回值为实型数据,所以函数的返回类型应为double。错误2:根据阶乘的概念,从n开始,每递减1的数相乘,直到1,因此此处n递减,而不是递增。,例题12分析,错误1:p是指针变量,所以if语句中的条件应使用*p。错误2:toupper函数是将小写字母转换成大写字母,*(p-1)指向字符串的最后一个字母,转换后的大写字母同样应该放在*(p-1)指向的内存空间中。,例题13分析,错误1:由于本题中函数的功能是对字符串进行处理,而不是对单个字符进行处理,因此,函数的参数应为字符串指针。错误2:if语句中要用关系运算符,而不是赋值运算符。,例题14分析,错误1:k就是当前要被判断的数,是随着i值的变化而变化的。错误2:在循环中,j是数组的下标要递增。,例题15分析,语句*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;是将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。注意“/”和“%”的用法。,例题16分析,本题中函数的功能是求出二维数组中每列的最大元素。首先,假设各列中的第一个元素最大,然后利用行标值的移动来依次取得各列中其他元素的值,并与假设的最大值进行比较,如果遇到更大的,则把这个更大的元素看做当前该列中最大的元素,继续与该列中其他元素比较。,例题17分析,本题考查利用循环来控制数组元素的操作,首尾元素除外,因此,数组的下标值要从1开始,用循环变量i来依次取得数组中的元素,用数组中的元素si和sj进行比较,如果后一个元素的ASCII码值小于前一个元素的ASCII码值,则交换这两个数组元素的值。,例题18分析,本题的解题思路是逐个取得从0n之间的所有数,对每次取得的数进行条件判断,条件是既能被5整除同时又能被11整除,注意:这两个条件要求同时成立,因此用到了“&”运算符。满足条件,该数就被累加到s中去,求出所有符合条件的数后,用sqrt()函数(包含于头文件中)对s求平方根。,例题19分析,根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。,例题20分析,本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子的平方累加到s中去。,例题1答案,【1】*【2】Z【3】tt,例题2答案,【1】%【2】return【3】bi,例题3答案,【1】*s【2】1【3】s+,例题4答案,【1】%【2】10【3】10,例题5答案,【1】k=0【2】*(p-1)【3】fun(chrstr),例题6答案,【1】p+【2】0【3】s+,例题7答案,【1】int【2】;【3】&a,例题8答案,(1)错误:if(*p=*q)(2)错误:k+正确:k+;,例题9答案,(1)错误:int j=1;正确:double j=1.0;(2)错误:y+=1/(i*i);正确:y+=j/(i*i);,例题10答案,(1)错误:fun(int n);正确:fun(int n)(2)错误:if(n=1)正确:if(n=1),例题11答案,(1)错误:int fun(int n)正确:double fun(int n)(2)错误:result*=n+;正确:result*=n-;,例题12答案,(1)错误:if(p=)正确:if(*p=)(2)错误:*p=toupper(*(p-1);正确:*(p-1)=toupper(*(p-1);,例题13答案,(1)错误:void fun(char s,char t)正确:void fun(char*s,char t)(2)错误:if(i%2=0|si%2!=0)正确:if(i%2=0|si%2!=0),例题14答案,(1)错误:k=n;正确:k=i;(2)错误:sj=i;正确:sj+=i;,例题15答案,void fun(int a,int b,long*c)*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;,例题16答案,void fun(int ttMN,int ppN)int i,j,max;for(j=0;jmax)/*如果各列中的其他元素比最大值还大,则将这个更大的元素看做当前该列中最大的元素*/max=ttij;ppj=max;/*将各列的最大值依次放入pp数组中*/,例题17答案,int fun(char*s,int num)char t;int i,j;for(i=1;isj)/*如果后面字符的ASCII码值小于该字符的 ASCII码值*/t=si;/*则交换这两个字符*/si=sj;sj=t;return t;,例题18答案,double fun(int n)double s=0.0;int i;for(i=0;in;i+)/*从0n中找到既能被5整除同时又能被11 整除的数,并将这些数求和*/if(i%5=0,例题19答案,int fun(int t)int a=1,b=1,c=0;/*a代表第n-2项,b代表第n-1项,c代表第n项*/*如果求得的数c比指定比较的数小,则计算下一个Fibonacci数,对a,b重新置数*/do c=a+b;a=b;b=c;while(ct);/*如果求得的数c比 指定比较的数大时,退出循环*/c=a;/*此时数c的前一个Fibonacci数为小于指定 比较的数的最大的数*/return c;,例题20答案,long fun(int n)int i;long s=0;for(i=2;i=n-1;i+)/*从2n-1中找n的所有因子*/if(n%i=0)s+=i*i;/*将所有因子求平方加*/return s;/*将平方和返回*/,函 数,函数的定义 函数定义的一般形式、函数的参数和函数的返回值。函数的调用 函数的调用方式、函数间的参数传递、函数的嵌套调用、函数的递归调用等。函数间的数据传递 数据传递的方式和特点,掌握值传递内在运行过程。,char,字符型说明符:char 字符型常量的表示:用单引号括起来的单个字符。字符常量:A g 1#字符型数据的存储格式:ASCII码。65 103 48 35 字符串常量的表示:用双引号括起来的单个字符。”This is C string”串长16”a”串长1”(空格)串长1”(不含空格)串长0,int,整型变量的说明格式:类型说明符 变量列表;例如:int i,j=1;整型常量的类型:1.在整型数表示范围之内,根据值大小默认类型。2.在常量后面加l或L,则认为它是long int型。,for,for语句格式for(表达式1;表达式2;表达式3)语句;for语句的变化形式for语句中的三个表达式中的任意一个都是可以省略的,但是分号不能省略。1.省略表达式2,则for(表达式1;表达式3)就形成了一个死循环。2.省略表达式1和表达式3,则for(;表达式2;)就等同于while(表达式)。3.表达式1、2、3全省略,则for(;)就等同于while(1)。,while,while语句格式为while(表达式)语句;说明:语句部分可以是简单语句,也可以是复合语句。注意 1.while(0).由于循环的条件表达式恒等于0,循环体永远也不会执行,是编程者的错误。2.while(1).由于循环的条件表达式恒等于1,所以不可能通过循环控制条件来结束循环体的执行,称为“死循环”。3.为了保证循环正常运行,应该特别注意:循环控制条件 控制条件的初始状态(初始值)循环体内部对控制条件的影响。,do-while,do-while语句格式 do 语句while(表达式);do-while与while的区别:do-while语句先执行循环体然后再判断循环控制条件,而while是先判断条件之后再执行循环体;使用do-while构成的循环,循环体部分至少要执行一次;而采用while循环,循环体部分有可能一次也不会执行。,break语句,break语句格式break;break语句功能 1.在switch语句中结束case子句,使控制转到 switch语句之外。2.在循环语句的循环体中使用,结束循环过程,使控制转移到整个循环语句之外的下一条语句处。注意事项:1.在嵌套循环中,break语句仅能退出一层(当前)循环。2.若在循环语句中包含了switch语句,那么switch语句中的break 语句仅能使控制退出switch语句。3.break语句并不是程序设计中必不可少的语句,可以通过改变程序的结构去掉。,continue,格式continue;功能 仅能在循环语句中使用。它的作用不是结束循环,而是开始一次新的循环。对于for语句,将控制转到表达式3,对于while和do-while语句,将控制转到条件测试部分。,scanf,格式输入函数 scanf(格式控制,地址列表);注意:1.输入数据时,要严格按照给定的方式分隔数据。不特殊给定时,用空格、回车、Tab键分隔数据。当给定分隔符,按给定的进行分隔。否则出错。2.必须由内存地址来接受数据。3.在scanf函数中允许使用的格式字符是 宽度m、精度l、格式字符。附加一个*。,switch,switch(表达式)case 常量表达式1:语句A case 常量表达式2:语句B case 常量表达式n:语句N default:语句N+1 注意事项 1.switch语句与if语句不同,仅能判断一种关系:是否恒等。2.switch语句中case子句的常量可以是整型常量、字符型常量、枚举型数据,或是整型常量表达式,不允许是变量。3.在同一个switch中,case子句的常量不能相同;在嵌套的switch语句中,不同层次的switch之间,可有相同的常量。4.default子句可以省略。5.case 和 default 子句只能在switch语句中使用,且 case和 default 只起标号作用,可出现在switch中的任何位置。6.case 和 default 子句后面的语句序列允许由多个可执行语句组成,且不 必用“”括起来,也可以为空语句。7.switch 语句中的 break 语句不是必须。注意区别。,if,if语句格式 格式1:if(表达式)语句;格式2:if(表达式)语句1;else 语句2;说明:if else可以完成与条件运算符(?:)完全相同 的任务,并且可以进行相应的转换。,#include,#include 包含命令格式为:#include“头文件名”在我们需要使用一些系统提供的库函数的时候,首先需要遵循“先声明,后使用”的原则,使用库函数,也需要先声明它,头文件就是它的声明文件,存储在一个独立的文件里,我们需要调用它,把它“包含”进入我们的源程序,这就需要用到“include”命令,define,宏定义的格式:#define 标识符 字符串 宏定义的功能:在进行编译前,用字符串原样替换程序中的标识符。宏定义的作用:1.将特别常量定义为符号常量。2.便于对程序进行修改。3.提高程序的可移植性。宏定义的注意问题:1.宏名习惯用大写。2.宏定义行以空格结束,而不是分号。3.对程序中字符串或字符常量中出现的宏名不进行替换。,struct,用类型说明语句说明结构变量 struct 结构体名 结构变量名;系统为所说明的结构变量按照结构定义时说明的组成(成员分量),分配存储数据的实际内存单元。结构变量占用内存情况 结构变量的各个成员分量在内存中占用连续存储区域,所占内存大小为结构中每个成员的占用内存的长度之和。,