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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(《C语言开发入门教程》习题答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C语言开发入门教程》习题答案.docx

1、C语言开发入门教程习题答案C语言开发入门教程习题答案第1章初识C语言一、填空题1、汇编语言、高级语言2、.c3、Stadio.h4、return5、编译、链接二、判断题1、 2、 3、 4、 5、三、选择题1、A 2、B 3、C、D 4、D 5、B四、简答题1、printf(),该函数用于输出一行信息,可以简单理解为向控制台输出文字或符号等。printf()括号中的内容称为函数的参数,括号内可以看到输出的字符串“Hello, worldn”,其中“n”表示换行操作,它不会输出到控制台。2、注释是对程序的某个功能或者某行代码的解释说明,它只在C语言源文件中有效,在编译时会被编译器忽略。五、编程题

2、1、参考答案#includevoid main() printf(我喜欢C语言!); getchar(); /等待输入一个字符,起到让运行结果界面暂停第2章数据类型与运算符一、填空题1、0、0x/0X2、下划线3、原码、反码、补码4、构造类型、空类型5、获取数据字节数二、判断题1、 2、 3、 4、 5、三、选择题1、A、B、D 2、B 3、B 4、C 5、D四、简答题1、在C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和三目运算符,其区别与示例如下表:名称运算所需变量个数范例单目运算符1个+、-、!、sizeof、双目运算符2个+、-、*、/、%、=、三目运

3、算符3个?:2、在进行自增(+)和自减(-)的运算时,如果运算符(+或-)放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。五、编程题1、参考答案#includevoid main() float a = 1.5, b = 2.6, h = 5; float s; s = (a + b)*h; printf(梯形的面积为:%.2fn, s); /%.2f输出小数点后2位数字 getchar();2、参考答案#includevoid main() int a = 3, b = 4; a = ab; b = ba; a

4、 = ab; printf(a = %d, b = %dn, a, b); getchar();第3章流程控制一、填空题1、break2、顺序3、循环4、if、ifelse、ifelseifelse 5、3二、判断题1、 2、 3、 4、 5、三、选择题1、C 2、A、C 3、B、C、D 4、D 5、A四、简答题1、跳转语句break当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码continue在循环语句中,立即终止本次循环,并执行下一次循环。goto语句可以跳出外层循环,需要对外层循环添加标记,然

5、后使用goto语句可以跳转到标记的语句处。2、for与while的相同之处都是完成一定次数的循环;其不同之处是:whie一般用于未知次数的循环;for一般用于次数已知的循环;两者声明变量的作用域不同,如果定义一个变量i,在while循环后i的值会存在,但for循环后,i的值不存在了;五、编程题1、参考答案#includevoid main() int x = 5; if (x % 2 = 0) printf(%d为偶数n,x); else printf(%d为奇数n,x); getchar();2、参考答案#includevoid main() int i, sum = 0; for (i =

6、 0; i 100; i+) /控制i在1-100之间 if (i % 2 != 0) /如果是奇数 sum += i; /就加起来 printf(sum = %dn, sum); getchar();第4章函数一、填空题1、return2、有参、无参3、scanf()4、递归5、全局、局部二、判断题1、 2、 3、 4、 5、三、选择题1、B 2、D 3、A、B、C 4、B、C 5、A、B、C四、简答题1、局部变量局部变量就是在函数内部声明的变量,它只在本函数内有效,也就是说,只能在本函数内使用它。此外,局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用。全

7、局变量全局变量(包括main()函数),它不属于哪一个函数,而是属于源程序。因此全局变量可以为程序中的所有函数所共用。它的有效范围从定义处开始到源程序结束。2、外部函数可以被其他源文件调用的函数称为外部函数,在调用外部函数之前,需要在当前源文件中定义外部函数。定义外部函数的方式是在函数的返回值类型前面添加extern关键字。内部函数函数只在它的定义文件中有效,该类函数称为内部函数。在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。它不可以被别的源文件调用,只在当前源文件中有效。五、编程题1、参考答案#includeint _sum(int i) if (i

8、= 1) return 1; if (i 1) return i + _sum(i - 1); /函数自身调用自身void main() int sum; sum = _sum(10); printf(sum = %dn, sum); getchar();2、参考答案#define _CRT_SECURE_NO_WARNINGS /scanf()函数是不安全的,调用它要关闭安全检查#include#includeint sum(int a,int b) return a + b;void main() int a,b,he; scanf(%d%d, &a,&b);/用户从键盘输入数据 he =

9、 sum(a, b); printf(he = %dn, he); system(pause); /包含在stdlib.h头文件中,也可以让运行结果界面暂停第5章数组一、填空题1、集合2、首3、变量4、下标5、9二、判断题1、 2、 3、 4、 5、三、选择题1、D 2、A 3、C 4、A、C 5、A、B、C、D四、简答题1、一维数组指的是只有一个下标的数组,其定义方式如下所示:类型说明符数组名常量表达式;其初始化有三种方法:直接对数组中的所有元素赋值;如int i5=1,2,3,4,5;只对数组中的一部分元素赋值;如int i5=1,2,3;对数组全部元素赋值,但不指定长度;如int i=1

10、,2,3,4;2、一维数组和二维数组区别如下一维数组只有一个下标,二维数组有两个下标;二维数组有行与列之分,一维数组则没有;赋值时一维数组下标可以略,二维数组可以省略第一个下标,第二个下标不能省略。五、编程题1、参考答案#include#includeint _max(int a5) /数组作为函数参数 int i; int max = a0; for (i = 1; i 5; i+) if (max ai) max = ai; return max;void main() int a5 = 3, 4, 6, 9, 13 ; printf(max = %dn, _max(a); system(

11、pause);2、参考答案#include#includevoid _sort(int a, int n) int i, j, temp; for (i = 0; i n - 1; i+) for (j = 0; j aj + 1) temp = aj; aj = aj + 1; aj + 1 = temp; void main() int i; int b = 25, 24, 12, 76, 101, 96, 28 ; printf(排序前:); for (i = 0; i 7; i+) printf(%d , bi); _sort(b, 7); /数组名作为函数参数 printf(n排序后

12、:); for (i = 0; i 7; i+) printf(%d , bi); system(pause);第6章指针一、填空题1、指针2、字符数3、&4、函数指针5、二级指针二、判断题1、 2、 3、 4、 5、三、选择题1、C 2、A 3、B 4、C 5、A四、简答题1、在程序运行过程中,数据都是保存在内存中的,内存是以字节为单位的连续存储空间,每个字节都有一个编号,这个编号称为地址。变量也是有地址的,专门用于存放其他变量的地址,这种变量称为指针变量,通常简称指针。通过指针可以操作它指向的内存中的变量。取内存的地址或取内存中的值进行运算。如char arr10,*p;p = arr;a

13、rr是大小为10的指针数组,p是指向这个数组的指针。2、数组指针是指向数组的指针,数组中存储的是统一的其他数据类型的变量;指针指向这一块内存的首地址。可以通过指针的移动来依次访问数组中的元素。指针数组是指数组中存储的是指针,数组中指针的数据类型必须一致,指针数组的定义方式与普通数组类似,只需在类型前面加上“*”,如int*arr10;存储了10个int类型的指针。五、编程题1、参考答案#define _CRT_SECURE_NO_WARNINGS /scanf()函数是不安全的,调用它要关闭安全检查#include#includevoid swap(int *a, int *b) int te

14、mp ; temp = *a; *a = *b; *b = temp;void main() int a, b; printf(请输入两个数:n); scanf(%d%d, &a, &b); swap(&a, &b); printf(交换后:n%d %dn, a, b); system(pause);2、参考答案#include#includevoid copystr(char *form1, char *form2) while (*form1) *form2 = *form1; form2+; form1+; *form2 = 0;void main() char str120 = Hel

15、lo World; char str220 = I am Chinese; printf(复制前:nstr1:%snstr2:%sn, str1, str2); copystr(str1, str2); printf(复制后:nstr1:%snstr2:%sn, str1, str2); system(pause);第7章字符串一、填空题1、strlen()2、换行3、b4、strcmp() 5、字符串二、判断题1、 2、 3、 4、 5、三、选择题1、A 2、C 3、A、C、D 4、C、D 5、A四、简答题1、字符串比同等字符数组多占一个字符的内存空间。2、Puts()函数接收的参数是一个字

16、符串指针,该指针指向要输出的字符串,并且会自动在字符串末尾追加换行符n,调用成功时返回int类型的数,否则返回EOF。strcat()函数在使用前,第一个参数对应的字符数组必须要有足够的空间来容纳连接后的字符串,否则会造成缓冲区溢出。五、编程题1、参考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要关闭安全检查#include#include#includevoid main() char s1100, s2100; int i; printf(请输入两个字符串:n); gets(s1); gets(s2); i = strcmp(s1, s2); if

17、(i 0) printf(第1个字符串较大n); else if (i 0) printf(第2个字符串较大n); else printf(两个字符串相等n); system(pause);2、参考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要关闭安全检查#include#include#includevoid main() int a, b, c; char s1100, s2100,s3100; gets(s1); gets(s2); gets(s3); a = atoi(s1); b = atoi(s2); c = atoi(s3); printf

18、(s1+s2+s3 = %dn, a + b + c); system(pause);第8章预处理一、填空题1、#define2、#include3、#if/#else/#endif、#ifdef、#ifndef4、#include 、#include “文件名”5、880二、判断题1、 2、 3、 4、 5、三、选择题1、C 2、D 3、B 4、B 5、B四、简答题1、预处理指令有三种:宏定义、文件包含、条件编译。宏定义使用#define来表示,当一些常量在程序中频繁使用,为了避免书写错误,可以使用宏定义来表示。文件包含是指在C语言程序中经常会使用到一些函数,这些函数需要引用相关的头文件,引

19、用方式为#include或者是#include stdio.h。条件编译是指C语言程序为了完成某些功能,只有在指定条件下才进行编译。2、条件编译的格式有三种。第一种是#if/#else/endif指令,只有符合判断条件才会执行相应的编译。第二种是#ifdef指令,如果想判断某个宏是否被定义可以使用该指令。第三种是#ifndef指令,用来判断某个宏是否被定义,如果没有定义那么就会编译#ifndef到#endif中间的内容,否则就跳过。五、编程题1、参考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要关闭安全检查#include#include#define

20、FUNC(x,y) x%yvoid main() int a, b; scanf(%d%d, &a, &b); printf(两个数的余数为:%dn, FUNC(a, b); system(pause);2、参考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要关闭安全检查#include#include#define PI 3.1415926#define CIR_S(r) PI*r*r#define CIR_L(r) 2*PI*rvoid main() float r; printf(请输入圆的半径:n); scanf(%f, &r); printf(圆

21、的面积:%.2fn, CIR_S(r); printf(圆的周长:%.2fn, CIR_L(r); system(pause);第9章结构体与共用体四、填空题1、构造2、struct3、union4、stu.num5、8五、判断题1、 2、 3、 4、 5、六、选择题1、A 2、A C 3、C 4、B 5、D四、简答题1、结构体类型的定义方式如下所示:struct 结构体类型名称 数据类型成员名1; 数据类型成员名2; 数据类型成员名n;共用体在定义上与结构体类型十分相似,共用体类型的定义方式如下所示:union共用体类型名称数据类型成员名1;数据类型成员名2;数据类型成员名n;2、在程序执行

22、的任何特定时刻,结构体变量中的所有成员是同时驻留在该结构体变量所占用的内存空间中,而共用体变量仅有一个成员驻留在共用体变量所占用的内存空间中。五、编程题1、参考答案#define _CRT_SECURE_NO_WARNINGS #include#include/存储学生信息的结构体struct ST int ID; char name20; float score3;/_avg()求平均成绩的函数float _avg(struct ST *s, int n) int i, j; int sum = 0; float avg; for (i = 0; i n; i+) for (j = 0; j

23、 3; j+) sum += si.scorej; return (sum / n) / 3;/_get()函数找最高分学生,输出该学生的信息void _get(struct ST* s, int n) int i, j; int max = 0; int index = 0; for (i = 0; i max) max = si.score0 + si.score1 + si.score2; index = i; printf(n最高分学生信息:n); printf(学号:%dn, (s + index)-ID); printf(姓名:%sn, (s + index)-name); pri

24、ntf(成绩:%.2f,%.2f,%.2fn, sindex.score0, sindex.score1, sindex.score2);void main() int i, j; float avg; struct ST sts20; /输入学生信息 for (i = 0; i 20; i+) printf(请输入第%d个学生信息:n,i+1); scanf(%d, &stsi.ID); scanf(%s, stsi.name); for (j = 0; j 3; j+) scanf(%f, &stsi.scorej); /输入各科成绩 printf(3门课的总平均成绩为:%.2fn, _a

25、vg(sts, 20); _get(sts, 20); system(pause);第10章数据结构一、填空题1、数据域指针域2、指针3、栈顶栈底4、栈5、入队出队二、判断题1、 2、 3、 4、 5、三、选择题1、B 2、B 3、D 4、D 5、D四、简单题1、链表是一种常用的线性存储结构,它由一系列节点组成,节点可以在运行时动态生成,链表可以充分利用计算机内存空间,灵活实现内存动态管理。2、栈是只允许在其一端进行插入和删除操作的线性表,它遵循的是后进先出原则;而队列是一个线性表,元素是从表的一端进行插入,从表的另一端进行删除,它遵循的是先进先出的原则。五、编程题1、参考答案#define

26、_CRT_SECURE_NO_WARNINGS #include#includestruct Node /结点 int data; struct Node* next;struct Link /链表头 int length; struct Node* head;void _init(struct Link* L) /初始化 L-length = 0; L-head = NULL;struct Link* _create() int ret = 1; struct Link* pHead = (struct Link*)malloc(sizeof(struct Link); _init(pHead); /初始化链表 struct Node* pNode = NULL, *temp = NULL; printf(请输入数据,输入0结束n); while (ret) scanf(%d, &ret); if (ret) pNode = (stru

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1