二级C语言笔试318
(总分100, 做题时间90分钟)
一、选择题
   在下列各题的A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。
1. 
结构化程序设计主要强调的是
A 程序的规模
B 程序的效率
C 程序设计语言的先进性
D 程序易读性
    分值: 2
答案:D
[解析] 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。
2. 
若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A (exp==0)
B (exp!=0)
C (exp==1)
D (exp!=1)
    分值: 2
答案:B
[解析] 条件运算符要求有3个操作对象,称三日(元)运算符,它是C语言中唯一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3。
   其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值,注意++、--的用法。
3. 
将E-R图转换到关系模式时,实体与联系都可以表示成
A 属性
B 关系
C 键
D 域
    分值: 2
答案:B
[解析] 关系数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。
4. 
下面判断正确的是
A char*a="china";等价于char*a;*a="china";
B char str[5]={"china"};等价于char str[]={"china"};
C char *s="china";等价于char *s;s="china";
D char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";
    分值: 2
答案:C
[解析] 选项A) char *a;*a=“china”应改为a=china;,选项B) 应该是char str[6];D) 项表述方法有错误。
5. 
下列有关数据库的描述,正确的是
A 数据处理是将信息转化为数据的过程
B 数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
C 关系中的每一列称为元组,一个元组就是一个字段
D 如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
    分值: 2
答案:D
[解析] 数据处理是指将数据转换成信息的过程,故选项A) 叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B) 叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C) 叙述错误。
6. 
有以下程序段    char  ch;    int  k;    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
    分值: 2
答案:D
[解析] 输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12。
7. 
下列选项中,不属于模块间耦合的是
A 数据耦合
B 标记耦合
C 异构耦合isalpha 函数
D 公共耦合
    分值: 2
答案:C
[解析] 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据
耦合和非直接耦合,没有异构耦合这种方式。
8. 
若有以下说明和定义    union dt    {int a;char b;double c;}data;    以下叙述中错误的是
A data的每个成员起始地址都相同
B 变量data所占内存字节数与成员c所占字节数相等
C 程序段:data=5;printf("%f\n",dat;输出结果为5.000000
D data可以作为函数的实参
    分值: 2
答案:D
[解析] 选项A) ,共用体的每个成员的起始地址都相同;选项B) ,共用体变量所占的内存长度等于最长的成员的长度;选项C) 因为每个成员的起始地址相同,所以整型数5以浮点型输出时为5.000000;选项D) C语言规定,不能把共用体变量作为函数的参数。
9. 
若已定义    int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;    其中0≤i≤9,则对a数组元素不正确的引用是
A a[p-a]
B *(&
C p
D a[10]
    分值: 2
答案:D
[解析] 通常,引用一个数组元素可以用下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式。本题中 a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。
10. 
下列可用于C语言用户标识符的一组是
A void,define,WORD
B a3_b3,_123,Car
C For,-abc,IF Case
D 2a,DO,sizeof
    分值: 2
答案:B
[解析] C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C) 和D) ;C语言中还规定标识符不能为C语言的关键字,而选项A) 中void为关键字,故排除选项A) 。
11. 
若变量均已正确定义并赋值,以下合法的C语言赋值语句是
A x=y==5;
B x=n%2.5;
C x+n=i;
D x=5=4+1;
    分值: 1
答案:A
[解析] 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项C) 和D) 错误。“%”运算符两侧都应当是整型数据,选项B) 错误。
12. 
当变量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)
    分值: 1
答案:B
[解析] 满足表达式(c>=2&&c<=6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和c!=5中至少有一个为真,即不论c为何值,选项B中的表达式都为“真”。
13. 
下列程序执行后的输出结果是    void func(int *a,int b[])    {  b[0]=  *a+6;  }      main()    {  int a,b[5];      a=0;  b[0] =3;      func(&a,b);printf("%d\n",b[0]);}
A 6
B 7
C 8
D 9
    分值: 1
答案:A
[解析] 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值也将随之发生变化。
14. 
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是
A 快速排序
B 冒泡排序
C 直接插入排序
D 堆排序
    分值: 1
答案:D

[解析] 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为n(n-1)/2,堆排序需要的比较次数为nlog2n。
15. 
有如下程序    main()    {  char ch[2][5]={"6937","8254"},*p[2];      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'; j+=2)          s=10*s+p[i][j]-'0';    printf("%d\n",s);}    该程序的输出结果是

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