文档库 最新最全的文档下载
当前位置:文档库 › VIP软件专业课-C语言集训资料(上篇)

VIP软件专业课-C语言集训资料(上篇)

VIP软件专业课-C语言集训资料(上篇)
VIP软件专业课-C语言集训资料(上篇)

第一部分运算符

1.若有定义:int a=7;float x=

2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是

A. 2.750000

B. 0.000000

C. 3.500000

D. 2.500000

2.在C语言中,运算对象必须为整型的运算符是

A./B.> C.+= D.%

3.在C语言中,要求运算数必须是整型的运算符是

A. /

B. ++

C. !=

D. %

4.在C语言中,以下关于运算符叙述错误的是

A. 在C语言中,逗号运算符的优先级最低

B. 在C语言中,赋值运算符自右向左运算

C. 在C语言中,+、-、*、/、%是算术运算符,可用于整型和实型数的运算

D. 在C语言中,++、--运算符可以改变变量的值

5.在C语言中,以下非法的表达式是

A. 0<=x<=100

B. i=j==0

C. (char)(65+3)

D. x+1=x+1

6.在C语言中,以下非法的赋值语句是

A. j++;

B. ++(i+1);

C. x=j>0;

D. k=i==j;

7.(1) 表达式3.6-5/2+1.2+5%2的值是

A. 4.3

B. 4.8

C. 3.3

D. 3.8

(2) 若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为

A. 1.9

B. 1

C. 2

D. 2.4

8.(1) 设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是

A. 3

B. 0

C. 9

D. -12

(2) 设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是

A. 10

B. 20

C. 40

D. 30

(3) 设有语句:int a=0;则执行语句 a+=(a=8);变量a的值是

A. 0

B. 8

C. 16

D. 24

9.下列关于单目运算符++、--的叙述中正确的是

A. 它们的运算对象可以是char型变量、int型变量和float型变量

B. 它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C. 它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D. 它们的运算对象可以是任何变量和常量

10.以下程序的输出结果是

⑴ int i=10,j=1;

printf("%d,%d\n",i--,++j);

A. 9,2

B. 10,2

C. 9,1

D. 10,1

⑵ int a=12,b=12;

printf("%d %d\n" ,--a,++b);

A. 10 10

B. 12 12

C. 11 10

D. 11 13

⑶ int x=10,y=10;

printf("%d %d\n",x--,--y);

A. 10 10

B. 9 9

C. 9 10

D. 10 9

⑷ int x=023; printf("%d\n",--x);

A. 17

B. 18

C. 23

D. 24

11.以下程序的输出结果是

printf("%d\n",(x,y));

A. 200

B. 100

C. 100 200 D)200 100

12.以下程序的输出结果是

main()

{ int x=10,y=3,z;

printf("%d\n",z=(x%y,x/y));

}

A. 1

B. 0

C. 4

D. 3

13.若x、i、j和k均是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为

A. 4

B. 16

C. 32

D. 52

14.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是

A. k++

B. k+=1

C. ++k

D. k+1

15.以下选项中,与k=n++完全等价的表达式是

A. k=n,n=n+1

B. n=n+1,k=n

C. k=++n

D. k+=n+1

16.以下程序的输出结果是

main()

{ int a=3,b=4; printf("%d\n",a<=b); }

A. 3

B. 4

C. 1

D. 0

17.在C语言中,表达式10!=9的值为

A. 0

B. False

C. 1

D. True

18.设有int i,j,k; 则表达式i=1,j=2,k=3, i&&j&&k的值为

A. 1

B. 2

C. 3

D. 0

19.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是

A. 'x'&&'y'

B. x<=y

C. x||y+z&&!y

D.!(x

20.下列表达式为0的是

A. 4&&0||2

B. 5>3&&2||8<10+10

C. 'c'&&'d'

D. f=8>7>1

21.设有定义:int x=1,y=-1;则语句:printf("%d\n",(x--&&++y));的输出结果是

A. 1

B. 0

C. -1

D. 2

22.为表示关系x≥y≥z,应使用C语言表达式

A. (x>=y)&&(y>=z)

B. (x>=y)AND(y>=z)

C. (x>=y>=z)

D. (x>=y)&(y>=z)

23.能正确表示a≥10或a≤0的关系表达式是

A. a>=10 or a<=0

B. a>=10|a<=0

C. a>=10||a<=0

D. a>=10&&a<=0

24.表示当x的取值在[1,10]和[200,210]范围内为真,否则为假的C语言表达式为

A. (x>=1&&x<=10)&&(x>=200&&x<=210)

B. (x>=1||x<=10)||(x>=200||x<=210)

C. (x>=1&&x<=10)||(x>=200&&x<=210)

D. (x>=1||x<=10)&&(x>=200||x<=210)

25.判断char型变量ch是否为数字的C表达式为

A. ('0'<=ch&ch<='9')

B. (ch>='0'&&ch<='9')

C. (ch>="0"&&ch<="9")

D. (ch>=0&&ch<=9)

26.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d);后n的值为

A. 1

B. 2

C. 3

D. 4

27.以下程序的输出结果是

#include

{ int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf("%d,%d\n",k,m);}

A. 0,0

B. 0,1

C. 1,0

D. 1,1

28. 设x 、y 、t 均为int 型变量,则执行语句:x=y=3;t=++x||++y;后,y 的值为

A. 1

B. 2

C. 3

D. 4

29. 设int x=-1;执行表达式++x||++x||++x||++x,x 的值是

A. 0

B. 1

C. 2

D. 4

30. 设有int i;则表达式i=1,++i,++i||++i,i 的值为

A. 1

B. 2

C. 3

D. 4

31. 以下程序输出的结果是

main()

{ int a=-1,b=4,k;

k=!((++a<0)&&!(b--<0));

printf("%d%d%d\n",k,a,b); }

A. 104

B. 103

C. 013

D. 004

32. 设a=1,b=2,c=3,d=4,则表达式a

A. 4

B. 3

C. 2

D. 1

33. 设w 、x 、y 、z 、m 均为int 型变量,则以下程序段执行后,m 的值

①w=1;x=2;y=3;z=4; ②m=(w

A. 4

B. 3

C. 2

D. 1

34. 若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是

A. (exp==0)

B. (exp!=0)

C. (exp==1)

D. (exp!=1)

35. 在C 语言中,运算符的操作数必须是整型的是 。

36. 有语句int i=-19,j=i%4;printf("%d\n",j);则输出结果是 。

37. 设x 和y 均为int 型变量,且x=1,y=2,则以下表达式1.0+x/y 的值 。

38. 设int x=7,y=3,则表达式x%y+x/y 的值是 。

39. 请写出数学式bc

a 的C 语言表达式 。 40. 设int a=9,b=6,c;,执行语句c=a/b+0.8;后c 的值是 。

41. 设char w;int x;float y;double z;,则表达式w*x+z-y 的值的类型是 。

42. 设int a;float b;char c;long d;double e;,则表达式a/c-b+d-e 值的类型是 。

43. 设int i;float f=3.14;,执行i=(int)f;后,变量i 的值是 。

44. 设float x=23.65;, 则执行语句printf("%d\n",(int)(x+0.5));后输出结果是 。

45. 若a,b 和c 均是int 型变量,则计算表达式a=(b=4)+(c=2)后,a 值为 。

46. 设int a=37;,则执行语句a+=a%=9;后,变量a 的值是 。

47. 设int j=5;,则执行语句j+=j-=j*j;后,变量j 的值是 。

48. 设int a=2;,则执行a+=a*=15;后,变量a 的值是 。

49. 执行语句 y=10;x=y++;后变量x 的值为 。

50. 设int x=011; printf("%d\n",++x); 后的输出结果是 。

51. 设int a=010,b=10;

则语句printf("%d,%d\n",a++,--b);的结果为 。

52. 设int x=14;,则表达式x++%-5的值为 。

53. 在C 语言中,优先级最低的运算符是 。

54. 设a 和x 都为整型变量,执行赋值表达式x=(a=3,6*3)后,x 值为 。

56.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为。

57.设int a,b;,表达式a=2,b=5,b++,a+b的值是。

58.在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是。

59.设int a,b,c;则执行a=(b=3,c=5,b=10);后变量a的值是。

60.若定义了int a=1;,则执行printf("%d\n",((a=a+4,a+5),a+6));语句的输出结果是。

61.int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是。

62.设有定义int x=9,y=8;表达式x==y+1的结果是。

63.当a=5,b=4,c=2时,表达式a>b!=c的值是。

64.设int a=12;,语句printf("%d\n",(a/3,a%3,a/10>0));的输出结果是。

65.执行printf("%d\n",1+!2+(3<=4)+5/6+7%8);后的输出结果是。

66.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是。

67.设int a=1,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是。

68.设int a=-3,b=7,c=-1;则执行(a==0)&&(a=a%b

69.执行C语言语句"int a=3,b=4,c;c=a++>3||--b<4;"后变量c的值为。

70.设a、b、c为整型变量,若a的值为1,b的值为2,则执行c=a++||b++;语句后,变量b的值为。

71.设int y;执行表达式(y=4)||(y=5)||(y=6)后,y的值是。

72.设int m=0;,执行表达式m||(m=2)||(m=3)||(m=4)后,m的值是。

73.设int a=0,b=0,c=2,d=4;,则执行(c=a==b)||(d=b==a);后变量d的值是。

74.设int a=1,b=2,m=2,n=2;,执行表达式(m=a

75.设int x=-9,y;,则执行y=x>=0?x:-x;后y的值是。

76.设int a=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c++:d++;后f的值是。

77.设int x=1,y=3,z;,执行z=x>y?++x:y++;后,z的值是。

78.若有定义int x=2,y=3,z=4;则执行x+=y+=z;后表达式x

79.将以下程序写成三目运算符表达式是。

if(a>b) max=a; else max=b;

80.( ) C程序中,%是只能用于整数运算的运算符。

81.( ) 若有定义int a=90;double b=2.0;float c=1;char k='0';则表达式a/b+c-k值的类型为double。

82.( ) A-=7等价于a=a-7。

83.( ) 若有int i=50,j=2;则执行完i*=j+8;后i的值为108。

84.( ) 语句x-=y+8等价于x=x-y+8。

85.( ) x=(i=4,j=16,k=32); x的结果是32。

86.( ) 表达式n=++i等价于n=i;i=i+1;。

87.( ) 7&&3+12的值是15。

88.( ) 为表示关系表达式x≥y≥z应使用C语言表达式(x>=y)||(y>=z)。

89.( ) 运算符的优先级依次为(由高到低):!(非)、关系运算符、算术运算符、&&和||、赋值运算符。

90.( ) 与表达式exp等价的表达式是exp!=0。

91.( ) C语言运算符按运算对象的数目可以分为单目、双目和三目运算符三类。

第二部分 if语句与switch语句

1.为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中else总是与()组成

配对关系

A. 缩放位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if

D. 同一行上的if

2.若变量已正确定义,有以下程序段,则输出结果是

i nt a=3,b=5,c=7;

if(a>b) a=b;c=a;

if(c!=a) c=b;

printf("%d,%d,%d\n",a,b,c);

A. 程序段有语法错

B. 3,5,3

C. 3,5,5

D. 3,5,7

3.以下程序的输出结果是

#include

main()

{ int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

printf("%d\n",c); }

A. 0

B. 1

C. 2

D. 3

4.有以下程序

main()

{ int a=3,b=4,c=5,d=2;

if(a>b)

if(b>c) printf("%d",d+++1);

else printf("%d",++d+1);

printf("%d\n",d); }

程序运行后的输出结果是

A. 2

B. 3

C. 43

D. 44

5.以下程序段的输出结果是

main()

{ int x=1,y=2,z=3;

if(x>y)

if(y

else printf("%d",++y);

printf("%d\n",x++);

}

A. 331

B. 41

C. 2

D. 1

6.若执行以下程序段从键盘上输入9,则输出结果是

int n;

scanf("%d",&n);

if(n++<10) printf("%d\n",n);

else printf("%d\n",n--);

7.两次运行下面的程序,若从键盘上分别输入6和4,则输出结果是

main()

{ int x;scanf("%d",&x);

if(x++>5) printf("%d",x);

else printf("%d\n",x--); }

A. 7和5

B. 6和3

C. 7和4

D. 6和4

8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y) z=x; x=y; y=z;

A. x=l0,y=20,z=30

B. x=20,y=30,z=30

C. x=20,y=30,z=10

D. x=20,y=30,z=20

9.下面的程序的输出结果是

main()

{ int x=3,y=0,z=0;

if(x=y+z) printf("****");

else printf("####");}

A. 有语法错误不能通过编译

B. 输出****

C. 可以通过编译,但是不能通过连接

D. 输出####

10.以下程序的输出结果是

main()

{ int a=5,b=4,c=3,d=2;

if(a>b>c) printf("%d\n",d);

else if((c-1>=d)==1) printf("%d\n",d+1);

else printf("%d\n",d+2);}

A. 2

B. 3

C. 4

D. 5

11.若运行时从键盘上输入2.0(表示回车),则下面程序的输出结果是

main()

{ float x,y;scanf("%f",&x);

if(x<0.0) y=0.0;

else if((x<5.0)&&(x!=2.0)) y=1.0/(x+2.0);

else if(x<10.0) y=1.0/x;

else y=10.0;

printf("%f\n",y);}

A. 0.000000

B. 0.250000

C. 0.500000

D. 1.000000

12.有以下程序

#include

main()

{ int i=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

printf("%d %d %d\n",i,j,k);

}

A. 1 2 3

B. 2 3 4

C. 2 2 3

D. 2 3 3

13.若有定义:float w;int a,b;则合法的switch语句是

A. switch(w)

B. switch(a)

{ case 1.0: printf("*\n"); { case 1 printf("*\n");

case 2.0: printf("**\n"); case 2 printf("**\n");

} }

C. switch(b)

D. switch(a+b);

{ case 1:printf("*\n"); { case 1:printf("*\n");

default:printf("\n"); case 2:printf("**\n");

case 1+2:printf("**\n"); default:printf("\n");

} }

14.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是

A. switch(x)

B. switch((int)x);

{ case 1.0: printf("*\n"); { case 1.0:printf("*\n");

case 2.0: printf("**\n"); case 2.0: printf("**\n");

} }

C. switch(a+b)

D. switch(a+b)

{ case 1: printf("*\n"); { case 1: printf("*\n");

case 2+1: printf("**\n"); } case c: printf("**\n"); } 15.以下程序的输出结果是

main()

{ int x=1,a=0,b=0;

switch(x)

{ case 0:b++;

case 1:a++;

case 2:a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

A. a=2,b=1

B. a=1,b=1

C. a=1,b=0

D. a=2,b=2

16.执行下面程序,输入2后的输出结果是

#include

main( )

{ int k;

scanf("%d",&k);

switch(k)

{ case 1:printf("%d\n",k++);break;

case 2:printf("%d\n",k++);

case 3:printf("%d\n",k++);break;

default:printf("Full!\n");

}

}

A. 1

B. 2

C. 2 3

D. 2 3 Full

17.( ) if(a=0) i=1; 是合法的C语句。

18.( ) int i=25;

switch(i/10)

{ case 2:printf("A");

case 1:printf("B");

} 的输出结果为A。

19.【程序】

#include

main()

{ int a=1,b=3,c=5,d=4,x;

if(a

if(c

else if(a

if(b

else x=3 ;

else x=6 ;

else x=7;

printf("x=%d\n",x);

}

【运行结果】

20.【程序】

#include

main()

{ int i=10;

switch(i)

{ case 9:i+=10;

case 10:i+=10;

case 11:i+=10;break;

default:i+=10;

}

printf("i=%d\n",i);

}

【运行结果】

21.【程序】

#include

main()

{ int x=0,y=1;

switch(x)

{ case 0:

switch(y)

{ case 1:printf("**1**\n");break;

case 2:printf("**2**\n");break;

}

case 1:printf("**3**\n");break;

}

}

【运行结果】

22.【程序】

#include

main()

{ int x=2,y=4;

switch(x)

{ case 2: switch(y)

{ case 4:printf("first\n");break;

case 8:printf("second\n");break;

}

case 4:printf("third\n");break;

}

}

【运行结果】

23.【程序】写出输入84时程序运行结果

#include

main()

{ int score;

printf("\n input score: ");

scanf("%d",&score);

switch(score/10)

{ case 10:

case 9: printf("\n 优");

case 8: printf("\n 良");

case 7:

case 6: printf("\n 及格");

default: printf("\n 不及格");

}

}

【运行结果】

24.【程序】

#include

main()

{ int a=15,b=21,m=0;

switch(!(a%3))

{ case 0:m++;break;

case 1:m++;

switch(b%2)

{ case 0:m++;break;

case 1:m++;

}

}

printf("%d\n",m);

}

【运行结果】

第三部分循环结构

1.以下循环的输出结果是

int n=10; while(n>7) { n--;printf("%d\n",n);}

A. 10

B. 9

C. 10

D. 9

9 8 9 8

8 7 8 7

7 6

2.以下循环的输出结果是

int num=0; while(num<=2) { num++;printf("%d\n",num);}

A.1

B. 1

C. 1

D. 1

2 2 2

3 3

4

3.设有程序段

int k=10;

while(k==0) k=k-1;

则下面描述中正确的是

A. while循环执行10次

B. 循环是无限循环

C. 循环体语句一次也不执行

D. 循环体语句执行一次

4.对以下程序段叙述正确的是

int k=3;

while(k=0) k=k-1;

A. while循环执行10次

B. 无限循环

C. 循环体一次也不被执行

D. 循环体被执行一次

5.当执行以下程序段时:x=-1;

do { x=x*x; }while(!x);

A.循环体将执行一次 B. 循环体将执行两次

C. 循环体将执行无限次

D. 系统将提示有语法错误

6.有以下程序段,则此处do-while循环的结束条件是

int n=0,p;

do{ scanf("%d",&p);n++;}while(p!=12345&&n<3);

A. p的值不等于12345并且n的值小于3

B. p的值等于12345并且n的值大于等于3

C. p的值不等于12345或者n的值小于3

D. p的值等于12345或者n的值大于等于3

7.若有以下程序段,结果正确的是

int x=3;

do { printf("%d\n",x-=2);} while(!(--x));}

A. 输出的是1

B. 输出的是1和-2

C. 输出的是3和0

D. 是死循环

8.下面程序段的运行结果是

int a=1,b=10;

do

{ b?=a;

a++; }while(b??<0);

A. a=3,b=11

B. a=2,b=8

C. a=1,b=?1

D. a=4,b=9

9.若变量已正确定义,有以下程序段,其输出结果是

i=0;

do { printf("%d,",i); } while(i++);

printf("%d\n",i);

A. 0,0

B. 0,1

C. 1,1

D. 程序进入无限循环

10.以下程序段构成的循环是

for(x=0,y=0;(y!=12&&x<4);x++) ;

A. 无限循环

B. 循环次数不定

C. 执行4次

D. 执行3次

11.以下程序的输出结果是

main()

{ int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d %d ",x--,y);

}

A. 10 1 9 2

B. 9 8 7 6

C. 10 9 9 0

D. 10 10 9 1

12.设j为int型变量,则下面for循环语句的执行结果是

for(j=10;j>3;j--)

{ if(j%3) j--;--j;--j;

printf("%d ",j);

}

A. 6 3

B. 7 4

C. 6 2

D. 7 3

13.以下程序的输出结果是

#inclue

main()

{ int i,f1=1,f2=1;

for(i=0;i<3;i++)

{ printf("%d %d ",f1,f2);

f1=f1+f2;

f2=f1+f2

}

}

A. 1 2 3 4 5 6

B. 1 1 3 5 7 9

C. 1 1 2 3 5 8

D. 1 3 5 7 9 11

14.以下程序的输出结果是

int i=0,s=0;

do { if(i%2) { i++;continue;}

i++; s+=i;

} while(i<7);

printf("%d\n",s);}

A. 16

B. 12

C. 28

D. 21

15.以下程序的输出结果是

#include

{ int a,b;

for(a=1,b=1;a<=100;a++)

{ if(b>=10) break;

if(b%3==1) { b+=3;continue;} }

printf("%d\n",a);}

A. 101

B. 6

C. 5

D. 4

16.以下程序的输出结果是

#include

main()

{ int i;

for(i=1;i<=5;i++)

{ if(i%2) printf("*");

else continue;

printf("#");

}

printf("$\n");}

A. *#*#*#$

B. #*#*#*$

C. *#*#$

D. #*#*$

17.以下程序的输出结果是

#include

main()

{ int i;

for(i=1;i<=5;i++)

{ if(i%2) printf("*");

else continue;

printf("#"); } }

A. *#*#*#

B. *##*##*##*##

C. *#*#

D. #*#*

18.若i、j已定义为int类型,则以下程序段中内循环的总执行次数是

for(i=5;i;i--)

for(j=0;j<4;j++) { …… }

A. 20

B. 25

C. 24

D. 30

19.有以下程序,程序执行后输出结果是

#include

main()

{ int i,n=0;

for(i=2;i<5;i++)

{ do

{ if(i%3) continue;

n++; }

while(!i);

n++;

}

printf("n=%d\n",n); }

A. n=5

B. n=2

C. n=3

D. n=4

20.C语言的三种循环语句是、、。

21.for(……)循环语句的括号中有个表达式。

23.设int n;,执行for(n=0;n==0;n++) n=0;后,循环体被执行的次数是。

24.设int i;,执行for(i=1;i==10;i++) continue;后,循环体被执行的次数是。

25.执行语句for(i=10;i>0;i--);后,变量i的值是。

26.break和continue都可以用于循环结构中,其中只是结束本次循环,回到循环体第一条

语句开始下次循环。

27.( ) 在while循环中,循环体可能一次也不执行。

28.( ) 在do-while循环中,循环体至少执行一次。

29.( ) for(表达式1;;表达式3)可理解为for(表达式1;1;表达式3)。

30.( ) for语句作为循环控制语句时,其括号内各个表达式与其后的分号都可省略。

31.( ) for(exp1;exp2;exp3) 语句s;中的s可以是空语句。

32.( ) break,return 所起的作用是一样的,都是跳出循环。

33.( ) break语句用于循环体中,可结束本层循环,continue语句用于循环体中,可结束本次循环。

34.【程序】

#include

main()

{ int a,s,n,count;

a=2;

s=0;

n=1;

count=1;

while(count<=4)

{ n=n*a;

s=s+n;

++count;

}

printf("s=%d\n",s);

}

【运行结果】

35.【程序】

#include

main()

{ int t,a=0,b=1,c=2;

while(a

{ t=a;

a=b;

b=t;

c--;

}

printf("%d,%d,%d",a,b,c);

【运行结果】

36.【程序】

#include

main()

{ int x=26587,x1,r,sum=0;

x1=x;

while(x>0)

{ r=x%10;

sum+=r;

x/=10;

}

printf("Sum is the digits in %d is %d",x1,sum);

}

【运行结果】

37.【程序】

#include

main()

{ int i=10,j=0;

do

{ j=j+i;

i--;

} while(i>2);

printf("%d\n",j);

}

【运行结果】

38.【程序】

#include

main()

{ int i;

for(i=0;i<3;i++)

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

【运行结果】

#include

main()

{ int a=0,i;

for(i=1;i<5;i++)

{ switch(i)

{ case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}

printf("%d\n",a);

}

【运行结果】

40.【程序】

#include

main()

{ int k=5,n=0;

while(k>0)

{ switch(k)

{ default:break;

case 1:n+=k;

case 2:

case 3:n+=k;

}

k--;

}

printf("%d\n",n);

}

【运行结果】

#include

main()

{ int i;

for(i=0;i<3;i++)

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);break;

default: printf("%d",i);

}

}

【运行结果】

42.【程序】

#include

main()

{ int i;

for(i=1;i<6;i++)

{ if(i%2) { printf("#");continue; }

printf("*");

}

}

【运行结果】

43.【程序】

#include

main()

{ int x,y;

for(y=1,x=1;y<=20;y++)

{ if(x>=8) break;

if(x%2==1) { x+=5;continue; }

x-=3;

}

printf("x=%d,y=%d\n",x,y);

}

【运行结果】

#inclue

main()

{ int x=8;

for(;x>0;x--)

{ if(x%3) { printf("%d ",x--);continue;

printf("%d ",--x);

}

}

【运行结果】

45.【程序】

#include

main()

{ int x=0,y=0,i;

for(i=1;;++i)

{ if(i%2==0) { x++;continue; }

if(i%5==0) { y++;break; }

}

printf("%d,%d\n",x,y);

}

【运行结果】

46.【程序】

#include

main()

{ int k=5,n=0;

do

{ switch(k)

{ case 1:

case 3:n+=1;k--;break;

default:n=0;k--;

case 2:

case 4:n+=2;k--;break;

}

printf("%d",n);

} while(k>0&&n<5);

}

2017全国计算机等级考试二级C语言知识点超全整(打印版).docx

全国计算机等级考试

目录 第-部分公共基础知识 第1章算法与数据结构 (1) 考点1算法........................... I 考点2数据结构.. (1) 考点3线性表及英顺序存储结构 (1) 考点4栈和队列 (1) 考点5线性链表 (2) 考点6树与二叉树 (2) 考点7查找技术 (3) 考点8排序技术 (3) 第2章程序设计基础 (4) 考点I程序设计方法与风格 (4) 考点2结构化程序设计 (5) 考点3面向对象的程序设计 (5) 第3章软件工程基础 (5) 考点1软件工程基本概念 (5) 考点2软件分析方法 (6) 考点3结构化设计方法 (7) 考点4软件测试 (8) 考点5程用的调试 (9) 笫4帝数据库设计基础 (9) 考点1数据库系统的基本概念 (9) 考点2数据带系统的基木概念 (10) 考点3关系代数 (12) 考点4数据库设计与管理 (12) 第二部分二级C语言 笫1章程序设汁基本概念 (14) 考点1程序设计 (14) 考点2 C程序的结构和格式 (14) 考点3常鱼和变蛍 (14) 考点4算术表达式 (15) 考点5赋值表达式 (16) 考点6自加.口减和逗号运算 (16) 第2章顺疗结构 (17) 考点1字符型常屋与变虽 (17) 考点 2 putchar 与gclchar 函数 (17) 考点3 printf函数 (17) 考点4 scanf函数 (18) 考点5位运算的含义和应用 (18) 第3章选择结构 (19) 考点1关系运算符和关系表达式 (19) 考点2逻轉运算符和逻辑表达式 (19) 考点3 if语句及其构成的选择结构 (19) 考点4 switch语句与break语句 (20) 第4章循环结构 (20) 考点1 while循环结构 (20) 考点2 do-while循环结构 (21) 考点3 for循环结构 (21) 考点4嵌套循环语句 (21) 第5章函数 (21) 考点I库函数 (21) 考点2函数的调用 (22) 考点3参数传递 (22) 考点4函数的递归调用 (23) 考点5局部、全局变量和存储分类 (23) 第6章地址与指针 (23) 考点1变量的地址和指针 (23) 考点2抬针变量的操作 (24) 考点3函数之间地址的传递 (24) 第7章数组 (24) 考点1 一维数组的定义及元素的引用??24 考点2函数对-维数组及元素的引用??25 考点3二维数组的定义 (25) 考点4二维数组和指针 (25) 考点5二维数组名和指针数组作为实参???26 第8章字符串 (26) 考点|用-?维字符数组存放字符出? (26) 考点2使指针指向字符串 (26) 考点3字符串的输入和输出 (26) 考点4字符串数组 (27) 考点5用于字符串处理的函数 (27) 第9章编译预处理和动态存储分配 (27) 考点I編译预处理 (27) 考点2宏替换 (27) 考点3文件包含处理 (28) 考点4动态存储分配 (28) 第10章结构体.共用体和用戸定义类型28考点1结构体 (28) 考点2共用体 (29) 考点3用户定义类型 (29) 第11章文件 (29) 考点1文件指针 (29) 考点2文件的读写 (30)

计算机二级C语言高效考点

计算机二级C语言高效考点 2017年计算机二级C语言高效考点锦集 C语言基本知识 【考点1】C程序 C语言程序结构有三种:顺序结构,循环结构(三个循环结构),选 择结构(if和switch) 【考点2】main函数 每个C语言程序中main函数是有且只有一个。读程序都要从 main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做 选择)。 【考点3】存储形式 计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为0或者1构成。byte是指字节,一个字节=八 个位。数据存放的位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行, 注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 【考点7】实型数据 实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。 2.333e-1就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。 【考点8】字符 字符数据的合法形式:: '1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0'的ASCII数值表示为48,'a'的ASCII数值是97,'A'的ASCII数值是65。 字符型和整数是近亲: chara=65; printf(“%c”,a);得到的输出结果:a

国家二级C语言公共基础知识要点及历年真题

1算法 1.1 算法的基本概念 1.算法的概念(必记): 算法是指解题方案的准确而完整的描述。 分析:要用计算机实现某一任务时,先应设计出一整套解决问题的指导方案,然后具体实现。整套的指导方 案称之为算法,而具体的实现称之为程序。并且在设计指导方案时,可不用过多考虑到实现程序的具体细节(即可以一点点的理想化),但在程序实现时,必须受到具体环境的约束(现实不同于理想)。 结论:算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。 2.算法的基本特征(必记): a.可行性:由于算法总是在某个特定的计算工具上实现并执行的,因而受到计算工具的限制,所以在设计算法时,要考虑到设计的算法是否是可性的。 b.确定性:算法中的每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。 c.有穷性:算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 d.拥有足够的情报:算法有相应的初始数据。 3.算法的基本要素: 一个算法通常由两个基本要素所组成:一是对数据对象的运算和操作,二是算法的控制结构。 基本运算和操作分为四类: a. 算术运算: (加、减、乘、除等运算) b. 逻辑运算: (与、或、非等运算) c. 关系运算: (大于、小于、等于、不等于等运算) d. 数据传输: (赋值、输入、输出等操作) 算法的控制结构: 算法中各操作之间的执行顺序称之为算法的控制结构。一个算法一般都可以用顺序、选择、循环三种基本控 制结构组合而成。 注意:一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。 4.算法设计基本方法: 列举法、归纳法、递推、递归、减半递推技术、回溯法。 1.2 算法的复杂度 (必记) 算法的复杂度主要包括时间复杂度和空间复杂度。 1.算法的时间复杂度: 是指执行算法所需要的计算工作量,是由算法所执行的基本运算次数来度量。 可用平均性态和最坏情况两种分析方法。其中平均性态分析是指用各种特定输入下的基本运算次数的加权平 均值来度量算法的工作量;而最坏情况分析是指在所有特定输入下的基本运算次数据的最大次数。 2.算法的空间复杂度: 一个算法的空间复杂度,是指执行这个算法所需要的内存空间。包含有三部分所组成:算法程序所占的空间 +输入的初始数据所占的存储空间+算法执行过程中所需要的额外空间。 历届的考题: 1、算法具有五个特性,以下选项中不属于算法特性的是(______) [2005.4] A)有穷性B)简洁性C)可行性D)确定性 2、问题处理方案的正确而完整的描述称为______。[2005.4] 3、下列叙述中正确的是________。[2006.9] A)一个算法的空间复杂度大,则其时间复杂度也必定大

全国计算机等级考试二级C语言考点(完整版)

C语言二级考点(完整版) 第一章…… C语言基础知识 第二章……顺序结构 第三章……选择结构 第四章. ……循环结构 第五章……函数 第六章……指针 第七章……数组与指针 第八章……数组与函数 第九章……字符串 第十章……结构体与共用体 第十一章……文件 第一章C语言基础知识 考点1. C语言程序的结构认识 本节通过一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。 例1 计算两个整数之和的c程序: #include main() { int a,b,sum; /*定义变量a,b,sum为整型变量*/ a=20; /*把整数20赋值给整型变量a*/ b=15; /*把整数15赋值给整型变量b*/ sum=a+b; /*把两个数之和赋值给整型变量sum*/ printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c语言程序都必须包括以下格式: main() { } 这是c语言的基本结构,任何一个程序都必须包含这个机构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。 5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头(2)不以分号结尾

2019年全国计算机二级C语言知识点复习:指针

2019年全国计算机二级C语言知识点复习:指针 【考点1】指针变量 指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。 【考点2】指针变量的定义 格式为:类型名 *指针变量名。二维指针int **p;能够理解为基类型为(int *)类型。 【考点3】指针变量的初始化 指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL。 指针变量两种初始化 方法一:int a=2,*p=&a;(定义的同时初始化) 方法二:int a=2,*p; (定义之后初始化) p=&a; 【考点4】指针变量的引用 &是取地址符,*是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间接访问运算符就等价它所指向的量。 【考点5】指针的运算 int *p 中 *p 和p 的差别: *p 能够当做变量来用;*的作用是取后面地址p 里面的数值

p 是当作地址来使用。 *p++ 和(*p)++的之间的差别:改错题目中很重要 *p++是地址会变化。 (*p)++ 是数值会要变化。 三名主义:(考试的重点) 数组名:表示第一个元素的地址。数组名不能够自加,他是地址常量名。(考了很多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。 考试重要的话语: 指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*p 的地方都能够用它等价的代替指向的变量。 例如:int a=2,*p=&a; *p=*p+2; (因为*p 指向变量a,所以指向哪个就等价哪个,这里*p 等价于a,能够相当于是a=a+2)

C语言基础必须掌握的 知识点

C语言基础必须掌握的知识点 C程序的结构和格式。 1.main函数 任何一个有效的程序都有且只能有一个main()函数,它的地位相当于程序的主体,就像大树的树干,而其他函数都是为main()服务的,就像大树树干分出的枝干。 main函数具有以下3个特点: ① C语言规定必须用main作为主函数名。其后的一对圆括号中间可以是空的,但不能省略。 ②程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个程序都必须有一个且只能有一个主函数。 ③一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。 2.程序中的注释 在一个C程序中放在符号“/*”和“*/”之间的内容,称为对程序的注释。注释是对程序的说明。编写注释时应遵循以下4条规则: ①符号“/*”和“*/”必须成对出现,“/”和“*”两者之间不可以有空格。 ②注释可以用英文、中文,可以出现在程序中任意合适的地方。 ③在注释之间不可以再嵌套“/*”和“*/”。例如,/*/*…*/*/形式是非法的。 ④注释从“/*”开始到最近的一个“*/”结束,其间的任何内容都被编译程序忽略。换句话说,注释只是为了更好地看懂程序而做的标记,不对程序产生任何影响。 3.源程序的书写格式 C程序书写格式的基本习惯有: ①一行内可以写几个语句,一个语句可以分写在多行上。 ②每个语句和数据定义的最后必须由一个分号“;”结束(分号是C语句的一部分,不是语句之间的分隔符)。 4.C语言的风格 C语言的风格主要有以下几个方面: ●C语言简洁、紧凑,使用方便、灵活; ●运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算; ●数据结构丰富,具有现代化语言的各种数据结构; ●用函数作为程序模块以实现C程序的模块化; ●C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作; ●生成目标代码质量高,程序执行效率高; ●用C语言写的程序可移植性好(与汇编语言比)。 5.标识符 所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。 C语言合法标识符的命名规则是: ①标识符由字母、数字和下划线组成; ②第一个字符必须为字母或下划线;

计算机二级C语言考点解析:初步知识

计算机二级C语言考点解析:初步知识 2.1程序的构成 尽管C程序的内容千变万化,但是它们的构成都是一致的,一个完整的C源程序的格式可以如下表示: 编译预处理 主函数() 函数() 函数() 从上面中可以看出,一个C源程序实际上就是若干函数的集合,这些函数中有一个是程序的主函数,任何C的源程序执行时,都是从主函数开始执行的,其它的函数最终必将被这个主函数所调用。C语言除了主函数规定必须取名main外,其它的函数名可以任取,但是要符合C的标识符取名规则,另外注意不要与保留字重名,最好也不可与C语言中的库函数或其它一些命令如编译预处另命令重名。各个函数在程序中所处的位置并不是固定的,但要求一个函数是完整的、独立的。不允许出现在一个函数内部又去定义另一个函数,或是函数格式不齐全的现象。一个完整的一般意义上的函数有一个固定的框架,编写具体的函数时,只需在这个框架中填入相应的内容即可。框架如下: 函数类型函数名(形参) 形参说明 { 内部变量说明; 执行语句部分; } 2.2C语言的基本词法 C语言的基本词法由三部分组成:符号集、关键字、保留字。 符号集就是一门语言中允许出现的字符的集合,C语言的符号集就是ASCⅡ码表中的一些字符,在键盘上不能直接得到(比如说响铃字符),C语言引入了转义字符的概念,利用反斜杠符号″\″后加上字母的一个字符组合来表示这些字符,当在源程序中遇到这类字符组合

时,虽然这个字符组合是一个字符串的形式,但C语言仍会自动将之理解成某一特定的字符。比如″\″,C语言在处理这个字符组合时,会自动理解成回车换行符号。转义字符经过进一步引申应用,形成了另外两种形式:″\ddd″和″\xnn″,这里″\″后的ddd和xnn分别代表三位八进制和两位十六进制数(打头的″x″只是标明后面跟着的是十六进制数),这两种形式不再局限于表示不可打印的字符,它们可以表示ASCⅡ码表中的任意字符,只要把所需表示的字符的ASCII码转换成八进制数或十六进制数即可。比如说字母″A″,ASCII码为65,65的八进制和十六进制分别为101和x41,所以,字母A可表示为″\101″或″\x41″,对转义字符应认真理解。 标识符就是用以标识的符号。正如现实生活中给每一个人都取一个名字一样,C语言中的每一个对象(如函数、变量等)都必须取一个标识符以和其它对象区别开。在C语言中,这个标识符是一个字符串,这个字符串的选定有一定的规则:必须是以字母或下划线开头的字母与数字的序列。除了这个基本的规则外,C语言对标识符的命名还有几个限制需加以注意:①长度最好不要超过八个字符。因C中对标识符只处理前8个字符,超过8个长度的部分将被C自动忽略掉。″ABCDEFGH1″和″ABCDEFH2″是同一个标识符;②标识符不要与保留字同名,最好也不要与C提供的标准标识符,如库函数重名;③应注意C语言对大小写字母是敏感的,Abcd和abcd是两个不同的标识符。 关键字实际上就是一些特殊的标识符,又称保留字,这些保留字不允许用户对它重新定义。 2.3头文件、数据说明、函数的开始和结束标志 1.头文件:也称为包含文件或标题文件,一般放在一个C语言程序的开头,用#include″文件名″的格式,其中文件名是头文件名,一般用.h作为扩展名。 2.数据说明:C语言中的数据分常量和变量两种。 3.常量:有数值常量和符号常量两种。 4.数值常量:可以分为整型常量、实型常量、浮点型常量和字符常量。 5.符号常量:用一个标识符代表的一个常量,又称标识符形式的常量。 6.变量:其值可以改变的量,变量名习惯上用小写字母表示。 7.标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。 8.标识符的命名规则:C语言中标识符只能由字母、数字下划线三种字符组成,且第一个字符必须为字母或下划线。C语言是大小写敏感语言,即对大小写字母认为是不同的字符。C语言中标识符的长度随系统不同而字,如TURBOC中取前8个字符,8个字符后面的字符会自动取消。

计算机等级考试必备C语言最重要的知识点

计算机等级考试必备C语言最重要的知识点

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是她的地址. 4)bit是位是指为0 或者1。byte 是指字节, 一个字节= 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不能够再定义函数。 5、算法:能够没有输入,可是一定要有输出。

6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行能够写多个语句,能够写多行。 3、一个C语言程序有且只有一个main 函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---.obj---.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才能够运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

计算机等级考试二级C语言高频考点(C语言部分)

计算机等级考试二级C语言高频考点(C 语言部分) 第一章 C语言基本知识 【考点1】C程序 用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。C语言有三种基本结构:顺序结构、选择结构、循环结构。 【考点2】main函数 又称主函数,是C程序的入口。main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体。一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。 【考点3】存储形式 计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。数据的存放位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何容都不会被计算机执行,注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行可写多条语句,一个语句可写在多行上。 【考点6】标识符 是标识名字的有效字符序列,可以理解为C程序中的单词。 标识符的命名规则是: (1)标识符只能由字母、数字和下划线组成,字母区分大小写。 (2)标识符的第一个字符必须是字母或下划线,不能为数字。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include 等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 【考点7】常量与变量 常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型常量、字符常量、字符串常量、符号常量5种。在程序运行过程中其值可以改变的量称为变量。C语言中没有字符串变量。存放字符串使用字符数组。 【考点8】整型数据

计算机二级考试C语言知识点总结

计算机二级考试C语言知识点总结 (完全针对考试大纲) 概述 总体上必须清楚的: 1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch) 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。byte 是指字节, 一个字节= 八个位. 5)一定要记住二进制如何划成十进制。 概念常考到的: 1)、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2)、每个C语言程序中main函数是有且只有一个。 3)、在函数中不可以再定义函数。 4)、算法的是一定要有输出的,他可以没有输入。 5)、break可用于循环结构和switch语句。 6)、逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。

2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节: 考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。 5)转义字符的考查: 在程序中int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。 在程序中int a = 06d, 是一个八进制的形式。 在转义字符中,’\x6d’才是合法的,0不能写,并且x是小写。 ‘\141’是合法的。 ‘\108’是非法的,因为不可以出现8。 转义字符意义ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT) 011 \\ 反斜杠092 \? 问号字符063 \' 单引号字符039 \" 双引号字符034

2019年全国计算机二级C语言考试必背知识点总结(4)

1)指针变量的本质是用来放地址,而一般的变量是放数值的。 2)int *p 中 *p和p的差别: *p可以当做变量来用;*的作用是取后面地址p里面的数值 p是当作地址来使用。 3)*p++ 和 (*p)++的之间的差别:改错题目中很重要 *p++是地址会变化。 (*p)++ 是数值会要变化。 4)三名主义:(考试的重点) 5)数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次) 6)函数名:表示该函数的入口地址。 7)字符串常量名:表示第一个字符的地址。 对a[10]这个数组的讨论。 1、a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。 2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。 3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。 对a[3][3]的讨论2016计算机二级考试C语言知识点总结计算机考试。 1、a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。 2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。 3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。 4、a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a[0]+1,a[1]+1,a[2]+1都是跳一列。 5、注意a和a[0] 、a[1]、a[2]是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。

二维数组做题目的技巧: 如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。 步骤一:把他们写成:第一列第二列第三列 a[0]à 1 2 3 ->第一行 a[1]à 4 5 6—>第二行 a[2]à 7 8 9->第三行 步骤二:这样作题目间很简单: *(a[0]+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a[0][1]元素,所以是1。 *(a[1]+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a[1][2]元素,所以是6。 一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。 数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写 int a[]={1,2} 合法 WiseMedia int a[][4]={2,3,4}合法。但int a[4][]={2,3,4}非法。 二维数组中的行指针 int a[1][2]; 其中a现在就是一个行指针,a+1跳一行数组元素。搭配(*)p[2]指针 a[0],a[1]现在就是一个列指针。a[0]+1 跳一个数组元素。搭配*p[2]指针数组使用 还有记住脱衣服法则: a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再可以变成 *(*(a+2)+3) 这个思想很重要!

计算机二级C语言知识点(字符串)

计算机二级C语言知识点(字符串) 计算机二级C语言知识点(字符串) 字符串与字符数组 1.字符数组的定义 定义方法与前面介绍的类似,只是将数组定义为字符型即可。例如: charc[10]; 这里定义了一个包含10个元素的字符数组c。 2.字符数组的初始化 对字符数组初始化,可以采用以下方法: (1)逐个字符赋给数组中各元素; (2)用字符串常量使字符数组初始化。 3.字符串 在C语言中,字符串是作为字符数组来处理的,字符串可以存放在字符型一维数组中,故可以把字符型一维数组作为字符串变量。 字符串常量是用双引号括起来的一串字符。 C语言中约定用′\0′作为字符串的结束标志,它占内存空间,但不计入串的长度,′\0′的代码值为0。 系统对字符串常量也自动加一个′\0′作为结束符。例如″clanguage″共有10个字符,但在内存中占11个字节,最后一个字节存放′\0′。 4.字符数组的输入输出 (1)逐个字符输入和输出

①在标准输入输出printf和scanf中使用%c格式描述符; ②使用getchar和putchar函数。例如: for(i=0;i10;i++) scanf(″%c″,str[i]);/*或str[i]=getchar();*/ str[i]=′\0′;/*人为加上串结束标志*/ for(i=0;i10;i++) printf(″%c″,str[i]);/*或putchar(str[i]);*/ (2)字符串整体输入输出 ①在标准输入输出函数printf和scanf中使用%s格式描述符; 输入形式: charstr[6]; scanf(″%s″,str); 其中str为字符数组名,代表着str字符数组的起始地址,输入时系统自动在每个字符串后加入结束符′\0′。若同时输入多个字符串,则以空格或回车符分隔。 输入形式: printf(″%s″,str); 输字符串时,遇第一个′\0′即结束。但可人为控制输出串所占的域宽如: printf(″%6s″,str);/*若字符串中字符多于6个,仍将全部输出*/ printf(″%-6s″,str);/*只输出前6个字符,多余的不输出*/ ②使用gets和puts函数输入输出一行

2019年计算机二级考试C语言知识点:选择结构

2019年计算机二级考试C语言知识点:选择结构 选择结构 特别要注意:c 语言中是用非0 表示逻辑真的,用0 表示逻辑 假的。 【考点1】关系运算 关系运算符有6个,分别是>,>=,8 这个是真的,所以表达式 的数值就是1。 【考点2】逻辑运算 只能为1(表示为真),或0(表示假) a) 共有三种逻辑运算符号。逻辑非(!),辑与(&&),逻辑或(||)。 b) !>&&>|| 优先的级别。 c) 注意短路现象。考试比较喜欢考到。 例a++||b++,如果表达式a++的值非零,则表达式b++不再执行。 d) 要表示 x 是比0 大,比10 小的方法。0 【考点3】if语句 能够单独出现,也能够与else匹配出现。if语句能够嵌套,这 时else总是与离它最近的且没有与else匹配的if匹配。 注意if语句的子句是紧接if或else的一句,如有多句需要用{}括起来。 【考点4】条件运算 是的三目运算符,格式:表达式1 ?表达式2 :表达式3

表达式1值为非0时,整个表达式值为表达式2的值,表达式1 值为0时,整个表达式值为表达式3的值。考试口诀:真前假后。 【考点5】switch语句 a) 一定要注意有 break 和没有break 的差别,书上(53,54 页)的两个例子,没有break 时候,只要有一个case 匹配了,剩下的都要执行,有break 则 是直接跳出了switch 语句。 b) switch 只能够和break 一起用,不能够和continue一起用。 c) switch(x) x:是整型常量,字符型常量,枚举型数据。 {case 1:…. 不能够是变量。 case 2:…. } switch后小括号里面的表达式不能为实型,case后表达式不能 有变量。 口诀:switch表不为实,case表不为变。

计算机二级C语言程序设计重要知识点

本次串讲的要讲解的重要知识点 1、高级语言与C语言的特点 2、C语言的基本字符集、转义字符、保留字及其含义和C语言标识符的构成规则。 3、C程序的基本结构与书写C程序的基本规则 4、C语言中数据类型的分类 5、整型、实型、字符型、字符串常量的书写方法 6、符号常量的应用和宏定义命令的使用 7、整型、实型、字符型变量的定义、初始化方法 8、基本类型数据在内存中的存放方式 9、基本运算符的运算规则、优先级别和结合性 10、掌握算术表达、关系和逻辑表达式、赋值表达式、逗号和条件表达式的构成和运算规则 11、变量赋值及表达式计算时的数据类型转换规则 12、字符输入/输出函数和格式输入/输出函数的使用 13、三条选择语句和三种选择结构的程序设计 13、三条选择语句和三种选择结构的程序设计 14、三条循环语句和三种循环结构的程序设计 15、一维数组的定义、初始化和数组元素的引用方法 16、二维数组的定义、初始化和数组元素的引用方法 17、字符数组的定义、初始化和数组元素的引用方法 18、字符数组中存放的字符串的输入/输出和处理方法 19、字符串处理的常用系统函数及其使用 20、指针变量的定义、初始化、赋值和一般使用形式 21、指向变量的指针变量、指向一维数组元素的指针变量、指向字符串的指针变量的使用方法。 22、指针数组的定义、初始化和引用 23、函数的结构与定义方法,握函数的一般调用方法 24、函数调用时参数的值传递方法、地址传递方法、返回值传递方法和利用全局外部变量在函数间传递数据的方法。 25、变量的存储类型及其定义方法、变量的生存期和作用域 26、函数嵌套调用和递归函数的特点和设计方法 27、指针型函数的定义方法和调用方法 28、常用系统函数的使用 29、结构型数据的特点和应用及结构型的定义方法 30、结构型变量的定义、初始化和成员引用方法 31、结构型数组的定义、初始化和引用结构型数组元素的成员的方法。 32、结构型指针变量的定义、初始化和利用结构型指针变量引用结构型数据的成员的方法 33、用户自定义类型的定义和使用 34、文件名的组成规则、文件的分类及其特点 36、文件型指针的定义方法 37、缓冲文件系统中各类系统函数的使用 (1)打开/关闭文件函数的使用方法。 (2)文件尾测试函数的使用方法。

2020全国计算机等级考试二级C语言知识点全套复习提纲(精华版)

全国计算机等级考试二级C语言全套复习提纲(精华 版)

目录 第一部分公共 基础知识 第1 章算法与数据结构 (1) 考点1 算法 (1) 考点2 数据结构 (1) 考点3 线性表及其顺序存储结构 (1) 考点4 栈和队列 (1) 考点5 线性链表 (2) 考点6 树与二叉树 (2) 考点7 查找技术 (3) 考点8 排序技术 (3) 第2 章程序设计基础.4 考点1 程序设计方法 与风格 (4) 考点2 结构化程序设计 (5) 考点3 面向对象的程序设计 (5) 第3 章 . 软件工程基础 5 考点1 软件工程基本概念 (5) 考点2 软件分析方法6 考点3 结构化设计方法 (7) 考点4 软件测试 (8) 考点5 程序的调试 (9) 第4 章数据库设计基础

(9) 考点1 数据库系统的基本概念 (9) 考点2 数据库系统的基本概念 (10) 考点3 关系代数 (12) 考点4 数据库设计与管理 (12) 第二部分二级 C 语言 第1 章程序设计基本概念 (14) 考点1 程序设计 (14) 考点2 C 程序的结构和格式 (14) 考点3 常量和变量.14 考点4 算术表达式.15 考点5 赋值表达式 .16 考点6 自加、自减和逗号运算 (16) 第2 章顺序结构 (17) 考点1 字符型常量与变量 (17) 考点2 putchar 与getchar 函数 (17) 考点3 printf 函数 (17) 考点4 scanf 函数 (18) 考点5 位运算的含义和应用 (18) 第3 章选择结构 (19) 考点1 关系运算符和关系表达式 (19) 考点2 逻辑运算符和逻辑表达式 (19)

2020年全国计算机等级考试二级C语言必考知识点总结【完美版】

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识

1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。

全国计算机二级考试C语言易错知识点汇总

计算二级C语言易错知识点 1.指针是用来存放地址的变量,用(类型名 *指针变量名)的形式定义。赋值时 应将某个变量地址即&x 赋给指针变量 2. 设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp) 的返回值为 A) 0 B) '\0' C) 非0值 D) NULL 【解析】本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项C正确。 3. 有以下程序 #include main() { int a=5,b=1,t; t=(a<<2)|b; printf("%d\n",t); } 程序运行后的输出结果是 A) 1 B) 11 C) 6 D) 21 【解析】本题考查位运算,以及按位或操作,将a左移一位相当于是将a乘以了4,所以a<<2等于20,二进制表示为00010100,与b按位或得到00010101,即21,所以选项D正确。 4. 有以下程序 #include

#define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2; i1=f(2) ; i2=f(1+1) ; printf("%d %d\n",i1,i2); } 程序的运行结果是 A) 12 7 B) 12 12 C) 11 11 D) 11 7 【解析】本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f(2)=(2*N+1)=11,执行f(1+1)=(1+1*N+1)=7。选项D正确。 5. 有以下程序 #include #include struct A { int a; char b[10]; double c; }; void f(struct A t); main() { struct A a={1001,"ZhangDa",1098.0}; f(a); printf("%d,%s,%6.1f\n", a.a,a.b,a.c); } void f(struct A t) { t.a=1002; strcpy(t.b,"ChangRong"); t.c=1202.0;

c语言知识点总结

二级C语言基础知识点总结 第一章 1,函数是从主函数(main())开始执行,回到主函数(main())结束; 2,一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束; 第二章 1,算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性2,算法(程序)的几个结构:选择结构,顺序结构,循环结构 第三章 1,int类型是2个字节,float是4个字节,dooble是8个字节 2,数据类型分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型(空类型合法哦,不要忘记了这个特殊哦)3,变量的地址是确定的,变量变的地方只是地址里面的值。 4,用户标志符,由数字,字母,下划线构成,第一个不能是数字,但是32个关键字除外。5,注意int的最大表示范围是-32768――+32767,当超过这个范围的时候,即以%d输出+32768时结果为-32768 6,长整形(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整形的3,如果是a=3L,那么就是长整形的3;当分别以%o,%ld,%x (8进制,长整形,16进制)输出的时候,结果没有前面的0,0X,和后面的L 例:int a=075,b=ox14;long int c=5L; printf(“%o,%x,%ld”,a b c); 结果为(75,14,5) 7,当出现’\0’的什么时候为结束,什么时候为八进制的转义字符:当’\0’后面有1-7之间的数字的时候为转义字符;其他的时候为字符串结束标志,注意转义字符有哪些(参考书p8) 这样一个例题若strlen(”abc\089”)=3 strlen(“abc\012”)=4 8,强制转换不会改变一个变量的值,只是改变其作用的那个表达式的值。 9,++,――,当++,——,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当++,――,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握++,――结合性是右结合,若i+++j等价于(i++)+j; 10,复合运算符要注意当等号后面接的是表达式的时候要把表达式看成一个整体即x *=y+8等价于x=x*(y+8),y+8是一个整体 第四章 1,格式输入和输出的时候,注意格式。要严格按照题目的格式进行操作。(在做题的时候尤其是读程序写结果的时候要细心哈!) 2,%d,%md,%m..nd, %e,以及相应的几种格式是什么意思,参考书p13 第五章 1,关系运算符,>,<,<=,>=,= =,!= ,==和!=优先级最低,主意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1. 2,逻辑运算符,&& ,||,!在这几个中优先级!> && > ||,优先级是体现在结合性上而不是运算的先后性上。例如 a=b=c=1;d=++a||++b&&++c在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1

相关文档
相关文档 最新文档