C笔试题目带答案

合集下载

c语言笔试题目及答案

c语言笔试题目及答案

c语言笔试题目及答案1.如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。

则称该数据结构为线性结构。

本题中循环队列、带链队列和带链栈都是线性结构,二叉树是非线性结构。

故本题答案为C。

2.所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。

在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。

循环队列主要有两种基本运算:入队运算与退队运算。

每进行一次入队运算,队尾指针就进一。

每进行一次退队运算,排头指针就进一。

当rear或front的值等于队列的长度+1时,就将rear或front的值置为1。

一般情况下,rear大于front,因为入队的元素肯定比出队的元素多。

特殊的情况是rear到达数组的上限之后又从数组的`低端开始,此时,rear是小于front的。

故本题答案为D。

3.数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

故本题答案为B。

4.结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。

故本题答案为A5.并:设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R 或属于S的元组组成。

本题中,关系T是关系R和关系S进行并运算得到的。

故本题答案为D。

6.在E-R图中用矩形表示实体集,用椭圆形表示属性,用菱形表示联系。

故本题答案为C。

7.一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

故本题答案为A。

8.程序流程图是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,箭头表示控制流,矩形表示加工步骤,菱形表示逻辑条件。

故本题答案为C。

9.耦合性与内聚性是模块独立性的两个定性标准。

二级C语言笔试-465_真题(含答案与解析)-交互

二级C语言笔试-465_真题(含答案与解析)-交互

二级C语言笔试-465(总分91, 做题时间90分钟)一、选择题1.与十进制数200等值的十六进制数为______。

A) A8 B) A4 C) C8 D) C4SSS_SIMPLE_SINA B C D分值: 1答案:C[解析] 十进制数200转换成二进制数,其结果为1100 1000,1100 1000对应了十六进制数C8。

因此答案选C。

2.下列叙述中正确的是______。

A) 一个逻辑数据结构只能有一种存储结构B) 数据的逻辑结构属于线性结构,存储结构属于非线性结构C) 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理效率D) 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理效率SSS_SIMPLE_SINA B C D分值: 2答案:D[解析] 逻辑结构是反映了元素之间的逻辑关系的数据结构,存储结构是逻辑结构在计算机中的存放形式,它们都具有线性结构和非线性结构。

逻辑结构有顺序、链接、索引等存储结构,采用不同的存储结构,数据处理的效率不同。

3.对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是______。

A) 冒泡排序为n/2 B) 冒泡排序为nC) 快速排序为n D) 快速排序为n(n-1)/2SSS_SIMPLE_SINA B C D分值: 2答案:D[解析] 存最坏情况下,快速排序退化为冒泡排序,冒泡排序法的基本过程参见本题的理论链接。

冒泡排序的每个元素都要与它前面的元素相比较,因此比较次数为(n-1)+(n-2)+…+1=n(n-1)/2。

4.冒泡排序在最坏情况下的比较次数是______。

n C) n(n-1)/2 D) n/2A) n(n+1)/2 B) nlog2SSS_SIMPLE_SINA B C D分值: 2答案:C[解析] 在最坏情况下冒泡排序法需要比较的次数为n(n-1)/2。

5.关于结构化程序设计原则和方法描述错误的是( )。

C笔试题及答案 产品经理笔试题及答案

C笔试题及答案 产品经理笔试题及答案

C笔试题及答案产品经理笔试题及答案C笔试题及答案篇1(1)算法的时间复杂度是指_______。

A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数答案:C评析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。

(2)下列叙述中正确的是________。

A)线性表是线性结构 B)栈与队列是非线性结构C)线性链表是非线性结构 D)二叉树是线性结构答案:A评析:一般将数据结构分为两大类型:线性结构与非线性结构。

线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。

(3)下面关于完全二叉树的叙述中,错误的是_________。

A)除了最后一层外,每一层上的结点数均达到最大值B)可能缺少若干个左右叶子结点C)完全二叉树一般不是满二叉树D)具有结点的完全二叉树的深度为[log2n]+1答案:B评析:满二叉树指除最后一层外每一层上所有结点都有两个子结点的二叉树。

完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干子结点(叶子结点)的二叉树。

(4)结构化程序设计主要强调的是_________。

A)程序的规模 B)程序的易读性C)程序的执行效率 D)程序的可移植性答案:B评析:结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。

(5)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。

A)概要设计 B)详细设计 C)可行性分析 D)需求分析答案:D评析:需求分析是对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。

编写软件规格说明书及初步的用户手册,提交评审。

(6)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。

下列图符名标识的图符不属于数据流图合法图符的是_________。

c笔试题目及答案

c笔试题目及答案

c笔试题目及答案1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 题目:以下哪个关键字用于定义一个函数?A. classB. functionC. defD. int答案:D3. 题目:C语言中,哪个运算符用于将变量的值增加1?A. +=B. --C. +=D. ++答案:D4. 题目:以下哪个选项是C语言中的合法数组声明?A. int arr[10];B. int arr[];C. int arr[10] = {0};D. All of the above答案:D5. 题目:C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A6. 题目:以下哪个选项是C语言中正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. // This is a single line comment/* This is a multi-line comment */D. All of the above答案:D7. 题目:C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum答案:A8. 题目:以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>#include "stdio.h"D. All of the above答案:A9. 题目:以下哪个选项是C语言中正确的条件语句?A. if (condition)B. switch (condition)C. case (condition)D. All of the above答案:A10. 题目:C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. reference答案:C。

二级C语言笔试318_真题(含答案与解析)-交互

二级C语言笔试318_真题(含答案与解析)-交互

二级C语言笔试318(总分100, 做题时间90分钟)一、选择题在下列各题的A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。

1.结构化程序设计主要强调的是SSS_SINGLE_SELA 程序的规模B 程序的效率C 程序设计语言的先进性D 程序易读性分值: 2答案:D[解析] 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。

2.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是SSS_SINGLE_SELA (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图转换到关系模式时,实体与联系都可以表示成SSS_SINGLE_SELA 属性B 关系C 键D 域分值: 2答案:B[解析] 关系数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。

首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

4.下面判断正确的是SSS_SINGLE_SELA 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) 项表述方法有错误。

中小学教师心理健康c证笔试考试试题及答案

中小学教师心理健康c证笔试考试试题及答案

中小学教师心理健康c证笔试考试试题及答案一、单项选择题(每题2分,共50分)1. 教师心理健康的标准不包括以下哪一项?A. 情绪稳定B. 人际关系良好C. 缺乏自我认同D. 适应能力强答案:C2. 教师在面对学生行为问题时,应采取哪种态度?A. 严厉批评B. 耐心倾听C. 忽视不管D. 情绪激动答案:B3. 下列哪项不是教师职业倦怠的表现?A. 工作效率下降B. 对工作失去热情C. 感到工作有成就感D. 人际关系紧张答案:C4. 教师在课堂上使用幽默可以带来哪些积极效果?A. 增加学生压力B. 缓解课堂紧张气氛C. 降低学生学习兴趣D. 减少学生注意力答案:B5. 教师应如何对待学生的个体差异?A. 忽视差异B. 统一要求C. 因材施教D. 强化统一标准答案:C...(此处省略中间题目)50. 教师在处理学生冲突时,以下哪项做法是不恰当的?A. 保持中立B. 倾听双方观点C. 立即做出判断D. 引导学生自我反思答案:C二、多项选择题(每题3分,共30分)51. 教师心理健康的维护策略包括:A. 定期进行自我反思B. 参加专业培训C. 忽视个人情绪D. 建立良好的同事关系答案:ABD52. 教师在班级管理中应遵循的原则有:A. 公平公正B. 严格纪律C. 忽视学生感受D. 尊重学生个性答案:ABD...(此处省略中间题目)60. 教师在促进学生心理健康方面可以采取的措施包括:A. 提供心理健康教育B. 建立积极的师生关系C. 忽视学生心理问题D. 鼓励学生参与集体活动答案:ABD三、判断题(每题1分,共20分)61. 教师的心理健康与学生的发展无关。

答案:错误62. 教师应避免在学生面前表现出焦虑和压力。

答案:正确...(此处省略中间题目)80. 教师的个人兴趣和爱好对缓解工作压力没有帮助。

答案:错误四、简答题(每题5分,共10分)81. 简述教师如何通过自我调节来缓解工作压力。

答案:教师可以通过以下方式进行自我调节来缓解工作压力:首先,合理安排工作和休息时间,保证有足够的休息和放松;其次,进行定期的身体锻炼,以提高身体素质和减轻压力;再次,培养个人兴趣和爱好,通过参与自己喜欢的活动来转移注意力,放松心情;最后,建立良好的社会支持网络,与同事、家人和朋友分享自己的感受和困扰,寻求支持和帮助。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案一、选择题1. 在C语言中,字符型数据使用的关键字是:A. charB. intC. floatD. double答案:A2. 下列标识符中合法的是:A. 123nameB. _nameC. name$D. %name答案:B3. 表达式"5 + 3 * 2 - 4 / 2"的值是:A. 9B. 12C. 10D. 8答案:C4. 下列哪个语句可以用于在屏幕上输出字符型变量c的值:A. printf("%c", c);B. printf("%d", c);C. printf("%s", c);D. printf("%f", c);答案:A5. 下列哪个语句可以用于从键盘输入整型变量a的值:A. scanf("%d", a);B. scanf("%f", &a);C. scanf("%s", a);D. scanf("%c", &a);答案:B二、编程题1. 编写一个程序,输入一个整数n,计算并输出n的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long long factorial = 1;printf("请输入一个整数:");scanf("%d", &n);for (i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", n, factorial);return 0;}```2. 编写一个程序,输入一个整数n,判断并输出n是否为素数。

答案:```c#include <stdio.h>int isPrime(int num) {int i;if (num <= 1) {return 0;}for (i = 2; i <= num / 2; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int n;printf("请输入一个整数:"); scanf("%d", &n);if (isPrime(n)) {printf("%d是素数\n", n); } else {printf("%d不是素数\n", n); }return 0;}```三、简答题1. C语言中的指针有什么作用?答案:指针在C语言中用于直接访问内存地址,可以提高程序的执行效率和灵活性。

安徽省c语言笔试题目及答案

安徽省c语言笔试题目及答案

安徽省c语言笔试题目及答案安徽省C语言笔试题目及答案1. 以下选项中,哪个是C语言中用于声明一个整型变量的关键字?A. floatB. intC. charD. double答案:B2. 假设有以下C语言代码段:```cint a = 10;int b = 20;int c = a + b;```执行后,变量c的值是多少?A. 30B. 10C. 20D. 0答案:A3. C语言中,用于定义一个函数的关键字是什么?A. defineB. functionC. defD. void答案:B4. 下列哪个选项是C语言中合法的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World"D. "Hello, World"答案:A5. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. <=D. >=答案:A6. 以下代码段中,哪个变量的值会在执行后发生变化?```cint x = 5;int y = 10;int z = x + y;x = y;```A. xB. yC. zD. 以上都不是答案:A7. 在C语言中,用于定义一个空指针的关键字是什么?A. nullB. nilC. voidD. NULL答案:D8. 以下哪个选项是C语言中用于循环的关键字?A. forB. whileC. doD. All of the above答案:D9. 在C语言中,以下哪个函数用于将字符串连接到另一个字符串的末尾?A. strcat()B. strcpy()C. sprintf()D. printf()答案:A10. 如果一个函数的返回类型是void,这意味着什么?A. 函数不返回任何值B. 函数返回一个整数C. 函数返回一个浮点数D. 函数返回一个字符答案:A11. 下列哪个选项是C语言中用于定义一个结构体的关键字?A. structB. unionC. enumD. typedef答案:A12. 在C语言中,以下哪个关键字用于定义一个数组?A. arrayB. listC. vectorD. None of the above答案:D13. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strcat()C. sprintf()D. printf()答案:A14. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. unionC. structD. typedef答案:A15. 下列哪个选项是C语言中用于定义一个宏的预处理器命令?A. #defineB. #includeC. #importD. #pragma答案:A16. 在C语言中,以下哪个关键字用于定义一个联合体?A. unionB. structC. enumD. typedef答案:A17. 在C语言中,以下哪个函数用于打开一个文件?A. fopen()B. fclose()C. freopen()D. fgetc()答案:A18. 在C语言中,以下哪个函数用于关闭一个文件?A. fopen()B. fclose()C. freopen()D. fgetc()答案:B19. 在C语言中,以下哪个关键字用于定义一个单例类型?A. enumB. structC. unionD. typedef答案:A20. 在C语言中,以下哪个函数用于读取一个字符?A. getchar()B. getc()C. fgetc()D. All of the above答案:D。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

姓名:___________ 时间:___________DCCBB AADAD一、选择题(1*10=10)1.如果派生类以proctected方式继承基类,则原基类的protected和public成员在派生类的访问性分别是:DA.public和public B.public和protectedC.protected和public D.protected和protected解析:通过protected方式继承基类后,原基类的私有成员不可访问,而protected和public 成员均变成protected成员。

答案:D2.有如下头文件:int F1();static int F2();classs CA{public:int F3();static int F4();};在所描述的函数中,具有隐含this指针的是:CA.F1 B.F2C.F3 D.F4本题考查的是this指针。

this指针式一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确地表示出了成员函数当前操作的数据所属的对象。

当对一个对象调用成员函数时,编译程序先将对象的地址赋值给this指针,然后调用成员函数,每次成员函数存取数据成员时,则隐含使用this指针。

this指针是指向对象本身的指针,它只存在于类的非静态成员中。

f1,f2不是成员函数,不存在隐含指针;f4为静态成员函数,也不含有this指针;含有this指针的函数在调用时按thiscall调用约定调用。

故本题答案为C。

3.派生类的成员函数不能访问基类的:CA.共有成员和保护成员B.共有成员C.私有成员D.保护成员本题考查的是继承的类型。

类的继承方式有公有继承、保护继承和私有继承三种方式。

对于公有继承基类中的成员访问属性不变,对于保护和私有继承基类中的成员转换为相应的访问类型。

但是如果基类成员的访问属性为private的,则不能被继承。

故本题答案为C。

4.按照“后进先出”原则组织数据的数据结构是BA.队列B.栈C.双向链表D.二叉树答案为B。

5.下列关于虚函数的说明中,正确的是:BA.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或者引用调用虚函数D.抽象类中的中的成员函数都是虚函数。

答案为B。

6.已知Value是个类,value是Value的一个对象。

下列以非成员函数形式重载的运算符函数原型中,正确的是:AA.Value operator+(Value v, int i); B.Value operator+(Value v=value, int i);C.Value operator+(Value v, int=0); D.Value operator+(Value v=value, int i=0);7.有如下类的定义:Class MyClass{int value;public:MyClass(int n):value(n){}int getValue() const {return value;}};则类Myclass的构造函数的个数是:AA.1个B.2个C.3个D.4个还有默认拷贝构造函数, 应该选B8.有如下类的定义:class Constants{public:static double GetPI(void){return ;}};Constants constants;下列各组语句中,能输出的是:BA.cout<<constants->GetPI();和cout<<Constants::GetPI(); B.cout<<();和cout<<();C.cout<<constants->GetPI();和cout<<Constants->GetPI(); D.cout<<();和cout<<Constants::GetPI();9.有如下程序:#include <iostream>using namespace std;class VAC{public:int f() const{return 3;}int f(){return 5;}};int main(){VAC v1;const VAC v2;cout<<()<<();return 0;}运行时的输出结果是:A A.53 B.35 C.55 D.33 10.有如下类声明:class Base{protected:int amount;public:Base(int n = 0):amount(n){}int getAmount() const {return amount;}};class Derived:public Base{protected:int value;public:Derived(int m, int n):value(m),Base(n){}int getData() const {return value + amount;} };已知x是一个Derived对象,则下列表达式中正确的是:B A. + (); B.() + ();C.() – ; D. + ;二、填空题(8*2=16)400_ 6 4 4 4 4 return *this _ Dog speak Voice 1.下列中a的值是___400_____#define AAA 200#define BBB AAA+100int a= BBB*22. 以下为Windows NT下的32位C++程序,请计算sizeof的值。

char str[] = “Hello” ;char *p = str ;int n = 10;请计算sizeof (str ) = ____5_____sizeof ( p ) = ____4___sizeof ( n ) = ____4____void Func ( char str[100]){补充完整下面的类定义:class XCH{char* a;public:XCH(char* aa){ 请写出下面程序的输出结果#include<iostream>using namespace std;class Animal {public:virtual char* getType() const {return "Animal";} virtual char* getVoice() const {return "Voice";} };class Dog:public Animal{public:char* getType() const {return "Dog";}char* getVoice() const { return "Woof";}};void type(Animal& a) {cout<<();}void speak(Animal a) {cout<<();}int main(){Dog d;type(d);cout<<" speak ";speak(d);cout<<endl;return 0;}______ Dog speak Voice ______________________________三、问答题(5*10+9+15=74)1.编写类String的拷贝构造函数和赋值函数(可以调用C++/C的字符串库函数)(15)。

已知类String的原型为:class String{public:2. String(const char *str = NULL); 别用递归和循环求F(5)(10)。

public int R(int num){if(num<=0){num=1;}else if(num==1){num=1;}else{num=R(num-1)+R(num-2);}return num;}public int c(int num) {int a = 1;int b = 1;int c = 0;for (int i = 0; i < num- 2; i++) {c = a + b;a = b;b = c;return c;}3.写一算法,对单链表实现就地逆置(不要构造新结点)(10)。

node *reserve(node*head){node*p1,*p2,*p3;if((head==NULL)||(head->next==NULL))return head;p1=head;p2=p1->next;while(p2!=NULL){p3=p2->next;p2->next=p1;p1=p2;}head->next=NULL;p1=head;return head;}4.从冒泡排序、直接插入排序、二分插入排序和选择排序四种排序算法中,选择其中一种算法,写出它的实现(10)#include<>#include<>#include<>#include<>void BubbleSort(int *L,int N){ 前后记录位置的增量是dk,而不是1;r[0]只是暂存单元,不是哨兵。

当j<=0时,插入位置已找到。

int i,j;for(i=dk+1;i<=N;++i)if(L[i]<L[i-dk]){ t-1]对顺序表L作希尔排序。

for(int k=0;k<t;++k)ShellInsert(L,N, dlta[k]); ....void f(int i) ....};(6)可以节省空间,避免不必要的内存分配。

const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。

(7)提高了效率。

编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

不能修改类的数据成员,不能在函数中调用其他不是const的函数.1)const对象调用的是const成员函数。

2)非const成员函数可以调用const成员函数,这样做一般是用来避免代码重复,但引入了一个casting动作。

5.下面两个语句的执行效果相同吗为什么(9)语句1: while(*p++){};语句2: while(*p){ p++;}区别在于退出循环后, p的值不一样while( *p++ ); //当*p=0时,退出循环,此时p++仍然执行了while( *p ) p++; //当*p=0时,退出循环,此时p++不再被执行例如 char *p="ABCD"; 执行完第一个while循环后,p指向的是'\0'后面的一个字节,*p的结果是未知的而如果是执行第二个循环,则p指向的是'\0',也就是'D'后面的一字节,即*p='\0。

相关文档
最新文档