软件设计师练习题及解析二.doc_第1页
软件设计师练习题及解析二.doc_第2页
软件设计师练习题及解析二.doc_第3页
软件设计师练习题及解析二.doc_第4页
软件设计师练习题及解析二.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计师练习题二2.1单项选择题 1下列字符列中,可以作为“字符串常量”的是() ABC ABC” abc a 【解】C程序中,一个字符率常量是表示一个字符序列,书写时,用双引号字符前后括住这个字符序列。所以只有”ABC”是一个正确的字符率常量,其余都不是。其中,ABC可作为标识符,字符列abc不能出现在C程序中,a是一个字符常量。所以解答是。 2在以字节存储字符的系统中,n 在内存占用的字节数是() 1 2 3 4 【解】一般来说,一个字符在内存中只占1个字节,n是转义字符,其意义是换行符,它作为一个字符存储,在内存也只占五个字节。所以解答是。 3字符串”XyZ”在内存占用的字节数是( ) 3 4 6 8 【解】字符串中的每个字符占1个字节,但C程序在存储字符串时,要在最后一个有效字符后面接上 1个字符串结束的标记符0。这样,存储字符串常量”xyZ”需要 4个字节。所以解答是。 4在以下字符列中,合法的长整型常数是( ) OL 4962710 0.054838743 2.1869el0 【解】为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的最高位的不同理解,又分别分成无符号和带符号两种。若要明确指明一个整数是长整型的,必须在整数之后接上字符L。所以OL是一个长整型的整型常量,而4962710是基本整型数据,而对于用2个字节表示一个基本整型数据的系统来说,该整数将因超出范围而是一个错误的整数;0.054839743和2.1869el0都是double型的实数。所以解答是。 5一个char型数据,它的值在内存中存放的是() ASCll代码值 BCD代码值 内码值 十进制代码值 【解】计算机存储字符,通常是存储字符的某种代码值。有许多种字符编码的方法,最流行的是ASCII代码。在C语言中,Char型数据也用ASCII代码表示。所以解答是。 6设变量 m,n,a,b,c,d均为以执行(ma)|(ncd)后,m,n的值是() 0,0 0,1 l,0 1,1 【解】计算(mab)|(n=c=d)的过程是先计算逻辑或的左运算分量(m=a=b)的值,由于赋位运算符的优先级比关系运算符=的优先级低,又先计算 a=b。因 a,b均为0后,所以比较结果值为1。将1赋给变量m,使变量m的值变为1 。同时这个赋值运算的结果也是1,这样逻辑运算的左运算分量的值为1。由于逻辑或运算的左运算分量值为1,按照C语言对逻辑或运算优化计算的规定,不再计算逻辑或的右运算分量,而直接得到逻辑或运算的结果为1 。由于逻辑或的右运算分量不曾计算过,所以变量n的值也不为变化。这样,上述表达式计算后,变量m的情为1,变量n的值为0。所以解答是。 7设a为5,执行下列计算后,b的值不为2的是( ) ba2 b6-(a) ba2 ba3?3:2 【解】因两个整型数据相除,结果是整数,当a的值为5时,计算表达式b=a2后,使b的值为2。计算表达式b6-(-a)是先计算子表达式(-a)的,先让a的值减1变成4,并以减1后的a为子表达式的结果,所以子表达式的结果为4,最后使b的值为2。在计算表达式b= a%2时,求余运算a2的结果为1,最后使变量b的值为1。计算表达式ba3?3:2时,先计算条件表达式a3?3:2,以2为结果,最后也使变量b的值为人所以解答是。 8执行语句“x(a3,ba);”后,X,a,b的值依次为( ) 3,3,2 2,3,2 3,2,3 2,3,3 【解】计算表达式x(a=3,b=a-)时,先计算赋值号右端圆括号内的逗号表达式。远号表达式要求各子表达式顺序计算,并以最后予表达式的值为整个逗号表达式的结果。所以该表达式计算时,先让变量a的值为3,a-的值是a当时的值,以该值为结果赋给变量b,并以该值为远号表达式的值赋给变量x,然后a的值被减少1。所以计算该表达式后,使变量x,a,b的值依次为3,2,3。所以解答是。9设整型变量m,n,a,b,c,d均为1,执行“( mab)(nab)后m,n的值是( ) 0,0 0,l 1,0 1 ,l 【解】表达式(ma b)(na b)是一个逻辑表达式,它的计算过程是先计算逻辑与的左分量(mab,其中又是先计算ab。因ab不成立,结果为0,将0赋给变量m,最后逻辑与的左分量结果为0。由于逻辑运算采用特别的优化计算规则,当逻辑与的左分量结果为0时,不再计算逻辑与的右分量,而直接以0为逻辑与的结果。所以,上述表达式计算使m的值变为0,而n的值没有变,依旧为l。所以解答是。 10,设有代码“int a3;”,则执行了语句“a+=a-= a*a;”后,变量a的值是() 3 0 9 -12 【解】由于赋值运算符的结合性自右至左,语句“a+=a-=a*a;”的执行是先计算a*a,得到值 9,再计算 aa*a,使 a的值为-6,接着计算 aa,使 a的值为-12。所以解答是。 11在以下一组运算符中,优先级最高的运算符是() % 【解】常规运算符的优先级自高到低的排列顺序是算术运算符、移位运算符、关系运算符。按位运算符、逻辑运算符、条件运算符、赋值运算符、逗号运算符。所以问题所给的四个运算符按优先级自高到低的排列顺序是,。所以解答是。 12设整型变量i的值为3,则计算表达式i-i后表达式的值为() 0 l 2 表达式出错 【解】有些运算符只有一个字符,也有许多运算符由两个字符组成。特别是有些字符既可是单个字符的运算符,又能组成双字符的运算符。编译系统在识别源程序时,通常是尽量多地读八字符,能组成多字符单词的先尽量组成多字符单词。所以表达式i-i,被编译器理解为(i-)-i。另外,当表达式中某变量有后缀自增和自减运算时,先按变量的原值计算表达式,然后再对变量进行自增和自减运算。同样地,当表达式中某变量有前缀自增和自减运算时,先对变量进行自增和自减运算,然后再按变量的新值计算表达式。按这个约定,求表达式(i-)-i是计算ii的值为0,然后再对i作自减运算。这样,表达式(i-)-i的值为0。所以解答是。 13设整型变量 a、b、c均为2,表达式 a+b+c+ 的结果是() 6 9 8 表达式出错 【解】与上一小题解答的理由相同,表达式a+b+c+被系统理解成:(a+)+(b+)+c+)。表达式“变量+”的值是变量的原来值,所以在变量a、bc均为2的前题下,执行上述表达式,得到结果为6。所以解答是。 14若已定义 x和 y为double类型,则表达式: xl, yx32结果是( ) l 2 20 25 【解】由于变量x和y都是double类型,表达式 xl, yx32是先计算 x1,由于 1是整型的,x是double类型的,该计算先将整数1转换成double类型的1.0,并将1.0赋给变量x。计算 yX32是先求 32的值,因是两整数相除,结果是整型值 1,然后在计算 X1时,也先将 1转换成 1.0,然后求得 Xl的值为2.0,最后将该值赋给变量 y,并得到整个表达式的值为2.0.所以解答是。 15设a=1,b=2,c3,d4则表达式a b?a:c d?a:d的结果为() 4 3 2 1 【解】条件运算符的优先级比关系运算符的优先级低,并且它的结合性是自右向左的,所以表达式ab?a:cd?a:d可用圆括号等价地写成(ab?a:(cD)?A:D)。因AB成立,计算结果为A的值1。所以解答是。 16设a为整型变量,下列C表达式中,不能表达数学关系式:10a15的是( ) 10a15 a11|a12| a13| a14 a10a15 !(a10)!(a=15) 【解】数学关系式 10a 15表示。只能是 11, 12, 13, 14四个值之 l。用 C表达式表示这个条件,可写成a10 a15,或!(a10)&!(a=15),或a11|a12 | a=13|a14等。若写成10a15,该算式的计算顺序是先求出10a的结果0或1,然后以这个结果与15比较,是否小于15,显然这与数学式子的意义是不一致的。所以解答是。 17下列表达式中,正确的C赋值表达式是( ) a7bCa7 C7ba7 a(7b, b, a7) a 7b, ca7 【解】赋值运算符是运算符之一,赋值运算也可以出现在一般表达式中。赋值运算时,出现在赋值运算符左边的表达式应该是引用一个存储对象,例如变量。不可以是一个数值计算表达式。如表达式a7bca7因算术运算符比赋值运算符的优先级高,要把a7的结果赋给7bc,这是错误的。同样理由,表达式a 7ba7也是错误的。而表达式a(7b,b,a7)就是正确的赋值表达式,它是先计算赋值号左边的括号内的表达式,括号表达式内是一个逗号表达式,远号表达式要求顺序逐一计算各子表达式,并以最后一个子表达式的值作为远号表达式的结果,最后将该结果赋给变量a。而表达式a7b,ca7则不是一个赋值表达式,而是一个逗号表达式,它由两个赋值子表达式组成。所以解答是。18若有以下定义: char a;int b;float c; double d;则表达式a*b+d-c值的类型为( ) float int char double 【解】基本类型的数据可以混合运算,但运算时,对要求运算分量类型相同的运算来说,如运算分量的类型不是全相同,则会有自动类型转换发生。类型自动转换规则规定类型低(简单)的向类型高(复杂)的转换。各类型由高到低的排列顺序是:long double、float、unsigned long、long、unsigned int、int这样,若有定义: char a; int b;float c;double d;则表达式a*b+d-c的值的类型是double的。首先计算 a*b,得到int类型的值,接着计算a*b+d,得到double类型的值,最后计算a*b+d-c,得到double类型的值。所以解答是。 19表达式“9!=7”的值是() true 非0值 0 1 【解】关系运算的结果只有0和1,若关系成立,则结果为1;若关系不成立,则结果为0。因关系式9!7成立,所以表达式的结果为1。虽然1也是非0值,在供选择的答案中有1,所以最确切的解答是。 20用十进制数表示表达式“12|012”的运算结果是( ) 1 0 14 16 【解】按位运算将运算分量视作二进位的位申信息,对两运算分量的对应位进行运算,产生H进位的位串信息结果。整数12最低8位二进位是00001100,整数012是八进制数,它的最低8位二进位是00001010。这两个二进位位串信息按位或运算,得到结果是00001110,对应十进制数14,八进制数是016。所以解答是。 21设字符型变量 a3,b6,计算表达式 C(ab) 2后C的二进制值是( ) 00011100 00000111 00000001 00010100 【解】a的值为3,写成8位二进制数形式是00000011,b的值为6,写成8位二进制数形式是00000110。表达式c(ab)2,先计算a与b的按位加,得到结果00000101,将这结果向左移2位,得到二进位的位串信息是00010100。所以解答是。 22设 a,b和 c都是int型变量,且a3,b4,c5,则下面的表达式中值为 0的是( ) ab ab a|b+cbc !(aB)!|1) 【解】对于表达式ab,两个非O运算分量的逻辑与结果为1。对于表达式ab,由于关系式成立,结果也为此又由于变量 a为非 0,表达式a|b+cbc的结果也为1。对于表达式!(ab)!c|1),先是计算(ab)得到结果1;计算!C得到结果为0;再计算它们的逻辑与,结果为0。继续与1求逻辑或,得到结果为1。最后,对1求逻辑非,得到结果为0。所以解答是。 23设Ch是Char型变量,其值为A,则下面表达式的值是( ) ch(chAchZ)?(ch32):ch A a Z z 【解】由于字符型变量ch的值为 A,计算表达式chh Ach Z)?(ch32):ch,先计算其中条件表达式,由于条件(chAhZ)成立,该条件表达式以 ch3297为结果,将该值赋给变量 ch,以字符表达这个值为a。所以解答是。 24 设有无符号短整型变量i、j、k,i值为013,j值为 OX13。计算表达式“ki|j 3”后,k的值是() 06 0177776 066 0177766 【解】将变量 i的八进制数值 013写成二进制形式为00001011,将变量j的十六进制值 oxl3写成二进制数形式为00010011。表达式ki|j3的计算过程是先求i,结果用八进制代码表示为0177764;接着计算j3,结果为02。对它们进行按位或运算结果为0177766。所以解答是。2.2填充题 1在内存中,存储字符串“X”要占用_个字节,存储字符X要占用_个字节。 【解】计算机存储一个字符用1个字节,存储字符串时,每个字符要占用1个字节,另在字符串的有效字符之后存储1个字符串的结束标记符。所以存储字符率“X要占用2个字节,存储字符X只要1个字节。 2在C程序中,判逻辑值时,用_表示逻辑值“真”,又用_表示逻辑值假”。在求逻辑值时,用_表示逻辑表达式值为“真”,又用_表示逻辑表达式值为“假”。 【解】在C程序中,判逻辑值时,用非0值表示真;而判逻辑值时,用值0表示假。但逻辑表达式计算结果,逻辑表达式值为真是用1表示的,而逻辑表达式的值为假,则用0表示。 3定义符号常量的一般形式是_。 【解】定义符号常量用预处理命令的宏定义,其定义的一般形式是: define符号常量名 常量 4在函数内,说明变量时,若省略存储类型符,系统默认其为_存储类别,该存储类别的类型符为_。 【解】在函数内,说明变量时,若省略存储类型符,系统就默认其为自动存储类别,该存储类别用auto标识。 5无符号基本整型的数据类型符为,双精度实型数据类型符为,字符型数据类型符为,。 【解】无符号的基本整型的类型符为unsigned int,或简写成unsigned。双精度实型数据类型符为double,字符型数据类型符为char。 6定义指定数据类型的变量时,较完整的一般形式是。 【解】要指定变量的存储类型,定义指定类型的变量,其一般形式是:存储类型符数据类型符变量名1,变量名2,; 7设有下列运算符:、,其中优先级最高的是_,优先级最低的是_. 【解】对运算符、,按它们的优先级自高到低的顺序排列为:、所以,优先级最高的是+,优先 级最低的是。 8设二进制数A是0A101111,若想通过异或运算 AB使 A的高4位取反,低4位不变,则二进制数B应_。 【解】按位加运算的一个重要应用是让某个整型变量的二进位位串信息的某些位信息反向,0变成1,而1变成0. 这只要设计这样一个位串信息,让要变反的位为1,不要改变的位为0,用这个位串信息与整型变量按位加就能得到希望的结果。要使字节的高4位取反,低4位不变,则需要位串信息是11110000,写成八进制数是0360,写成十六进制数为0xF0。 9设a3, b= 2,Cl,则 Cb的值为_。,a b C的值为_。 【解】因a的值为3,b的值是2,条件ah为真,其值为1。表达式abc的求值顺序是计算ab,结果为1,接着计算1c,因c的值为1,条件1c为假,结果为0。 10老已知a10,b20,则表达式!ab的值为_。 【解】计算表达式!ab,先计算!a ,因a的值为1O,!a 的值为0。关系表达式020为真,所以表达式!ab的值为1。 11设X和y均为 int型变量,且Xl,y2,则表达式 1.0xy的值为_。 【解】计算表达式 1.0xy,先求 xy,因

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论