《很有帮助的的C语言章节习题集带答案(共89页).doc》由会员分享,可在线阅读,更多相关《很有帮助的的C语言章节习题集带答案(共89页).doc(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第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语言中,
2、同一行上可以写一条或多条语句,但一条语句不能写在多行上。A.对 B.错9.在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。A.对 B.错10.注释语句会增加编译结果的复杂性,因此要尽量减少注释语句的数量。A.对 B.错11.声明变量的含义是通知编译系统为变量分配合适大小的存储空间。A.对 B.错12.C语言不允许使用关键字作为变量的名称,但可以使用保留字为变量命名。A.对 B.错13.符号常量提高了程序的可读性,但降低了程序维护的方便性。A.对 B.错14.变量声明把一个具体的标识符名称和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。A.对 B
3、.错15. C语言允许在同一条语句中定义多个相同类型的变量,其间用分号进行分隔。A.对 B.错16.在ISO/ANSI 1999规定中,允许将变量声明放在程序中的任何位置。A.对 B.错17.不同类型的数据在内存中所占存储单元的大小不同,内部存储方式不同,取值范围不同,甚至能够参与的运算种类也不相同。A.对 B.错18.有符号和无符号整数的区别仅在于对数据最高位的解释不同。若最高位解释为数据位,则为signed类型;若最高位解释为符号位,则为unsigned类型。A.对 B.错19.默认形式的实数常量的数据类型为float类型。A.对 B.错20.实型变量能表示的数字的有效位数是有限的。A.对
4、 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.不
5、同的计算机类型,其能理解的机器语言相同C.汇编语言采用助记符提高程序的可读性,但同样属于低级语言D.汇编源程序属于低级语言程序,计算机可以直接识别并执行3.下面有关高级语言的说法中,正确的是_。A.高级语言编写的程序可读性好,执行效率也最高B.高级语言程序必须翻译成机器语言程序,计算机才能执行C.解释方式和编译方式相比,具有占用内存少、执行速度快的特点D.C语言是一种解释型高级语言4.下面有关C语言特点的说法中,错误的是_。A.C语言编写的代码较为紧凑,执行速度也较快B.C语言不仅适合编写各种应用软件,还适于编写各种系统软件C.C语言是一种模块化和结构化的语言D.C语言编写的程序通常不具备移植
6、性5.下面有关程序设计技术的说法中,错误的是_。A.机器语言和汇编语言编程通常采用面向计算机的程序设计方式B.面向过程的程序设计方法通常采用结构化和模块化设计方法C.面向对象的程序设计方法采用客观世界的描述方式D.C语言是一种兼顾面向过程和面向对象的高级程序设计语言6.下面有关C程序操作过程的说法中,错误的是_。A.C源程序经过编译,得到的目标文件即为可执行文件B.C源程序的链接实质上是将目标代码文件和库函数等代码进行连接的过程C.C源程序不能通过编译,通常是由于语法错误引起的D.导致不能得到预期计算结果的主要原因是程序算法考虑不周7.一个C语言程序是由_组成。A.主程序 B.子程序 C.函数
7、 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
8、语句序列组成C.printf是C语言提供的输出语句 D.函数通常分为库函数和用户自定义函数两种13.以下程序的输出结果是_。#include stdio.hvoid main() int a=2,b=3,c=4; printf(%d,%d,%dn,c,b,a); A.4 3 2 B.2,3,4 C.4,3,2 D.2 3 414. C语言中,最基本的数据类型是_。A.整型、实型、逻辑型 B.整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型15.下面有关变量声明的说法中,正确的是_。A.C语言中不用先声明变量,需要时直接使用即可B.每个变量的存储空间大小由数据类型和编译
9、环境共同决定C.在VC+6.0环境下,为int型变量分配的存储空间大小为2个字节D.变量声明时,不能进行赋值操作16.若x和y为整型变量,对于scanf(a=%d,b=%d,&x,&y);语句,可使x和y的值分别为10和20的正确输入方法是_。A.10 20 B.10, 20 C.a=10 b=20 D.a=10,b=2017.下列标识符中,不合法的用户标识符为_。A.aBa B._11 C.a_1D.a&b18.下列标识符中,合法的用户标识符为_。A.month B.5xyC.intD.your name19._是C语言提供的合法的数据类型关键字。A.Boolean B.signedC.in
10、tegerD.Char20.不合法的字符常量是_。A.678 B.C. D.421.不正确的字符串常量是_。A.abc B.1212 C.0D. 22.关于下面的程序,正确的说法是_。#include stdio.h void main() float a=b=2, result;result=a/b;printf(result=%fn, result); A. 程序可正常编译,结果为result=1. B. 共有1处语法错误C. 共有2处语法错误 D. 共有3处语法错误23.下面变量声明的语句中,错误的是_。A.char c=B; B.int a=3 C. char c=65; D.floa
11、t area=0;24.关于下面的程序,正确的说法是_。#include void main() int x,y,z;x=y=z=1;printf(x=%d,y=%d,z=%dn,x,y,z); A.程序无误,能正常通过编译B.#include 有误,需改为#include stdio.hC.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.69B.CC.DD.E26.为了计算s=10!,则定义变量s时应该使用的数据类型
12、是_。A.intB.unsigned C.longD.以上三种类型均可27.以下选项中合法的标识符是_。A.1_1B.1-1C._11D.1_28.下列关于C语言用户标识符的叙述中正确的是_。A.用户标识符中可以出现下画线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下画线C.用户标识符中可以出现下画线,但不可以放在用户标识符的开头D.用户标识符中可以出现下画线和数字,它们都可以放在用户标识符的开头29.以下选项中,能用作数据常量的是_。A.0119 B.o126 C.2.5e2.5D.119L30.以下关于short、int和long类型数据占用内存大小的叙述中正确的是_。A.
13、均占4个字节 B.根据数据的大小决定所占内存的字节数C.由用户自己定义 D.由C语言编译系统决定31.若已定义char c=010,则变量c所占的字节数为_。A.1 B.2 C.3 D.432.要定义双精度实型变量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 stdio.hvoid main() char ch=c;printf(%c%dn,ch,ch); A.c99 B.c98
14、 C.c97 D.编译出错34.以下程序运行后的输出结果是_。#include “stdio.h”void main() char c; c=B+32; printf(%cn,m); A.B B.b C.B32 D.b3235.以下程序运行后的输出结果是_。#include stdio.hvoid main() char c1,c2;c1=a; c2=b; c1=c1-32; c2=c2-32; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2); A.A B B.A B C.a b D.a b65 66 97 98 65 66 97 9836.如果将一个函数
15、的返回值类型说明为void,则表示_。A.该函数可以返回任意类型的值 B.该函数不能返回任何值C.该函数可以返回基本类型的值 D.该函数是main函数,是程序运行的起点37.对于int型常量,不正确的是_。A.029 B.-25 C.0x2A D.-0X2838.下列整型常量,错误的是_。A.025 B.285L C.-285u D.285lu39.以下有关整型变量的定义中,错误的是_。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.e341.在VC+6.0
16、环境下,sizeof(int)和sizeof(float)的值分别为_。A.2,2 B.2,4 C.4,4 D.4,842.对于浮点型数据,下列说法中不正确的是_。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 stdio.hint f(int x,int y)
17、 return 2*x+y; void main() int a=3,b=2,t=0;t= f(b,a);printf(%dn,t); A. 0 B. 5 C. 7 D. 845.以下程序运行后的输出结果是_。#include stdio.hvoid main() char ch=a; int x=5; float s=2.5F;printf(%d,%d,%dn,sizeof(ch),sizeof(x),sizeof(s); A.1,2,4 B.1,4,4 C.1,4,8 D.a,5,2.5(三)、编程题1.已知长方形的长和宽分别为x和y,计算其周长和面积。2.编写一个程序,其功能为:从键盘上
18、输入两个整型数据,分别存放在整型变量a和b中,然后输出表达式a/b和a%b的值。3.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。4.编写一个程序,其功能为:从键盘上输入一个小写字母,显示这个小写字母及它所对应的大写字母以及它们的ASCII码值。提示:大写字母AZ的ASCII码值为6590,小写字母az的ASCII码值为97122。可见,对应的大小写字母的ASCII码值相差32,所以大写字母转换成小写字母就是将其ASCII值加上32,小写字母转换成大写字母就是将其ASCII值减去32。5.输入一个华氏温度F,根据公式c=5(F-32)/9计算输出对应的摄
19、氏温度。要求:输入要有提示,输出要有说明。四、习题答案(一)、是非题1.A 2.B 3.B 4.A 5.B 6.A 7.A 8.B 9.A 10.B11.A 12.B 13.B 14.A 15.B 16.A 17.A 18.B 19.B 20.A21.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.D11.C 12.C 13.C 14.B 15.B 16.D 17.D 18.A 19.B 20.A21.A 22.C 23.A 24.A 25.A 26.C 27.C 28.B 29.D 30.D31.A 32.
20、D 33.A 34.B 35.A 36.B 37.A 38.C 39.C 40.D41.C 42.D 43.A 44.C 45.B第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=A;定义了字符型变量c,并将其初始化为A。A.对 B.错7
21、.运算符“%”的操作数不允许为单精度和双精度浮点型,允许为字符型和整型。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均是合法的
22、整型常量。A.对 B.错15.假定已有定义char c;,sizeof c中的sizeof是容量运算符,而sizeof(char)中由于使用了括号形式,称为容量函数。A.对 B.错16.假定已有整型变量x的定义,则(x+1)+是一个合法的表达式。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函数的格式说明中有一个空格,在输入时也一定要在
23、对应位置输入一个空格。A.对 B.错(二)选择题1.数字字符0的ASCII值为48,则以下程序运行后的输出结果是_。#include main() char a=1,b=2; printf(%c,b+); printf(%dn,b-a); A.3,2 B.50,2 C.2,2 D.2,502.以下程序运行后的输出结果是_。#include main() int m=12,n=34; printf(%d%d,m+,+n); printf(%d%dn,n+,+m); A. B. C. D.3.若整型变量a、b、c、d中的值依次为1、2、3、4。则表达式a+b/d*c的值是_。A.1 B.2.5 C
24、.0.25 D.24.以下程序运行后的输出结果是_。#include main() int a,b,c;a=10; b=20; c= a%b+a/b;printf(%d %d %dn,a,b,c); A.10200 B.10 20 10 C. D.10 20 15.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是_。#include main() int r; float s;scanf(%d,&r);s=*p*r*r; printf(s=%fn,s); A.注释语句书写位置错误 B.存放圆半径的变量r不应该定义为整型C.s=*p*r*r;语句中使用了非法
25、变量 D.输出语句中格式描述符非法6.设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是_。A.k=k+=k B.-k+ C.k%int(f) D.f=k%m7.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是_。A.a%b%c B.a/b/c C.a=b=c D.a,b,c8.有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是_。A.0 B.1 C.2 D.39.以下程序运行后的输出结果是_。#include main() char c; int n=100; float f=10;
26、 double x; x=f*=n/=(c=50); printf(%d %fn,n,x); A.2 20 B.2 20. C.100 10 D.50 10.10.已知字母A的ASCII码为65,则以下程序运行后的输出结果是 _。#include main() char a,b; a=A+5-3; b=a+6-2; printf(%d%cn,a,b); A.6771 B.67G C.CG D.C7111.表达式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
27、=y C.x=x+10=x+y D.double(x)/1013.以下程序运行后的输出结果是_。#include main() int x,y,z; x=y=1; z=x+,y+,+y; printf(%d,%d,%dn,x,y,z); A.2,3,3B.2,3,2 C.2,3,1 D.2,2,114.以下选项中,值为1的表达式是_。A.1-0 B.1-0 C. 1-0 D. 0-015.设有定义:int k=0;,以下选项的_与其他三个表达式的值不相同。A.k+ B.k+=1 C.+k D.k+116.执行以下程序后的输出结果是_。#include main() int a=10; a=(3
28、*5,a+4); printf(a=%dn,a); A.a=10B.a=14 C.a=15 D.a=1917.若变量均已正确定义并赋值,以下合法的C语言赋值语句是_。A.x=y=5; B.x=n%2.5; C.x+n=i; D.x=5=4+1;18.设变量已经正确定义并赋值,以下正确的表达式是_。A.x=y*5=x+z B.int(15.8%5) C.x=y+z*5,+y D.x=25%5.019.以下不能正确表示代数式2ab/cd的C语言表达式是_。A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d20.设变量a和b已正确定义并赋初值。请写出与a-
29、=a+b等价的赋值表达式_。A.a=a-a+b B.a-a=b C.a=a-(a+b) D.a=-a+b21.设有定义:int x=2;,以下表达式中,值不为6的是_。A.x*=x+1 B.x+,2*x C.x*=(1+x) D.2*x,x+=222.表达式(int)(double)9/2)-(9)%2的值是_。A.0 B.3 C.4 D.523.若有定义 int x=10;,则表达式x-=x+x的值为_。A.-20 B.-10 C.0 D.1024.若有定义double a=22;int i=0,k=18;,则以下有错的语句是_。A.a=a+,i+; B.i=(a+k)/(k-i); C.i
30、=a%11; D.i=!a;25.以下程序运行后的结果是_。#include main() int a=2,b=2,c=2; printf(%dn,a/b%c); A.0 B.1 C.2 D.326.若有定义int a;long b; double x,y;,则以下选项中正确的表达式是_。A.a%(int)(x-y) B.a=b=x,y;C.(a*y)%bD.y=x+y=x 27.表达式a+=a-=a=9的值是_。A.-9 B.0 C.9 D.1828.若有定义int a=3,b=2,c=1;,以下选项中错误的赋值表达式是_。A.a=(b=4)=3 B.a=b=c+1; C.a=(b=4)+c
31、; D.a=1+(b=c=4);29.若有定义int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为_。A.1 B.1.9 C.2 D.2.430.以下程序运行后输出的结果是_。#includemain() int a=0,b=0,c=0; c=(a-=a-5);(a=b,b+=4); printf(%d,%d,%d, a,b,c); A.0,4,5B.4,4,5 C.4,4,4 D.0,0,031.设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是_。A.x+; printf(%dn,x); B.n=+x; printf(%dn,n);C.+x; pr
32、intf(%dn,x); D.n=x+; printf(%dn,n);32.以下程序运行后输出的结果是_。#include main() int a=1,b=0; printf(%d,b=a+b); printf(%d,a=2*b); A.0,0 B.1,0 C.3,2 D.1,2 33.以下程序运行后输出的结果是_。#include main() int k=011; printf(%dnk+); A.12 B.11 C.10 D.934.有以下程序:#include main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn
33、,m,n,p); 若想使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是_。A.m=123n=456p=789 B.123,456,789C.m=123,n=456,p=789 D.123 456 78935.以下程序运行后输出的结果是_。#include main() int a,b,d=25; a=d/10%9; b=a+-1; printf(%d,%dn,a,b); A.6,1 B.2,1 C.6,0 D.2,036.以下叙述中正确的是_。A.调用printf函数时,必须要有输出项B.使用putchar函数时,必须在之前包含头文件stdio.hC.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D