软考程序员辅导:程序员C语言新人常见问题
等级考试3.27W
不知不觉,学习C语言也快一年了。虽然有C语言课,但是老师完全让我们自己看书,在自学的过程中,和周围同学交流中,以及后来在CSDN,BCCN,百度知道看帖回帖中,也看到许多C语言新人常遇到的问题与常犯的错误。为了让新人们少走弯路少碰壁,我便打算写下此文。当然,由于我自己的'水平也有限,其中可能自己也不知不觉犯了错误,望高手们果断斧正。
1、程序画面一闪而过
#include
int main(void)
{
int iSignal; /*定义变量表示信号灯的状态*/
printf(“the Red Light is 0,the Green Light is 1n”); /*输出提示信息*/
scanf(“%d”,&iSignal); /*输入iSignal变量*/
if(iSignal==1) /*使用if语句进行判断*/
{
printf(“the Light is green,cars can runn”); /*判断结果为真时输出*/
}
if(iSignal==0) /*使用if语句进行判断*/
{
printf(“the Light is red,cars can’t runn”); /*判断结果为真时输出*/
}
return 0;
}
解析:在XP以上的系统用win-tc,dev-cpp等IDE编译运行此程序时,无论输入什么数字,结果都是一闪而过,因为程序执行完语句后就直接退出了。
解决方案:这里有几个办法(1)
在程序开头加上#include
然后在程序末尾加上system(“pause”);
此方法仅适用于MS-DOS,windows,不适用于*nix等系统(2)
在需要暂停的地方加入一个或两个getchar();
这种方法,实质上并不是暂停程序,而是让程序等待用户输入若干个回车。但是效果和暂停是相同的。(3)
在程序开头加上#include
在需要暂停的地方加入一个getch();,原理和上一种差不多。在win-tc里用得比较多。
2、if,for,while的判断后直接跟;
例如:
#include
int main(void)
{
int a;
scanf(“%d”,&a);
if (a == 123);////错误,if(a == 123)后面不应加上;,而应该紧跟着
////{ printf();}代码
{
printf(“ccc”);
}
else
{
printf(“ddd”);
}
getchar();
return 0;
}
#include
int main(void)
{
int n,i;
printf(“please input a number>2:”);
scanf(“%d”,&n);
for(i=2;i {
if(n%i==0)
break;
}
if(i printf(“%d not a sushun”,n);
else
printf(“%d is a sushun”,n);
return 0;
}
解析&解决方案:见注释
3、漏头文件,main函数格式不规范。
例如:
main()
{
int a;
scanf(“%d”,&a);
printf(“input %d”, a);
}
解析:这段程序没有带上头文件stdio.h。即漏写了#include 。如果仅有scanf,printf函数的话,stdio.h是可以省略并可以正确运行的,但是这是非常不好的习惯。而main()这种写法,C89标准勉强充许这种形式,C99标准是不允许的。而void main(),至今仍未有任何标准考虑接受它。但是有些编译器的确允许。当然,这种写法广为流行,应该和老谭的书关系非常大。
解决方案:用到的头文件应该用include包含进去。main()函数应该写成int main(void)这种形式,在main()函数尾部加上return 0;即
#include
int main(void)
{
int a;
scanf(“%d”,&a);
printf(“input %d”, a);
return 0;
}
相关推荐:
化学学习口诀
十点让你轻松学好高中外语
报关员考试辅导:配合查验
报关员考试报关单填制:用途/生产厂家
企业培训考试真题
1、程序画面一闪而过
#include
int main(void)
{
int iSignal; /*定义变量表示信号灯的状态*/
printf(“the Red Light is 0,the Green Light is 1n”); /*输出提示信息*/
scanf(“%d”,&iSignal); /*输入iSignal变量*/
if(iSignal==1) /*使用if语句进行判断*/
{
printf(“the Light is green,cars can runn”); /*判断结果为真时输出*/
}
if(iSignal==0) /*使用if语句进行判断*/
{
printf(“the Light is red,cars can’t runn”); /*判断结果为真时输出*/
}
return 0;
}
解析:在XP以上的系统用win-tc,dev-cpp等IDE编译运行此程序时,无论输入什么数字,结果都是一闪而过,因为程序执行完语句后就直接退出了。
解决方案:这里有几个办法(1)
在程序开头加上#include
然后在程序末尾加上system(“pause”);
此方法仅适用于MS-DOS,windows,不适用于*nix等系统(2)
在需要暂停的地方加入一个或两个getchar();
这种方法,实质上并不是暂停程序,而是让程序等待用户输入若干个回车。但是效果和暂停是相同的。(3)
在程序开头加上#include
在需要暂停的地方加入一个getch();,原理和上一种差不多。在win-tc里用得比较多。
2、if,for,while的判断后直接跟;
例如:
#include
int main(void)
{
int a;
scanf(“%d”,&a);
if (a == 123);////错误,if(a == 123)后面不应加上;,而应该紧跟着
////{ printf();}代码
{
printf(“ccc”);
}
else
{
printf(“ddd”);
}
getchar();
return 0;
}
#include
int main(void)
{
int n,i;
printf(“please input a number>2:”);
scanf(“%d”,&n);
for(i=2;i {
if(n%i==0)
break;
}
if(i printf(“%d not a sushun”,n);
else
printf(“%d is a sushun”,n);
return 0;
}
解析&解决方案:见注释
3、漏头文件,main函数格式不规范。
例如:
main()
{
int a;
scanf(“%d”,&a);
printf(“input %d”, a);
}
解析:这段程序没有带上头文件stdio.h。即漏写了#include 。如果仅有scanf,printf函数的话,stdio.h是可以省略并可以正确运行的,但是这是非常不好的习惯。而main()这种写法,C89标准勉强充许这种形式,C99标准是不允许的。而void main(),至今仍未有任何标准考虑接受它。但是有些编译器的确允许。当然,这种写法广为流行,应该和老谭的书关系非常大。
解决方案:用到的头文件应该用include包含进去。main()函数应该写成int main(void)这种形式,在main()函数尾部加上return 0;即
#include
int main(void)
{
int a;
scanf(“%d”,&a);
printf(“input %d”, a);
return 0;
}
相关推荐:
化学学习口诀
十点让你轻松学好高中外语
报关员考试辅导:配合查验
报关员考试报关单填制:用途/生产厂家
企业培训考试真题
-
2023年大学英语四级考试考核的语言技能及要求
英语四六级证书的重要性一直在增长,大学生需要在学校期间合理安排时间,下面小编为您带来2023年大学英语四级考试考核的语言技能及要求!大学英语四级考试考核的语言技能及要求一、听力理解听力理解部分考核学生获取口头信息的能力,包括理解主旨大意、重要事实和细节...
-
意大利语考试发音重点辅导
没有天生的信心,只有不断培养的信心。以下本站小编整理的意大利语考试发音重点辅导,希望对大家有所帮助,更多信息请关注应届毕业生网!1、发音:易处:怎么写,怎么念。也就是说,其字母发音很有规律,变化不多。一个字母一般只有一个发音,所以,不管在哪个单词里见到她,她总是她...
-
2014年12月英语四六级考试的听力提分技巧大汇总
明天就要考试了,在四级考试中的听力部分是四级整卷的一个重要部分,听力水平的高低将在一定程度上影响总的四级得分。所以,听力是四六级考试的一大杀手锏,也是很多同学过关斩将的拦路虎。那么听力考试有什么技巧呢?下面分享比较权威的应对四六级考试的听力技巧,希望...
-
2017年托业考试备考练习阅读辅导
Ittakesalotofthoughtandeffortanddownrightdeterminationtobeagreeable.以下是小编为大家搜索整理的2017年托业考试备考练习阅读辅导,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!排除列举题ThegeologyoftheEarth'ssurfaceisdominat...