二级C语言-121
(总分100,考试时间90分钟)
一、选择题
1. 下面不属于软件设计阶段任务的是______。
A. 制订软件确认测试计划        B. 数据库设计
C. 软件总体设计        D. 算法设计
2. 下面属于黑盒测试方法的是______。
A. 边界值分析        B. 路径测试
C. 语句覆盖        D. 逻辑驱动
3. 数据字典(DD)所定义的对象都包含于______。
A. 软件结构图        B. 方框图
C. 数据流图(DFD图)        D. 程序流程图
4. 以下选项中正确的整型常量是______。
A. 12.        B. -20
C. 1,000        D. 4 5 6
5. 下列运算符中优先级最高的运算符是______。
A. !        B. %
C. -=        D. &&
6. 在关系数据库中,用来表示实体间联系的是______。
A. 网状结构        B. 树状结构
C. 属性        D. 二维表
7. 下列关于栈的叙述中,正确的是______。
A. 栈底元素一定是最后入栈的元素        B. 栈操作遵循先进后出的原则
C. 栈顶元素一定是最先入栈的元素        D. 以上三种说法都不对
8. 若变量已正确定义并赋值,符合C语言语法的表达式是______。
A. a=a+7;        B. a=7+b+c,a++
C. int(12.3%4)        D. a=a+7=c+b
9. 设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为______。
A. 20        B. 0或35
C. 15        D. 16
10. 有两个关系R和S如下:          R   
       
        A              B              C       
        a              1              2       
        b              2              1       
        c              3              1       
            S   
       
        A              B              C       
        c              3              1       
  则由关系R得到关系S的操作是______。
A. 自然连接        B. 并
C. 选择        D. 投影
11. 以下叙述中正确的是______。
A. 在C语言程序中,main函数必须放在其他函数的最前面
B. 每个后缀为.C的C语言源程序都可以单独进行编译
C. 在C语言程序中,只有main函数才可单独进行编译
D. 每个后缀为.C的C语言源程序都应该包含一个main函数
12. C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是______。
A. 预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义
B. 用户标识符可以由字母和数字任意顺序组成
C. 在标识符中大写字母和小写字母被认为是相同的字符
D. 关键字可用作用户标识符,但失去原有含义
13. 以下选项中表示一个合法的常量是(说明:符号□表示空格)______。
A. 9□9□9        B. 0Xab
C. 123E0.2        D. 2.7e
14. C语言主要是借助______来实现程序模块化。
A. 定义函数        B. 定义常量和外部变量
C. 三种基本结构语句        D. 丰富的数据类型
15. 以下叙述中错误的是______。
A. 非零的数值型常量有正值和负值的区分
B. 常量是在程序运行过程中值不能被改变的量
C. 定义符号常量必须用类型名来设定常量的类型
D. 用符号名表示的常量叫符号常量
16. 若有定义和语句:int a, b; scanf("%d, %d", &a, &b);以下选项的输入数据中,不能把值3赋给变量a,5赋给变量b的是______。
A. 3,5,        B. 3,5,4
C. 3,5        D. 3,5
17. C语言中char类型数据占字节数为______。
A. 3        B. 4
C. 1        D. 2
18. 下列关系表达式中,结果为“假”的是______。
A. (3+4)>6        B. (3!=4)>2
C. 3<=4||3        D. (3<4)=1
19. 设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于______。
A. p="";        B. p="0";
C. p=0;        D. p=";
20. 下列叙述中正确的是______。
A. 可以用关系运算符比较字符串的大小
B. 空字符串不占用内存,其内存空间大小是0
C. 两个连续的单引号是合法的字符常量
D. 两个连续的双引号是合法的字符串常量
21. 设有定义:int x=0, *p;,立刻执行以下语句,正确的语句是______。
A. p=x;        B. *p=x;
C. p=NULL;        D. *p=NULL;
22. 有以下程序:
#include <stdio.h>
main()
{ int a=-2, b=0;
while(a++&&++b);
printf("%d, %d\n", a, b);
}
程序运行后的输出结果是______。
A. 1,3        B. 0,2
C. 0,3        D. 1,2
23. 设有定义:int x[2][3];,则以下关于二维数组x的叙述错误的是______。
A. x[0]可看做是由3个整型元素组成的一维数组
B. x[0]和x[1]是数组名,分别代表不同的地址常量
C. 数组x包含6个元素
D. 可以用语句x[0]=0;为数组所有元素赋初值0
24. 有以下程序:
#include<stdio.h>
int f(int x);
main()
{ int a, b=0;
for(a=0; a<3; a++)
{ b=b+f(a); putchar("A"+b); }
}
int f(int x)
{ return x*x1; }
程序运行后的输出结果是______。
A. ABE        B. BDI
C. BCF        D. BCD
25. 有以下程序:
#include <stdio.h>
main()
{ char a="H";
a=(a>="A"&&a<="Z")?(a-"A"+"a"): a;
printf("%c\n", a);
}
程序运行后的输出结果是______。
A. A        B. a
C. H        D. h
26. 若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是______。
A. switch(a+9){case c1: y=a-b;case c2: y=a+b;}
B. switch a*b{ case 10: x=a+b;default: y=a-b;}
C. switch(a+b){case1: case3: y=a+b; break;case0: case4: y=a-b;}
D. switch(a*a+b*b){default: break;case 3: y=a+b; break;case 2: y=a-b; break;}
27. 有以下程序:
#include<stdio.h>
main()
{int a[]={10, 20, 30, 40), *p=a, j;
for(i=0; i<=3; i++){a[i]=*p; p++; }
printf("%d\n", a[2]);
}
程序运行后的输出结果是______。
A. 30        B. 40
C. 10        D. 20
28. 有以下程序:
#include<stdio.h>
#define N 3
void fun(int a[][N], int b[])
{ int i, j;
for(i=0; i<N; i++)
{b[i]=a[i][0];
for(j=i; j<N; j++)
if(b[i]<a[i][j]) b[i]=a[i][j];
}
}
main()
{int x[N][N]={1, 2, 3, 4, 5, 6, 7, 8, 9}, y[N], i;
fun(x, y);
for(i=0; i<N; i++) printf("%d, ", y[i]);
printf("\n");
}
程序运行后的输出结果是______。
A. 2,4,8,        B. 3,6,9,
C. 3,5,7,        D. 1,3,5,
29. 以下叙述中错误的是______。
A. 函数的返回值类型不能是结构体类型,只能是简单类型
B. 函数可以返回指向结构体变量的指针
C. 可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D. 只要类型相同,结构体变量之间可以整体赋值
30. 以下选项中,合法的是______。
A. char str3[]={"d", "e", "b", "u", "g", "\0"};
B. char str4; str4="hello world";
C. char name[10]; name="china";
D. char str1[5]="pass", str2[6]; str2=str1;
31. 有以下程序:
#include<stdio.h>
main()
{char *s="[2]34"; int k=0, a=0;
while(s[k+1]!="\0")
字符串复制函数 { k++;
if(k%2=0){a=a+(s[k]-"0"+1); continue; }
a=a+(s[k]-"0");
}
printf("k=%d a=%d\n", k, a);
}
程序运行后的输出结果是______。
A. k=6 a=11        B. k=3 a=14
C. k=4 a=12        D. k=5 a=15
32. 有以下程序:
#include<stdio.h>
main()