谭浩强C语言程序设计习题集Word文件下载.doc

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

谭浩强C语言程序设计习题集Word文件下载.doc

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

谭浩强C语言程序设计习题集Word文件下载.doc

A

参考分析:

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

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

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

*1.2以下叙述正确的是。

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

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

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

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

C

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

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

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

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

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

1.3以下叙述不正确的是。

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

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

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

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

D

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

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

1.4C语言规定:

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

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

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

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

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。

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下面四个选项中,均是合法转义符的选项是。

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)floatC)doubleD)不确定

表达式的类型由表达式结果的类型决定。

2.40设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为。

A)0-255B)0-32767C)0-65535D)0-2147483647

各种数据类型的取值范围是由其字长决定,字长确定的情况下,有符号数与无符号数的范围应当容易计算得知。

2.41设有说明:

charw;

intx;

floaty;

doublez;

则表达式w*x+z-y值的数据类型为。

A)floatB)charC)intD)double

虽然本题各变量没有具体的变量值,由于参与运算的变量中z变量为double型,表达式计算的结果肯定为double型。

2.42若有以下定义,则能使值为3的表达式是。

intk=7,x=12;

A)x%=k%=5B)x%=k-k%5

C)x%=(k-k%5)D)(x%=k)-(k%=5)

A的值为0,B、C两个表达式相同,值为2,只有D的值为3。

2.43设以下变量均为int类型,则值不等于7的表达式是。

A)x=y=6,x+y,x+1B)x=

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

当前位置:首页 > 求职职场 > 简历

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

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