当前位置:首页 » 编程语言 » c语言程序设计第63讲
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言程序设计第63讲

发布时间: 2022-08-27 10:49:43

1. c语言程序设计,高手请进!

我对题目的理解:
单词首地址:单词首字母下标
假设单词只由英文字母和阿拉伯数字组成

先在x.txt中输入字符串:
例如:
ajfljfljalf afjalfjlaf ,.. afjadfiw
adfkdsf
afddfj d f e fa d g afafadf

结果:
0 14 30 39 47 54 56 58 60 63 65 68
total:12

/*
题目: 记录句中单词的首地址
要求:在x.txt文件中给出10个字符串(10个句子),用程序读入,找出每个单词的首地址,同时计算单词个数,输出到屏幕上后,再
输出到x1.txt文件中。
*/
#include<stdio.h>
#include<stdlib.h>
char Buffer[2000]; //在字符串不大的情况下没问题
void ReadFile()
{
int i;
char ch;
FILE *fp;
fp=fopen("x.txt","r");
if(!fp)
{
printf("Can not open the file!\n");
exit(0);
}

for(i=0;(ch=fgetc(fp))!=EOF;i++)
Buffer[i]=ch;
Buffer[i]='\0';

fclose(fp);
return ;
}
int IsStr(char ch)
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')) return 1;
else return 0;
}
void CreateFile()
{
int i=0,count=0;
char ch;
FILE *fp2;
fp2=fopen("x1.txt","w");
if(!fp2)
{
printf("Can not open the file!\n");
exit(0);
}
while(Buffer[i]!='\0')
{
if(IsStr(Buffer[i]))
{
fprintf(fp2,"%d\t",i);
count++;
for(;IsStr(Buffer[i]);i++);
}
i++;
}
fprintf(fp2,"\ntotal:%d\n",count);
fclose(fp2);
return ;
}
int main()
{
ReadFile();
CreateFile();
printf("哈哈,去看看你的x1.txt吧!\n");
return 0;
}

2. C语言程序设计学习辅导的C语言程序设计学习辅导(第2版)

作者:谭浩强
出版社: 清华大学出版社; 第2版 (2009年1月1日)丛书名: 普通高等教育“十一五”国家级规划教材,高等院校计算机应用技术规划教材·应用型教材系列
平装: 233页
正文语种: 汉语
开本: 16
ISBN: 9787302189893
条形码: 9787302189893
产品尺寸及重量: 25.6 x 18.2 x 1.2 cm ; 381 g 《C语言程序设计学习辅导(第2版)》的特点:
坚持面向应用的方向,以应用为中心构建课程体系。
准确定位,合理取舍内容,切合实际需要。
采用“提出问题-解决问题-归纳分析”的新的教学三部曲。
写法通俗易懂,易于理解,便于教学,容易入门。
品种丰富,涵盖面广。包括必修课教材、选修课教材、教学辅导书、实训教材、参考书等。
着名计算机教育家谭浩强教授亲自组织和指导.有经验的专家和骨干教师参与编写,教材质量高。
丛书包含4个系列
基础教材系列 涵盖了计算机公共基础课程的教材。
应用型教材系列 适合作为培养应用性人才的本科院校和基础较好、要求较高的高职高专学校的主干教材。
实用技术教材系列 针对应用型院校和高职高专院校所需掌握的技能技术编写的教材。
实训教材系列 应用型本科院校和高职高专院校都可以选用这类实训教材。 谭浩强教授,我国着名计算机教育专家,计算机普及和高校计算机基础教育开拓者之一,现任全国高校计算机基础教育研究会会长。
他创造了3个世界纪录:
(1)20年来他(及其合作者)共编着出版了140余部计算机着作,此外主编了300多部计算机书籍,是出版科技着作数量最多的入。
(2)他编着和主编的书发行量近5000万册,是读者最多的科技作家。
(3)他和别人合作编着的《BASIC语言》发行了1250万册,创科技书籍发行量的世界纪录。他善于用读者容易理解的方法和语言说明复杂的概念。许多人认为他“开创了计算机书籍贴近大众的新风”,为我国的计算机普及事业做出了重要的贡献。 进入21世纪,计算机成为人类常用的现代工具,每一个有文化的人都应当了解计算机,学会使用计算机来处理各种的事务。
学习计算机知识有两种不同的方法:一种是侧重理论知识的学习,从原理入手,注重理论和概念;另一种是侧重于应用的学习,从实际入手,注重掌握其应用的方法和技能。不同的人应根据其具体情况选择不同的学习方法。对多数人来说,计算机是作为一种工具来使用的,应当以应用为目的、以应用为出发点。对于应用性人才来说,显然应当采用后一种学习方法,根据当前和今后的需要,选择学习的内容,围绕应用进行学习。 第一部分 《C语言程序设计(第2版)》中的习题和参考解答
第1章 C语言概述
第2章 数据的存储与运算
第3章 最简单的C程序设计——顺序程序设计
第4章 选择结构程序设计
第5章 循环结构程序设计
第6章 利用数组处理批量数据
第7章 利用函数实现模块化程序设计
第8章 善于使用指针
第9章 使用结构体类型处理组合数据——用户自定义数据类型
第10章 利用文件保存数据
第二部分 常见错误分析和程序调试
第11章 常见错误分析
第12章 程序的调试与测试
12.1 程序的调试
12.2 程序错误的类型
12.3 程序的测试
第三部分 C语言上机指南
第13章 Turbo C 2.0的上机操作
13.1 Turbo C的安装
13.2 进入Turbo C
13.3 Turbo C的工作窗口
13.4 编辑一个新文件
13.5 编辑一个已存在的文件
13.6 改变用户工作目录
13.7 确立Turbo C工作环境
13.8 编译和连接
13.9 运行
第14章 Turbo C++3.0的上机操作
14.1 进入Turbo C++3.0集成环境
14.2 C源文件的建立和程序的编辑
14.3 程序的编译和连接
14.4 运行程序
14.5 退出Turbo C++3.0环境
14.6 对多文件程序进行编译和连接
14.7 程序动态调试方法
第15章 Visual C++的上机操作
15.1 Visual C++的安装和启动
15.2 输入和编辑源程序
15.3 编译、连接和运行
15.4 建立和运行包含多个文件的程序的方法
第四部分 上机实验安排
第16章 上机实验的指导思想和要求
16.1 上机实验的目的
16.2 上机实验前的准备工作
16.3 上机实验的步骤
16.4 实验报告
16.5 实验内容安排的原则
第17章 实验安排
17.1 实验1 C程序的运行环境和运行C程序的方法
17.2 实验2 数据的存储与运算
17.3 实验3 最简单的C程序设计——顺序程序设计
17.4 实验4 逻辑结构程序设计
17.5 实验5 循环结构程序设计
17.6 实验6 利用数组处理批量数据
17.7 实验7 用函数实现模块化程序设计(一)
17.8 实验8 用函数实现模块化程序设计(二)
17.9 实验9 善于利用指针(一)
17.10 实验10 善于利用指针(二)
17.11 实验11 使用结构体类型处理组合数据
17.12 实验12 文件操作
参考文献

3. c语言程序设计的目录

第1章程序设计基础1
1.1程序设计的基本概念1
1.1.1程序1
1.1.2算法与数据结构2
1.2程序设计的一般步骤6
1.3结构化程序设计方法7
小结7
习题18
第2章C语言概述9
2.1C语言的发展及其特点9
2.1.1C语言的发展简史9
2.1.2C语言的特点9
2.2简单的C程序介绍10
2.2.1简单的C程序10
2.2.2C源程序的结构特点12
2.2.3C源程序的书写规则12
2.3运行C语言程序的基本步骤13
小结13
习题214
第3章数据类型、运算符及表达式15
3.1C语言的数据类型15
3.2标识符与关键字16
3.3常量16
3.3.1整型常量17
3.3.2实型常量18
3.3.3字符型常量18
3.3.4字符串常量20
3.3.5符号常量22
3.4变量23
3.4.1变量的定义23
3.4.2变量的初始化25
3.5运算符及其表达式28
3.5.1算术运算符和算术表达式29
3.5.2赋值运算符和赋值表达式32
3.5.3关系运算符和关系表达式34
3.5.4逻辑运算符和逻辑表达式35
3.5.5条件运算符和条件表达式38
3.5.6逗号运算符和逗号表达式39
3.5.7位运算40
3.5.8指针运算符、sizeof运算符43
3.6运算符的优先级和结合性43
3.7表达式中数据类型的转换44
小结49
习题350
第4章结构化的C语言程序设计54
4.1结构化程序设计概述54
4.2顺序结构程序设计54
4.2.1赋值语句、复合语句54
4.2.2字符输出函数55
4.2.3字符输入函数55
4.2.4格式化输出函数56
4.2.5格式化输入函数58
4.2.6顺序结构程序设计举例60
4.3选择结构程序设计62
4.3.1简单的if结构62
4.3.2if-else语句结构63
4.3.3if结构的嵌套64
4.3.4if-else-if语句结构65
4.3.5switch结构67
4.3.6选择结构程序设计举例68
4.4循环结构程序设计69
4.4.1goto语句69
4.4.2while语句69
4.4.3do-while 语句70
4.4.4for语句71
4.4.53种循环语句的比较73
4.4.6循环嵌套73
4.4.7break语句74
4.4.8continue语句74
4.4.9空语句75
4.4.10循环结构程序设计举例75
小结77
习题478
第5章数组83
5.1一维数组的定义和引用83
5.1.1一维数组的定义83
5.1.2一维数组元素的引用85
5.1.3一维数组的初始化86
5.1.4一维数组程序举例87
5.2二维数组90
5.2.1二维数组的定义90
5.2.2二维数组元素的引用91
5.2.3二维数组的初始化91
5.2.4二维数组程序举例92
5.3字符数组96
5.3.1字符数组的定义96
5.3.2字符数组的初始化96
5.3.3字符数组的引用97
5.3.4字符串97
5.3.5字符串的输入/输出98
5.3.6字符串操作函数101
5.3.7字符数组应用举例103
小结106
习题5106

4. 一道c语言最简单的题,但我就是不会做!!

A是正确的,C语言的一个重要特点就是几乎任何东西都是表达式,c=100也是个表达式,它的值就是100当然可以赋值给b
B也是正确的,虽然没有使用返回值,但是b的值发生了变化。
C是错误的,因为c+b的返回值没有使用,而且c和b都没有变化
D是正确的,(c=22)的结果是22赋值给c,同时返回22,b++是把b+1赋值给b,同时返回b原来的值,两者相减给d,允许的

5. c语言程序设计的张磊编着

书名:C语言程序设计(第3版)
作者:张磊编着
ISBN:978-7-302-273233
出版社:清华大学出版社
出版日期:2012-9
平装:317页
定价:34.5元 本书面向程序设计初学者编写,以“注重基础、注重方法、注重编程、注重应用”为指导思想,突出C语言课程的应用性、实践性特点,灵活运用案例教学、任务驱动、启发式教学等多种教学方法,对C语言程序设计的语言知识和程序设计的方法过程进行了系统介绍,特别适合将C语言程序设计作为第一门程序设计课程的高校学生。
全书共有九章,分别为程序设计概述、简单程序设计、分支结构程序设计、循环结构程序设计、数组程序设计、函数程序设计、指针程序设计、结构体程序设计和文件程序设计。
本书主教材和实验教材合二为一,在每章之后均设有实验指导,实验指导内容与教学内容密切衔接,相辅相成。实验指导分为基础实验和综合实验两部分。基础实验紧密结合教材中的例题程序设置,以“理解—验证—完善—扩充—提高”为实验教学线索,重在巩固课堂教学知识,提高调试程序及完善程序的能力;综合实验以算法设计和程序实现为重点,训练运用所学知识解决实际问题的能力。
本书有配套的教学课件、程序资源和试题库。 第1章 程序设计概述
1.1 程序设计语言
1.2 算法
1.2.1 算法概念与算法描述
1.2.2 算法的逻辑结构
1.2.4 算法的特性
1.2.4 算法评价
1.3 程序设计与实现
1.3.1 程序设计的基本过程
1.3.2 使用VisualC++ 6.0实现C语言程序
1.3.3 程序设计示例
1.4 C语言程序的基本结构
1.4.1 程序的函数化结构
1.4.2 程序中的常量和变量
1.4.3 程序中的基本语句
1.4.5 标识符与保留字
1.4.6 程序风格
小结
习题一
实验一 编辑运行C语言程序
第2章 简单程序设计
2.1 用printf()函数输出数据
2.1.1 固定数值的加法程序
2.1.2 printf()函数
2.2 用scanf()函数输入数据
2.2.1 任意数值的加法程序
2.2.2 scanf()函数
2.3 输入输出字符数据
2.4 语言知识补遗
2.4.1 数据类型
2.4.2 常量详解
2.4.3 简单变量详解
2.4.4 算术运算
2.4.5 赋值运算
2.4.6 宏命令
2.5 程序设计举例
2.5.1 计算三角形面积
2.5.2 字母转换
2.5.3 鸡兔同笼问题
*2.6 表达式中数据类型的自动转换
*2.7 用typedef命名数据类型
*2.8使用C++命令输入输出数据
2.8.1 简单的C++程序
2.8.2 C++的输入和输出
小结
习题二
实验二 简单程序设计
第3章 分支结构程序设计
3.1简单条件的分支程序
3.1.1判断优等生程序
3.1.2关系表达式
3.1.3 if语句
3.2 复合条件的分支程序
3.2.1 使用新标准的优等生程序
3.2.2 逻辑表达式
3.3 用switch语句实现分支控制
3.4 goto语句
3.5 条件运算
3.6 分支结构应用举例
3.6.1 闰年问题
3.6.2 判断等边三角形
3.6.3 求解一元二次方程
3.6.4 学生成绩分等显示
小结
习题三
实验三 分支结构程序设计
第4章 循环结构程序设计
4.1 while循环结构程序
4.1.1 while循环程序示例
4.1.2 while语句
4.1.3 自增、自减运算
4.2 do-while循环结构程序
4.2.1 do-while循环程序示例
4.2.2 do-while语句
4.3 for循环结构程序
4.3.1 for循环程序示例
4.3.2 for语句
4.3.3 逗号表达式
4.4 循环体中的控制命令
4.4.1 break命令
4.4.2 continue命令
4.5 多重循环程序
4.5.1多重循环程序示例
4.5.2多重循环的一般结构
4.6 循环结构程序设计举例
4.6.1 字符统计
4.6.2 比赛评分
4.6.3 学生成绩分等统计
4.6.4 最大公约数
4.6.5 Fibonacci数列
4.6.6 乘法表
4.6.7 搬砖问题
4.6.8 找素数
4.6.9 哥德巴赫猜想
小结
习题四
实验四 循环结构程序设计
第5章 数组程序设计
5.1 一维数组程序设计
5.1.1 逆序输出数据程序
5.1.2 一维数组的定义
5.1.3 数值型一维数组的输入和输出
5.1.4 数值型一维数组的初始化
5.1.5 字符型一维数组的初始化
5.1.6 一维数组的存储
5.2字符串操作
5.2.1 字符串的输入输出
5.2.2 多字符串操作函数
5.2.3 其他字符串操作函数
5.3二维数组程序设计
5.3.1 矩阵求和程序
5.3.2 二维数组的定义
5.3.3 二维数组的输入和输出
5.3.4 二维数组的初始化
5.3.5 二维数组的存储
5.4 数组应用
5.4.1 排序
5.4.2 查找
5.4.3 单词统计
5.4.4 矩阵运算
5.4.5 成绩处理
5.4.6 杨辉三角形
小结
习题五
实验五 数组程序设计
第6章 函数程序设计
6.1函数概述
6.2自定义函数示例
6.3函数定义及调用
6.3.1函数定义
6.3.2函数值和return命令
6.3.3 函数调用
6.4函数嵌套和递归函数
6.4.1函数嵌套
6.4.2递归函数
6.5 数组作为函数的参数
6.5.1数组元素作为函数参数
6.5.2一维数组名作为函数参数
6.5.3用一维数组求解二维数组问题
6.6 函数应用举例
6.6.1计算长方体的面积
6.6.2利用递归函数计算Fibonacci数列
6.6.3排序函数的设计与应用
6.7 变量的作用域和存储类型
6.7.1变量的作用域
6.7.2变量的存储类型
小结
习题六
实验六 使用自定义函数的程序设计
第7章 指针程序设计
7.1 指针概述
7.2指针变量的定义和使用
7.2.1指针变量程序示例
7.2.2定义指针变量
7.2.3使用指针变量
7.3指针与数组
7.3.1指针与一维数组
7.3.2 指针与二维数组
7.3.3 指针与字符串
7.3.4 指针数组
7.4指针作为函数的参数
7.4.1简单指针变量作函数参数
7.4.2指向数组的指针作函数的参数
7.4.3字符串指针作函数的参数
7.4.4 指针数组作函数的参数
*7.4.5 使用带参数的main()函数
7.5指针函数和指向函数的指针变量
7.5.1指针函数
*7.5.2指向函数的指针变量
7.6指针应用举例
小结
习题七
实验七 指针程序设计
第8章 结构体程序设计
8.1结构体数据概述
8. 2结构体类型和结构体变量
8.2.1使用结构体变量存储学生信息
8.2.2定义结构体数据类型
8.2.3结构体变量的定义及使用
8.3结构体数组
8.3.1结构体数组概述
8.3.2结构体数组的初始化
8.3.3利用结构体数组管理学生信息
8.4结构体指针变量
8.4.1结构体指针变量的定义及使用
8.4.2结构体指针作函数的参数
8.5使用链表动态存储数据
8.5.1使用链表存储学生信息
8.5.2链表的特点
8.5.3动态内存管理函数
8.5.4定义链表结构
8.6链表的基本操作
8.6.1链表结点的插入
8.6.2链表结点的删除
8.6.3链表结点的查找
8.7 结构体应用举例
8.7.1 字符串加密
8.7.2 学生成绩排序
8.7.3 Josephus问题
小结
习题八
实验八 结构体程序设计
第9章 文件程序设计
9.1 文件概述
9.1.1 文件的概念
9.1.2 文件的分类
9.1.3 文件的一般操作过程
9.1.4 文件的指针
9.2文件的基本操作
9.2.1打开和关闭文件
9.2.2最基本的文件读写函数
9.3文件的数据块读写操作
9.3.1 fwrite()函数
9.3.1 fread()函数
9.4文件的其他操作
9.4.1文件的格式化读写
9.4.2文件的随机读写操作
9.4.3 ftell()函数
9.4.4文件的字符串操作
9.5文件应用举例
9.5.1文件复制
9.5.2 存储在文件中的学生成绩排序
小结
习题九
实验九 文件程序设计
附录一C语言的运算符
附录二C语言的保留关键字
附录三 常用ASCII码字符对照表
参考文献

6. c语言程序设计

第一章 程序设计的基本概念

第一节 C语言的发展历史与特点

第二节 程序与程序设计

第三节 算法与算法的描述

第四节 C语言的上机操作

思考题与习题

第二章 C语言程序设计基础

第一节 C语言的程序结构

第二节 数据类型

第三节 运算符与表达式

思考题与习题

第三章 C程序控制结构

第一节 C程序的三种基本控制结构

第二节 顺序结构

第三节 选择结构

第四节 循环结构

思考题与习题

第四章 数组

第一节 数组与数组元素的概念

第二节 一维数组

第三节 二维数组及多维数组

第四节 字符串与字符数组

思考题与习题

第五章 指针

第一节 指针与指针变量的概念

第二节 指针变量的定义和引用

第三节 指针变量与数组

思考题与习题

第六章 函数

第一节 函数的定义

第二节 函数的嵌套调用

第三节 数组作为函数参数

第四节 指针与函数

第五节 变量的使用范围与存储类别

第六节 不同文件中的函数使用

思考题与习题

第七章 编译预处理

第一节 宏定义

第二节 文件包含

第三节 条件编译

思考题与题

第八章 结构体与共用体

第一节 结构体基础

第二节 结构体数组

第三节 结构体指针

第四节 链表

第五节 位段

第六节 共用体

第七节 枚举类型与自定义类型

思考题与习题

第九章 文件

第一节 文件概述

第二节 文件的打开与关闭

第三节 文件的读/写

第四节 文件的定位

思考题与习题

第十章 程序设计方法

第一节 程序设计的基本概念

第二节 结构化程序设计方法

第三节 程序效率

第四节 程序设计风格

思考题与习题

附录

附录A C语言实验

附录B 标准ABSII码表

附录C C语言中的关键字

附录D 运算符的优先级与结合性

7. C语言程序设计、帮忙写下解题步骤!

#include<stdio.h>
void main()
{
char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s=10*s+p[i][j]-'0'; //这里写错了,不是'\0',应该是'0'
printf("%d\n", s);
}

p[0]指向ch[0]
p[1]指向ch[1]
i = 0, j = 0时,s = 10 * 0 + '6' - '0' = 6
i = 0, j = 2时,s = 10 * 6 + '3' - '0' = 63
i = 0, j = 4时,p[0][4] = '\0'跳出循环
i = 1, j = 0时,s = 10 * 63 + '8' - '0' = 638
i = 1, j = 0时,s = 10 * 638 + '5' - '0' = 6385
i = 1, j = 4时,p[1][4] = '\0'跳出循环

8. C语言程序设计课程 谭浩强 视频

上verycd.com里面去找吧...那里有得下载

9. 什么是C语言程序设计.

(一)“项目驱动”式教学
目前最着名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。
从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。
高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。但是如果教学仅仅以此为目的,那么教学本身就效果而言是个大大的失败。
大家知道,在商业上讲究唯利是图,“利”是商业追求的目标,离开了“利”经商,则商无动力,其结果是必败无疑。在c语言程序设计教学当中,教师应该把“唯用是图”作为教学的首要目标。如果抛开了实际应用进行程序设计教学,就是纸上谈兵,就是“说明书”式的教学。印度的程序设计课程采用“事件驱动式”教学,我认为在中国的c语言程序设计教学中应该采用“项目驱动式”教学。“项目驱动式”教学就是以项目为目的,以c语言理论教学为过程,最终能用c语言设计项目,实现项目的要求。“项目驱动式”教学的关键在于培养学生“如何做什么”和“可以干什么”。一个项目就是一个工程,在“项目驱动式”教学中,首先应该让学生简单了解什么是软件工程思想,其次在c语言理论教学过程中,让学生懂得面向对象的程序设计的风格,最后引导他们来设计项目。
(二)“项目驱动”式教学应注意的问题
1.c语言程序设计教学要帮助学生树立面向工程的观点
在计算机行业中,软件是通过人们的智力活动、把知识与技术转化成信息的一种产品。软件的设计已经用工程的观念来进行管理。软件设计工作被当作一项系统工程来对待。软件的的生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。我们不难看出软件工程的复杂程度是很大的。理工科高等院校把c语言作为一门基础课程,也是为了给社会培养信息技术人才。众所周知,养成一个好的习惯是非常重要的,所以c语言程序设计作为大多数工科院校学生接触的第一门程序设计语言(有的院校讲pascal),就应该让学生树立正确的观点。那么当前的程序设计教学也必须以切合将来软件工程开发的实际需要为第一目标,使学生在学习程序设计的初级阶段就树立正确的软件工程观点。这样做不仅可以为学生将来从事计算机应用设计打下良好的基础,而且有利于培养学生分析问题的完备性,以及统筹全局,协调关系的基本素质。
2.理论教学应从单一的“结构化程序设计”向“结构化与面向对象并举”转变
“结构化程序设计”方法是程序设计的基础,必须让学生掌握得坚实可靠。结构化程序设计的过程是培养学生思维能力的过程,在教学中经常发现有些学生的思维混乱。这些都是缺乏思维训练的结果。结构化程序设计的训练不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性。所以在授课过程中要注意讲解结构化程序设计的思想时应突出两点:(1)程序的质量首先取决于它的结构。(2)程序设计的基本方法是自顶向下地逐步求精和模块化。
在c程序教学过程中,越到后面的章节,学生越会产生设计程序逐渐变难的感觉,这是不符合逻辑的一种怪现象。按照常理,C语言学的越多,说明你的程序设计知识越多,设计起程序来应该更加得心应手,那么出现这种现象的原因何在呢?当然该问题的出现的原因是多方面的,但是其中最重要的一点就是长期以来程序设计的观念不是以如何处理好对象为出发点,而是以如何使用好语言为基本点。受这种思想的影响,我们的程序设计教学大多数不是以如何解决好问题为重点,而是以讲解语法规则和语句格式为重点,是“说明书”式的教学。这样做造成的结果就是见到一个程序后学生首先想到是该用哪条语句,而不是思考怎样合理的解析。要切实解决这个问题,首先应该改变程序设计的观念。“面向对象程序设计”思想是目前最为流行、极为实用的一种程序设计方法,但是让学生直接接触“面向对象程序设计”,肯定不能对程序设计打下牢固的基础。“结构化与面向对象并举”是现代计算机程序设计的发展趋势,应该认真探索研究,让学生有一个较为轻松的学习过程。程序设计的实质就是编写处理对象的过程,所以将c与c++有机的融为一体的教材应该是首选教材,在教学过程中,我们应该从社会发展的角度进行探索研究,将目前最为流行又极为实用“面向对象程序设计”思想融合到c语言教学中。
3.c语言教学应培养学生良好的程序设计风格
具有良好的设计风格应该是程序员所具备的基本素质,在实际的项目中程序员往往都有自己的一些编程风格。目前95%以上的程序设计书籍不注重程序设计风格问题,这导致了很多学生没有良好的程序设计风格,在他们刚刚毕业踏入社会时,如果周围的同事没有良好的编程风格,那么很难通过环境来使自己提高这方面的素质,即使有提高也不容易比较全面的提高。因此在学生接触的第一门程序设计语言教学中,就应该培养学生良好的程序设计风格,使他们一进工作环境就具备这个素质。
Pascal设计者N.Writh教授十分重视程序设计风格的养成,他坚信“教给学生们以表达他们思维的语言会深深地影响他们思维和创造发明的习惯,而正是这些语言本身的混乱直接影响着学生们的程序设计的风格”,他这里所指的“这些运用”是当时那些主要用于程序设计教学的计算机语言。对学生来讲,一开始就强调程序设计风格很有必要,良好的程序设计风格不仅有助于提高程序的可靠性、可理解性、可测试性、可维护性和可重用性,而且也能够促进技术的交流,改善软件的质量。所以培养良好的程序设计风格对于初学者来说非常重要。
程序设计风格,实际上是指的是编码风格。在教学过程中应从源程序文档化,数据说明的原则,输入/输出方法这三个方面培养学生的编码风格,进而从编码原则探讨提高程序的可读性、改善程序质量的方法。
(1)源程序文档化。编码的目的是产生程序,但是为了提高程序的可维护性。源代码是需要实现文档化的。源程序文档化包括选择标识符(变量和标号)的名字、安排注释以及标准的书写格式等。
①选择标识符的命名规则。标识符包括模块名、变量名、常量名、标号名、子程序名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能顾名思义。另外在模块名、变量名、常量名、标号名、子程序名中使用下划线是一种风格。使用这一技术的一种广为人知的命名规则就是匈牙利命名法(变量类型由一个或两个字符表示,并且这些字符将作为变量名的前缀)。当然使用匈牙利命名法与否都没有错误,重要的是要保持一致性——在整个程序中使用相同的命名规则。这就是说,如果你在一个小组环境中编程,你和其他小组成员应该制定一种命名规则。并自始至终使用这种规则。如果有人使用了别的命名规则,那么集成的程序读起来将是很费劲的。此外,你还要与程序中用到的第三方库(如果有的话)所使用的风格保持一致。如果可能的话,你应该尽量使用与第三方库相同的命名规则,这将加强你的程序的可读性和一致性。
②注释。程序中的注释是程序设计者与程序阅读者之间通信的重要手段。注释能够帮助读者理解程序,并为后续测试维护提供明确的指导信息。因此,注释是十分重要的,大多数程序设计语言提供了使用自然语言来写注释的环境,为程序阅读者带来很大的方便。注释分为功能性注释和序言性注释。
a.功能性注释。功能性注释在源程序中,用以描述其后的语句或程序段是在做什么工作,也就是解释下面要“做什么”,而不是解释下面怎么做。对于书写功能性注释,要注意以下几点:第一描述一段程序,而不是每一个语句。第二利用缩进和空行,使程序与注释容易区别。第三注释要准确无误。
b.序言性注释。序言性注释通常位于每个程序模块的开头部分,它给出程序的整体说明,对于理解程序具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。有关内容包括:程序标题;有关该模块功能和目的的说明;主要算法;接口说明:包括调用形式,参数描述,子程序清单;有关数据描述;模块位置(在哪一个源文件中,或隶属于哪一个软件包);开发简历:模块设计者、复审考、复审日期。
③用标准的书写格式。源程序清单的书写建议采用以下几点:
a.每行只写一条语句;
b.用分层缩进的写法显示嵌套结构层次,这样可使程序的逻辑结构更加清晰,层次更加分明。
c.书写表达式时适当使用空格或圆括号作隔离符。
d.在注释段周围加上边框;
e.注释段与程序段、以及不同的程序段之间插入字行;
(2)数据说明采用的原则。在编写程序时,要注意数据说明的风格。
数据说明的次序如果规范,将有利于测试,排错和维护。首先说明的先后次序要固定,例如,按常量说明、简单变量类型说明、数组说明用数据块说明、所有的文件说明的顺序说明。当然在类型说明中还可进一步要求,例如按如下顺序排列:整型量说明、实型量说明、字符量说明、逻辑说明。
其次当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。
最后对于复杂数据结构,应利用注释说明实现这个数据结构的特点。
(3)输入/输出方法。输入/输出的方式和格式应当尽量避免因设计不当给用户带来的麻烦。这就要求,源程序的输入/输出风格必须满足能否为用户接受这一原则。所以在设计程序时,应考虑以下原则:输入数据时,要使输入的步骤和操作尽可能简单,应允许使用自由格式输入;应允许缺省值;对输入的数据要进行检验,以保证每个数据的有效性。
(三)结束语
在教学过程中,我们让学生设计一个程序模拟体育彩票的销售与对奖的过程,取得了良好的效果。他不仅启发和诱导了学生独立思考、积极思维的主动性,而且充分调动了学生学习的自觉性和积极性,使学生融会贯通地掌握了所学知识,提高了分析问题和解决实际问题的能力。
搞好c程序设计的教学工作涉及的因素很多,如果以项目来驱动教学,首先让学生树立面向工程的思想,其次把教学从单一的“结构化程序设计”向“结构化与面向对象并举”转变,最后特别要培养学生养成良好的编码风格,从而使他们学会能够“干什么”,那么我们认为教学目的就达到了

10. c语言编程