高级程序设计课后习题及答案
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解:B.字符串中的每个字符占1个字节,但C程序在存储字符串时,要在最后一个有效字符后面接上1个字符串结束的标记符'\0'.这样,存储字符串常量"ABC"需要4个字节.
6.在C语言中,合法的长整型常量是( ) A.0L B.4962 C.0.054838743 D.2.1869el0
解:A.为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的最高位的不同理解,又分别分成无符号和带符号两种.若要明确指明一个整数是长整型的,必须在 整数之后接上字符'L'.所以0L是一个长整型的整型常量,而4962是基本整型数据;0.054839743和2.1869el0都是double型的实数.
解:B.
6.不属于高级语言的计算机语言是( )语言 A.BASIC B.C C.ALGOL D.符号
解:D.
二、填空题
1.汇编语言属于面向____语言,高级语言属于面向____语言.
解:汇编语言与具体计算机密切有关,是属于面向机器的语言;而高级语言用来描述求解题的算法,所以是面向过程的语言.所以解答是:机器,过程.
第一章 概述
一、单项选择题
1.二进制语言是属于( ) A.面向机器语言 B.面向问题语言 C.面向过程语言 D.面向汇编语言
解:A.人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言.面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言.面向过程语言是一种能方便描述算法过程的计算机程序设计语言.有汇编语言,但没有面向汇编语言.汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码.
2.将汇编语言编写的程序翻译成目标程序的是( )程序 A.解释 B.编译 C.汇编 D.源
解:C.
3.不属于面向机器语言的是( ) A.符号语言 B.二进制语言 C.汇编语言 D.C语言
解:D.
4.下列语言中不属于面向过程的语言是( ) A.高级语言 B.低级语言 C.C语言 D.ALGOL语言
9.C语言程序的注释可以出现在程序中的任何地方,它总是以____符号作为开始标记,以____符号作为结束标记.
解:/*,*/
10.C语句的最后一定要有一个____号.
解:分
11.使用Turbo C调试C程序的主要操作步骤分为____,____,____,____,____,____.
15.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( ) A.'a'&&'b' B.a<=b C.a||b+c&&b-c D.!((a<b)&&!c||1)
解:D.对于表达式'a'&&'b',两个非O运算分量的逻辑与结果为1.对于表达式a<=b,由于关系式成立,结果也为1,又由于变量a为非0,表达式a||b+c&&b-c的结果也为1.对于表达式!((a<b)&&! c||1),先是计算a<b得到结果1,计算!c得到结果为0,再计算它们的逻辑与,结果为0.继续与1求逻辑或,得到结果为1.最后,对1求逻辑非,得到结果为0.
解:D 程序总是在主函数中开始执行,并在主函数中结束
二、填空题
1.转义字符是由____符号开始的单个字符或者若干个字符组成的.
解:反斜杠
2.C语言的保留字规定全部由____字母组成,
解:英文小写
3.C语言标识符是由____或____开头的字母、数字、下划线组成的一串符号.ANSIC规定标识符的长度≤____个字符;而PC机上规定前____个字符有效.
解:B.C语言和ALGOL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言.低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向过程的语言.
5.将高级语言编写的程序翻译成目标程序的是( )程序 A.解释 B.编译 C.汇编 D.源
解:数据定义,赋值,函数调用,表达式,流程控制,复合,空,其他
6.在C语言中既是词类,又能单独组成语句的有____和____两类.
解:保留字,标识符
7.C语言Байду номын сангаас程序是由若干个函数组成的,其中有且仅有一个函数名规定为____的主函数.
解:main
8.C程序的执行总是由____函数开始,并且在____函数中结束. 解:主,主
解:字母,下划线,32,8
4.C语言词类主要分为____,____,____,____,____和____6类.
解:常量,变量,运算符,函数调用,表达式,保留字
5.C语言的语句主要分为____语句,____语句,____语句,____语句,____语句,____语句,____语句和____语句.
解:D
8.下列给出的符号串中,不能作为C语言标识符的是( ) A.a_2 B._2a C._a2 D.2_a
解:D
9.下列给出的符号串中,可以作为C语言标识符的是( ) A.static B.do C.register D.GOTO
解:D
10.下列说法中错误的是( ) A.主函数可以分为2个部分:主函数头和主函数体 B.主函数可以调用任何不是主函数的其他函数 C.任何函数可以调用不是主函数的其他函数 D.程序总是从排在程序最前面的某个函数开始执行
3.从计算机角度出发,程序就是____,程序设计就是____.
解:用某种计算机能理解并执行的计算机语言描写解决问题的方法步骤;分析解决问题的方法步骤,并将其记录下来的过程.
第二章 C语言的基本知识
一、单项选择题
1.属于C语言字符集中可显示字符的是( ) A.\ B.\n C.\t D.\b
解:B
9.char型数据在内存中存放的是( ) A.ASCII代码值 B.二进制代码值 C.八进制代码值 D.十进制代码值
解:A.计算机存储字符,通常是存储字符的某种代码值.有许多种字符编码的方法,最流行的是ASCII代码.在C语言中,char型数据用ASCII代码表示.
10.下列说法中错误的是( ) A.整形变量可以存放字符常量的值 B.字符型变量可以存放任意整形常量的值 C.变量必须先定义,后使用 D.字符串的长度不等于它占用的字节数
解:A
2.不属于C语言字符集中的符号是( ) A.\ B.| C.≤ D.^
解:C
3.下列选项中,不是转义字符的是( ) A.\\ B.\' C.074 D.\0
解:C
4.下列选项中,正确的转义字符是( ) A.\0F1 B.\" C.\094 D.\0xF1
解:A.数学关系式10<a<15表示只能是11,12,13,14四个值之l.用C表达式表示这个条件,可写成a>10&&a<15,或!(a<=10)&&!(a>=15)或a==11||a==12||a===13||a==14,若写成10<a<15,该算式的 计算顺序是先求出a>10的结果0或1,然后以这个结果与15比较,是否小于15.显然这与数学式子的意义是不一致的.
解:B.一般来说,一个字符在内存中只占1个字节,'\n'是转义字符,其意义是换行符,它作为一个字符存储,在内存占2个字节.
4.下列字符串常量中,占用内存字节数为2的字符串常量是( ) A."12" B."1" C."1\0" D."\n\n"
解:B
5.字符串"ABC"在内存占用的字节数是( ) A.3 B.4 C.6 D.8
解:B.C程序中,一个字符串常量是表示一个字符序列,书写时,用双引号字符前后括住这个字符序列.所以只有"ABC"是一个正确的字符率常量,其余都不是.其中,ABC可作为标识符,字符列'abc'不能出现在C程序中,'a'是一个字符常量.
3.在PC机中,'\n'在内存占用的字节数是( ) A.1 B.2 C.3 D.4
16.设x为整型变量,和表达式!(!x)的值完全相同的表达式是( ) A.x==0 B.x==1 C.x!=0 D.x!=1
7.下列符号常量的定义中正确的是( ) A.#define N3 B.define N 3 C.#define N_1 3 D.#define N 1 3
解:C
8.设有宏定义"#define R 2+3",则R*R的宏替换结果正确的是( ) A.(2+3)*(2+3) B.2+3*2+3 C.5*5 D.5.0*5.0
解:输入新程序或调入已存在的程序,编辑修改源程序,源程序清单存盘,编译连接生成目标程序,执行目标程序,显示运行结果.
第三章 基本数据类型、运算符和表达式
一、单项选择题
1.下列选项中属于C语言字符常量的是( ) A.'abc' B."\n" C.'a' D.'a\0'
解:C 2.下列选项中属于字符串常量的是( ) A.ABC B."ABC" C.'abc' D.'a'
2.用高级语言编写的程序称为____程序,它可以通过____程序翻译一句执行一句的方式执行,也可以通过____程序一次翻译产生____程序,然后执行.
解:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程),然后执行目标程序. 所以解答时:源,解释,编译,二进制.
解:B
5.下列给出的符号串中,不属于C语言保留字的是( ) A.swith B.cher C.case D.else
解:B
6.下列给出的符号串中,属于C语言保留字的是( ) A.if B.iF C.If D.IF
解:A
7.下列给出的符号串中,可作为标识符的是( ) A.? a B.a=2 C.a.3 D.a_3
解:B
11.设整型变量i的值为3,则表达式i---i的值为( ) A.0 B.1 C.2 D.3
解:A.有些运算符只有一个字符,也有许多运算符由两个字符组成.特别是有些字符既可是单个字符的运算符,又能组成双字符的运算符.编译系统在识别源程序时,通常是尽量多地读字符,能组成多字符单词的先尽量组成多字符单词.所以表达式i---i,被编译器理解为(i--)-i.另外,当表达式中某变量有后缀自增和自减运算时,先按变量的原值计算表达式,然后再对变量进行自增和自减运算.同样地,当表达式中某变量有前缀自增和自减运算时,先对变量进行自增和自减运算,然后再按变量的新值计算表达式.按这个约定,求表达式(i--)-i是计算i-i的值为0,然后再对i作自减运算,这样,表达式i---i的值为0.
13.表达式"10!=9"的值是( ) A.true B.非0值 C.0 D.1
解:D.关系运算的结果只有0和1,若关系成立,则结果为1;若关系不成立,则结果为0.因关系式10!=9成立,所以表达式的结果为1.
14.设a为整型变量,下列C表达式中,不能表达数学关系式:10<a<15的是( ) A.10<a<15 B.a==11||a==12|| a==13|| a==14 C.a>10&&a<15 D.!(a<=10)&&!(a>=15)
12.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( ) A.6 B.9 C.8 D.12
解:A.与上一小题解答的理由相同,表达式a+++b+++c++被系统理解成(a++)+(b++)+(c++).表达式"变量++"的值是变量的原来值,所以在变量a,b,c均为2的前题下,执行上述表达式,得到结果 为6.
6.在C语言中,合法的长整型常量是( ) A.0L B.4962 C.0.054838743 D.2.1869el0
解:A.为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的最高位的不同理解,又分别分成无符号和带符号两种.若要明确指明一个整数是长整型的,必须在 整数之后接上字符'L'.所以0L是一个长整型的整型常量,而4962是基本整型数据;0.054839743和2.1869el0都是double型的实数.
解:B.
6.不属于高级语言的计算机语言是( )语言 A.BASIC B.C C.ALGOL D.符号
解:D.
二、填空题
1.汇编语言属于面向____语言,高级语言属于面向____语言.
解:汇编语言与具体计算机密切有关,是属于面向机器的语言;而高级语言用来描述求解题的算法,所以是面向过程的语言.所以解答是:机器,过程.
第一章 概述
一、单项选择题
1.二进制语言是属于( ) A.面向机器语言 B.面向问题语言 C.面向过程语言 D.面向汇编语言
解:A.人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言.面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言.面向过程语言是一种能方便描述算法过程的计算机程序设计语言.有汇编语言,但没有面向汇编语言.汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码.
2.将汇编语言编写的程序翻译成目标程序的是( )程序 A.解释 B.编译 C.汇编 D.源
解:C.
3.不属于面向机器语言的是( ) A.符号语言 B.二进制语言 C.汇编语言 D.C语言
解:D.
4.下列语言中不属于面向过程的语言是( ) A.高级语言 B.低级语言 C.C语言 D.ALGOL语言
9.C语言程序的注释可以出现在程序中的任何地方,它总是以____符号作为开始标记,以____符号作为结束标记.
解:/*,*/
10.C语句的最后一定要有一个____号.
解:分
11.使用Turbo C调试C程序的主要操作步骤分为____,____,____,____,____,____.
15.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( ) A.'a'&&'b' B.a<=b C.a||b+c&&b-c D.!((a<b)&&!c||1)
解:D.对于表达式'a'&&'b',两个非O运算分量的逻辑与结果为1.对于表达式a<=b,由于关系式成立,结果也为1,又由于变量a为非0,表达式a||b+c&&b-c的结果也为1.对于表达式!((a<b)&&! c||1),先是计算a<b得到结果1,计算!c得到结果为0,再计算它们的逻辑与,结果为0.继续与1求逻辑或,得到结果为1.最后,对1求逻辑非,得到结果为0.
解:D 程序总是在主函数中开始执行,并在主函数中结束
二、填空题
1.转义字符是由____符号开始的单个字符或者若干个字符组成的.
解:反斜杠
2.C语言的保留字规定全部由____字母组成,
解:英文小写
3.C语言标识符是由____或____开头的字母、数字、下划线组成的一串符号.ANSIC规定标识符的长度≤____个字符;而PC机上规定前____个字符有效.
解:B.C语言和ALGOL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言.低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向过程的语言.
5.将高级语言编写的程序翻译成目标程序的是( )程序 A.解释 B.编译 C.汇编 D.源
解:数据定义,赋值,函数调用,表达式,流程控制,复合,空,其他
6.在C语言中既是词类,又能单独组成语句的有____和____两类.
解:保留字,标识符
7.C语言Байду номын сангаас程序是由若干个函数组成的,其中有且仅有一个函数名规定为____的主函数.
解:main
8.C程序的执行总是由____函数开始,并且在____函数中结束. 解:主,主
解:字母,下划线,32,8
4.C语言词类主要分为____,____,____,____,____和____6类.
解:常量,变量,运算符,函数调用,表达式,保留字
5.C语言的语句主要分为____语句,____语句,____语句,____语句,____语句,____语句,____语句和____语句.
解:D
8.下列给出的符号串中,不能作为C语言标识符的是( ) A.a_2 B._2a C._a2 D.2_a
解:D
9.下列给出的符号串中,可以作为C语言标识符的是( ) A.static B.do C.register D.GOTO
解:D
10.下列说法中错误的是( ) A.主函数可以分为2个部分:主函数头和主函数体 B.主函数可以调用任何不是主函数的其他函数 C.任何函数可以调用不是主函数的其他函数 D.程序总是从排在程序最前面的某个函数开始执行
3.从计算机角度出发,程序就是____,程序设计就是____.
解:用某种计算机能理解并执行的计算机语言描写解决问题的方法步骤;分析解决问题的方法步骤,并将其记录下来的过程.
第二章 C语言的基本知识
一、单项选择题
1.属于C语言字符集中可显示字符的是( ) A.\ B.\n C.\t D.\b
解:B
9.char型数据在内存中存放的是( ) A.ASCII代码值 B.二进制代码值 C.八进制代码值 D.十进制代码值
解:A.计算机存储字符,通常是存储字符的某种代码值.有许多种字符编码的方法,最流行的是ASCII代码.在C语言中,char型数据用ASCII代码表示.
10.下列说法中错误的是( ) A.整形变量可以存放字符常量的值 B.字符型变量可以存放任意整形常量的值 C.变量必须先定义,后使用 D.字符串的长度不等于它占用的字节数
解:A
2.不属于C语言字符集中的符号是( ) A.\ B.| C.≤ D.^
解:C
3.下列选项中,不是转义字符的是( ) A.\\ B.\' C.074 D.\0
解:C
4.下列选项中,正确的转义字符是( ) A.\0F1 B.\" C.\094 D.\0xF1
解:A.数学关系式10<a<15表示只能是11,12,13,14四个值之l.用C表达式表示这个条件,可写成a>10&&a<15,或!(a<=10)&&!(a>=15)或a==11||a==12||a===13||a==14,若写成10<a<15,该算式的 计算顺序是先求出a>10的结果0或1,然后以这个结果与15比较,是否小于15.显然这与数学式子的意义是不一致的.
解:B.一般来说,一个字符在内存中只占1个字节,'\n'是转义字符,其意义是换行符,它作为一个字符存储,在内存占2个字节.
4.下列字符串常量中,占用内存字节数为2的字符串常量是( ) A."12" B."1" C."1\0" D."\n\n"
解:B
5.字符串"ABC"在内存占用的字节数是( ) A.3 B.4 C.6 D.8
解:B.C程序中,一个字符串常量是表示一个字符序列,书写时,用双引号字符前后括住这个字符序列.所以只有"ABC"是一个正确的字符率常量,其余都不是.其中,ABC可作为标识符,字符列'abc'不能出现在C程序中,'a'是一个字符常量.
3.在PC机中,'\n'在内存占用的字节数是( ) A.1 B.2 C.3 D.4
16.设x为整型变量,和表达式!(!x)的值完全相同的表达式是( ) A.x==0 B.x==1 C.x!=0 D.x!=1
7.下列符号常量的定义中正确的是( ) A.#define N3 B.define N 3 C.#define N_1 3 D.#define N 1 3
解:C
8.设有宏定义"#define R 2+3",则R*R的宏替换结果正确的是( ) A.(2+3)*(2+3) B.2+3*2+3 C.5*5 D.5.0*5.0
解:输入新程序或调入已存在的程序,编辑修改源程序,源程序清单存盘,编译连接生成目标程序,执行目标程序,显示运行结果.
第三章 基本数据类型、运算符和表达式
一、单项选择题
1.下列选项中属于C语言字符常量的是( ) A.'abc' B."\n" C.'a' D.'a\0'
解:C 2.下列选项中属于字符串常量的是( ) A.ABC B."ABC" C.'abc' D.'a'
2.用高级语言编写的程序称为____程序,它可以通过____程序翻译一句执行一句的方式执行,也可以通过____程序一次翻译产生____程序,然后执行.
解:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程),然后执行目标程序. 所以解答时:源,解释,编译,二进制.
解:B
5.下列给出的符号串中,不属于C语言保留字的是( ) A.swith B.cher C.case D.else
解:B
6.下列给出的符号串中,属于C语言保留字的是( ) A.if B.iF C.If D.IF
解:A
7.下列给出的符号串中,可作为标识符的是( ) A.? a B.a=2 C.a.3 D.a_3
解:B
11.设整型变量i的值为3,则表达式i---i的值为( ) A.0 B.1 C.2 D.3
解:A.有些运算符只有一个字符,也有许多运算符由两个字符组成.特别是有些字符既可是单个字符的运算符,又能组成双字符的运算符.编译系统在识别源程序时,通常是尽量多地读字符,能组成多字符单词的先尽量组成多字符单词.所以表达式i---i,被编译器理解为(i--)-i.另外,当表达式中某变量有后缀自增和自减运算时,先按变量的原值计算表达式,然后再对变量进行自增和自减运算.同样地,当表达式中某变量有前缀自增和自减运算时,先对变量进行自增和自减运算,然后再按变量的新值计算表达式.按这个约定,求表达式(i--)-i是计算i-i的值为0,然后再对i作自减运算,这样,表达式i---i的值为0.
13.表达式"10!=9"的值是( ) A.true B.非0值 C.0 D.1
解:D.关系运算的结果只有0和1,若关系成立,则结果为1;若关系不成立,则结果为0.因关系式10!=9成立,所以表达式的结果为1.
14.设a为整型变量,下列C表达式中,不能表达数学关系式:10<a<15的是( ) A.10<a<15 B.a==11||a==12|| a==13|| a==14 C.a>10&&a<15 D.!(a<=10)&&!(a>=15)
12.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( ) A.6 B.9 C.8 D.12
解:A.与上一小题解答的理由相同,表达式a+++b+++c++被系统理解成(a++)+(b++)+(c++).表达式"变量++"的值是变量的原来值,所以在变量a,b,c均为2的前题下,执行上述表达式,得到结果 为6.