当前位置:文档之家› 教育部二级考试教程c语言二级教程习题.

教育部二级考试教程c语言二级教程习题.

教育部二级考试教程c语言二级教程习题.
教育部二级考试教程c语言二级教程习题.

《全国计算机等级考试二级教程——C语言程序设计》课后题

(教育部考试中心)高等教育出版社出版

第一章程序设计基本概念

1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。

1.2 C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。

1.3 结构化程序由_____、_____、_____三种基本结构组成。

第二章 C程序设计的初步知识

一、选择题

2.1 以下选项中正确的整型常量是

A)12. B)-20 C)1,000 D)4 5 6

2.2 以下选项中正确的实型常量是

A)0 B)3. 1415 C)0.329×10(2)(10的2次方) D).871

2.3 以下选项中不正确的实型常量是

A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2

2.4 以下选项中不合法的用户标识符是

A)abc.c B)file C)Main D)PRINTF

2.5 以下选项中不合法的用户标识符是

A)_123 B)printf C)A$ D)Dim

2.6 C语言中运算对象必需是整型的运算符是

A)% B)/ C)! D)**

2.7 可在C程序中用作用户标识符的一组标识符是

A)void define WORD

B)as_b3 _123 If

C)For -abc case

D)2c DO SIG

2.8 若变量已正确定义并赋值,符合C语言语法的表达式是

A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b

2.9 以下叙述中正确的是

A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。

B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。

C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。

D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。

2.10 以下叙述中正确的是

A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。

B)C程序由主函数组成。

C)C程序由函数组成。

A)1 B)2 C)3 D)4

2.12 不合法的八进制数是

A)0 B)028 C)077 D)01

2.13 不合法的十六进制数是

A)oxff B)0Xabc C)0x11 D)0x19

二、填空题

2.14 若k为int整型变量且赋值11。请写出运算k++后表达式的值A)_____和变量的值B)____ _。

2.15 若x为double型变量,请写出运算x=

3.2,++x后表达式的值A)_____和变量的值B)____ _。

2.16 函数体由符号____开始,用符号____结束。函数体的前面是____部分,其后是____部分。

2.17 C语言中的标识符可分为____、____、和预定义标识符三类。

2.18 在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用

关键字___定义双精度实型变量。

2.19 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。

2.20 C程序中定义的变量,代表内存中的一个____。

2.21 表达式

3.5+1/2的计算结果是____

2.22 对以下数学式,写出三个等价的C语言表达式____、____、____。

a×b

2.23 表达式s=10应当读做“____”

2.24 计算机中内存储器的最小存储单位称____,其中能容纳的数是____。

2.25 通常一个字节包含____个二进制位。在一个字节中能存放的最大(十进制)整数是____,

它的二进制数的形式是____;最小(十进制)整数是____,它的二进制数的形式是____。

2.26 当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是____、最小

(十进制)整数是____,它的二进制数的形式是____。

2.27 在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。

第三章、顺序结构

一、选择题

3.1 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是

A) a=b=c=100; B) d++; C) c+b; D) d=(c=22)-(b++);

3.2 以下选项中不是C语句的是

A) {int i; i++; printf("%d\\n", i); }

B) ; C) a=5,c=10 D) { ; }

3.3 以下合法的C语言赋值语句是

A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) --i;

3.4 以下程序的输出结果是

A) 0 B) 1 C) 3 D)不确定的值

main()

{

int x=10,y=3;

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

}

3.6 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予3 3,以下不正确的输入形式是

A) 10 22 33 B) 10.0,22.0,33.0

C) 10.0 22.0 33.0 D) 10 22 33

scanf("%f %f %f", &a, &b, &c);

3.7 若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是

A) a=a+b,b=a-b,a=a-b; B) t=a,a=b,b=t;

C) a=t; t=b; b=a; D) t=b; b=a; a=t;

3.8 若变量已正确定义,以下程序段的输出结果是

A) 输出格式说明与输出项不匹配,输出无定值

B) 5.17000 C) 5.168000 D) 5.169000

x=5.16894;

printf("%f\\n",(int)(x*1000+0.5)/(float)1000);

3.9 若有以下程序段,c3中的值是

A) 0 B) 1/2 C) 0.5 D) 1

int c1=1,c2=2,c3;

c3=c1/c2;

3.10 若有以下程序段,其输出结果是

A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10

int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

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

3.11 当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Ente r),则程序的输出结果是

A) a=98,b=765,c=4321 B) a=10,b=432,c=8765

C) a=98,b=765.000000,c=4321.000000 D) a=98,b=765,c=4321.0

main()

{

int a; float b,c;

scanf("%2d%3f%4f",&a,&b,&c);

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

}

3.12 以下程序的输出结果是

A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d

main()

{ int a=2,b=5;

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

}

3.13 若int类型占两个字节,则以下程序段的输出是

int a=-1;

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

3.14 以下程序段的输出是

A) *496 * B) * 496* C) *000496* D)输出格式符不合法

int x=496;

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

3.15 以下程序段的输出是

A) |3.1415| B) | 3.0| C) | 3| D) | 3.|

float a=3.1415;

printf("|%6.0f|\\n",a);

3.16 以下程序段的输出是

A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678|

printf("|%10.5f|\\n",12345.678);

3.17 以下程序段的输出是

A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67*

float a=57.666;

printf("*%010.2f*\\n",a);

3.18 若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是

A) scanf("%f",c); B) scanf("%8.4f",&c);

C) scanf("%6.2f",&c); D) scanf("%8",&c);

283.1900 表示Enter键

答案:由于印刷错误,本题没有正确答案。改正意见:

把选项A改为:scanf("%f",&c);或者把选项D改为:scanf("%8f",&c);则可分别选择A或者D为正确答案。

3.19 若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是

(□代表空格)

A) 3.12□□9.0B) a=□□3.12b=□□□9

C) a=3.12,b=9 D) a=3.12□□,b=9□□□□

scanf("a=%f,b=%f",&a,&b); 表示Enter键

3.20 以下程序的输出结果是

A) 9 8 B) 8 9 C) 6 6 D) 以上三个都不对

#include "math.h"

main()

{ double a=-3.0, b=2;

printf("%3.0f %3.0f\\n",pow(b,fabs(a)),pow(fabs(a),b));

}

二、填空题

3.21 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。

(1)____(2)____(3)____

int i=-200,j=2500;

答案:

3.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时

scanf("%d",&i); scanf("%d",&j); scanf("%d",&k);

当执行第一个输入语句,从键盘输入:

12.3 表示Enter键

则变量i、j、k的值分别是____、____、____。

3.23 复合语句在语法上被认为是____。空语句的形式是____。

答案:一条语句、;

3.24 C语句的最后用____结束。

3.25 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入 100,给a输入25.81,给x输入1.89234时的三种可能的输入形式____、_____、____。 int k; float a; double x;

scanf("%d%f%lf",&k,&a,&x);

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

3.26 以下程序段的输出结果是____。

int x=0177;

printf("x=%3d,x=%6d,x=$%6o,x=%6x,x=%6u\\n",x,x,x,x,x);

3.27 以下程序段的输出结果是____。

int x=0177;

printf("x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\\n",x,x,x,x,x);

3.28 以下程序段的输出结果是____。

double a=513.789215;

printf("a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\\n",a,a,a,a);

第四章、选择结构

一、选择题

4.1 下列运算符中优先级最高的运算符是

A) ! B) % C) -= D) &&

4.2 下列运算符中优先级最低的运算符是

A) || B) != C) <= D) +

4.3 为表示关系x≥y≥z,应使用的C语言表达式是

A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z)

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

4.4 设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是

A) a&&b B) a<=b C) a||b+c&&b-c D) !((a

4.5 以下程序的输出结果是

A) 0 B) 1 C) 2 D) 3

main()

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

if(a

if(b<0) c=0;

4.6 以下程序的输出结果是

A)1 B) 2 C) 3 D) 4

main()

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

printf("%d\\n",(w

}

4.7 若执行以下程序时从键盘上输入3和4,则输出结果是

A) 14 B) 16 C) 18 D) 20

main()

{ int a,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a

s*=s;

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

}

4.8 下面的程序片段所表示的数学函数关系是

-1(x<0)

A) y= 0(x=0)

1(x>0)

1(x<0)

B) y= -1(x=0)

0(x>0)

0(x<0)

C) y= -1(x=0)

1(x>0)

-1(x<0)

D) y= 1(x=0)

0(x>0)

y=-1;

if(x!=0) y=1;

if(x>0) y=1;

else y=0;

答案:本题没有正确答案。程序片段所表示的数学函数关系应该是 0(x<0)

y= 0(x=0)

1(x>0)

4.9 运行以下程序后,输出

main()

{ int k=-3;

if(k<=0) printf("****\\n")

else printf("&&&&\\n");

}

4.10 若a和b均是正整型变量,以下正确的switch语句是

A) switch(pow(a,2)+pow(b,2))

{ case 1: case 3: y=a+b; break;

case 0: case 5: y=a-b;

}

B) switch(a*a+b*b);

{ case 3:

case 1: y=a+b; break;

case 0: y=b-a; break;

}

C) switch a

{ default: x=a+b;

case 10: y=a-b; break;

case 11: x=a*d; break;

}

D) switch (a+b)

{ case10 : x=a+b; break;

case11 : y=a-b; break;

}

答案:没有正确答案。如果C选项改为:

switch(a)

{ default: x=a+b;

case 10: y=a-b; break;

case 11: x=a*b; break;

}

则答案可以选择C

二、填空题

4.11 C语言中用____表示逻辑值“真”,用____表示逻辑值“假”。

4.12 C语言中的关系运算符按优先级别是____、____、____、____。

4.13 C语言中的逻辑运算符按优先级别是____、____、____

4.14 C语言中的关系运算符和逻辑运算符的优先级别是____、____、____、____、____、___ _、____。

4.15 C语言中逻辑运算符____的优先级高于算术运算符。

4.16 将下列数学式改写成C语言的关系表达式或逻辑表达式A)____B)____。

A)a=b或a4

4.17 请写出以下程序的输出结果____。

main()

else printf("%d\\n",a<=100);

}

4.18 请写出与以下表达式等价的表达式A)____B)____。

A) !(x>0) B) !0

4.19 当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为____、____、____。

if(a>c)

b=a; a=c; c=b;

4.20 若变量已正确定义,以下语句段的输出结果是____。

x=0; y=2; z=3;

switch(x)

{ case 0: switch(y==2)

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

case 2: printf("%"); break;

}

case 1: switch(z)

{ case 1: printf("$");

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

default : printf("#");

}

}

第五章、循环结构

一、选择题

5.1 以下程序段的输出结果是

A) 9 B) 1 C) 11 D) 10

int k,j,s;

for(k=2; k<6; k++,k++)

{ s=1;

for(j=k; j<6; j++) s+=j;

}

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

5.2 以下程序段的输出结果是

A) 12 B) 15 C) 20 D) 25

int i,j,m=0;

for(i=1; i<=15; i+=4)

for(j=3; j<=19; j+=4) m++;

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

5.3 以下程序段的输出结果是

8

7

C) 10

9

8

7

D) 9

8

7

6

int n=10;

while(n>7)

{ n--;

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

}

5.4 以下程序段的输出结果是

A) 1 B) 3 0 C) 1 -2 D) 死循环

int x=3;

do

{ printf("%3d",x-=2); }

while(!(--x));

5.5 以下程序段的输出结果是

A) 15 B) 14 C) 不确定 D) 0

main()

{ int i,sum;

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

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

}

5.6 以下程序段的输出结果是

A) 741 B) 852 C) 963 D) 875421

main()

{ int y=10;

for(; y>0; y--)

if(y%3==0)

{ printf("%d", --y); continue; }

}

5.7 若x是int型变量,以下程序段的输出结果是

A) **3

##4

**5

**4##5

D) **3##4

**5

for(x=3; x<6; x++)

printf((x%2)?("**%d"):(##%d\\n"),x);

5.8 以下程序的输出结果是

A) *#*#*#$ B) #*#*#*$ C) *#*#$ D) #*#*$

main()

{ int i;

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

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

else contionue;

printf("#");

}

printf("$\\n");

}

5.9 以下叙述正确的是

A) do_while语句构成的循环不能用其它语句构成的循环来代替。

B) do_while语句构成的循环只能用break语句退出。

C) 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。

D) 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。

5.10 以下程序的输出结果是

A) 39 81 B) 42 84 C) 26 68 D) 28 70

main()

{ int x,i;

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

{ x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf("%d ", x);

}

printf("\\n");

}

二、填空题

5.11 当执行以下程序段后,i的值是____、j的值是____、k的值是____。

int a,b,c,d,i,j,k;

a=10; b=c=d=5; i=j=k=0;

for( ; a>b; ++b) i++;

int k,n,m;

n=10; m=1; k=1;

while(k<=n) m*=2;

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

5.13 以下程序的输出结果是____。

main()

{ int x=2;

while(x--);

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

}

5.14 以下程序段的输出结果是____。

int i=0,sum=1;

do { sum+=i++; }while(i<5);

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

5.15 有以下程序段:

s=1.0;

for(k=1; k<=n; k++) s=s+1.0/(k*(k+1));

printf("%f\\n",s);

请填空,使下面的程序段的功能完全与之等同。

s=0.0;

____;

k=0;

do

{ s=s+d;

____;

d=1.0/(k*(k+1));

}

while(____);

printf("%f\\n",s);

5.16 以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

main()

{ float x,amax,amin;

scanf("%f",&x);

amax=x; amin=x;

while(____)

{ if(x>amax) amax=x;

if(____) amin=x;

scanf("%f",&x);

}

printf("\\namax=%f\\namin=%f\\n",amax,amin);

}

一、选择题

6.1 C语言中的简单数据类型有

A) 整型、实型、逻辑型 B) 整型、实型、字符型

C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型

6.2 C语言中,字符(char)型数据在微机内存中的存储形式是

A) 反码 B) 补码 C) EBCDIC码 D) ASCII码

6.3 设有语句char a=\'\'\\72\'\';,则变量a

A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法

6.4 C语言中不合法的字符常量是

A) \'\'\\0xff\'\' B) \'\'\\65\'\' C) \'\'&\'\' D) \'\'\\028\'\'

答案:本题A)和D)选项都是不合法的字符常量。若A)选项改为\'\'\\xff\'\',则正确。

6.5 C语言中不合法的字符串常量是

A) "\\121" B) \'\'y=\'\' C) "\\n\\n" D) "ABCD\\x6d"

6.6 判断char型变量c是否为大写字母的最简单且正确的表达式是

A) \'\'A\'\'<=c<=\'\'Z\'\' B) (c>=\'\'A\'\')&(c<=\'\'Z\'\')

C) (\'\'A\'\'<=c)AND(\'\'Z\'\'>=c) D) (c>=\'\'A\'\')&&(c<=\'\'Z\'\')

6.7 以下程序的输出结果是

A) 因输出格式不合法,无正确输出 B) 65,90

C) A,Y D) 65,89

main()

{ char c1=\'\'A\'\',c2=\'\'Y\'\';

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

}

6.8 以下程序段的输出结果是

A) A B) a C) Z D) z

main()

{ char x=\'\'A\'\';

x=(x>=\'\'A\'\'&&x<=\'\'Z\'\')?(x+32):x;

printf("%c\\n",x);

}

6.9 以下程序的输出结果是

A) 67,C B) B,C C) C,D D) 不确定的值

main()

{ char ch1,ch2;

ch1=\'\'A\'\'+\'\'5\'\'-\'\'3\'\';

ch2=\'\'A\'\'+\'\'5\'\'-\'\'3\'\';

printf("%d,%c\\n",ch1,ch2);

}

6.10 对以下程序,从第一列开始输入数据:2473代表Enter。程序的输出结果是

A) 668977 B) 668966 C) 66778777 D) 6688766

#include "stdio.h"

{ switch(c-\'\'2\'\')

{ case 0 :

case 1 : putchar(c+4);

case 2 : putchar(c+4); break;

case 3 : putchar(c+3);

default : putchar(c+2); break;

}

printf("\\n");

}

}

6.11 若变量已正确说明,要求用以下语句给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是(□代表空格)

A) 2.0□%□4.0□# B) 2.0%4.0#

C) 2%□□4#D) 2□%□4□

scanf("%f%c%f%c",&a,&c1,&b,&c2);

代表Enter键)

二、填空题

6.12 EOF的十进制值是____。

6.13 C语言中,字符占内存____个字节。

6.14 调用C语言对字符处理的库函数时,在#include命令行中应包括的头文件是____。

6.15 若输入字符A,在以下while语句执行后ch的值是____。

while(ch=getchar()==\'\'A\'\');

6.16 若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是____,请用代表Enter键。

scanf("%d%c%d%c%d%c%d%c",&w,&a,&x,&b,&y,&c,&z,&d);

6.17 若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入

7.29和101.29 8,从键盘正确输入数据的形式是____。

char c1,c2; float a1,a2;

scanf("%f%f",&a1,&a2); scanf("%c%c",&c1,&c2);

6.18 若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入

7.29和101.29 8,从键盘正确输入数据的形式是____。

char c1,c2; float a1,a2;

scanf("%c%f%c%f",&c1,&a1,&c2,&a2);

6.19 若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出各种从键盘正确输入数据的形式。

char c1,c2,c;

scanf("%4c",&c1); scanf("%4c",&c2); scanf("%4c",&c3);

第七章、函数

一、选择题

7.1 以下说法中正确的是

A) C语言程序总是从第一个定义的函数开始执行

B) 在C语言程序中,要调用的函数必须在main函数中定义

7.2 以下函数的类型是

A) 与参数x的类型相同 B) void类型 C) int类型 D) 无法确定

fff(float x)

{ printf("%d\\n",x*x); }

7.3 以下函数调用语句中,含有的实参个数是

A) 1 B) 2 C) 4 D) 5

func( (exp1,exp2),(exp3,exp4,exp5));

7.4 以下程序的输出结果是

A) 11 B) 20 C) 21 D) 31

fun(int a,int b)

{ int c;

c=a+b;

return c;

}

main()

{ int x=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--);

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

}

7.5 以下程序的输出结果是

A) -1 B) 0 C) 1 D) 2

main()

{ int i=2,p;

p=f(i,i+1);

printf("%d",p);

}

int f(int a, int b)

{ int c;

c=a;

if(a>b) c=1;

else if(a==b) c=0;

else c=-1;

return(c);

}

7.6 以下程序的输出结果是

A) 0 B) 1 C) 6 D) 无定值

fun(int a,int b,int c)

{ c=a*b; }

main()

{ int c;

7.7 以下程序的输出结果是

A) 5.500000 B) 3.000000 C) 4.000000 D) 8.25

double f(int n)

{ int i; double s;

s=1.0;

for(i=1; i<=n; i++) s+=1.0/i;

return s;

}

main()

{ int i,m=3; float a=0.0;

for(i=0; i

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

}

二、填空题

7.8 以下程序的输出结果是____。

unsigned fun6(unsigned num)

{ unsigned k=1;

do

{ k*=num%10; num/=10; }

while(num);

return k;

}

main()

{ unsigned n=26;

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

}

7.9 以下程序的输出结果是____。

double sub(double x,double y,double z)

{ y-=1.0;

z=z+x;

return z;

}

main()

{ double a=2.5,b=9.0;

printf("%f\\n",sub(b-a,a,a));

}

7.10 以下程序的输出结果是____。

fun1(int a,int b)

{ int c;

a+=a; b+=b;

fun2(int a,int b)

{ int c;

c=a*b%3;

return c;

}

main()

{ int x=11,y=19;

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

}

7.11 下面pi函数的功能是,根据以下公式返回满足精度ε要求的π的值。请填空。

π/2 = 1 + 1/3 + (1/3)*(2/5) + (1/3)*(2/5)*(3/7) + (1/3)*(2/5)*(3/7)*(4/9) + ...

double pi(double eps)

{ double s=0.0,t=1.0;

int n;

for(_____; t>eps; n++)

{ s+=t;

t=n*t/(2*n+1);

}

return (2.0*_____);

}

7.12 以下函数用以求x的y次方。请填空。

double fun(double x, int y)

{ int i; double z;

for(i=1; i_____; i++)

z=_____;

return z;

}

7.13 以下程序的功能是计算s=0!+1!+2!+3!+...+n!。请填空。

long f(int n)

{ int i; long s;

s=_____;

for(i=1; i<=n; i++) s=_____;

return s;

}

main()

{ long s; int k,n;

scanf("%d",&n);

s=_____;

for(k=0; k<=n; k++) s=s+_____;

printf("%ld\\n", s);

}

一、选择题

8.1 若有定义:int x,*pb; 则以下正确的赋值表达式是

A) pb=&x B) pb=x C) *pb=&x D) *pb=*x

8.2 以下程序的输出结果是

A) 因变量无定义输出不定值 B) 0 C) -1 D) 1

#include

main()

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

8.3 以下程序的输出结果是

A) 5,2,3 B) -5,-12,-7 C) -5,-12,-17 D) 5,-2,-7

void sub(int x,int y,int *z)

{ *z=y-x; }

main()

{ int a,b,c;

sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);

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

}

8.4 以下程序的输出结果是

A) 4 B) 6 C) 8 D) 10

main()

{ int k=2,m=4,n=6;

int *pb=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);

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

}

8.5 已知指针p的指向如图8.5所示,则执行语句*p++; 后,*p的值是

A) 20 B) 30 C) 21 D) 31

8.6 已知指针p的指向如图8.5所示,则表达式*++p的值是

A) 20 B) 30 C) 21 D) 31

8.7 已知指针p的指向如图8.5所示,则表达式++*p的值是

A) 20 B) 30 C) 21 D) 31

8.8 以下程序的输出结果是

A) 23 B) 24 C) 25 D) 26

main()

{ int a=25;

prtv(&a);

}

8.9 以下程序的输出结果是

A) 运行出错 B) 100 C) a的地址 D) b的地址

main()

{ int **k, *a b=100;

a=&b; k=&a;

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

}

8.10 以下程序的输出结果是

A) 4,3 B) 2,3 C) 3,4 D) 3,2

void fun(float *a,float *b)

{ float w;

*a=*a+*a;

w=*a;

*a=*b;

*b=w;

}

main()

{ float x=2.0,y=3.0;

float *px=&x,*py=&y;

fun(px,py);

printf("%2.0f,%2.0f\\n",x,y);

}

8.11 以下程序的输出结果是

A) 9.000000 B) 1.500000 C) 8.000000 D) 10.500000

void sub(float x,float *y,float *z)

{ *y=*y-1.0;

*z=*z+x;

}

main()

{ float a=2.5,b=9.0,*pa,*pb;

pa=&a,pb=&b;

sub(b-a,pa,pa);

8.12 以下四个程序中不能对两个整形值进行交换的是

A) main()

{ int a=10,b=20;

swap(&a,&b);

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

}

swap(int *p, int *q)

{ int *t,a;

t=&a;

*t=*p; *p=*q; *q=*t;

}

B) main()

{ int a=10,b=20;

swap(&a,&b);

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

}

swap(int *p, int *q)

{ int t;

t=*p; *p=*q; *q=t;

}

C) main()

{ int *a,*b;

*a=10,*b=20;

swap(a,b);

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

}

swap(int *p, int *q)

{ int t;

t=*p; *p=*q; *q=t;

}

D) main()

{ int a=10,b=20;

int *x=&a,*y=&b;

swap(x,y);

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

}

swap(int *p, int *q)

{ int t;

t=*p; *p=*q; *q=st;

}

二、填空题

8.13 以下程序段的输出结果是_____。

8.14 以下程序的输出结果是_____。

int ast(int x,int y,int *cp,int *dp)

{ *cp=x+y;

*dp=x-y;

}

main()

{ int a,b,c,d;

a=4; b=3;

ast(a,b,&c,&d);

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

}

8.15 若有定义:char ch;

(1) 使指针p可以指向变量ch的定义语句是_____。

(2) 使指针p可以指向变量ch的赋值语句是_____。

(3) 通过指针p给变量ch读入字符scanf函数调用语句是_____

(4) 通过指针p给变量ch的赋字符的语句是_____。

5) 通过指针p输出ch中字符的语句是_____。

8.16 若有如图8.5所示五个连续的int类型的存储单元并赋值如图,且p和s的

基类型皆为int,p已指向存储单元a[1]。

(1) 通过指针p,给s赋值,使其指向最后一个存储单元a[4]的语句是____。

(2) 用以移动指针s,使之指向中间的存储单元a[2]的表达式是____。

(3) 已知k=2,指针s已指向存储单元a[2],表达式*(s+k)的值是____。

(4) 指针s已指向存储单元a[2],不移动指针s,通过s引用存储单元a[3]

的表达式是____。

5) 指针s已指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是

____。

6) 若p指向存储单元a[0],则以下语句的输出结果是____。

for(i=0; i<5;i++) printf("%d ",*(p+i));

printf("\\n");

第九章数组

一、选择题

9.1 若已定义:

int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

其中0≤i≤9,则对a数组元素的引用不正确的是

A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))

9.2 以下程序段给数组所有元素输入数据,应在下划线处填入的是

A)a+(i++) B)&a(i+1) C)a+i D)&a[++i]

main()

{

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

2018计算机二级C语言考试真题汇总

模拟卷 1 1[ 填空题] 下列给定程序中,函数 fun 的功能是:在形参 S 所指字符串中寻找与参数 C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若 s 所指字符串为“ baacda”, c 中的字符为 a,执行后 S 所指字符串为“ baaaacdaa ”。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序:

参考解析: 【参考答案】 【解题思路】 填空 1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘\0 ’。 填空 2:while语句用以确定字符串的长度,所以变量n 赋初值为 0。 填空 3:题目要求如果找到与参数 c 相同的字符,就在后面插入一个相同的字符,且找到后应该给 数组元素赋值,本题目给出参数为 c。 二、程序修改题 2[ 简答题] 下列给定程序中函数 fun 的功能是:逐个比较 p、q 所指两个字符串对应位置上的字符,并把 ASCII 值大或相等的字符依次存放到 c 所指的数组中,形成一个新的字符串。 例如,若主函数中 a 字符串为“aBCDeFgH”,b 字符串为 "Abcd" ,则 c 中的字符串应为“aBcdeFgH”。 请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构! 参考解析: 【参考答案】(1)int k=0; (2)while(*p||*q) 【考点分析】 本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。 【解题思路】 (1) 变量 k 存放数组 e 的下标,因此应初始化为0。 (2)while循环语句的循环条件是判断两个字符串是否到达结尾。 三.程序设计题 3[ 简答题]

计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】 class=txt>c语言程序设计 (考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构的是 a)循环队列 b) 带链队列 c) 二叉树 d)带链栈 (2)下列数据结果中,能够按照“先进后出”原则存取数据的是 a) 循环队列 b) 栈 c)队列 d)二叉树 (3)对于循环队列,下列叙述中正确的是 a)队头指针是固定不变的 b)队头指针一定大于队尾指针 c)队头指针一定小于队尾指针 d)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指 a)算法在执行过程中所需要的计算机存储空间 b)算法所处理的数据量 c)算法程序中的语句或指令条数 d)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 a) 低内聚低耦合 b) 高内聚低耦合 c) 低内聚高耦合 d) 高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是 a) 可封装 d) 自顶向下

c) 模块化 d) 逐步求精 (7)软件详细设计产生的图如下: 该图是 a) n-s图 b) pad图 c) 程序流程图 d) e-r图 (8)数据库管理系统是 a)操作系统的一部分 b) 在操作系统支持下的系统软件 c) 一种编译系统 d) 一种操作系统 (9)在e-r图中,用来表示实体联系的图形是 a) 椭圆图 b) 矩形 c) 菱形 d) 三角形 (10)有三个关系r,s和t如下: 其中关系t由关系r和s通过某种操作得到,该操作为 a) 选择 b) 投影 c) 交 d) 并 (11)以下叙述中正确的是 a)程序设计的任务就是编写程序代码并上机调试 b)程序设计的任务就是确定所用数据结构 c)程序设计的任务就是确定所用算法 d)以上三种说法都不完整 (12)以下选项中,能用作用户标识符的是 a)void b)8_8 c)_0_ d)unsigned (13)阅读以下程序

全国计算机等级考试二级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)不以分号结尾

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

二级C语言试题(含答案)

二级C语言试题 一、判断题(2×8=16分) 1、printf()函数总是从新行的起始位置开始打印。( F ) 2、所有的变量在使用前都必须予以申明。(F) 3、在申明变量时必须给出变量的类型。(T) 4、C语言认为变量number和NuMbEr是相同的。( F) 5、打印三行输出的C语言程序必须用三条printf语句。(F) 6、求余运算符%只能用于两个整数操作数。(T) 7、switch选择结构中必须有default子句。(F) 8、如果x>y或ay&&a

计算机等级考试二级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、标识符分为关键字、预定义标识符、用户标识符。

全国计算机等级考试 历年真题2009年3月二级C语言笔试真题及答案

全国计算机等级考试历年真题2009年3月二级C语言笔试真题及答案 一、选择题(每题2分,共计70分) 1.(1)下列叙述中正确的是 A)栈是先进先出的线性表 B)队列是"先进后出"的线性表 C)循环队列是非线性结构 D)有序线性表即可以采用顺序存储结构,也可以采用链式存 储结构 A B C D 2.(2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 A B C D 3.(3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 A B C D 4.(4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序

D)堆排序 A B C D 5.(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列 属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 A B C D 6.(6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试程序进行"错误定位"是程序调试的必要步骤 C)程序调试也成为Debug D)软件测试应严格执行测试计划,排除测试的随意性 A B C D 7.(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度 A B C D 8.(8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训

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

计算机二年级考试C语言 知识点总结 Newly compiled on November 23, 2020

计算机二级考试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)实型数据的合法形式: 就是合法的,且数据是×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

计算机二级C语言测试题及答案解析(一)

2016年计算机二级C语言测试题及答案解析(一)1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 D、包含文件中的第一个函数 3、以下说法中正确的是(C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A、C程序的工作过程是编辑、编译、连接、运行 B、C语言不区分大小写。 C、C程序的三种基本结构是顺序、选择、循环 D、C程序从main函数开始执行 5.下列正确的标识符是(C )。

B、a[i] C、a2_i D、int t 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成 数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C )。 A、%x B、a+b C、a123

选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C 中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C 。 A、2.5 B、2 C、1 D、3 %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%

2020年全国计算机二级C语言考试必考重点知识总结

2020年全国计算机二级C语言考试必考重 点知识总结 C语言知识点总结 (1) 一、常量 (3) 二、标识符 (4) 三、变量 (4) 四、表达式 (5) 五、输入输出函数 (8) 六、C语言的语句 (9) 七、C程序的基本结构 (10) 八、选择结构语句 (10) ?if(表达式) 语句1 else 语句2 (10) ?条件运算符表达式1? 表达式2 : 表达式3 (11) ?switch语句 (11) 九、循环结构 (12) ?for循环语句 (12) ?while循环语句do while循环语句 (13) 十、数组 (13) 十一、字符串函数 15 十二、函数

16 十三、指针 18 十四、宏定义 20 十五、结构体,共用体,枚举类型 21 十六、Turbo C的使用错误!未定义书签。

一、常量 ?数字常量 i.普通数字:1,35,2.7 ii.指数形式:2.45e-2等价于2.45*10-2注意e大小写皆可,e 前面的数字不能省,就算是1也不能省,后面的数字一定要 是整数 iii.长整型,单精度浮点型:3235L,32.5F 分别表示3235是长整型数据,32.5是单精度浮点型左,若不写上L,F则表示 3235是整型,32.5是双精度浮点型,L,F大小写皆可 ?字符常量 i.普通字符常量:用单引号把一个字符括起来,如’A’,’@’ ii.转义字符常量:一对单引号括起来并以“\”开头的字符序列,如’\n’(回车)、’\123’(8进制123对应的字符), ’\x23’(16进制 23对应的字符) ?字符串常量 用一对双引号把一个字符序列括起来,如“ABCef”,系统存 放字符串常量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾会给再开一个字节里面放一个’\0’做为结束标 志。 ?符号常量 定义格式#define 符号常量名符号常量值,如#define N 20 则定义了符号常量N,其值为20,注意符号常量名和符号常

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

2019年计算机二级考试考点C语言的几大考点

2019年计算机二级考试考点C语言的几大考点 导语:###为您整理了2017年全国计算机二级考点模拟试题,方便广大网友查阅!更多计算机软件水平考试相关信息请访问计算机软件水平考试网。 【考点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)用户标识符。用户根据需要定义的标识符,符合命名规则且不与 关键字相同。 关键字不能够作为用户标识符号。main define scanf printf 都不 是关键字。迷惑你的地方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。

历年全国计算机二级C语言试题库完整

. . . . 参考 50道C 语言知识题 1.以下叙述中正确的是 A)用C 程序实现的算法必须要有输入和输出操作 B)用C 程序实现的算法可以没有输出但必须要有输入 C)用C 程序实现的算法可以没有输入但必须要有输出 D)用C 程序实现的算法可以既没有输入也没有输出 2.下列可用于C 语言用户标识符的一组是 A)void,define,WORDB)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 3.以下选项中可作为C 语言合法常量的是 A)-80B)-080C)-8e1.0D)-80.0e 4.若有语句:char*line[5];,以下叙述中正确的是 A)定义line 是一个数组,每个数组元素是一个基类型为char 为指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line 是一个指针数组,语句中的*号称为间址运算符 D)定义line 是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)inta=b=0;B)charA=65+1,b=′b′; 6.有以下程序段 charch;intk; ch=′a′; k=12; printf("%c,%d,",ch,ch,k);printf("k=%d\n",k); 已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() {inti,s=1; for(i=1;i<50;i++) if(!(i%5)&&!(i%3))s+=i; printf("%d\n",s);} 程序的输出结果是 A)409B)277C)1D)91 8.当变量c 的值不为2、4、6时,值也为"真"的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段

2009年3月二级C语言笔试真题及答案

2009年3月二级C语言笔试真题及答案 一、选择题(每题2分,共计70分) 1.(1)下列叙述中正确的是 A)栈是先进先出的线性表 B)队列是"先进后出"的线性表 C)循环队列是非线性结构 D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构 2. (2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 3. (3)某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是 A)10 B)8 C)6 D)4 4. (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列 属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试程序进行"错误定位"是程序调试的必要步骤 C)程序调试也成为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度

(8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择 B)投影 C)插入 D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为 A)属性 B)键 C)关系 D)域 (11)一下选项中合法的标识符是 A)1_1 B)1-1 C)_11 D)1_ _ (12)若函数中有定义语句:int k;,则 A)系统将自动给k赋初值0 B)这是k中的值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)一下选项中,能用作数据常量的是 A)o115 B)0118 C)1.5e1.5 D)115L (14)设有定义:int x=2;,一下表达式中,值不为6的是 A)x*=x+1 B)X++,2*x C)x*=(1+x) D)2*x,x+=2 15. (15)程序段:int x=12; double y=3.141593;printf("%d%8.6f",x,y);的输出结果是 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930

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)

计算机二级C语言编程题库(100题)

2011,____年上机题100题库 1: 第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 答案: int fun(int score[],int m,int below[]) { int i,k=0,aver=0; for(i=0;i<m;i++) aver+=score[i]; aver/=m; for(i=0;i<m;i++) if(score[i]<aver) { below[k]=score[i]; k++; } return k; } 2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案: void fun(int *a, int *n) { int i,j=0; for(i=2;i<1000;i++) if ((i%7==0 || i%11==0) && i%77!=0) a[j++]=i; *n=j; } 3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 答案: void fun(int x, int pp[ ], int *n) { int i=1,j=0;k=0,*t=pp; for(i=0;i<=x;i++) if(i%2!=0) { t[j]=I; j++; }

全国计算机等级考试二级C语言考试大纲及重点详解

2014年全国计算机等级考试二级C语言考试大纲 ◆基本要求 1.熟悉Visual C++ 6.0 集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力 ◆考试内容 一、C语言程序的结构 1.程序的构成,main函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。 3.源程序的书写格式。 4.C语言的风格。 二、数据类型及其运算 1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。 2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。 三、基本语句 1.表达式语句,空语句,复合语句。 2.输入输出函数的调用,正确输入数据并正确设计输出格式。 四、选择结构程序设计 1.用if语句实现选择结构。 2.用switch语句实现多分支选择结构。 3.选择结构的嵌套。 五、循环结构程序设计 1.for循环结构。 2.while和do-while循环结构。 3.continue语句和break语句。 4.循环的嵌套。 六、数组的定义和引用 1.一维数组和二维数组的定义、初始化和数组元素的引用。 2.字符串与字符数组。 七、函数 1.库函数的正确调用。

2.函数的定义方法。 3.函数的类型和返回值。 4.形式参数与实在参数,参数值传递。 5.函数的正确调用,嵌套调用,递归调用。 6.局部变量和全局变量。 7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。 八、编译预处理 1.宏定义和调用(不带参数的宏,带参数的宏)。 2.“文件包含”处理。 九、指针 1.地址与指针变量的概念,地址运算符与间址运算符。 2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。 3.用指针作函数参数。 4.返回地址值的函数。 5.指针数组,指向指针的指针。 十、结构体(即“结构”)与共同体(即“联合”) 1.用typedef说明一个新类型。 2.结构体和共用体类型数据的定义和成员的引用。 3.通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。 十一、位运算 1.位运算符的含义和使用。 2.简单的位运算。 十二、文件操作 只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。 1.文件类型指针(FILE类型指针) 2.文件的打开与关闭(fopen,fclose)。 3.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数的应用),文件的定位(rewind,fseek 函数的应用)。 考试题型 (1)选择。——40 (2)程序填空。——18 (3)程序改错。——18 (4)程序编程。——24 考试时间3.30-4.3 120min 无纸化考试 总体上必须清楚的: 1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)

相关主题
文本预览
相关文档 最新文档