a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 125|回复: 1

[程序员] 2012年软件水平考试程序员辅导笔记之程序员C语言新手入门

[复制链接]
发表于 2012-8-2 08:51:15 | 显示全部楼层 |阅读模式
 不知不觉,进修C说话也快一年了。虽然有C说话课,可是教员完全让我们自己看书,在自学的过程中,和四周同窗交流中,以及后来在CSDN,BCCN,百度知道看帖回帖中,也看到良多C说话新人常碰着的问题与常犯的错误。为了让新人们少走弯路少碰钉子,我便筹算写下此文。当然,因为我自己的水平也有限,其中可能自己也不知不觉犯了错误,望高手们不美判定赐正。 0 Y. c9 G1 {; o4 M. y  Q8 A; L
  下面的轨范,根基是摘安闲CSDN,BCCN,百度知道的提问帖,以及我身边的人和我自己写的轨范,限于篇幅,对于问题影响不大的部门我已山河去或改写,一些与响应问题无关的错误也一并进行了改削。对于完整的批改后的轨范都在code::blocks 10.05(编译器gcc,调试器gdb,平台windows 7旗舰版)上运行过。
- l0 o7 O7 J5 P3 d2 z3 r   1、轨范画面一闪而过
) E  @0 @- T9 Q. k4 d4 a! b5 D   #include 7 W: J5 v+ M+ G5 T0 K2 ~  t
   int main(void)
; p( R. u2 \! |5 v* A+ T   {
" N3 i1 _7 h( {. Q   int iSignal; /*界说变量暗示旌旗灯号灯的状况*/
" r; Z8 `* F- v+ t2 @9 ?   printf(“the Red Light is 0,the Green Light is 1\n”); /*输出提醒信息*/ : u' z  O* z! l  H4 v: r
   scanf(“%d”,&iSignal); /*输入iSignal变量*/
6 x! \3 x  r3 J   if(iSignal==1) /*使用if语句进行判定*/
+ E# e% h3 r: d   { ' t8 p7 L+ C' ]% n  s5 T
   printf(“the Light is green,cars can run\n”); /*判定结不美观为真时输出*/ 5 n  j4 u( e4 k2 J: b; }  J
   }
* Y4 i% |' e) M$ \   if(iSignal==0) /*使用if语句进行判定*/
5 z0 B0 ~% S! X   {
/ L% G; g+ ?& f  b' f   printf(“the Light is red,cars can’t run\n”); /*判定结不美观为真时输出*/ 6 Q0 E' T# N5 O4 o! R; G
   } ) {3 S5 \( ^5 m0 x, u* _5 }
   return 0;
* j& j, c) B  d' l5 v4 j5 ^5 z   }
' e) I) P2 R3 v6 z  解析:在XP以上的系统用win-tc,dev-cpp等IDE编译运行此轨范时,无论输入什么数字,结不美观都是一闪而过,因为轨范执行完语句后就直接退出了。
7 X' f8 I  T* O; m2 m( d  解决方案:这里有几个法子(1)
$ {8 c1 r: t/ H5 o5 i7 p! e  在轨范开首加上#include 3 U) R9 t+ ~4 E$ x# Y2 Z5 f
  然后在轨范末尾加上system(“pause”);
0 T* m& I! z& w* Q/ S! E  此体例仅合用于MS-DOS,windows,不合用于*nix等系统(2) ! a8 E" L8 h& d4 x5 j( i
  在需要暂停的处所插手一个或两个getchar(); 1 g% n9 C$ W: b  p
  这种体例,本色上并不是暂停轨范,而是让轨范期待用户输入若干个回车。可是效不美观和暂停是不异的。(3) 1 l  F; V! j( w3 P4 w5 v2 h: Y
  在轨范开首加上#include 4 {4 E  j& o" X- W. Y
  在需要暂停的处所插手一个getch();,事理和上一种差不多。在win-tc里用得斗劲多。
7 p5 Q: g0 X. E) ^   2、if,for,while的判定后直接跟; " x, G, f( k1 _& M4 p, Z3 q
  例如: . N' D4 ?* y8 Y  e
   #include
) P6 J- B2 g- T   int main(void)
; T+ g2 G. ?- T# l% x. \( A   {
* P; H% X. }% g0 p   int a; $ l4 K$ ^; S' S- X3 c
   scanf(“%d”,&a);
! q1 a" {( B2 R7 _. U! F' G9 N" g9 [   if (a == 123);////错误,if(a == 123)后面不应加上;,而应该紧跟着 " l& [( K. p& |
   ////{ printf();}代码
8 D/ o3 x# b: M7 ]7 s   {
回复

使用道具 举报

 楼主| 发表于 2012-8-2 08:51:16 | 显示全部楼层

2012年软件水平考试程序员辅导笔记之程序员C语言新手入门

   printf(“ccc”);
) B; Z; f0 g+ a6 B4 t2 Q8 k   } & t8 W, M" A) F
   else ) L% z$ h& y2 W
   {
. y" w& o5 ?( `1 `9 s7 q- J   printf(“ddd”);
# f' c2 I: K* u* f# z   } , z1 N1 v9 ]/ K
   getchar(); - W: @' \2 j0 Y
   return 0; 9 V; U+ B& c, Y2 `% d
   } / ]8 X1 c9 L  }
   #include
, ]8 A' M' ]5 \: s" {2 x   int main(void) & ]0 b2 o" [0 B8 C& w* U+ @/ F5 f
   { 4 T3 J1 c9 x6 Y; V, O7 ]
   int n,i;
* I$ V: h& l6 N3 N! O   printf(“please input a number>2:”);
5 U, |1 j% X- \, E   scanf(“%d”,&n); ( C$ a" Q  [2 a, y, T) t4 l
   for(i=2;i
6 E% _" x9 Y' r. }5 G, k1 o% G   { ; Z9 V. u9 J8 v5 M- H+ |
   if(n%i==0) 5 g1 x) C3 G, a- V' Q! q' h
   break;
- E, N4 n* Z9 Q- [4 S2 |3 M4 M) z; S   } 3 }( s2 B2 e* |2 T. d* S
   if(i
  c6 k/ M- A" g& R7 U# l  J) [   printf(“%d not a sushu\n”,n); 1 Y0 p* I; `  ^
   else * s4 Y8 c+ N. U8 q5 t1 I
   printf(“%d is a sushu\n”,n); 7 N: ^( {4 r. T
   return 0;
. a. Z$ F! S% k7 F$ D2 v/ X8 J9 t   } 6 c9 D! B' o9 `
  解析&解决方案:见注释
9 G7 [4 v6 ^4 J) Q   3、漏头文件,main函数名目不规范。 ' g5 t. y1 T. Y" N, s! D% m1 b
  例如:
5 Q& e7 [$ o& x0 C( j" r% u   main() , u2 ^0 v( A: q% {& y
   {
1 C( w8 P* V- b' f$ I' R3 K. c   int a;
. O. @# _, u4 `( o5 f   scanf(“%d”,&a); % {% p" A$ R0 V  B/ K' c* g4 n
   printf(“input %d”, a);
3 B/ a7 ~! Q3 m0 X3 Q' r" R3 G0 A   } 8 k4 u) r- I/ [( b" S
  解析:这段轨范没有带上头文件stdio.h。即漏写了#include 。如不美观仅有scanf,printf函数的话,stdio.h是可以省略并可以正确运行的,可是这长短常欠好的习惯。而main()这种写法,C89尺度勉强充许这种形式,C99尺度是不许可的。而void main(),至今仍未有任何尺度考虑接管它。可是有些编译器简直许可。当然,这种写法广为风行,应该和老谭的书关系很是大。
5 ?+ w+ m/ N5 X1 R' k  u/ j  解决方案:用到的头文件应该用include包含进去。main()函数应该写成int main(void)这种形式,在main()函数尾部加上return 0;即 ( g( x' l* V# I% w' [5 {
   #include . m4 G+ n, B& n& N; ~) _- H9 k8 ]1 e# P
   int main(void)
6 M* `# I% A7 P' j& W! z2 W! n   {
: t6 }1 o* Z7 |9 `   int a;
, v" B: t$ S; J: I   scanf(“%d”,&a);
: e5 m/ y. ~( f! c+ s1 ~9 t7 v# X   printf(“input %d”, a);
$ O" D0 I. l1 v, @; {   return 0;    }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 16:21 , Processed in 0.311562 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表