ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:48.44KB ,
资源ID:2383785      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2383785.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C程序设计实验指导与习题集.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C程序设计实验指导与习题集.docx

1、C程序设计实验指导与习题集第一章 C语言概述 一、选择题 1.以下叙述中正确的是 C 。 A、在C程序中,main函数必须位于程序的最前面 B、C程序的每行中只能写一个语句 C、C语言本身没有输入输出语句,输入输出靠调用函数实现 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误 2.下面叙述不是C语言特点的是 B 。 A、C程序简洁紧凑 B、能够方便地编写可视化程序 C、C程序可移植性好 D、C语言可以直接对硬件实现操作 3.下列叙述正确的是 C 。 A、程序应该尽可能短 B、为了编写的方便,程序设计者应该随意实现流程的转移 C、虽然注释会占用编程者的大量时间,但还是要尽可能对程序进

2、行注释 D、在Turbo C环境下,运行的程序就是源程序 4.C程序可以由若干函数构成,那么程序的执行是 D 。 A、从第一个函数开始,到最后一个函数结束 B、从第一个语句开始,到最后一个语句结束 C、从主函数(main)开始,到最后一个函数结束 D、从主函数开始,在主函数结束 5.C语言规定,在程序中相对于其它函数的位置,主函数的位置 C 。 A、必须在最前面 B、必须在系统调用库函数的后面 C、可以任意 D、必须在最后 二、填空题 1.一个C源程序中应至少包含一个主函数(或main函数) 。 2.在一个C源程序中,注释部分两侧的定界符是 /* */ 。3.C语言源程序文件的扩展名是 c ,

3、经编译后生成的目标代码的扩展名是 obj ,经过连接后生成可执行文件的扩展名是 exe 。第一章 C语言概述答案 一、选择题 1.C 2.B 3.C 4.D 5.C 二、填空题 1.主函数(或main函数) 2./* */ 3. c obj exe第二章 程序的灵魂算法 一、选择题 1.以下叙述中错误的是 D 。 A、可以用N-S图表示算法 B、可以用流程图表示算法 C、可以用伪代码表示算法 D、可以用数据流图表示算法 2.下面关于算法的描述中错误的是 B 。 A、算法具有可执行性 B、算法具有唯一性 C、算法的每一步具有确切的含义,即确定性 D、算法的有穷性 3.下面关于算法的描述中正确的是

4、 B 。 A、一个好的算法必须包含一个或多个输入 B、一个好的算法必须包含一个或多个输出 C、一个好的算法必须用流程图描述 D、一个好的算法必须用N-S图描述 4.下面不属于结构化程序设计方法的是 A 。 A、自内向外 B、自顶向下 C、逐步细化 D、模块化设计 二、填空题 1.结构化程序设计中包含的三种基本结构是 顺序结构 选择结构 循环结构 第二章 答案 一、选择题 1.D 2.B 3.B 4.A 二、填空题 1.顺序结构 选择结构 循环结构 第三章 数据结构、运算符与表达式 一、选择题(可能有多个选项) 1.下面标识符中,属于不合法用户标识符的是 DF 。 A、PAd B、a_10 C、

5、Int D、signed E、_int F、a#b 2.下面标识符中,属于合法的用户标识符是 ABE 。 A、day B、E2 C、3AB D、enum E、a F、long 3.以下 C 是不正确的转义字符。 A、 B、 C、081 D、0 E、n F、xab 4.若干个int型、char型数据进行算术运算,其结果的数据类型是 A 。 A、int B、char C、long D、double E、float 5.若干个char型、float型数据进行算术运算,其结果的数据类型是 D 。 A、int B、char C、long D、double E、float 6.若干个int型、unsign

6、ed型、char型数据进行算术运算,其结果的数据类型是 C 。 A、int B、char C、long D、double E、float 7.若x为int型变量,且x=6,则执行下面的赋值运算后,表达式的值是 B 。 x+=x-=x*x A、36 B、-60 C、60 D、-24 8.以下选项中,合法的实型常量是 ADF 。 A、.2345 B、8 C、1E2.0 D、.1e3 E、23.2e F、1.24 9.下面非法的整型常量有 AB 。 A、019 B、ox123 C、2L D、0Xff E、0x4de F、0L 10.若干变量已正确定义,以下合法的赋值表达式是 C 。 A、a=1/b=

7、2 B、+(a+b) C、a=a/(b=5) D、y=int(a)+b 11.以下叙述中错误的是 C 。 A、在C程序中,Abc和abc是两个不同的标识符 B、在C程序中,变量代表内存中的一个存储单元,它的值可以根据需要变化 C、在C程序中,无论是整数还是实数,都能准确无误地表示 D、在C程序中,一个正整数可以用十进制、八进制和十六进制的形式表示 二、填空题 1.无符号整型变量共有3种形式,其类型标识符的简单形式为unsigned、 和 。 2.C语言中共提供了6种整型变量,不同类型的整型变量其能够表达的数据的范围是不一样的,写出下面几种类型能表示数据的范围。 int: ,unsigned:

8、。 3.写出下面各种类型变量在内存中占据的字节数: char: ,int: ,long: ,float: ,double: 。 三、问答题 1.字符常量与字符串常量有什么区别? 2.一个变量被定义后没有被初始化,是不是表示变量中没有值? 3.写出下面表达式运算后a的值,假设最初a=10,n=3,a、n均为整型。 a+=a a-=2 a*=2+3 a/=a+a a%=(n%=2) a+=a-=a*=a 4.计算下面算术表达式的值,设a,b为int型,x,y为float型,且a=2,b=3,x=3.5,y=2.5。 x+a%3*(int)(x+y)%2/4 (float)(a+b)/2+(int)

9、x%(int)y 5.计算表达式的值和a,b,c的值。 a=b=c=3 a=13+(c=18%4) a=(b=12/5)+(c=3) a=(b=5)+(c=4) x=3*4,x*5 (a=4*5,a*3),a+10 x=A,x%5 x=30%8/2,x+10 x=8,x%=x+5 6.将下面的数学式子写成C语言表达式。 第三章 答案 一、选择题 1.DF 2.ABE 3.C 4.A 5.D 6.C 7.B 8.ADF 9.AB 10.C 11.C 二、填空题 1.unsigned short unsigned long 2.-3276832767 065535 3.1 2 4 4 8 三、问答

10、题 1.字符常量是用单撇号括起来的一个字符,而字符串常量是用一对双撇号括起来的一串字符,每个字符串的最后都有一个字符串终止标记0。可以用字符常量为字符变量赋值,但是不能将一个字符串给字符变量赋值。 2.一个变量定义后如果没有被初始化,其存储单元中会有一个不确定的值,只是该值没有意义,所以我们说 该变量没有定义。 3.20 8 50 0 0 0 4.3.5 3.5 5.表达式的值是3,a=3,b=3,c=3 表达式的值是15,a=15,c=2 表达式的值是5,a=5,b=2,c=3 表达式的值是9,a=9,b=5,c=4 表达式的值是60 表达式的值是30,a=20 表达式的值是0 表达式的值是

11、13 表达式的值是8 6. sqrt(x+2*y)-exp(3*x)+fabs(x) 第四章 最简单的C程序设计顺序结构程序设计 一、选择题 1.已知a,b是int型数据,x,y是float型数据,且各变量已经被正确赋值。以下正确的赋值语句是 。 A、a=1,b=2 B、y=(x%2)/10; C、x*=y+2; D、a+b=x; 2.a,b,c是整型变量且已正确赋值,下面符合C语法的表达式是 。 A、a%=7.6 B、a+,a=7+b+c C、int(12.3)%4 D、a=c+b=a+7 3.若m为float型变量,则执行以下语句后的输出为 。 m=12.567 printf(%-8.2f

12、n,m); printf(%8.2fn,m); 4.若n为int型数据,x为float型数据,则执行下面语句后的输出结果为 。 n=12345;x=12.0; printf(%07d%5.0fn,n,x); printf(%7d%5.1fn,n,x); 5.若x是int型变量,y是float型变量,所用的scanf形式如下: scanf(x=%d,y=%f,&x,&y);则为了将数据10和66.6分别赋值给x和y,正确的输入应该是 。x=10y=66.61066.6 A、x=10,y=66.6 B、10 66.6 C、 D、 6.若有下面的定义和语句: int a,b,c; scanf(%d%

13、d%d,&a,&b,&c);为了给变量a,b,c分别输入10,20,30,下面不正确的输入形式是 。10,20,3010 20301020301020 30 A、 B、 C、 D、 7.若有以下的定义和语句: int u=010,v=0x10,w=10; printf(%d,%d,%dn,u,v,w);则输出结果是 。 A、10,10,10 B、8,8,10 C、8,10,10 D、8,16,10 8.若有下面的定义和语句: int a=-2; printf(%d,%u,%o,%xn,a,a,a,a);则输出结果为: A、-2,-2,-2,-2 B、65534,65534,65534,6553

14、4 C、-2,65534,177776,ffffe D、-2,-2,177776,ffffe 9.有以下程序: main() unsigned a=32768; int b; b=a; printf(b=%dn,b); 程序执行后的输出结果是 。 A、b=32768 B、b=32767 C、b=-32768 D、b=-1 10.已知int型变量i,j,k的值分别为3,4,5,执行下面的表达式: k+=+i+j+后,k,i,j的值为 。 A、7,3,4 B、14,4,5 C、13,4,4 D、13,4,5 二、填空题 1.后面给出的表达式x+、+x、x=x+1、x=1+x计算后都可以使x的值增加

15、1,请写出一条具有同一功能的表达式 ,用来代替上面各表达式。 2.对于下面的程序 main() int x,y; scanf(%d%*d%d,&x,&y); printf(%dn,x+y); 程序执行的时候输入:12 34 567则输出结果是 。 3.在C程序中,很多函数的使用必须要包含相应的库函数,例如:使用getchar函数要包含 ,使用fabs函数要包含 等。但是使用scanf和printf就不需要包含相应的库函数,因为启动TC的时候已经自动将其加载了。 4.对于下面的程序 main() char a,b,c; scanf(%c%c%c,&a,&b,&c); printf(%d %d %

16、d ,a,b,c); printf(%c%c%cn,a,b,c); 程序运行时输入123,输出结果是 。 三、问答题 1.C语句用来让计算机产生一定的操作,每个C语句都由分号(;)结束,但到目前为止有一类程序行是用分号结束的,但不是语句,请说出这类程序行的名称并说明不是语句的原因。 2.TurboC中,什么情况下int型数据与char型数据是可以通用的?3.如果将一个超出int型表示范围的long数据给一个int型数据赋值,是否会出现语法错误?为什么?第四章 答案 一、选择题 1.C 2.B 3.A 4.B 5.A 6.D 7.D 8.C 9.D 10.D 二、填空题 1.x+=1 2.579

17、 3.stdio.h math.h 4.49 50 51 123 三、问答题 1.变量声明部分(如int a,b,c;)虽然含有分号,但不是语句,因为其作用是在编译期间为变量分配存储空间,在执行的时候不产生操作,因此不是语句。 2.由于char数据占据一个字节的存储空间,而int型数据占据两个字节的存储空间,因此在其交集范围内就是可以通用的。也就是说当int型数据范围在0255时就是可以通用的范围。3.不会出现语法错误。因为long数据占四个字节存储空间,int型数据占两个字节存储空间,当将一个long型数据给int型数据赋值时,是将其两个低字节的内容赋值给int型变量。但是此时数据的值会发生

18、变化。第五章 选择结构程序设计 一、选择题(第1小题的答案多于一个) 1.选择出合法的if语句(假设其中出现的变量均为整型且已正确赋值) A、if(a=b)x+; B、if(a=b)x+ E、if(a=b=c)x+; F、if(1)x+; 2.以下运算符中优先级最高的是 ,优先级最低的是 。 A、& B、! C、!= D、| E、?: F、= 3.用以判断字符型变量c1的值是否为小写字母的最简单且正确的表达式为 。 A、a=c1=a & c1=z C、ac1 D、c1=a & c1=z 4.已知a是int型变量,不能正确表达数学关系10a15的表达式是 。 A、10a10 & a15 C、a=

19、11|a=12|a=13|a=14 D、!(a=15) 5.x为奇数时值为“真”,x为偶数时值为“假”的表达式是 。 A、!(x%2=1) B、x%2=0 C、x%2 D、!(x%2) 6.有以下程序: main() int a=2,b=1,c=2; if(ba) if(b0)c+;b+; printf(b=%d,c=%dn,b,c); 程序的输出结果是 。 A、b=1,c=2 B、b=1,c=0 C、b=2,c=2 D、b=1,c=1 7.有以下程序 main() int n; scanf(%d,&n); if(n+y?+x:y+)的值是 。 A、4 B、3 C、1 D、0 9.若有以下定义

20、: float x;int a,b,c=2;且a,b,x都有合理的值,则正确的switch语句是 。A、 switch(int(x) case 1: printf(*n); case 2: printf(*n); switch(x) case 1.0: printf(*n); case 2.0: printf(*n); C、B、 switch(a+b) case 1: printf(*n); case c: printf(*n); switch(a+b) case 1: printf(*n); case 1+2: printf(*n); D、 10.已知x=6,y=4,z=5,执行以下语句后,

21、能正确表示x,y,z值的选项是 。 if(xy)z=x;x=y;y=z; A、x=4,y=5,z=6 B、x=4,y=6,z=6 C、x=4,y=5,z=5 D、x=5,y=6,z=4 二、填空题 1.C语言中提供了6个关系运算符,这些运算符的优先级分为两个档次,其中优先级较高的运算符是 ,优先级较低的是 。 2.在逻辑运算符中,先级最高的是 ,次是 ,最低的是 。 3.表达式3&4的值是 。 4.已知:a=4,b=5,c=6,执行下面的表达式:(a=5)|(b=4)|(c=3)后,a,b,c的值为 。 5.若w=1,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z的值为 。 三、问

22、答题 1.将以下条件写成C语言逻辑表达式: px或py或p0并且x15 x+y10并且x-y = = 优先级较低的两个运算符:= != 2.! & | 3.1 4.5 5 6 5.1 三、问答题 1.px|py|p0&x10&x-y=1&a=1&b=8)2.语言中用1表示“真”,用0表示“假”。系统把值为非零的量当作“真”处理,把零当成“假”处理。例如3&4认为是两个“真”的量做逻辑与运算。第六章 循环控制 一、选择题 1.以下while循环中,循环体执行的次数是 。 k=1; while(-k)k=10; A、10次 B、无限次 C、一次也不执行 D、1次 2.有以下程序段,其中n是整型变量

23、,其输出结果是 。 n=2; while(n-); printf(%d,n); A、2 B、1 0 C、-1 D、0 3.若变量已正确定义,以下不能正确计算1+2+3+4+5的程序段是 。 A、i=1;s=1;dos=s+i;i+;while(i5); B、i=0;s=0;doi+;s=s+i;while(i5); C、i=1;s=0;dos=s+i;i+;while(i6); D、i=1;s=0;dos=s+i;i+;while(i4)printf(%d,i+);break; printf(%d,i+); A、55 B、56 C、程序错误,没有输出 D、循环条件永远为真,死循环 6.设已定义

24、i和k为int型变量,则以下for循环语句 。 for(i=0;k=-1,k=1;i+,k+) printf(*n); A、判断循环结束的条件不合法 B、是无限循环 C、循环一次也不执行 D、循环只执行一次 7.以下程序的输出结果是 。 main() int i; for(i=1;i5;i+) if(i%2)printf(*); else continue; printf(#); printf($n); A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$ 8.下面程序的输出结果是 。 main() int x=3,y=6,a=0; while(x+!=(y-=1) a+=1

25、; if(yx)break; printf(x=%d,y=%d,a=%dn,x,y,a); A、x=4,y=4,a=1 B、x=5,y=5,a=1 C、x=5,y=4,a=3 D、x=5,y=4,a=1 9.执行以下程序后输出结果是 。 main() int y=10; do y-; while(y-); printf(%dn,y-); A、程序错误 B、死循环 C、-1 D、0 10.有如下程序 main() int i,sum; for(i=1;i=3;sum+)sum+=i; printf(%dn,sum); 该程序的执行结果是 。 A、6 B、3 C、死循环 D、0 二、填空题 1.当while或do-while结构中while后括号中的表达式为空的时候,相当于循环条件是 。 2.for语句中含有三个表达式,其中表达式1 循环,表达式2相当于循环的 ,表达式3 循环,且在 之后执行。 * * * * * 3.找规律,打印出如图所示的图形。其中最上部的*出现在第15列上。 main() int i,j,k; for(i=0;i= 【1】 ;i+) for(j=0;j= 【2】 ;j+) printf(%c, ); for(k=0;k= 【3】 ;k+) printf(%c,*);

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

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