- 浏览: 83712 次
- 性别:
- 来自: 东莞
文章分类
最新评论
-
0769:
呵呵,你是你们厉害而已....像我不厉害的....当然觉得它变 ...
变态级JAVA程序员面试32问(附答案) -
tmhbc:
这很正常呀。基础而且实际。
变态级JAVA程序员面试32问(附答案) -
lordhong:
这些是基本常识... 哪里变态来着? 去面试都是这些题目.. ...
变态级JAVA程序员面试32问(附答案) -
cocal:
Visual Basic 这辆车, 开着你.
好像前面说那 ...
假如编程语言是私家车 -
shuaiwawa:
Visual Basic 这辆车, 开着你.
假如编程语言是私家车
1. 书写标识符时,忽略了大小写字母的区别。
int main( void )
{
int a = 5;
printf( "%d", A );
return 0;
}
编译器认为 a 和 A 是两个不同的变量名,而显示出错信息。C 语言规定大写字母和小写字母是不同的字符;而有些编程语言是不分大小写的。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2. 忽略了变量的类型,进行了不合法的运算。
int main( void )
{
float a, b;
printf( "%d", a % b );
return 0;
}
% 是求余运算符,a % b 的结果是 a 除以 b 的余数。只有 % 左右两边的操作数都是整型时,才可以进行求余运算。故而上面的程序是错误的,因为 a 和 b 是浮点型变量。
3. 将字符常量与字符串常量混淆。
char c;
c = "a";
这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C 语言规定以 \0 作字符串常量的结束标志,它是由系统自动加上的,所以 "a" 实际上包含两个字符:'a' 和 '\0'。所以把 "a" 赋给字符变量是不行的。
4. 忽略了“=”与“==”的区别。
许多高级语言都使用“=”符号作为关系运算符的“等于”。如 BASIC 程序中可以写:
if ( a = 3 ) then …
但 C 语言中,“=”是赋值运算符,“==”才是关系运算符。如:
if (a == 3)
a = b;
a == 3 是比较 a 是否等于 3;而 a = b; 表示把 b 的值赋给 a。初学者往往会把 a == 3 错写成 a = 3,这样写是符合语法的,但是不符合我们的期望。如果错写成了 a = 3,有些编译器会给出警告。
5. 忘记加分号。
分号是 C 语句中不可缺少的一部分,语句末尾必须有分号。
a = 1
b = 2;
编译时,编译器发现“a = 1”后面没有分号,就会报错。改错时,如果在编译器所说的有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。
6. 多加分号。
{
z = x + y;
t = z / 100;
printf( "%f", t );
};
上面代码中,大括号 } 后面的分号(;)是毫无必要的!因为单独一个 ; 也是合法的 C 语言语句,所以 } 后面写了 ; 也是合法的,但是毫无必要!又如:
if ( a % 3 == 0 );
i++;
程序员的本意是如果 3 整除 a,则 i 加 1。但由于 if ( a % 3 == 0 ) 后加了分号,则 if 语句到此结束。不论 3 是否整除 a,程序都会执行 i++; 语句。再如:
for ( i = 0; i < 5; i++ ) ;
{
scanf( "%d", &x );
printf( "%d", x );
}
程序员的本意是先后输入 5 个数,每输入一个数后再将它输出。但由于for () 后加了一个分号,循环体变为空语句 ; 。空语句 ; 执行 5 次后,下面的程序块才开始执行,导致的结果是只能输入一个数并输出它。
7. 使用 scanf 函数时忘记加取址运算符“&”。
int a, b;
scanf( "%d %d", a, b );
这样写是错误的!应该改成 scanf( "%d %d", &a, &b );
8. 输入数据的方式与要求不符。
scanf( "%d %d", &a, &b );
输入时,不能用逗号作两个数据间的分隔符。例如:3, 4 。而要使用空格、回车或者 tab 键作为分隔符。例如:3 4 。如果我们想用逗号(,)来做分隔符,可以这样写:
scanf( "%d,%d", &a, &b );
此时不用逗号而用空格或其它字符是不对的。例如:3:4 。又如:
scanf("a=%d,b=%d",&a,&b);
输入应如以下形式:
a=3,b=4
9. 输出的数据类型与所用格式说明符不一致。
例如,a 定义为整型,b 定义为浮点型
int a = 3;
float b = 4.5;
printf( "%f%d\n", a, b );
编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。应该改成:
printf( "%d%f\n", a, b );
10. 输入数据时,企图规定精度。
scanf( "%7.2f", &a );
这样做是不合法的,输入数据时不能规定精度。
11. switch 语句中漏写 break 语句。
例如:根据考试成绩的等级打印出百分制数段。
switch ( grade ) {
case 'A':
printf( "85~100\n" );
case 'B':
printf( "70~84\n" );
case 'C':
printf( "60~69\n" );
case 'D':
printf( "<60\n" );
default:
printf( "error\n" );
由于漏写了 break 语句,当 grade 值为 A 时,printf 函数在执行完第一个语句后会接着执行第二、三、四、五个 printf 函数语句。正确写法应在每个分支后再加上“break;”。例如:
case 'A':
printf( "85~100\n" );
break;
12. 忽视了 while 和 do-while 语句在细节上的区别。
(1) int main( void )
{
int a = 0, i;
scanf( "%d", &i );
while ( i <= 10 ) {
a += i;
++i;
}
printf( "%d", a );
return 0;
}
(2) int main( void )
{
int a = 0, i;
scanf( "%d", &i );
do {
a += i;
++i;
} while ( i <= 10 );
printf( "%d", a );
return 0;
}
可以看到,当输入 i 的值小于或等于 10 时,二者得到的结果相同。而当 i>10 时,二者结果就不同了。因为 while 循环是先判断后执行,而 do-while 循环是先执行后判断。对于大于 10 的数 while 循环的循环体一次也不执行,而 do-while 语句则要执行一次。
13. 定义数组时误用变量。
int n = 6;
int a[n];
C99 以前,数组名后用方括号括起来必须是常量,包括常量表达式。但是在最新的 C99 标准中,上面的代码是正确无误的。如果您的编译器不支持 C99 ,那么上面的代码不能通过编译。
14. 在定义数组时,将定义的“元素个数”误认为是可使的最大下标值。
int main( void )
{
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
printf( "%d", a[10] );
return 0;
}
C 语言规定:定义时如果用 a[10],则表示数组 a 有 10 个元素,其下标值范围为0到9。a[10]不属于上面定义的数组中。对 a[10] 进行赋值可能导致程序崩溃!
15. 在不应加地址运算符 & 的位置加了地址运算符。
char s[100];
scanf( "%99s", &s );
C 语言中,数组名代表该数组的起始地址。因此上面的代码中,s 本身就已经是一个地址了,我们不需要再对它进行取址运算。正确的写法应该是:scanf( "%99s", s );
发表评论
-
6个变态的C语言Hello World程序
2013-02-19 13:54 761下面的六个程序片段主要完成这些事情: 输出Hel ... -
从C++转到Java需注意的地方
2010-08-31 22:33 8691.Java在虚拟机上运行 Jav ... -
ASP.NET和PHP性能对比
2010-08-31 22:28 938经过一些筛选,只选择一些代表性的看法进行翻译, 对于英文不是太 ... -
classpath的理解
2010-08-23 23:19 914jvm的类加载分三中方式: 系统级别:rt.jar ... -
用JavaScript的事件代理实现互动
2010-01-27 00:53 1148用JavaScript的事件代理实现互动 2009年01月 ... -
[翻译]沙发之争——过程与对象的对话
2008-09-02 00:48 865[翻译]沙发之争——过程与对象的对话译文作者:意识 信息来源: ... -
变态级JAVA程序员面试32问(附答案)
2008-08-08 00:55 1325变态级JAVA程序员面试32问(附答案) ... -
七月开发语言排行榜出炉 PowerShell有望成为年度黑马(图)
2008-07-11 00:17 2870转自:http://java.csdn.net/pag ... -
下一代浏览器脚本语言——C?
2008-07-11 00:08 1020Adobe的Scott Petersen上周在M ... -
一个定时重启关机的小程序
2008-07-02 14:55 1581此小程序只实现了定时重启或关机功能,我代表原作者欢迎大家增强它 ... -
假如编程语言是私家车
2008-05-11 11:52 1865假如编程语言是私家车 (If programming lang ... -
TC2.0下写汇编
2008-01-25 12:22 1747按照TC2.0的帮助系统所 ... -
计算机语言妙语录 软件就像性一样
2007-12-26 16:44 1084计算机语言妙语录 软件就像性一样 来自:译言 应当知道 ... -
写好C程序的10条秘籍
2007-08-08 17:59 997神乎其技,惟C程序, ... -
Linux 下 C 语言编程
2007-06-29 11:20 1095... -
猴子吃桃问题。
2007-06-28 17:03 2006基于C语言实现, 猴子吃桃问题: 猴子第一天摘下若干个桃,当即 ... -
Windows程序设计
2007-06-28 11:56 1110书不可以尽信!! 尽信书不如无书,书只是人类进步的阶梯!! 进 ... -
C++中的指针(一) 简单指针
2007-06-26 14:07 1032C++中的指针(一) 简单指针 简单总结一下C++ ... -
C/C++编程新手错误语录
2007-06-26 14:04 867C/C++编程新手错误语录 ... -
明晰C++内存分配的五种方法的区别
2007-06-26 14:01 1231明晰C++内存分配的五种方法的区别 ...
相关推荐
《C语言程序设计》作为大多数理工科学生入门的第一门高级程序设计语言课程,在软件开发领域占据着极其重要的地位。由于大部分学生在接触该课程前缺乏编程经验,加之C语言编译器对语法的要求相对宽松,程序设计的自由...
C语言调试是C语言程序设计中非常重要的一步骤,对于初学者来说尤其重要。C语言调试常见错误主要可以分为两类:第一个类错误是编译时错误,第二个类错误是运行时错误。本文将对C语言调试常见错误进行分类和讲解,...
C语言程序设计常见错误总结分析 C语言是一种广泛使用的编程语言,但是在实际编程过程中,程序员经常会遇到各种错误。这些错误可能是语法错误、逻辑错误或运行错误,本文将对这些错误进行总结和分析。 语法错误是指...
C语言是一种功能强大且灵活的编程语言,它的灵活性使得程序员有更大的自由度来设计程序,但也正因为这种灵活性,初学者在编程过程中容易遇到各种错误。以下是一些C语言初学者常犯的错误及其解释: 1. **大小写混淆*...
标题为《C语言程序设计中常见错误的探讨》,此文章的主要内容是对在学习C语言程序设计过程中学生们易犯的错误进行探讨分析。文章开篇指出C语言程序设计这门课程在高校计算机课程中的重要地位,尤其在本科高校的...
C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活 给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。...
通过学习和避免这些常见错误,C++程序员可以提升代码质量,提高编程效率,减少调试时间,从而更快速地编写出高质量的代码。 在描述中,提到本书是C++编程领域的专家Stephen C. Dewhurst在长期教授C++课程和编写C++...
C语言编程常见错误小结 C语言作为一种功能强、使用方便灵活的编程语言,对初学者来说,经常会出现一些连自己都不知道错在哪里的小错误。本篇文章总结了C语言编程中常见的8种错误,旨在帮助初学者避免这些错误,节省...
"C语言常见错误——写给编程初学者" 通过对C语言的学习和实践,我们总结出了编程初学者容易犯的一些错误。这些错误可能看起来很简单,但是却容易被忽视,导致程序出错或无法运行。下面我们将详细地讲解这些错误。 ...
分析C语言编程中常见错误及解决办法 C语言是一种广泛使用的编程语言,具有强大的功能、灵活的语法和方便的使用方式。然而,在实际编程中,C语言也存在一些常见的错误,这些错误对编程的质量和效率有重要的影响。...
C语言常见错误提示 C语言是一种流行的编程语言,但是在编程过程中,开发者经常会遇到各种错误提示。这些错误提示可能会使开发者感到迷惑和困惑,但实际上它们都是可以避免的。本文总结了C语言编程时常见的错误提示...
keil-c语言编程常见错误分析.doc
总之,C语言编程中虽然存在诸多常见错误,但通过学习和实践,理解常见错误的类型和原因,就可以采用恰当的策略去解决它们。开发者应当在编程过程中细心谨慎,尽量避免上述错误的出现,从而提高编程效率和代码质量。
【C语言程序设计:常见错误总结分析】 C语言是一种强大的编程语言,但初学者在编程过程中往往会遇到多种错误。这些错误通常分为三类:语法错误、逻辑错误和运行错误。 1. **语法错误**:这类错误是由于代码违反了...
下面将详细讲解C语言的原理、屏幕界面程序设计、内存驻留程序设计以及应用技巧,并针对常见的编译错误进行深入分析。 C语言原理: C语言是一种强大的、低级别的编程语言,它的核心特性包括结构化编程、类型系统和...
C语言以其高效和灵活性被广泛应用于系统编程、嵌入式开发等领域。然而,C语言的这些特性也意味着程序员需要对内存管理、指针操作等有深入...本文通过详细的代码示例和解决方案,帮助读者识别和处理C语言中的常见错误。
C语言,作为一种底层且高效的编程语言,是实现编译器或解释器的常见选择。它允许直接操作内存,方便处理二进制数据,这对于构建语言的底层结构至关重要。郑钢的源代码可能会涵盖词法分析器(lexer)和语法解析器...
C 语言常见错误提示 C 语言是一种广泛使用的编程语言,但是在编程过程中,开发者经常会遇到一些常见的错误提示。了解这些错误提示可以帮助开发者更好地编程和调试代码。下面是 C 语言常见错误提示的详细解释: 1. ...