2008年9月全国计算机等级考试二级C语言笔试试卷及解析
2008年9月计算机等级考试二级C语言模拟试卷及其答案

2008年9月计算机等级考试二级C语言模拟试卷及其答案
转贴于:计算机二级考试_考试大
全国计算机等级考试二级C语言模拟试卷答案
一、选择题
(1)D
评析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。
一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。
(2)B
评析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。
《电力拖动控制线路与技能训练》试卷(A)
.21。
计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A解析:关键字`struct`用于定义一个结构体,它允许将多个不同类型的数据项组合成一个单一的数据结构。
2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C解析:`%`是取模运算符,`&&`是逻辑与运算符,`||`是逻辑或运算符,而`::`不是C语言中的运算符。
二、填空题1. 在C语言中,`________`关键字用于声明一个函数。
答案:int解析:在C语言中,`int`是用于声明一个函数的返回类型,表示该函数返回一个整数值。
2. 以下代码片段中,`________`用于定义一个名为`data`的数组,包含10个整数。
```cint data[10];```答案:int data[10];解析:`int data[10];`定义了一个名为`data`的数组,它包含10个整数。
三、编程题1. 编写一个C语言函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```解析:该函数接受两个整数参数`a`和`b`,计算它们的和,并返回结果。
2. 编写一个C语言程序,实现将一个字符串反转。
```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str); return 0;}```答案:```c#include <stdio.h>#include <string.h>void reverse(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) { char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverse(str);printf("Reversed string: %s\n", str);return 0;}```解析:该程序定义了一个`reverse`函数,它接受一个字符串作为参数,并通过交换字符的方式将字符串反转。
全国计算机等级考试 历年真题2008年9月计算机二级考试Access笔试试题

全国计算机等级考试历年真题2008年9月计算机二级考试Access笔试试题一、选择题(每题2分,共计70分)1.一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是A)12345ABCDE B)EDCBA54321C)ABCDE12345D)54321EDCBAA B C D2.下列叙述中正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定A B C D3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)O(n)B)O(n2)C)O(log2n)D)O(nlog2n)A B C D4.下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有续表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间A B C D5.数据流图中带有箭头的线段表示的是A)控制流B)事件驱动C)模块调用D)数据流A B C D6.在软件开发中,需求分析阶段可以使用的同居是A)N-S图B)DFD图C)PAD图D)程序流程图A B C D7.在面向对象方法中,不属于“对象”基本特点的是A)一致性B)分类性C)多态性D)标识唯一性A B C D8.一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是A)一对一B)一对多C)多对一D)多对多A B C D9.在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同A B C D10.有三个关系R、S、和T如下:由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积B)交C)并D)自然连接A B C D11.Access数据库中,表的组成是A)字段和记录B)查询和字段C)记录和窗体D)报表和字段A B C D12.若设置字段的输入掩码为“####-######”,该字段正确的输入数据是A)0755-B)0755-abcdef C)abcd-D)####-######A B C D13.对数据表进行筛选操作,结果是A)只显示满足条件的记录,将不满足条件的记录从表中删除B)显示满足条件的记录,并将这些记录保存在一个新标中C)只显示满足条件的记录,不满足条件的记录被隐藏D)将满足条件的记录和不满足条件的记录氛围两个表进行显示A B C D14.在显示查询结果时,如果要将数据表的“籍贯”字段名,显示为“出生地”,可在查询设计视图中改动A)排序B)字段C)条件D)显示A B C D15.在Access的数据表中删除一条记录,被删除的记录A)可以恢复到原来位置B)被恢复为最后一条记录C)被恢复为第一条记录D)不能恢复A B C D16.在Access中,参照完整性规则不包括A)更新规则B)查询规则C)删除规则D)插入规则A B C D17.在数据库中,建立索引的主要作用是A)节省存储空间B)提高查询速度C)便于管理D)防止数据丢失A B C D18.假设有一组数据:工资为800元,职称为“讲师”,性别为“男”,在下列逻辑表达式中结果为“假”的是A)工资>800AND职称=“助教”OR职称=“讲师”B)性别=“女”OR NOT职称=“助教”C)工资=800AND(职称=“讲师”OR性别=“女”)D)工资>800AND(职称=“讲师”OR性别=“男”)A B C D19.在建立查询是,若要筛选出图书编号是“T01”或“T02”的记录,可以在查询设计视图准则行中输入A)“T01”or“T02”B)“T01”and“T02”C)in(“T01”and“T02”)D)not in(“T01”and“T02”)A B C D20.在Access数据库中使用向导创建查询,其数据可以来自A)多个表B)一个表C)一个表的一部分D)表或查询A B C D21.创建参数查询时,在查询设计视图准则行中应将参数提示文本放置在A){}中B)()中C)[]中D)<>中A B C D22.在下列查询语句中,与SELECT TAB1.*FROM TAB1WHERE InStr([简历],"篮球")<>0功能想通的语句是A)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"篮球"B)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"*篮球"C)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"*篮球*"D)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"篮球*"A B C D23.在Access数据库中创建一个新标,应该使用的SQL语句是A)Create Table B)Create IndexC)Alter Table D)Create DatabaseA B C D24.在窗体设计工具箱中,代表组合框的图标是A)B)C)D)A B C D25.要改变窗体上文本框空间的输出内容,应设置的属性是A)标题B)查询条件C)控件来源D)记录源A B C D26.在下图所示的窗体上,有一个标有“显示”字样的命令按钮(名称为Command1)和一个文本框(名称为text1)。
2008年9月全国计算机等级考试二级C语言笔试真题及参考答案

2008年9月二級C語言筆試真題及答案(1)一個棧的初始狀態為空。
現將元素1、2、3、4、5、A、B、C、D、E 依次入棧,然後再依次出棧,則元素出棧的順序是()。
A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA(2)下列敘述中正確的是()。
A)迴圈佇列有隊頭和隊尾兩個指針,因此,迴圈佇列是非線性結構B)在迴圈佇列中,只需要隊頭指針就能反映佇列中元素的動態變化情況C)在迴圈佇列中,只需要隊尾指針就能反映佇列中元素的動態變化情況D)迴圈佇列中元素的個數是由隊頭指針和隊尾指針共同決定3)在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是()。
A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)4)下列敘述中正確的是()。
A)順序存儲結構的存儲一定是連續的,鏈式存儲結構的存儲空間不一定是連續的B)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構C)順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表 D)鏈式存儲結構比順序存儲結構節省存儲空間5)數據流圖中帶有箭頭的線段表示的是()。
A)控制流 B)事件驅動 C)模組調用 D)數據流6)在軟體開發中,需求分析階段可以使用的工具是()。
A)N-S 圖 B)DFD 圖 C)PAD 圖 D)程式流程圖7)在面向對象方法中,不屬於“對象”基本特點的是()。
A)一致性 B)分類性 C)多態性 D)標識唯一性(8)一間宿舍可住多個學生,則實體宿舍和學生之間的聯繫是()。
A)一對一 B)一對多 C)多對一 D)多對多(9)在數據管理技術發展的三個階段中,數據共用最好的是()。
A)人工管理階段 B)檔系統階段 C)資料庫系統階段 D)三個階段相同(10)有三個關係R、S 和T 如下:R S TA B B C A B Cm 1 1 3 m 1 3n 2 3 5由關係R 和S 通過運算得到關係T,則所使用的運算為()。
2007—2008年全国计算机等级考试二级C语言真题及参考答案

2007年9月全国计算机等级考试二级C语言真题及参考答案一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。
(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)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c 中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。
2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案2008年9月全国计算机二级笔试C语言程序设计真题及答案一、选择题((1)~(10)、(21)~(40)每题2 分,(11)~(20)每题1 分,70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA(2)下列叙述中正确的是()。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)(4)下列叙述中正确的是()。
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是()。
A)控制流 B)事件驱动 C)模块调用 D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是()。
A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是()。
A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。
计算机二级c语言试题及答案解析

计算机二级c语言试题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0123C. 0x123.456D. 0123456答案:A解析:在C语言中,十六进制常量以0x或0X开头,后跟十六进制数字。
选项A表示十六进制数,是合法的整型常量。
选项B表示八进制数,选项C表示浮点数,选项D是无效的表示。
2. 下列哪个选项是C语言中的关键字?A. switchB. caseC. defaultD. all of the above答案:D解析:在C语言中,switch、case和default都是关键字。
switch用于条件分支,case用于指定分支条件,default用于指定默认分支。
3. 在C语言中,以下哪个选项是合法的字符常量?A. 'A'B. "A"C. '\t'D. 'AB'答案:C解析:在C语言中,字符常量用单引号括起来,可以是单个字符或转义字符。
选项A是合法的字符常量,但选项B是字符串常量。
选项C 是合法的转义字符,表示水平制表符。
选项D是两个字符,不是合法的字符常量。
4. 在C语言中,以下哪个选项是合法的数组声明?A. int a[];B. int b[10];C. int c[10] = {0};D. all of the above答案:D解析:在C语言中,A选项声明了一个未指定大小的整型数组,B选项声明了一个大小为10的整型数组,C选项声明了一个大小为10的整型数组并初始化所有元素为0。
所有选项都是合法的数组声明。
5. 在C语言中,以下哪个选项是合法的函数声明?A. int func(int x);B. int func(int);C. int func();D. int func(int, int);答案:D解析:在C语言中,函数声明需要指定返回类型、函数名和参数列表。
全国计算机等级考试二级C语言真题2008年9月

全国计算机等级考试二级C语言真题2008年9月(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:40,分数:70.00)1.—个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈则元素出栈的顺序______。
(分数:2.00)A.12345ABCDEB.EDCBA54321 √C.ABCDE12345D.54321EDCBA解析:[知识点] 栈结构的存储方式 [评析] 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。
这表明栈的运算规则是“先进后出”(或称“后进先出”)。
在栈顶进行插入运算,称为进栈(或入栈),在栈顶进行删除运算,称为退栈(或出栈)。
本题中,依次进栈,即依次插入元素1、2,3、4、5、A、B、C、D、E,依次出栈,即依次删除元素,根据栈“先进后出”的规则,应该以倒序出栈。
即元素出栈顺序为EDCBA54321。
2.下列叙述中正确的是______。
(分数:2.00)A.循环队列中有队头和卧尾两个指针,因此,循环队列是非线牲结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定√解析:[知识点] 循环队列 [评析] 所谓循环队列,就是将队列存储空间的最后一个位置绕到第1个位置,形成逻辑上的环状空间,供队列循环使用。
所以循环队列还是属于线性结构,所以选项A是错误的。
循环队列的头指针front指向队列的第一个元素的前一位置,队尾指针rear指向队列的最后一个元素,循环队列的动态变化需要头尾指针共同反映,所以选项B、C是错误的。
循环队列的长度是:(sq.rear-sq.front+maxsize)%maxsize,所以循环队列的长度是由队头和队尾指针共同决定的,所以选项D正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)1)栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次放入栈,然后再依次出栈,则元素的顺序是:A) 12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA答案:B详细解答:该知识点是考查了栈的先进后出,是我们公共基础的重点考点,在公共基础的10页纸上多次强调。
栈和队列是每年必考的题目。
2)下列叙述中正确的是A)循环队列有对头和对尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况C)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况D)循环队列中的元素的个数是有队头和队尾指针共同决定的。
答案:D详细解答:该知识点是考查了循环队列的知识点,队列是线性结构。
处理队列的话我们是有两个指针的,一个是头指针,一个是尾指针。
3) 在长度为n的有序线性表中进行二分查找,最坏的情况下需要比较的次数是A)O(n)B)O(n2) C)O(log2n) D)O(nlog2n)答案:C详细解答:该知识点是考查了二分查找。
二分查找:对于长度为n的线性表,在最坏情况进行log2n次。
4)下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构。
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表。
D)链式存储结构比顺序存储结构节省空间。
答案:A详细解答:该知识点是考查了栈数据结构特点。
5)数据流图中带有箭头的线段表示的是A)控制流B)事件驱动C)模块调用D)数据流答案:D详细解答:该知识点是考查了数据流图中的各个知识点。
6)在软件开发中,需求分析阶段可以使用的工具是A)N-S图B)DFD图C)PAD图D)程序流程图答案:B7)在面向对象方法中,不属于“对象”基本特点的是A) 一致性B)分类性C)多态性D)标识一致性答案:A详细解答:该知识点是考查了对象的基本属性。
是我们公共基础的重点考点,8)一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是A ) 一对一 B) 一对多C)多对一D)多对多答案:B9)在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同答案:C10)有三个关系S、R和T如下:由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积B)交C)并D)自然连接答案:D详细解答:该知识点是考查了关系的运算,是我们公共基础的常考的题目。
考试中一般比较多的是考到了笛卡尔积、交。
这个地方考了自然连接的运算。
11)以下叙述中正确的是()A) C语言的基本组成单位是语句B) C程序中的每一行只能写一条语句C) 简单C语句必须以分号结束D)C语句必须在一行内完成答案:C详细解答:本题考查了C语言的基本概念,基本语法,本题所有选项均可在第一分册找到原句A)选项错误:函数是C语言的基本组成单位(第一分册P55)B)、D)选项错误: C语言书写格式自由,一行内可以写多个语句,一个语句可以多行书写(第一分册P3)C)选项正确:分号是语句结束的标志,任何一条语句都必须以分号结束.把以一个分号结尾的一句话叫做一个C语言的语句(第一分册P2,P3)12)计算机能直接执行的程序是()A)源程序 B)目标程序 C)汇编程序 D)可执行程序答案:D详细解答:根据我们上机运行的操作步骤,此题就可以选出答案用C语言编写的程序,称之为源程序,后缀为.c,通过C语言编译,变为后缀为.obj的文件,然后链接成后缀为.exe的可执行文件,才能交给计算机执行,可见计算机能直接执行的是可执行程序。
汇编语言编写的程序,机器不能直接识别,要翻译成机器语言(可执行语言),才能执行(考生即使不知道该知识点,此题也应该选出答案)13)以下选项中不能作为C语言合法常量的是 ( )A) ‘cd’ B) 0.1e+6 C) “a” D)‘\011’答案:A详细解答:本题考查了字符常量,实型常量、字符串常量字符常量是一对单引号括起来的一个字符,A选项单引号内有两个字符注意D选项为八进制转移字符(第一分册P48)14) 以下选项中正确的定义语句是()A)double a;b; B) double a=b=7; C) double a=7,b=7; D)double ,a,b;答案:C详细解答:本题考查变量的定义,以及初始化(定义变量的同时赋值,比如C选项)A)选项错误:在同一条语句中定义多个变量,变量之间用逗号, eg:double a,b;如果作为两条语句定义,变量类型不能省略,eg:double a;double b;B)选项错误:变量b未定义,正确格式为 double a,b;a=b=7;D)选项错误:变量类型与变量之间不能有逗号,只能是空格 eg: double a,b;15) 以下不能正确表示代数式的C语言表达式是()A) 2*a*b/c/d B) a*b/c/d*2 C) a/c/d*b*2 D) 2*a*b/c*d答案:D详细解答:本题考查了代数式在C语言中的书写格式D)选项相当于代数式16) C源程序中不能表示的数制是()A) 二进制 B) 八进制 C) 十进制D) 十六进制答案:A详细解答:本题考查了整型常量的三种表示形式整型常量分为十进制整型常量、八进制整型常量、十六进制整型常量,唯独没有二进制整形常量,所以源程序中不能表示二进制17) 若有表达式(w)?(--x):(++y),则其中与w等价的表达式是 ( )A)w==1 B) w==0 C) w! =1 D) w! =0答案:D详细解答:本题考查了逻辑表达式的真假题目中w为1,表达式w表示真,w为0,表达式w表示假,这类题目的做法,把1,0代入选项,找出与w真假条件相符的即可比如:D选项, w为1时,1!=0成立,表达式值为真w为0时,0!=0部成立,表达式值为假18) 执行以下程序段后,w的值为()int w=’A’,x=14,y=15;w=((x||y)&&(w<’a’));A)-1 B)NULL C) 1 D)0答案:C详细解答:本题考查了逻辑表达式的判断&&两边都为真,表达式才为真;||两边有一个为真就为真.(x||y)值为真,(w<’a’)成立,也为真,整个表达式((x||y)&&(w<’a’))值为1,把1赋值给w, w的值为119) 若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是(ㄩ代表一个空格符)()A)ㄩㄩㄩ1,2,3<回车> B)1ㄩ2ㄩ3<回车>C) 1,ㄩㄩㄩ2,ㄩㄩㄩ3<回车> D)1,2,3<回车>答案:B详细解答:本题考查了scanf输入函数的格式说明知识输入函数的输入控制(双引号之间的内容),除 %* 外,如果含有其它字符,则在输入数据时一定要一一对应输入这些字符,此题双引号之间含有逗号,那么输入数据之间必须输入逗号,B选项错误.此类型的题目还要注意逗号不是分隔符,如果双引号之间没有逗号,输入数据时不能用逗号20) 有以下程序段int a,b,c;a=10;b=50;c=30;if(a>b) a=b,b=c; c=a;printf(“a=%d b=%d c=%d”,a,b,c);程序的输出结果是()A)a=10 b=50 c=10 B)a=10 b=50 c=30 C) a=10 b=30 c=10 D) a=50 b=30 c=50答案:A详细解答:本题目学员应该注意逗号表达式语句,及if语句的结构属于if(a>b)的只有一条语句a=b,b=c;(逗号表达式语句)咱们强调如果含有多条语句,必须用大括号{ }括起,eg:if(a>b) { a=b,b=c; c=a;}如果没有用 { }括起,那么只有一条语句,10>50不成立,所以a=b,b=c;不执行;执行后面的语句c=a;此时c的值变为10,所以输出为A 选项21) 若有定义语句:intm[ ]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()A)m[--i] B)m[2*2] C) m[m[0]] D)m[m[i]]答案:C详细解答:本题考查了数组的下标不能越界,数组长度由{ }中的数据个数默认为5,那含有5个数组元素分别为m[0]、m[1]、m[2]、m[3]、m[4],C)选项为m[5],下标越界A) 选项对应m[3] B) 选项对应m[4] D)选项对应m[1]22) 下面的函数调用语句中func函数的是实参个数是()func( f2(v1,v2)), (v3,v4,v5),(v6,max(v7,v8)));A)3 B)4 C) 5 D)8答案:A详细解答:函数的参数列表,不同参数之间用逗号隔开, func函数的参数个数为3,分别为f2(v1,v2)),(v3,v4,v5),(v6,max(v7,v8))。
大家可以简单的理解为以外层逗号间隔为准,其中每个参数又含有函数和多个参数,超出本题查考的内容23) 若有定义语句:double x[5]={1.0, 2..0, 3.0, 4.0, 5.0},*p=x; 则错误引用x数组元素的是()A)*p B)x[5] C)*(p+1) D)*x答案:B详细解答:本题考查数组的下标是否越界,以及指针对变量的引用B)选项x[5],下标越界。
一维数组名是地址常量(数组首地址),始终指向第一个数组元素,进行赋值p=x,指针变量p也指向第一个数组元素如下图:A)选项 *p表示p所指向单元的数据即x[0] 值为1.0C)选项 *(p+1)表示p+1所指向单元的数据即x[1] 值为2.0D)选项 *x表示x所指向单元的数据即x[0] 值为1.024)若有定义语句: char s[10]=”1234567\0\0”; ,则strlen(s)的值是()A)7 B)8 C) 9 D)10答案:A详细解答:本题目考查字符串结束标志’\0’。
字符串从第一个字符开始,遇到第一个结束符’\0’为止,注意’\0’不占字符串长度,所以此题选A25) 以下叙述中错误的是()A)用户定义的函数中可以没有return 语句B) 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C) 用户定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达式答案:B详细解答:1、如果函数返回值类型为void,则可以不用return语句,所以A正确;2、如果函数没有return语句,函数返回值类型必须是void3、如果函数没有返回值,可以用return语句,此时表达式应该为空,D正确4、函数可以根据需要返回一个确定的值,程序中可以出现多个return语句,但当程序执行到第一个return语句时,就会结束当前函数的运行,不会执行后面的语句,所以用return语句只能返回一个函数值,B错误26) 以下关于宏的叙述中正确的是()A)宏名必须用大写字母表示B) 宏定义必须位于源程序中所有语句之前C) 宏替换没有数据类型限制D)宏调用比函数调用耗费时间答案:C详细解答:本题考查宏的基本定义A) 选项错误:宏名一般习惯用大写,但可以用小写B)选项错误:预处理命令可以出现在任何位置,但习惯上应尽可能地写在源程序的开头.C) 选项正确:宏定义时形参不能指定类型,即没有数据类型限制D) 选项错误:宏替换在编译时由预处理程序完成,所以宏替换不占用运行时间;而函数调用是在程序运行中处理的,要临时分配存储单元,占用一系列时间27) 有以下程序#iinclude <stdio.h>main(){ int i,j;for(i=3; i>=1; i--){ for (j=1;j<=2;j++) printf(“%d”,i+j);printf(“\n”);}}程序的运行结果是()A) 2 3 4 B) 4 3 2 C) 2 3 D) 4 53 4 5 5 4 3 3 4 3 44 5 2 3 答案:D详细解答:本题考查双层for循环嵌套i值为3时, j为1,输出4j为2,输出5j为3时,不满足条件退出内层循环,执行后面的语句换行i值为 2时, j为1,输出3j为2,输出4j为3时,不满足条件退出内层循环,执行后面的语句换行i值为 1时, j为1,输出2j为2,输出3j为3时,不满足条件退出内层循环,执行后面的语句换行i值为 0时,不满足判断条件退出整个for循环28) 有以下程序#include <stdio.h>main(){ int x=1,y=2, z=3;if(x>y)if (y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序运行结果是A)331 B)41 C) 2 D)1答案:D详细解答:本题考查if ,if-else结构首先搞清楚此题目的结构,本题含有一个if结构,属于if的语句是一个if-else结构,if (y<z) printf(“%d”,++z);else printf(“%d”,++y); 这是本题的关键首先判断x>y不成立,那么属于if(x>y)的语句不执行,直接执行后面的语句printf(“%d\n”,x++);输出1(本题还有一个考查点就是+ +在前在后的问题,如果题目改为++x,输出2)29) 有以下程序#include <stdio.h>main(){ int i=5;do{ if (i%3= =1)if (i%5= =2){printf(“*%d”,i); break; }i++;}while(i!=0);printf(“\n”);}程序的运行结果是A)*7 B)*3*5 C) *5 D)*2*6答案:A详细解答:此题头考查了break的用法,遇到break退出整个循环明确循环体中的语句,当i的值满足(i%3= =1) 并且满足(i%5= =2)时,输出*i. 并且break;退出整个循环,如果不满足就i++本题目题意就是:输出第一个满足(i%3= =1) 并且满足(i%5= =2)的i值当i自加到7时,满足题目要求,输出*7,然后退出整个循环,执行后面的语句联想此题还要注意continue的用法30) 有以下程序#include <stdio.h>int fun(int a, int b){ if(b= =0) return a;else return(fun(--a,--b)) ;}main(){ printf(“%d\n”,fun(4,2); }A)1 B)2 C) 3 D)4答案:B详细解答:此题考查了函数的简单递归调用主函数中调用fun(4,2),fun(4,2)中调用fun(3,1),fun(3,1)中调用fun(2,0)可以总结为以下结构main( )àfun(4,2)->fun(3,1)->fun(2,0)输出2 返回2 返回2 返回2(31) 有如下程序:#include <stdio.h>#include <stdlib.h>int fun(int n){ int *p;p=(int *)malloc(sizeof(int));*p=n; return *p;}main(){int a;a=fun(10); printf("%d\n",a+fun(10));}程序的运行结果是A)0 B)10 C)20 D)出错答案:C详细解答:该知识点考察的是函数的调用以及引用指针存储单元,也是我们平时上课强调了的知识点。