文档库 最新最全的文档下载
当前位置:文档库 › 谭浩强c语言程序设计习题集

谭浩强c语言程序设计习题集

谭浩强c语言程序设计习题集
谭浩强c语言程序设计习题集

目录

重要次重要重复或欲删除基础第一章C语言概述

1.1 选择题

1.2 填空题

第二章数据类型、运算符与表达式

2.1 选择题

2.2 填空题

第三章最简单的C程序设计

3.1 选择题

3.2 填空题

第四章逻辑运算和判断选取控制

4.1 选择题

4.2 填空题

4.3 编程题

第五章循环控制

5.1 选择题

5.2 填空题

5.3 编程题

第六章数组

6.1 选择题

6.2 填空题

6.3 编程题

第七章函数

7.1 选择题

7.2 填空题

7.3 编程题

第八章编译预处理

8.1 选择题

8.2 填空题

8.3 编程题

第九章指针

9.1 选择题

9.2 填空题

9.3 编程题

第十章结构体和共用体

10.1 选择题

10.2 填空题

10.3 编程题

第十一章位运算

11.1 选择题

11.2 填空题

11.3 编程题

第十二章文件

12.1 选择题

12.2 填空题

12.3 编程题

第一章C语言概述

1.1 选择题

*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.4 C语言规定:在一个源程序中,main函数的位臵 C 。

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

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

参考答案:C

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

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

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

参考答案:B

参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main 函数为主程序,显然,严格地讲还是B更为符合C语言的规则。

1.2 填空题

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

参考答案:函数

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

参考答案:main()函数

1.8在一个C源程序中,注释部分两侧的分界符分别为【1】和【2】。参考答案:【1】/* 【2】*/

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

参考答案:【1】scanf 【2】printf

第二章数据类型、运算符与表达式

2.1 选择题

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

A)char

B)char=int

C)char

D)char=int=long<=float

参考答案:A

分析:在不同的计算机系统中,不同的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)4 B)16 C)32 D)52

参考答案:C

参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。

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

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

参考答案:B

参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。

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

A)define B)getc C)include D)while

IF char scanf go

type printf case pow

参考答案:A

参考分析:是关键字的有:char、case、while。

auto 局部变量(自动储存)

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

case switch语句中选择项

char单字节整型数据

const定义不可更改的常量值

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

default switch语句中的默认选择项

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)auto B)switch C)signed D)if

enum typedef union struct

include continue scanf type

参考答案:B

参考分析:不是关键字的:include、scanf、type

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

A)A B)float C)b-a D)_123

P_0 la0 goto temp

do _A int INT

参考答案:C

参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。**2.7C语言中的标识符只能由字母、数字和下划线三种字符组

成,且第一个字符。

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

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

参考答案:C

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

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

A)160 B)-0xcdf C)-01 D)-0x48a

-0xffff 01a 986,012 2e5

011 0xe 0668 0x

参考答案:A

参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。*2.9下面四个选项中,均是不合法的整型常量的选项是。

A)--0f1 B)-0Xcdf C)-018 D)-0x48eg

-0xffff 017 999 -068

0011 12,456 5e2 03f

参考答案:D

参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常量前面允许不允许加上--号,是否可以负负得正,显然不可以,--在C中是自减运算,它只适用于变量;B1:0Xcdf X大写也可以!C3:5e2是个实型数。

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

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

0.12 2e4.2 123e4 .234

e3 .e5 0.0 1e3

参考答案:B

参考分析:不合法的有A3,B,D1。部分解释:A1,D2:C语言中小

数点前面或后面的0可以省略。但是不能只有小数点自身;A3,B3,D1:e的前后必须有合法数字。1.e2 .1e2合法,.e2不合法;B1:123是整型数,不是浮点数。

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

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

5e-9.4 12e-4 1.2e-.4 .8e-4

03e2 -8e5 +2e-1 5.e-0

参考答案:B

参考分析:不合法的有A2:阶码不能为小数;A3:浮点数的尾数及阶码不能用八进制数表示;C1:e后必须有整数,C2:阶码不能为小数;D1:缺少尾数。

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

A)'\'' B)'\' C)'\018' D)'\\0'

'\\' '\017' '\f' '\101'

'\n' '\"' 'xab' 'x1f'

参考答案:A

参考分析:"\"后面的数字,c总是按照八或十六进制解释。由于c 支持扩展ASCII字符集,所以,八进制数范围在0~377,十六进制数范围在00~ff。

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

A)'\"' B)'\1011' C)'\011' D)'\abc'

'\\' '\' '\f' '\101'

'\xf' '\a' '\}' 'x1f'

参考答案:B

参考分析:不合法的有B1,B2,B3,C3,D1,D3;但B3和C3值得讨论,实际上,'\a'是一个转义字符(07 beep)。C中只有少数字母是转义字符,大多数字母不是。像'\c'就不是,它就是字符c自身,非转义字母加"\"也仅表示它本身。C3'\}'也表示自身。本题的命题人显然不

知道'\a'也是转义字符。

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

A)"c" B)'\\'' C)'W' D)""

参考答案:C

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

A)016 B)0abc C)010 D)0a12

0x8f 017 -0x11 7ff

018 0xa 0x16 -123

参考答案:D

参考分析:不正确的有A3:非法八进制数;B1、D1、D2:缺少x;D3是十进制数。

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

A)-10 B)0abc C)0010 D)0a12

0x8f -017 -0x11 -0x123

-011 0xc 0xf1 -0xa

参考答案:C

参考分析:不正确的有A1:这是十进制数;B1、D1:缺少x

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

A)0.0 B)"a" C)'3' D)+001

0f 3.9e-2.5 011 0xabcd

8.9e 1e1 0xFF00 2e2

'&' '\"' 0a 50.

参考答案:D

参考分析:不正确的有A2、C4:不是ox打头;A3:e后不是整数;B1是字符串;B2:2.5不是整数。

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

A)'abc' B)"12'12" C)"0" D)" "

参考答案:A

参考分析:与PASCAL不同,B)字符串内的单引号不需双写。C语

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

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

A) e x^2/2 exp(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.5 sqrt((pow(sin(x*3.14159/180),2.5))

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

参考答案:C

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

A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3

参考答案:C

参考分析:注意表达式的计算顺序

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

int k,a,b;

unsigned long w=5;

double x=1.42;

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

参考答案:A

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

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

int i=8,k,a,b;

unsigned long w=5;

double x=1.42,y=5.2;

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

参考分析:B)表达式不能出现在赋值号右侧;C)x是实型数,不能

进行取余运算;D)应将float用括号扩起来(强制类型转换)。*2.23以下不正确的叙述是。

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

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

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

而b中的值不变

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

实型变量只能输入实型数值

参考答案:D

参考分析:整型变量可以输入实型数值,实型变量也可以输入整型数值

2.24以下正确的叙述是。

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

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

许存放整型数

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

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

参考答案:D

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

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

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

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

参考答案:B

参考分析:C不是赋值表达式,是逗号表达式,赋值仅是其中的一部分。严格说来,B也不是赋值表达式,它是由两个赋值表达式组成的逗号表达式。

**2.26已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2的值为。

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

参考答案:A

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

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

A)/ B)++ C)!= D)%

参考答案:D

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

*2.28若以下变量均是整型,且num=sum=7;则计算表达式sUM=num++, sUM++,++num后sum的值为。

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

参考答案:A

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

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

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

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

参考答案:D

参考分析:参考答案很明确地表明了,C语言中各种类型在内存中所占用的字节数由所用机器字长决定。通常在PC机中字符、整型、实型所占用的内存空间大小为1、2、4个字节。

2.30若有说明语句:char c='\72';则变量c 。

A)包含1个字符。B)包含2个字符。

C)包含3个字符。D)说明不合法,c的值不确定。

参考答案:A

参考分析:转义字符'\72'为字符':'。

2.31若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。

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

参考答案:A

参考分析:计算时要注意其结合性和优先级。

*2.32 sizeof(float)是。

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

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

参考答案:B

参考分析:算术表达式的类型由表达式计算结果的类型决定

*2.33设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f 值的数据类型为。

A)int B)float C)double D)不确定

参考答案:C

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

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

A)'as' B)'\\' C)-0x18 D)0xabc

-0fff '\01' 01177 '\0'

'\0xa' 12,456 0xf "a"

参考答案:A

参考分析:A3转义字符以十六进制描述时,前面不能加0。非法的还有B3

*2.35若有代数式√y x+l o g10y,则正确的C语言表达式是。

A)s(y)))

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

C)s qrt(fabs(pow(x,y)+log10(y)))

D)s qrt(abs(pow(x,y)+log10(y)))

参考答案:A

参考分析:c语言中整型和实型的绝对值函数各自独立,为abs 和fabs;pow为一系统函数pow(y,x)=>y x。

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))

参考答案:D

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

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

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

参考答案:D

参考分析:计算机系统不能存储字符本身,存储的是字符的ASCII 码。

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

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

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

参考答案:B

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

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

A)int B)float C)double D)不确定

参考答案:C

参考分析:表达式的类型由表达式结果的类型决定。

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

A)0-255 B)0-32767 C)0-65535 D)0-2147483647 参考答案:C

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

2.41设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为。

A)float B)char C)int D)double

参考答案:D

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

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

int k=7,x=12;

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

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

参考答案:D

参考分析:A的值为0,B、C两个表达式相同,值为2,只有D的值

为3。

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

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

C)x=6,x+1,y=6,x+y D)y=6,y+1,x=y,x+1

参考答案:C

参考分析:经计算可知,只有C的值为12,不为7。

2.2 填空题

2.44 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为【1】;一个int型数据在内存中所占的字节数为【2】。

参考答案:【1】1 【2】2

2.45 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为【1】;一个double型数据在内存中所占的字节数为【2】。

参考答案:【1】4 【2】8

2.46 若有以下定义,int m=5,y=2;则计算表达式y+=y-=m*=y后y 的值是【】。

参考答案:-16

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

参考答案:-32768~32767

2.48 在C语言中的实型变量分为两种类型,它们是【1】和【2】。参考答案:【1】float 【2】double

*2.49C语言所提供的基本数据类型包括:单精度型、双精度型、【1】、【2】和【3】。参考答案:字符型整型枚举

参考分析:基本类型又称简单类型,若分为四种则为字符、整型、实型和枚举,若分为五种,则将实型分为单精度型和双精度型两种。

*2.50若s是int型变量,则表达式s%2+(s+1)%2的值为【】。参考答案:1

参考分析:无论s是奇数还是偶数表达式的值只能是1。

*2.51若a是int型变量,则表达式(a=4*5,a*2),a+6的值为【】。

参考答案:26

*2.52若x和a均是整型变量,则计算表达式(1)后的x值为【1】,计算表达式(2)后x的值为【2】。

(1)x=(a=4,6*2)

(2)x=a=4,6*2

参考答案:【1】12 【2】4

2.53 若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a的值为【1】,b的值为【2】,c的值为【3】。

参考答案:【1】6 【2】4 【3】2

2.54 若a是int 型变量,且a的初值为6,则计算表达式a+=a-=a*a 后a的值为【】。

参考答案:-60

2.55 若a是int型变量,则计算表达式a=25/3%3后a的值为【】。参考答案:2

2.56 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为【1】,n的值为【2】。

参考答案:【1】10 【2】6

2.57 若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【】。

参考答案:5.5

2.58 若有定义:int a=2,b=3;float x=

3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为【】。

参考答案:3.5

2.59 若有定义:char c='\010';则变量c中包含的字符个数为【】。参考答案:1

2.60 若有定义:int x=3,y=2;float a=2.5,b=

3.5;则表达式(x+y)%2+(int)a/(int)b的值为【】。

参考答案:1

2.61 若有定义:int x=12,n=5;则计算表达式x%=(n%=2)后x的值为【】。

参考答案:0

2.62 若有定义:int a,b;表达式a=2,b=5,a++,b++,a+b的值为【】。参考答案:9

2.63 C语言中的标识符只能由三种字符组成,它们是【1】、【2】和【3】。

参考答案:【1】字符【2】数字【3】下划线

*2.64已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-'3'的值为【】。

参考答案:f

参考分析:表达式计算中取各个字符的ASCII码值进行计算,但ch的值是以计算结果为码值的字符。

2.65 把以下多项式写成只含七次乘法运算,其余皆为加、减运算的表达式为【】。

参考答案:((((((5*x+3)*x-4)*x+2)*x+1)*x-6)*x+1)*x+10

2.66 若double x=

3.0,y=2.0;则表达式pow(y,fabs(x))的值为【】。参考答案:8.0

2.67 若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则计算表达式k=(e+f)/g+ sqrt((double)n)*1.2/g+m后k的值是【】。

参考答案:13.7

2.68 表达式8/4*(int)2.5/(int)(1.25*(

3.7+2.3))值的数据类型为( )。参考答案:int型

*2.69表达式pow(2.8,sqrt(double(x)))值的数据类型为【】。

参考答案:double型

*2.70假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数表达式是【】。

参考答案:m/10%10*100+m/100*10+m%10

参考分析:数字各个位的分离可以先整除再取余,也可以先取余再整除。

第三章最简单的C程序设计

3.1 选择题

3.1 putchar函数可以向终端输出一个。

A)整型变量表达式B)实型变量值

C)字符串D)字符或字符型变量值

参考答案:D

参考分析:putchar函数的作用是输出一个字符,可以是常量或变量。

*3.2以下程序的输出结果是。

printf("\n*s1=%15s*","chinabeijing");

printf("\n*s2=%-5s*","chi");

A)*s1=chinabeijing□□□* B)*s1=chinabeijing□□□*

*s2=**chi* *s2=chi□□*

C) *s1=□□chinabeijing* D) * s1=□□□chinabeijing*

*s2=□□chi* *s2=chi□□*

参考答案:D

参考分析:-:数据左齐,右补空格。

3.3 printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式【1】;如果字符串长度小于5,则输出按方式【2】。

A)从左起输出该字符串,右补空格B)按原字符串长从左向右全部输出

C)右对齐输出该字符串,左补空格D)输出错误信息

参考答案:【1】B 【2】C

*3.4已有定义int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是。

A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的

D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

参考答案:D

参考分析:答案B基本上是正确的,但是%x不能正确的输出长整型数据。

*3.5以下C程序正确的运行结果是。

main()

{ long y=-43456;

printf ("y=%-8ld\n",y);

printf ("y=%-08ld\n",y);

printf ("y=%08ld\n",y);

printf ("y=%+8ld\n",y);

}

A)y=□□-43456 B)y=-43456

y=-□□43456 y=-43456

y=-0043456 y=-0043456

y=-43456 y=+□-43456

C)y=-43456 D) y=□□-43456

y=-43456 y=-0043456

y=-0043456 y=00043456

y=□□-43456 y=+43456

参考答案:C

参考分析:0:数据左侧必须充满,给定数据不足时,前面补0。

+:数据前面显示符号位。

*3.6以下C程序正确运行的结果是。

main()

{ int y=2456;

printf("y=%3o\n",y);

printf("y=%8o\n",y);

printf("y=%#8o\n",y);

}

A)y=□□□2456 B)y=□□□4630

y=□□□□□□□□2456 y=□□□□□□□□4630

y=########2456 y=########4630

C)y=2456 D)y=4630

y=□□□□2456 y=□□□□4630

y=□□□02456 y=□□□04630

参考答案:D

参考分析:#要求输出数据的类型特征符号。

3.7以下C程序正确的运行结果是。

main()

{long y=23456;

printf("y=%3l x\n",y);

printf("y=%8l x\n",y);

printf("y=%#8l x\n",y);

}

A)y=5ba0 B)y=□□□5ba0

y=□□□□5ba0 y=□□□□□□□□5ba0

y=□□0x5ba0 y=□□0x5ba0

C)y=5ba0 D)y=5ba0

y=5ba0 y=□□□□5ba0

y=0x5ba0 y=####5ba0

参考答案:A

分析:长整型数据输出应当加修正字符l,如果不加l仅能输出数据的低两个字节,高字节数据不能输出。

*3.8若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是。

A)scanf("%d%lx,%le",&x,&y,&z);

B)scanf("%2d*%d%lf",&x,&y,&z);

C)scanf("%x%*d%o",&x,&y);

D)scanf("%x%o%6.2f",&x,&y,&z);

参考答案:D

参考分析:A)首先读第一个十进制数赋给变量x,读第二个长十六进制数赋给变量y(此时有自动赋值转换),再读入格式规定的第二和第三个数据间的间隔符号逗号,最后读入第三个double型数据赋给变量z。B)首先读入2个宽度的十进制数赋给变量x,再读入格式规定的第一和第二数据间的间隔符号星号,然后读入第二个十进制整数赋给变量y,然后读入第三个double型数据赋给变量z。

C)读入第一个十六进制数赋给变量x,然后虚读一个十进制数不赋给任何变量,最后读入一个八进制数赋给变量y。D)%6.2f不符合格式规定,即不能规定读入数据的小数点后的数字位数。

*3.9已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是。

(完整版)谭浩强c程序设计课后习题答案

谭浩强c++程序设计课后答案 娄警卫

第一章1.5题 #include using namespace std; int main() { cout<<"This"<<"is"; cout<<"a"<<"C++"; cout<<"program."; return 0; 1.6题 #include using namespace std; int main() { int a,b,c; a=10; b=23; c=a+b; cout<<"a+b="; cout< using namespace std; int main() { int a,b,c; int f(int x,int y,int z); cin>>a>>b>>c; c=f(a,b,c); cout< using namespace std; int main() { int a,b,c; cin>>a>>b; c=a+b; cout<<"a+b="< using namespace std; int main() { int a,b,c; int add(int x,int y); cin>>a>>b; c=add(a,b); cout<<"a+b="<

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计谭浩强第四版期末复习重点

C语言程序设计谭浩强第四版期末复习重点 Newly compiled on November 23, 2020

第一章 程 序设计和C 语言 .什么是计算机程序 程序.. :一组计算机能识别和执行的指令。只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作 计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。 什么是计算机语言 计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。 计算机语言发展阶段:机器语言(由0和1组成的指令) 符号语言(用英文字母和数字表示指令) 高级语言(接近于人的自然语言和数学语言) 面向过程的语言(非结构化的语言、结构化语言);面向对象的语言 语言的发展及其特点 C 语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。因此C 语言问世以后得到迅速推广。 C 语言主要特点: 语言简洁、紧凑,使用方便、灵活。(只有37个关键字、9种控制语句;程序书写形式 自由,源程序短) 运算符丰富。(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达 式类型多样化) 数据类型丰富。(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。)

具有结构化的控制语句。(如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言) 语法限制不太严格,程序设计自由度大。(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查) 允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言) 用C语言编写的程序可移植性好。(C的编译系统简洁,很容易移植到新系统;在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码;几乎所有计算机系统都可以使用C语言) 生成目标代码质量高,程序执行效率高。 1.C语言允许用两种注释方式:计算法 3.编写程序 4.对源程序进行编辑、编译和连接 5. 运行程序,分析结 6.编写程序文档 第二章算法——程序的灵魂 一个程序主要包括以下两方面的信息: (1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,这就是数据结构。 (2) 对操作的描述。即要求计算机进行操作的步骤,也就是算法。 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。 着名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:算法 + 数据结构 = 程序

C语言程序设计习题集

目录 第一章C语言基础知识 (1) 第二章C语言程序设计的初步知识 (3) 第三章顺序结构程序设计 (5) 第四章选择结构程序设计 (9) 第五章循环结构程序设计 (12) 第六章数组 (16) 第七章函数 (19) 第八章指针 (23) 第九章结构体与共用体 (27) 第十章文件 (30) 模拟试题一 (33) 第一章答案 (39) 第二章答案 (40) 第三章答案 (40) 第四章答案 (41) 第五章答案 (42) 第六章答案 (44) 第七章答案 (45) 第八章答案 (47) 第九章答案 (48) 第十章答案 (49) 模拟试题一答案 (52)

第一章C语言基础知识 一、选择题 1.C语言规定,必须用作为主函数名。 A)Function B)include C)main D)stdio 2.是C程序的基本构成单位。 A)函数B) 函数和过程C) 超文本过程D) 子程序3.下列说法正确的是。 A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可 B)一个函数的函数体必须要有执行部分,可以没有变量定义 C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 D)以上都不对 4.下列说法正确的是。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执 行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数 开始的 5.下列说法正确的是。 A)在执行C程序时不是从mian函数开始的 B)C程序书写格式严格限制,一行内必须写一个语句 C)C程序书写格式自由,一个语句可以分写在多行上 D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号 6.在C语言中,每个语句和数据定义是用结束。 A)句号B)逗号C)分号D)括号 7.下列字符串是标识符的是。 A)_HJ B)9_student C)long D)LINE 1 8.以下说法正确的是。 A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 9.不是C语言提供的合法关键字。 A)switch B)print C)case D)default

C程序设计第四版谭浩强完整版课后习题答案

C程序设计第四版谭浩强完整版课后习题答案集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 向屏幕输出文字. #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } P008 求两个数的和. #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum);

return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); }

P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); }

C程序设计第四版谭浩强_习题&例题第7章

第7章函数 例7.1 #include int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("***********************************\n"); } void print_message() { printf("How do you do!\n"); } 例7.2 int max(int x,int y) { int z; z=x>y?x:y; return(z); } #include int main() { int max(int x,int y); int a,b,c; printf("please enter two integer number:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; }

例7.3 #include int main() { int max(float x,float y); float a,b; int c; printf("please enter two integer number:"); scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return(z); } 例7.4 #include int main() { float add(float x,float y); float a,b,c; printf("please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) { float z; z=x+y; return(z); }

C语言程序设计习题集3

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的就是_B__。 A 在程序中凡就是以“#”开始的语句行都就是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX就是合法的宏定义命令行 D C程序对预处理命令行的处理就是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的就是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果就是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果就是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果就是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_就是对指针变量p的正确说明与初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值就是_A__。 A 6 B 2 C 4 D 8 8 下面就是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

《C语言程序设计》_谭浩强版教案

《C 语言程序设计》教案 职称: 助教 ____________ 单 位:湖南理工职业技术学院 学院(教研室):风能工程学院 工业机器人专业 授课教师: 周常欣

教 学 重 占 八、、 和 难 占 八、、 一、 程序设计和 C 语言 重点:计算机程序、计算机语言、 C 语言编译软件的安装、最简单的 C 语言程序 二、 算法:程序的灵魂 重点:简单的算法举例、算法的特性、用流程图表示算法。 三、 顺序结构程序设计 重点:C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出 中最常用的 控制格式。 四、 选择结构程序设计 重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、 二条分支语句的格 式及基本应用、多分支的选择语句。 五、 循环结构程序设计 重点:C 构成循环的四种方法,尤其是后三种方法、 break 与continue 语句的基本作 用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套; break 与continue 语句。 六、 数组 重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处 理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、 函数 重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的 递归调 用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调 用;数组作 为函数的参数、变量的存储类别与作用域。 八、 指针 重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字 符串、指针 数组与二级指针;指针的应用 九、 建立自己的数据类型 重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型 十、文件 重点:文件的基本知识、 fopen 、fclose 函数打开与关闭文件、顺序读与数据文件、 随机读写数据文件 难点:用二进制方式向文件读写一组数据。 十一、常见错误分析 重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。 十二、数组高级应用 重点:不定长数组与二维数组的应用 难点:不定长数组与二维数组的应用 十三、综合应用 重点:数组、if 语句、循环语句、函数知识的综合应用 难点:二维数组、指针 教材、 参 考书 教材:《C 程序设计》(第四版) 谭浩强著 清华大学出版社2010年6月 参考书:《C 程序设计语言》 Kernighan&Ritchie 机械工业出版社 《C 语言程序设计》教案 第1-2课时

C语言程序设计第四版第六章答案_谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

04737c程序设计试题及答案20200_图文

全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.对C++中主函数描述正确的是( ) A.名称为main,可为多个 B.名称不限,可为多个 C.名称为main,必须有且只能有一个 D.名称不限,必须有且只能有一个 2.调用声明为int result(int a,int b)的函数时,正确的方法是( ) A.result(1,2) B.result(1) C.result(0.1,0.3) D.result(1,2,3) 3.用于包含C++标准库iostream的预处理指令是( ) A.#define B.#include C.#define ‘iostream’ D.#include‘iostream’ 4.无类型标识符是指( ) A.void B.bool C.short D.long 5.从本质上看,引用是被引用变量的( ) A.拷贝 B.别名 C.复制 D.克隆 6.下面关于数组的初始化正确的是( ) A.char str[ ]={'a','b','c'}; B.char str[2]={'a','b','c'}; C.char str[1][2]={{'a','b'},{'e','d'}}; D.char str[ ][ ]={'a','b','c'}; 7.C++类中定义的成员默认访问属性为( ) A.public B.private C.protected D.friend 1文档来源为:从网络收集整理.word版本可编辑.

谭浩强--C语言程序设计(第二版)习题答案

C语言程序设计(第2版)课后习题答案 第一章 1.请参照本章例题,编写一个C程序,输出以下信息: ************************** Very good! ************************** 解: #include void main() { printf("**************************"); printf("\n"); printf("Very good!\n"); printf("\n"); printf("**************************"); } 2.编写一个C程序,输入a、b、c三个值,输出其中最大值。 解: #include void main() { int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max #include void main() { double P, r=0.1, n=10; P=pow((1+r), n);

printf("%lf\n", P); } 3.请编程序将"China"译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。例如,字母"A"后面第4个字母是"E","E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为'C'、'h'、'i'、'n'、'a',经过运算,使c1、c2、c3、c4、c5分别变为'G'、'l'、'm'、'r'、'e',并输出。 解: #include void main() { char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 第三章 3.用下面的scanf函数输入数据,使a=3, b=7, x=8.5, y=71.82, c1='A', c2='a'。问在键盘上如何输入? 解: #include void main() { int a, b; float x, y; char c1, c2; scanf("a=%d, b=%d", &a, &b); scanf(" x=%f, y=%e", &x, &y); scanf(" c1=%c, c2=%c",&c1, &c2); } a=3, b=7 x=8.5, y=71.82 c1=A, c2=a 5. 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后2位数字。请编程序。 解: #include void main() { float r,h,C1,Sa,Sb,Va,Vb; scanf("%f,%f",&r,&h);

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计试题集及其答案

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

桂林电子科技大学C语言程序设计习题集及答案

一 单项选择题(每题2分,共44分) 1 以下叙述正确的是__C _。 A C 程序基本组成单位是语句 B C 程序每一行只能写一个语句 C 简单C 语句必须以分号作为结束符 D 注释语句可以嵌套 2 一个C 语言程序是从_B __开始执行的。 A 程序中第一个函数 B 名为main 的函数 C 包含文件(头文件)的第一个函数 D 程序中的第一个语句 3 请选出合法的C 语言赋值语句_B __。 A a=b=58 B i++; C a=58,b=58 D k=int(a+b); 4 下面标识符中,合法的用户标识符是 _B __。 A 1abc B include C a-b-c123 D char 5 以下所列的C 语言整形常量中,正确的是_A __。 A 0x10 B 0976 C 076L D 01ff 6 C 语言中下列运算符的操作数必须为整型的是_A __。 A % B ++ C / D = 7 设a 和b 均为int 型变量,则执行以下语句后的输出为_B __。 int a=20; int b=3; printf("%d\n ",a+=(b%=2)); A 20 B 21 C 0 D 23 8 已知int i;,则执行语句 i=2.6;后,i 的值为_A __。 A 2 B 3 C 2.6 D 不确定 9 以下合法的字符常量为_D __。 A 'ab ' B '\482' C '\' D '\xaf ' 10 若y 为int 型变量,则执行以下语句后,y 的值是 _C __。 y=8; y+=y-=y*y; A 64 B –56 C –112 D –48 11 以下合法的浮点型常量是_D __。 A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +5 12 设int 数据占用两个字节,float 数据占用四个字节,double 数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为__A _。 printf("%d ",sizeof(a*b)+2/5); A 4 B 8 C 6 D 7 13 设int 型占2个字节,且int i=-2;,则语句printf("%u ",i);的输出结果为_C __。 A 0 B -2 C 65534 D 65535 14 若x 、y 、z 均为整型常量,且a=100,则执行下列语句后的z 值为_A _。 x=a++; y=--a; z=x+y-a--; A 100 B 400 C 200 D 300 15 若有以下定义和语句:int u=010,v=0x10,w=10,printf("%d,%d,%d\n ",u,v,w);,则输出结果是_A __。 A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,10 16 设x 、y 为int 型变量,则执行下列语句后,y 的值是__A _。 x=5; y=x++*x++; y=--y*--y; A 529 B 2401 C 1209 D 625 17 假设在程序中a,b,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 abc 1 的表达式是__D __。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

相关文档
相关文档 最新文档