您好,欢迎光临有路网!
C语言程序设计(第2版)
QQ咨询:
有路璐璐:

C语言程序设计(第2版)

  • 作者:孙改平 王德志 主编 吴静 盛建瓴 王晓菊 乔良 副主编
  • 出版社:清华大学出版社
  • ISBN:9787302522928
  • 出版日期:2019年06月01日
  • 页数:0
  • 定价:¥45.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书是按照普通高等院校大学计算机程序设计课程的培养目标和基本要求,结合全国计算机等级考试(二级)*考试大纲,由多年从事计算机基础教学,具有教学经验的教师编写。全书共分10章,系统地介绍了程序设计概述、数据类型、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体和共用体、文件等内容。
    文章节选
    第5章第5章循环结构程序设计经过前几章的学习,读者已经掌握了结构化程序设计的顺序结构和选择结构。在本章将继续学习循环结构,它可以解决许多循环控制问题。通过对本章的学习,能够综合运用结构化编程思想解决一些问题。
    5.1循环结构程序的概念
    【引例51】编程计算一个学生三门课程的平均成绩。
    【思路】把一个学生三门课程的成绩相加,再除以3,得到平均成绩。使用顺序结构,就可以实现上述功能。
    编写程序段如下: float score1, score2, score3, aver;
    scanf("%f,%f,%f",&score1,&score2,&score3);
    aver=(score1 score2 score3)/3;
    printf("aver=%f\\n", aver);【引例52】一个班30名学生,求每个学生三门课程的平均成绩。
    【思路】在引例51中,程序段实现的功能是求一个学生三门课程的平均成绩。也就是说,可以利用上述同一个程序段来求每个学生的平均成绩。如果有30名学生,则要将上述程序段重复书写30遍,来实现求30名学生每人三门课程的平均成绩的功能。
    【程序代码】float score1, score2, score3, aver;
    //求第1名学生三门课程的平均成绩
    scanf("%f,%f,%f",&score1,&score2,&score3);
    aver=(score1 score2 score3)/3;
    printf("aver=%f\\n",aver);
    //求第2名学生三门课程的平均成绩
    scanf("%f,%f,%f",&score1,&score2,&score3);
    aver=(score1 score2 score3)/3;
    printf("aver=%f\\n",aver);

    //求第30名学生三门课程的平均成绩scanf("%f,%f,%f",&score1,&score2,&score3);
    aver=(score1 score2 score3)/3;
    printf("aver=%f\\n",aver);C语言程序设计(第2版)第5章循环结构程序设计【存在问题】将同一个程序段重复书写30遍,存在工作量大、程序易出错、可阅读性差、可维护性差等问题。引例52涉及的学生数是30名,通过重复复制程序段还是可以完成的。但是,试想如果涉及的学生数是几千、几万、几十万,则采用上述方法来完成相应的功能是无法想象的。
    【总结】引例52的主要程序采用顺序结构,重复地执行同一个程序段,总共重复了30次。上述这类问题,可以采用本章将要学习的循环结构来解决。
    循环结构程序的概念: 循环结构程序就是重复执行一个程序段的程序。在C语言中,循环结构的实现语句有三种,分别为while语句、dowhile语句和for语句。下面,将对由上述三种语句实现的while循环、dowhile循环和for循环分别给予详细阐述。
    5.2while循环
    while语句的一般形式为: while(表达式)循环体其中,表达式是循环条件,由它来控制循环体是否执行。循环体可能是一条语句,也可能是多条语句组成的复合语句。
    while循环流程图如图5.1所示。如果表达式的值为真(非0),则执行循环体,如此反复,直到表达式的值为假(0)时,跳出while循环,while循环结束。从图5.1中可以看出,while语句实现的是“当型”循环结构。
    while循环的特点是先判断表达式,后执行循环体。
    图5.1while循环流程图
    现在,尝试着用while循环来完成引例52所要实现的功能,其流程图如图5.2所示。这里,从第1个学生开始,一直到第30个学生结束,用n来记录学生的次序。所以,n初始值为1,表达式为n≤30,每次循环*后,n都加1;循环结束的条件是n>30,即当n=31时,跳出while循环。这里,将n称为循环变量。
    【程序代码】1#include <stdio.h>
    2void main()
    3{
    4float score1,score2,score3,aver;
    5int n=1;//循环变量初始化
    6while(n<=30) //循环条件
    7{//循环体
    8scanf("%f,%f,%f",&score1,&score2,&score3);
    9aver=(score1 score2 score3)/3;
    10printf("aver=%f\\n",aver);
    11n ;//循环变量加1
    12}
    13}图5.2用while循环实现引例52的程序流程图
    图5.3例51程序流程图
    目录
    目录 C语言程序设计(第2版)第1章程序设计概述1 1.1计算机与程序设计语言1 1.1.1机器语言1 1.1.2汇编语言2 1.1.3**语言2 1.2C语言的发展和特点4 1.2.1C语言的发展4 1.2.2C语言的特点6 1.3C语言的应用7 1.3.1简单的C语言程序实例7 1.3.2C语言程序的结构10 1.4C程序的工作原理与操作环境12 1.4.1工作原理12 1.4.2操作环境14 习题20 第2章C数据类型22 2.1C语言的数据类型22 2.2常量和变量23 2.2.1标识符23 2.2.2常量和符号常量24 2.2.3变量25 2.3整型数据26 2.3.1整型常量26 2.3.2整型数据在内存中的存储形式26 2.3.3整型变量27 2.3.4整型常量的类型30 2.3.5整型类型大小30 2.4实型数据30 2.4.1实型常量30C语言程序设计(第2版)目录2.4.2实型数据在内存中的存储形式31 2.4.3实型变量32 2.4.4实型类型大小33 2.5字符型数据33 2.5.1字符常量34 2.5.2字符变量35 2.5.3字符数据在内存中的存储形式及使用方法35 2.5.4字符串常量37 习题38 第3章顺序结构程序设计40 3.1赋值运算符与赋值表达式40 3.1.1赋值运算符40 3.1.2赋值表达式41 3.1.3赋值语句41 3.1.4左值和右值42 3.1.5不同数据类型间的赋值规则42 3.2算术运算符与算术表达式44 3.2.1算术运算符44 3.2.2算术表达式45 3.2.3运算符的优先级和结合性45 3.2.4自增自减运算符46 3.2.5算术运算中数据类型转换规则48 3.2.6sizeof运算符、复合赋值运算符49 3.3数据的格式化输出50 3.3.1整数的输出53 3.3.2实数的输出56 3.3.3字符和字符串的输出58 3.3.4格式化输出总结59 3.4数据的格式化输入61 3.5单个字符的输入和输出65 3.5.1单个字符输出函数putchar65 3.5.2单个字符输入函数getchar66 3.6宏定义与宏替换67 3.6.1无参宏定义67 3.6.2带参宏定义70 3.7程序举例71 习题73 第4章选择结构程序设计75 4.1算法及其描述方法75 4.1.1算法的概念75 4.1.2算法的表示76 4.2关系运算符与关系表达式83 4.2.1关系运算符83 4.2.2关系表达式84 4.3逻辑运算符与逻辑表达式85 4.3.1逻辑运算符85 4.3.2逻辑表达式86 4.4单分支与双分支结构88 4.4.1单分支结构88 4.4.2双分支结构90 4.4.3if语句的嵌套93 4.5条件运算符与条件表达式96 4.6多分支结构98 4.6.1多分支结构的条件语句98 4.6.2多分支结构的开关语句100 4.7程序举例103 习题110 第5章循环结构程序设计113 5.1循环结构程序的概念113 5.2while循环114 5.3dowhile循环117 5.4逗号表达式120 5.5for循环121 5.6循环的嵌套128 5.7流程的转移控制131 5.7.1goto语句131 5.7.2break语句132 5.7.3continue语句133 5.8几种循环的比较136 5.9程序举例136 习题140 第6章数组142 6.1数组的概念142 6.2一维数组144 6.2.1一维数组的定义144 6.2.2一维数组的引用145 6.2.3一维数组的初始化147 6.3二维数组154 6.3.1二维数组的定义154 6.3.2二维数组的引用155 6.3.3二维数组的初始化157 6.4字符数组159 6.4.1字符数组与字符串159 6.4.2字符数组的定义与初始化160 6.4.3字符数组的输入与输出162 6.4.4字符串处理函数165 6.5程序举例170 习题176 第7章函数179 7.1函数的概念179 7.2函数定义与返回值181 7.2.1函数类型181 7.2.2函数定义183 7.3函数调用184 7.3.1函数调用的形式184 7.3.2函数调用时的参数传递185 7.4函数声明186 7.5函数的嵌套与递归调用193 7.5.1函数的嵌套调用193 7.5.2函数的递归调用196 7.6数组作为函数参数198 7.6.1数组元素作为函数参数198 7.6.2一维数组作为函数参数200 7.6.3二维数组作为函数参数202 7.7变量的作用域和存储类型206 7.7.1变量的作用域206 7.7.2变量的存储类型210 7.8编译预处理214 7.9综合实例217 习题231 第8章指针236 8.1指针的概念236 8.2指针变量的定义238 8.2.1定义指针变量238 8.2.2引用指针变量239 8.2.3指针变量作为函数参数243 8.3指针与数组247 8.3.1数组元素的指针247 8.3.2一维数组的地址和指针248 8.3.3二维数组的地址和指针256 8.4字符串和指针260 8.4.1使用字符指针变量访问字符串常量260 8.4.2使用字符指针变量访问字符串变量263 8.4.3字符指针变量与字符数组的区别265 8.5指针与函数268 8.5.1指向函数的指针268 8.5.2返回指针的函数270 8.6指针的**应用272 8.6.1指针数组272 8.6.2main函数的命令行参数274 8.6.3动态内存分配275 习题282 第9章结构体和共用体286 9.1结构体类型和结构体变量286 9.1.1结构体类型的定义287 9.1.2结构体变量的定义289 9.1.3结构体变量的引用291 9.1.4结构体变量的初始化294 9.1.5结构体变量的举例295 9.2结构体数组296 9.2.1结构体数组的定义297 9.2.2结构体数组的引用298 9.2.3结构体数组的初始化299 9.2.4结构体数组的举例300 9.3结构体指针301 9.3.1指向结构体变量的指针302 9.3.2指向结构体数组的指针303 9.4链表306 9.4.1链表概念306 9.4.2链表相关操作308 9.5共用体325 9.5.1共用体类型和共用体变量的定义325 9.5.2共用体变量的引用和初始化328 9.5.3共用体变量的举例331 9.6枚举类型333 9.7用typedef定义新类型名335 习题337 第10章文件339 10.1文件概述339 10.1.1文件的概念339 10.1.2文件的分类340 10.1.3文件指针341 10.2文件的打开与关闭341 10.2.1文件的打开341 10.2.2文件的关闭343 10.2.3文件的检测344 10.3文件的读写操作345 10.3.1字符读写函数345 10.3.2字符串读写函数348 10.3.3格式化读写函数351 10.3.4数据块读写函数356 10.4文件的随机读写360 习题365 附录AC语言中的关键字370 附录BC运算符的优先级与结合性372 附录C常用字符与ASCII值对照表373 附录D常用的ANSI C标准库函数374 参考文献381

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外