欢迎来到天天文库
浏览记录
ID:44400201
大小:882.00 KB
页数:17页
时间:2019-10-21
《大一C语言辅导PPT》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题和上机的常见错误1.经常漏写分号,花括号{}不配对,函数没有返回值,这是最常见的语法问题,希望同学们在上机练习的过程中去发现和改正,并且牢记在心;2.输入输出的转换描述符和实际输出的变量类型不符合(例如:doublea;scanf(“%f”,&a);这时应该是%lf),并且漏写&;3.变量没有初始化就使用(例如:intsum;…sum+=i;…printf(“%d”,sum);sum没有初始化);4.没有理解函数和调用函数是什么意思,经常把函数定义当作调用5.对for,while和do-while语句的用法不清楚,循环体何时结束也不知道;6.对s
2、witch语句的理解也不清楚,经常有同学问为什么要执行这个case语句,而不执行另外一个等,讲完了以后还是不懂,这些问题得多理解和勤练习;7.if-else条件语句的用法也不太清楚,特别是遇到嵌套的,就搞懵了,不知道else该和哪个if对齐;8.编程时思路混乱,没耐心,总想一下子就把题做完美,不能一步一步思考和解决;9.不能很好地把自然语言转换成编程语言(比如第二次上机题中的判断谁最可能是罪犯);10.作业书写太差,上机代码格式太难看了,希望大家注意一下,养成良好的编程习惯;11.据同学们反映,课后习题太难了,完全不懂题目的意思,更何谈编程,这个希望
3、同学们下来多钻研,练多了,就不难了;12.希望同学们上机时认真练习,别玩游戏,把不懂的问题尽量搞清楚。P129.13部分代码如下:for(intk=3;k<=n-k;k++){intflag=0,p,q;for(p=2;p*p<=k;p++)//判断k是否为素数if(k%p==0)break;for(q=2;q*q<=n-k;q++)//判断n-k是否为素数if((n-k)%q==0)break;if(p*p>k&&q*q>n-k)//若都是素数,则输出printf("%d=%d+%dt",n,k,n-k);}14题:参考课本99页例题17题:部分
4、代码如下:intwanshu(intx){intn,sum=1,a=2;n=x/a;while(amax1){max2=max1;max1=x;}elseif(x>max2)max2=x;}20题:将第一个数据项数
5、n读出来,然后用一个循环,读入n个数,累加再求平均值。22题:外循环即最长边从5开始循环,内循环中一条边长度从3开始循环,每次用sqrt()函数计算第三条边的长度,若是整数,则输出这个证书组。部分代码如下:for(intk=5;k<=n;k++){intp=3;doublet=sqrt(k*k-p*p);for(;p6、}23题:为了方便处理,我们规定如果字母字符出现在行的最开始和中间,就输出“不合法”这段代码可以像这样写:while(scanf("%d",&left)==1)break;while((c=getchar())=='');//处理左操作数和符号之间的空格if(c=='+'7、8、c=='-'9、10、c=='*'11、12、c=='%'13、14、c=='/'){while(scanf("%d",&right)!=1);//读取右操作数switch(c){case'+':printf("%d+%d=%d",left,right,left+right);break;case15、'-':printf("%d-%d=%d",left,right,left-right);break;case'*':printf("%d*%d=%d",left,right,left*right);break;case'/':printf("%d/%d=%d",left,right,left/right);break;case'%':printf("%d%(%d)=%d",left,right,left%right);break;default:break;}while(c=getchar()!='');//处理右操作数后面的字16、符}else{printf("输入不合法,请重新输入");while(getchar()!='');
6、}23题:为了方便处理,我们规定如果字母字符出现在行的最开始和中间,就输出“不合法”这段代码可以像这样写:while(scanf("%d",&left)==1)break;while((c=getchar())=='');//处理左操作数和符号之间的空格if(c=='+'
7、
8、c=='-'
9、
10、c=='*'
11、
12、c=='%'
13、
14、c=='/'){while(scanf("%d",&right)!=1);//读取右操作数switch(c){case'+':printf("%d+%d=%d",left,right,left+right);break;case
15、'-':printf("%d-%d=%d",left,right,left-right);break;case'*':printf("%d*%d=%d",left,right,left*right);break;case'/':printf("%d/%d=%d",left,right,left/right);break;case'%':printf("%d%(%d)=%d",left,right,left%right);break;default:break;}while(c=getchar()!='');//处理右操作数后面的字
16、符}else{printf("输入不合法,请重新输入");while(getchar()!='');
此文档下载收益归作者所有