版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年计算机计算机二级Access数据库程序设计-C语言程序设计参考题库含答案解析一、单选题(共35题)1.在C语言中,以下关于指针初始化的语句,正确的是()。【选项】A.`int*p=1000;`B.`int*p;*p=10;`C.`inta[5];int*p=a;`D.`int*p=(int*)malloc(sizeof(int));*p=NULL;`【参考答案】C【解析】A错误,不能直接将整数值赋给指针(除非强制类型转换且地址合法)。B错误,未初始化指针`p`直接解引用赋值会导致未定义行为(野指针)。C正确,数组名`a`是首元素地址,可合法赋值给指针`p`。D错误,`*p=NULL`试图将`NULL`(空指针值)赋给`int`类型变量,类型不匹配。2.在SQL查询中,以下关于`GROUPBY`和`HAVING`的描述,错误的是()。【选项】A.`GROUPBY`用于按指定列分组聚合数据。B.`HAVING`子句可对聚合后的结果进行筛选。C.`WHERE`子句可以在分组前过滤行,而`HAVING`在分组后过滤组。D.`HAVING`子句的条件中不能使用聚合函数。【参考答案】D【解析】A正确,`GROUPBY`实现分组聚合。B正确,`HAVING`筛选分组后的结果集。C正确,`WHERE`在分组前过滤,`HAVING`在分组后过滤。D错误,`HAVING`子句的条件中必须使用聚合函数(如`SUM()`、`COUNT()`)。3.下列C语言代码片段执行后,变量`n`的值是()。```cintm=5,n=0;n=m+++++m;```【选项】A.10B.11C.12D.未定义行为【参考答案】D【解析】由于表达式中对变量`m`进行了多次自增操作(`m++`和`++m`),且未定义求值顺序(C语言标准未规定子表达式的计算顺序),导致结果依赖编译器实现,属于未定义行为(UndefinedBehavior)。4.在Access数据库中,若要从两个关联表中查询所有左表记录及匹配的右表记录,应使用的连接类型是()。【选项】A.内连接(INNERJOIN)B.左外连接(LEFTJOIN)C.右外连接(RIGHTJOIN)D.全外连接(FULLJOIN)【参考答案】B【解析】A仅返回两表匹配的记录;B返回左表全部记录及匹配的右表记录;C返回右表全部记录及匹配的左表记录;D返回两表所有记录(含不匹配部分)。根据题意要求“所有左表记录”,应选左外连接。5.以下C语言宏定义中,可能引发副作用的是()。【选项】A.`#definePI3.14159`B.`#defineMAX(a,b)((a)>(b)?(a):(b))`C.`#defineSQUARE(x)(x)*(x)`D.`#definePRINT(msg)printf("%s\n",msg)`【参考答案】C【解析】A仅为常量替换,无副作用。B和D虽为带参宏,但参数无重复计算风险。C中`SQUARE(x)`若调用`SQUARE(i++)`,会展开为`(i++)*(i++)`,导致`i`被多次自增,产生不可预期结果。6.在Access中,若要在窗体加载时自动执行某项操作,应使用的事件是()。【选项】A.OnOpenB.OnLoadC.OnCurrentD.OnActivate【参考答案】B【解析】A.OnOpen在窗体打开时触发(早于OnLoad);B.OnLoad在窗体加载数据时触发,适用于初始化操作;C.OnCurrent在切换窗体记录时触发;D.OnActivate在窗体获得焦点时触发。7.以下C语言程序段输出结果是()。```cstructStudent{charname[20];intage;};printf("%d",sizeof(structStudent));```(假设`int`占4字节,`char`占1字节,无内存对齐要求)【选项】A.20B.24C.22D.取决于编译器【参考答案】D【解析】结构体的总大小受内存对齐规则影响。若不考虑对齐,大小为`20+4=24`字节。但题目假设“无内存对齐要求”,理论上应为24字节(选B),但实际标准中编译器仍可能有默认对齐,故严格答案为D,强调编译器和平台依赖性。8.在Access查询设计器中,以下关于“总计”行的描述,正确的是()。【选项】A.只能对数字类型字段使用聚合函数。B.“GroupBy”表示按该字段分组。C.“Where”用于在分组后过滤条件。D.可以同时使用“GroupBy”和“表达式”聚合。【参考答案】B【解析】A错误,文本字段也可用`Count()`等聚合函数;B正确,“GroupBy”即分组依据;C错误,“Where”在分组前过滤,对应SQL中`WHERE`子句;D错误,“GroupBy”字段不能与聚合函数并存于同一字段的“总计”行。9.下列C语言代码执行后,`arr[3]`的值是()。```cintarr[]={1,2,3,4,5};int*p=arr+2;*(p+1)=10;```【选项】A.3B.4C.10D.越界访问【参考答案】C【解析】`p`指向`arr[2]`(值为3),`p+1`指向`arr[3]`。`*(p+1)=10`将`arr[3]`修改为10。未越界(数组长度为5,下标3合法)。10.在数据库中,关于主键和外键约束的描述,错误的是()。【选项】A.主键必须唯一且非空。B.外键用于引用其他表的主键。C.一个表可以有多个外键约束。D.外键列的值必须与主键列完全匹配,且不允许为空。【参考答案】D【解析】A正确,主键约束要求唯一且非空;B正确,外键建立表间引用关系;C正确,表可定义多个外键;D错误,外键列的值可以为`NULL`(表示未关联),且若允许为空则不要求完全匹配。11.关于Access查询条件的设置,若在“学生表”中要查找“姓名”字段以“张”开头且姓名长度为2个字符的记录,下列条件表达式正确的是?【选项】A.Like"张?"ANDLen([姓名])=2B.Like"张*"ANDLen([姓名])=2C.Like"张#"ANDLen([姓名])=2D.Left([姓名],1)="张"ANDLen([姓名])=2【参考答案】A【解析】1.Access中通配符“?”表示单个字符,“*”表示任意长度的字符,“#”表示单个数字。2.题干要求以“张”开头且长度为2,“张?”可匹配“张”后接1个字符(总长度2),而“张*”会匹配所有以“张”开头的记录,不限制长度。3.Len函数验证长度,D选项虽逻辑正确但效率低于通配符查询。12.以下C语言程序的输出结果是什么?```c#includeintmain(){intx=5,y=0;y=x+++++x;printf("%d",y);return0;}```【选项】A.10B.11C.12D.未定义行为【参考答案】D【解析】1.表达式`x+++++x`包含多个副作用(x的自增),C语言标准规定同一变量在同一表达式中的多次修改行为未定义。2.实际结果可能因编译器而异,但根据规范应选D而非具体数值。13.Access中若要在窗体命令按钮的单击事件中打开“学生信息”报表,VBA代码应如何编写?【选项】A.DoCmd.OpenForm"学生信息"B.DoCmd.OpenReport"学生信息"C.DoCmd.RunMacro"学生信息"D.DoCmd.OpenQuery"学生信息"【参考答案】B【解析】1.OpenReport方法用于打开报表,OpenForm用于窗体,OpenQuery用于查询,RunMacro用于宏。2.题干明确要求打开报表,故选B。14.C语言中,以下关于结构体的描述错误的是?【选项】A.结构体成员可以是不同数据类型B.结构体变量可以直接用“=”整体赋值C.结构体定义时不能包含自身类型的成员D.结构体可以嵌套定义【参考答案】C【解析】1.C选项错误:结构体可通过指针包含自身类型(如链表节点定义)。2.A、B、D均为结构体基本特性:异质数据、直接赋值(C99后)、嵌套定义均合法。15.在Access参数查询中,若要提示用户输入“起始日期”,条件表达式应写为?【选项】A.[请输入起始日期]B.>=[请输入起始日期]C.Between[请输入起始日期]And[结束日期]D.>#请输入起始日期#【参考答案】B【解析】1.参数查询格式为方括号内输入提示文字,A缺少运算符无法比较日期。2.B正确匹配“大于等于用户输入值”,C需双参数,D语法错误(提示文本不应含#)。16.以下C语言代码段的输出结果是什么?```c#include#defineSQ(x)x*xintmain(){inta=3;printf("%d",SQ(a+1));return0;}```【选项】A.16B.10C.7D.编译错误【参考答案】C【解析】1.宏展开为`a+1*a+1`,即`3+1*3+1=7`。2.宏参数未加括号导致运算符优先级问题,正确答案为C而非A(若写成`(x)*(x)`则为16)。17.Access中要将“成绩表”按“课程号”分组并计算每门课平均分,应使用何种查询?【选项】A.选择查询B.交叉表查询C.操作查询D.总计查询【参考答案】D【解析】1.总计查询通过“总计”行实现分组聚合(如GroupBy和Avg函数)。2.交叉表查询需行/列标题,操作查询用于增删改,选择查询无聚合功能。18.以下C语言程序段的输出结果是什么?```c#includevoidswap(inta,intb){intt=a;a=b;b=t;}intmain(){intx=5,y=10;swap(x,y);printf("%d%d",x,y);return0;}```【选项】A.510B.105C.55D.1010【参考答案】A【解析】1.swap函数使用值传递,形参修改不影响实参x、y的值。2.输出保持原值5和10,正确答案为A。19.Access中若要防止“年龄”字段输入负数,应设置的属性是?【选项】A.默认值B.有效性规则C.输入掩码D.必填字段【参考答案】B【解析】1.有效性规则用于约束数据范围(如`>=0`可限制非负数)。2.输入掩码控制格式(如日期),默认值设置初始值,必填字段仅检查非空。20.C语言中,已知`inta[3][4];`,以下对数组元素的引用错误的是?【选项】A.*(a[0]+2)B.*(*(a+1)+2)C.a[1,2]D.(*(a+1))[2]【参考答案】C【解析】1.C选项错误:多维数组应使用`a[1][2]`而非`a[1,2]`(逗号表达式返回后值)。2.A、B、D均合法:A等价于a[0][2],B和D等价于a[1][2]。21.在C语言中,若定义`inta[5]={1,3,5};`,`int*p=a;`,则执行`p+=2;`后`*p`的值是?【选项】A.1B.3C.5D.编译错误【参考答案】C【解析】1.数组`a`初始化为`{1,3,5,0,0}`,未显式赋值的元素默认为0。2.指针`p`初始指向`a[0]`(值为1),`p+=2`使指针偏移至`a[2]`(值为5)。3.`*p`解引用后结果为5。选项C正确。22.在Access数据库中,用于匹配任意单个字符的通配符是?【选项】A.`*`B.`#`C.`?`D.`[]`【参考答案】C【解析】1.`*`匹配任意长度字符(包括空字符)。2.`?`匹配单个字符(如`a?c`可匹配"abc")。3.`#`匹配单个数字。4.`[]`匹配指定范围内的字符(如`[a-z]`)。根据题意,选项C正确。23.以下C语言表达式执行后,`y`的值是?```cintx=5,y;y=x/2.0+3*2;```【选项】A.8B.8.5C.9D.9.5【参考答案】D【解析】1.`x/2.0`为浮点除法,结果为2.5;`3*2`为整型乘法,结果为6。2.浮点数与整数相加隐式转换为浮点数,结果9.5赋值给`y`(若`y`为整型则截断为9,但此处未声明类型,假设题目中`y`为浮点类型)。3.选项D正确。24.在Access查询条件中,筛选“出生日期”在2000年1月1日至2010年12月31日之间的记录,正确的表达式是?【选项】A.`Between"2000-01-01"And"2010-12-31"`B.`>=2000-01-01And<=2010-12-31`C.`Between#2000-01-01#And#2010-12-31#`D.`>=#2000-01-01#And<=#2010-12-31#`【参考答案】C【解析】1.Access日期字段需用`#`包围日期值,选项A/B错误(A用引号,B无符号)。2.`Between...And`是闭区间语法,等价于选项D的逻辑表达式,但更简洁。选项C正确。25.以下C语言代码输出结果是?```cstruct{chara;intb;charc;}s;printf("%d",sizeof(s));```(假设系统为32位,int占4字节,char占1字节)【选项】A.6B.12C.9D.1【参考答案】B【解析】1.结构体内存对齐规则:成员按最大对齐数(int为4字节)对齐。2.`chara`占1字节,后补3字节对齐;`intb`占4字节;`charc`占1字节,后补3字节对齐。3.总大小为1+3+4+1+3=12字节,选项B正确。26.在Access窗体设计中,不能绑定数据源的控件是?【选项】A.文本框B.标签C.列表框D.组合框【参考答案】B【解析】1.标签控件(Label)仅用于静态文本展示,无法直接绑定数据源。2.文本框、列表框、组合框均可通过“控件来源”绑定字段或表达式。选项B正确。27.C语言函数`fseek(fp,10L,SEEK_SET);`的作用是?【选项】A.将文件指针从当前位置向后移动10字节B.将文件指针从文件末尾向前移动10字节C.将文件指针定位到距文件开头10字节处D.读取文件前10字节的内容【参考答案】C【解析】1.`fseek`函数的第二个参数为偏移量(10L),第三个参数`SEEK_SET`表示文件起始位置。2.综合作用是将文件指针定位到距开头10字节处,选项C正确。28.Access查询中,统计“成绩”字段中大于90分的学生人数,正确的SQL语句是?【选项】A.`SELECTSUM(*)FROM学生表WHERE成绩>90;`B.`SELECTCOUNT(*)FROM学生表WHERE成绩>90;`C.`SELECTCOUNT(成绩)FROM学生表HAVING成绩>90;`D.`SELECTTOTAL(成绩)FROM学生表WHERE成绩>90;`【参考答案】B【解析】1.`COUNT(*)`统计符合条件的记录数,`WHERE`子句筛选条件,选项B正确。2.A错误:`SUM`计算数值和;C错误:`HAVING`需搭配分组使用;D错误:无`TOTAL`函数。29.C语言中,以下宏定义可能导致表达式计算错误的是?```c#defineMUL(a,b)a*b```【选项】A.`MUL(2,3)`B.`MUL(1+2,3+4)`C.`MUL((2),(3))`D.`MUL(4,5)`【参考答案】B【解析】1.宏展开为字面替换:`MUL(1+2,3+4)`展开为`1+2*3+4`(运算顺序为`2*3=6`,然后`1+6+4=11`)。2.预期结果为`3*7=21`,但因未加括号导致错误计算。需定义为`#defineMUL(a,b)(a)*(b)`以避免此类问题。选项B正确。30.在Access中,若要在窗体上显示多表关联数据,应首先确保这些表之间已建立?【选项】A.索引B.查询C.关系D.主键【参考答案】C【解析】1.多表数据的关联展示需基于表间的预设关系(Relationships),否则无法直接绑定窗体数据源。2.主键和索引是关系的组成部分,但非充分条件;查询是数据提取工具,不直接决定窗体关联性。选项C正确。31.在Access数据库中,下列关于"文本"数据类型和"备注"数据类型的描述中,正确的是:【选项】A.两者均可存储任意长度的文本内容B."文本"字段最多存储255个字符,"备注"字段最多存储65,535个字符C."备注"字段可存储多媒体数据,而"文本"字段仅支持纯文本D."文本"字段支持格式设置,而"备注"字段不支持【参考答案】B【解析】1.选项A错误,"文本"字段最多存储255个字符,无法存储任意长度内容。2.选项B正确,根据Access规范,"文本"类型限制为255字符,"备注"类型可存储约6.5万字符。3.选项C错误,备注字段仅支持文本数据,不存储多媒体文件。4.选项D错误,两者均支持基础格式设置,但都无法实现复杂格式(如RTF需用"富文本"类型)。32.在Access查询设计中,若要在"条件"行设置"年龄在20到30之间"的筛选规则,正确的表达式是:【选项】A.Between20And30B.Between20To30C.20<=Age<=30D.In(20,30)【参考答案】A【解析】1.选项A正确,Access中范围查询规范语法为"Between[下限]And[上限]"。2.选项B错误,关键字"To"在VBA中使用,查询条件不可混用。3.选项C错误,Access表达式不支持连续不等式语法。4.选项D错误,"In"用于离散值匹配,不适用于连续区间。33.下列关于Access主键的叙述中,错误的是:【选项】A.主键字段不允许出现Null值B.一个表只能设置一个主键C.主键可由多个字段联合构成D.主键值必须在整个表中唯一【参考答案】B【解析】1.选项A正确,主键具有"非空"约束特性。2.选项B错误,单一主键或复合主键均只算作一个主键(尽管复合主键含多字段)。3.选项C正确,联合主键是常见设计方式。4.选项D正确,主键核心特性是唯一标识记录。34.执行SQL语句:`UPDATE学生SET奖学金=奖学金*1.1WHERE成绩>=90;`会引发哪种操作?【选项】A.删除成绩≥90的学生记录B.创建含新奖学金数据的临时表C.将成绩达标学生的奖学金提高10%D.对奖学金字段建立索引【参考答案】C【解析】1.UPDATE语句用于修改数据,选项C准确描述其操作逻辑。2.选项A是DELETE语句功能,与本题无关。3.选项B属于SELECTINTO查询特性。4.选项D需使用CREATEINDEX语句实现。35.在Access窗体设计中,要实现"单击按钮后打开指定报表",需在按钮属性中设置:【选项】A.格式→控件提示文本B.事件→单击→宏或事件过程C.数据→默认值D.其他→名称【参考答案】B【解析】1.控件交互功能通过事件属性实现,选项B正确选择"单击"事件。2.选项A用于设置鼠标悬停提示文本,无关功能触发。3.选项C用于数据绑定控件的初始值设定。4.选项D为控件命名属性,不涉及行为逻辑。二、多选题(共35题)1.在C语言中,关于动态内存分配函数的描述,以下说法正确的有:【选项】A.`malloc`函数分配的内存空间未初始化,存储随机值B.`calloc`函数会自动将分配的内存初始化为0C.`realloc`函数只能扩大已分配内存空间的大小,无法缩小D.使用`free`函数释放内存后,指针会自动变为`NULL`E.`malloc(sizeof(int)*10)`与`calloc(10,sizeof(int))`分配的内存空间大小相同【参考答案】A、B、E【解析】1.**A正确**:`malloc`仅分配指定大小的内存,不初始化内容,存储随机值。2.**B正确**:`calloc`分配内存时会将每个字节初始化为0。3.**C错误**:`realloc`既可扩大内存也可缩小,通过调整原有空间实现。4.**D错误**:`free`仅释放内存,不会修改指针值,需手动将指针置为`NULL`。5.**E正确**:两种写法均分配10个`int`型变量的空间,大小为`40`字节(假设`int`为4字节)。2.下列关于Access数据库中查询类型的描述,正确的有:【选项】A.选择查询可用于汇总数据并生成总计项B.操作查询会永久修改表中的数据C.交叉表查询的结果可以编辑修改D.参数查询运行时需手动输入条件值E.SQL查询只能用SQL语句直接创建【参考答案】A、B、D【解析】1.**A正确**:选择查询支持分组、总计(如求和、计数)功能。2.**B正确**:操作查询(如删除、更新)会实际修改数据。3.**C错误**:交叉表查询结果为只读视图,不可编辑。4.**D正确**:参数查询运行时弹出对话框要求输入参数值。5.**E错误**:SQL查询可通过设计视图生成并自动转为SQL语句,无需手动编写。3.在C语言中,以下关于数组和指针的描述,正确的有:【选项】A.数组名是一个常量指针,指向数组首元素B.`int*p=arr;`与`int*p=&arr[0];`等价C.`*(arr+2)`和`arr[2]`访问的是同一元素D.对数组名`arr`使用`sizeof`运算符可得到数组总字节数E.指针变量可通过自增操作遍历数组【参考答案】A、B、C、D、E【解析】1.**A正确**:数组名是首元素地址的常量表示,不可修改。2.**B正确**:两种写法均将指针指向数组首元素。3.**C正确**:指针偏移与下标访问等价,均访问第三个元素。4.**D正确**:`sizeof(arr)`返回数组总字节数(如`intarr[5]`返回`20`)。5.**E正确**:`p++`可使指针指向下一元素,适用于遍历。4.关于Access中的表关系与参照完整性,以下说法正确的有:【选项】A.一对一关系要求两个表的主键字段相同B.设置“级联更新”后,主表主键值修改时从表自动同步C.“级联删除”可能因数据约束导致操作失败D.两表间建立关系需至少一个公共字段E.参照完整性规则要求从表中外键值必须存在于主表主键中【参考答案】B、D、E【解析】1.**A错误**:一对一关系只需两表公共字段关联,无需主键相同。2.**B正确**:级联更新确保主表主键值修改时从表关联字段同步更新。3.**C错误**:级联删除会强制执行删除,可能违反其他约束(如触发器)。4.**D正确**:建立关系必须基于公共字段(如主键与外键)。5.**E正确**:参照完整性强制从表外键值必须在主表主键中存在。5.C语言中以下关于预处理指令的描述,正确的有:【选项】A.`#include`优先在系统目录搜索文件B.`#definePI3.14`定义了常量`PI`,可在编译时替换C.`#ifdef`用于检查宏是否已定义D.`#pragmaonce`是标准C语言支持的跨平台头文件保护指令E.`#undef`可取消已定义的宏【参考答案】A、B、C、E【解析】1.**A正确**:`<>`优先搜索系统路径,`""`优先搜索当前目录。2.**B正确**:`#define`定义的宏在预处理阶段替换。3.**C正确**:`#ifdef`用于条件编译,判断宏是否存在。4.**D错误**:`#pragmaonce`是编译器扩展指令,非C语言标准。5.**E正确**:`#undef`用于取消宏定义(如`#undefPI`)。6.在Access中,以下关于窗体控件的描述,正确的有:【选项】A.文本框控件只能绑定表字段,不可显示计算表达式结果B.组合框支持用户从下拉列表选择或手动输入值C.命令按钮的单击事件可关联VBA宏或模块D.选项组用于绑定多个互斥的单选按钮E.子窗体控件可显示与主窗体关联的另一表数据【参考答案】B、C、D、E【解析】1.**A错误**:文本框可绑定字段,也可通过表达式显示计算结果(如`=Sum([价格])`)。2.**B正确**:组合框兼具输入和列表选择功能。3.**C正确**:命令按钮事件可绑定宏或VBA代码。4.**D正确**:选项组中的单选按钮互斥,仅能选一项。5.**E正确**:子窗体用于显示主窗体关联的子表数据(如订单与订单详情)。7.C语言中以下关于结构体的描述,正确的有:【选项】A.结构体成员默认按字节对齐存储B.`typedefstruct{...}Node;`定义后可直接使用`Node`声明变量C.结构体变量可作为函数参数传递D.结构体成员可以是另一个结构体类型E.结构体名和结构体变量名可相同【参考答案】B、C、D【解析】1.**A错误**:默认对齐方式与编译器相关,通常按成员大小对齐。2.**B正确**:`typedef`为结构体定义了别名`Node`,可直接使用。3.**C正确**:结构体变量支持值传递与指针传递。4.**D正确**:结构体允许嵌套定义(如`structA{structBb;}`)。5.**E错误**:结构体名与变量名属于同一作用域,不可同名。8.在Access中,以下关于报表功能的描述,正确的有:【选项】A.报表可对数据进行排序和分组统计B.报表页眉内容仅在首页显示C.页面页脚可用于显示页码或打印日期D.报表必须绑定数据源才能显示数据E.子报表可嵌入主报表中显示关联数据【参考答案】A、C、E【解析】1.**A正确**:报表支持按字段分组、排序及添加汇总计算。2.**B错误**:报表页眉在所有页顶部显示,首页显示报表页眉+页面页眉。3.**C正确**:页面页脚常用于页码(如`="Page"&[Page]`)。4.**D错误**:未绑定数据源的报表可通过VBA动态加载数据。5.**E正确**:子报表可嵌入主报表,实现主从数据展示(如客户与订单)。9.C语言中以下关于文件操作的描述,正确的有:【选项】A.`fopen`的`"w+"`模式允许读写文件,若文件存在则清空内容B.`fseek`函数可将文件指针移动到任意位置C.`feof`函数在读取到文件末尾时立即返回真D.`fprintf`可向文件写入格式化数据E.文本文件与二进制文件的读写效率相同【参考答案】A、B、D【解析】1.**A正确**:`"w+"`打开可读写文件,若存在则清空,否则新建。2.**B正确**:`fseek(FILE*fp,offset,SEEK_SET)`支持绝对定位。3.**C错误**:`feof`仅在尝试读取超出末尾后返回真,而非读到末尾时。4.**D正确**:`fprintf(fp,"%d",num)`将格式化数据写入文件。5.**E错误**:二进制文件无需编码转换,读写效率通常高于文本文件。10.在Access中,以下关于SQL查询的描述,正确的有:【选项】A.`SELECTDISTINCT`可去除查询结果的重复行B.`GROUPBY`子句必须搭配聚合函数使用C.`HAVING`子句用于筛选分组后的数据D.`UPDATE`语句可修改多条记录E.`INNERJOIN`仅返回两表中匹配条件的记录【参考答案】A、C、D、E【解析】1.**A正确**:`DISTINCT`关键字消除重复行。2.**B错误**:`GROUPBY`可单独使用(如按字段分组显示唯一值)。3.**C正确**:`HAVING`对聚合结果过滤(如`HAVINGCOUNT(*)>5`)。4.**D正确**:`UPDATE`可通过`WHERE`条件批量修改记录。5.**E正确**:内连接仅返回两表匹配记录,非匹配记录被排除。11.C语言中以下关于类型转换的描述,正确的有:【选项】A.隐式转换中,`int`与`float`运算时`int`转为`float`B.强制转换`(int)3.14`的结果为`3`C.`char`型数据与`int`型运算时必先转为`ASCII`码D.无符号数参与运算时可能产生溢出错误E.`sizeof('a')`的结果为1(`char`类型占1字节)【参考答案】A、B、D【解析】1.**A正确**:运算时低精度类型(`int`)向高精度(`float`)自动转换。2.**B正确**:强制转换浮点数为整数时直接截断小数部分。3.**C错误**:`char`与`int`运算按整型提升规则转换(如`char`转为`int`)。4.**D正确**:无符号数运算溢出时会回绕(如`0-1`变为最大值)。5.**E错误**:`sizeof('a')`在C中返回`int`大小(通常4字节),C++中为1字节。12.关于Access中的查询类型,下列说法正确的有:A.选择查询是最常见的查询类型,用于从一个或多个表中检索数据B.追加查询可将数据从一个表复制到另一个已有表结构的表中C.交叉表查询必须同时指定行标题、列标题和值三个字段D.更新查询能够修改表中符合条件记录的字段值【选项】A.选择查询是最常见的查询类型,用于从一个或多个表中检索数据B.追加查询可将数据从一个表复制到另一个已有表结构的表中C.交叉表查询必须同时指定行标题、列标题和值三个字段D.更新查询能够修改表中符合条件记录的字段值【参考答案】ABD【解析】A正确:选择查询是Access中最基础且常用的查询类型,用于筛选和展示数据。B正确:追加查询实现将源表数据追加到目标表,要求目标表结构需兼容。C错误:交叉表查询中行标题和列标题必须指定,但值字段可为空(例如用于统计计数时可不选特定值字段)。D正确:更新查询通过条件定位记录并对指定字段执行批量修改操作。13.在C语言中,关于指针和数组的关系,以下描述正确的是:A.数组名是一个指向数组首元素的常量指针B.对数组名使用sizeof运算符可得到数组所有元素占用的总字节数C.指针变量可通过自增运算遍历数组元素D.表达式`a+1`和`&a+1`的结果相同(假设a为一维整型数组)【选项】A.数组名是一个指向数组首元素的常量指针B.对数组名使用sizeof运算符可得到数组所有元素占用的总字节数C.指针变量可通过自增运算遍历数组元素D.表达式`a+1`和`&a+1`的结果相同(假设a为一维整型数组)【参考答案】ABC【解析】A正确:数组名本质是首元素地址的常量指针(如`inta[5]`中,a等价于&a[0])。B正确:对数组名sizeof返回整个数组的字节大小(如`sizeof(a)`结果为`5*sizeof(int)`)。C正确:指针自增可按元素大小移动,例如`int*p=a;p++`指向a[1]。D错误:`a+1`指向a[1],而`&a`是数组指针,`&a+1`将跳过整个数组指向末尾后一位置。14.以下哪些是Access窗体控件的特有属性?A.数据源绑定属性(ControlSource)B.输入掩码(InputMask)C.条件格式(ConditionalFormatting)D.选项卡索引(TabIndex)【选项】A.数据源绑定属性(ControlSource)B.输入掩码(InputMask)C.条件格式(ConditionalFormatting)D.选项卡索引(TabIndex)【参考答案】ABC【解析】A正确:ControlSource用于将控件绑定到表字段或表达式,是Access特有数据绑定机制。B正确:InputMask限定用户输入格式(如日期、电话号),属于Access窗体控件高级属性。C正确:条件格式可基于规则动态改变控件外观(如字体颜色),属于Access特色功能。D错误:TabIndex是通用界面控件属性,用于定义Tab键顺序,非Access独有。15.在C语言预处理指令中,下列说法错误的有:A.`#definePI3.14`定义了常量为PI的值B.`#include`优先在系统路径搜索头文件C.`#ifdef`用于判断宏是否未定义D.`#pragmaonce`可完全替代头文件守卫(#ifndef)【选项】A.`#definePI3.14`定义了常量为PI的值B.`#include`优先在系统路径搜索头文件C.`#ifdef`用于判断宏是否未定义D.`#pragmaonce`可完全替代头文件守卫(#ifndef)【参考答案】CD【解析】A正确:`#define`定义符号常量,编译时替换为指定值。B正确:`#include<>`先在系统目录查找头文件,而`#include""`优先当前目录。C错误:`#ifdef`检查宏是否**已定义**,未定义应使用`#ifndef`。D错误:`#pragmaonce`虽能防止重复包含,但非标准且可能受编译器限制,传统`#ifndef`守卫更通用。16.关于Access报表的分组和排序功能,以下说法正确的是:A.最多支持10个分组级别B.可对日期字段按“年月”形式自动分组C.分组页脚可显示该组的统计汇总信息D.排序依据字段必须包含在报表数据源中【选项】A.最多支持10个分组级别B.可对日期字段按“年月”形式自动分组C.分组页脚可显示该组的统计汇总信息D.排序依据字段必须包含在报表数据源中【参考答案】ABCD【解析】A正确:Access设计规定报表分组级别上限为10级。B正确:日期分组支持自动按年/季度/月等拆分,无需手动计算。C正确:分组页脚常用于Sum、Avg等聚合函数统计组内数据。D正确:排序字段需源于报表记录源,否则无法正确排序。17.C语言中,下列哪些操作可能引起内存泄漏?A.使用malloc分配内存后未调用free释放B.对空指针执行free操作C.指针重新赋值前未释放原有内存D.函数返回局部变量的地址【选项】A.使用malloc分配内存后未调用free释放B.对空指针执行free操作C.指针重新赋值前未释放原有内存D.函数返回局部变量的地址【参考答案】AC【解析】A正确:未释放动态分配的内存导致泄漏。B错误:free(NULL)是安全的,不会引发错误。C正确:指针指向新内存前若未释放旧内存,旧内存将无法被访问和释放。D错误:返回局部变量地址导致悬空指针,属于逻辑错误,非内存泄漏。18.在Access中,以下关于SQL语句的描述正确的是:A.SELECT语句可使用INNERJOIN连接多个表B.DELETE语句必须搭配WHERE条件以避免全表删除C.ALTERTABLE可用于添加或删除字段约束D.UNION查询要求所有SELECT语句的字段数量与类型完全一致【选项】A.SELECT语句可使用INNERJOIN连接多个表B.DELETE语句必须搭配WHERE条件以避免全表删除C.ALTERTABLE可用于添加或删除字段约束D.UNION查询要求所有SELECT语句的字段数量与类型完全一致【参考答案】ACD【解析】A正确:JOIN是标准SQL多表连接语法,Access支持。B错误:DELETE无WHERE会删除全部记录,但语法上允许(需谨慎)。C正确:ALTERTABLE可修改表结构,如ADDCONSTRAINT或DROPCONSTRAINT。D正确:UNION要求各SELECT结果集的列数、数据类型兼容。19.以下C语言运算符优先级从高到低排列正确的有哪些?A.`*`(解引用)>`+`(加法)>`=`(赋值)B.`!`(逻辑非)>`&&`>`||`C.`>>`(右移)>`==`>`&`(按位与)D.`++`(后缀)>`*`(乘法)>`>`(关系比较)【选项】A.`*`(解引用)>`+`(加法)>`=`(赋值)B.`!`(逻辑非)>`&&`>`||`C.`>>`(右移)>`==`>`&`(按位与)D.`++`(后缀)>`*`(乘法)>`>`(关系比较)【参考答案】AB【解析】A正确:解引用(*)优先级最高,加法(+)次之,赋值(=)最低。B正确:逻辑非(!)>逻辑与(&&)>逻辑或(||)符合优先级规则。C错误:右移(>>)<关系运算符(==)<按位与(&),正确顺序应为`&`>`==`>`>>`(实际`>>`优先级高于`==`但低于`&`)。D错误:后缀自增(++)优先级最高,乘法(*)次之,关系比较(>)最低,但三者正确顺序为`++`>`*`>`>`,此项描述正确。20.在Access中,以下哪些操作可以触发VBA事件?A.单击命令按钮B.修改文本框内容C.切换窗体视图模式D.在连续窗体中滚动记录【选项】A.单击命令按钮B.修改文本框内容C.切换窗体视图模式D.在连续窗体中滚动记录【参考答案】ABD【解析】A正确:按钮的Click事件由单击触发。B正确:文本框的BeforeUpdate或AfterUpdate事件在内容变更时触发。C错误:切换视图模式本身不触发VBA事件,需通过DoCmd操作捕获。D正确:窗体记录滚动会触发Current事件。21.关于C语言文件操作,下列说法正确的有:A.fopen函数以"rb"模式打开文件可读取二进制数据B.fseek函数总是返回当前文件指针的位置C.fwrite写入数据时返回值表示实际写入的元素个数D.使用feof判断文件结束应在读操作失败后进行【选项】A.fopen函数以"rb"模式打开文件可读取二进制数据B.fseek函数总是返回当前文件指针的位置C.fwrite写入数据时返回值表示实际写入的元素个数D.使用feof判断文件结束应在读操作失败后进行【参考答案】ACD【解析】A正确:"rb"表示二进制读模式,避免文本模式下的字符转换。B错误:fseek返回值是0(成功)或非0(失败),ftell才返回当前指针位置。C正确:fwrite原型为`size_tfwrite(constvoid*ptr,size_tsize,size_tcount,FILE*stream)`,返回实际写入的count值。D正确:feof仅在读取越界后返回真,故应先检查读操作失败再使用feof确认是否因EOF导致。22.在Access数据库中,下列哪些操作属于操作查询的范畴?【选项】A.选择查询B.删除查询C.更新查询D.生成表查询E.交叉表查询【参考答案】BCD【解析】操作查询用于对数据库中的数据进行批量修改或操作,主要包括四类:1.删除查询(B)用于删除符合条件的记录;2.更新查询(C)用于修改表中的数据;3.生成表查询(D)基于现有数据创建新表;4.追加查询(未列出)。选择查询(A)仅用于检索数据,交叉表查询(E)用于行列汇总分析,均不直接改变数据,故不属于操作查询。23.关于C语言中的指针,以下说法正确的是?【选项】A.指针变量存储的是内存地址B.可通过“*”运算符获取指针指向的变量值C.指针变量可直接参与算术运算(如加减乘除)D.指针数组的每个元素均为指针类型E.void指针可以不经强制类型转换直接赋值给任意类型指针【参考答案】ABD【解析】A正确:指针本质是内存地址的存储容器;B正确:解引用运算符“*”用于获取指针指向的值;D正确:指针数组定义如`int*arr[5]`,每个元素均为指针。C错误:指针仅支持加减运算(地址偏移),不支持乘除;E错误:void指针(通用指针)赋值给具体类型指针需显式类型转换,否则可能引发类型不匹配。24.在Access表设计中,以下哪些字段类型可以存储二进制数据?【选项】A.文本B.OLE对象C.附件D.超链接E.数字【参考答案】BC【解析】B正确:OLE对象字段可存储图像、文档等二进制数据;C正确:附件字段专用于存储二进制文件(如图片、音频)。A/D/E错误:文本存字符串、超链接存URL、数字存数值,均不支持二进制格式。25.下列关于C语言结构体的描述,正确的是?【选项】A.结构体成员默认具有public访问权限B.可通过“->”运算符访问结构体指针的成员C.结构体定义时不允许嵌套其他结构体D.结构体变量可直接用“=”进行整体赋值E.结构体的大小等于各成员大小之和【参考答案】BD【解析】B正确:`p->mem`等价于`(*p).mem`,用于指针访问成员;D正确:相同类型的结构体变量支持直接赋值(逐成员复制)。A错误:C语言无访问权限控制;C错误:结构体允许嵌套定义;E错误:因内存对齐规则,结构体大小通常大于成员总和。26.在Access中,以下哪些属于窗体视图模式?【选项】A.设计视图B.数据表视图C.布局视图D.SQL视图E.窗体视图【参考答案】ABCE【解析】窗体视图包括:1.设计视图(A)用于编辑控件;2.窗体视图(E)用于数据交互;3.布局视图(C)用于直观调整控件布局;4.数据表视图(B)以行列形式展示数据。D错误:SQL视图用于编写查询语句,不属于窗体视图模式。27.以下C语言预处理器指令中,哪些用于条件编译?【选项】A.#includeB.#defineC.#ifdefD.#elseE.#pragma【参考答案】CD【解析】条件编译指令包括:#ifdef、#ifndef、#if、#else(C/D)、#elif、#endif,用于根据条件决定代码是否编译。A用于文件包含,B用于宏定义,E用于编译器特定指令(如优化控制),均不涉及条件逻辑。28.在Access查询设计器中,能够实现多表关联查询的操作包括?【选项】A.直接拖动表字段到查询设计网格B.在表间拖拽字段建立连接线C.手动输入SQL语句中的JOIN子句D.使用“查询向导”创建交叉表查询E.在属性表中设置表间关系【参考答案】ABC【解析】多表关联可通过:A.拖放字段自动生成连接;B.手动拖拽字段创建连接线;C.直接编写SQL的JOIN语句。D错误:交叉表查询用于行列汇总,不强调表关联;E错误:表间关系应在“关系”窗口中设置,属性表仅用于控件或对象属性。29.以下C语言数据类型中,属于构造类型的是?【选项】A.intB.floatC.structD.unionE.double【参考答案】CD【解析】构造类型是由基本类型组合而成的数据类型:C.结构体(struct)和D.联合体(union)均属此类。A/B/E为基本数据类型。30.Access报表的分组和排序功能可以实现?【选项】A.按字段值分组统计数据B.对分组字段进行升序或降序排列C.在每个分组内添加页眉/页脚D.在报表中添加计算控件汇总组内数据E.跨多字段建立多层次分组【参考答案】ABCDE【解析】报表分组功能支持:A/B/E通过“分组、排序和汇总”窗格设置多级分组及排序方式;C/D允许在组页眉/页脚添加标签或计算控件(如Sum、Avg),实现组内统计。五项均为核心功能。31.以下关于C语言递归函数的描述,正确的是?【选项】A.必须包含终止递归的条件B.每次递归调用会创建新的栈帧C.递归深度受系统栈空间限制D.递归实现效率始终高于循环E.不可用于解决分治类问题(如二叉树遍历)【参考答案】ABC【解析】A正确:无终止条件会导致无限递归;B正确:每次调用分配独立栈帧存储局部变量;C正确:栈溢出是递归常见风险。D错误:递归因多次函数调用易产生额外开销,效率通常低于循环;E错误:递归是解决分治问题(如树遍历、快速排序)的经典方法。32.在Access数据库中,下列关于SQL查询语句的叙述,正确的是哪些?【选项】A.SELECT语句中可以使用DISTINCT关键字消除重复记录B.WHERE子句中可以包含聚合函数C.GROUPBY子句必须与HAVING子句同时使用D.使用INNERJOIN连接表时,必须指定ON连接条件【参考答案】A、D【解析】A正确,DISTINCT用于去除重复行。B错误,WHERE子句不能直接使用聚合函数,应使用HAVING子句。C错误,GROUPBY可单独使用,不与HAVING绑定。D正确,INNERJOIN的ON子句是必需的语法。33.关于C语言指针的叙述,正确的有哪些?【选项】A.指针变量存储的是内存地址B.数组名本质是常量指针,不可重新赋值C.指针变量可以做自增运算,表示指向下一个连续内存单元D.void*类型指针可直接赋值给任意类型的指针变量【参考答案】A、B、C【解析】A正确,指针的核心功能是存储地址。B正确,数组名是首元素地址的常量指针。C正确,指针算术运算依赖于数据类型大小。D错误,void*需强制类型转换后才能赋值给具体类型指针。34.Access数据库中,以下关于窗体属性的说法正确的是?【选项】A."数据输入"属性设为“是”时,窗体打开后仅显示新记录B."允许编辑"属性控制窗体是否可修改数据C."记录源"属性可绑定到表或查询D."导航按钮"属性用于隐藏窗体底部的记录操作按钮【参考答案】A、B、C、D【解析】A正确,该属性清空已有记录显示。B正确,控制数据编辑权限。C正确,记录源决定数据来源。D正确,导航按钮控制底部工具栏显示。35.C语言中,以下哪些操作可能导致内存泄漏?【选项】A.malloc分配内存后未调用free释放B.对已释放的指针再次调用freeC.局部指针变量未初始化直接使用D.使用realloc缩小内存块后未更新指针【参考答案】A、D【解析】A是典型的内存泄漏场景。B导致未定义行为而非泄漏。C是野指针问题。D中realloc可能返回新地址,若未更新原指针则原内存块丢失。三、判断题(共30题)1.在Access数据库中,查询可以从多个表中提取数据,但查询本身并不存储数据,每次运行查询时都会动态地从表中提取最新数据。【选项】()正确()错误【参考答案】正确【解析】1.查询的本质是保存的SQL语句,其作用是按条件检索数据而非存储数据实体;2.查询结果会随着源表数据变更实时更新;3.即使查询涉及多表连接,数据仍存储在原始表中,查询仅提供数据视图。2.C语言中,使用fopen()函数以"w"模式打开文件时,若指定文件已存在,则原有内容会被清空。【选项】()正确()错误【参考答案】正确【解析】1."w"模式为写入模式,其特性是创建新文件或覆盖已有文件;2.若目标文件存在,系统将文件长度截断为0字节,导致原内容消失;3.与追加模式"a"形成对比,"a"模式会保留原有内容。3.在Access中,主键字段允许重复输入相同的值,因为主键主要用于提高查询速度。【选项】()正确()错误【参考答案】错误【解析】1.主键的核心作用是保证实体完整性,要求值唯一且非空;2.重复值将破坏数据唯一性约束;3.系统会自动阻止主键字段的重复值录入,与索引的查询加速功能无直接关联。4.C语言中,sizeof(int*)在不同位数的操作系统下返回值相同。【选项】()正确()错误【参考答案】错误【解析】1.sizeof(int*)测量指针变量的存储空间;2.32位系统下指针占4字节,64位系统占8字节;3.指针大小由系统寻址能力决定,与int类型本身长度无关。5.Access的交叉表查询必须指定行标题、列标题和值三个要素才能正确运行。【选项】()正确()错误【参考答案】正确【解析】1.行标题定义纵向分组依据;2.列标题确定横向分类字段;3.值字段需选择聚合函数(如Sum/Count)进行交叉计算,三者缺一不可。6.C语言的continue语句只能用于循环结构中,用于跳过当前迭代的剩余代码。【选项】()正确()错误【参考答案】正确【解析】1.continue的语法作用域限定在for/while/do-while循环内;2.执行后会立即跳转至循环条件判断处;3.在switch或普通代码块中使用将导致语法错误。7.在Access中,文本型字段最多可存储255个英文字符或127个汉字。【选项】()正确()错误【参考答案】错误【解析】1.文本型字段的255字符上限按字节计算;2.汉字采用Unicode编码时占2字节,实际可存储约127个;3.但在Access中实际以双字节存储,故255字符容量可完整存储255个英文或汉字(采用特定编码时)。8.C语言的逻辑运算符"&&"和"||"都存在短路求值特性。【选项】()正确()错误【参考答案】正确【解析】1."&&"在左操作数为假时跳过右操作数计算;2."||"在左操作数为真时跳过右操作数计算;3.这与位运算符"&"、"|"的全计算特性形成本质区别。9.Access中的报表不能直接修改数据源记录,仅用于数据展示和打印输出。【选项】()正确()错误【参考答案】正确【解析】1.报表设计目的为格式化数据输出,不具备数据编辑功能;2.与窗体不同,报表控件无数据绑定编辑属性;3.数据修改需通过窗体或查询实现。10.C语言中,宏定义#defineSQUARE(x)x*x在使用SQUARE(1+2)时会产生正确结果9。【选项】()正确()错误【参考答案】错误【解析】1.宏展开为1+2*1+2,依据运算符优先级得1+2+2=5;2.正确写法应为#defineSQUARE(x)((x)*(x));3.此案例凸显宏参数未加括号导致的运算符优先级错误。11.在Access数据库中,"输入掩码"属性用于限制字段中输入数据的格式,但不会影响实际存储的数据内容。【选项】A.正确B.错误【参考答案】A【解析】"输入掩码"主要用于控制用户输入数据的格式(如电话号码位数、日期格式等),确保输入规范化,但并不改变数据存储的原始内容。例如掩码设置为“0000-00”仅限制输入形式为“年-月”,存储时仍以实际输入的字符为准。12.C语言中,若变量定义为`int*p;`,则执行`p++;`后,指针p的地址值增加4字节(假设int类型占4字节)。【选项】A.正确B.错误【参考答案】A【解析】指针的自增运算会根据指向的数据类型大小调整地址偏移量。若p指向int类型且其大小为4字节,则`p++`会使地址增加`sizeof(int)`(即4字节),指向下一个int元素的起始地址。13.Access查询中的“条件”行可同时使用逻辑运算符(AND、OR)和比较运算符(>、<),但同一字段的多条件必须写在“条件”同一行内。【选项】A.正确B.错误【参考答案】B【解析】Access查询设计视图中,同一字段的多条件若需使用OR关系,应分别写在“条件”行和“或”行;若使用AND
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模板支撑专项施工方案
- 地下车库环境卫生整治措施
- 宠物零食陈列指引货架规范
- 太阳能路灯系统安装调试及维护保养技术手册
- 冲压工艺参数优化控制方案
- 服务偏好记录转接规范流程
- 急救室宠物休克处理流程操作手册
- 脚手架搭设拆除方案
- 引江济淮J0123标钻孔灌注桩专项施工方案(旋挖钻)
- 猫传腹诊疗规范宠物医院专用
- 《AQ3067-2026化工和危险化学品重大生产安全事故隐患判定准则》解读
- 国家机关事务管理局所属事业单位2025年度公开招聘应届毕业生笔试模拟试题
- 服装压力舒适性的测试与评价体系构建
- 2026年钻探工技师考试题及答案
- 国开2026年《公共政策概论》形成性考核任务1-4答案
- YDT 5102-2024 通信线路工程技术规范
- 【MOOC】航空燃气涡轮发动机结构设计-北京航空航天大学 中国大学慕课MOOC答案
- 中考历史复习-历史最后一课课件
- 内部审计培训系列课件
- [贵州]高速公路隧道贯通施工专项方案
- 工业电气厂用电r技术和使用说明书
评论
0/150
提交评论