谭浩强c语言程序设计习题集Word格式文档下载.doc

上传人:聆听****声音 文档编号:426971 上传时间:2023-04-28 格式:DOC 页数:198 大小:809.50KB
下载 相关 举报
谭浩强c语言程序设计习题集Word格式文档下载.doc_第1页
第1页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第2页
第2页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第3页
第3页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第4页
第4页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第5页
第5页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第6页
第6页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第7页
第7页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第8页
第8页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第9页
第9页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第10页
第10页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第11页
第11页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第12页
第12页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第13页
第13页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第14页
第14页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第15页
第15页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第16页
第16页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第17页
第17页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第18页
第18页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第19页
第19页 / 共198页
谭浩强c语言程序设计习题集Word格式文档下载.doc_第20页
第20页 / 共198页
亲,该文档总共198页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

谭浩强c语言程序设计习题集Word格式文档下载.doc

《谭浩强c语言程序设计习题集Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《谭浩强c语言程序设计习题集Word格式文档下载.doc(198页珍藏版)》请在冰点文库上搜索。

谭浩强c语言程序设计习题集Word格式文档下载.doc

12.1选择题

12.2填空题

12.3编程题

*1.1一个C程序的执行是从A。

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

参考答案:

A

参考分析:

C语言总是从main函数开始,main函数结束。

但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是C。

A)在C程序中,main函数必须位于程序的最前面

B)在C程序的每一行只能写一条语句

C)C语言本身没有输入输出语句

D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

C

C程序对main函数的位置没有任何要求;

其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;

C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

因此,如果注释中存在错误,系统是不可能发现的。

另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。

1.3以下叙述不正确的是D。

A)一个C源程序可由一个或多个函数组成

B)一个C源程序必须包含一个main函数

C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

D

C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。

C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。

1.4C语言规定:

在一个源程序中,main函数的位置C。

A)必须在最开始B)必须在系统调用的库函数的后面

C)可以任意D)必须在最后

*1.5一个C语言程序是由B。

A)一个主程序和若干个子程序组成B)若干函数组成

C)若干过程组成D)若干子程序组成

B

通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。

尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。

1.6C源程序的基本单位是【】。

函数

1.7一个C源程序中至少应包括一个【】。

main()函数

1.8在一个C源程序中,注释部分两侧的分界符分别为【1】和【2】。

【1】/*【2】*/

1.9在C语言中,输入操作是由库函数【1】完成的,输出操作是由库函数【2】完成的。

【1】scanf【2】printf

**2.1C语言中(以16位PC机为例),各数据类型的存储空间长度的排列顺序为。

A)char<

int<

long<

=float<

doubleB)char=int<

double

C)char<

long=float=doubleD)char=int=long<

分析:

在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:

char<

=short<

=int<

=long<

=float<

=double,只有A符合16位PC机中的具体环境。

*2.2若x、i、j和k都是int型变量,则计算下面表达式后,x的值为。

x=(i=4,j=16,k=32)

A)4B)16C)32D)52

逗号表达式的计算结果是最后一个表达式的值。

k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。

**2.3假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b)的值是。

A)7B)8C)5D)2

b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。

2.4下列四组选项中,均不是C语言关键字的选项是。

A)defineB)getcC)includeD)while

IFcharscanfgo

typeprintfcasepow

是关键字的有:

char、case、while。

auto局部变量(自动储存)

break无条件退出程序最内层循环

caseswitch语句中选择项

char单字节整型数据

const定义不可更改的常量值

continue中断本次循环,并转向下一次循环

defaultswitch语句中的默认选择项

do用于构成do.....while循环语句

double定义双精度浮点型数据

else构成if.....else选择程序结构

enum枚举

extern在其它程序模块中说明了全局变量

float定义单精度浮点型数据

for构成for循环语句

goto构成goto转移结构

if构成if....else选择结构

int基本整型数据

long长整型数据

registerCPU内部寄存的变量

return用于返回函数的返回值

short短整型数据

signed有符号数

sizoef计算表达式或数据类型的占用字节数

static定义静态变量

struct定义结构类型数据

switch构成switch选择结构

typedef重新定义数据类型

union联合类型数据

unsigned定义无符号数据

void定义无类型数据

volatile该变量在程序中执行中可被隐含地改变

while用于构成do...while或while循环结构

2.5下列四组选项中,均是C语言关键字的选项是。

A)autoB)switchC)signedD)if

enumtypedefunionstruct

includecontinuescanftype

不是关键字的:

include、scanf、type

*2.6下面四个选项中,均是不合法的用户标识符的选项是。

A)AB)floatC)b-aD)_123

P_0la0gototemp

do_AintINT

合法的有:

A、P_0、la0、_A、_123、temp、INT。

**2.7C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。

A)必须为字母B)必须为下划线C)必须为字母或下划线

D)可以是字母、数字和下划线中的任一种字符

教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。

*2.8下面四个选项中,均是合法整型常量的选项是。

A)160B)-0xcdfC)-01D)-0x48a

-0xffff01a986,0122e5

0110xe06680x

不合法的B2,C2,C3,D2。

解释:

A2:

-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;

C3:

0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;

D3:

0x显然后面缺少数值,但在TC中是允许的。

*2.9下面四个选项中,均是不合法的整型常量的选项是。

A)--0f1B)-0XcdfC)-018D)-0x48eg

-0xffff017999-068

001112,4565e203f

不合法的A1,B3,C1,C3,D。

A1:

--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常量前面允许不允许加上--号,是否可以负负得正,显然不可以,--在C中是自减运算,它只适用于变量;

B1:

0XcdfX大写也可以!

5e2是个实型数。

*2.10下面四个选项中,均是不合法的浮点数的选项是。

A)160.B)123C)-.18D)-e3

0.122e4.2123e4.234

e3.e50.01e3

不合法的有A3,B,D1。

部分解释:

A1,D2:

C语言中小数点前面或后面的0可以省略。

但是不能只有小数点自身;

A3,B3,D1:

e的前后必须有合法数字。

1.e2.1e2合法,.e2不合法;

123是整型数,不是浮点数。

*2.11下面四个选项中,均是合法的浮点数的选项是。

A)+1e+1B)-.60C)123eD)-e3

5e-9.412e-41.2e-.4.8e-4

03e2-8e5+2e-15.e-0

不合法的有A2:

阶码不能为小数;

A3:

浮点数的尾数及阶码不能用八进制数表示;

C1:

e后必须有整数,C2:

D1:

缺少尾数。

*2.12下面四个选项中,均是合法转义符的l选项是。

A)'

\'

'

B)'

C)'

\018'

D)'

\\0'

'

\\'

'

\017'

'

\f'

'

\101'

\n'

\"

xab'

'

x1f'

"

后面的数字,c总是按照八或十六进制解释。

由于c支持扩展ASCII字符集,所以,八进制数范围在0~377,十六进制数范围在00~ff。

*2.13下面四个选项中,均是不合法的转义符的选项是。

\1011'

\011'

\abc'

'

\xf'

\a'

'

\}'

不合法的有B1,B2,B3,C3,D1,D3;

但B3和C3值得讨论,实际上,'

是一个转义字符(07beep)。

C中只有少数字母是转义字符,大多数字母不是。

像'

\c'

就不是,它就是字符c自身,非转义字母加"

也仅表示它本身。

C3'

也表示自身。

本题的命题人显然不知道'

也是转义字符。

*2.14下面正确的字符常量是。

A)"

c"

B)'

W'

D)"

*2.15下面四个选项中,均是不正确的八进制或十六进制数的选项是。

A)016B)0abcC)010D)0a12

0x8f017-0x117ff

0180xa0x16-123

不正确的有A3:

非法八进制数;

B1、D1、D2:

缺少x;

D3是十进制数。

2.16下面四个选项中,均是正确的八进制或十六进制数的选项是。

A)-10B)0abcC)0010D)0a12

0x8f-017-0x11-0x123

-0110xc0xf1-0xa

不正确的有A1:

这是十进制数;

B1、D1:

缺少x

2.17下面四个选项中,均是正确的数值常量或字符常量的选项是。

A)0.0B)"

a"

C)'

3'

D)+001

0f3.9e-2.50110xabcd

8.9e1e10xFF002e2

&

0a50.

不正确的有A2、C4:

不是ox打头;

e后不是整数;

B1是字符串;

B2:

2.5不是整数。

2.18下面不正确的字符串常量是。

abc'

B)"

12'

12"

C)"

0"

D)"

"

与PASCAL不同,B)字符串内的单引号不需双写。

C语言中,在不引起误解的情况下,双引号界定的字符串里的单引号可以不加转义标志"

单引号界定的双引号字符也可以不加转义标志"

2.19对应以下各代数式中,若变量a和x均为double类型,则不正确的c语言表达式是。

A)ex^2/2exp(x*x/2)/sqr(2*3.14159)

√2π

B)½

(ax+a+x/4a)1.0/2.0*(a*x+(a+x)/(4*a))

C)√sinx2.5sqrt((pow(sin(x*3.14159/180),2.5))

D)x2-e5x*x-exp(5.0)

2.20若有代数式3ae/bc,则不正确的C语言表达式是。

A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3

注意表达式的计算顺序

2.21已知各变量的类型说明如下,则不符合C语言语法规定的表达式是。

intk,a,b;

unsignedlongw=5;

doublex=1.42;

A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)

不符合C语法规定的只有A,因为X为实型数。

2.22已知各变量说明如下,则符合C语言语法规定的表达式是。

inti=8,k,a,b;

doublex=1.42,y=5.2;

A)a+=a-=(b=4)*(a=3)B)a=a*3=2C)x%(-3)D)y=float(i)

B)表达式不能出现在赋值号右侧;

C)x是实型数,不能进行取余运算;

D)应将float用括号扩起来(强制类型转换)。

*2.23以下不正确的叙述是。

A)在C程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

C)若a和b类型相同,在计算表达式a=b后,b的值将放入a中,而b中的值不变

D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

整型变量可以输入实型数值,实型变量也可以输入整型数值

2.24以下正确的叙述是。

A)在C程序中,每行只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

C)在C程序中,无论是整数还是实数,都能被准确无误地表示

D)在C程序中,%是只能用于整数运算的运算符

注意它的描述,是只能用于整数运算,而不是整型数运算。

*2.25以下符合C语言语法的有赋值能力的表达式是。

A)d=9+e+f=d+9B)d=9+e,f=d+9

C)d=9+e,e++,d+9D)d=9+e++=d+7

C不是赋值表达式,是逗号表达式,赋值仅是其中的一部分。

严格说来,B也不是赋值表达式,它是由两个赋值表达式组成的逗号表达式。

**2.26已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='

A'

+'

6'

-'

;

后,c2的值为。

A)DB)68C)不确定的值D)C

表达式中的各字符以各自的ASCII码参与运算。

*2.27在C语言中,要求运算数必须是整型(数)的运算符是。

A)/B)++C)!

=D)%

理论上++运算都是针对整型(含字符型)的,尽管现在很多系统提供了对实型变量的增量运算。

*2.28若以下变量均是整型,且num=sum=7;

则计算表达式sUM=num++,sUM++,++num后sum的值为。

A)7B)8C)0D)10

注意sum和sUM不是一个变量(区分大小写)。

*2.29在C语言中,int、char和short三种类型数据在内存中所占用的字节数。

A)由用户自己定义B)均为两个字节

C)是任意的D)由所用机器的字长决定

参考答案很明确地表明了,C语言中各种类型在内存中所占用的字节数由所用机器字长决定。

通常在PC机中字符、整型、实型所占用的内存空间大小为1、2、4个字节。

2.30若有说明语句:

charc='

\72'

则变量c。

A)包含1个字符。

B)包含2个字符。

C)包含3个字符。

D)说明不合法,c的值不确定。

转义字符'

为字符'

2.31若有定义:

inta=7;

floatx=2.5,y=4.7;

则表达式x+a%3*(int)(x+y)%2/4的值是。

A)2.500000B)2.750000C)3.500000D)0.000000

计算时要注意其结合性和优先级。

*2.32sizeof(float)是。

A)一个双精度型表达式B)一个整型表达式

C)一种函数调用D)一个不合法的表达式

算术表达式的类型由表达式计算结果的类型决定

*2.33设变量a是整型,f是实型,i是双精度型,则表达式10+'

a'

+i*f值的数据类型为。

A)intB)floatC)doubleD)不确定

实型只要参与运算就自动转换为double型。

2.34下面四个选项中,均是非法常量的选项是。

as'

B)'

C)-0x18D)0xabc

-0fff'

\01'

01177'

\0'

\0xa'

12,4560xf"

A3转义字符以十六进制描述时,前面不能加0。

非法的还有B3

*2.35若有代数式√yx+log10y,则正确的C语言表达式是。

A)sqrt(fabs(pow(y,x)+log10(y)))

B)sqrt(abs(pow(y,x)+log10(Y)))

C)sqrt(fabs(pow(x,y)+log10(y)))

D)sqrt(abs(pow(x,y)+log10(y)))

c语言中整型和实型的绝对值函数各自独立,为abs和fabs;

pow为一系统函数pow(y,x)=>

yx。

2.36若有代数式|x3+lgx|,则正确的C语言表达式是。

A)fabs(x*3+log10(x))

B)abs(pow(x,3)+log10(x))

C)abs(pow(x,3.0)+log10(x))

D)fabs(pow(x,3.0)+log10(x))

以上两题均未说明x,y的类型,从表达式的性质可分析隐含为实型,因此应使用fabs。

*2.37在C语言中,char型数据在内存中的存储形式是。

A)补码B)反码C)原码D)ASCII码

计算机系统不能存储字符本身,存储的是字符的ASCII码。

*2.38设变量n为float,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入的表达式是。

A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0

C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0

m=n*100+0.5赋值过程中有实型转整型的自动转换。

2.39表达式18/4*sqrt(4.0)/8值的数据类型为。

A)intB)float

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2