C语言1-5章复习题及参考答案
C语言练习题1-5及参考答案,DOC

练习题1及参考答案1.单项选择题(1)以下并非C语言的特点的是?????。
A.?C语言简洁和紧凑B.能够编制出功能复杂的程序C.?C语言可以直接对硬件进行操作D.?C语言移植性好【答】B(2)一个CA.?main()B.C.D.?main()【答】A(3)在CA.B.C.可以任意D.【答】C(4)一个CA.B.C.D.【答】B(5A.在执行CB.?CC.?CD.?C【答】C2.填空题(1)一个C源程序至少有??①??个main()函数和??②??个其他函数。
【答】①一?②若干(2)任何C语句必须以?????结束。
【答】分号(3)C语言源程序的基本单位是?????。
【答】函数(4)C编译程序的功能是?????。
【答】将C源程序编译成目标代码练习题2及参考答案1.单项选择题(1)以下字符串为标识符的是?????。
A._MY???????????????B.2_2222??????????????????C.short??????????????????D.LINE5 【答】AA.n%=(m%=5)??????????????????????????B.n%=(m-m%5)C.n%=m-m%5?????????????????????????D.(n%=m)-(m%=5)【答】A、B、C、D选项各表达式的值分别是0、2、2、3。
本题答案为D。
(8)以下程序的运行结果是?????。
#include<stdio.h>main(){???inti=5,j=6,m=i+++j;???printf("%d,%d,%d\n",i,j,m);}A.6,6,11??????B.5,6,11??????C.5,6,12??????D.6,6,12【答】m=i+++j等价于m=(i++)+j。
本题答案为A。
(9)以下程序的运行结果是?????。
#include<stdio.h>voidmain(){???doublef=3.14159;???intn;???n=(int)(f+10)%3;???printf("%d\n",n);的值不改变。
c语言习题1-5章

C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。
A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。
A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。
A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。
A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。
A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。
int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。
A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。
A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。
A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。
C语言全部章节习题集(参考答案)

C语言全部章节习题集(参考答案).txt如果真诚是一种伤害,请选择谎言;如果谎言是一种伤害,请选择沉默;如果沉默是一种伤害,请选择离开。
第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。
2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。
4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。
5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。
C语言1-5章复习题及参考答案

一.选择题1、若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是( )。
A .-3 B.9 C.-12 D.62、若有定义: int a=8, b=5, c; 执行语句 c=a/b+0.4; 后, c 的值为( )。
A .1.4 B.1 C.2.0 D.23、有如下程序: void main(){int i,sum;for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum);}该程序的执行结果是( )。
A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是( )。
6、若已定义 x 和 y 为 double 类型,则表达式 x=1;y=( x+3) /2 的值是() A .1 B.2 C.2.00000 D.2.500007、表达式: 10!=9 的值是( )。
A . true B. 非零值 C.0 D.18、以下程序的输出结果是( )。
#include<stdio.h> void main (){printf ("%d\n", NULL );}A . 不确定的 B.0 C.-1 D.19、请选出合法的 C 语言赋值语句。
( )A . a=b=58 B.i++; C. a=58,b=58 D. k=int (a+b );10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是( )。
A .0 B.2 C.4 D.811、关于语句 printf ( “ hello n ”,); 下列描述中错误的是() A . printf () 是格式化输出函数,用于输出信息。
B. printf () 括号中的内容为函数的参数。
C. printf () 括号中的内容会全部输出到控制台上。
D. \n 表示换行操作。
12、下列选项中,哪一项不是 C 语言中的位运算符() 。
C语言习题集参考答案

第一章C语言概述一.选择题1.一个C程序的执行是从。
A.程序的main函数开始,到main函数结束B.程序文件的第一个函数开始,对本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.以下叙述正确的是。
A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面二.填空题1.C源程序的基本单位是函数。
2.一个C源程序中至少应包括一个主函数或main函数。
3.在一个C源程序中,注释部分两侧的分界符分别为/*和*/ 。
第二章数据的存储与运算一.选择题1.若x、i、j和k都是int型变量,则计算下面表达式后,x的值为。
x=(i=4,j=16,k=32)A.4 B.16 C.32 D.482.下面正确的字符常量是。
A.”c” B.’\\’’C.’W’ D.’’3.下面不正确的字符串常量是。
A.’abc’ B.”12’12” C.”0” D.” “4.以下正确的叙述是。
A.在C程序中,每行中只能写一条语句B.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’后c2中的值为。
A.D B.68 C.不确定的值 D.C6.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。
(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言课后习题参考答案

C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。
它以其简洁、高效和可移植性而闻名。
C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。
问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。
它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。
它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。
例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。
它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。
它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。
算法与数据结构C语言习题参考答案1-5章

绪论1.将下列复杂度由小到大重新排序:A.2n B.n! C.n5D.10 000 E.n*log2 (n)【答】10 000< n*log2(n)< n5< 2n < n!2.将下列复杂度由小到大重新排序:A.n*log2(n) B.n + n2 + n3C.24D.n0.5【答】24< n0.5< n*log2 (n) < n + n2 + n33.用大“O”表示法描述下列复杂度:A.5n5/2 + n2/5 B.6*log2(n) + 9nC.3n4+ n* log2(n) D.5n2 + n3/2【答】A:O (n5/2) B:O (n) C:O (n4) D:O (n2)4.按照增长率从低到高的顺序排列以下表达式:4n2 , log3n, 3n , 20n , 2000 , log2n , n2/3。
又n!应排在第几位?【答】按照增长率从低到高依次为:2000, log3n, log2n , n2/3 , 20n , 4n2 , 3n。
n!的增长率比它们中的每一个都要大,应排在最后一位。
5. 计算下列程序片断的时间代价:int i=1;while(i<=n){printf(“i=%d\n”,i);i=i+1;}【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环到n,共执行n次。
所以该程序段总的时间代价为:T(n) = 1 + n + 2n = 3n+ 1 = O(n)6. 计算下列程序片断的时间代价:int i=1;while(i<=n){int j=1;while(j<=n){int k=1;while(k<=n){printf(“i=%d,j=%d,k=%d\n”,I,j,k);k=k+1;}j=j+1;}i=i+1;}【答】循环控制变量i从1增加到n,最外层循环体执行n次,循环控制变量j从1增加到n,中间层循环体执行n次,循环控制变量k从1增加到n,最内层循环体执行n次,所以该程序段总的时间代价为:T(n) = 1 + n + n{1 + n + n[1 + n + 2n +1] +1 +1}+ 1= 3n3 + 3n2 +4n +2= O(n3)2. 线性表1.试写一个插入算法int insertPost_seq(palist, p, x ),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。
A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。
A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。
A . 常量和变量都是表达式。
B. 运算符类型对应表达式的类型。
C. 每一个表达式都有自己的值。
D. 表达式必须以分号结尾。
5、C语言中,合法的长整型常数是()。
A . '\t' B.” A” C.65 D.a6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。
A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。
A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。
#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。
()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。
A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。
A . printf()是格式化输出函数,用于输出信息。
B. printf()括号中的内容为函数的参数。
C. printf()括号中的内容会全部输出到控制台上。
D. \n表示换行操作。
12、下列选项中,哪一项不是C语言中的位运算符()。
A .& B.|| C.~ D.^13、以下程序的输出结果是()。
void main(){char c='z';printf("%c", c-25);}A .a B.Z C.z-25 D.y14、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A . a<>0 B. !a C. a=0 D. a15、以下循环体的执行次数是()。
void main(){int i,j;for (i=0,j=1; i<=j+1; i+=2,j--)printf("%d\n",i);}A .3 B.2 C.1 D.016、下列运算符中优先级最高的是()。
A .|| B.&& C.+ D.=17、若有以下定义和语句:char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+'A'); 那么输出结果是()。
A .2,M B.3,E C.2,E D. 输出项与对应的格式控制不一致,输出结果不确定18、若有以下程序段:int c1=1,c2=2,c3; c3=1.0/c2*c1; 那么执行后,c3中的值是()。
A .0 B.0.5 C.1 D.219、若变量a是int类型,并执行了语句:a='A'+1.6; 则下列描述中,正确的是()。
A . a的值是字符’C' B. a的值是浮点型C. 不允许字符型和浮点型相加D. a的值是字符’A’的ASCII值加上120、若有定义:int x ,i;则下列for循环语句:for(i = 0,x = 0; i<= 9 && x!=876;i++)scanf(“%d”,&x);下列选项中,描述正确的是()A . 最多执行10次B. 最多执行9次 C. 是无限循环 D. 循环体一次也不执行21、假定有以下变量定义:int k=7,x=12; 那么能使值为3的表达式是()。
A . x%=(k%=5) B. x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5)22、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。
void main(){int x;scanf("%d",&x);if (x++ > 5)printf("%d",x);elseprintf("%d\n",x--);}A . 7和5 B. 6和3 C. 7和4 D. 6和423、若已定义x和y为double类型,则表达式:x=1, y=x+3/2 的值是()。
A . 1 B. 2 C. 2.0 D. 2.524、执行下面程序片段的结果是()。
int x=23;do{printf("%2d",x--);} while (!x);A . 打印出321 B. 打印出23 C. 不打印任何内容 D. 陷入死循环25、以下选项中合法的字符常量是()。
A . "B" B. '\010' C. 68 D. D26、将二进制数00001011进行>>位运算,将其结果转换为十进制是()。
A . 101 B. 1 C. 11 D. 527、下列说法中正确的是()。
A . 在switch语句中一定要使用break语句B. 在switch语句中不一定要使用break语句C. break语句是switch语句的一部分D. break只能用于switch语句中28、假设有如下的变量定义:int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是()。
A . a+=a-=(b=4)*(a=3) B. x%(-3)C. a=a*3=2D. y=float(i)29、若a为int型变量,则下列C语言表达中,不能表达数学关系式10<a<15的是()。
A . 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)30、表示关系x<=y<=z的C语言表达式为()。
A . (X<=Y)&&(Y<=Z)B. (X<=Y)AND(Y<=Z)C. (X<=Y<=Z)D. (X<=Y)&(Y<=Z)二.判断题1、C语言属于机器语言。
(×)2、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。
(√)3、在C语言中转义字符有特殊的含义,它以反斜杠\开头,后面接特定的字符。
(√)4、机器语言是由二进制数0和1组成的一串指令。
(√)5、continue只能用于循环语句。
(×)6、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。
(√)7、将浮点型数据转换为整型数据时,小数点后的数会进行四舍五入。
(×)8、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号()引起来。
(×)9、通常将不可改变的数值称为常量。
(√)10、变量虽有不同的数据类型,但它们所占内存的大小是一样的。
(×)11、位运算符“<<”就是将操作数所有二进制位向左移动一位。
运算时,右边的空位补0。
左边移走的部分舍去。
(√)12、十进制数10转换为二进制为1010。
(√)13、计算机使用特定的整数编码来表示对应的字符,我们通常使用的英文字符编码是ASCII。
(√)14、逻辑运算符用于判断数据的真假,其结果为“真”或“假”。
(√)15、十进制转换成二进制可以采用除2取余的方式。
(√)16、变量的值保存在内存单元上,是可以被改变的。
(√)17、十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。
(√)18、位运算符是针对二进制数的每一位进行运算的符号,是专门针对数字0和1进行操作的。
(√)19、sizeof运算符的功能是获取某一数据或数据类型在内存中所占的字节数。
(√)20、两个二进制数进行“|”运算,如果二进制位上只有一个值为1,则该位的运行结果为0。
(×)三.填空题1、在C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和(三目)运算符。
2、定义变量int x = 1.20,则%d格式输出x的结果为( 1 )。
3、运算符“||”表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为(假)。
4、运算符“&&”表示与操作,当且仅当运算符两边的表达式结果都为真时,其结果才为(真),否则结果为假。
5、若有定义int x = 7;则表达式x/=3;的值为( 2 )。
6、计算机语言可分为三大类,即机器语言、汇编语言和(高级语言)。
7、在进行取模运算时,运算结果的正负取决(被模数)的符号,与模数的符号无关。
8、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个(整数)。
9、C语言中的数据类型可分为4种,分别是(基本类型)、构造类型、指针类型、空类型。
10、注释有两种类型,分为(单行注释)和多行注释。
11、整型变量是用来存储整型数据,(实型)变量用来存储小数类型。
12、实型常量也称为浮点数常量,可以分为单精度浮点数和(双精度)两种类型。
13、sizeof运算符用于获取某一数据或(数据类型)在内存中所占的字节数。
14、在C语言中,如果除法运算有浮点数参与运算,得到一个(浮点)型结果。
15、C语言的比较运算中,“真”用数字“(1)”来表示,“假”用数字“(0)”来表示。
16、在C语言中,常量包括(整型常量)、浮点数常量、字符常量等。
17、在C语言中,运算符都有一定的结合性,则赋值运算符的结合性为(左结合)。
18、赋值运算符的作用就是将常量、变量或(表达式)的值赋给某一个变量。
19、已知a = 10, b = 20,则表达式!a<b的值为( 1 )。
20、在C语言中,(sizeof )运算符可以求算出数据字节数。