C笔试题目带答案

合集下载

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语言笔试考试题及答案一、选择题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++笔试题目-带答案

姓名:___________ 时间:___________DCCBB AADAD一、选择题(1*10=10)1.如果派生类以proctected方式继承基类,则原基类的protected和public 成员在派生类的访问性分别是:DA.public和public B.public和protected C.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。

C笔试题目及答案c语言笔试题目及答案

C笔试题目及答案c语言笔试题目及答案

C笔试题目及答案c语言笔试题目及答案c笔试题目及答案:c语言笔试题目及答案c笔试题目汇总篇11.谋下面函数的返回值(谷歌)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=。

答案:8思路:将x转变为2十进制,看看所含的1的个数。

2.什么是“引用”?申明和使用“引用”要注意哪些问题?请问:提及就是某个目标变量的“别称”(alias),对应用领域的操作方式与对变量轻易操作方式效果完全相同。

言明一个提及的时候,切勿必须对其展开初始化。

提及声明完后,相等于目标局部变量存有两个名称,即为该目标原名称和提及名,无法再把该提及名做为其他局部变量的别称。

声明一个提及,不是崭新定义了一个变量,它只则表示该提及名就是目标局部变量的一个别称,它本身不是一种数据类型,因此提及本身不占到存储单元,系统也不给提及分配存储单元。

无法创建数组的提及。

3.将“引用”作为函数参数有哪些特点?(1)传达提及给函数与传达指针的效果就是一样的。

这时,被调函数的形参就沦为原来主调函数中的实参变量或对象的一个别称去采用,所以在被调函数中对形参变量的操作方式就是对其适当的目标对象(在主调函数中)的操作方式。

(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。

因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。

(3)采用指针做为函数的参数虽然也能够达至与采用提及的效果,但是,在被调函数中同样必须给形参分配存储单元,且须要重复使用"*指针局部变量"的形式展开运算,这很难产生错误且程序的写作性极差;另一方面,在主调函数的调用点处,必须用变量的地址做为实参。

c语言笔试题目及答案

c语言笔试题目及答案

c语言笔试题目及答案C语言是一门通用计算机编程语言,应用广泛。

C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

下面是c语言笔试题目及答案,请参考。

c语言笔试题目及答案一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)数据的存储结构是指________。

A)存储在外存中的数据 B)数据所占的存储空间量C)数据在计算机中的顺序存储方式D)数据的逻辑结构在计算机中的表示答案:D评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。

(2)下列关于栈的描述中错误的是________。

A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针答案:B评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。

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

A)冒泡排序为n2 B)冒泡排序为nC)快速排序为n D)快速排序为n(n一1)/2答案:D评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。

快速排序法的最坏情况比较次数也是n(n-1)/2。

(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。

A)log2n B)n/2 C)n D)n+l答案:C评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。

对长度为n的线性表进行顺序查找,在最坏情况下需要比较n 次。

100条经典C语言笔试题目(全)

100条经典C语言笔试题目(全)

100条经典C语言笔试题目1、请填写bool , float, 指针变量与“零值”比较的if 语句。

提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。

例如int 变量n 与“零值”比较的if 语句为:if ( n == 0 )if ( n != 0 )以此类推。

(1)请写出bool flag 与“零值”比较的if 语句:【标准答案】if ( flag ) if ( !flag )(2)请写出float x 与“零值”比较的if 语句:【标准答案】const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

(3)请写出char *p 与“零值”比较的if 语句【标准答案】if (p == NULL) if (p != NULL)2、以下为Linux下的32 位C程序,请计算sizeof 的值。

char str[] = “Hello” ; char *p = str ; int n = 10;请计算(1)sizeof (str ) = (2)sizeof ( p ) = (3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) { ……;}请计算sizeof( str ) =(5)void *p = malloc( 100 ); 请计算sizeof ( p ) =【标准答案】(4)4、(5)43、long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。

4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是int2 + DATE10 + double8 = 20 6、请问以下代码有什么问题:int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。

c语言笔试面试题目及答案

c语言笔试面试题目及答案

c语言笔试面试题目及答案一、概述C语言作为一种高级编程语言,具有广泛应用的特点,常常是面试中的重要内容。

本文将列举一些常见的C语言笔试面试题目,并提供相应的答案,以供参考。

二、变量与数据类型1. 请解释C语言中的变量是什么?答:变量是一种具有可变值的存储空间,用于存储和表示不同类型的数据。

2. 请列举C语言中的基本数据类型。

答:C语言中的基本数据类型包括int、float、char、double等。

3. 请解释int和float数据类型的区别。

答:int是整型数据类型,用于表示整数;float是浮点型数据类型,用于表示带有小数点的数。

4. 请解释C语言中的数组。

答:数组是由相同数据类型的元素组成的集合,通过索引来访问每个元素。

三、控制流1. 请解释C语言中的条件语句。

答:条件语句用于根据给定的条件执行不同的代码块。

常见的条件语句有if语句和switch语句。

2. 请解释for循环和while循环的区别。

答:for循环用于在已知循环次数的情况下重复执行一段代码;while循环用于在满足条件的情况下重复执行一段代码,循环次数不确定。

3. 请解释C语言中的跳转语句。

答:C语言中的跳转语句用于改变程序的执行顺序,包括break、continue和goto等。

四、函数与指针1. 请解释C语言中的函数。

答:函数是一段封装了特定功能的代码块,通过给定的输入(参数)来产生输出(返回值)。

2. 请解释C语言中的指针。

答:指针是一个变量,用于存储其他变量的内存地址。

通过指针,可以间接访问和操作该地址处的数据。

3. 请解释C语言中的递归函数。

答:递归函数是一种调用自身的函数,适用于解决可以被分解为相同问题的问题,通过不断调用自身来实现。

五、文件操作1. 请解释C语言中的文件操作。

答:文件操作用于读取和写入文件的数据,包括打开文件、读取文件内容、写入文件内容和关闭文件等步骤。

2. 请解释C语言中的文件指针。

答:文件指针是一个用于表示文件位置的指针变量,可以用于定位读写文件的位置。

c语言编写函数笔试题及答案

c语言编写函数笔试题及答案

c语言编写函数笔试题及答案C语言编写函数笔试题及答案1. 题目一:计算阶乘编写一个函数,计算并返回一个整数的阶乘。

阶乘定义为:n! = n * (n-1) * (n-2) * ... * 1,其中n! = 1,当n=0。

函数原型:```clong long factorial(int n);```答案:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d is %lld\n", num, factorial(num)); return 0;}```2. 题目二:字符串反转编写一个函数,接受一个字符串作为参数,将其反转并返回。

函数原型:```cchar* reverseString(char* str);```答案:```c#include <stdio.h>#include <string.h>char* reverseString(char* str) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}return str;}int main() {char str[] = "Hello, World!";printf("Reversed string: %s\n", reverseString(str));return 0;}```3. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。

C语言笔试考试题汇总含答案

C语言笔试考试题汇总含答案
A、int a[]={1,2}; B、char *a[3];
C、char s[10]="test"; D、int n=5,a[n];
<标准答案>=d
[题目描述]
19、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、传递方式由用户指定
<标准答案>=b
[题目描述]
21、以下的for循环______ 。
for(x=0, y=0; (y!=123)&&(x<4);x++);
scanf("%d",&x);
if(x--<5) printf("%d",x);
else printf("%d",x++);
}
程序运行后,如果从键盘上输人5,则输出结果是______ 。
A、3 B、 4 C、 5 D、 6
b++; c++;
return(a+b+c);
}
main()
{int a = 2, i;
for(i=0;i<3;i++) printf("%d\n",f(a));
}
A、 7 B、 7 C、 7 D、 7
m=2、n=1,则逻辑表达式(m==a>b)&&(n==c>d) 的值为______。
A、0 B、 1 C、2 D、 3
<标准答案>=a

C_C语言笔试面试题目含答案

C_C语言笔试面试题目含答案

C语言试题一:单项选择题1.void Example(char acHello[]){printf("%d", sizeof(acHello));return;}void main(){char acHello[] = "hello";Example(acHello);return;}的输出是( )A 4B 5C 6 D不确定2.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。

( )A. 正确B.错误3. int *(*ptr)();则以下叙述中正确的是( )A) ptr是指向一维组数的指针变量B) ptr是指向int型数据的指针变量C) ptr是指向函数的指针,该函数返回一个int型数据D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针4.此函数实现把32位IP地址(网络序)以字符串的方式打印出来:char *IpAddr2Str(unsigned long ulIpAddr){char szIpAddr[32];unsigned long ulLocIpAddr = ntohl(ulIpAddr);d.%d.%d", ulLocIpAddr >> 24,(ulLocIpAddr >> 16) & 0xff, (ulLocIpAddr >> 8) & 0xff, ulLocIpAddr & 0xff);return szIpAddr;}下面描述正确的是():A、数组szIpAddr空间不够;B、函数返回局部数组szIpAddr变量地址;C、输出的IP地址次序颠倒;5.#define OK 0#define ERR 1#define ERROR (-1)#define BUFFER_SIZE 256char *GetMemory(unsigned long ulSize){char *pcBuf = NULL;pcBuf = (char *)malloc(ulSize);if(NULL == pcBuf){return ERROR;}return pcBuf;}void Test(void){char *pszBuf = NULL;pszBuf = GetMemory(BUFFER_SIZE);if(NULL != pszBuf){strcpy(pszBuf, "Hello World!\r\n"); printf(pszBuf);free(pszBuf);}return;}如下描述正确的是:A、pszBuf指向的内存不能超过255B、GetMemory函数的异常分支返回了-1,是一个非法地址C、GetMemory中异常分支没有释放空间;D、pcBuf为局部指针,指向的内存将在GetMemory被调用后释放6、#include ""unsigned short *Sum(unsigned char a, unsigned char b){unsigned short s = 0;s = a + b;return &s;}int main(){unsigned short *p = NULL;unsigned char a = 1, b = 2;p = Sum(a, b);printf("%u+%u", a, b);printf("=%u\n", *p);return 0;}程序执行结果是()+2=0 +2=3 +2=NULL D.不可预测7、设有如下定义:BOOL gStatusA = FALSE;BOOL gStatusB = TRUE;int gVarA = 100;int gVarB = 100;则执行main函数后gVarA和gVarB的值分别为( )BOOL CheckA(){if(gStatusA){gVarA++;}else{gVarA--;return gStatusA;}BOOL CheckB(){if(gStatusB){gVarB++;}else{gVarB--;}return gStatusB;}int main(int argc, char* argv[]) {if(CheckA() && CheckB() ){printf(“Status OK”);}return 0;}A, 99和100 B, 99和101 C 99和99 D 101和998.下面的代码中,函数Test执行完毕后,希望输出无符号长整型的1。

c语言笔试题及答案

c语言笔试题及答案

c语言笔试题及答案# C语言笔试题及答案## 一、选择题1. 题目:以下哪个是C语言的标准输入输出库函数? - A. `printf()`- B. `scanf()`- C. `cout`- D. `cin`答案:A、B2. 题目:C语言中,哪个关键字用于声明一个函数? - A. `int`- B. `void`- C. `return`- D. `function`答案:A3. 题目:以下哪个语句是正确的C语言语句?- A. `int a = 5;`- B. `int a = 5.5;`- C. `int a = "5";`- D. `int a = true;`答案:A## 二、简答题1. 题目:简述C语言中指针的概念及其用途。

答案:指针是一种变量,它存储了另一个变量的内存地址。

指针的主要用途包括动态内存分配、数组操作、函数参数传递等。

通过指针,可以间接访问和修改其他变量的值,实现数据共享和高效内存使用。

2. 题目:解释C语言中的递归函数。

答案:递归函数是指在函数内部调用自身的函数。

递归函数通常用于解决可以分解为相同问题的子问题的问题,如阶乘计算、斐波那契数列等。

递归函数需要有一个明确的结束条件,以避免无限递归。

## 三、编程题1. 题目:编写一个C语言程序,实现求两个整数的最大公约数。

```c#include <stdio.h>int gcd(int a, int b) {if (b == 0)return a;return gcd(b, a % b);}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2)); return 0;}```2. 题目:编写一个C语言程序,实现字符串的反转。

c语言笔试题目100及最佳答案

c语言笔试题目100及最佳答案

c语言笔试题目100及最佳答案1. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪种数据类型是用于存储字符的?A. intB. charC. floatD. double答案:B3. 以下哪个选项不是C语言中的控制语句?A. ifB. whileC. forD. switch答案:D4. 在C语言中,以下哪个运算符用于执行算术运算?A. %B. &&C. ==D. +答案:D5. 如何定义一个具有10个元素的整型数组?A. int array[10];B. int array(10);C. int array[10] = {0};D. int array = 10;答案:A6. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B7. 在C语言中,以下哪个函数用于计算数组中元素的数量?A. sizeofB. lengthC. countD. size答案:A8. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C9. 在C语言中,以下哪个关键字用于声明一个全局变量?A. externB. staticC. globalD. local答案:A10. 在C语言中,以下哪个函数用于打开一个文件?A. fopenB. openC. readD. write答案:A11. 在C语言中,以下哪个函数用于关闭一个文件?A. fcloseB. closeC. endD. finish答案:A12. 在C语言中,以下哪个函数用于读取一个字符?A. getcharB. getcC. fgetcD. scanf答案:A13. 在C语言中,以下哪个函数用于写入一个字符?A. putcharB. putcC. fputcD. printf答案:A14. 在C语言中,以下哪个函数用于格式化输出?A. printfB. sprintfC. fprintfD. all of the above答案:D15. 在C语言中,以下哪个函数用于格式化输入?A. scanfB. sscanfC. fscanfD. all of the above答案:D16. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. lengthC. sizeD. count答案:A17. 在C语言中,以下哪个函数用于连接两个字符串?A. strcatB. strncatC. strcpyD. strncpy答案:A18. 在C语言中,以下哪个函数用于复制一个字符串?A. strcatB. strncatC. strcpyD. strncpy答案:C19. 在C语言中,以下哪个函数用于比较两个字符串?A. strcmpB. strcpyC. strcatD. strncpy答案:A20. 在C语言中,以下哪个函数用于查找字符串中子串的位置?A. strstrB. strchrC. strrchrD. strcspn答案:A。

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

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

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

)1.下列函数定义中,会出现编译错误的是 ______。

SSS_SINGLE_SELA max(int x,int y,int * { *z=x>y? x:y;}B int max(int x, {intz; z=x>y? x;y;returnz;}C max(int x,int { int z; z=x>y? x:y; return(;}D int max(int x,int { return(x>y?x:;}分值: 2答案:B[解析] 本题考查函数的定义。

选项B中函数形参y没有说明数据类型。

2.下面程序的功能是输出以下形式的金字塔图案:* * * * * * * * * * * * * * * * main() { int i,j;for(i=1;i<=4;i++;) { for(j=1;j<=4-i;j++)printf(" ");for(j=1; ;j <=________;j++)printf("*");printf("\n");} } 在下划线处应填入的是 ______。

SSS_SINGLE_SELA iB 2*i-1C 2*i+1D i+2分值: 2答案:B[解析] 根据题意可知第二个j循环结束的条件是第i行打印出的"*"的个数。

3.已有定义:int i,a[10],*p;;,则合法的赋值语句是 ______。

SSS_SINGLE_SELA p=100;B p=a[5];C p=a[2]+2;D p=a+2;分值: 2答案:D[解析] 因p是指针变量,故选项D正确。

4.以下叙述中正确的是 ______。

SSS_SINGLE_SELA C语言的源程序不必通过编译就可以直接运行B C语言中的每条可执行语句最终都将被转换成二进制的机器指令C C源程序经编译形成的二进制代码可以直接运行D C语言中的函数不可以单独进行编译分值: 2答案:B[解析] C语言编写的程序必须经过编译、连接后才可以执行,选项A错误;C 语言编译后生成的二进制代码是目标文件,需进一步连接生成.exe文件方可执行,选项C错误;C语言中函数可以单独编译。

C1考驾照笔试题目及答案

C1考驾照笔试题目及答案

C1考驾照笔试题目及答案C1考驾照笔试题目及答案「篇一」1、道路养护车辆、工程作业车进行作业时,过往车辆和人员A、应当加速超越B、应当注意避让C、应当连续鸣号D、应各抢其道正确答案:B2、驾驶人在超车时,发现前方车辆正在超车,应A、紧跟其后,伺机超越B、加速强行超越C、连续鸣喇叭催前车让路D、停止超车,让前方车辆先超车正确答案:D3、车辆在高速公路上发生故障,依法采取必要的安全措施后,车上人员应当A、在车内不得下车B、到车后帮助指挥其他车辆让行C、迅速离开车辆并转移到右侧路肩上或应急车道内D、帮助将车推到路边正确答案:C4、使用伪造、变造机动车号牌、行驶证、驾驶证或者使用其他机动车号牌、行驶证的,由公安机关交通管理部门予以收缴,扣留该机动车,并处200元以上20xx元以下罚款,记分。

A、2B、3C、6D、12正确答案:D5、行车途中,仪表板上的“如图”灯亮时,表示A、车内温度过高B、发动机温度过低C、燃油温度过高D、发动机温度过高或冷却液不足正确答案:D1、图中标志的含义是A、慢行B、禁止慢行C、快行D、拥堵路段正确答案:A2、救助有害气体中毒伤员的急救措施是A、采取保暖措施B、将伤员移到有新鲜空气的地方C、进行人工呼吸D、进行胸外心脏按压正确答案:B3、被保险人与保险公司对赔偿有争议的,可以依法申请仲裁或向A、保监会投诉B、保险公司反映情况C、当地公安机关交通管理部门报告D、人民法院提起诉讼正确答案:D4、当驾驶车辆行经两侧有行人且有积水的路面时,应A、加速通过C、减速慢行D、连续鸣喇叭正确答案:C5、夜间道路环境对安全行车的主要影响是A、能见度低,不利于观察道路交通情况B、路面复杂多变C、驾驶人体力下降D、驾驶人易产生冲动、幻觉正确答案:A6、驾驶车辆上道路行驶前,应系好安全带,其主要目的是A、避免受到管理部门的处罚B、固定乘坐位置C、使后背紧靠背椅D、在车辆发生碰撞或紧急制动时,有效保护身体正确答案:D7、机动车在道路上临时停车时,应当,机动车驾驶人不得离车,上下人员或者装卸物品后,立即驶离。

c语言笔试题目及答案

c语言笔试题目及答案

c语言笔试题目及答案1. 编写一个程序,从键盘上输入两个整数,然后输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 编写一个程序,判断一个输入的整数是奇数还是偶数。

```c#include <stdio.h>int main() {int num;printf("输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num);} else {printf("%d是奇数\n", num);}return 0;}```3. 编写一个程序,输入一个字符,判断它是否为小写字母。

```c#include <stdio.h>int main() {char ch;printf("输入一个字符:");scanf(" %c", &ch);if (ch >= 'a' && ch <= 'z') {printf("%c是小写字母\n", ch);} else {printf("%c不是小写字母\n", ch);}return 0;}```4. 编写一个程序,计算输入的两个数的最大公约数。

```c#include <stdio.h>int main() {int num1, num2, i, gcd;printf("输入两个整数:");scanf("%d %d", &num1, &num2);for (i = 1; i <= num1 && i <= num2; i++) {if (num1 % i == 0 && num2 % i == 0) {gcd = i;}}printf("最大公约数为:%d\n", gcd);return 0;}```5. 编写一个程序,判断一个输入的年份是否是闰年。

c语言笔试题目及答案

c语言笔试题目及答案

c语言笔试题目及答案一、选择题(每题2分,共10分)1. 下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. C语言中,用于定义一个字符常量的是?A. 'a'B. "a"C. aD. 1答案:A3. 下列哪个选项是正确的C语言函数定义?A. int function();B. int function;C. int function int x;D. int function(int x)答案:D4. 以下哪个选项不是C语言中的运算符?A. %=B. &&C. ::D. ||答案:C5. 在C语言中,一个变量的声明应该放在?A. 函数内部B. 函数外部C. 函数内部或外部D. 只能放在函数内部答案:C二、填空题(每题2分,共10分)1. 在C语言中,____关键字用于声明一个外部变量。

答案:extern2. C语言中,用于定义一个指针的语法是____。

答案:*变量名3. 用于在C语言中声明一个函数的关键字是____。

答案:int4. 在C语言中,____运算符用于计算两个整数的差。

答案:-5. 用于在C语言中声明一个数组的语法是____。

答案:类型名数组名[数组大小]三、简答题(每题5分,共20分)1. 简述C语言中数组和指针的关系。

答案:在C语言中,数组名可以被看作是一个指向数组首元素的指针,数组的每个元素可以通过指针运算来访问。

2. 解释C语言中的递归函数是什么?答案:递归函数是指在函数定义中调用自身的函数,它通常用于解决可以分解为更小、相似问题的任务。

3. 什么是C语言中的预处理指令?答案:预处理指令是C语言编译过程中处理的特殊指令,它们不是C语言的一部分,但对编译过程有影响,如#include、#define等。

4. 描述C语言中如何实现文件的读写。

答案:在C语言中,可以使用fopen、fprintf、fscanf、fclose 等函数来实现文件的打开、写入、读取和关闭。

二级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++笔试题目,带答案

姓名:___________ 时间:___________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。

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

C笔试题目带答案Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#姓名:___________ 时间:___________DCCBB AADAD一、选择题(1*10=10)1.如果派生类以proctected方式继承基类,则原基类的protected和public成员在派生类的访问性分别是:DA.public和public B.public和protected C.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;p2=p3;}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动作。

相关文档
最新文档