下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程常见问题 -单元3 程序设计基础1把scanf、printf等误认为是系统关键字解析:对于初学者往往将scanf、printf等系统库函数的名字误认为是系统关键字,在VC+环境中编辑代码时,系统关键字将呈蓝色(系统默认为蓝色,可在tools(工具)-options(选项)-Format(格式)选项卡中的colors(颜色)中选择keyword项,确定前景色来修改)。既然scanf、printf等系统库函数的名字不是系统关键字,就可以作为用户定义标识符使用,但建议不要作为户定义标识符使用。2书写标识符时,忽略了大小写字母的区别解析:C语言的标识符区分大小写字母,而在编辑程序时初学者往
2、往容易把小写字母输入成大写字母或把大写字母输入成小写字母,而且有些字母的大小写之间又很难区分。这就要求在输入时,注意大小写字母的切换,养成一个好的习惯。【示例】程序段int p=3;printf(%d,P);编译程序把p和P认为是两个不同的标识符,而显示出错信息P : undeclared identifier(P:未说明的标识符)。3在编辑程序时,遗漏空格或分号解析:C语言中关键字与关键字之间,关键字与用户标识符之间等都要有空格,如果不加空格就将出现语法错误。【示例】inta,b;/int与a之间无空格,有语法错误C语言中分号是C语句中不可缺少的组成部分,语句结尾必须有分号,如果语句结尾没有
3、分号,就将出现语法错误。【示例】a=1b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看上一行是否漏掉了分号。4将西文符号输入成中文符号解析:在编辑程序时,经常出现将西文符号输入成中文符号的错误。产生错误的原因是,当需要输入中文时,将西文状态切换为中文状态,中文输入结束后,忘记切换回西文状态,结果输入了中文符号。int a;printf(请输入一个整数”);/右引号、右括号、分号都是中文符号scanf(%d,&a);printf(%d是整数%d的平方。”,a*a,a);/ 右引
4、号、逗号都是中文符号5将解决某一问题的程序代码都写在主函数中解析:将解决某一问题的程序代码都写在主函数中来实现是可以的,但建议不要这样做,养成良好的编程习惯。因为,这样不能体现C语言的模块化程序设计的思想,特别当一个问题比较大时,所有代码都放在主函数中将给人们阅读、理解和调试程序带来困难,造成不必要的麻烦,程序的结构也不够清晰。模块化程序设计的思想是将一个大的应用问题按功能分解成若干个小的模块,每一个小的模块具有结构清晰、功能单一、接口简单(一个入口一个出口)的特点,在C语言中,每一个小的模块就是一个函数。6函数定义、声明、调用相混淆解析:函数定义应包含函数头和用一对花括号括起来的函数体,且在
5、函数头的结尾不能有分号,函数定义用来给出如何实现该函数所要完成功能的具体算法;函数声明与函数定义中的函数头相同,只是需在结尾加一个分号,所以函数声明是一个语句,用来通知编译系统所定义函数的一些必要信息,包括函数名、返回值类型、参数个数及每个参数的类型,一般应放在主调函数的说明语句部分;函数调用在书写时应包含被调函数名、一对圆括号、圆括号里面写对应实参,函数调用应写在主调函数中,通过函数调用具体完成被调函数的功能。【示例】在本单元的【例1-1】求两个整数和的程序中,#include int Sum(int x,int y);/函数声明int main()int a,b,s;printf(请输入两
6、个整数:);scanf(%d%d,&a,&b);s=Sum(a,b);/ Sum(a,b)是函数调用printf(两个整数和是:%dn,s);return 0;int Sum(int x,int y)/以下是函数定义int z;z=x+y;return z;第12至17行是函数Sum的定义;第2行是函数声明;第8行中的Sum(a,b)是函数调用,求变量a,b中存放的两个整数的和。7字符的表示与八进制整型常量的表示方法混淆解析:八进制整型常量必须以数字0开头,由8进制数码组成;而字符的三位八进制数表示是用单撇号括起来的以反斜杠“”开头,后跟1到3位8进制数码,这1到3位8进制数码不必以数字0开头
7、,这一点初学者往往容易混淆。【示例】程序段char ch1,ch2,ch3;ch1=65; /不必以数字0开头,65代表的是字符5ch2=065; /065为八进制整型常量,ch2的值是字符5ch3=65; /65为十进制整型常量,ch3的值是字符A 8斜杠“/”与反斜杠“”混淆解析:初学者容易把斜杠“/”与反斜杠“”混淆,斜杠“/”在C语言中是除法运算符,而反斜杠“” 在C语言中用于转义字符的开头。【示例】程序段int a=5,b=2,c;c=ab; /将除法运算符/写成了,编译出错printf(%d/n,c);/将转义字符n写成了/n,编译无错也无警告9变量未定义就开始使用解析:初学者在编
8、写程序时,经常出现变量未定义就开始使用的现象,导致编译不能通过。切记,程序中用到的每一个变量必须“先定义,后使用”。【示例】程序段int a=2,b=3;c=a+b; /变量c未定义printf(%d,c);10参加求余运算%的运算量的数据类型错误解析:求余运算%要求参加运算的两个运输量必须都是整型数据,其他类型的数据要想进行求余运算需要进行强制类型转换。【示例】程序段int a,b=5;float c=3;a=b%c; /变量c的类型错误11将字符串常量赋给字符变量解析:字符常量是用一对单撇号括起来的单一字符,在内存中占一个字节,可以赋给字符变量;字符串常量是用一对双撇号括起来的字符序列,每
9、个字符在内存中占有一个字节,包括字符串结束标志,一个字符串在内存中需要占有多个(大于等于2)字节,而字符变量只有一个字节的存储空间,所以,不能将一个字符串赋给字符变量。即字符变量只能存放一个字符,而不能存放字符串。【示例】程序段char ch;ch=a;/将字符串赋给字符变量是错误的12误认为自增自减运算不能用于实型变量解析:在自增(+)、自减(-)运算符的一侧可以是整型变量,也可以是有左值的表达式,还可以是实型变量(实型变量是由左值的表达式)。【示例】下面程序的输出结果是:3.600000。int main()double x=2.6;+x;/实型变量作自增运算printf(%lfn,x);return 0;13函数调用时的实参带参数类型解析:函数调用中,函数名后的一对圆括号里面应写具体实参,实参可以是具体数据,也可以是已赋值的变量,还可以是有确定值的表达式,在实参的前面不能再带参数类型。【示例】int Sum(int a,int b)return a+b;int main()int a,b,s;scanf(%d%d,&a,&b);s=Sum(int a,int b); /实参a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 策划公司前台工作总结
- 运输物流行业顾问工作总结
- 2024新年寄语汇编(32篇)
- 制冷技术转让协议书(2篇)
- 创业合作投资协议书(2篇)
- 2024年计算机专业实习心得体会
- 易错点08 中国近代史时间问题-备战2023年中考历史考试易错题(解析版)
- 地理中国的世界遗产课件中图版选修
- 2025届陕西省咸阳市武功县中考生物全真模拟试题含解析
- 《公共政策过程》课件
- 《新概念英语第二册》电子书、单词、笔记、练习册(附答案)汇编
- 2023年云南大学滇池学院招聘考试真题
- 品质助理述职报告
- 2023-2024学年湖南省长沙市雨花区外研版(三起)五年级上册期末质量检测英语试卷
- 超越指标:存量时代降本增效的利器
- 部队休假安全教育课件
- 2024县级应急广播系统技术规范
- 一年级道德与法治无纸笔期末检测质量分析
- 视频剪辑师工作总结
- 新疆维吾尔自治区巴音郭楞蒙古自治州2023-2024学年二年级上学期期末数学试卷
- 华为公司服务流程
评论
0/150
提交评论