C语言编程基础(第3版)上机指(c语言上机指导书答案)

http://www.itjxue.com  2023-02-09 11:37  来源:未知  点击次数: 

《C语言课程设计(第3版)/程序设计语言课程设计丛书》epub下载在线阅读全文,求百度网盘云资源

《C语言课程设计(第3版)/程序设计语言课程设计丛书》电子书网盘下载免费在线阅读

书名:C语言课程设计(第3版)

出版年份:2013年8月

页数:340

内容简介

本书分为5篇,共16章,精心开发了10个案例。第一篇重点介绍了C语言的基本知识点和课程设计的指导工作。第二篇介绍字符界面及文件操作编程,包括通讯录管理、学生成绩管理、家庭财务管理和图书管理这4个系统的设计与实现过程。第三篇是游戏编程,介绍了贪吃蛇和俄罗斯方块游戏的设计和实现过程。

第四篇介绍了UDP程序设计和简单的Web服务器的设计与实现过程。第五篇是Linux下的C语言编程,介绍了基于堆栈的计算器和万年历两个Linux下应用程序的设计与实现过程。每个例子都是很好的课程设计工作的案例。

求C语言程序设计学习指导(苏小红) 第3版.pdf

中文名:C语言程序设计

作者:吴国凤

图书分类:科技

资源格式:PDF

版本:高清文字版

出版社:合肥工业大学出版社

书号:9787565008405

发行时间:2012年8月1日

地区:大陆

语言:简体中文

本书是高清文字版.非扫描.拒绝模糊.享受清晰!

无法下载的用户请到评论区一楼查看网盘地址!

内容介绍:

本文章由第1章 C语言概述、第2章 数据类型、运算符与表达式等组成。

内容截图:

目录:

第1章 C语言概述10

1.1 程序设计与C语言10

1.2 C程序初识12

1.3 程序设计方法与算法16

1.4 C程序运行环境与学习方法20

1.5 例题精解24

1.6 本章小结25

习题25

第2章 数据类型、运算符与表达式27

2.1 C语言基础27

2.2 常量30

2.3 变量32

2.4 基本运算符与表达式33

2.5 不同数据类型间的转换和运算39

2.6 例题精解41

2.7 本章小结42

习题43

第3章 顺序结构程序设计45

3.1 C语言中的语句45

3.2 数据的输入输出47

3.3 例题精解54

3.4 本章小结57

习题57

第4章 选择结构程序设计62

4.1 关系运算和逻辑运算62

4.2 if语句65

4.3 switch语句70

4.4 例题精解72

4.5 本章小结75

习题75

第5章 循环结构程序设计80

5.1 概述80

5.2 while语句80

5.3 dowhile语句82

5.4 for语句84

5.5 循环嵌套88

5.6 break语句、continue语句和goto语句与标号90

5.7 例题精解92

5.8 本章小结97

习题97

第6章 数组105

6.1 一维数组105

6.2 二维数组108

6.3 字符数组和字符串112

6.4 例题精解117

6.5 本章小结121

习题122

第7章 指针126

7.1 指针的基本概念126

7.2 指针与数组133

7.3 指针数组和指向指针的指针142

7.4 例题精解147

7.5 本章小结149

习题150

第8章 函数154

8.1 函数的基本概念154

8.2 函数参数和函数的值155

8.3 函数的调用157

8.4 数组作为函数参数158

8.5 指针作为函数参数161

8.6 嵌套调用与递归调用163

8.7 存储类型166

8.8 命令行参数170

8.9 例题精解171

8.10 本章小结175

习题175

第9章 编译预处理181

9.1 宏定义181

9.2 文件包含184

9.3 条件编译185

9.4 例题精解186

9.5 本章小结188

习题189

第10章 结构体与共用体192

10.1 结构体192

10.2 共用体208

10.3 枚举211

10.4 用户定义类型212

10.5 例题精解213

10.6 本章小结214

习题215

第11章 位运算219

11.1 位运算的概念219

11.2 位运算219

11.3 位域(位段)223

11.4 本章小结226

习题226

第12章 文件228

12.1 文件概念228

12.2 文件指针229

12.3 文件的打开与关闭230

12.4 文件的读写231

12.5 文件的定位操作238

12.6 文件的错误检测240

12.7 本章小结241

习题241

附录243

1. 常用字符与ASCII代码对照表243

2. C语言运算符的优先级与结合性244

3. C库函数245

4. 常见错误信息表252

下载地址:

有什么比较好的介绍c++编程技巧的书?

C/C++入门基础

Windows C 程序设计入门与提高 单片机C语言入门 C++ 入门基础教程

C语言常用算法源代码 C常用算法程序集 C++ 语言命令详解

C语言编程要点 C语言编程基础 Borland C++使用手册

C语言数值算法程序大全(第二版) Borland C++4.0安装与使用 C++ Builder 5.0经典入门

非C程序员C++入门自学教程 C语言常用函数手册 C++标准程序库自修教程与参考手册

C/C++指令字典 C语言图形函数介绍 C语言数值计算初步

C++Builder基础进阶 C++ 设计新思维 C++Builder英文帮助

C语言初学者入门讲座 C++完全参考手册 C游戏编程从入门到精通

《C++Builder学习大全》中文版 C++ Builder编程研究文档 C++程序调试实用手册

Borland C++4.0从入门到精通

实用教程

经典C语言教程 C++捷径教程(第三版) Borland C++实用教材

嵌入式系统中C的开发 C++上机实践指导教程(第三版) C++程序设计语言题解

C++大学教程(第二版) C++ BUILDER 实用培训教程 Borland C++程序设计教程

C++Builder自学培训教程 C++程序设计培训教程 创世纪的C++ Builder教程

C++傻瓜教程 C++编程金典(第三版) C高级实用程序设计

精通C++ Builder 5程序设计高级教程 C++程序设计语言经典题与实验指导 C++程序设计教程实验书

C++大学基础教程 C++面向对象到窗口程序设计 C语言核心编程

Borland C++4.0程序设计 嵌入式系统的C程序设计 经典C教程

C++ 面向对象多线程编程 Borland C++深入编程 实用C语言详解

编程实例

C++实例教程 C++30天极限教程 C++Builder程序设计范例

经典编程900例(C语言) C语言程序基础及应用实例 C++编程实例详解

一个月挑战C++ C++ Builder网络开发实例 C语言趣味程序百例精解

自学C++半月通 C语言学习300例 C++实践之路

Borland C++应用篇 C++Builder6.0界面实例开发 21天学通C语言(第六版)

边用边学C语言 C语言完美演绎 设计60系列C++游戏

C++ Builder 5编程实例与技巧 C++物件模型 C语言程序设计题典

C语言程序设计及应用实例 Borland C++ Builder6开发人员 Borland C++ 高级开发实践

经验技巧

C++编码规范与指导 C++核心编程技术 C++程序设计陷阱

C++编程-数据结构与程序设计方法 C数值算法程序大全 C和C++代码精粹

C高级编程技术 C++语言教程大全 C++Builder核心program

C语言常见问题集 C++ Builder 3 核心编程技术 Borland C++程序设计技术

C语言高级实用编程技巧 用C实现面向对象 C专家编程

C程序设计与应用 C++数据结构 用C++开发Web商用程序

CC++深层探索 C++ 和面向对象的数值计算 C++代码设计与重用

C++程序员JAVA编程 Borland C++宝典 C语言最新编程技巧200例

C++ Builder高级开发人员技术指南 C++语言学习经验集合 C语言编程宝典大全

用C语言设计屏幕界面技术 Turboc库函数源程序与参考大全 C++ Builder 5 开发人员指南

C和C++代码锦囊 C++ 内存管理算法和实现 C++程序设计实验指导(钱能)

C语言学习和精华文摘 标准C++宝典 C_C++深层探索

Borland C++库函数详解 C++和面向对象的数值计算 高质量C、C++编程指南

谭浩强的《C程序设计》第三版的目录是什么?

C语言概述1.1C语言出现的历史背景11.2C 语言的特点21.3简单的C语言程序介绍41.4运行C程序的步骤与方法71.4.1运行C程序的步骤71.4.2上机运行C程序的方法8习题12程序的灵魂——算法2.1算法的概念142.2简单算法举例152.3算法的特性192.4怎样表示一个算法202.4.1用自然语言表示算法202.4.2用流程图表示算法202.4.33种基本结构和改进的流程图242.4.4用N\|S流程图表示算法272.4.5用伪代码表示算法302.4.6用计算机语言表示算法332.5结构化程序设计方法34习题36数据类型、运算符与表达式3.1C语言的数据类型373.2常量与变量373.2.1常量和符号常量373.2.2变量383.3整型数据403.3.1整型常量的表示方法403.3.2整型变量403.3.3整型常量的类型443.4浮点型数据453.4.1浮点型常量的表示方法453.4.2浮点型变量453.4.3浮点型常量的类型473.5字符型数据483.5.1字符常量483.5.2字符变量493.5.3字符数据在内存中的存储形式及其使用方法503.5.4字符串常量523.6变量赋初值533.7各类数值型数据间的混合运算543.8算术运算符和算术表达式553.8.1C语言运算符简介553.8.2算术运算符和算术表达式553.9赋值运算符和赋值表达式593.10逗号运算符和逗号表达式65习题66最简单的C程序设计——顺序程序设计4.1C语句概述694.2赋值语句714.3数据输入输出的概念及在C语言中的实现724.4字符数据的输入输出734.4.1 putchar函数734.4.2 getchar函数744.5格式输入与输出744.5.1printf函数754.5.2scanf函数824.6顺序结构程序设计举例86习题88选择结构程序设计5.1关系运算符和关系表达式915.1.1关系运算符及其优先次序915.1.2关系表达式925.2逻辑运算符和逻辑表达式925.2.1逻辑运算符及其优先次序925.2.2逻辑表达式935.3if 语句955.3.1if语句的3种形式955.3.2if语句的嵌套995.3.3条件运算符1025.4switch语句1045.5程序举例106习题111循环控制6.1概述1136.2goto语句以及用goto语句构成循环1136.3用while语句实现循环1146.4用do…while语句实现循环1156.5用for 语句实现循环1186.6循环的嵌套1216.7几种循环的比较1226.8break语句和continue语句1226.8.1break语句1226.8.2continue语句1236.9程序举例124习题129数组7.1一维数组的定义和引用1317.1.1一维数组的定义1317.1.2一维数组元素的引用1327.1.3一维数组的初始化1327.1.4一维数组程序举例1337.2二维数组的定义和引用1357.2.1 二维数组的定义1357.2.2二维数组的引用1367.2.3二维数组的初始化1377.2.4二维数组程序举例1387.3字符数组1407.3.1字符数组的定义1407.3.2字符数组的初始化1407.3.3字符数组的引用1417.3.4字符串和字符串结束标志1427.3.5字符数组的输入输出1447.3.6字符串处理函数1467.3.7字符数组应用举例150习题152函数8.1概述1558.2函数定义的一般形式1568.2.1无参函数定义的一般形式1568.2.2有参函数定义的一般形式1578.2.3空函数1578.3函数参数和函数的值1588.3.1形式参数和实际参数1588.3.2函数的返回值1608.4函数的调用1618.4.1函数调用的一般形式1618.4.2函数调用的方式1628.4.3对被调用函数的声明和函数原型1638.5函数的嵌套调用1678.6函数的递归调用1718.7数组作为函数参数1778.7.1数组元素作函数实参1788.7.2数组名作函数参数1798.7.3多维数组名作函数参数1828.8局部变量和全局变量1848.8.1局部变量1848.8.2全局变量1858.9变量的存储类别1888.9.1动态存储方式与静态存储方式1888.9.2auto变量1898.9.3用static声明局部变量1898.9.4register变量1918.9.5用extern声明外部变量1938.9.6用static声明外部变量1958.9.7关于变量的声明和定义1968.9.8存储类别小结1978.10内部函数和外部函数1998.10.1内部函数1998.10.2外部函数199习题202预处理命令9.1宏定义2049.1.1不带参数的宏定义2049.1.2带参数的宏定义2079.2“文件包含”处理2119.3条件编译214习题217指针10.1地址和指针的概念21910.2变量的指针和指向变量的指针变量22110.2.1定义一个指针变量22110.2.2指针变量的引用22210.2.3指针变量作为函数参数22510.3数组与指针22910.3.1指向数组元素的指针22910.3.2通过指针引用数组元素23010.3.3用数组名作函数参数23510.3.4多维数组与指针24210.4字符串与指针25110.4.1字符串的表示形式25110.4.2字符指针作函数参数25410.4.3对使用字符指针变量和字符数组的讨论25710.5指向函数的指针26010.5.1用函数指针变量调用函数26010.5.2用指向函数的指针作函数参数26210.6返回指针值的函数26510.7指针数组和指向指针的指针26810.7.1指针数组的概念26810.7.2指向指针的指针27110.7.3指针数组作main函数的形参27310.8有关指针的数据类型和指针运算的小结27510.8.1有关指针的数据类型的小结27610.8.2指针运算小结27610.8.3void指针类型277习题278结构体与共用体11.1概述28111.2定义结构体类型变量的方法28211.3结构体变量的引用28411.4结构体变量的初始化28511.5结构体数组28611.5.1定义结构体数组28611.5.2结构体数组的初始化28711.5.3结构体数组应用举例28711.6指向结构体类型数据的指针28911.6.1指向结构体变量的指针28911.6.2指向结构体数组的指针29011.6.3用结构体变量和指向结构体的指针作函数参数29211.7用指针处理链表29411.7.1链表概述29411.7.2简单链表29511.7.3处理动态链表所需的函数29611.7.4建立动态链表29711.7.5输出链表30011.7.6对链表的删除操作30111.7.7对链表的插入操作30311.7.8对链表的综合操作30511.8共用体30811.8.1共用体的概念30811.8.2共用体变量的引用方式30911.8.3共用体类型数据的特点31011.9枚举类型31211.10用typedef定义类型315习题318位运算12.1位运算符和位运算31912.1.1“按位与”运算符(&)31912.1.2“按位或”运算符(|)32012.1.3“异或”运算符(∧)32112.1.4“取反”运算符(~)32212.1.5左移运算符(<<)32312.1.6右移运算符()32312.1.7位运算赋值运算符32412.1.8不同长度的数据进行位运算32412.2位运算举例32412.3位段326习题329文件13.1C文件概述33013.2文件类型指针33113.3文件的打开与关闭33213.3.1文件的打开(fopen函数)33213.3.2文件的关闭(fclose函数)33413.4文件的读写33413.4.1fputc函数和fgetc函数(putc函数和getc函数)33513.4.2fread函数和fwrite函数33913.4.3fprintf函数和fscanf函数34213.4.4其他读写函数34313.5文件的定位34413.5.1rewind函数34413.5.2fseek函数和随机读写34513.5.3ftell函数34613.6出错的检测34613.6.1ferror函数34713.6.2clearerr函数34713.7文件输入输出小结347

求C语言程序设计习题集与上机指导-第三版 (及答案)......

C语言程序设计第三版谭浩强课后习题答案完整版

第一章

1.5请参照本章例题,编写一个C程序,输出以下信息:

**************************

Very Good!

**************************

解:

mian()

{printf(“**************************”);

printf(“\n”);

printf(“Very Good!\n”);

printf(“\n”);

printf(“**************************”);

}

1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:

mian()

{int a,b,c,max;

printf(“请输入三个数a,b,c:\n”);

scanf(“%d,%d,%d”,a,b,c);

max=a;

if(maxb)

max=b;

if(maxc)

max=c;

printf(“最大数为:“%d”,max);

}

第三章

3.6写出以下程序运行的结果。

main()

{char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c %c”,c4,c5);

}

解:

aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc

AㄩN

3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

解:

#include stdio.h

main()

{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

c1+=4;

c2+=4;

c3+=4;

c4+=4;

c5+=4;

printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);

}

运行结果:

密码是Glmre

3.9求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

(1)2.5

(2)3.5

3.10写出程序运行的结果。

main()

{int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

解:

9,11,9,10

3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。

(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a

(5) a%=(n%=2),n的值等于5

(6)a+=a-=a*=a

解:

(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0

第四章

4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

a=_3_ _b=_4_ _c=_5

x=1.200000,y=2.400000,z=-3.600000

x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40

c1=ˊaˊ_or_97(ASCII)

c2=ˊbˊ_or_98(ASCII)

main()

{int a=3,b=4,c=5;

long int u=51274,n=128765;

float x=1.2,y=2.4,z=3.6;

char c1=’a’,c2=’b’;

printf("a=%2d b=%2d c=%2d\n",a,b,c);

printf("x=%f,y=%f,z=%f\n",x,y,z);

printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ld n=%9ld\n",u,n);

printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");

printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)");

}

4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

main()

{

int a,b;float x,y;char c1c2;

scanf("a=%d_b=%d",a,b);

scanf("_x=%f_y=%e",x,y);

scanf("_c1=%c_c2=%c",c1,c2);

}

a=3_b=7

_x=8.5_y=71.82

_c1=A_c2=a

4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。

main()

{float r,h,C1,Sa,Sb,Va,Vb;

scanf("%f,%f",r,h);

C1=2*3.14*r;

Sa=3.14*r*r;

Sb=4*Sa;

Va=4*3.14*r*r*r/3;

Vb=Sa*h;

printf("C1=%.2f\n",C1);

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);

}

4.9输入一个华氏温度,要求输出摄氏温度。公式为

c=5(F-32)/9

输出要求有文字说明,取位2小数。

main()

{float F,c;

scanf("%f",F);

c=5*(F-32)/9;

printf("c=%.2f",c);

}

4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:

char c1,c2;

int c1,c2;

是否无条件的等价?

#include"stdio.h"

main()

{char c1,c2;

c1=getchar();c2=getchar();

putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’);

and Settings/Administrator/桌面/C语言程序设计第三版谭浩强课后习题答案完整版.txt(第 1/19 页)[2010-5-10 9:14:34]

and Settings/Administrator/桌面/C语言程序设计第三版谭浩强课后习题答案完整版.txt

1.5请参照本章例题,编写一个C程序,输出以下信息:

**************************

Very Good!

**************************

解:

mian()

{printf(“**************************”);

printf(“\n”);

printf(“Very Good!\n”);

printf(“\n”);

printf(“**************************”);

}

1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:

mian()

{int a,b,c,max;

printf(“请输入三个数a,b,c:\n”);

scanf(“%d,%d,%d”,a,b,c);

max=a;

if(maxb)

max=b;

if(maxc)

max=c;

printf(“最大数为:“%d”,max);

}

第三章

3.6写出以下程序运行的结果。

main()

{char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c %c”,c4,c5);

}

解:

aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc

AㄩN

3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

解:

#include stdio.h

main()

{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

c1+=4;

c2+=4;

c3+=4;

c4+=4;

c5+=4;

printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);

}

运行结果:

密码是Glmre

3.9求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

(1)2.5

(2)3.5

3.10写出程序运行的结果。

main()

{int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

解:

9,11,9,10

3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。

(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a

(5) a%=(n%=2),n的值等于5

(6)a+=a-=a*=a

解:

(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0

第四章

4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

a=_3_ _b=_4_ _c=_5

x=1.200000,y=2.400000,z=-3.600000

x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40

c1=ˊaˊ_or_97(ASCII)

c2=ˊbˊ_or_98(ASCII)

main()

{int a=3,b=4,c=5;

long int u=51274,n=128765;

float x=1.2,y=2.4,z=3.6;

char c1=’a’,c2=’b’;

printf("a=%2d b=%2d c=%2d\n",a,b,c);

printf("x=%f,y=%f,z=%f\n",x,y,z);

printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ld n=%9ld\n",u,n);

printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");

printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)");

}

4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

main()

{

int a,b;float x,y;char c1c2;

scanf("a=%d_b=%d",a,b);

scanf("_x=%f_y=%e",x,y);

scanf("_c1=%c_c2=%c",c1,c2);

}

a=3_b=7

_x=8.5_y=71.82

_c1=A_c2=a

4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。

main()

{float r,h,C1,Sa,Sb,Va,Vb;

scanf("%f,%f",r,h);

C1=2*3.14*r;

Sa=3.14*r*r;

Sb=4*Sa;

Va=4*3.14*r*r*r/3;

Vb=Sa*h;

printf("C1=%.2f\n",C1);

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);

}

4.9输入一个华氏温度,要求输出摄氏温度。公式为

c=5(F-32)/9

输出要求有文字说明,取位2小数。

main()

{float F,c;

scanf("%f",F);

c=5*(F-32)/9;

printf("c=%.2f",c);

}

4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:

char c1,c2;

int c1,c2;

是否无条件的等价?

#include"stdio.h"

main()

{char c1,c2;

c1=getchar();c2=getchar();

putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’);

switch(place)

{ case 5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

printf("\n反序数字为;");

printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

break;

case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

break;

case 3: printf("%d,%d,%d",hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d\n",indiv,ten,hundred);

break;

case 2: printf("%d,%d",ten,indiv);

printf("\n反序数字为:");

printf("%d%d\n",indiv,ten);

break;

case 1: printf("%d",indiv);

printf("\n反序数字为:");

printf("%d\n",indiv);

break;

}

}

第五章

5.8 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10% ;利润高于10万元,低于20万元(100000I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5% ;200000I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000I≤600000时,高于40万元的部分按3%提成;600000〈I≤1000000时,高于60万的部分按1.5%提成;I1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。

解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。

(1) 用if语句编程序。

#include stdio.h

main()

{ long i;

float bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1; /*利润为10万元时的奖金*/

bon2=bon1+100000*0.075; /*利润为20万元时的奖金*/

bon4=bon2+200000*0.05; /*利润为40万元时的奖金*/

bon6=bon4+200000*0.03; /*利润为60万元时的奖金*/

bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/

printf("请输入利润i:");

scanf("%ld",i);

if(i=100000)

bonus=i*0.1; /*利润在10万元以内按0.1提成奖金*/

else if(i=200000)

bonus=bon1+(i-100000)*0.075; /*利润在10万至20万元时的奖金*/

else if(i=400000)

bonus=bon2+(i-200000)*0.05; /*利润在20万至40万元时的奖金*/

else if(i=600000)

bonus=bon4+(i-400000)*0.03; /*利润在40万至60万元时的奖金*/

else if(i=1000000)

bonus=bon6+(i-600000)*0.015; /*利润在60万至100万元时的奖金*/

else

bonus=bon10+(i-1000000)*0.01; /*利润在100万元以上时的奖金*/

printf(”奖金是%10.2f\n",bonus);

}

此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20万时,奖金应由两部分组成:①利润为10万元时应得的奖金。即100000ⅹ0.1;②10万元以上部分应得的奖金。即(num-100000)ⅹ0.075。同理,20万~40万这个区间的奖金也应由两部分组成:①利润为20万元时应得的奖金,即100000ⅹ0.1ⅹ10万ⅹ0.075;②20万元以上部分应得的奖金,即(num-200000)ⅹ0.05。程序中先把10万、20万、40万、60万、100万各关键点的奖金计算出来,即bon1、bon2、bon4、bon6、hon10;然后再加上各区间附加部分的奖金。

(2) 用switch语句编程序。

输入利润i,确定相应的提成等级branch

根据branch确定奖金值

0 奖金=i*0.1

1 奖金=bon1+(i-105)*0.075

2 奖金=bon2+(i-2*105)*0.05

3

4 奖金=bon4+(i-4*105)*0.03

5

6 奖金=bon6+(i-6*105)*0.015

7

8

9

10 奖金=bon10+(i-106)*0.01

输出奖金

#include stdio.h

main()

{ long i;

float bonus, bon1, bon2, bon4, bon6, bon10;

int c;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:");

scanf("%ld",i);

c=i/100000;

if(c10) c=10;

switch(c)

{ case 0: bonus=1*0.1;break;

case 1: bonus=bon1+(i-100000)*0.075;break;

case 2 :

case 3: bonus=bon2+(i-200000)*0.05; break;

case 4:

case 5: bonus=bon4+(i-400000)*0.03;break;

case 6:

case 7:

case 8:

case 9: bonus=bon6+(i-600000)*0.015;break;

case 10: bonus=bon10+(i-1000000)*0.01;

}

printf("奖金是%10.2f",bonus);

}

5.9 输入4个整数,要求按由大到小的顺序输出。

解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。

#include stdio.h

main()

{ int t,a,b,c,d;

printf("请输入4个整数:");

scanf("%d,%d,%d,%d",a,b,c,d);

printf("\n a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

if(ab) {t=a; a=b; b=t;}

if(ac) {t=a; a=c; c=t;}

if(ad) {t=a; a=d; d=t;}

if(bc) {t=a; b=c; c=t;}

if(bd) {t=b; b=d; d=t;}

if(cd) {t=c; c=d; d=t;}

printf("排序结果如下:\n");

c语言学习

首先是纯C的教材

第一本:H.M.Deitel和P.J.Deitel的《C HOW TO PROGRAM》(C程序设计教程)。

作者是父子,从事语言教材的编写合计超过40年,本书被美国众多高校选用为教材,既可入门也可翻阅,甚好。本FAQ作者认为如果你只打算看一本的话,那就选他好了。

第二本:Brian W.Kernighan和Dennis M.Ritchie 的《The C Programming Language 》(C程序设计语言)。

此书简称KR,由C语言的创建者撰写,是全球销售最多的C语言教材,其品质不容置疑。不过不适合入门,适于在入门之后巩固提高。实体书有原版和译本购买,电子版英文较多。

第三本:谭浩强的《C程序设计》。

优点在于,面向中国学生,语言易于理解,而且全书篇幅小,看过的人多,容易找到人请教。但是各方面的概念不深入,浅尝辄止,实际上还有些小错误,不是很严谨。因此适合第一次入门学习,例题做完基本就可以抛弃了。有实体书和电子版下载。同时配套有习题集和习题解答,适合自学。

第四本:王大刚先生的《C语言编程宝典》。

质量不错,与老谭的书一样非常适合中国学生,而且对于TC的图形编程讲解非常透彻。本人没有发现实体书,可能只发布在网络上,在VCgood论坛有转载:

;PN=2

第五本:无名作者的《C语言初学者入门讲座》

VCgood论坛转载,作者未知,质量同上一本。;PN=4

第六本:Kenneth A.Reek 的《C和指针》

进阶读物,把指针一章演绎为一本书可见其技术精度。指针是C的灵魂,能领会本书中的理念,才能算是真正明白了C指针的奥妙,才算懂得了C。

第七本:Andrew Koenig 的 《C陷阱与缺陷》

进阶读物,在认真读完上面的入门书之前,暂勿阅读。本书畅销14年历久不衰,足证品质。

最后一本:ISO C89规范/C99规范

一切关于C语言的疑问,只有一件东西最权威,那就是ISO的规范。但这不是正式出版物,是类似法律文本的技术说明,而且只有英文版。新手阅读,提防吐血而亡。

然后是C++的教材

C++比C复杂的多,所以教材也就纷繁芜杂。既有综合性入门性的,也有专项深入的,阅读要循序渐进,以下分阶段介绍(以下文字有部分引用自他人评介)。

首先是毫无基础的时候,先要初步掌握语法并形成编程的概念

level 0:

H.M.Deitel和P.J.Deitel的《 C++ How to Program 》(C++大学教程)。

又是这对父子。有很多号称C++入门的书,但经我的观察,如果要选择能推荐给毫无编程概念的新手用的书,这本算是佼佼者了。此父子的《C程序设计教程》我已推荐了。

仍然是KR,Brian W.Kernighan和Dennis M.Ritchie 的《The C Programming Language》(C程序设计语言)。

尽管C++之父亲口说,最好把C++看作一门新语言来学习,但我个人认为,一开始学习C至少有两大好处。相比C++,C还是非常简单的,易于掌握,避免你过早陷入C++的语法泥潭。同时,学C能让你对计算机的底层运行有所认识,建立良好的概念。

钱能的《C++程序设计教程》

国内C++教材中较好的一本,作者是教师,总结多年教学实践的经验写成的,比较适合国内学生。

PS:老谭也有一本C++教材,在此就不太推荐了,它完全是用C的思维来看C++。

当读者有一定c/c++基础

推荐的阅读顺序:

level 1

从Stanley B.lippman著 侯捷 译的《essential c++》开始,短小精悍,可以对c++能进一步了解其特性。Stanley B.Lippman的职业是提供关于C++和面向对象的训练、咨询、设计和指导。他也是Bjarne Stroustrup领导的Bell实验室Foundation项目的成员之一,负责C++程序设计环境中的对象模型部分。简单说,他是C++的创建者之一。

以Stanley B.Lippman,Josee LaJoie,Barbara E.Moo的《c++ primer》作字典和课外读物,因为太厚不可能一口气看完,当然你也可以用它作为主力教材。Lippman说过了,Josee LaJoie是C++标准委员会原负责人,Barbara E.Moo 是独立咨询顾问,参与了第一个使用C++编写的商业产品的开发,领导了公司中第一个C++编译器项目。

C++之父Bjarne Stroustrup的《the c++ programming language》,简称BS的TCPL,全面而深入的书,缺点也是太厚。

这个阶段 也可以延用前阶段Detiel父子的教材。

level 2 这个阶段就要养成好习惯

然后从Scott Meyers的《effective c++》开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻

接着是 Herb Sutter的《exceptional c++》。此人是C++标准委员会的主席,主席说话,谁有异议。

顺下来就是Scott Meyers的《more effective c++》和Herb Sutter的《more exceptional c++》,请熟读并牢记各条款

level 3 这个阶段 把C++的类搞透

Stanley B.lippman的《insied the c++ object model》(深度探索C++对象模型)看过后如一缕清风扫去一直以来你对语言的疑惑,你终于能明白compiler到底都背着你做了些什么了,这本书要细细回味,比较难啃,最好反复看几遍,加深印象。

看完上一本之后,这本Bjarne Stroustrup的《The design and evolution of c++》(C++的设计与演化)会重演一次当年C++他爹在设计整个语言过程中的历程。

Stephen C. Dewhurst的《C++ Gotchas: Avoiding Common Problems in Coding and Design》(C++程序设计陷阱)会帮你在设计层面避免错误。

level 4 这个阶段深入STL吧

Nicolai M.Josuttis的《the c++ standard library》(C++标准程序库—自修教程与参考手册) 是stl的字典,什么都可以查得到。

Scott Meyers的《effective stl》,它和圣经一样是你日常行为的规范。发现没有,Scott Meyers先生一直在搞effective系列。

Matthew H. Austern的《generic programming and the stl》(泛型编程与STL)让你从OO(面向对象)向GP(泛型编程)转变。

光用不行,我们还有必要了解stl的工作原理,那么侯捷的 《stl源码剖析》会解决你所有的困惑。

level 5 彻底掌握模版泛型编程

对于c++无非是OO和GP,想进一步提升OO,Herb Sutter的《exeptional c++ style》是一本主席这么多年的经验之谈,是很长esp的。

一位stl高手是不能不去了解template的,《c++ template》是一本百科全书,足够你看完后对于GP游刃有余。

Andrei Alexandrescu的《modern c++ design》是太过聪明的人写给明眼人看的。

level 6

这个时候,对于C++语法本身,你应该是已经到了随心所欲的境界,你所要练习的大概就是大规模的C++程序的设计以及一些通用的高效库的使用,以及为什么要这样做的理由。

所以,《C++ 输入输出流及本地化》《C++ Network Programming》《大规模C++程序设计》是你需要的。

同时,C++教材中的异类:Barbara E.Moo和Andrew Koenig的《Ruminations On C++》(C++ 沉思录)是值得你一看的,他集中反映了C++的关键思想和编程技术,说明了C++是什么样的以及能够做些什么,不仅告诉你如何编程,还告诉你为什么要这样编程。本书曾出现在众多的C++专家推荐书目中。

和C一样,同样有最后一本书

ISO+IEC+14882-1998 C++规范。这可不是宝典圣经,这就是C++的法律,一切疑问以此为准到此打住。不过,有个脚注,某些具体情况取决于编译器实现。

接下来是Windows编程

至少在国内来说,Windows环境下的编程还是很有市场的。

第一本书:Charles Petzold 的 《Programming Windows》(Windows程序设计)。

如果说,在windows编程领域只能翻阅一本书的话,那就是他了。《Windows程序设计》由微软出版社在1988年首次出版,后来被认为是这方面最好的导论性读本。在1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Windows Magezine》和Microsoft公司授予Windows Pioneer奖,以表彰他对Microsoft Windows的成功做出的贡献。这本书经典到这个程度,以至对于Windows程序员来说,“从Chares 的(Window程序设计)一书中寻找答案。”几乎成了一句至理名言。

你可以在这个地方观看到他的外观,,国内书店有售,电子版则需要仔细搜索。

第二本:Jeffrey Richter 的《ProgrammingApplicationsforMicrosoftWindows》(Windows核心编程)和《Advanced Windows》(Windows 高级编程指南)

和上面这本书难分伯仲。这么说吧,你读了之后就会后悔,后悔为什么没有早点读他。建议先看高级,再看核心。

个人认为除非windows发生革命性的变化,否则看完这三本书,足以应付通常的Windows编程。

上面三本书介绍的是直接使用WindowsAPI实现应用,总的来说那是一种很基础但很繁琐的方式。Windows下有很多的编程库可以使用,VC和BCB都自备了优良的库。

在VC来说,存在版本的差异,如果是6.0版本,那么你基本只有MFC这一种选择,但对于2002以后的版本,包括新推出的2008,MFC、ATL、.net都不错。

对于MFC。

要学会怎么用,可以看一下这几本:

微软出版社授权的中文版系列书 由David J.Kruglinski,Scot Wingo,George Shepherd写的《Programming Visual C++ 6.0 技术内幕(第5版)》,经典的“Visual C++技术内幕”的第5版。

清华大学出版社出版 杨永国 的《Visual C++ 6.0实用教程(第2版) 》,这本不是那么经典,同类多得很,但好处是便宜,而且能够买到,有些书已经买不到了。

如果想知道MFC的原理,侯俊杰先生的《深入浅出MFC 》(Dessecting MFC)就值得你仔细阅读。

对于VC2002--2008中的.net,单独讲授的似乎目前还没有像《Windows程序设计》那样经典的书出现,毕竟.net出现的时间也不长。但把.net MFC ATL等综合在一起讲的,倒还是有一些。

由H.M.Deitel,P.J.Deitel,J.P.Liperi和C.H.Yaeger共同编写的《Visual C++.NET:How To Program 》(Visual C++.NET大学教程)品质算是上乘。还记得Deitel这对父子作者么,在chinapub上可以看到父子俩合著的教材有47套之多,而且个个畅销,我觉得他们俨然就是美国的谭浩强,只是水平高出不少。

George Shepherd,David Kruglinski 的 《Visual C++ .NET技术内幕(第6版)》,就是上面那本书的.net升级。

IVOR HORTON的《VISUAL C++ 2005入门经典》也可一看。

BCB在版本6以前用的是著名的VCL库,BCBX另起炉灶,用的是wxWidgets库。由于对BC,作者自己涉猎不多,所以这两套库的教材,请大家自行查找。

就像C++和C的规范文件一样,Windows编程中,也有一件类似万宝全书的神物,那就是Microsoft自己推出的MSDN。

MSDN是Microsoft Software Developer Network的简称。这是微软的针对开发者的开发计划。你可以在看到有关软件开发的资料。在VisualStudio中包括MSDN Library的光盘,其中包括VisualStudio的帮助文件和许多与开发相关的技术文献。MSDN Library每个季度更新一次,可以向微软订阅更新光盘,不过价格不便宜。

MSDN就是微软的技术大全,所有微软的软件系统的开发的已公开资料,都在上面。如果在那里也无法找到答案,那你只能想办法咨询微软的内部工程师求得隐藏秘籍。不要妄想能够完全阅读它,3G容量的文档(大部分是文本,不是图片和视频),实在太过巨大了。

(责任编辑:IT教学网)

更多

推荐人物新闻文章