江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
C考试模拟试卷1

全国计算机等级考试二级C语言考前冲刺试卷(1)

一、选择题

1)下列选项中,不是算法的基本特征的是(    )。

A)完整性                                                                         B)可行性

C)有穷性                                                                          D)拥有足够的情报

2)结构化分析方法是面向(    )的自顶向下、逐步求精进行需求分析的方法。

A)对象                               B)数据结构                       C)数据流                         D)目标

3)下列工具中为需求分析常用工具的是(    )。

APAD                               BPFD                                CN-S                               DDFD

4)线性表进行二分法检索,其前提条件是(    )。

A)线性表以顺序方式存储,并按关键码值排好序

B)线性表以顺序方式存储,并按关键码的检索频率排好序

C)线性表以链式方式存储,并按关键码值排好序

D)线性表以链式方式存储,并按关键码的检索频率排好序

5)下列选项中不属于结构化程序设计方法的是(    )。

A)自顶向下                       B)逐步求精                       C)模块化                         D)可复用

6)下列关于结构化程序设计原则和方法的描述中,错误的是(    )。

A)选用的结构只准许有一个入口和一个出口

B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C)不允许使用GOTO语句

D)语言中所没有的控制结构,应该采用前后一致的方法来模拟

7)软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及(    )。

A)阶段性报告                   B)需求评审                       C)总结                             D)都不正确

8)下列关于软件测试的描述中正确的是(    )。

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

B)软件测试的目的是使程序运行结果正确

C)软件测试的目的是尽可能地多发现程序中的错误

D)软件测试的目的是使程序符合结构化原则

9)用链表表示线性表的优点是(    )。

A)便于随机存取

B)花费的存储空间较顺序存储少

C)便于插入和删除操作

D)数据元素的物理顺序和逻辑顺序相同

10)在数据库设计中,将E-R图转换为关系模式的过程属于(    )。

A)需求分析阶段                                                           B)逻辑设计阶段

C)概念设计阶段                                                            D)物理设计阶段

11)以下叙述错误的是(    )。

AC语言区分大小写

BC程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改

C)整数和实数都能用C语言准确无误地表示出来

D)在C程序中,正整数可以用十进制、八进制和十六进制的形式来表示

12)下列叙述中错误的是(    )。

A)用户所定义的标识符允许使用关键字

B)用户所定义的标识符应尽量做到“见名知意”

C)用户所定义的标识符必须以字母或下划线开头

D)用户定义的标识符中,大、小写字母代表不同标识

13)下列选项中可作为C语言合法常量的是(    )。

A-80                                      B-080                            C-8e1.0                          D-80.0e

14)下列定义变量的语句中错误的是(    )。

Aint _int;                                                                        Bdouble int_;

Cchar For;                                                                       Dfloat US$;

15)下列关于函数的叙述中正确的是(    )。

A)每个函数都可以被其他函数调用(包括main函数)

B)每个函数都可以被单独编译

C)每个函数都可以单独运行

D)在一个函数内部可以定义另一个函数

16)当a=1b=2c=3d=4时,执行下面程序段后,x的值是(    )。

if(a<b)

if(c<d)x=1;

else

if(a<c)

if(b<d)x=2;

else x=3;

else x=6;

else x=7;

A1                                         B6                                  C3                                  D2

17)以下程序的输出结果是(    )。

#include<stdio.h>

main()

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

printf("%d",a<b?a:d<c?d:b);

}

A1                                         B3                                  C2                                  D4

18)若有语句:char *line[5];下列叙述中正确的是(    )。

A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量

B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C)定义line是一个指针数组,语句中的*号称为间址运算符

D)定义line是一个指向字符型函数的指针

19)以下程序:

#include<stdio.h>

main()

{     char str[10];

scanf("%s",&str);

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

}

运行上面的程序,输入字符串how are you,则程序的执行结果是(    )。

Ahow                                    Bhow are you                Ch                                  Dhowareyou

20xy都是int类型x=1y=2printf("%d%d",x,y,(x,y))的输出结果是   

A1 2                                      B1 2 2                            C1,2                               D)输出值不确定

21)以下程序的输出结果是(    )。

#include<stdio.h>

main()

{     int a=8,b=6,m=1;

switch(a%4)

{     case 0:m++;         break;

case 1:m++;

switch(b%3)

{     default:       m++;

case 0:m++; break;

}

}

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

A1                                         B2                                  C3                                  D4

22)定义如下变量和数组:

int i;

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

则下面的语句输出结果是(    )。

for(i=0;i<3;i++) printf("%d",x[i][2-i]) ;

A159                                     B147                              C357                              D369

23有下列程序段  

typedef struct NODE

{ int numstruct NODE *next;

}  OLD

下列叙述中正确的是(    )。

A)以上的说明形式非法                                                BNODE是一个结构体类型

COLD是一个结构体类型                                           DOLD是一个结构体变量

24)下列数组定义中错误的是(    )。

Aint x[ ][3]={0}

Bint x[2][3]={{l,2},{3,4},{5,6}}

Cint x[ ][3]={{l,2,3},{4,5,6}}

Dint x[2][3]={l,2,3,4,5,6}

25)以下叙述错误的是(    )。 

A)变量的作用域取决于变量定义语句的位置

B)全局变量可以在函数以外的任何部位进行定义

C)局部变量的作用域可用于其他函数的调用

D)一个变量说明为static存储类型是为了限制其他编译单元的引用

26若定义函数int *func(),则函数func的返回值为(    )。 

A)一个实数                                                                    B)一个指向整型变量的指针

C)一个指向整型函数的指针                                         D)一个整型函数的入口地址

27若有以下定义,则正确引用数组元素的是(    )。

int a[5],*p=a;

A*&a[5]                                B*a+2                            C*(p+5)                         D*(a+2)

28以下对C语言中联合类型数据的正确叙述是(    )。

A)定义了联合变量后,即可引用该变量或该变量中的任意成员

B)一个联合变量中可以同时存放其所有成员

C)联合中的各个成员使用共同的存储区域

D)在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变

29有以下函数定义

int fun(double a,double b)

{return a*b;}

若以下选项中所用变量都已正确定义并赋值错误的函数调用是   

Aif(fun (x,y)){……}                                                     Bz= fun (fun (x,y),fun (x,y));

Cz= fun (fun (x,y)x,y);                                                  Dfun (x,y);

30执行以下语句段后xy的值是   

int*pt,xy;

xy=200;

pt=&xy;

xy=*pt+30;

A200                                     B170                              C260                              D230

31下述程序的输出结果是   

# include<stdio.h>

void main()

{     int a[20],*p[4];

int i,k=0;

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

a[i]=i;

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

p[i]=&a[i*i+1];

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

       k=k+*(p+i);

printf ("%d",k);

}

A10                                                                                 B18

C6                                                                                   D)数组元素引用不合法,输出结果不定

32下面各语句行中,能正确进行赋值字符串操作的是(    )。

Achar s[5]={'a','b','c','d', 'e'}; Bchar *s;gets(s);

Cchar *s;s="ABCDEF";       Dchar s[5];scanf("%s",&s);

(33)下面程序的输出结果是(    )。

#include<stdio.h>

main()

{ char a[]={'a', 'b', 'c', 'd', 'f ', 'g'},*p;

p=a;

printf("%c\n",*p+4);

}

Aa                                       Bb                                    Ce                                 Df

34下面函数的功能是(    )。

sss(s,t)

char *s,*t;

{while(*s);

while(*t)

*(s++)=*(t++);

return s;

}

A)将字符串s复制到字符串t                                  B)比较两个字符串的大小

C)求字符串的长度                                                         D)将字符串t续接到字符串s

35下列程序的运行结果是(    )。

#include<stdio.h>

void sub(int*s,int*y)

{     static int m=4;

       *y=s[m];

       m--;

}

void main()

{     int a[]={1,2,3,4,5},k;

       int x;

       printf("\n");

       for(k=0;k<=4;k++)

       {       sub(a,&x);

                printf("%d,",x);

       }

}

A5,4,3,2,1,                            B1,2,3,4,5,                     C0,0,0,0,0,                     D4,4,4,4,4,

36)设q1q2是指向一个int型一维数组的指针变量,kfloat型变量,则不能正确执行的语句是(    )。

Ak=*q1*( *q2);                    Bq1=k;                          Cq1=q2;                         Dk=*q1+*q2;

37下列程序的输出结果为(    )。

main()

{     union un

{         char *name;

int age;

int pay;

} s;

s.name="zhaoming";

s.age=32;

s.pay=3000;

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

}

A32                                       B3000                            C0                                  D)不确定

38)以下有关宏替换的叙述不正确的是(    )。

A)使用宏定义可以嵌套

B)宏定义语句不进行语法检查

C)双引号中出现的宏名不替换

D)宏名必须用大写字母表示

39下列程序执行输出的结果是(    )。

#include<stdio.h>

f(int a)

{     int b=0;

       static c=3;

       a=c++;b++;

       return(a);

}

main()

{     int a=2,i,k;

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

       k=f(a++);

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

}

A3                                         B4                                  C5                                  D6

40已知函数的调用形式fread(buffer,size,count,fp)其中buffer代表的是   

A)一个整型变量,代表要读入的数据项总数

B)一个文件指针,指向要读的文件

C)一个指针,是指向的输入数据放在内存中的起始位置

D)一个存储区,存放要读的数据项

 

二、填空题

1)数据结构分为逻辑结构与存储结构,线性链表属于 1
2)在面向对象方法中,类之间共享属性和操作的机制称为 2
3)耦合和内聚是评价模块独立性的两个主要标准,其中 3 反映了模块内各成分之间的联系。
4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 4 的联系。
5)数据库设计分为以下6个设计阶段:需求分析阶段、 5 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

6)若有定义:int a=4b=5c=6;接着顺序执行下列语句后,变量b中的值是___________

c=(a-=(b-5));

c=(a%3)+(b=1);

7)以下程序运行后的输出结果是___________

main()

{ int a,b,c;

  a=10; b=20; c=(a/b<1)&&(a%b<1);

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

}

8)以下程序运行后的输出结果是___________

#define Power2(x)  x*x

main()

{ int i=6,j=8;

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

9)以下程序中,fun函数的功能是求34列二维数组每行元素中的最大值。请填空。

void fun(int,int,int(*)[4],int *);

main()

{ int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

  fun(3,4,a,b);

  for(i=0;i<3;i++) printf("%4d",b[i]);

  printf("\n");

}

void fun(int m,int n,int ar[][4],int *br)

{  int i,j,x;

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

  {  x=ar[i][0];

    for(j=0;j<n;j++)

    if(___________)

    x=ar[i][j];

    br[i]=x;   

  }

}

10)下面程序的功能是:输出100以内能被4整除且个位数为8的所有整数,请填空。

main()

{     int i,j;

for(i=0; ___________;i++)

{         j=i*10+8;

if(j%4!=0) continue;

printf("%d",j); }

}

11)以下程序的输出结果是___________

#include<stdio.h>

fun()

{     static int a=0;

a+=3;printf("%d ",a);

}

main()

{     int cc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

12)下面程序的运行结果是___________

#include<stdio.h>

#define SIZE 12

main()

{     char s[SIZE];int i;

       for(i=0;i<SIZE;i++) s[i]='A'+i+32;

       sub(s,5,SIZE-1);

       for(i=0;i<SIZE;i++) printf("%c",s[i]);

       printf("\n");

}

sub(char *a,int t1,int t2)

{     char ch;

       while(t1<t2)

       {       ch=*(a+t1);

                *(a+t1)=*(a+t2);

                *(a+t2)=ch;

                t1++;t2--;

       }

}

13)下面程序的运行结果是___________

#include<stdio.h>

main()

{     char a[80],*p="AbabCDcd";

       int i=0,j=0;

       while(*p!='\0')

       {       if(*p>='a' && *p<='z') {a[i]=*p;i++;}

       }

       a[i]='\0';

       puts(a);

}

14)“printf("%d\n"strlen("\t\"\023\xAB\nC"));”语句的输出结果是___________

15)下面程序的运行结果是___________

#define P(a) printf("%d ",a)

main()

{     int j,a[]={1,2,3,4,5,6,7},i=5;

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

       {       switch(j)

                {       case 1:

                         case 2: P(a[i++]); break;

                         case 3: P(a[--i]);

                }

       }

}

参考答案

一、选择题

1A   2C  3D  4A  5D  6C  7B 

8C 9C 10B         11C         12A         13A         14D

15B         16A         17A         18A         19A         20A         21B

22C         23C         24B         25D         26B         27D         28C

29C         30D         31B         32B         33C         34D         35A

36B         37B         38D         39B         40C

二、填空题


1)数据的逻辑结构

2)继承关系

3)内聚性

4)多对多关系

5)概念设计阶段

61

710 20 0

862

9x<ar[i][j]

10i<10

113 6 9 12

12abcdelkjihgf

13babcd

146

155 5