非常好的C语言章节习题集带答案

更新时间:2024-06-16 05:43:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 认识C语言

二、习题

(一)、是非题

1.程序是指挥计算机进行各种信息处理任务的一组指令序列。

A.对 B.错

2.机器语言与硬件平台相关,但汇编语言和硬件平台无关。

A.对 B.错

3.编译型高级语言明显优于解释型高级语言。

A.对 B.错

4.C语言把高级语言的基本结构和低级语言的实用性紧密结合起来,不仅适合编写应用软

件,而且适于编写系统软件。 A.对 B.错

5.面向对象的程序设计方法明显优于面向过程的程序设计方法。

A.对 B.错

6.计算机算法要有一个明确的起点和确定的步骤序列。

A.对 B.错

7.main函数是C程序的入口,由计算机系统负责调用。

A.对 B.错

8.在C语言中,同一行上可以写一条或多条语句,但一条语句不能写在多行上。

A.对 B.错

9.在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。

A.对 B.错

10.注释语句会增加编译结果的复杂性,因此要尽量减少注释语句的数量。

A.对 B.错

11.声明变量的含义是通知编译系统为变量分配合适大小的存储空间。

A.对 B.错

12.C语言不允许使用关键字作为变量的名称,但可以使用保留字为变量命名。

A.对 B.错

13.符号常量提高了程序的可读性,但降低了程序维护的方便性。

A.对 B.错

14.变量声明把一个具体的标识符名称和计算机内存中的一个特殊的位置联系起来,同时确

定了该位置存储的信息类型。 A.对 B.错

15. C语言允许在同一条语句中定义多个相同类型的变量,其间用分号进行分隔。

A.对 B.错

1

16.在ISO/ANSI 1999规定中,允许将变量声明放在程序中的任何位置。

A.对 B.错

17.不同类型的数据在内存中所占存储单元的大小不同,内部存储方式不同,取值范围不

同,甚至能够参与的运算种类也不相同。 A.对 B.错

18.有符号和无符号整数的区别仅在于对数据最高位的解释不同。若最高位解释为数据位,

则为signed类型;若最高位解释为符号位,则为unsigned类型。 A.对 B.错

19.默认形式的实数常量的数据类型为float类型。

A.对 B.错

20.实型变量能表示的数字的有效位数是有限的。

A.对 B.错

21.sizeof( )是C语言提供的标准库函数,用于测试数据类型在系统中所占的字节数。

A.对 B.错

22.使用转义字符可输出ASCII码表中的任一字符。

A.对 B.错

23.char类型数据内部采用整数存储方式,因此它和int型数据可以互为通用。

A.对 B.错

24.在C语言中,保存字符串“B”实质上是保存字符'B'和'\\0'两个符号。

A.对 B.错

25.在C语言中,允许对两个字符型数据进行加法运算。

A.对 B.错 (二)、选择题

1.C语言是一种______。

A.汇编语言 B.“解释型”语言 C.“编译型”语言 D. 面向对象语言 2.下列说法中,正确的是______。

A.机器语言与硬件相关,但汇编语言与硬件无关 B.不同的计算机类型,其能理解的机器语言相同

C.汇编语言采用助记符提高程序的可读性,但同样属于低级语言 D.汇编源程序属于低级语言程序,计算机可以直接识别并执行 3.下面有关高级语言的说法中,正确的是______。

A.高级语言编写的程序可读性好,执行效率也最高

B.高级语言程序必须翻译成机器语言程序,计算机才能执行

C.解释方式和编译方式相比,具有占用内存少、执行速度快的特点 D.C语言是一种解释型高级语言

4.下面有关C语言特点的说法中,错误的是______。

A.C语言编写的代码较为紧凑,执行速度也较快

B.C语言不仅适合编写各种应用软件,还适于编写各种系统软件 C.C语言是一种模块化和结构化的语言

2

D.C语言编写的程序通常不具备移植性

5.下面有关程序设计技术的说法中,错误的是______。

A.机器语言和汇编语言编程通常采用面向计算机的程序设计方式 B.面向过程的程序设计方法通常采用结构化和模块化设计方法 C.面向对象的程序设计方法采用客观世界的描述方式

D.C语言是一种兼顾面向过程和面向对象的高级程序设计语言 6.下面有关C程序操作过程的说法中,错误的是______。

A.C源程序经过编译,得到的目标文件即为可执行文件

B.C源程序的链接实质上是将目标代码文件和库函数等代码进行连接的过程 C.C源程序不能通过编译,通常是由于语法错误引起的

D.导致不能得到预期计算结果的主要原因是程序算法考虑不周 7.一个C语言程序是由________组成。

A.主程序 B.子程序 C.函数 D.过程 8.C源程序中不能表示的数制是______。

A.二进制 B.八进制 C.十进制 D.十六进制 9.一个C语言程序总是从__________开始执行。

A.主程序 B.子程序 C.主函数 D.函数 10.以下叙述中正确的是_______。

A.在C程序中,main函数必须位于程序的最前面 B.C程序的每一行中只能写一条语句

C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误 D.C语言本身没有输入输出语句 11.以下叙述中正确的是_________。

A.C程序的基本组成单位是语句 B.C程序中的每一行中只能写一条语句 C.C语句必须以分号结束 D.C语句必须在一行内写完 12.以下叙述中错误的是_________。

A.函数是C程序的基本组成单位 B.函数体一般由一组C语句序列组成

C.printf是C语言提供的输出语句 D.函数通常分为库函数和用户自定义函数两种 13.以下程序的输出结果是______。 #include \void main()

{ int a=2,b=3,c=4;

printf(\A.4 3 2 B.2,3,4 C.4,3,2 D.2 3 4 14. C语言中,最基本的数据类型是_________。

A.整型、实型、逻辑型 B.整型、实型、字符型

C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 15.下面有关变量声明的说法中,正确的是_________。

A.C语言中不用先声明变量,需要时直接使用即可

B.每个变量的存储空间大小由数据类型和编译环境共同决定

3

C.在VC++6.0环境下,为int型变量分配的存储空间大小为2个字节 D.变量声明时,不能进行赋值操作

16.若x和y为整型变量,对于scanf(\语句,可使x和y的值分别为10和20的正确输入方法是_________。

A.10 20 B.10, 20 C.a=10 b=20 D.a=10,b=20 17.下列标识符中,不合法的用户标识符为_________。

A.aBa B._11 C.a_1 D.a&b 18.下列标识符中,合法的用户标识符为_________。

A.month B.5xy C.int D.your name 19._________是C语言提供的合法的数据类型关键字。

A.Boolean B.signed C.integer D.Char 20.不合法的字符常量是_________。

A.'\\678' B.'\\\C.' ' D.'\\4' 21.不正确的字符串常量是_________。

A.'abc' B.\ D.\22.关于下面的程序,正确的说法是_________。

#include stdio.h void main()

{ float a=b=2, result; result=a/b;

printf(\

A. 程序可正常编译,结果为result=1.000000 B. 共有1处语法错误 C. 共有2处语法错误 D. 共有3处语法错误 23.下面变量声明的语句中,错误的是_________。

A.char c=B; B.int a=3 C. char c=65; D.float area=0; 24.关于下面的程序,正确的说法是_________。

#include void main() { int x,y,z; x=y=z=1;

printf(\A.程序无误,能正常通过编译

B.#include 有误,需改为#include \C.int x,y,z;有误,需改为int x; y;z; D.x=y=z=1;有误,需改为x=1; y=1;z=1;

25.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'2';后,

c2中的值为__________。 A.69 B.C C.D D.E

26.为了计算s=10!,则定义变量s时应该使用的数据类型是________。

A.int B.unsigned

4

C.long D.以上三种类型均可 27.以下选项中合法的标识符是________。

A.1_1 B.1-1 C._11 D.1_ 28.下列关于C语言用户标识符的叙述中正确的是________。

A.用户标识符中可以出现下画线和中划线(减号) B.用户标识符中不可以出现中划线,但可以出现下画线

C.用户标识符中可以出现下画线,但不可以放在用户标识符的开头

D.用户标识符中可以出现下画线和数字,它们都可以放在用户标识符的开头 29.以下选项中,能用作数据常量的是________。

A.0119 B.o126 C.2.5e2.5 D.119L

30.以下关于short、int和long类型数据占用内存大小的叙述中正确的是________。

A.均占4个字节 B.根据数据的大小决定所占内存的字节数 C.由用户自己定义 D.由C语言编译系统决定

31.若已定义char c='\\010',则变量c所占的字节数为__________。

A.1 B.2 C.3 D.4

32.要定义双精度实型变量a和b,并初始化为数值7,则正确的语句是__________。

A.double a,b;a=b=7; B.double a=b=7; C.double a=b=7; D.double a=7,b=7;

33.已知字符a的ASCII码值为97,则以下程序的输出结果是__________。

#include \void main() { char ch='c';

printf(\

A.c99 B.c98 C.c97 D.编译出错 34.以下程序运行后的输出结果是_________。

#include “stdio.h” void main() { char c; c='B'+32;

printf(\

A.B B.b C.B32 D.b32 35.以下程序运行后的输出结果是_________。

#include \void main() { char c1,c2; c1='a'; c2='b'; c1=c1-32; c2=c2-32;

printf(\ printf(\

5

A.A B B.A B C.a b D.a b 65 66 97 98 65 66 97 98

36.如果将一个函数的返回值类型说明为void,则表示_________。

A.该函数可以返回任意类型的值 B.该函数不能返回任何值

C.该函数可以返回基本类型的值 D.该函数是main函数,是程序运行的起点 37.对于int型常量,不正确的是__________。

A.029 B.-25 C.0x2A D.-0X28 38.下列整型常量,错误的是__________。

A.025 B.285L C.-285u D.285lu 39.以下有关整型变量的定义中,错误的是___________。

A.short int x; B.long x; C.unsigned x; D.short x; 40.下列实型常量,错误的是__________。

A.3.2f B.-2.2E-2F C.-12.0 D.e3

41.在VC++6.0环境下,sizeof(int)和sizeof(float)的值分别为__________。

A.2,2 B.2,4 C.4,4 D.4,8 42.对于浮点型数据,下列说法中不正确的是______。

A.浮点数在存储时存在舍入误差

B.程序设计时,不能直接对两个浮点型数据进行相等比较

C.将一个很小的浮点数和一个很大的浮点数进行相加,结果可能不正确 D.C语言中的浮点型变量有float和double两种

43.若ch为字符型变量,则不能使ch表示字符'B'的语句是__________。

A.ch=B; B.ch=66; C.ch='\\102'; D.ch='\\x42'; 44.以下程序运行后的输出结果是_________。

#include \int f(int x,int y) { return 2*x+y; } void main()

{ int a=3,b=2,t=0; t= f(b,a);

printf(\

A. 0 B. 5 C. 7 D. 8 45.以下程序运行后的输出结果是_________。

#include \void main() { char ch='a'; int x=5;

float s=2.5F;

printf(\

6

A.1,2,4 B.1,4,4 C.1,4,8 D.a,5,2.5 (三)、编程题

1.已知长方形的长和宽分别为x和y,计算其周长和面积。

2.编写一个程序,其功能为:从键盘上输入两个整型数据,分别存放在整型变量a和b中,然后输出表达式a/b和a%b的值。

3.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。

4.编写一个程序,其功能为:从键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值。

提示:大写字母A~Z的ASCII码值为65~90,小写字母a~z的ASCII码值为97~122。可见,对应的大小写字母的ASCII码值相差32,所以大写字母转换成小写字母就是将其ASCII值加上32,小写字母转换成大写字母就是将其ASCII值减去32。

5.输入一个华氏温度F,根据公式c=5(F-32)/9计算输出对应的摄氏温度。要求:输入要有提示,输出要有说明。

四、习题答案

(一)、是非题

1.A 2.B 3.B 4.A 5.B 6.A 7.A 8.B 9.A 10.B 11.A 12.B 13.B 14.A 15.B 16.A 17.A 18.B 19.B 20.A 21.B 22.A 23.B 24.A 25.A (二)、选择题

1.C 2.C 3.B 4.D 5.D 6.A 7.C 8.A 9.C 10.D 11.C 12.C 13.C 14.B 15.B 16.D 17.D 18.A 19.B 20.A 21.A 22.C 23.A 24.A 25.A 26.C 27.C 28.B 29.D 30.D 31.A 32.D 33.A 34.B 35.A 36.B 37.A 38.C 39.C 40.D 41.C 42.D 43.A 44.C 45.B

7

第2章 顺序结构

二、习题

(一)是非题

1.表达式1/4+2.75的值是3。

A.对 B.错

2.C语言中浮点型变量可以进行自增或自减操作。

A.对 B.错

3.如果整型变量a、b、c已经正确定义,那么c=b=a=012是一个正确的表达式。

A.对 B.错

4.算术运算符和赋值运算符的结合方向均由左自右。

A.对 B.错

5.在进行赋值转换时,变量的类型被自动转换为赋值号右边的表达式值的类型。

A.对 B.错

6.语句char c=\定义了字符型变量c,并将其初始化为A。

A.对 B.错

7.运算符“%”的操作数不允许为单精度和双精度浮点型,允许为字符型和整型。

A.对 B.错 8. 运算符++的优先级高于运算符+。

A.对 B.错

9.逗号运算符的求值顺序是从左到右的,逗号表达式的值为第一个表达式的值。

A.对 B.错 10.“=”运算符用于判断两个数是否相等。

A.对 B.错

11.C语言本身不提供输入输出语句,但可以通过输入输出函数来实现数据的输入输出。

A.对 B.错

12.在使用函数scanf输入数据时必须与函数参数指定的输入格式一致。

A.对 B.错

13.getchar()函数用于输入单个字符,putchar()函数用于输出单个字符。

A.对 B.错 14.123、029、-0xEFF均是合法的整型常量。

A.对 B.错 15.假定已有定义char c;,sizeof c中的sizeof是容量运算符,而sizeof(char)中由于使用了括号形式,称为容量函数。 A.对 B.错

16.假定已有整型变量x的定义,则(x+1)++是一个合法的表达式。

8

A.对 B.错

17.假定已有整型变量初始化语句int x=2;,那么表达式x++,x *=2+1的值为9。

A.对 B.错

18.假定已有变量定义语句:int m=3,n=2;,那么(float)(m/n)表达式的值是1.5。

A.对 B.错 19.C语言中,表达式1/2*2的值为0。

A.对 B.错

20.若scanf函数的格式说明中有一个空格,在输入时也一定要在对应位置输入一个空格。

A.对 B.错 (二)选择题

1.数字字符0的ASCII值为48,则以下程序运行后的输出结果是______。

#include main()

{ char a='1',b='2'; printf(\A.3,2 B.50,2 C.2,2 D.2,50 2.以下程序运行后的输出结果是______。 #include main()

{ int m=12,n=34;

printf(\ printf(\

A.12353514 B.12353513 C.12343514 D.12343513

3.若整型变量a、b、c、d中的值依次为1、2、3、4。则表达式a+b/d*c的值是______。 A.1 B.2.5 C.0.25 D.2 4.以下程序运行后的输出结果是______。 #include main()

{ int a,b,c;

a=10; b=20; c= a%b+a/b;

printf(\A.10200 B.10 20 10 C.102011 D.10 20 1

5.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是______。 #include main()

{ int r; float s; scanf(\s=*p*r*r;

printf(\

A.注释语句书写位置错误 B.存放圆半径的变量r不应该定义为整型

9

C.s=*p*r*r;语句中使用了非法变量 D.输出语句中格式描述符非法 6.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是______。 A.k=k+=k B.-k++ C.k%int(f) D.f=k%m

7.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。 A.a%b%c B.a/b/c C.a=b=c D.a,b,c

8.有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是______。 A.0 B.1 C.2 D.3 9.以下程序运行后的输出结果是______。

#include main()

{ char c; int n=100; float f=10; double x; x=f*=n/=(c=50);

printf(\A.2 20 B.2 20.000000 C.100 10 D.50 10.000000 10.已知字母A的ASCII码为65,则以下程序运行后的输出结果是 ______。

#include main() { char a,b;

a='A'+'5'-'3'; b=a+'6'-'2'; printf(\A.6771 B.67G C.CG D.C71 11.表达式3.6-5/2+1.2+5%2的值是______。

A.3.3 B.3.8 C.4.3 D.4.8

12.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是________。 A.++x,y=x-- B.x+1=y C.x=x+10=x+y D.double(x)/10 13.以下程序运行后的输出结果是________。 #include main()

{ int x,y,z; x=y=1;

z=x++,y++,++y;

printf(\A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1 14.以下选项中,值为1的表达式是________。

A.1-'0' B.1-'\\0' C. '1'-0 D. '\\0'-'0' 15.设有定义:int k=0;,以下选项的________与其他三个表达式的值不相同。 A.k++ B.k+=1 C.++k D.k+1 16.执行以下程序后的输出结果是________。

#include

10

本文来源:https://www.bwwdw.com/article/0vz3.html

Top