《C语言程序设计知识点及示例.docx》由会员分享,可在线阅读,更多相关《C语言程序设计知识点及示例.docx(22页珍藏版)》请在第一文库网上搜索。
1、四川大学锦江学院C语言程序设计知识点及示例知识点1:除了复合语句而外,C语言的语句都以分号结束。示例1C语言的简单语句(非复合语句语句)必须以结束。参考答案:分号知识点2:目标程序和可执行程序都属于机器代码程序(即二进制的机器指令程序.),但只有可执行程序才能被计算机直接执行。C语言中的每条可执行语句最终都将被转换成二进制的机器指令.示例2:可以被直接执行的程序是OA)源代码程序B)目标代码程序C)Word文档程序D)可执行程序参考答案:D示例3:下列叙述中正确的是0A)计算机能直接执行C语言源程序B) C程序经C编译后生成后缀为.Obj的文件可以直接运行C) C语言中的每条可执行语句最终都将
2、被转换成二进制的机器指令.D) C程序经C编译后生成后缀为.Obj的文件不是二进制文件参考答案:C知识点3:可执行程序的扩展名是“.exe”,目标程序的扩展名是obj,C语言源程序的扩展名是“.c”。示例4:可执行程序的扩展名是o参考答案:.exe示例5:目标程序的扩展名是o参考答案:.obj知识点4:C语言程序总含有main函数,程序执行时,总是从main函数开始,在main函数结束。函数可以嵌套调用但不能嵌套定义.函数可以单独编译,但除main()函数外不能单独运行.每个函数(不包括main函数)都可以被其他函数调用.示例6:C语言程序一定包含函数。参考答案:main示例7:C语言程序运行
3、时第一个被执行的函数是函数。参考答案:main示例8:C语言程序执行时,如下叙述中正确的是OA)总是从main函数开始,在main函数结束B)从main函数开始,在程序的最后一个函数中结束O从程序的第一个函数开始,在main函数结束D)C语言中的函数不可以单独进行编译.参考答案:A知识点5:C语言一个语句可以写在多行上,也可以一行写多个语句。示例9:以下叙述中正确的是oA) C程序书写格式严格,要求一行内只能写一个语句B) C程序一个语句可以写在多行上O用C语言编写的程序一行最多只能写一个语句D)前面都是错误的参考答案:B知识点6:C语言的标识符由字母、数字和下划线三种字符组成,且第一个字符必
4、须为字母或下划线。示例10:按照C语言规定的用户标识符命名规则,标识符中包含正负号。参考答案:不能示例11:按照C语言规定的用户标识符命名规则,下面是标识符。A)1aB)a$C)_forD)-for参考答案:C示例12:下列定义变量的语句中正确的oA)int1x;B)doub1ex1;C)char-xD)f1oatUS$;参考答案:B知识点6:在C语言源程序中,整常数可用以下三种形式表示:十进制整数;八进制整数;十六进制整数。不能表示二进制整数。以0开头的数是八进制数;以Ox开头的数是16进制数。示例13:以下选项中可作为C语言合法的整数常量的是oA)OxabgB)-0819C)-819D)x
5、9a参考答案:C示例14:在C语言中,八进制整常数以开头。参考答案:0示例15:在C语言中,十六进制整常数以开头。参考答案:Ox示例16:在C语言源程序中,直接使用二进制数表示十进制数。参考答案:不能知识点7:在C语言的实型常数的指数表示法中,字母e(或E)之前必须有数字,且e后面的指数必须为整数。示例17:在C语言的实型常数的指数表示法中,字母e(或E)之前必须有数字,且e后面的指数必须为o参考答案:整数示例18:以下选项中是合法的C语言常量。A)-80B)-08C)-1e6.0D)1.68e参考答案:A知识点8:在C语言中,以1或1结束的常整数为长整型常数。示例19:在C语言中,合法的长整
6、型常数是。A)O1B)6uC)-0823D)0x16g参考答案:A知识点9:在C语言中,任何非零的数值被认作“真”,零值表示“假”。示例20:设有定义:“intm=1,n=6;,则以下选项中值为0的表达式是OA)(!m=1)&(!n=6)B)(mn)m|0C) m&nD)mHn参考答案:A示例21:设有定义:inta=1,b=6,c=8;,则以下选项中值为0的表达式是OA)(!a=6)&(!b=0)B)a%b1C)aHb+c&b-cD)c(a+)(+b)参考答案:A知识点10:在C语言中,定义变量时可以为变量赋初值,但其初值应是常量表达式,不能包含变量。示例22:以下能正确定义且赋初值的语句是
7、oA) intx=y=16;B)charch=98;C)inta=a+6;D)doub1ex=1.68e-8.0参考答案:B知识点11:正确的赋值语句是赋值运算符右端为一个数值或正确的表达式,其左端为一个变量示例23:若以下选项中的变量a1,a2,a3,a4已正确定义,则正确的赋值的语句是。A)a1=26.8%3;B)1+2=a2;C)a3=0x79c;D)a4=2+2=5;参考答案:C知识点12:字符常量的界定符为一对单引号,表示一个单字节字符,可以表示普通字符和转义字符。示例24:以下选项中不属于字符常量的是oA)nB),AnC),xAC,D),063,参考答案:B知识点13:C语言的逻辑
8、运算符两侧运算对象可以是任意合法的表达式。示例25:以下关于逻辑运算符两侧运算对象的叙述中正确的是oA)只能是整数0或1B)只能是整数O可以是任意合法的表达式D)前面都是错误的参考答案:C知识点14:break语句可用于switch语句和循环体中,continue只能用于循环体中,用于结束本次循环。示例26:CoIItiIHIe只能用于中。参考答案:循环体示例27:下列叙述正确的是oA)break语句只能用于switch语句B) continue语句只能用于switch语句C) break语句必须与SWitCh语句中的CaSe配对D) break可用于SWitCh语句和循环体中参考答案:D知识
9、点15:在C语言switch语句中,一般break语句需要case配对使用,但不使用break语句在语法上也是正确的。而且在switch语句中并不一定必须使用defau1t示例28:下列叙述正确的是。A) break语句只能用于循环体中,而且一次能跳出多层循环,B) break语句必须与switch语句中的case配对C)在SWitCh语句中必须使用defau1tD)从语法上讲,switch语句中不包含break语句也是正确的参考答案:D知识点16:指针变量不能被赋值为整型值。只能被赋值为地址值。另外必须是同维同类的二个指针变量才能进行赋值运算(例如:有定义inta3=1,2,3,*p;则P=
10、&a;就是错误的.)另外数组名代表了数组的首地址具有指针的概念示例29:若有定义语句inta32=1,2,3,4,5,6);int(*p)2=a;则*(*(p+1)+1)的值是oA)3B)5C)6D)4参考答案:D示例30:设已有定义:“f1oatx;”,则以下对指针变量P进行定义且赋初值的语句中正确的是OA)f1oat*p=0x1024;B)f1oat*p=(int)x+1;C) f1oatp=&x;D)f1oat*p=&x;参考答案:D知识点17:如果指针变量P指向x,则可用*p间接访问X。示例31:若有定义:intx=18,*p=&x;,贝!j*p的值是。参考答案:18知识点18:在定义
11、数组时可为其赋初值,但初值的个数不能超过数组长度。而在程序执行时并不对数组元素的下标是否超出所定义的下标范围作安全性检查.示例32:下面正确定义一维数组的选项是oA)inta24=0,1,2,3,4,5,6,7,8;B)inta23=1,2,3,4,5,6;C)inta3,2=1,2,3,4,5,6;D)chara3=,abcn;参考答案:B知识点19:在定义数组时,若赋的是全部初值(即全赋值的情况,不是部分赋值的情况.),则对一维数组而言可省略数组长度的定义,而对二维数组而言则只可省略列行下标的长度定义,而决不能省略列下标的长度定义。下列数组定义中错误的是不例33:A)intX3=0,1,2
12、,3B)intX=1,2,3,4,5,6C)intX3=1,2,3,4,5,6D)intX2=1,2,3,4,5,6)参考答案:D知识点20:用typedef只是声明一个新的类型名来代替已有的类型名。不是增加新类型.(已有的类型名仍可使用)这样做通常可以增加程序的可读性.注意:typedef不能用来为变量说明一个新名.般使用格式为typedwf已有的类型名新类型名;。例如typedwff1oatrea1;示例34:设有以下语句:typedefstructDateTypejntmonth;ntday;Bk则下面叙述中正确的是A)不能用structDateType定义结构体变量B)DATE是Dat
13、eType套种结构体类型的变量O可以用DATE定义结构体变量D)DATE是structDateType类型的变量参考答案:C示例35:设有如下说明:ypedefstructST6;则下面叙述中正确的是A)以上的说明形式非法C) NEW是一个结构类型参考答案:C示例36:使用typedef参考答案:不能B)ST是一个结构变量D) NEW是一个结构变量增加新类型。知识点21:宏定义和文件包含都属于预处理命令,它们是对源程序编译之前做一些预处理,生成扩展C源程序,在源程序的一行上只能写一条预处理命令,都不占用程序运行时间。其中宏定义是在对C源程序进行预处理(即预编译)时用宏体替换宏名.例如:有宏定义
14、”#defineN179表示在对C源程序进行预处理时将对源程序中所有出现标识符为N的宏名用宏体179来替换.示例36:宏替换命令程序的运行时间。参考答案:不占用示例37:以下叙述中正确的是oA)在源文件的一行上只能有一条预处理命令B)宏名必须用小写字母表示O宏替换要占用程序的运行时间D)前面都是错语的参考答案:A示例38:若有如下程序inc1ude#defineCUBE1(X)X*X*X#defineCUBE2(X)(X)*(X)*(X)voidmain()intk=2,m=1;printfC%d”,CUBE1(k+m);printf(u%dn5CUBE2(k+m);)则此程序的运行结果是0A)77B)2727C)277D)727参考答案:D知识点22:如到文件末尾,则函数feof的函数值为真(1),否则函数值为假(O)0示例39:设fp为指向一二进制文件的指针,且还未读到此文件末尾,则函数feof(fp)的返回值为oA)EOFB)1C)0D)NU11参考答案:C示例40:设fp为指向一二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为o参考答案:1知识点23:用于二进制文件操作的数据块读写函数(fread()和fwrite()的函数调用fread(buffer,size,count,fp);”与fwrite(buffer,size,co