您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第1章 C语言基础知识
-1-新视野培训系列第一章C语言基础知识一,选择题1答案是AA正确课本第2页11行B{}可以作为复合语句的标志Cmain函数不是用户命名的,C语言中规定只能有一个主函数,这是C语言规定好的,不是用户自己定义的。D分号是语句结束的标志,是语句的一部分做这个题目需要对书上的概念透彻的理解2答案是AA错误课本第4页关于用户标识符是这样介绍的---标识符只能由字母、下划线和数字构成。并且不能以数字开头。命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。这个题目考察用户标识符3答案是B-用户标识符:只能由字母、下划线和数字构成。并且不能以数字开头。不能和关键字相同。A答案中中划线是不能出现的;C答案中下划线是可以放在标识符的开头,D答案中,数字字符不可以出现在标识符的开头。4答案是B用户标识符:只能由字母、下划线和数字构成。并且不能以数字开头。不能和关键字相同。用户标识符可以和与定义标识符相同。A答案:int位关键字故不可以。C答案:int位关键字故不可以。D答案:printf位预定义标识符,故可以作为用户标识符,只是printf会失去原有的含义。5答案是D用户标识符:只能由字母、下划线和数字构成。并且不能以数字开头。不能和关键字相同。用户标识符可以和预定义标识符相同。long是关键字,参照附录二注:6--13考察用户标识符概念掌握用户标识符的概念:用户标识符:只能由字母、下划线和数字构成。并且不能以数字开头。不能和关键字相同。用户标识符可以和与定义标识符相同。6答案是DD答案以数字2开头了,不符合标识符定义7答案是CC答案以数字开头了8答案是Dint是关键字9答案是B-2-答案A是关键字,答案C是以数字开头,不符合概念,答案D出现了小数点10答案是A答案A出现了小数点11答案是C答案C以数字开头了12答案是AB答案中float是关键字,C答案中3c以数字3开头,D答案中-5d中中划线不属于字母,数字,下划线中一种13答案是AB答案中-max中中划线错误,C答案中3COM以字母3数字开头,D答案中int是关键字,不是用户标识符的命名规则。14答案是BA答案中15.表示的是一个小数,即一个实型数据不是整型数据,C答案中出现了逗号,逗号不是构成数据的一部分D答案中,如果表示的二进制数据,则不应该出现字母B,如果表示的是十六进制数,则应该以0x开始。15答案是DC语言规定,整形数据中,除了short占有2个字节之外,其余的类型都占有4个字节。实型中float占有4个字节,double占有8个字节,char占有1个字节。16答案是B八进制数由0—7八个数字组成,八进制数字必须以0开始,后面紧跟的是由0—7组成的数字,即不能出项8、9;B答案中出现了数字8,故不符合题意。17答案是D十六进制数由0—9、A—F十六个数字组成;十六进制数必须以0x开始,大写的和小写的x都可以,后面紧跟的是由0—9、A—F组成的数字,注意是0x,而不是ox;D选项中以ox开始,故错误。18----20考查的是实型常量的表示方法实行常量有两种表示方法:1、用小数点表示的形式:小数点的前后可以没有数字,但是不能同时没有数字。2、指数形式:字母E的前后必须有数字,并且后面的数字必须是整型18答案是C答案A中E后面0.5,0.5是小数,不是整数。答案B中E后面没有数字,规定,后面必须有数字,而且是整数答案D中E前面没有数字。19答案是C答案A中2.0是小数,规定E后面的数字必须是整数答案B中E前面没有数字。答案D中E后面没有数字,规定E后面必须是整数。-3-20答案是AB中八进制中不能出现数字8,八进制数由0—7八个数字组成,八进制数字必须以0开始,后面紧跟的是由0—7组成的数字,即不能出项8、9C中e后面不能是小数,必须是整数D中e后面必须是整数,不能没有数字21答案是BB中0.4是小数,E后面不能出现小数,只能是整数。22答案是CC中0.5是小数,E后面不能出现小数,只能是整数。23答案是D这一题考察的是算术运算符的优先级别以及算术运算符的运算规则。1、+、-运算符的优先级别:12,结合方向:自左向右。*、/、%运算符的优先级别为:13,结合方向:自左向右先算优先级别高的运算符,再算级别低的运算符。其中%运算符的两边要求都是整数,不能出项小数。2、运算符两边变量的类型想同,结果为为该类类型。如果类型不相同,那么运算的结果是级别高的类型。float→doube↑long↑unsigned↑char,short→int可以记住这样一句话,整数经过运算符运算以后结果还是整数,整数和小数运算后结果是小数,3.6-5/2+1.2+5%2其中的/、和%为13号优先级别,所以先算5/2和5%2的值,由于运算符的两边的类型都是整型,所以最后的运算的结果也是整型。5/2的结果只能是整数,结果是2;5%2的运算结果也是整型,运算结果为1;接着算3.6-2+1.2+1表达式的值,其中都是12号运算级别,那么按照结合方向进行运算,结合方向:自左向右;所以先算3.6-2,运算符的两边的类型不相同,一个为整型,一个为实型,最后的运算结果为高类型,为:实型。最后的结果为1.6;计算完第一个表达式以后算1.6+1.2+1;按照结合方向自左向右计算,1.6+1.2运算符的两边的类型都是实型,最后的结果是整型,结果为2.8;最后算表达式2.8+1的值,两个的类型不相同,一个是小数,一个是整数,最后的计算结果为小数,所以最后的运算结果为:3.8;24答案是DA答案C语言中,分号是语句结束的标志,每一条语句都以分号结束;分号是语句的一部分;B答案中,都好运算符的运算级别是1好级别,级别最低。赋值运算符的运算级别是2号运算级别,所以除-4-了都好运算符之外,最低的就是赋值运算符。C答案中,j++;最后有一个分号,说明只是一条语句,其中j++表达式相当于j=j+1出现了赋值号,所以是赋值表达式,最后加上一个分号,够成了语句,这是一条赋值语句。故答案正确。D答案+、-、*、/、%都是算术运算符,但是%运算符的两边要求都是整型,不能是实型;故选D。25答案是D这一题考察的主要是变量的定义,其中变量的命名规则是:1、满足标识符的命名规则,即:只能由字母、下划线和数字构成,并且不能以数字开头。不能和关键字相同2、变量在使用之前要先定义。D答案中floatUS$,其中$是美元符号,不能构成标识符,所以不能构成变量。故选该答案。26答案是A优先级别:2;结合方向:自右向左这一题考察的是赋值符号的运算规则,赋值运算符是将右边表达式的值或者是变量的值赋值给变量,注意:赋值号的左边只能是变量,不能是常量或者是表达式。B答案赋值号的左边是x+1,是一个表达式,故不正确。C答案出现了两个赋值号,那么根据结合方向进行计算,先算右边的表达式的值,即x+10=x+y,,表达式的左边是一个表达式,故不正确。D答案考查的是强制类型转换,其中强制类型转换的格式:(类型名)表达式其中的小括号不能省略,这个答案中的double每一用小括号括起,故不正确。27答案是A这一题考查的是注释;C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。“/*”和“*/”之间不允许再插入“/*”或“*/”。注释可以出现在程序中的任意合法位置。注释部分不被执行。注释不可以嵌套使用。main(){inta=0,b=0,sum;a=10;/*给a赋值10b=20;给变量赋值20*/sum=a+b;printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出结果*/}其中红色的部分为注释内容,注释内容不被程序执行。所以这个程序可以改为:main(){inta=0,b=0,sum;a=10;sum=a+b;printf(“a+b=%d\n”,sum);/*输出结果*/-5-}所以最后的sum的值就是10+0,最后的值是10;所以选择答案A28答案是B这一题考察的主要是变量的定义和赋初值,格式:类型名变量=表达式或者是变量;其中变量的命名规则是:A满足标识符的命名规则,即:只能由字母、下划线和数字构成,并且不能以数字开头。不能和关键字相同B变量在使用之前要先定义。C变量的初始化就是在定义变量的同时给变量赋初值。在赋初值时是把赋值号右边表达式的值或者是变量的值赋值给赋值号左边的变量。赋值号右边的变量必须是先定义过的。A答案intn1=n2=10;n1,n2都是变量,但是变量n2是个变量,应该先定义后使用,没有先定义变量n2,所以不正确。C答案floatf=f+1.1;赋值号右边的表达式的f应该是一个变量,应该先要定义之后才能使用。故不正确。D答案中doublex=12.3E2.5;其中的12.3E2.5不正确,因为实行常量的表示形式中指数形式中的E前后必须有数字,并且后面的数字必须是正式,不能是小数。所以该答案不正确。29答案是C这一题考查的是表达式;表达式的概念:用运算符连接对象的式子其中的运算符有不同的优先级别,根据优先级别进行运算。A答案k=k-k由-和=号两个构成,根据优先级别进行运算,先算-运算,结果为0,再将0的值赋值给变量k;故正确;B答案-k++有两个运算符构成,其中-号的运算级别是14号,++是14号,级别相同,根据结合方向进行运算和赋值。结合方向是:自右向左。先算k++表达式的值,表达式的值是变量原来的值。为1,最后在算负号运算符,此时表达式的值为-1;C答案k%int(f),这里用到了%运算符和强制类型转换,其中强制类型转换的格式为:(类型名)(表达式)注意类型名的小括号不能省略,C答案中省略了类型名的小括号,故不正确。D答案k=f=m这是个赋值运算符,这个表达式中的赋值运算符是2号运算级别,结合方向是自右向左。将m的值赋值给变量f,f得到的值为2.000000;将f的值赋值给变量k.则变量k的值为2;30答案是Dmain(){intm=12,n=34;printf(“%d%d”,++m,n++);printf(“%d%d”,--n,--m);}这一题主要考查的是变量的自加和自减运算符的运算规则。自减自加运算符的运算级别:2号,结合方向:自右向左-6-12m++++mm----m该题目中:m的值为12,n的值为34.执行第一条语句:++m的表达式的值:m的值是在原来的基础上加一,即m的值是13,表达式的值是变量变后的值,即13。n++,n的值在原来的基础上加一。即35,n++,++在变量的后面,所以表达式的值是变量原来的值,即34;执行第二条语句:--n,变量n的值在原来的基础上减一,即34,--n表达式的值是变量变后的值,即34;--m中,m的值是在原来的基础上减一,即12,--m表达式的值是变量变后的值,即12;所以最后的结果是:1334341231.答案选择:B考点:无符号整型的存储。记住:不管是有符号或是无符号正的整型数据都以二进制形式进行存储,区别是有符号的最改为表示符号位,如果最高位为1表示负,0表示正。分析:首先,unsignedshorta;定义了一个无符号短整型变量a,intb=-1;定义了一个有符号的基本整型变量b,并赋初值为-1。其次,-1在计算机中以补码的形式存储。步骤:(1)计算-1的绝对值1的原码,结果为:0000000000000001。(2)原码取反得反码,结果为:1111111111111110。(3)反码加一得补码,结果为:1111111111111111。将1111111111111111赋值给变量b。第三,a=b将b中的1111111111111111赋值给变量a,变量a是无符号整型,因此最高位的1也表示值,通过计算1111111111111111得到65535。32.答案选择:考点:赋值号左边只能是变量,不能使表达式。多个赋值号进行运算时,运算顺序是从右向左。分析:A,x1=26.8%3,26.8是实型不能进行%(求余)运算。B,1+2=x2,赋值号左边1+2是表达式,因此是错误的。C,x3=0x12,将一个十六进制的整型常量12赋值给变
本文标题:第1章 C语言基础知识
链接地址:https://www.777doc.com/doc-2244437 .html