高级语言程序设计(一)课后习题答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《高级语言程序设计(一)课后习题答案.pdf》由会员分享,可在线阅读,更多相关《高级语言程序设计(一)课后习题答案.pdf(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章概述一、单项选择题1.二进制语言是属于()A.面向机器语言B.面向问题语言C.面向过程语言D.面向汇编语言解:A.人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言.面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言.面向过程语言是一种能方便描述算法过程的计算机程序设计语言.有汇编语言,但没有面向汇编语言.汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码.2.将汇编语言编写的程序翻译成目标程序的是()程序A.解 释 B.编 译 C.汇 编 D.源解:
2、C.3.不属于面向机器语言的是()A.符号语言B.二进制语言C.汇编语言D.C语言解:D.4.下列语言中不属于面向过程的语言是()A.高级语言B.低级语言C.C语 言 D.ALGOL语言解:B.C语言和ALGOL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言.低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向过程的语言.5.将高级语言编写的程序翻译成目标程序的是()程序A.解 释 B.编 译 C.汇 编 D.源解:B.6.不属于高级语言的计算机语言是()语言A.BASIC B.C C.ALGOL D.符号解:D.二、填空题1.汇编语言属
3、于面向语言,高级语言属于面向语言.解:汇编语言与具体计算机密切有关,是属于面向机器的语言;而高级语言用来描述求解题的算法,所以是面向过程的语言.所以解答是:机器,过程.2.用高级语言编写的程序称为程序,它可以通过程序翻译一句执行一句的方式执行,也可以通过程序一次翻译产生程序,然后执行.解:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有种方式:种是通过解释程序,对源程序逐句解释执行;另种是先让编译程序将源程序翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程),然后执行目标程序.所以解答时:源,解释,编译,二进制.3.从计算机角度出发,程
4、 序 就 是,程序设计就是.解:用某种计算机能理解并执行的计算机语言描写解决问题的方法步骤;分析解决问题的方法步骤,并将其记录下来的过程.第二章C语言的基本知识一、单项选择题1.属于C 语言字符集中可显示字符的是()A.B.n C.t D.b解:A2.不属于C 语言字符集中的符号是()A.B.|CD.A解:C3.下列选项中,不是转义字符的是()A.W B.V C.074 D.0解:C4.下列选项中,正确的转义字符是()AA0F1 B.CA094 D.OxFl解:B5.下列给出的符号串中,不属于C 语言保留字的是()A.swith B.cher C.case D.else解:B6.下列给出的符号
5、串中,属于C 语言保留字的是()A.ifB.iFC.IfD.IF解:A7.下列给出的符号串中,可作为标识符的是()A.?a B.a=2 C.a.3 D.a_3解:D8.下列给出的符号串中,不能作为C 语言标识符的是()A.a_2 B._2a C._a2 D.2_a解:D9.下列给出的符号串中,可以作为C 语言标识符的是()A.static B.do C.register D.GOTO解:D10.下列说法中错误的是()A.主函数可以分为2 个部分:主函数头和主函数体B.主函数可以调用任何不是主函数的其他函数C.任何函数可以调用不是主函数的其他函数D.程序总是从排在程序最前面的某个函数开始执行解:
6、D 程序总是在主函数中开始执行,并在主函数中结束二、填空题1 .转义字符是由符号开始的单个字符或者若干个字符组成的.解:反斜杠2.C 语言的保留字规定全部由 字母组成,解:英文小写3.C 语言标识符是由 或 开头的字母、数字、下划线组成的串符号.ANSIC规定标识符的长度W 个字符;而PC机上规定前 个字符有效.解:字母,下划线,32,84.C 语言词类主要分为,和6类.解:常量,变量,运算符,函数调用,表达式,保留字5.C 语言的语句主要分为 语句,语句,语 句,语 句,语句,语 句,语句和 语句.解:数据定义,赋值,函数调用,表达式,流程控制,复合,空,其他6.在C 语言中既是词类,又能单
7、独组成语句的有和两类.解:保留字,标识符7.C 语言的程序是由若干个函数组成的,其中有且仅有一个函数名规定为 的主函数.解:main8.C 程序的执行总是由 函数开始,并且在 函数中结束.解:主,主9.C 语言程序的注释可以出现在程序中的任何地方,它总是以符号作为开始标记,以符号作为结束标记.解:/*,*/10.C 语句的最后一定要有一个号.解:分11.使用Turbo C 调试C 程序的主要操作步骤分为一,.解:输入新程序或调入已存在的程序,编辑修改源程序,源程序清单存盘,编译连接生成目标程序,执行目标程序,显示运行结果.第三章基本数据类型、运算符和表达式一、单项选择题1 .下列选项中属于C
8、语言字符常量的是()A.abc B.n C.a D.a0解:C2.下列选项中属于字符串常量的是()A.ABC B.ABC C.abc D.a解:B.C 程序中,一个字符串常量是表示个字符序列,书写时,用双引号字符前后括住这个字符序列.所以只有ABC是一个正确的字符率常量,其余都不是.其中,ABC可作为标识符,字符列,abc不能出现在C 程序中,区是一个字符常量.3.在PC机中,。在内存占用的字节数是()A.l B.2C.3 D.4解:B.一般来说,一个字符在内存中只占1 个字节,5,是转义字符,其意义是换行符,它作为一个字符存储,在内存占2 个字节.4.下列字符串常量中,占用内存字节数为2 的
9、字符串常量是()A.12 B.1C.1O D.nn解:B5.字符串ABC在内存占用的字节数是()A.3 B.4C.6 D.8解:B.字符串中的每个字符占1个字节,但 C 程序在存储字符串时,要在最后一个有效字符后面接 上 1个字符串结束的标记符0.这样,存储字符串常量ABC需要4 个字节.6.在C 语言中,合法的长整型常量是()A.OL B.4962 C.0.054838743 D.2.1869el0解:A.为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的最高位的不同理解,又分别分成无符号和带符号两种.若要明确指明一个整数是长整型的,必须在整数之后接上字符U.所
10、以 0 L 是一个长整型的整型常量,而 4962是基本整型数据;0.054839743 和 2.1869el0 都是 double 型的实数.7.下列符号常量的定义中正确的是()A.#define N3 B.define N 3 C.#define N_1 3 D.#define N 1 3解:C8.设有宏定义#define R 2+3,则 R*R的宏替换结果正确的是()A.(2+3)*(2+3)B.2+3*2+3 C.5*5 D.5.0*5.0解:B9.char型数据在内存中存放的是()A.ASCH代 码 值 B.二进制代码值C.八进制代码值D.十进制代码值解:A.计算机存储字符,通常是存储
11、字符的某种代码值.有许多种字符编码的方法,最流行的是ASCII代码.在C 语言中,char型数据用ASCII代码表示.10.下列说法中错误的是()A.整形变量可以存放字符常量的值B.字符型变量可以存放任意整形常量的值C.变量必须先定义,后使用 D.字符串的长度不等于它占用的字节数解:B11.设整型变量i 的值为3,则表达式i-i 的值为()A.0B.1 C.2 D.3解:A.有些运算符只有一个字符,也有许多运算符由两个字符组成.特别是有些字符既可是单个字符的运算符,又能组成双字符的运算符.编译系统在识别源程序时,通常是尽量多地读字符,能组成多字符单词的先尽量组成多字符单词.所以表达式i-i,被
12、编译器理解为(i-)-i.另外,当表达式中某变量有后缀自增和自减运算时,先按变量的原值计算表达式,然后再对变量进行自增和自减运算.同样地,当表达式中某变量有前缀自增和自减运算时,先对变量进行自增和自减运算,然后再按变量的新值计算表达式.按这个约定,求表达式(i-)-i是计算i-i的值为0,然后再对i 作自减运算,这样,表达式i-i 的值为0.12.设整型变量a,b,c均为2,表达式a+b+c+的结果是()A.6 B.9C.8 D.12解:A.与上一小题解答的理由相同,表 达 式 a+b+c+被系统理解成(a+)+(b+)+(c+).表达式 变量+的值是变量的原来值,所以在变量a,b,c均 为
13、2 的前题下,执行上述表达式,得到结果为6.13.表达式10!=9的值是()A.trueB.非 0 值 C.O D.1解:D.关系运算的结果只有。和 1,若关系成立,则结果为1;若关系不成立,则结果为0.因关系式10!=9成立,所以表达式的结果为1.14.设a 为整型变量,下列C 表达式中,不能表达数学关系式:10a15的是()A.10a10&a15 D.!(a=15)解:A.数学关系式10a10&a15,或!(a=15)或 a=ll|a=12|a=13|a=14,若写成 10a10的结果0 或 1,然后以这个结果与15比较,是否小于15.显然这与数学式子的意义是不一致的.15.设a,b和 c
14、 都是int型变量,且 a=3,b=4,c=5,则下面的表达式中值为0 的是()A.a&b B.a=b C.a|b+c&b-c D.!(ab)&(n=ab)后 m,n的值是QA.0,0 B.0,1 C.1,0 D.1,1解:B.表达式(m=ab)&(n=ab)是一个逻辑表达式,它的计算过程是先计算逻辑与的左分量m=ab,其中乂是先计算ab.因 ab不成立,结果为0,将 0 赋给变量m,最后逻辑与的左分量结果为0.由于逻辑运算采用特别的优化计算规则,当逻辑与的左分量结果为0 时,不再计算逻辑与的右分量,而直接以0 为逻辑与的结果.所以,上述表达式计算使m 的值变为0,而 n 的值没有变,依旧为I
15、.21.若已定义x 和 y 为 double类型,则表达式:x=l,y=x+3/2结果是()A.l B.2 C,2.0 D.2.5解:C.由于变量x 和 y 都是double类型,表达式x=l,y=x+3/2是先计算x=l,由 于 1 是整型的x是double类型的,该计算先将整数1转换成double类型的1.0,并将1.0赋给变量x.计算y=x+3/2是先求3/2的值,因是两整数相除,结果是整型值1,然后在计算x+1时,也先将1 转换成1.0,然后求得x+l的值为2Q 最后将该值赋给变量y,并得到整个表达式的值为2 022.执行语句x=(a=3,b=a-);后,x,a,b的值依次为()A.3
16、,3,2 B.2,3,2 C.3,2,3 D.2,3,3解:C.计算表达式x=(a=3,b=a-)时,先计算赋值号右端圆括号内的逗号表达式.逗号表达式要求各子表达式顺序计算,并以最后予表达式的值为整个逗号表达式的结果,所以该表达式计算时,先让变量a 的值为3,a-的值是a 当时的值,以该值为结果赋给变量b,并以该值为逗号表达式的值赋给变量X,然后a 的值被减少1.所以计算该表达式后,使变量x,a,b的值依次为3,2,3.23.设a 为 5,执行下列计算后,b 的值不为2 的是()A.b=a/2 B.b=6-(-a)C.b=a%2 D.b=a3?3:2解:C.因两个整型数据相除,结果是整数,当
17、a 的值为5 时,计算表达式b=a/2后,使 b 的值为2.计算表达式b=6-(-a)是先计算子表达式G-a)的,先让a 的值减1变成4,并以减1后的a 为子表达式的结果,所以子表达式的结果为4,最后使b 的值为2.在计算表达式b=a%2时,求余运算a%2的结果为1,最后使变量b 的值为1 .计算表达式b=a3?3:2时,先计算条件表达式a3?3,2,以2 为结果,最后也使变量b 的值为2.24.设 a=l,b=2,c=3,d=4 则表达式 ab?a:cd?a:d 的结果为()A.4 B.3 C.2 D.1解:D.条件运算符的优先级比关系运算符的优先级低,并且它的结合性是自右向左的,所以表达式
18、ab?a:cd?a:d可用圆括号等价地写成(ab?a:(cd)?a:d).因 a=A&ch=A&chv=Z)?(ch+32):ch.先计算其中条件表达式,由于条件(ch=A&ch3;后,k 的值是()A.06 B.0177776 C.066 D.0177766解:D.将变量i 的八进制数值013写成二进制形式为00001011,将变量j 的十六进制值0 x13写成二进制数形式为00010011.表达式k=i|j 3 的计算过程是先求i,结果用八进制代码表示为 0177764,接着计算j 3,结果为02,对它们进行按位或运算结果为0177766.30.设整型变量x,y,z均已赋值,下列选项中,正
19、确的赋值表达式是()A.x=3 B.x+=z-y C.x=y=z D.x=y+l,z-2解:B31.在以下一组运算符中,优先级最高的运算符是()A.=B.=C.%D.&解:C.常规运算符的优先级自高到低的排列顺序是算术运算符,移位运算符,关系运算符,按位运算符逻辑运算符,条件运算符,赚值运算符,逗号运算符.所以问题所给的四个运算符按优先级自高到低的排列顺序是,b 的 值 为,abc 的值为.解:0,0.因a的值为3,b的值是2,条件ab为真,其值为1.表达式abc的求值顺序是计算ab,结果为1,接着计算lc,H c的值为1,条 件l c为假.结果为0.14.C语言中作为运算对象时的逻辑值真是用
20、表示的,逻辑值假是用表示的.逻辑表达式值为真时是用表示的,逻辑表达式值为假时是用表示的.解:在C程序中,判逻辑值时,用非0值表示真,用值0表示假;但逻辑表达式计算结果,逻辑表达式值为真是用1表示的,而逻辑表达式的值为假,则用0表示.15.若已知a=10,b=20,则表达式!ab的值为_.解:计算表达式!avb,先计算!a,因a的 值 为10,!a的值为0.关系表达式020为真,所以表达式!ab的值为1.13.能表述20 x30或x-100的C语 言 表 达 式 是.解:首先表述20Vx30的C表达式可写成20 x&x30.所以表述20Vx30或x-100的C表达式为 20 x&x30|x-10
21、0.17.设变量x,y,z均为实型,表示其中至少有一个负数的表达式是.tf?:x0|y0|zA=l=1)=1得 到1,再计算1z)?x+2:x-2,3,2 后,x=_.解:在变量x,y,z的值均为5的情况下,计算各表达式.由于表达式x-=y-z等价于表达式x=x-(y-z),所以计算后x的值为5.表达式x%=y+z等价于表达式x=x%(y+z),所以计算后x的值也为5.表达式x=(yz)?x+2:x-2,3,2的计算过程用圆括号描述其计算顺序是:x=(yz)?x+2:x-2,3,2,即这是一个逗号运算表达式,由个赋值表达式和两个数值构成,逗号表达式要求顺序求各子表达式的值.表达式x=(yz)?
22、x+2:x-2的计算是先求赋值号右边的条件表达式,因条件(yz)为假,求出x-2的值为3,将该值赋给变量x,使x的值为3.21.设有下列运算符,+,+,&,=,其 中 优 先 级 最 高 的 是,优先级最低的是.解:对运算符,+,+,&,=,按它们的优先级自高到低的顺序排列为:+,+,0)y=l;else y=0;-l(x0)1 (x0)0(x0)-l(x0)0(x0)1 (x0)0(x0)解:C.程序段首先置变量y 的值为接着按变量x 值的不同情况重置变量y 的值.重置的首要条件是x!=0,若变量x 的值为0,则不再重置变量y 的值,所以在x 值为0 情况下,y 的值是-1.在变量x 的值不
23、等于0 的条件下,若 x 的值大于0,重置变量y 的值为1;若变量x 的值小于0,重置变量y 的值为0.所以程序段实现当变量x 的值为0 时,变量y 的值为-1;当变量x 的值大于0 时,置变量y 的值为1;当变量x 的值小于0 时,置变量y 的值为0.9.设整型变量m l值为3,m 2值为2,m 3值 为 1,执行下列语句后,整型变量m 4值是()switch(m 1 =m2=m3+1)case 1 :m4=l;break;case 3:m4=3;break;case 2:m4=2;break;default:m4=4;)A.l B.2C.3 D.4解:A10.下列语句中,错误的是()A.w
24、hile(x=y)5;B.do x+while(x=10);C.while(0);D.do 2;while(a=b);解:B.while语句的般形式是:while(表达式)语句;.这里的表达式可以是任何合理的表达式,语句可以是任何语句,包括空语句,或表达式语句.可能书写的while语句没有任何意义,如供选择的A.While(x=y)5;和 C.while(O);,但这两个语句的句法没有任何错误.do-While语句的般形式是:d o 语 句 while(表达式);,其中的成分语句也可以是任何语句,但供选择答案B.dox+while(x=10);中的代码x+是一个表达式,不是语句,所以是错误的.
25、11.设有循环语句for(i=l;i 4;i+)i+;其循环体执行的次数是()A.无限 B.O C.3 D.4解:C12,设有循环语句for(x=O,y=O;(y!=123)|(x 4);x+);其循环体执行的次数是()A.无 限 次 B.不确定次C.4次 D.3次解:A.for循环语句的初始化部分置变量x 和 y 的初值为0,循环条件是(y!=123)|(x4),每次循环后变量x 的值增1.由于循环过程中变量y 的值未被修改过福环条件又是一个逻辑或,其左分量(y!=123)永远成立,也就是循环条件永远成立.所以该循环语句将循环执行无限次.13.若i,j已定义为int类型,则以下程序段中的内循
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 课后 习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内