C语言知识80问.doc

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言知识80问 1. 表达式(1-7) 1.程序在编译时出现如下错误提示信息:   error C2106  =   left operand must be l-value,… 如何根据错误提示信息判断和解决程序中的错误?   2.使用指针类型后,程序中出现了许多错误,不知如何修改?源程序如下: 3.老师,按照你的建议重新修改程序后,编译连接通过,可是运行的结果还是不对? 4.我的程序能够完成十进制到二进制和八进制之间的转换,就是不能正确转为十六进制数,即在转换的十六进制结果中看不到十六进制数中的A-F符号,这是为什么? 5.编译错误:error C2018: unknown character 0xa3 是什么意思? 6.在调试程序时中所有的警告信息不影响目标文件的形成,这样是否可以忽略这些信息?下面的提示信息":0 error(s), 1 warning(s) local variable m used without having been initialize ,我们应注意什么? 7. 表达式y=*px++与y=*(px++)意义相同吗? -------------------------------------------------------------------------------- 1.程序在编译时出现如下错误提示信息:   error C2106  =   left operand must be l-value,… 如何根据错误提示信息判断和解决程序中的错误?下面是该问题的源程序:   #includestdio.h   int main()   {   int f(int n);   int sum,n,m;   printf(please input\n);   scanf(m;   sum=f(0)+f(1);   for(n=2;n=m;n++) {   f(n)=f(n-1)+f(n-2);   sum=sum+f(n);   }   printf(sum=%d\n,sum);   printf(f(n)=%d\n,f(n));   return 0;   } 答:从错误信息提示中可以看出,你程序第11行“f(n)=f(n-1)+f(n-2);”语句有错,即系统指出了赋值号左边有逻辑错误。f(n)为函数调用形式,函数调用一般不能在赋值号左边出现(引用除外)。你的程序如果使用数组编写,程序改动如下: #includestdio.h   int main()   { int f[50]={0,1}; //定义f为50个元素的数组,前2个元素存放数列的前2项0和1 int sum,n,m; printf(please input m:\n); scanf(“%d”,m); sum=f[0]+f[1]; //前2项的和 for(n=2;nm;n++) { f[n]=f[n-1]+f[n-2]; sum=sum+f[n]; } printf(sum=%d\n,sum); printf(f(n)=%d\n,f[n-1]); return 0;   } -------------------------------------------------------------------------------- 2.使用指针类型后,程序中出现了许多错误,不知如何修改?源程序如下: //找大数 #includestdio.h int main() { int a[10],*p; for(p=a;p10;p++) scanf(“%d”,p); int max=*p; for(p=++a;p10;p++) if(*pmax)max=*p; printf(max=%d\n,max); return 0; } 答: 对于多个错误,首先从第一个错误改起,采用边改边调试的方法,效率较高。第6行p10式子错,不能用指针与一个整数进行比较,改为pa+10,其中a+10代表a[9]元素之后的一个元素的地址,作为终值控制。第7行scanf(“%d”,p);错误,改为scanf(“%d”,p);意为给p指向的变量读值。第9行++a,p10有错,a为数组名,代表地址常量,其值不能改变,改为a+1。 -------------------------------------------------

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档