C语言调试常见错误及修改方法(附习题)

C语言调试常见错误及修改方法(附习题)

ID:47427371

大小:45.01 KB

页数:12页

时间:2020-01-10

C语言调试常见错误及修改方法(附习题)_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《C语言调试常见错误及修改方法(附习题)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.调试C程序时常见的错误类型分析一般情况下,错误主要分为两大类:一、语法错误。对于这种错误,用编译器很容易解决。所以,改错题的第一步是先编译,解决这类语法错误。下面总结了二级C语言上机改错题中常见的语法错误:(1)丢失分号,或分号误写成逗号。(2)关键字拼写错误,如本来小写变成大写。(3)语句格式错误,例如for语句中多写或者少写分号。(4)表达式声明错误,例如:少了()(5)函数类型说明错误。与main()函数中不一致。(6)函数形参类型声明错误。例如:少*等。(7)运算符书写错误,例如:/写成了。二、

2、逻辑错误,或者叫语义错误,这和实现程序功能紧密相关,一般不能用编译器发现。对于逻辑错误可以按这样的步骤进行查找。(1)先读试题,看清题目的功能要求。(2)通读程序,看懂程序中算法的实现方法。(3)细看程序,发现常见错误点。2.改错题的改错方式总结,当然这些总结只能对大部分改错行有效。1、若错误行是函数首部,可分为以下几种情况:A、该行最后若有分号则删除,中间若有分号则改成逗号B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m个元素的指针变量,则

3、第二维的长度必须与main中对应数组的第二维长度相同C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return语句则函数的类型必须与return后变量的类型一致。2、若错误行是if或while语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。3、若错误行中有if、while、for则要特别注意条件表达式的错误问题:A、指针变量的应用,若表达式中有指针变量且没有指针运算符,则加上指针运算符B、若条件表达式中只有一个等于号,则改成两个等于号,若为其它比较运算符则一

4、般是进行逆转或加一个等于号C、for中要用分号分隔表达式,而不是用逗号4、语法错误A、语句缺少分号,若错误行中有语句没有用分号结束,则加上分号。B、大小写不对,若错误行中有大写字母则一般都改成小写字母。 5、指针变量的运用,若错误行中有指针变量,并且该变量名前没有指针运算符则一般都是加上指针运算符6、若错误行为return语句,则首先看是否是缺少分号若是则加上分号即可;否则就是return后的变量或表达式错误(此时可通过看题意,来分析该返回哪一变量或表达式)7、若错误行中见到整型1除以某个表达式时,一概改成1

5、.0。但若是整型变量或表达式则只能用强制转换8、复合运算符写错9、字符串结束符写错,若有字符串结束符则要特别注意有没有写错,但第11题例外,因为该题是要将数字字符转换成对应的数字。10、若错误行是定义语句,则首先看类型是否符合;再看所赋初值是否正确;若以上均不是,则看是否少定义了某个变量或少了花括号。11、表达式错误(占的份量最多,并且没有统一的改法,我们只能通过题目要求来分析并修改)12、若错误行中有一条横线,则必须将横线删除再填空。填空题中亦是如此。例题/*1.下面给定的程序的功能是:读入一个整数k(2<

6、=k<=10000),打印他所有的质因子(即所有为素数的的质因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。请改正程序中的错误,使程序得到正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:1  #include2  #include3  IsPrime(intn);4  {5    inti,m;6    m=1;7    for(i=2;i

7、         m=0;break;11        }12        return(m);13    }14  main()15  {16    intj,k;17    clrscr();18    printf("Pleaseenteranintegernunber2and10000:");scanf("%d",&k);19    printf("ThePrimefactor(s)of%dis(are):",k);20    for(j=2;j<=k;j++)21        if

8、((!(k%j))&&(IsPrime(j)))22            printf("%4d",j);23        printf("");24  }试题解答及分析错误一:第三行的末尾不需要分号,这并不是一个语句的结束,这是一个函数的头部;错误二:第八行应该该为if(!(n%i)),这是由if语句的执行过程决定的,if语句先判断紧跟着它的()里面的条件的真假,如果真执行下面的语句,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。