1、C语言开发入门教程习题答案C语言开发入门教程习题答案(总8页)C语言开发入门教程习题答案第1章 初识C语言一、填空题1、汇编语言、高级语言2、.c3、4、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(); fn, s); f输出小数点后2位数字 getchar();2、参考答案 #includevoid main() int a = 3, b = 4; a = ab; b = ba; a = ab; printf(a = %d, b = %dn, a, b); getchar();第3章 流程控制一、填空题1、break2、顺序3、循环4、if、ifelse、ifelse ifelse 5、3二、判断题1、 2、 3、 4、 5、三、选择题1、C 2、A、C 3、B
3、、C、D 4、D 5、A四、简答题1、跳转语句 break当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码 continue在循环语句中,立即终止本次循环,并执行下一次循环。 goto语句可以跳出外层循环,需要对外层循环添加标记,然后使用goto语句可以跳转到标记的语句处。2、for与while的相同之处都是完成一定次数的循环;其不同之处是:whie一般用于未知次数的循环;for一般用于次数已知的循环;两者声明变量的作用域不同,如果定义一个变量i,在while循环后i的值会存在,但for循环后,i的值
4、不存在了;五、编程题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 = 0; i 100; i+) fn, CIR_S(r); printf(圆的周长:%.2fn, CIR_L(r); system(pause);第9章 结构体与共用体一、填空题1、构造2、struct3、union4、5、8二、判断题1、 2、 3、 4、 5、三、选择题1
5、、A 2、A C 3、C 4、B 5、 D四、简答题1、结构体类型的定义方式如下所示:struct 结构体类型名称 数据类型 成员名1; 数据类型 成员名2; 数据类型 成员名n;共用体在定义上与结构体类型十分相似,共用体类型的定义方式如下所示:union 共用体类型名称 数据类型 成员名1; 数据类型 成员名2; 数据类型 成员名n;2、在程序执行的任何特定时刻,结构体变量中的所有成员是同时驻留在该结构体变量所占用的内存空间中,而共用体变量仅有一个成员驻留在共用体变量所占用的内存空间中。五、编程题1、参考答案#define _CRT_SECURE_NO_WARNINGS #include#i
6、ncludecorej; return (sum / n) / 3;core0 + si.score1 + si.score2) max) max = si.score0 + si.score1 + si.score2; index = i; printf(n最高分学生信息:n); printf(学号:%dn, (s + index)-ID); printf(姓名:%sn, (s + index)-name); printf(成绩:%.2f,%.2f,%.2fn, sindex.score0, sindex.score1, sindex.score2);void main() int i, j
7、; float avg; struct ST sts20; D); scanf(%s, stsi.name); for (j = 0; j 3; j+) scanf(%f, &stsi.scorej); fn, _avg(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、链表是一种常用的线性存储结构,它由一系列节点组成,节点可以在运行时动态生成,链表可以充分利用计算机内存空间,灵
8、活实现内存动态管理。2、栈是只允许在其一端进行插入和删除操作的线性表,它遵循的是后进先出原则;而队列是一个线性表,元素是从表的一端进行插入,从表的另一端进行删除,它遵循的是先进先出的原则。五、编程题1、参考答案#define _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 = N
9、ULL;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 = (struct Node*)malloc(sizeof(struct Node); pNode-data = ret; pNode-n
10、ext = NULL; if (temp = NULL) temp = pNode; else temp-next = pNode; if (pHead-head = NULL) pHead-head = temp; temp = pNode; pHead-length+; else break; return pHead;/求链表的结点数int _getcount(struct Link* pHead) int count = 0; struct Node* temp = pHead-head; if (pHead = NULL) return -1; while (temp) count+
11、; temp = temp-next; return count;int main() int num; struct Link* pHead = NULL; /创建链表 pHead = _create(); printf(此链表有%d个结点n, _getcount(pHead); system(pause); return 0;第11章 文件操作一、填空题1、文本文件 二进制文件2、ASCII码3、文件有关信息4、流5、fopen() fclose()二、判断题1、 2、 3、 4、 5、三、选择题1、B 2、A 3、C 4、C 5、ABC四、简答题1、在C语言中,通过不同输入/输出设备之间
12、的数据传输抽象表述为“流”,流实际上是一个字节序列,输入程序的字节序列被称为输入流,从程序输出的字节序列被称为输出流。2、文件指针是一个指向文件有关信息的指针,这些信息包括文件名、状态和当前位置,它们保存在一个结构体变量中;文件位置指针是随机读写文件的关键,它可以实现对文件任何位置进行读取的操作。3、C语言提供了一个fopen()函数的,该函数用于打开文件,其返回值类型为文件指针。而fclose()函数用于关闭文件,其返回值为int类型五、编程题1、参考答案#include#includeint main() char buf1024; FILE* fp1,*fp2; fp1 = fopen(C:UserswwwDesktop, r); if (fp1 = NULL) printf(文件打开失败n); fp2 = fopen(C:UserswwwDesktop, w); if (fp2 = NULL) printf(文件打开失败n); while (!feof(fp1) fgets(buf, 1024, fp1); fputs(buf, fp2); printf(拷贝完成n); fclose(fp1); fclose(fp2); system(pause); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1