2023年《C语言开发入门教程》—习题超详细解析超详细解析答案.pdf

上传人:C****o 文档编号:91136942 上传时间:2023-05-22 格式:PDF 页数:16 大小:601.76KB
返回 下载 相关 举报
2023年《C语言开发入门教程》—习题超详细解析超详细解析答案.pdf_第1页
第1页 / 共16页
2023年《C语言开发入门教程》—习题超详细解析超详细解析答案.pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2023年《C语言开发入门教程》—习题超详细解析超详细解析答案.pdf》由会员分享,可在线阅读,更多相关《2023年《C语言开发入门教程》—习题超详细解析超详细解析答案.pdf(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言开发入门教程习题答案 C语言开发入门教程习题答案 第 1 章 初识 C语言 一、填空题 1、汇编语言、高级语言 2、c 3、Stadio、h 4、return 5、编译、链接 二、判断题 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、参考答案#include void main()printf(我喜欢 C 语言!);getchar();/等待输入一个字符,起到让运行结果界面暂停 第 2 章 数据类型与运算符 一、填空题 1、0、0 x/0X 2、下划线 3、原码、反码、补码 4、构造类型、空类型 5、获取数据字节数 二、判断题 1、2、3、4、5、C语言开发入门教程习题答案 三、选择题 1、A、B、D 2、B 3、B 4、C 5、D 四、简答题 1、在 C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符与三目运算符,其区别与示例如下表:名称 运算所需变量个数

3、范例 单目运算符 1 个+、-、!、sizeof、双目运算符 2 个+、-、*、/、%、=、三目运算符 3 个?:2、在进行自增(+)与自减(-)的运算时,如果运算符(+或-)放在操作数的前面则就是先进行自增或自减运算,再进行其她运算。反之,如果运算符放在操作数的后面则就是先进行其她运算再进行自增或自减运算。五、编程题 1、参考答案#include void main()float a=1、5,b=2、6,h=5;float s;s=(a+b)*h;printf(梯形的面积为:%、2fn,s);/%、2f 输出小数点后 2 位数字 getchar();2、参考答案#include void m

4、ain()int a=3,b=4;a=ab;b=ba;a=ab;printf(a=%d,b=%dn,a,b);getchar();第 3 章 流程控制 一、填空题 1、break 2、顺序 3、循环 4、if、if else、if else if else 5、3 C语言开发入门教程习题答案 二、判断题 1、2、3、4、5、三、选择题 1、C 2、A、C 3、B、C、D 4、D 5、A 四、简答题 1、跳转语句 break 当它出现在 switch 条件语句中时,作用就是终止某个 case 并跳出 switch 结构。当它出现在循环语句中,作用就是跳出当前循环语句,执行后面的代码 contin

5、ue 在循环语句中,立即终止本次循环,并执行下一次循环。goto 语句可以跳出外层循环,需要对外层循环添加标记,然后使用goto 语句可以跳转到标记的语句处。2、for 与 while 的相同之处都就是完成一定次数的循环;其不同之处就是:whie 一般用于未知次数的循环;for 一般用于次数已知的循环;两者声明变量的作用域不同,如果定义一个变量 i,在while 循环后 i的值会存在,但 for 循环后,i 的值不存在了;五、编程题 1、参考答案#include void main()int x=5;if(x%2=0)printf(%d为偶数n,x);else printf(%d为奇数n,x)

6、;getchar();2、参考答案#include void main()int i,sum=0;for(i=0;i 100;i+)/控制 i 在 1-100 之间 if(i%2!=0)/如果就是奇数 sum+=i;/就加起来 printf(sum=%dn,sum);getchar();C语言开发入门教程习题答案 第 4 章 函数 一、填空题 1、return 2、有参、无参 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

8、 关键字(又称为静态函数)。它不可以被别的源文件调用,只在当前源文件中有效。五、编程题 1、参考答案#include int _sum(int i)if(i=1)return 1;if(i 1)return i+_sum(i-1);/函数自身调用自身 void main()int sum;sum=_sum(10);C语言开发入门教程习题答案 printf(sum=%dn,sum);getchar();2、参考答案#define _CRT_SECURE_NO_WARNINGS /scanf()函数就是不安全的,调用它要关闭安全检查#include#include int sum(int a,in

9、t b)return a+b;void main()int a,b,he;scanf(%d%d,&a,&b);/用户从键盘输入数据 he=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、一维数组指的就是只有一个下标的数组,其定义方式如下所示:类型说明符 数组名 常量表达式;其初始化有三种方法:直接对数组中的所

10、有元素赋值;如 int i5=1,2,3,4,5;只对数组中的一部分元素赋值;如 int i5=1,2,3;对数组全部元素赋值,但不指定长度;如 int i=1,2,3,4;2、一维数组与二维数组区别如下 一维数组只有一个下标,二维数组有两个下标;二维数组有行与列之分,一维数组则没有;C语言开发入门教程习题答案 赋值时一维数组下标可以略,二维数组可以省略第一个下标,第二个下标不能省略。五、编程题 1、参考答案#include#include int _max(int a5)/数组作为函数参数 int i;int max=a0;for(i=1;i 5;i+)if(max ai)max=ai;re

11、turn max;void main()int a5=3,4,6,9,13;printf(max=%dn,_max(a);system(pause);2、参考答案#include#include void _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;C语言开发入门教程习题答案 int b=25,24,12,76,101,96,28;printf(排序前:);for(i=0;i 7;i+)printf(%d ,bi);_sort(

12、b,7);/数组名作为函数参数 printf(n排序后:);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、在程序运行过程中,数据都就是保存在内存中的,内存就是以字节为单位的连续存储空间,每个字节都有一个编号,这个编号称为地址。变量也就是有地址的,专门用于存放其她变量的地址,这种变量称为指针变量,通常简称指针。通过指针可以操作它指向的内存中的变量。取内存的地址或取内存中的

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

14、clude#include void s*a,int*b)int temp;temp=*a;C语言开发入门教程习题答案 *a=*b;*b=temp;void main()int a,b;printf(请输入两个数:n);scanf(%d%d,&a,&b);s,&b);printf(交换后:n%d%dn,a,b);system(pause);2、参考答案#include#include void copystr(char*form1,char*form2)while(*form1)*form2=*form1;form2+;form1+;*form2=0;void main()char str12

15、0=Hello 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、b 4、strcmp()5、字符串 C语言开发入门教程习题答案 二、判断题 1、2、3、4、5、三、选择题 1、A 2、C 3、A、C、D 4、C、D 5、A 四、简答题 1、字符串比同等字符数组多占一个字符的内存空间。2、Put

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

17、1,s2);if(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#include void main()int a,b,c;char s1100,s2100,s3100;gets(s1);gets(s2);gets(s3);C语言开发入门教程习题答案 a=atoi(s1);b=atoi(s2);c=atoi(s3);pri

18、ntf(s1+s2+s3=%dn,a+b+c);system(pause);第 8 章 预处理 一、填空题 1、#define 2、#include 3、#if/#else/#endif、#ifdef、#ifndef 4、#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()也要关闭安全检查#inc

20、lude#include#define FUNC(x,y)x%y void main()int a,b;scanf(%d%d,&a,&b);printf(两个数的余数为:%dn,FUNC(a,b);system(pause);2、参考答案 C语言开发入门教程习题答案#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*r void main()float r;printf(请输入圆的半径:n);sc

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

22、型 成员名 1;数据类型 成员名 2;C语言开发入门教程习题答案 数据类型 成员名 n;2、在程序执行的任何特定时刻,结构体变量中的所有成员就是同时驻留在该结构体变量所占用的内存空间中,而共用体变量仅有一个成员驻留在共用体变量所占用的内存空间中。五、编程题 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;f

23、loat avg;for(i=0;i n;i+)for(j=0;j 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);C语言开发入门教程习题答案 printf(姓名:%sn,(s+index)-name);

24、printf(成绩:%、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,_avg(sts,20);_get(sts,20);s

25、ystem(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、参考答案 C语言开发入门教程习题答案#de

26、fine _CRT_SECURE_NO_WARNINGS#include#include struct 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

27、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-next=NULL;if(temp=NULL)temp=pNode;else temp-next=pNode;if(pHead-head=NULL)pHead-head=temp;temp=pNode;pHead-length+;else break;C语言开发入门教程习题答案 return pHe

28、ad;/求链表的结点数 int _getcount(struct Link*pHead)int count=0;struct Node*temp=pHead-head;if(pHead=NULL)return-1;while(temp)count+;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、文本文件 二

29、进制文件 2、ASCII码 3、文件有关信息 4、流 5、fopen()fclose()二、判断题 1、2、3、4、5、三、选择题 1、B 2、A 3、C 4、C 5、ABC 四、简答题 1、在 C语言中,通过不同输入/输出设备之间的数据传输抽象表述为“流”,流实际上就是一个字节序列,输入程序的字节序列被称为输入流,从程序输出的字节序列被称为C语言开发入门教程习题答案 输出流。2、文件指针就是一个指向文件有关信息的指针,这些信息包括文件名、状态与当前位置,它们保存在一个结构体变量中;文件位置指针就是随机读写文件的关键,它可以实现对文件任何位置进行读取的操作。3、C语言提供了一个 fopen()

30、函数的,该函数用于打开文件,其返回值类型为文件指针。而 fclose()函数用于关闭文件,其返回值为 int 类型 五、编程题 1、参考答案#include#include int main()char buf1024;FILE*fp1,*fp2;fp1=fopen(C:UserswwwDesktopa、txt,r);if(fp1=NULL)printf(文件 a、txt打开失败n);fp2=fopen(C:UserswwwDesktopb、txt,w);if(fp2=NULL)printf(文件 b、txt打开失败n);while(!feof(fp1)fgets(buf,1024,fp1);fputs(buf,fp2);printf(拷贝完成n);fclose(fp1);fclose(fp2);system(pause);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com