国家二级C语言程序设计机试(选择题)模拟试卷5
(总分80,考试时间90分钟)
1. 选择题
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. 正确的执行测试用例
8. 下列测试方法中,(    )均属于白盒测试的方法。
A. 语句覆盖法和边界值分析法        B. 条件覆盖法和基本路径测试法
C. 边界值分析法和代码检查法        D. 等价类划分和错误推测法
9. 负责数据库中查询操作的数据库语言是(    )。
A. 数据定义语言        B. 数据管理语言
C. 数据操纵语言        D. 数据控制语言
10. 一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的(    )。
A. 记录        B. 行
C. 属性        D. 元组
11. 以下说法中正确的是(    )。
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须放在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
12. 以下叙述中正确的是(    )。
A. 在算法设计时,可以把复杂任务分解成一些简单的子任务
B. 在C语言程序设计中,所有函数必须保存在一个源文件中
C. 只要包含三种基本结构的算法就是结构化程序
D. 结构化程序必须包含所有三种基本结构,缺一不可
13. 以下叙述中正确的是(    )。
A. 字符变量在定义时不能赋初值
B. 字符常量可以参与任何整数运算
C. 同一英文字母的大写和小写形式代表的是同一个字符常量
D. 转义字符用符号开头
14. 表达式a+=a一=a:9的值是(    )。
A. 0        B. 一9
C. 18        D. 9
15. 以下各项中,当x为大于1的奇数时,值为0的表达式是(    )。
A. x%2==0        B. x/2
C. x%2!=0        D. x%2==1
16. 若有定义语句:int x=12,y=8,Z;在其后执行语句:z=0.9+x/y;则z的值为(    )。
A. 1        B. 1.9
C. 2        D. 2.4
17. 有以下程序段:    int m=33,n=66;    m=m^n;n=n^m;m=m^n;执行上述语句后,m和n的值分别是(    )。
A. m=66,n=33        B. m=33,n=66
C. m=66,n=66        D. m=33,n=33
18. 设有定义:double x=2.12;,以下不能完整输出变量X值的语句是(    )。
A. prinff(“x=%5.0f\n”,x);
B. prinff(“x=%f\n”,x);
C. prinff(“x=%lf\n”,x);
D. prinff(“x=%0.5f\n”,x);
19. 有以下程序:    #include    main()    {    int x=1,y=0;    if(!x)y++;    else if(X==0)    if(x)y+=2;    else y+=3;    prinff(“%d\n”,y);  }程序运行后的输出结果是(    )。
A. 0        B. 2
C. 1        D. 3
20. 有以下程序:  #include  void fun(int*P,int*q)  {    P=P+1;*q=*q+1;  }  main()  {    int m=1,n=2,*r=&m;    fun(r,&n);    printf(“%d,%d\n”,m,n);  }程序运行后的输出结果是(    )。
A. 1,3        B. 2,3
C. 1,4        D. 1,2
21. 有以下程序:  #include  #define S(x)x*x  void main()  {    int k-5,j=2;    prinff(“%d,%d\n”,S(k+j+2),S(+k+2));  }程序的运行结果是(    )。
A. 21.18        B. 81,81
C. 21,21        D. 18.18
22. 有以下程序#includemain(){  int i=1;  for(printf(“%d”,i);i<4;i++)    printf(“%d”,i);  printf(“\n”);}程序运行后的输出结果是(    )。
A. 0123        B. 123
C. 1123        D. 001
23. 有以下程序:#includemain(){  int i,array[6]={1,5,0,4};  for(i=0;i<5;i++)  printf(“%d”,array[i]);  printf(“\n”);}程序运行后的输出结果是(    )。
A. 0 4 0 4 0        B. 1 5 0 4 0
C. 1 5 5 4 0        D. 1 2 1 2 0
24. 以下数组定义中错误的是(    )。
A. int x[2][3]={1,2,3,4,5,6};
B. int X[][3]={0};
C. int x[][3]={{1,2,3},{4,5,6}};
D. int x[2][3]={{1,2},{3,4},{5,6}};
25. C语言程序中,运算对象必须是整型数的运算符是(  )。
A. &&        B. /
C. %        D. *
26. 对于函数声明: void fun(float array[],int*ptr);    以下叙述中正确的是(    )。
A. 函数参数array、ptr都是指针变量
B. 函数声明有语法错误,参数array缺少数组大小定义
C. 调用函数时,array数组中将存储从实参中复制来的元素值
D. 调用函数时,array数组的元素和ptr都是按值传送
27. 下列定义数组的语句中,正确的是(    )。
A. int x[];        B. int N=10;int X[N];
C. int X[0…10];        D. #define N 10 int x[N];
28. 有以下程序:  #include  main()  {    int b [3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;    for(i=0;i<3;i++)    for(j=i;j<=i;j++)    t+=b[i][j];    printf(“%d\n”,t);    }程序运行后的输出结果是(    )。
A. 4        B. 3
C. 1        D. 9
29. 有以下程序段:    int x,i;    for(i=1;i<=100;i++)    {  scanf(“%d”,&x);    if(x<0)co
ntinue;    printf(“%4d\n”,x);    }下列各项中,针对上述程序段的描述正确的是(    )。
A. 最多可以输出100个非负整数        B. 当x<0时结束整个循环
C. 当x>=0时没有任何输出        D. printf函数调用语句总是被跳过
30. 有以下程序:    #include    #define N 4    void fun(int a[][N])    {    int i;    for(i=0;i<N;i++)    a[0][i]+=a[N一1][N一1一i];    }    void main()    {int X[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i;    fun(x);    for(i=0;i<N;i++)    printf(“%d”,x[i][i]);  printf(“\n”);}程序运行后的输出结果是(    )。
A. 17 6 11 16        B. 1 6 11 16
C. 4 7 10 13        D. 5 13 21 29
31. 有以下程序:#includeint a=1,b=2;void funl(int a,int b){  printf(“%d%d”,a,b);}void flun2(){  a=3;b=4;}main(){  funl(5,6);fun2();  printf(“%d%d\n”,a,b);}程序运行后的输出结果是(    )。
A. 5 6 3 4        B. 3 4 5 6
C. 1 2 5 6        D. 5 6 1 2
32. 有以下程序:#includevoid fun(char*a,char*b){  while(*a=='*')a++;  while(*b=*a)    {b++;a++;}    }    main()    {    char  *s=“*****a*b*****”.t[80];    fun(s,t);puts(t);    }    程序的运行结果是(    )。
A. a*b****        B. a*b
C. *****a*b        D. ab
33. 以下叙述中正确的是(    )。
printf函数输出整数时不能使用A. 语句P=NULL;执行后,指针P指向地址为0的存储单元
B. 指针变量只能通过求地址运算符&来获得地址值
C. 语句P=NULL;与P=\0;是等价的语句
D. int*p1;、int*p2;、int*p3;都是合法的定义指针变量的语句
34. 设有定义:int a=64,b=8;,则表达式(a&&b)和(a I b)&&(a I I b)的值分别为(    )。
A. 1和1        B. 1和0
C. 0和1        D. 0和0
35. 有以下程序:    #include    main()    {    int a=2,c=5;    printf(“a=%%d,b=%%d\n”,a,c);}程序的输出结果是(    )。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。