二级C考前强化班习题 - 图文

更新时间:2024-01-08 15:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武汉光谷计算机学校 联系电话:027-62092619

计算机等级考试考前培训二级练习题(C语言部分)

选择结构(一)

1、语句:printf(\,(2)&&(-2));的输出结果是

A)无输出 B)结果不确定 C)-1 D)1 2、为表示关系x≥y≥z,应使用C语言表达式

A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z) 3、若执行下面的程序时从键盘上输入5,则输出是

A) 7 B) 6 C) 5 D) 4 main()

{ int x;

scanf(\

if(x++>5) printf(\ else printf(\}

4、下面程序的输出是

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

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

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

5、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); C)a=c=b; 6、能正确表示a和b同时为正或同时为负的逻辑表达式是

A)(a>=0‖b>=0)&&(a<0‖b<0) B)(a>=0&&b>=0)&&(a<0&&b<0) C)(a+b>0)&&(a+b<=0) D)a*b>0 7、能正确表示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 8、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是

main( ) { int x; scanf(\

if(x + +> 5)printf(\ else printf(\

A)7和5 B)6和3 C)7和4 D)6和4 9、若执行下面的程序时从键盘上输入3和4,则输出是

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

main() {int a,b,s;

scanf(\ s=a;

if(a

printf(\

10、设 int b=2;表达式(b>>2)/(b>>1)的值是

A) 0 B) 2 C) 4 D) 8

11、与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是

A) if (x>0) y=1; B) if(x) C) y=-1 D) y=0;

1

武汉光谷计算机学校 联系电话:027-62092619

else if(x<0)y=-1; if(x>0)y=1; if(x) if(x>=0) else y=0; else if(x<0)y=-1; if(x>0)y=1; if(x>0)y=1; else y=0; else if(x==0)y=0; else y=-1; else y=-1; 12、以下程序的输出结果是

A)-1 1 B)0 1 C)1 0 D)0 0 main( )

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

if((++a<0)&& ! (b-- <=0)) printf(\,a,b);

else printf(\,b,a);} 13、若有以下定义:

float x;int a,b; 则正确的switch 语句是

A)switch(x) B)switch(x) C)switch (a+b) D)switch (a+b);

{ case1.0:printf(\ { case1,2:printf(\ { case 1:printf(\ { case 1:printf(.\ case2.0:printf(\ case3:printf(\ case 1+2:printf(\ case 2:printf(\ } } } } 14、假定所有变量均已正确说明,下列程序段运行后x的值是

a=b=c=0;x=35; if(!a)x--; else if(b); if(c)x=3; else x=4;

A)34 B)4 C)35 D)3

15、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为

A)a<>0 B)!a C)a=0 D)a 16、下面程序的输出是

A) –1 B) 0 C) 1 D) 不确定的值 main()

{ int x=100, a=10, b=20, ok1=5, ok2=0; if(a

if(! ok1) x=1; else if(ok2)x=10; x=-1;

printf(\

17、若k是int型变量,且有下面的程序片段:

k=-3;

if(k<=0) printf(\else printf(\

上面程序片段的输出结果是

A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出结果

计算机等级考试考前培训二级练习题(C语言部分)选择结构(二)

18、请读程序:

#include main()

2

武汉光谷计算机学校 联系电话:027-62092619

{ float x,y;

scanf(\ 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(\

若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是 A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000 19、请读程序:

#include

main()

{ int x=1, y=0, a=0, b=0; switch(x)

{ case 1: switch(y)

{ case 0: a++; break; case 1: b++; break; }

case 2: a++; b++; break;

}

printf(\上面程序的输出结果是

A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 20、设 int x=1, y=1; 表达式(!x||y--)的值是

A) 0 B) 1 C) 2 D) –1 21、表达式:10!=9的值是

A)true B)非零值 C)0 D)1 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、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A) 'a'&&'b' B) a<=b C) a||(b+c)&&(b-c) D) !((a

A) 不定值 B) 4 C) 3 D) 1 25、若执行以下程序时从键盘上输入9,则输出结果是

A) 11 B) 10 C) 9 D) 8 main0 { int n;

scanf(\

if(n++<10) printf(\ else printf(\

26、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是

A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10 || a<=0 27、有如下程序

main( )

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

switch(x){ case 0: b++; case 1: a++;

case 2: a++;b++;

3

武汉光谷计算机学校 联系电话:027-62092619

}

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 28、有如下程序

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

计算机等级考试考前培训二级练习题(C语言部分)循环结构(一)

4

武汉光谷计算机学校 联系电话:027-62092619

姓名____________ 班级___________ 学号____________

1、执行下面的程序后,a的值为

main() { int a,b;

for (a=1,b=1;a<=100;a++) { if(b>=20)break;

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

A)7 B)8 C)9 D)10 2、以下程序段的执行结果是

A) a=12 y=12 B) a=12 y=12 C) a=12 y=12 D) a=12 y=12 a=14 y=16 a=16 y=28 a=14 y=26 a=16 y=20 a=14 y=44 a=18 y=24 int a, y; a=10; y=0;

do{ a+=2; y+=a;

printf(\ if(y>20) break; }while(a==14); 3、以下程序的输出结果是

A)#*#*# B)##### C)***** D)*#*#* main( ) { int i;

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

{ if(i%2){printf(\;continue;} printf(\; } printf(\; }

4、下面程序的输出是

A) 741 B) 852 C) 963 D) 875421 main() { int y=9;

for( ; y>0; y--) {if(y%3==0) {printf(\}

5、请读程序:

#include #include main()

{ float x,y,z;

scanf(\ z=x/y;

while(1){ if(fabs(z)>1.0){ x=y; y=z; z=x/y;} else break; } printf(\

若运行时从键盘上输入3.6 2.4(表示回车),则输出的结果是 A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000

6、以下程序的输出结果是

A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1

5

武汉光谷计算机学校 联系电话:027-62092619

main( )

{ int x=10,y=10,i; for(i=0;x>8;y=++i)

printf(\,%d \,x--,y);}

7、当有以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为

A)ABCdef B)abcDEF C)abc D)DEF #include:”stdio.h” main( ) { char ch;

while((ch=getchar( ))!=?\\n?)

{ if(ch>=?A? && ch<=?Z?)ch=ch+32; else if(ch>=?a? && ch

main( )

{ int i,sum=0;

for(i=1;i<=3;sum++) sum+=i; printf(“%d\\n”,sum); }

该程序的执行结果是

A) 6 B) 3 C) 死循环 D) 0 9、有如下程序

main( )

{ int x=23;

do{ printf(“%d”,x--);}while(!x); }

该程序的执行结果是

A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 10、有如下程序

main( ) { int n=9;

while(n>6) {n--;printf(“%d”,n);} }

该程序段的输出结果是

A) 987 B) 876 C) 8765 D) 9876

计算机等级考试考前培训二级练习题(C语言部分)循环结构(二)1、以下程序的输出结果是

A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 1 main( )

6

武汉光谷计算机学校 联系电话:027-62092619

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

for(i=0;x>8;y=++i) printf(\,%d \,x--,y);} 2、以下程序的输出结果是

A)2 0 B)3 1 C)3 2 1 D)2 1 0 main( ) { int n=4;

while(n--)printf(\,--n);} 3、以下循环体的执行次数是

A) 3 B) 2 C) 1 D) 0 main() { int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--)printf(\4、以下叙述正确的是

A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。

C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。 5、若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是

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

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

A)20 B)25 C)24 D)30 6、定义如下变量:

int n=10;

则下列循环的输出结果是 while(n>7) { n--;

printf(\

A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 6

7、下面的程序

A) 输出的是1 B)输出的是1和-2 C)输出的是3和0 D)是死循环 main() {int x=3;

do {printf(\8、请读程序:

#include main()

{ int num=0;

while(num<=2){ num++; printf(\}

上面程序的输出结果是

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

9、执行下面程序片段的结果是

int x=23;

do{ printf(\

A) 打印出321 B) 打印出23 C) 不打印任何内容 D) 陷入死循环10、以下程序段的输出结果是

int x=3;

7

武汉光谷计算机学校 联系电话:027-62092619

do{ printf(\A)1 B)3 0 C)1-2 D)死循环 12、以下程序执行后sum的值是

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

{ int i , sum;

for(i=1;i<6;i++) sum+=i; printf(\}

13、当执行以下程序段时

A)循环体将执行一次 B)循环体将执行两次 C)循环体将执行无限次D)系统将提示有语法错误 x=-1;

do { x=x*x;} while(!x); 14、执行以下程序后,输出的结果是

A)-1 B)1 C)8 D)0 main( ) { int y=10;

do {y--;} while(--y); printf(“%d\\n”,y--); }

15、在下列选项中,没有构成死循环的程序段是

A) int i=100 B) for(;;); C)int k=1000; D)int s=36 while (1) do{++k} while (k>=1000) while(s) --s; {i=i0+1; if(i>100)break; }

16、执行语句:for(i=1;i++<4;)后;变量i的值是

A)3 B)4 C)5 D)不定

计算机等级考试考前培训二级练习题(C语言部分)

8

武汉光谷计算机学校 联系电话:027-62092619

数组(一)

姓名____________ 班级___________ 学号____________

1、 当调用函数时,实参是一个数组名,则向函数传送的是

A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 2、 下列程序的输出结果是

A) 非法 B)a[4]的地址 C)5 D)3 main()

{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(\}

3、下面程序的输出结果是

A) 0 B) 1 C) 10 D) 9 main()

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

printf(\}

4、执行下面的程序段后,变量k中的值为

A) 不定值 B) 33 C) 30 D) 10 int k=3, s[2];

s[0]=k; k=s[1]*10; 5、若已定义:

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[10]

6、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是

A)p+1 B)a+1 C)a++ D)++p

7、若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是

A)t[2][0] B)t[2][2] C)t[l][2] D)t[2][l] int t[3][3], *pt[3], k;

for (k=0;k<3;k++) pt[k]=&t[k][0]; 8、若有以下定义和语句:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A)*p B)a[10] C)*a D)a[p-a] 9、定义如下变题和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是

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

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9 10、下面程序的输出是

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

{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(\11、若有以下的定义:

int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表式是

A)p+=2, *(p++) B)p+=2,*++p C)p+=3, *p++ D)p+=2,++*p 12、若有以下的说明和语句:

main()

9

武汉光谷计算机学校 联系电话:027-62092619

{int t[3][2], *pt[3],k;

fpr(k=o; k<3;k++)pt[k]=t[k]; }

则以一选项中能正确表示t数组元素地址的表达式是

A)&t[3][2] B)*pt[0] C)*(pt+1) D)&pt[2] 13、下面程序输出数组中的最大值,由s指针指向该元素.

main()

{int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s; for(p=a, s=a; p-a<10; p++) if(---?---)s=p;

printf(\}

则在if语句中的判断表达式应该是

A)p>s B)*p>*s C)a[p]>a[s] D)p-a>p-s

14、以下程序段给数组所有的元素输入数据,请选择正确答案填入。

#include main()

{ int a[10],i=0;

while(i<10) scanf(\ ……}

A) a+(i++) B) &a[i+1] C) a+i D) &a[++i] 15、下列程序执行后的输出结果是

A) 6 B) 7 C) 8 D) 9 void func(int *a,int b[]) { b[0]=*a+6; } main()

{ int a,b[5]; a=0; b[0]=3;

func(&a,b); printf(\}

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

A) 1,5,9 B) 1,4,7 C) 3,5,7 D)3,6,9 main()

{ int i, x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++) printf(\}

17、若有以下定义和语句:

int w[2][3],(*pw)[3]; pw=w;

则对w数组元素非法引用是

A)*(w[0]+2) B)*(pw+1)[2] C)pw[0][0] D)*(pw[1]+2) 18、若有以下说明:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是

A)*p+6 B)*(p+6) C)*p+=5 D)p+5 19、若有以下说明:

int w[3][4]o={{0,1},{2,4},{5,8}}; int(*p)[4]=w;

则数值为4的表达式是

A)*w[1]+1 B)p++,*(p+1) C)w[2][2] D)p[1][1]

计算机等级考试考前培训二级练习题(C语言部分)

10

武汉光谷计算机学校 联系电话:027-62092619

数组(二)

姓名____________ 班级___________ 学号____________

1、以下程序的输出结果是

A)20 B) 21 C) 22 D)23 main()

{ int i, k, a[10], p[3]; k=5;

for (i=0;i<10;i++) a[i ]=i;

for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf(\}

2、以下程序的输出结果是

A) 18 B) 19 C) 20 D)21 main()

{ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++)

for(j=0;j<=i;j++)s+=a[i][j]; printf(\}

3、下列程序执行后的输出结果是

A) 3 B) 6 C) 9 D) 随机数 main()

{ int a[3][3], *p,i; p=&a[0][0];

for(i=0; i<9; i++) p[i]=i+1; printf(\}

4、下面程序的输出是

main()

{ char *s=\ int k=0, a=0, b=0; do { k++;

if(k%2==0) {a=a+s[k]-'0'; continue;} b=b+s[k]-'0'; a=a+s[k]-'0'; }while (s[k+1]);

printf(\

A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 5、请选出以下程序的输出结果

#include

fun(int *s, int n1,int n2) { int i, j, t; i=n1; j=n2; while(i

{ t= *(s+i); *(s+i)= *(s+j); *(s+j)=t; i++; j--; } }

main()

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

D)k=2 a=2 b=3 11

武汉光谷计算机学校 联系电话:027-62092619

for(i=0; i<10; i++) printf(\ printf(\}

A) 0 9 8 7 6 5 4 3 2 1 B) 4 3 2 1 0 9 8 7 6 5 C) 5 6 7 8 9 0 1 2 3 4 D) 0 9 8 7 6 5 1 2 3 4 6、以下程序的运行结果是

A)运行后报错 B)6 6 C)6 12 D)5 5 #include \main( )

{ int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12,}; int *p=a+5, *q=NULL; * q=*(p+5);

printf(\,*p,*q); }

7、阅读程序:

#include main()

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

printf(\ printf(\}

该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二个printf语句的输出结果是 A)203 B)204 C)1a4 D)1a6 8、设有以下定义:

int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*prt)[3]=a,*p=a[0]

则下列能够正确表示数组元素a[1][2]的表达式是

A)*((*prt+1)[2]) B)*(*(p+5)) C)(*prt+1)+2 D)*(*(a+1)+2) 9、阅读下列程序:

main( )

{ int n[3],i,j,k;

for(i=0;I<3;i++) n[i]=0; k=2;

for (i=0;I

for (j=0;j

下述程序运行后输出结果是 A)2 B)1 C)0 D)3 10、执行以下程序后,y的值是

main ( )

{ int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1];

for(x=0;x<3;x++) y + = * (p + x); printf(\}

A)17 B)18 C)19 D)20

计算机等级考试考前培训二级练习题(C语言部分)数组(三)

1、下面程序的输出是

12

武汉光谷计算机学校 联系电话:027-62092619

A) 23 B) 26 C) 33 D) 36 int aa[3][3]={{2},{4},{6}}; main()

{ int i, * p=&aa[0][0]; for(i=0; i<2;i++)

{ if(i==0) aa[i][i+1]=*p+1; else ++p; printf(\}

2、请读程序:

#include int a[]={2,4,6,8}; main() { int i;

int *p=a;

for(i=0;i<4;i++) a[i]=*p++; printf(\}

上面程序的输出结果是 A) 6 B) 8 C) 4 D) 2 3、请读程序:

#include f(in b[], int n) { int i, r; r=1;

for(i=0; i<=n; i++) r=r*b[i]; return r; }

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3);

printf(\}

上面程序的输出结果是

A) 720 B) 120 C) 24 D) 6

4、 若有以下说明和语句,请选出哪个是对c数组元素的正确引用

int c[4][5], (*cp)[5]; cp=c;

A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2) 5、 若有以下调用语句,则不正确的fun函数的首部是

A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a) main()

{ int a[50],n; fun(n, &a[9]); ? }

6、以下程序的输出结果是

A)5 2 B)5 1 C)5 3 D)9 7 main( )

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i<4;i+=2)printf(\,p[i]); }

7、下面程序把数组元素中的最大值放入a[0]中。则在if 语句中的条件表达式应该是

A)p>a B)*p>a[0] C)*p>*a[0] D)*p[0]> *a[0] main( )

13

武汉光谷计算机学校 联系电话:027-62092619

{ int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I; for(i=0;i<10;i++,p++) if(________) *a=*p; printf(\,*a); }

8、下列程序的输出结果是

main( )

{ int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p;

printf(\ printf(\}

A)4 4 B)2 2 C)2 4 D)4 6 9、以下程序的输出结果是

fut (int**s,int p[2][3]) { **s=p[1][1]; } main( )

{ int a[2][3]={1,3,5,7,9,11},*p; p=(int*)malloc(sizeof(int)); fut(&p,a);

primtf(\}

A)1 B)7 C)9 D)11 10、下面程序的输出是

A) 60 B) 68 C) 99 D) 108 main()

{ int a[3][4]={ 1,3,5,7,9,11,13,15,17,19,21,23}; int ( *p)[4]=a,i,j,k=0; for(i=0; i<3; i++)

for(j=0; j<2; j++) k=k+*( *(p+i)+j); printf(\11、若有下面的程序片段:

int a[12]={0}, *p[3], **pp, i;

for(i=0; i<3; i++) p[i]=&a[i*4]; pp=p;

则对数组元素的错误引用是

A) pp[0][1] B) a[10] C) p[3][1] D) *(*(p+2)+2) 12、以下程序的输出结果是________

main()

{ int a=1, b=2;

a=a+b; b=a-b; a=a-b; printf(\ }

13、下列程序的输出结果是16.00,请填空。。

main()

{ int a=9, b=2;

float x=________, y=1.1,z; z=a/2+b*x/y+1/2; printf(\

2004年9月全国计算机等级考试二级C语言笔试试题及参考解答

一、选择题

14

武汉光谷计算机学校 联系电话:027-62092619

1.与十进制数200等值的十六进制数为

A) A8 B)A4 C)C8 D)C4 2.DOS文件系统的组织结构属于

A)星形结构 B)网形结构 C) 环形结构 D)树形结构

3. 对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量为 A)1KB B)2KB C)4KB D)8KB 4. 在DOS环境下,代表键盘和显示器的设备文件名为 A)PRN B)CON C)NUL D)LPT 5. 计算机网络的主要特点是

A) 运算速度快 B)运算精度高 C)资源共享 D)人机交互 6.磁盘处于写保护状态时其中的数据

A)不能读出,不能删改 B)可以读出,不能删改

C)不能读出,可以删改 D)可以读出,可以删改

7.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为 A)EXIT B)QUIT C)RET D)MSDO

8. 在Windows环境下,若资源管理器左宣传品中的某文件夹左边标有“+”标记,则表示 A)该文件夹为空 B)该文件夹中含有子文件夹

C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件 9.在Windows菜单中,暗淡的命令名项目表示该命令 A)暂时不能用 B)正在执行 C)包含下一层菜单 D)包含对话框

10.在Windows环境下,单击当前宣传品中的按钮“ ”,其功能是

A)将当前应用程序转为后台运行 B)退出Windows后再关机

C)终止当前应用程序的运行 D)退出Windows后重新启动计算机 11.用C语言编写的代码程序

A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行 12.结构化程序由三种基本结构组成,三种基本结构组成的算法 A)可以完成任何复杂的任务 B)只能完成部分复杂的任务 C)只能完成符合结构化的任务 D)只能完成一些简单的任务 13. 以下定义语句中正确的是

A)char a=\\'A\\'b=\\'B\\'; B)float a=b=10.0; C)int a=10,*b=&a; D)float *a,b=&a; 14.下列选项中,不能用作标识符的是

A)_1234_ B)_1_2 C)int_2_ D)2_int_ 15.有以下定义语句

double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是 A)a=a+b=b++ B)w%(int)a+b) C)(c+w)%(int)a D)w=a==b; 16.有以下程序 main()

{ int m=3,n=4,x; x=-m++; x=x+8/++n;

printf(\

15

武汉光谷计算机学校 联系电话:027-62092619

}

程序运行后的输出结果是

A)3 B)5 C)-1 D)-2 17.有以下程序 main()

{ char a=\\'a\\',b; print(\ printf(\}

程序运行后的输出结果是

A)b,b B)b,c C)a,b D)a,c 18.有以下程序 main()

{ int m=0256,n=256; printf(\}

程序运行后的输出结果是

A)0256 0400 B)0256 256 C)256 400 D)400 400 19.有以下程序 main()

{ int a=666,b=888; printf(\}

程序运行后的输出结果是

A)错误信息 B)666 C)888 D)666,888 20.有以下程序 main() { int i;

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

{

case 0:printf(\ case 2:printf(\ default:printf(\ } }

程序运行后的输出结果是

A)022111 B)021021 C)000122 D)012 21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 A)abs(x-y)<10 B)x-y>-10&& x-y<10

C)@(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100 22.有以下程序 main() {

int a=3,b=4,c=5,d=2; if(a>b)

16

武汉光谷计算机学校 联系电话:027-62092619

if(b>c)

printf(\ else

printf(\ printf(\}

程序运行后的输出结果是

A)2 B)3 C)43 D)44 23.下列条件语句中,功能与其他语句不同的是

A) if(a) printf(\B) if(a==0) printf(\C) if (a!=0) printf(\D) if(a==0) printf(\24.有以下程序 main()

{ int i=0,x=0; for (;;) {

if(i==3||i==5) continue; if (i==6) break; i++; s+=i; };

printf(\}

程序运行后的输出结果是

A)10 B)13 C)21 D)程序进入死循环 25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此*作的程序段是 A)for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;}

D)i=1;p=1;do{p*=i; i++; }while(i<=5); 26.有以下程序 main()

{ char a,b,c,d;

scanf(\ printf(\}

若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是

A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6 27.以下能正确定义二维数组的是

A)int a[][3]; B)int a[][3]=2{2*3};

C)int a[][3]={}; D)int a[2][3]={{1},{2},{3,4}}; 28. 有以下程序 int f(int a) { return a%2; }

17

武汉光谷计算机学校 联系电话:027-62092619

main()

{ int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s);i++) d+=s; printf(\}

程序运行后的输出结果是

A)9 B)11 C)19 D)21 29.若有以下说明和语句 int c[4][5],(*p)[5]; p=c;

能够正确引用c数组元素的是

A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p[0]+2) 30.有以下程序 main()

{ int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q;q=r;

printf(\}

程序运行后的输出结果是

A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7

31.s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是

A)if(s1>s2)S; B)if(strcmp(s1,s2))S; C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S; 32.设有定义语句

int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此*作的语句是 A)for(i=0;i<6;i++) printf(\B)for(i=0;i<6;i++) printf(\C)for(i=0;i<6;i++) printf(\D)for(i=0;i<6;i++) printf(\33.有以下程序 #include main()

{int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5);

printf(\}

程序运行后的输出结果是

A)运行后报错 B)6 6 C)6 11 D)5 10 34.有以下定义和语句

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

则*p[0]+1)所代表的数组元素是

A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2]

18

武汉光谷计算机学校 联系电话:027-62092619

35.有以下程序 main()

{char str[][10]={\ printf(\}

程序运行后的输出结果是

A) China B)Bejing C)ng D)ing 36. 有以下程序 main()

{char s[]=\

for(p=s+1;p

程序运行后的输出结果是

A) ABCD B)A C)B D)BCD BCD B C CD CD C D D D D

37.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 A)称为函数的直接递归调用 B)称为函数的间接递归调用 C)称为函数的循环调用 D)C语言中不允许这样的递归调用 38.已有定义:int i,a[10],*p;,则合法的赋值语句是

A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2; 39.以下叙述中正确的是

A)局部变量说明为static存储数,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局部变量完全相同

40.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是

A)c1^c2 B)c1&c2 C)~c2 D)c1|c2 41.程序中对fun函数有如下说明 void *fun();

此说明的含义是: A)fun了数无返回值

B)fun函数的返回值可以是任意的数据类型 C)fun函数的返回值是无值型的指针类型 D)指针fun指向一个函数,该函数无返回值 42.有以下程序 main()

{ char s[]\ puts(ps+4); *(ps+4)=0; puts(s);

}

程序运行后的输出结果是(选项D中的第一行是空行) A)n/No B)/No C)n/NO D)

19

武汉光谷计算机学校 联系电话:027-62092619

Yes Yes Yes /No

/No /No 43.有以下程序 main()

{ unsigned int a; int b=-1; a=b;

printf(\}

程序运行后的输出结果是

A)-1 B)65535 C)32767 D)-32768 44.有以下程序

void fun(int *a,int i,int j) { int t; if(i

{ t=a;a=a[j];a[j]=t; i++; j--; fun(a,i,j); } } main()

{ int x[]={2,6,18},i; fun(x,0,3);

for(i=0;i<4;i++) printf(\ printf(\}

程序运行后的输出结果是

A)1 2 6 8 B) 8 6 2 1 C) 8 1 6 2 D)8 6 1 2 45.有以下说明和定义语句 struct student

{ int age; char num[8];};

struct student stu[3]={{20,\struct student *p=stu;

以下选项中引用结构体变量成员的表达式错误的是

A) (p++)->num B)p->num C)(*p).num D)stu[3].age 46.有以下程序 mina()

{ int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--)

if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++)

for(j=4;j<7-i;j++)

if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<3;i++) for(j=4;j<7-i;j++)

20

武汉光谷计算机学校 联系电话:027-62092619

if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<8;i++) printf(\ printf(\}

程序运行后的输出结果是:

A)75310246 B)01234567 C)76310462 D)13570246 47.有如下程序 #include main()

{FILE *fp1;

fp1=fopen(\ fprintf(fp1,\ fclose(fp1); }

若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为 A)goodabc B)abcd C)abc D)abcgood 48~50.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的 字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出 正确的选项。 #include stuct node

{ char data; struct node *next;}; (48) CreatList(char *s) { struct node *h,*p,*q};

h=(struct node *) malloc(sizeof(struct node)); p=q=h;

while(*s!=\\'\\\\0\\')

{ p=(struct node *) malloc(sizeof(struct node)); p->data= (49) ; q->next=p; q= (50) ; s++; }

p->next=\\'\\\\0\\'; return h; } main()

{ char str[]=\ struct node *head; head=CreatList(str); ... }

(48)A)char * B)struct node C) struct node* D) char

(49)A)*s B)s C)*s++ D)(*s)++

(50)A)p->next B)p C)s D)s->next 21

武汉光谷计算机学校 联系电话:027-62092619

二、填空题

1.在64位高档微机中,CPU能同时处理 [ ] 个字节的二进制数据。

2.E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分]是 [ ]

3.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要 用鼠标拖动 [ ] 。 4.计算机软件分为系统软件和应用软件,UNIX系统属于 [ ] 。 5.在Windows环境下,为了将屏幕内容存入剪贴板,应按 [ ] 键。 6.以下程序段的输出结果是 [ ] int i=9;

printf(\

7.以下程序运行后的输出结果是 [ ] 。 main() { int a,b,c; a=25; b=025; c=0x25;

printf(\}

8.以下程序运行后的输出结果是 [ ] 。 main()

{ int p[7]={11,13,14,15,16,17,18}; int i=0,j=0;

while(i<7 && p%2==1) j+=p[i++]; printf(\}

9.以下程序运行后的输出结果是 [ ] 。 main()

{ int x=1,y=0,a=0,b=0; switch(x)

{case 1:switch(y) { case 0:a++; break;

case 1:b++; break; }

case 2:a++;b++; break; }

printf(\}

10.以下程序运行后的输出结果是 [ ] 。 main()

{ int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}}; int i=0,j=0,s=0; while(i++<4) {

if(i==2||i==4) continue; j=0;

do{ s+= a[j]; j++; } while(j<4); }

22

武汉光谷计算机学校 联系电话:027-62092619

printf(\}

11.以下程序运行后的输出结果是 [ ] 。 main ()

{ char a[]=\ char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++)

if(*p1+k)==*(p2+k)} printf(\

}

12.以下程序运行后的输出结果是 [ ] 。这到题还有一种是if(i%2==1) 结果是*2*4*6*8* main()

{ char a[]=\ p=a; while(*p)

{ if(i%2==0) *p=\\'*\ p++;i++; } puts(a); }

13.以下程序中, for循环体执行的次数是 [ ] 。 #define N 2 #define M N+1 #define K M+1*M/2 main() { int i;

for(i=1;i

14.以下程序通过函数SunFun求f(0)+f(1)+f(2)+...+f(10)。这里f(x)=x*x+1,由F函数实现。请填空。main() {

printf(\SunFun(int n) {int x, s=0;

for(x=0;x<=n; x++) s+=F([ ]); return s; } F(int x)

{return ([ ]);}

15. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。 请填空。 main()

{ int i,a[20],sun,count; suum=count=0;

23

武汉光谷计算机学校 联系电话:027-62092619

for(i=0;i<20;i++) scanf(\ fro(i=0;i<20;i++) { if(a>0) { count++; sum+= [ ] ; } }

printf(\}

16.以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。 #define M 2

#define N 4

void SumColumMin(int a[M][N],int *sum) { int i,j,k,s=0; for(i=0;i

for(j=1;ja[j])k=j; s+= [ ] ; }

[ ] =s; } main()

{ int x[M][N]={3,2,5,1,4,1,8,3},s; SumColumMin( [ ] ); printf(\}

数据结构与算法(一)

一、选择题

24

武汉光谷计算机学校 联系电话:027-62092619

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 B C

D E

对此二叉树中遍历的结果为

F A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA 8.在深度为5的满二叉树中,叶子结点的个数为

A)32 B)31 C)16 D)15

9.对长度为n的线性表进行顺序查找,在最坏的情况下所需要的比较次数为

A)n+1 B)n C) (n+1)/2 D) n/2

10.设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为 A)8 B)7 C)6 D)5 二、填空题

1.在长度为n的有序线性表中进行二分查找,需要的比较次数为_____________. 2.设一棵完全二叉树共有700个结点,则在该二叉树中有_________个叶子结点.

3.设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为________

4.在最坏的情况下,冒泡排序的时间复杂度为_________________.

5.在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中共有_____个元素.

25

武汉光谷计算机学校 联系电话:027-62092619

程序设计基础(一)

一、选择题

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)操作是对象的动态属性 二、填空题

1.结构化程序设计的三种基本逻辑结构为顺序、选择和_________________。

2.源程序文档化要求程序应加注释。注释一般分为序言性注释和________________。 3.在面向对象方法中,信息隐蔽是通过对象的__________性来实现的。 4.类是一个支持集成的抽象数据类型,而对象是类的___________。 5.在面向对象方法中,类之间共享属性和操作的机制称为______________。

软件工程基础(一)

一、选择题

1.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 A)概要设计 B)详细设计 C)可行性分析 D)需求分析 2.下面不属于软件工程的3个要素的是 A)工具 B)过程 C)方法 D)环境

3.检查软件产品是否符合需求定义的过程称为 A)确认测试 B)集成测试 C)验证测试 D)验收测试

4.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是

A)控制流 B)加工 C)数据存储 D)源和潭 5.下面不属于软件设计原则的是

A)抽象 B)模块化 C)自底向上 D)信息隐蔽 6.程序流程图(PFD)中的箭头代表的是

A)数据流 B)控制流 C)调用关系 D)组成关系 7.下列工具中为需求分析常用工具的是

A)PAD B)PFD C)N-S D)DFD

8.在结构化方法中,软件功能分解属于下列软件开发中的阶段是 A)详细设计 B)需求分析 C)总体设计 D)编程调试

26

武汉光谷计算机学校 联系电话:027-62092619

9.软件测试的目的是

A)发现错误 B)改正错误 C)改善软件的性能 D)挖掘软件的潜能

10.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及 A)阶段性报告 B)需求评审 C)总结 D)都不正确 二、填空题

1.软件是程序、数据和___________的集合。

2.Jackson方法是一种面向___________的结构化方法。

3.软件工程研究的内容主要包括:________技术和软件工程管理。 4.数据流图的类型有_________和事务型。

5.软件开发环境是全面支持软件开发全过程的___________集合。

数据库设计基础(一)

一、选择题

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.按条件f对关系R进行选择,其关系代数表达式是 A)R|╳|R B)R|╳|R C)σf(R) D)πf(R) f

7.关系数据库管理系统能实现的专门关系运算包括 A)排序、索引、统计 B)选择、投影、连接 C)关联、更新、排序 D)显示、打印、制表 8.在关系数据库中,用来表示实体之间联系的是 A)树结构 B)网结构 C)线性表 D)二维表 9.数据库设计包括两个方面的设计内容,它们是

A)概念设计和逻辑设计 B)模式设计和内模式设计

C)内模式设计和物理设计 D)结构特性设计和行为特性设计 10.将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域

二、填空题

1.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。

2.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,

27

武汉光谷计算机学校 联系电话:027-62092619

因此,基于逻辑结构的应用程序不必修改,成为______________。

3.数据库系统中实现各种数据管理功能的核心称为__________________。

4.关系模型的完整性规则时对关系的某种约束条件,包括实体完整性、____________和自定义完整性。

5.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______________。

参考答案:

数据结构与算法:一、选择:1-5 CDABC 6-10 DBBBA 二、填空:1.log2n 2.350 3.DEBFCA 4.n(n-1)/2 5.3

程序设计方法:一、选择:1-5 BADBA 二、填空:1.重复(或循环)2.功能性 3.封装4.实例 5.继承

软件工程基础:一、选择:1-5 DDAAC 6-10 BDCBB 二、填空:1.文档 2.数据流 3.软件开发 4.变换型 5.软件工具 数据库设计基础:一、选择:1-5 AABBA 6-10 CBDAB 二、填空: 1.一对多(或1:N) 2.逻辑独立性 3.数据库管理系统 4.参照完整性 5.关系

数据结构与算法(二)

一、选择题

1.下列叙述中,错误的是()

A)数据的存储结构与数据处理的效率密切相关。 B)数据的存储结构与数据处理的效率无关。

C)数据的存储结构在计算机中所占的空间不一定是连接的。 D)一种数据的逻辑结构可以有多种存储结构。 2.下列叙述中,正确的是()

A)线性链表中的各元素在存储空间中的位置必须是连续的。 B)线性链表中的表头元素一定存储在其他元素的前面。

C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面。 D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的。 3.设栈S和队列Q的初始状态为空,元素a,b,c,d,e,f依次通过栈S,并且一个元素出栈后即进入队列Q,若出队的顺序为b,d,c,f,e,a,则栈S的容量至少应该为() A)3 B)4 C)5 D)6

4.在下列数据结构中,不是线性结构的是()

A)线性链表 B)带链的栈 C)带链的队列 D)二叉链表 5.在下列数据结构中按先进后出原则组织数据的是() A)循环队列 B)栈 C)循环链表 D)顺序表 6.下列数据结构具有记忆功能的是()

A)队列 B)循环队列 C)栈 D)顺序表 7.设有下列二叉树

T A X B C P

对此二叉树前序遍历的结果为() Z Y A)ZBTYCPXA B)ATBZXCYP C)ZBTACYXP D)ATBZXCPY

28

武汉光谷计算机学校 联系电话:027-62092619

8.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为() A)12 B)13 C)14 D)15

9.在最坏的情况下,下列排序方法中时间复杂度最小的是() A)冒泡排序 B)快速排序 C)插入排序 D)堆排序

10.在长度为n的有序线性表中进行二分查找,需要的比较次数为() A)log2n B)nlog2n C)n/2 D)(n+1)/2

二、填空题

1.数据结构分为逻辑结构与存储结构,线性链表属于 。

2.在一个容量为25的循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有 个元素。 3.在长度为n的线性表中查找一个表中不存在的元素,需要的比较次数为 。 4.设一棵完全二叉树共有739个结点,则在该二叉树中有 个叶子结点。 5.在深度为5的完全二叉树中,度为2的结点数最多为 。

程序设计基础(二)

一、选择题

1.结构化程序设计的主要特点是()

A)模块化 B)每个控制结构具有封装性

C)每个控制结构具有独立性 D)每个控制结构只有一个入口和一个出口 2.在模块化程序设计中,按功能划分模块的原则是() A)各模块的功能尽量单一,且各模块之间的联系尽量少 B)各模块的功能尽量单一,且各模块之间的联系尽量紧密 C)各模块应包括尽量多的功能

D)各模块应包括尽量多的输入输出操作 3.下列叙述中,正确的是()

A)在模块化程序设计中,一个模块应尽量多地包括与其他模块联系的信息 B)在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节 C)在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D)在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法 4.下列叙述中,正确的是()

A)在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 B)在面向对象的程序设计中,各个对象之间具有密切的联系 C) 在面向对象的程序设计中,各个对象都是公用的 D)上述3种说法都不对

5.下列叙述中,正确的是()

A)自己编写的程序主要是给自己使用的 B)当前编写的程序主要是为当前使用的 C)运行结果正确的程序一定具有易读性 D)上述3种说法都不对 二、填空题

1.符合结构化原则的3种基本控制结构为:顺序结构、选择结构和 。

29

武汉光谷计算机学校 联系电话:027-62092619

2.在面向对象的程序设计中,类描述是具有相似性质的一组 。

3.在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为 。

软件工程基础(二)

一、选择题

1.下列叙述中,正确的是()

A) 软件就是程序清单 B)软件就是存放在计算机中的文件 C)软件应包括程序清单以及运行结果 D)软件包括程序和文档 2.下列叙述中,正确的是()

A)软件维护是指修腹程序中被破坏的指令 B)软件一旦交会使用就不需要再进行维护 C)软件交付使用后还需要进行维护 D)软件交付使用后其生命周期就结束 3.下列叙述中,正确的是()

A)软件测试的目的是证明程序是否正确

B)软件测试的目的是尽可能多地发现程序中的错误 C)软件测试的目的是使程序运行结果正确 D)软件测试的目的是使程序符合结构化原则 4.软件调试的目的是()

A)改正程序中的错误 B)提高程序的执行效率 C)增加程序的功能 D)调整程序的控制结构 5.在数据流图(DFD)中,带有名字的箭头表示() A)模块之间的调用关系 B)程序的组成成分

C)控制程序的执行顺序 D)数据的流向

6.在结构化设计方法中生成的结构图(SC)中,带有箭头的连线表示() A)模块之间的调用关系 B)程序的组成成分 C)控制程序执行顺序 D)数据的流向 7.为了使模块尽可能独立,要求()

A)模块的内聚程度要尽量高且耦合程度要尽量强 B)模块的内聚程度要尽量高且耦合程度要尽量弱 C)模块的内聚程度要尽量低且耦合程度要尽量弱 D)模块的内聚程度要尽量低且耦合程度要尽量强 8.下列叙述中,正确的()

A)接口复杂的模块,其耦合程度一定低 B)耦合程度弱的模块,其内聚程度一定低 C)耦合程度弱的模块,其内聚程度一定高 D)上述3种说法都不对

9.下列叙述中,正确的是()

A)测试与调试工作必须由程序编制者自己完成 B)测试用例和调试用例必须一致

C)一个程序经调试改正错误后,一般不必再进行测试 D)上述3种说法不对

30

武汉光谷计算机学校 联系电话:027-62092619

10.下列叙述中,正确的是()

A)黑箱测试方法完全不考虑程序的内部结构和内部特征 B)黑箱测试的方法主要考虑程序的内部结构和内部特征 C)白箱测试主要考虑程序内部的逻辑结构 D)上述3种说法都不对

二、填空题

1.数据流图有两种典型的结构形式,它们分别是变换型和 。

2.耦合和内聚是评价模块独立性的两个主要标准,其中 反映了模块内各成分之间的联系。 3.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为

4.测试的目的是暴露错误,评价程序的可靠性;而 的目的归现错误的位置并改正错误。 5.程序的测试方法发分为静态分析和动态分析。使用测试用例在计算机上运行程序,使程序运行过程中暴露错误,这种方法称为 。

数据库设计基础(二)

一、选择题

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)用E-R图能够表示实体集之间一对一的联系、一对多的联系,多对多的联系 B)用E-R图只能表示实体集之间一对一的联系 C)用E-R图只能表示实体集之间一对多的联系

D)用E-R图表示的要领数据模型只能转换为关系数据模型

31

武汉光谷计算机学校 联系电话:027-62092619

7.在关系模型中,下列叙述中正确的是()

A)为了建立一个关系,首先要构造数据的逻辑关系

B)表示关系的二维表中各元组的每一个分量还要以分成若干数据项

C)一个关系的属性名表称为关系模式 D)一个关系可以包括多个二维表 8.下列数据模型中,具有坚实理论基础的是()

A)层次模型 B)网状模型 C)关系模型 D)以上三个都是

9.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是() A)选择 B)连接 C)投影 D)并

10.下列关系运算中,能使经运算后得到的新关系中元组个数少于原来关系中元组个数的是() A)选择 B)连接 C)投影 D)并

二、填空题

1.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改;称为 _____。

2.数据库系统中实现种数据管理功能的核心软件称为 _ 。

3.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 ___。 4.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 ____ 。

5.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于 __的联系。

计算机等级考试考前培训二级练习题(C语言部分)

32

武汉光谷计算机学校 联系电话:027-62092619

字符串

姓名____________ 班级___________ 学号____________

1、语句printf(\的输出结果是

A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bou C) re'hi'you D) abre'hi'y\\bou (说明:'\\b'是退格符) 2、设有数组定义: char array [ ]=\则数组 array所占的空间为

A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 3、下列程序执行后的输出结果是

A) -32767 B) FFFE C) –1 D) –32768 main()

{ char x=0xFFFF; printf(\4、下列程序执行后的输出结果是

A) you&ne B) you C) me D) err mai()

{ char arr[2][4];

strcpy(arr,\ arr[0][3]='&';

printf(\

5、下列程序执行后的输出结果是

A) hello B) hel C) hlo D) hlm void func1(int i); void func2(int i);

char st[]=\void func1(int i) { printf(\

if(i<3){i+=2;func2(i);}} void func2(int i) { printf(\

if(i<3){i+=2;func1(i);}} main()

{ int i=0; func1(i); printf(\

6、设已有定义: char *st=\下列程序段中正确的是

A) char a[11], *p; strcpy(p=a+1,&st[4]); B) char a[11]; strcpy(++a, st);

C) char a[11]; strcpy(a, st); D) char a[], *p; strcpy(p=&a[1],st+2); 7、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是

A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main()

{ char s[100]; int c, i;

scanf(\ printf(\8、下列描述中不正确的是

A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 9、以下程序的输出结果是

A)6 B)6789 C)'6' D)789 main( )

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

printf(\,p-3);} 10、以下程序的输出结果是 33

武汉光谷计算机学校 联系电话:027-62092619

A)17,021,0x11 B)17,17,17 B)17,0x11,021 D)17,21,11 main( )

{ int k=17;

printf(\,%o,%x \\n\,k,k,k);} 11、略

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

A)123456780 B)123 456 780 C)12345678 D)147 main( )

{ char ch[3][4]={\,\,\, *p[3]; int i; for(i=0;i<3;i++) p[i]=ch[i];

for(i=0;i<3;i++) printf(\,p[i]);} 13、以下程序的输出结果是

A)4 2 1 1 B)0 0 0 8 C)4 6 7 8 D)8 8 8 8 main( )

{ char *s=\; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; }

v[i]++; }

for(k=0;k<4;k++) printf(\,v[k]);} 14、以下程序的输出结果是

A)AfghdEFG B)Abfhd C)Afghd D)Afgd #include main( )

{ char *p1,*p2,str[50]=\; p1=\; p2=\;

strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf(\,str);} 15、以下程序的输出结果是

A)编译不通过,无输出 B)aceg C)acegi D)abcdefghi main( ) { int i;

for(i='A';i<'I';i++,i++) printf(\,i+32); printf(\;}

16、在C语言中,合法的字符常量是

A)'\\084' B)'\\x43' C)'ab' D)\17、合法的数组定义是

A)int a[]=\ B)int a[5]={0,1,2,3,4,5}; C)vhst s=\ D)char a[]={0,1,2,3,4,5}; 18、若有定义和语句:

char s[10]; s=\ 则结果是(以下u代表空格) A)输出abcd B)输出a C)输出abcduuuuu D)编译不通过 19、若有以下定义和语句

char c1='b',c2='e';

printf(\则输出结果是:

A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定 20、若有以下定义:

char s[20]=\ 则不能代表字符o的表达式是 A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps

34

武汉光谷计算机学校 联系电话:027-62092619

21、若有以下定义和语句:

char *s1=\

printf(\则输出结果是 A)4 B)5 C)9 D)10

22、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,/u代表空格):

1u2 AuBuC

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 A)scanf(\B)scanf(\C)scanf(\

D)scanf(\,&x,&y,&a,&a,&b,&b,&c,&c); 23、若有以下程序片段:

char str[]=\

printf(“%d\ 上面程序片段的输出结果是 A)3 B)4 C)6 D)12

24、函数调用:strcat(strcpy(str1,str2),str3)的功能是

A)将串str1复制到串str2中后再连接到串str3之后 B)将串str1连接到串str2之后再复制到串str3之后

C)将串str2复制到串str1中后再将串str3连接到串str1之后 D)将串str2连接到串str1之后再将串str1复制到串str3中 25、以下程序的输出结果是

#include

subl(char a,char b) {char c; c=a;a=b;b=c;} sub2(char* a,char b) {char c; c=*a;*a=b;b=c;} sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;} main() { char a,b;

a='A';b='B';sub3(&a,&b);putchar(a);putchar(b); a='A';b='B';sub2(&a,b);putchar(a);prtchar(b); a='A';b='B';sub1(a,b);putchar(a);putchar(b); }

A)BABBAB B)ABBBBA C)BABABA D)BAABBA 26、不能把字符串:Hello!赋给数组b的语句是

A)char b[10]={'H','e','l','l','o','!'}; B)char b[10];b=\C)char b[10];strcpy(b,\ D)char b[10]=\27、若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

char c='a',d,g; 则数值为4的表达式是

A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c] 28、下述对C语言字符数组的描术中错误的是

A)字符数组可以存放字符串 B)字符数组中的字符串可以整体输入、输出 C)可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较 29、设有如下定义:

char *aa[2]={\ 则以下就法中正确的是 A)aa数组成元素的值分别是\和ABCD\

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符'a'和'A'的地址 30、下列程序的输出结果是

main( )

{ char*p1,*p2,str[50]=\ p1=\

35

武汉光谷计算机学校 联系电话:027-62092619

p2=\

strcpy(str+2,strcat(p1+2,p2+1); printf(\

A}xyabcAB B)abcABz C)Ababcz D)xycdBCD 31、下列程序的输出结果是

main( )

{ char ch[2][5]={\ int i,j,s=0;

for(i=0;i<2;i + +) p[i]=ch[i]; for(i=0;i<2;i + +)

for(j=0;p[i][j]>'\\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf(\

A)6385 B)69825 C)63825 D)693825 32、以下程序的输出结果是

#include\space (char *str) { int i,t;char ts[81];

for(i=0,t=0;str[i]!='\\0';i+=2) if(! isspace(*str+i)&&(*(str+i)!='a')) ts[t++]=toupper(str[i]); ts[t]='\\0';

strcpy(str,ts);} mian( )

{ char s[81]={\ space(s); puts(s);}

A)cdeg B)bcde C)ABCDE D)BCDEFG 33、已知字母A的ASCII码为十进制的65,下面程序的输出是

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

{ char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';

printf(\34、下面函数的功能是

A) 求字符串的长度 B) 比较两个字符串的大小

C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面 int funl(char * x) {char * y=x; while(*y++); return(y-x-1);} 36、下面程序的输出是

A) xyzabcABC B) zabcABC C) yzabcABC D) xyabcABC #include #include main()

{ char *p1=\ strcpy(str+2,strcat(p1,p2)); printf(\36、下面程序的输出是

A) 100 B) 160 C) 120 D) 64 main()

{ char x=040;

printf(\

37、设ch是char型变量,其值为A,且有下面的表达式:

36

武汉光谷计算机学校 联系电话:027-62092619

ch=(ch>='A'&&ch<='Z')?(ch+32):ch 上面表达式的值是 A) A B) a C) Z D) z

38、下面各语句行中,能正确进行赋字符串操作的语句行是

A) char st[4][5]={\ B) char s[5]={'A','B','C','D','E'}; C) char *s; s=\ D) char *s; scanf(\39、请读程序:

#include f(char *s) { char *p=s;

while( *p!='\\0') p++; return(p-s);} main()

{printf(\上面程序的输出结果是 A) 3 B) 6 C) 8 D) 0 40、请读程序片段:

char str[]=\

printf(\ 上面程序的输出结果是

A) 68 B) 0 C) 字符\的地址 D) 不确定的值 41、请读程序片段(字符串内没有空格):

printf(\TS\\n012\\1\\\\\ 上面程序片段的输出结果是 A) 11 B) 10 C) 9 D) 8 42、请读程序:

#include #include main()

{char *s1=\ s1++; s2++;

printf(\上面程序的输出结果是

A) 正数 B) 负数 C) 零 D) 不确定的值 43、请读程序:

#include char fun(char *c)

{if( *c<='Z' && *c>='A') *c-='A'-'a'; return *c;} main()

{ char s[81], *p=s; gets(s);

while(*p){*p=fun(p); putchar(*p); p++;} putchar('\\n');}

若运行时从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door 44、请选出以下语句的输出结果

printf(\

A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出 45、字符(char)型数据在微机内存中的存储形式是

A) 反码 B) 补码 C) EBCDIC码 D) 对应的ASCII码值 46、略

47、请读程序:

#include #include

void fun( char *w, int m) { char s, *p1, *p2;

37

武汉光谷计算机学校 联系电话:027-62092619

p1=w; p2=w+m-1;

while (p1

{ char a[]=\ fun( a, strlen(a)); puts(a);}

上面程序的输出结果是

A) GFEDCBA B) AGADAGA C) AGAAGAG D) GAGGAGA 48、设有如下的程序段:

char str[ ]=\char *ptr; ptr=str;

执行上面的程序段后,*(ptr+5)的值为

A) 'o' B) '\\0' C) 不确定的值 D) 'o'的地址 49、执行下面的程序段

int x=35; char z='A'; int b;

B=((x&15)&&(z<'a'));后,B的值为

A) 0 B) 1 C) 2 D) 3 50、下面函数的功能是

sss(char *s, char *t )

{ while((*s)&&(*t)&&(*t++== *s++)); return(*s-*t); }

A) 求字符串的长度 B) 比较两个字符串的大小

C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中 51、请选出以下程序段的输出结果

#include main()

{ char sl[10], s2[10], s3[10], s4[10];

scanf(\ puts(s1); puts(s2); puts(s3); puts(s4);} 输入数据如下:(此处代表回车符) aaaa bbbb cccc dddd

A) aaaa B) aaaa C) aaaa D) aaaa bbbb E)aaaa bbbb bbbb bbbb cccc bbbb cccc cccc dddd dddd cccc dddd cccc dddd dddd eeee

2004年4月全国计算机等级考试二级C语言笔试试题及参考解答(考试时间120分钟,满分100分)

38

武汉光谷计算机学校 联系电话:027-62092619

一、 选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分) 1、 1MB等于()

A)1000字节 B)1024字节 C)1000*1000字节 D)1024*1024字节 2、与十六进制数200等值得十进制数为() A)256 B)512 C)1024 D)2048 3、 所谓\裸机\是指()

A)单片机 B)单板机 C)不装备任何软件的计算机 D)只装备操作系统的计算机 4、 能将高级语言编写的源程序转换为目标程序的是() A)链接程序 B)解释程序 C)编译程序 D)编辑程序 5、 在64为计算机中,一个字长所占字节数为() A)64 B)8 C)4 D)1

6、 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序() A)继续在后台运行 B)继续在前台运行 C)终止运行 D)暂停运行

7、在Windows环境下,能实现窗口移动的操作是()

A)用鼠标拖动窗口中的任何部位 B)用鼠标拖动窗口的边框

C)用鼠标拖动窗口的控制按钮 D)用鼠标拖动窗口的标题栏。 8、 在Windows环境下,PrintScreen键的作用是() A)打印当前窗口的内容 B)打印屏幕内容

C)复制屏幕到剪贴板 D)复制当前窗口到剪贴板 9、 Internet的通信协议是()

A)TCP/IP B)BBS C)WWW D)FTP 10、 下列叙述中正确的是() A)计算机病毒只感染可执行文件 B)计算机病毒只感染文本文件

C)计算机病毒只能通过软件复制的方式进行传播

D)计算机病毒可以通过网络或读写磁盘方式进行传播

11、一个算法应该具有\确定性\等5个特性,下面对另外4个特性的描述中错误的是 A)有零个或多个输入 B)有零个或多个输出 C)有穷性 D)可行性 12、 以下叙述中正确的是()

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C)C源程序经编译形成的二进制代码可以直接运行 D)C语言中的函数不可以单独进行编译

13、 以下符合C语言语法的实型常量是()

A)1.2E0.5 B)3.14.159E C).5E-3 D)E15 14、 以下4组用户定义标识符中,全部合法的一组是() A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001

15、 若以下选项中的变量已正确定义,则正确的赋值语句是() A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3; 16、 设有以下定义 int a=0; double b=1.25; char c=?A?;

#define d 2

则下面语句中错误的是()

A)a++; B)b++ C)c++; D)d++;

17、 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相 符的是()

39

武汉光谷计算机学校 联系电话:027-62092619

A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b) 18、 有以下程序 main( ) {

int x=102,y=012; printf(\} 执行后输出结果是()

A)10,01 B)002,12 C)102,10 D)02,10 19、以下4个选项中,不能看作一条语句的是()

A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;

20、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是() A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\

21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()

A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1 else k=0; C)if(a<=b) k=0; D)if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 22、有以下程序 main( )

{ char k; int I; for(i=1;i<3;i++)

{ scanf(\ switch(k)

{ case '0': printf(\ case '1': printf(\ } } }

程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是() A) another B)another C)another D)number number number number number another number 23、有以下程序 main( )

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

while(z-->0&&++x<5) y=y-1; printf(\}

程序执行后的输出结果是()

A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5 24、有以下程序 main( )

{ int i,s=0;

for(i=1;i<10;i+=2) s+=i+1; printf(\}

程序执行后的输出结果是()

A)自然数1~9的累加和 B)自然数1~10的累加和

C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和 25、有以下程序 main( )

40

武汉光谷计算机学校 联系电话:027-62092619

{ int i,n=0;

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

{ if(i%3) continue; n++; } while(!i); n++; }

printf(\}

程序执行后的输出结果是()

A)n=5 B)n=2 C)n=3 D) n=4 26、若程序中定义了以下函数

double myadd(double a,double b) { return (a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A)double myadd(double a,b); B)double myadd(double,double); C)double myadd(double b,double a); D)double myadd(double x,double y); 27、有以下程序

char fun(char x , char y) { if(x

{ int a='9',b='8',c='7';

printf(\ }

程序的执行结果是()

A)函数调用出错 B)8 C)9 D)7

28、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是() A)p=1; B)*q=2; C)q=p; D)*p=5; 29、有以下程序 void f(int v , int w) { int t;

t=v;v=w;w=t; }

main( )

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

if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z);

printf(\}

执行后输出结果是()

A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1 30、有以下程序段

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

b中的值是()

A)5 B)6 C)8 D)9 31、有以下程序 main( )

{ char a[]=\

41

武汉光谷计算机学校 联系电话:027-62092619

printf(\ %d\\n\}

执行后输出结果是() A)7 7 B)8 8 C)8 10 D)10 10 32、有以下程序 void swap1(int c[]) { int t;

t=c[0];c[0]=c[1];c[1]=t; }

void swap2(int c0,int c1) { int t;

t=c0;c0=c1;c1=t; }

main( )

{ int a[2]={3,5},b[2]={3,5}; swap1(a); swap2(b[0],b[1]);

printf(\ %d %d %d\\n\}

其输出结果是() A)5 3 5 3 B) 5 3 3 5 C)3 5 3 5 D)3 5 5 3 33、有以下程序 void sum(int *a) { a[0]=a[1];} main( )

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa[i]); printf(\}

执行后的输出结果是() A)4 B)3 C)2 D)1 34、有以下程序 int f(int b[][4]) { int i,j,s=0;

for(j=0;j<4;j++) { i=j;

if(i>2) i=3-j; s+=b[i][j]; }

return s; }

main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(\}

执行后的输出结果是() A)12 B)11 C)18 D)16 35、有以下定义 #include char a[10],*b=a;

不能给数组a输入字符串的语句是()

A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b); 36、有以下程序 main( )

{ char *p[10]={\ printf(\}

执行后输出结果是() A)2 B)3 C)4 D)5

42

武汉光谷计算机学校 联系电话:027-62092619

37、有以下程序 int a=2; int f(int *a)

{return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a); }

s+=f(&a);

printf(\}

执行后输出结果是() A)10 B)9 C)7 D)8 38、有以下程序

#define f(x) x*x main( ) { int i;

i=f(4+4)/f(2+2); printf(\ }

执行后输出结果是() A)28 B)22 C)16 D)4 39、设有以下语句 typedef struct S

{ int g; char h;} T; 则下面叙述中正确的是()

A)可用S定义结构体变量 B)可以用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量 40、有以下程序 struc STU{

char name[10]; int num; };

void f1(struct STU c)

{ struct STU b={\ c=b; }

void f2(struct STU *c)

{ struct STU b={\ *c=b; }

main( )

{ struct STU a={\angSan\in\ f1(a);f2(&b);

printf(\}

执行后的输出结果是()

A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043 41、有以下程序 main( )

{ unsigned char a,b; a=4|3; b=4&3;

printf(\

43

武汉光谷计算机学校 联系电话:027-62092619

}

执行后输出结果是()

A) 7 0 B)0 7 C)1 1 D)43 0

42、下面程序的功能是输出以下形式的金字塔图案是: * *** ***** ******* main( ) { int i,j;

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

{ for(j=1;j<=4-i;j++) printf(\ for(j=1;j<=_______;j++) printf(\ printf(\} }

在下划线处应填入的是()

A)i B)2*i-1 C)2*i+1 D)i+2 43、有以下程序 void sort(int a[],int n) { int i,j,t;

for(i=0;i

if(a[i]

main()

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10);

for(i=0;i<10;i++) printf(\ printf(\}

其输出结果是()

A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2,

44、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是() A) char s[10]=\ B) char t[]=\

C) char s[10];s=\ D) char s[10];strcpy(s,\45、有以下程序 #include

main(int argc ,char *argv[ ]) { int i,len=0;

for(i=1;i

} 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44 执行后输出结果是()

A)14 B)12 C)8 D)6 46、有以下程序

void f(int a[],int i,int j) { int t; if(i

{ t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1);

44

武汉光谷计算机学校 联系电话:027-62092619

} }

main( )

{ int i,aa[5]={1,2,3,4,5}; f(aa,0,4);

for(i=0;i<5;i++) printf(\ printf(\}

执行后输出结果是()

A)5,4,3,2,1, B)5,2,3,4,1, C)1,2,3,4,5, D)1,2,3,4,5, 47、有以下程序 struct STU

{ char name[10]; int num; int Score; };

main( )

{ struct STU s[5]={{\angSan\ {\in\ {\ int i,j;

for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++)

if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;}

printf(\ %d\\n\}

执行后输出结果是()

A)550 550 B)680 680 C)580 550 D)580 680 48、有以下程序 #include struct NODE{

int num;

struct NODE *next; }; main( )

{ struct NODE *p,*q,*r; int sum=0;

p=(struct NODE *)malloc(sizeof(struct NODE)); q=(struct NODE *)malloc(sizeof(struct NODE)); r=(struct NODE *)malloc(sizeof(struct NODE)); p->num=1;q->num=2;r->num=3; p->next=q;q->next=r;r->next=NULL; sum+=q->next->num;sum+=p->num; printf(\}

执行后的输出结果是

A)3 B)4 C)5 D)6 49、有以下程序 #include main( )

{ FILE *fp; int i,k=0,n=0; fp=fopen(\

45

武汉光谷计算机学校 联系电话:027-62092619

for(i=1;i<4;i++) fprintf(fp,\ fclose(fp);

fp=fopen(\

fscanf(fp,\ printf(\ fclose(fp);

} 执行后输出结果是()

A)1 2 B)123 0 C)1 23 D) 0 0

50、有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END); 语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) #include main( )

{ FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen(\

for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp);

fp=fopen(\;

fseek(fp,-2L*sizeof(int).SEEK_END);

fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp);

printf(\}

执行后输出结果是()

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

二、填空题(每空2分,共40分)

1、E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】。 2、计算机网络分为广域网和局域网,因特网属于【2】。

3、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为【3】。

4、在Windows环境下,只要在\开始\菜单中单击【4】选项,就可以查阅最近打开过的文档清单。5、计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5】条指令。 6、已知字符A的ACSII码值为65,以下语句的输出结果是【6】 char ch=?B?;

printf(\7、有以下语句段 int n1=10,n2=20; printf(\【7】\

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20

8、有以下程序 main( )

{ int t=1,i=5;

for(;i>=0;i--) t*=i; printf(\

} 执行后输出结果是【8】。 9、有以下程序 main( )

{ int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(\

} 执行后输出结果是【9】。

46

武汉光谷计算机学校 联系电话:027-62092619

10、有以下程序 #include main( )

{ char ch1,ch2; int n1,n2;

ch1=getchar(); ch2=getchar(); n1=ch1-?0?; n2=n1*10+(ch2-?0?); printf(\

} 程序运行时输入:12<回车>,执行后输出结果是【10】。 11、有以下程序 void f( int y,int *x) {y=y+*x; *x=*x+y;} main( )

{ int x=2,y=4; f(y,&x);

printf(\ %d\\n\

} 执行后输出的结果是【11】。 12、函数fun的功能是计算xn double fun(double x,int n) { int i; double y=1;

for(i=1;i<=n;i++) y=y*x; return y;

} 主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【12】。

13、下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如:

1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14

当 A=9 10 11 12 则 A’= 3 7 11 15 13 14 15 16 4 8 12 16 请填空

#define N 4 void rotate(int a[][N]) { int i,j,t;

for(i=0;i

for(j=0;【13】;j++) { t=a[i][j]; 【14】; a[j][i]=t; } }

14、以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。

void sstrcpy(char *s,char *t) { while(*s++=【15】);} main( )

{ char str1[100],str2[]=\ sstrcpy(str1,str2); printf(\}

15、下列程序的运行结果是:【16】 #include char *ss(char *s)

{ return s+strlen(s)/2;} main( )

47

武汉光谷计算机学校 联系电话:027-62092619

{ char *p,*str=\

p=ss(str); printf(\}

16、下面程序的运行结果是:【17】 int f( int a[], int n)

{ if(n>1) return a[0]+f(&a[1],n-1); else return a[0]; }

main ( )

{ int aa[3]={1,2,3},s;

s=f(&aa[0],3); printf(\}

17、以下程序中给指针p分配三个double型动态内存单元,请填空。 # include main ( )

{ double *p;

p=(double *) malloc(【18】); p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf(\}

18、以下程序的运行结果是【19】 # include typedef struct student{

char name[10]; long sno; float score; }STU; main( )

{ STU a={\ d=a;

if(strcmp(a.name,b.name)>0) d=b; if(strcmp(c.name,d.name)>0) d=c; printf(\}

19、以下sum函数的功能是计算下列级数之和。 S=1+x+x2/2!+x3/3!+........+xn/n! 请给函数中的各变量正确赋初值。 double sum( double x, int n ) { int i; double a,b,s; 【20】

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

{ a=a*x; b=b*i; s=s+a/b; } return s; }

附参考答案

01~10:DBCCB ADCAD 11~20:BBCAC DBCDA 21~30: ACBDD 31~40: CBADB ACADA 41~50: ABCCD ACBBD 填空题:

1、@ 2、广域网 3、EXIT或exit 4、文档 5、百万条或一百万条或1000000条 6、B 66 7、n1=%d\\nn2=%d 8、0 9、-4 10、12 11、8 4 12、fun(a,4)+fun(b,4)-fun(a+b,3); 13、j<=i 14、a[i][j]=a[j][i] 15、*t++ 16、6 17、efgh 18、3*sizeof(double) 19、2002Shangxian 20、a=1.0;b=1.0;s=1.0;

计算机等级考试考前培训二级练习题(C语言部分)

ADDCD 48

武汉光谷计算机学校 联系电话:027-62092619

编译预处理 结构体

姓名____________ 班级___________ 学号____________

1、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:

int *p;

p=__________ malloc( sizeof(int)); 则应填入

A) int B) inst * C) (*int) D) (int *) 2、请读程序:

#include main()

void fun(float *pl, float *p2, float *s) { float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a; { s=( float * )calloc( 1, sizeof(float)); fun(a, b, s)

*s=*p1+ *(p2++);} printf(\上面程序的输出结果是

A) 11.100000 B) 12.100000 C) 21.100000 D) 1.100000 3、下列程序的输出结果是

A) 5 B) 6 C) 7 D) 8 struct abc{ int a, b, c; }; main()

{ struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0],a+s[1],b; printf(\

4、下列程序执行后的输出结果是

A) 6 B) 8 C) 10 D) 12 #define MA(x) x*(x-1) main()

{ int a=1,b=2; printf(\

5、有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点b连接到

结点a之后的语句是

A) a.next=q; B) p.next=&b; C) p->next=&b; D) (*p).next=q; struct node { char data; struct node *next;} a,b,*p=&a,*q=&b;

┌──┬──┐ ┌──┬──┐ a │ 5 │ │ b│ 9 │ 0 │ └──┴──┘ └──┴──┘ ↑p ↑q 6、以下说法中正确的是

A)#define和printf都是C语句 B)#define是C语句,而printf不是 C)printf是C语句,但#define不是 D)#define和printf都不是C语句 7、以下选项中,能定义s为合法的结构体变量的是

A)typedef struct abc B)struct C)struct ABC D)typedef ABC { double a; { double a; { double a; { double a; char b[10]; char b[10]; char b[10];} char b[10];}

} s; } s; ABC s; ABC s; 8、以下程序的输出结果是

A)9 B)6 C)36 D)18 #define f(x) x*x main( )

{ int a=6,b=2,c; c=f(a) / f(b);

printf(\,c);}

9、设有如下定义: struct sk {int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是

A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a 10、若程序中有下面的说明和定义

struct abc {int x;char y;}

struct abc s1,s2; 则会发生的情况是

A)编译进错 B)程序将顺利编译`连接`执行

49

武汉光谷计算机学校 联系电话:027-62092619

C)能顺利通过编译`连接`但不能执行 D)能顺利通过编译`但连接出错 11、执行下面的程序后,a的值是

#define SQR(X) X*X main( )

{ int a=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m); printf(\

A)10 B)1 C)9 D)0 12、根据下面的定义,能打印出字母M的语句是

A) printf(\ B) printf(\C) printf(\ D) printf(\struct person { char name[9]; int age;};

struct person class[10]={\13、下面程序的输出是

A) 0 B) 1 C) 3 D) 6 main()

{ struct cmplx { int x; int y; } cnum[2]={1,3,2,7}; printf(\14、请读程序:

#include

#define SUB(X,Y) (X)*Y main()

{ int a=3, b=4;

printf(\} 上面程序的输出结果是

A) 12 B) 15 C) 16 D) 20 15、在宏定义 #define PI 3.14159中,用宏名PI代替一个

A) 单精度数 B) 双精度数 C) 常量 D) 字符串 16、请选出以下程序段的输出结果

#include

#define MIN(x,y) (x)<(y)? (x):(y) main() { int i,j,k;

i=10; j=15; k=10*MIN(i,j); printf(\

A) 15 B) 100 C) 10 D) 15 17、下面程序的输出结果为

struct st { int x;

int *y;} *p; int dt[4]={10,20,30,40};

struct st aa[4]={50,&dt[0],60,&dt[1], 70,&dt[2],80,&dt[3] }; main() { p=aa;

printf(\ printf(\ printf(\}

A) 10 B) 50 C) 51 D) 60 20 60 60 70 20 21 21 31

2005年4月全国计算机等级考试二级笔试试卷

50

本文来源:https://www.bwwdw.com/article/i9yo.html

Top