2017年计算机二级C语言试题
(10)B
知识点:数据库的基本概念:数据库,数据库管理系统,数据库系统
评 析:数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,或称子模式,或称用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或称存储模式,或称物理模式,是指数据在数据库系统内的存储介质上的表示。即对数据的物理结构和存取方式的描述。
(11)C语言规定,程序中各函数之间_______。
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
(11)A
知识点:函数的递归调用
评 析:c语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。
(12)C语言中下列叙述正确的是_______。
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环,必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(12)D
知识点:do-while语句
评 析:选项A是错误的,c语言支持do-while语句;选项B是错误的,do-while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。
(13)以下选项中属于C语言的数据类型是_______。
A)复数型 B)逻辑型 C)双精度型 D)集合型
(13)C
知识点:c语言的数据类型
评 析:c语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。
(14)在C语言中,不正确的int类型的常数是_______。
A)32768 B)0 C)037 D)0xAF
(14)A
知识点:int类型的范围
评 析: c语言中int类型的常数的范围是:-32768~32767。c整常数可用三种形式表示:十进制整数,八进制整数,十六进制整数。选项A超出范围,不正确。
(15)下列描述中不正确的是_______。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
(15)C
知识点:对数组的理解
评 析: c语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选项C的说法是不正确的。
(16)以下程序的输出结果是_______。
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("%d",p[i]];
}
A)5 2 B)5 1 C)5 3 D)9 7
(16)C
知识点:通过指针引用数组元素
评 析:题中*p=&x[1][1];是指将数组x的数组元素x[1][1]的地址赋值给指针变量p,使p指向x[l][l]这个数组元素,那么p[0]即为指针变量p当前所指向的数组元素x[l][1]的值。具体执行时如下所示:
i=0时,输出p[0],也就是x[1][1],输出是5:
i=2时,输出p[2],即p[2+0],也就是x[2][0],输出是3。
(17)以下程序的运行结果是_______。
#include "stdio.h"
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("%d %d ",*p,*q);
}
A)运行后报错 B)6 6
C)6 12 D)5 5
(17)A
知识点:通过指针引用数组
评 析:题目中没有给q分配存储单元,只是简单地给它赋了一个值,所以程序的运行结果是6 ll NULL pointer assignment,也就是运行后报错。
(18)以下说法中正确的是________。
A)c语言程序总是从第一个函数开始执行
B)在C语言程序中,要调用函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)c语言程序中的main()函数必须放在程序的开始部分
(18)C
知识点: C程序的运行顺序
评 析:c语言的程序是由主函数main()开始运行,由主函数来调用其他函数,所以选项A错误;c语言中定义的函数必须是并列的,不能在一个函数中定义其他函数,选项B错误;函数必须先定义后使用,在调用函数之前要定义函数,而mmn()函数不一定要放在程序的开始部分,故选项D错误。
(19)能正确表示a和b同时为正或同时为负的逻辑表达式是________。
A)(a>=0l lb>=0)&&(a<0I lb<0) a="">=0&&b>--0)&&(a<0&&b
C)(a+b>0) &&(a+b<=0) b="">0
(19)D
知识点:对逻辑表达式的判断
评 析:逻辑表达式是指用逻辑运算符将关系表达式或逻辑量连接起来。
选项A中,表达式表示的是a,b为异号;
选项B中,表达式表示的是0,因为没有满足条件的值;
选项C中,表达式表示的是0,因为没有满足条件的值;
选项D表示的是a和b为同号。
(20)若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式是________。