湖南大学2012年C语言真题
- 格式:pdf
- 大小:205.84 KB
- 文档页数:5
简答题1.么是低级语言,高级语言,面向过程的语言,面向对象的语言?2.C语言的特点?(8个特点)4.表达式在计算时,其类型如何确定?5. C语言中,如何实现类型的转换?选择题1.以下字符串可以为用户定义的标示符的是 D。
A. shortB. LINE 5C. nextday D. _my2.设c是字符变量,则以下表达式正确的是B。
A. c=1234B. c='c'C. c="c" D. c="abcd"3.类型修饰符unsinged不能修饰下面的D类型。
A. intB. charC.long D. double4.下列正确的字符常量是D。
A. ' \234'B. ' \af'C. "a" D. ' a'8.以下选项中不正确的整型常量是__C__。
A. 12LB. -10C.1,900 D. 123U5. 若有语句:int a,b,c;则下面输入语句正确的是C。
A. scanf(" %D%D%D",a, b, c);B. scanf("%d%d%d",a,b,c);C.scanf("%d%d%d",&a,&b,&c);D. scanf("%D%D%D",&a,&b,&c);6.int m=546, n=765;printf(" m=%-6d,n=%6d",m,n);则输出的结果是B。
A. m=546,n=765B. m=546 ,n= 765C. m=%546,n=%765D.m= 546,n=7657.有如下程序:main( ){int x;float y;scanf("%3d%f",&x,&y);printf("x=%d,y=%f\n",x,y);}其输入数据为12345 678↙,则输出结果为 D 。
2012年C语言机房最新考试题库所属语言:C语言试卷方案:TC_1204092119试卷总分:100分共有题型:3种一、程序填空共2题(共计30分)第1题(15.0分)题号:70/*【程序填空】功能:约瑟夫环问题求解。
即有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#include#define n 50int mainint i,k,m,n,num[n],*p;printf "please input the total of numbers %d :", n ; scanf "%d",&n ;p num;/***********SPACE***********/for i 0;【?】;i++/***********SPACE***********/ * p+i 【?】;i 0;k 0;m 0;while m n-1/***********SPACE***********/ if 【?】! 0 k++;if k 3* p+i 0;k 0;m++;i++;if i n i 0;/***********SPACE***********/ while 【?】 p++;printf "%d is left\n",*p ;return 0;答案:答案1i i答案2i+11+i答案3* p+i * i+p答案4*p 00 *p第2题(15.0分)题号:34/*【程序填空】功能:输入某年某月某日,判断这一天是这一年的第几天?#includeint mainint day,month,year,sum,leap;printf "\nplease input year,month,day\n" ;scanf "%d,%d,%d",&year,&month,&day ;switch month /*从月份得出已过多少天*/case 1:sum 0;break;case 2:sum 31;break;case 3:sum 59;break;/***********SPACE***********/ case 4:【?】;break;case 5:sum 120;break;case 6:sum 151;break;case 7:sum 181;break;case 8:sum 212;break;case 9:sum 243;break;case 10:sum 273;break;case 11:sum 304;break;case 12:sum 334;break;default:printf "data error" ;break;/***********SPACE***********/【?】;/*再加上日期数*//***********SPACE***********/if year%400 0|| year%4 0【?】 /*判断是否闰年*/ leap 1;elseleap 0;/***********SPACE***********/if leap 1【?】sum++;printf "it is the %dth day.",sum ;return 0;答案:答案1sum 90答案2sum sum+day或sum day+sum或sum+ day答案3&&year%100! 0&&0! year%100或&& year%100! 0答案4&&month 2&&2 month二、程序改错共2题(共计30分)第1题(15.0分)题号:254/*【程序改错】功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。
程序设计基础(C语言)考试卷(2012春本科样卷)(理论部分)考试时间120分钟,答案请写在答题卡上一、信息技术题(每小题1分共10分)1.信息技术指的是用来扩展人的信息器官功能、协助人们进行信息处理的一类技术。
在下列基本信息技术中,用于扩展人的效应器官功能的是_____________ 。
A.感测与识别技术B.计算与处理技术C.通信与存储技术D.控制与显示技术2.下列有关PC机辅助存储器的叙述中,错误的是。
A.硬盘的盘片转动速度特别快,目前一般为每秒数千转B.近年来使用的串行ATA(SATA)接口硬盘,其传输速率比采用IDE接口的要快C.目前移动硬盘大多采用USB 2.0接口,其传输速率可达每秒数十兆字节D.40倍速的CD-ROM驱动器的速率可达6MB/s左右3.根据存储器芯片的功能及物理特性,目前用作优盘存储器芯片的____________。
A.SRAMB.SDRAMC.EPROMD.Flash ROM4.PC机的机箱外面常有很多接口,用来连接外围设备。
下列接口中,不在机箱外面的是________。
A.IEEE 1394 B.PS/2 C.SATA D.USB 5.在下列有关Microsoft Excel 97/2000/2003功能和操作的叙述中,错误的是________ 。
A.进行数据排序时,最多可以依据3个关键字B.Excel工作表可以另存为网页文件C.在默认情况下,数值型数据右对齐、字符型数据左对齐D.在默认情况下,若用户在某单元格中输入“3/2”(引号不是输入的字符),则显示1.56.因特网使用TCP/IP协议实现全球范围的计算机网络互连,连接在因特网上的每一台主机都有一个IP地址。
下面不能作为IP 地址的是________。
A.120.34.0.18 B.201.256.39.68C.21.18.33.48 D.37.250.68.07.接入Internet的方式不同,则所需设备和上网性能也有所不同。
2012年3月C语言上机真题说明:本题库是根据教育部考试中心制定修改计划进行修改后的计算机等级考试二级C 语言机试题库。
对于题库的解答来自考试中心的答题系统。
※※※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数fun的功能是:将形参n 所指变量中,个位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }fun(&n); printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
C语言真题(2007-2012)湖南省2007年五、程序设计题(本大题共4题,共90分)1、程序分析题。
写出下列程序运行的结果。
(每小题5分)(1)#include <stdio.h>main(){ int x=3;do {printf("%d",x-=2);} while(!(--x));}运行结果是_____________________________(2)#include<stdio.h>main(){int x=4,y=8,z;z=x<<2|y;printf("%d",z);}运行结果是_____________________________(3)#include <stdio.h>main(){ char x='E',y='e';printf("%c,",x=32);printf("%c,",(x--,++y));printf("%c\n",x==y?x+=32;y-=32);}运行结果是_____________________________(4)#include <stdio.h>main(){ int t=2;while (t<5)switch(t%2){ case 0:t++;printf("#");break;case 1:t+=2;printf("*");default:printf("\n");}}运行结果是_____________________________ (5)#include <stdio.h>main(){ char str1{50}=" Beijing 2008!",*q=str1;char str2[50]=" One World One Dream!",*p=str2;while(*p!='\0')p++;while(*q!='\0')P++=q++;*p='\0';printf("%s",str2);}运行结果是_____________________________(6)#include <stdio.h>#include <string.h>main(){ char s[]="abcdefg",t;int i=0,j=strlen(s)-1;while (i<j){ t=s[j];s[j]=s[i];s[i]=t;i++;j--}puts(s);}运行结果是_____________________________2、程序填空(每空5分,共30分)(1)下面程序的功能是求1000以内的完数。
全国计算机等级考试二级C语言2012年3月试题及答案一、填空题1、C语言中基本的数据类型有:__________、__________、__________。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。
3、整数-35在机内的补码表示为__________。
4、执行下列语句int a=8;a+=a-=a*a;后,a的值是__________。
5、有如下语句:char A[]={”I am a student”};该字符串的长度是__________,A[3]=__________。
6、符号”a”和’a’的区别是__________。
7、所谓“指针”就是__________。
“&”运算符的作用是__________。
“*”运算符的作用是__________。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
二、选择题1、设整型变量a为5,使b不为2的表达式是()。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是()。
int x=10,y=10;printf(“%d%d\n”,x--,--y);A.1010B.99C.910D.1094、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()。
A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i5、选出下列标识符中不是合法的标识符的是()。
12年的试题比13年的难很多,笔者费了一早上加一中午才全部做完。
如果对答案有疑问或者觉得哪里有问题请联系我qq553915228 李添锐一、写出下列程序段的运行结果(40分)1、(4分)char a='D'-'A',b='\010',c,d;c = ++a || b++;d = a-- && b--;printf("%d,%d,%d,%d",a,b,c,d);输出:3,7,1,12、(4分)char a=0x123FFF;printf("%d,",a);a=127;printf("%d",++a);输出:-1,-1283、(4分)int a=5,y=0;int main(){while(a=5){a+=5;y+=a;printf("%d,%d,", a, y);if (y>18) break;}return 0;}输出:10,10,10,204、(4分)int i=1, j=2, k=4;printf("%f,", i-(float)j/k);printf("%d,", j>1<k);k+=5/10*i ;printf("%d,",k);printf("%d", (j=1)?2:0);输出:0.500000,1,4,25、(4分)int a[][2]={(1,2),(3,4)};printf("%d",a[0][1]);输出:46、(4分)int ave(int x, int y){return (x+y)/2;}int main(){int a=1, b=2, c=3;printf("%d\n",ave(ave(a,b), ave(b,c)));return 0;}输出:1(\n)7、(4分)void exc(int x, int *y){int t;t=x; x=*y; *y=t;}int main(){int a=5,b=8;exc(a,&b);printf("a=%d,b=%d",a,b); return 0;}输出:a=5,b=58、(4分)char str[10]="believe";char *p=str;*(str+5)=0;puts(2+p);输出:lie9、(4分)struct pt{int x; int y;} p[2]={1,3,5,7}; printf("%.3f",p[1].y/(float)p[0].y+ p[1].x/p[0].x);输出:7.33310、(4分)FILE *fp;char c=49;int d=50, e;fp=fopen("a.tmp","w"); fprintf(fp,"%c%d", c, d); fclose(fp);fp=fopen("a.tmp","r"); fscanf(fp,"%d",&e); printf("%d\n",e);输出:150(\n)二、改错题(20分)以下程序实现:从键盘输入若干个学生的成绩数据,将这些数据存到磁盘文件上,并求这些学生的最高成绩。
窗体顶端11. 以下叙述中正确的是()。
A) 在C语言程序中,main函数必须放在其它函数的最前面B) 每个后缀为.C的C语言源程序都可以单独进行编译C) 在C语言程序中,只有main函数才可单独进行编译D) 每个后缀为.C的C语言源程序都应该包含一个main函数A B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:12. C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A) 预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B) 用户标识符可以由字母和数字任意顺序组成C) 在标识符中大写字母和小写字母被认为是相同的字符D) 关键字可用作用户标识符,但失去原有含义A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:13. 以下选项中表示一个合法的常量是(说明:符号口标识空格)A)9口9口9 B)0Xab C) 123E0.2 D)2.7eA B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:14. C语言主要是借助以下哪个功能来实现程序模块化()。
A) 定义函数 B) 定义常量和外部变量 C) 三种基本结构语句 D)丰富的数据类型A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:15. 以下叙述中错误的是()。
A) 定义符号常量必须用类型名来设定常量的类型B) 用符号名表示的常量叫符号常量C) 非零的数值型常量有正值和负值的区分D) 常量是在程序运行过程中值不能被改变的量A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:16. 若有定义和语句:int a,b;scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给b变量的是()。
(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) 可封装D) 自顶向下C) 模块化D) 逐步求精(7)软件详细设计产生的图如下:该图是A) N-S图B) PAD图C) 程序流程图D) E-R图(8)数据库管理系统是A)操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统D) 一种操作系统(9)在E-R图中,用来表示实体联系的图形是A) 椭圆图B) 矩形C) 菱形D) 三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A) 选择B) 投影C) 交D) 并(11)以下叙述中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A)voidB)8_8C)_0_D)unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A)0B)3C)4D)5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}程序运行后的输出结果是A)0,0C)3,2D)1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c;B)if(a>b) {c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c;D)if(a>b) {c=a;a=b;b=c;}(18)有以下程序#includemain(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=kcase 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c);}程序运行后的输出结果是A)3B)5C)7D)9(19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c)) k=1;else k=0;B)if((a>b)||(b>c) k=1;else k=0;C)if(a<=b) k=0;else if(b<=c) k=1;D)if(a>b) k=1;else if(b>c) k=1;else k=0;20)有以下程序#include{ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’) n++;printf(“%d\n”,n);}程序运行后的输出结果是A)0B)2C)3D)5(21)有以下程序#includemain(){ int n=2,k=0;while(k++&&n++>2);printf(“%d %d\n”,k,n);}程序运行后的输出结果是A)0 2B)1 3C)5 7D)1 2(22)有以下定义语句,编译时会出现编译错误的是A)char a=’a’;B)char a=’\n’;C)char a=’aa’;D)char a=’\x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d\n”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是 A)E,68C)E,DD)输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d\n”,a);}程序运行后的输出结果是A)32B)12C)21D)22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i<N;I++)< p="" />{ max=MIN;if(maxreturn max;}造成错误的原因是A)定义语句int i,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值C)语句if(maxD)赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是A)p=aB)q[i]=a[i]C)p=a[i]D)p=&a[2][1](28)有以下程序#include#includemain(){ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序运行后的输出结果是A)9,One*WorldB)9,One*DreamC)10,One*DreamD)10,One*World(29)有以下程序#includemain(){ int a[ ]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i[=0;}for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“\n”);}A)3 3 4 4B)2 0 5 0C)3 0 4 0D)0 3 0 4(30)有以下程序#include#includemain(){ char a[10]=”abcd”;printf(“%d,%d\n”,strlen(a),sizeof(a));}程序运行后的输出结果是A)7,4B)4,10C)8,8D)10,10(31)下面是有关C语言字符数组的描述,其中错误的是 A)不可以用赋值语句给字符数组名赋字符串B)可以用输入语句把字符串整体输入给字符数组C)字符数组中的内容不一定是字符串D)字符数组只能存放字符串(32)下列函数的功能是fun(char * a,char * b){ whi le((*b=*a)!=’\0’) {a++,b++;} }A)将a所指字符串赋给b所指空间B)使指针b指向a所指字符串C)将a所指字符串和b所指字符串进行比较D)检查a和b所指字符串中是否有’\0’(33)设有以下函数void fun(int n,char * s) {……}则下面对函数指针的定义和赋值均是正确的是A)void (*pf)(); pf=fun;B)viod *pf(); pf=fun;C)void *pf(); *pf=fun;D)void (*pf)(int,char);pf=&fun;(34)有以下程序#includeint f(int n);main(){ int a=3,s;s=f(a);s=s+f(a);printf(“%d\n”,s);}int f(int n){ static int a=1;n+=a++;return n;}程序运行以后的输出结果是A)7B)8C)9D)10(35)有以下程序#include#define f(x) x*x*xmain(){ int a=3,s,t;s=f(a+1);t=f((a+1));printf(“%d,%d\n’,s,t);}程序运行后的输出结果是A)10,64B)10,10C)64,10D)64,64(36)下面结构体的定义语句中,错误的是A)struct ord {int x;int y;int z;}; struct ord a;B)struct ord {int x;int y;int z;} struct ord a;C)struct ord {int x;int y;int z;} a;D)struct {int x;int y;int z;} a;(37)设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是A)char str[ ]=”string”;c=str;B)scanf(“%s”,c);C)c=getchar();D)*c=”string”;(38)有以下程序#include#includestruct A{ int a; char b[10]; double c;};struct A f(struct A t);main(){ struct A a={1001,”ZhangDa”,1098.0};a=f(a);jprintf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}struct A f(struct A t)( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )程序运行后的输出结果是A)1001,ZhangDa,1098.0B)1001,ZhangDa,1202.0C)1001,ChangRong,1098.0D)1001,ChangRong,1202.0(39)若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)2(40)下列关于C语言文件的叙述中正确的是A)文件由一系列数据依次排列组成,只能构成二进制文件B)文件由结构序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件二、填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有【1】个结点。
1、对象有如下一些基本特点,即标识惟一性、分类性、多态性、封装性和模块独立性。
2、SQL语句中凡创建都用CREA TE,删除都用DROP,改用ALTER,再跟类型和名字,附加子名。
3、关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。
4、循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即p->next=head。
5、程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。
6、数据模型所描述的内容3有个部分,它们是数据结构、数据操作和数据约束。
7、C语言的转义字符见下表所示。
转义字符转义字符的意义\n 回车换行\t 横向跳到下一制表位置\v 竖向跳格\b 退格\r 回车\f 换页\\反斜线符“\”\’单引号符\a 鸣铃\ddd 1~3位八进制数所代表的字符\xhh 1~2位十六进制数所代表的字符8、分析:本题考查switch语句的掌握。
必须掌握以下内容:首先应该明白switch语句的语法格式:switch语句的语法格式为:switch(表达式){case常量表达式1:语句组1;case常量表达式2:语句组2;…case常量表达式n:语句组n;default:语句组n+1;}另外,注意以下几点关于switch语句的重点:①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case ′B′:);③找到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入default:程序段,作统一的处理。
default标号是可选性的,不必每次都有,视需要而定。
switch语句中还可以包含switch语句,形成switch的嵌套9、在C语言中,逻辑运算符中一共有4个,它们分别是!(逻辑非)、||(逻辑或)、&&(逻辑与)、^(异或)。