C语言复习(1)
- 格式:doc
- 大小:109.00 KB
- 文档页数:20
1. 下述循环的循环次数是()int k=2;while(k=0)printf("%d",k);k--;printf("\n");A、无限次B、0次C、1次D、2次2. 在下列选项中,没有构成死循环的程序段是()A、int i=100;B、for(;;)while(1){i=i%100+1;if(i>100)break;}C、int k=1000;D、int s=36;do {++k;} while(k>=10000);while(s);--s;3. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a;A、*(a+i)B、a[p-a]C、p+iD、*(&a[i])4. 下面能正确将字符串"Boy"进行完整赋值操作的语句是()A、char s[3]={'B','o','y'};B、char s[ ]="Boy";C、char s[3]={"Boy"};D、char s[3];s[0]='B';s[1]='o';s[2]='y';5. 以下程序段的输出结果是()char arr[ ]="ABCD";char*ptr;for(ptr=arr;ptr<arr+4;ptr++)printf("%s\n",ptr);A、ABCDB、AC、DD、ABCDBCDCDD6. C语言的auto型变量是()A、存储在动态存储区中。
B、存储在静态存储区中。
C、存储在计算机CPU的寄存器中。
D、存储在外存储器中。
7. 测试文件是否结束函数的函数名是()A、feofB、EOFC、eofD、FEOF8. 下面程序段的输出结果是()int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a;printf(“%d\n”,*(*(p)+2));A、1B、5C、3D、79. C语言规定:在一个源程序中,main函数的位置是()A、必须在最开始B、必须在系统调用的函数的后面C、可以任意D、必须在最后10. 一个C程序的执行是从()A、本程序的main函数开始,到main函数结束B、本程序的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束11. 下面的四个选项中,均是不合法的用户标识符的选项是()A、AB、floatC、b-aD、_123P_0 la0 goto tempdo _A int INT12. 下面四个选项中,均是合法转义字符的选项是()A、’\’B、’\’C、’\018’D、’\\0’‘\\’‘\017’‘\f’‘\101’‘\n’‘\”’‘xab’‘x1f’13. sizeof(float)是()A、一个双精度型的表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式16. 若二维数组a有m列,则在a[i][j]前的元素个数为()A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+117. 对两个数组a和b进行如下初始化char a[ ]=”ABCDEF”;char b[ ]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是()A、a与b 数组完全相同B、a 与b 长度相同C、a 和b中都存放字符串D、a数组比b 数组长度长18. C语言中有关全局变量的说法,正确的是()A、在使用到它的所有文件中均需定义B、在函数体外定义一次C、在main函数中定义E、在main函数外定义19. 若有数组名作为函数调用时的实参,则传递给该函数形参的是()A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数20. 下面程序段的输出结果是()int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A、3B、4C、6D、721. 不属于C语言程序基本结构的是( )A)顺序结构B)选择结构C)函数结构D)循环结构22. 若有定义及赋值:int a[6][6],*p;p=*a;则下列各式中能表示元素a[1][0]行地址的表达式是。
C 语言复习要点2009年5月本次考试有两大题型:1.选择题30分(15道)2.操作题(编程题)2*35分,一.选择题各位老师可以按如下知识点:给学生串讲一遍,每一部分给出几道样题:1)程序结构样题1:C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置样题2:C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置2)标识符命名、数据类型主要考核标识符命名、变量、常量、基本数据类型等,标识符命名时要和C语言的关键字注意区分。
样题1:以下不正确的C语言标识符是____。
A) float B) a_1_2 C) ab1exe D) _x样题2:以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n样题3:已知:char a='\70';则变量a中。
A) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明非法3)运算符和表达式如算术运算符、逻辑运算符、关系比较运算符、条件运算符、逗号运算符等。
还包括逻辑运算的短路情况,尤其要注意++和—的不同用法。
以及运算符所允许的类型(i++)+(j++)+k;样题1:温度华氏和摄氏的关系是: C=-(F-32)。
已知:float C,F;由华氏求摄氏的正确的9赋值表达式是____。
A) C=5/9(F-32) B) C=5*(F-32)/9C) C=5/9*(F-32) D) 三个表达式都正确样题2:已知int i=10;表达式"20-0<=i<=9"的值是____。
A) 0 B) 1 C) 19 D) 20样题3:设x,y,t均为in型变量,则执行语句:x=y=1; t=++x||++y后,y的值是:不确定 4 3 1&&样题4:逗号表达式” (a=2*3,a*4),a+20”的值是44 26 6 244)输入和输出主要考scanf 和printf的格式样题1:若有int a=97;执行语句printf("%c",a);屏幕显示____。
一、填空题(每空 1 分,共20 分)1.程序的三种基本结构为(顺序)、(选择)和(循环)。
2.在C 语言中,用(;)表示语句的结束。
3.语句printf("%%d%d",123);将输出:(“%d123 )。
4.逻辑运算的结果值是(0 )或( 1 )。
5.数组 int a[3][4];共定义了(12 )个数组元素。
6.在 C 语言中,正确的标识符是由(数字、字母、下划线)组成的,且由(字母和下划线)开头的。
7.一个算法应具有的特点有:(有穷性)、(确定性)、有零个或多个输入、有一个或多个输出、有效性。
8.在程序执行过程中,其值不发生改变的量称为(常量),其值可变的量称为(变量)。
9.若有定义:int m=5,y=2;则执行表达式y+=y-=m*=y 后的y 值是(-16 )。
10.在三种正规循环中,当条件表达式的值为(0 )时,就结束循环。
11.C 语言中函数的参数分为(形式参数)和(实际参数)。
12.当函数的数据类型省略时,默认的数据类型为(int 型或者整数型)型。
13.按变量地址访问变量的方法叫(直接访问),通过存放变量地址的变量去访问变量的方法叫(间接访问)。
14.若有定义:int [3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][1]得到的初值是( 6 )。
15.文件包含的一般形式为(#include <文件名> )。
16.宏定义中宏名一般用大写字母表示,容易做到(一改全改)。
17.结构体是一种(构造)数据类型用途是把(不同类型)的数据组合成一个整体。
18.位运算的运算对象只能是(整型)或(字符型)数据,而不可以是其他类型的数据。
19.(文件)是存储在外部介质上数据的集合,是操作系统数据管理的单位。
20.设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是(9 )。
复习题(一)1。
用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
【答案】编译目标2。
下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。
【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。
7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。
【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
信息学奥赛辅导(C语言一)信息学奥赛辅导:C语言复习题(一)第1~3章练习题一、选择题1、一个C语言程序总是从____A、主过程开始执行B、主函数开始执行C、子程序开始执行D、主程序开始执行2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为_A、4B、16C、32D、523、下面四个选项中,均是C语言关键字的选项是____A、auto enum includeB、switch typedef continueC、signed union scanfD、if struct type4、下面四个选项中,均是合法整型常量的选项是____A、160 -0xffff 011B、-0xcdf 01a 0xeC、-01 986,012 0668D、-0x48a 2e5 0x5、下面四个选项中,均是合法浮点数的选项是___A、+1e+1 5e-9.4 03e2B、-.60 12e-4 -8e5C、123e 1.2e-.4 +2e-1D、-e3 .8e-4 5.e-0A、'\'' '\\' '\n'B、'\' '\017' '\"'C、'\018' '\f' 'xab'D、'\\0' '\101' 'xlf'7、下面正确的字符常量是____A、'\X17'B、'\80'C、'\\'D、"\n"8、下面四个选项中,均是正确的八进制数和十六进制数的选项是____A、-10 0x8f -011B、0abc -017 0xcC、010 -0x11 0xf1D、0a12 -0x123 -0xa9、下面四个选项中,均是正确的数值常量或字符常量的选项是____A、0.0 0f 8.9e '&'B、"a" 3.9E-2.5 1e1 '\"'C、'3' 011 0xFF00 0aD、+001 0xabcd 2e2 50.10、若有代数式,则正确的C语言表达式是____A、2*ln(x)*cos(x)/3*xB、2*ln(x)*cos(x)/(3*x)C、2*log(x)*cos(x)/3*xD、2*log(x)*cos(x)/(3*x)11、若有说明语句:char ch1='\065';char ch2="2";char ch3='2';则:ch1中____,ch2中____,ch3中____A、包含1个字符B、包含2个字符C、包含3个字符D、字符个数不确定,说明不正确12、若有运算符:>、*=、?:、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)____A、*=→?:→%→>→sizeofB、?:→*=→>→%→sizeof13、若有以下类型说明语句:char a;int b;float c;double d;则表达式a*b+d-c的结果类型为____A、floatB、charC、intD、double14、若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是____A、a=9+b+c=a+9B、a=9+b;c=a+9;C、a=(9+b,b++)D、a=9+b++=a+715、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为____A、DB、68C、一个不确定的值D、C16、以下运算符中优先级最高的运算符是____A、&&B、++C、?:D、!=17、若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是___A、2.500000B、2.7500000C、3.500000D、0.00000018、sizeof(float)是____A、双精度型表达式B、一个整型表达式C、一个函数调用D、一个不合法的表达式19、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是____A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.020、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是____A、0~255B、0~65535C、-32768~+32767D、-256~+25521、若有以下定义,则能得到值为3的表达式是____(int m=7,n=12)A、n%=(m%=5)B、n%=(m-m%5)C、n%=m-m%5D、(n%=m)-(m%=5)22、若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是___< bdsfid="170" p=""></b?a:c<d?c:d 的值是___<>A、4B、3C、2D、123、若x为int类型,则逗号表达式(x=4*5,x*5),x+25的结果是___,x的值是___A、20B、100C、表达式不正确D、4524、putchar函数可以向终端输出一个____A、整型变量值B、实型变量值C、字符串D、字符或字符型变量值25、若有以下变量说明和数据的输入方式,则正确的输入语句为('└─┘'代表空格)____变量说明:float x1,x2;数据的输入方式:4.52<回车>3.5<回车>A、scanf("%f,%f",&x1,&x2);B、scanf("%f%f",&x1,&x2);C、scanf("%3.2f└─┘%2.1f",&x1,&x2);D、scanf("%3.2f%2.1f",&x1,&x2);26、若运行以下程序时,从键盘输入25,13,10<回车>,则输出结果为___{int a1,a2,a3;scanf("%d%d%d",&a1,&a2,&a3);printf("a1+a2+a3=%d\n",a1+a2+a3);}A、a1+a2+a3=48B、a1+a2+a3=25B、a1+a2+a3=10D、不确定值27、已知a、b、c为int类型变量,若有输入语句:scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是____A、132<回车>B、a=1b=3c=2<回车>C、1<回车>3<回车>2<回车>D、a=1<回车>b=3<回车>c=2<回车>28、以下能正确定义整型变量x、y和z并为其赋初值5的语句是____A、int x=y=z=5;B、int x,y,z=5;C、int x=5,y=5,z=5;D、x=5,y=5,z=5;29、执行下面程序段后,x的值是____int x;printf("%d\n",(x=3*5,x+5));30、下面程序段的输出结果是____int a=023;printf("%d\n",--a);A、23B、17D、2431、已知ch是字符型变量,则不正确的赋值语句是____A、ch=5+9;B、ch='\0';C、ch='7'+'9';D、ch='a+b';32、设x,y是float型变量,则不正确的赋值语句是____A、++x;B、y=int(5);C、x*=y+1;D、x=y=0;33、设有说明:double b=0.5,c=1.5;int a=10;则正确使用了C语言库函数的赋值语句是____A、c=asin(c)+fabs(a);B、b=log10(b)+pow(b);C、c=sqrt(b-c);D、a=(int)(atan2((double)a,b)+exp(b-0.2));34、以下程序段的输出结果是____int i=1,j=4,k=2;float x=5.5,y=9.0,z;z=(i+j)/k+sqrt((double)y)*1.2/k+x;printf("%f\n",z);A、9.800000B、9.300000C、8.500000D、8.00000035、若a为int类型变量,则执行以下程序段后a的值为____a=5;a*=a/=a++;B、1C、40D、336、若a和b均为int型变量,则执行以下程序断后x的输出是____x=15;y=15;printf("%d\n",x%=(y%=2));A、0B、1C、6C、1237、若x为unsigned int类型变量,则执行以下程序段后x的值是____x=65535;printf("%d\n",x);A、65535B、1C、无定值D、-138、以下语句的执行结果是____printf("%d\n",NULL);A、1B、0C、-1无定值39、若x为int类型变量,则执行以下程序段后的输出结果是____x=0xDEF;printf("%4d,%4o,%4x\n",x,x,x);A、3567,6757,defB、3567,6757,xdefC、3567,06757,0xdefD、3567,6757,0def40、若a、b、c均为int型变量,则执行以下程序段后的输出结果为____b=(a=10,a+5,c=10);printf("a=%d,b=%d,c=%d\n",a,b,c);c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);A、a=10,b=15,c=10B、a=10,b=10,c=10a=10,b=5,c=10 a=10,b=5,c=10C、a=10,b=10,c=10D、a=10,b=10,c=10a=10,b=5,c=15a=10,b=5,c=541、若a1、a2、a3、a4均为char类型变量,则执行以下程序段后的输出结果为____a1='1';a2='2';a3='3';a4='4';printf("%1c\n",a1);printf("%2c\n",a2);printf("%3c\n",a3);printf("%4c\n",a4);A、1B、1C、1D、输出格式的描述符不正确2 2 023 3 0034 4 000442、执行语句printf("The program's name is c:\\tools\book.txt");后的输出是____B、The program's name is c:\tools book.txtC、The program's name is c:\\tools book.txtD、The program's name is c:\toolook.txt43、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是____scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a, b, c, d);A、1234123121<回车>B、1234123412341234<回车>C、1234+1234+1234+1234<回车>D、1234+123+12+1<回车>44、设c1、c2均是char类型变量,则以下不正确的函数调用是____A、scanf("c1=%cc2=%c",&c1,&c2);B、getchar( )C、putchar(c2);D、putchar(c1,c2)45、逻辑运算符两侧运算对象的数据____A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据46、判断char型变量c1是否为大写字母的正确表达式是____A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z')C、(c1>='A')&&(c1<='Z')D、('A'<=c1) AND ('Z'>=c1)47、执行以下程序段后的a值是___,b的值是___,c的值是___int a=5,b=6,c=1,x=2,y=3,z=4;A、0B、6C、1D、548、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是_A、'i'&&'j'B、i<=jC、i||j+k&&j-kD、!((i<j)&&!k||1)< bdsfid="334" p=""></j)&&!k||1)<>49、设ch是char类型变量,其值是A,则以下表达式的值是____ch=(ch>='A'&&ch<='Z')?(ch+32):chA、ZB、AC、aD、z50、若希望当num的值为奇数时,表达式的值为“真”,num 的值为偶数时,表达式的值为“假”。
一、单项选择题1.以下选项中可作为 C 语言合法整数的是( )A) 10110B B )0386 C )OXffa D )x2a2参考答案:C2.以下选项中非法的表达式是( )A 0<=x<100B )i=j==0C )(char)(65+3)D )x+仁x+1参考答案:D3.假定x 和y 为double 型,则表达式x=2,y=x+3/2的值是( )A) 3.500000 B) 3 C) 2.000000 D) 3.000000参考答案:D4.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )A) c1A c2 B) c1&c2 C) ~c2 D) c1|c2参考答案:A5.以下能正确定义二维数组的是( )A) int a[][3] B) int a[][3]=2{2*3};C) int a[][3]={} D) int a[2][3]={{1},{2},{3,4}};参考答案:D6.设正x 、y 均为整型变量,且x=10 y=3,则以下语句的输出结果是( )prin tf("%d,%d\n",x--,--y);A) 10,3 B) 9.3 C) 9.2 D)10,2参考答案:D7.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是()A) a=a+b=b++ B) w%((i nt)a+b) C) (c+w)%(i nt)a D) w=a= =b;参考答案:C8.已定义c 为字符型变量,则下列语句中正确的是()10•以下语句或语句组中,能正确进行字符串赋值的是(A)char *sp;*sp="right!" B)char s[10];s="right!"; C)char s[10];*s="right!"D)char *sp="right!";参考答案:D11. si 和s2已正确定义并分别指向两个字符串。
c语⾔复习题⼀复习题⼀⼀、选择题1.以下程序的输出结果是( B )。
#include “stdio.h ”main( ){ printf(“%d\n ”,‘A ’);}A.不确定值B.65C. 97D.A2. 以下程序的输出结果是( C )main( ){ char c1=‘7’,c2=‘0’;printf(“%c,%c,%d\n ”,c1,c2,c1-c2);}A.输出出错信息B.7,0,5C.7,0,7D.6,0,73. 以下变量说明正确的是( C )A.Int a,b;B.int x,float y;C. int a,x;D.int a,x4.若int a, b; scanf("%d%d", &a, &b); 不可以⽤( A )作为输⼊的分隔符。
A.,B. 空格C. 回车D. TAB 键5.设x=2.5, a=7, y=4.7 则表达式x+a%3*(int)(x+y)%2/4的值为( B )A. 0B. 2.5C.不确定D.36. 以下变量x.、y 、z 均为double 类型且已正确赋值,不能正确表⽰数学式⼦zy *x 的C 语⾔表达式是( A ) A. x/y*z B. x*(1/(y*z)) C. x/y*1/z D. x/y/z7. 下⾯(A )是正确的变量名。
A. xyB. 2xyC. x+yD.for8. 设有变量说明:int x=5,y=3;那么表达式y=x>y?(x=1):(y=-1);运算后,x 和y 的值分别是( B )相当与if 语句,问号前⾯成⽴是则执⾏冒号前不成⽴是执⾏冒号后A. 1和-1B. 1和1C. 5和1D. 1和39.以下合法的数组定义是( D )A.int a[]=“string ”;B.int a[5]={0,1,2,3,4,5};C.char a=“string”;D.int a[]={0,1,2,3,4,5};10.设有如下定义char s1[30]=“12345”;printf(“%d\n”,strlen(s1)记数函数直到出现\0是停⽌记数;则输出结果是( B )A.4B. 5C. 9D. 1011.以下程序段中内循环体总的执⾏次数是( A )for(i=5;i>=1;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.3012.语句b=3+a--;表达式的功能,可以由下⾯的(C)的两个语句来实现。
第1章C语言程序的结构1.程序的构成,main函数和其他函数。
p5-p6例题:判断:C语言程序是由过程和函数组成的。
(错)2.预定义命令,类型定义,变量定义,组成程序的各个函数,程序中的注释。
3. 源程序后缀:.c第2章数据1基本数据类型:整型数据,浮点型数据,指针型数据2常量:字面常量,符号常量3变量:标识符,变量的定义,变量的初始化,变量的引用4 输出与输入:基本输出,基本输入输入输出函数的调用,正确输入数据并正确理解和设计输出格式。
●整数的表示范围、溢出情况:⏹在整常量后加字母l或L,认为它是long int 型常量⏹整常量后面加一个字母u或U,认为是unsigned int型⏹16位整数的表数范围为:-32768-- +32767若有声明"short int x;"且sizeof(x)的值为2,则当x值为时"x+1>x"为假。
●字符型与整型char i=2;char i=‟2‟;int i=2;int i=‟2‟;●浮点数的表示⏹指数形式:e或E之前必须有数字;指数必须为整数。
例题1:下列选项中,不能作为合法常量的是()。
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0例题2:下列选项中可作为C 语言合法常量的是()。
A)-80 B)-080 C)-8e1.0 D)-80.0e●字符常量:用单引号括起来的单个普通字符或转义字符●转义字符:反斜线后面跟一个字符或一个代码值表示main(){printf("\101 \x42 C\n");printf("I say:\"How are you?\"\n");printf("\\C Program\\\n");printf("Turbo \'C\'");●常见字符的ASCII码…A‟ 65 0x41…a‟ 97 0x61…0‟ 48 0x30char a=‟b‟-'A'+'0';a=‟A‟+32;●合法的用户标识符下列不能定义的用户标识符是()。
A)Main B)_0 C)_int D)sizeof●printf的使用⏹字符串结尾应以‟\0‟结束,才能整体输出●scanf的使用◆scanf的输入分隔符的指定●一般以空格、TAB或回车键作为分隔符●其它字符做分隔符:格式串中两个格式符间字符⏹scanf读入字符注意点:空格和转义字符作为有效字符输入例题1:欲使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,scanf("%d%c%d%c",&a1,&c1,&a2,&c2);输入形式应为:12a34b例题2:有下列程序:main( ){ int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m 的值为123,n的值为456,p 的值为789,则正确的输入是:m=123 n=456 p=789例题3:char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);输入:abcd输出为:abc例题4:#include <stdio.h>main( ){ int i=0, j=0, k=0;scanf("%d%*d%d",&i,&j,&k); //p28-31四张表格printf("%d %d %d\n",i,j,k);}输入:10 20 30输出为:10 30 0⏹以整数格式为字符变量输入main( ){ char b;scanf("%d", &b);b=b*2;printf("%c\n",b);}输入:33输出为:B⏹用scanf读入字符串◆字符串名或数组名本身就是地址,不需加&有定义语句:int b; char c[10];,则正确的输入语句是()。
A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c);C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);◆不能将一行带有空格的字符串读入若准备将字符串“This is a string.”记录下来,错误的输入语句为:(A)scanf(“%20s”,s);(B)for(k=0;k<17;k++)s[k]=getchar();(C)while((c=getchar())!=…\n‟)s[k++]=c;(D)gets(s);第3章运算与表达式1算术运算基本算术运算符、优先级与结合性、数据类型转换、自增、自减运算2关系运算3逻辑运算4位运算按位逻辑运算移位运算位运算符的含义和使用。
简单的位运算。
5 指针运算取地址运算、操作指针变量、移动指针、比较指针6 其它运算sizeof运算、逗号运算、条件运算7 赋值运算赋值运算符和赋值表达式、复合赋值运算熟练运用各种运算符、掌握运算优先级和结合性。
P237附录B不同类型数据间的转换与运算。
表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
●基本运算、优先级例题1:下列程序的输出结果是()。
main( ){ int m=12, n=34;printf("%d%d", m++,++n);printf("%d%d\n",n++,++m);}A)12353514 B)12353513 C)12343514 D)12343513例题2:下列程序的输出结果是()。
main( ){ int a,b,d=25;a= d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }A)6,1 B)2,1 C)6,0 D)2,0例题3:main( ){ char s[ ]="159",*p;p=s;printf("%c",*p++);//先输出*p,再p++,即先去表达式值输出,再p++printf("%c",*p++);}15例题4:int a=0,b=1;if(a=b)printf(“a equal to b”);elseprintf(“a not equal to b”);注意区分“=”与“==”●%操作的使用⏹%操作只能针对整数(字符)#include <stdio.h>main(){char *s="ABC";do{printf("%d",*s%10);s++;}while(*s);}运行结果:567⏹经常用于求解某个整数的尾数,将整数进行分离等。
●位运算举例main( ){ int c=35; printf("%d\n",c&c);}运行结果:35main( ){ char x=040;printf("%d",x=x<<1);}注意:040为八进制运行结果:64main( ){ char a=3,b=6,c;c=a^b<<2;printf("%d",c);}运行结果:27 左移<<优先级高于按位异或^第4章程序控制结构顺序程序设计基本语句1.控制语句、函数调用语句、表达式语句,空语句,复合语句。
选择结构程序设计1.用if语句实现选择结构。
2.条件运算表达式(a>b)?a:b3.用switch语句实现多分支选择结构。
4.选择结构的嵌套。
●x≤y≤z的c语言表达式:(x<=y && y<=z)●C语言中没有逻辑类型逻辑运算和关系运算的结果为1或0;2 && 0a=10; b=20; c=(a%b<1)||(a/b>1);5>2>7>8的值( a==1)||(a!=1)的值0参与逻辑运算表示假;非0参与运算表示真;int b=5;if (!b) (等价于if (b==0)b--;●if () { 多条语句}main( ){ int a=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<c&&b<c)t=b,b=a,a=t;printf("%d %d %d\n",a,b,c); }●else 总是与最近的if配对if(a==1)if(b!=2)if(c==3) d=1;else d=2;else if ( )●switch中的每个case,如不遇到break,则继续执行下一个case语句,直至遇到break●switch 后面的表达式的含义int a=3,b=5;switch(a==1){case 1:a=b;break;case 0:a++;}switch (a){case 1:a=b;break;case 0:a++;}●短路特性:逻辑表达式求解时,有时并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符下列程序的输出结果是()。
main( ){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++ ==3)) printf("%d %d %d\n",i,j,k);}A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3●条件表达式的计算结合方向:自右向左如a<b?a:c<d?c:d a<b?a:(c<d?c:d)若整型变量a、b、c、d 中的值依次为:1、4、3、2。
则条件表达式a<b? a:c<d? c:d 的值是()。
A)1 B)2 C)3 D)4循环控制1.for循环结构。
2.while和do-while循环结构。
3.continue语句和break语句。