企业C语言笔试题

合集下载

企业C语言笔试题

企业C语言笔试题

华为C语言面试题集 C语言面试题-华为C 语言面试题深圳华为面试C语言面试题1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern 关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static 形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错4、语句for( ;1 ;)有什么问题?它是什么意思?答:和while(1)相同。

5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return 0;}答:10,12,1207、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

公司内部C语言笔试题

公司内部C语言笔试题

《C语言基础小测试题》公司内部笔试题——看看你的基础如何第一题:单项选择1、对下述代码说法正确的是:( c )#include <stdio.h>int main(void){char aChar;int aInt;aInt = aChar = -120;printf("%d\n", aInt);return 0;}A、一定输出-120 。

B、一定不能输出-120 。

C、可能输出-120。

D、输出%d2、对下述代码说法正确的是:( d )void main(void){char a[] = {0, 1, 2, 3};int *p = (int *)a;printf(“%d ”, *p);}提示:字符0的ASCII码是48.A、输出0B、输出48C、如果CUP是小端的话输出一个负数。

D、以上说法都不正确。

3、对下述代码说法正确的是:( a )int main(void){unsigned int a = 4;int b = -10;(a + b) > 0 ? printf("> 0") : printf("< 0");return 0;}A、输出> 0B、输出< 0C、没有输出D、语法错误。

4、对下述代码说法正确的是:( d )void main(){char a[3];char b[ ] = “China”;a = b;printf(“%s”,a);}A.输出:China B.输出:Ch C.输出:Chi D.编译出错5、运行下述C程序会显示( a )void swap(int *a, int *b){int *temp = NULL;temp = a;a = b;b = temp;}void main(){int a = 1;int b = 2;swap (&a, &b);printf(“%d,%d”, a, b);}A、输出1,2.B、输出2,1C、swap函数编译出错。

c语言考试笔试题及答案详解

c语言考试笔试题及答案详解

c语言考试笔试题及答案详解一、选择题(每题2分,共20分)1. C语言中用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言中数组的描述,错误的是:A. 数组必须在编译时确定大小B. 数组可以是多维的C. 数组的元素必须是同一类型D. 数组可以动态分配答案:D3. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strcmp答案:A4. 下列哪个选项不是C语言中的运算符?A. %B. &&C. ::D. ||答案:C5. C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:C6. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. caseD. for答案:C7. 在C语言中,用于声明一个指针的语法是:A. int *p;B. int p*;C. int *p = 0;D. int *p = p;答案:A8. C语言中,用于定义一个枚举类型的关键字是:A. enumB. typedefC. unionD. struct答案:A9. 下列关于C语言中指针的描述,错误的是:A. 指针可以指向任何类型的数据B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针可以存储函数的地址答案:D10. C语言中,用于定义一个联合体的关键字是:A. structB. unionC. enumD. typedef答案:B二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个变量的存储类型为静态存储。

答案:static2. C语言中,使用________运算符可以计算两个整数的和。

答案:+3. 在C语言中,使用________关键字可以定义一个函数的返回类型为无返回值。

经典C语言测试题(众多知名企业用作招聘笔试题)

经典C语言测试题(众多知名企业用作招聘笔试题)

一个很牛的人出的被众多知名企业用作面试题的看似很简单C语言测试题试题本试题仅用于考查程序员的基本编程技能。

内容限于常用语法,不涉及数据结构、算法以及深奥的语法。

考试成绩能反映出考生的编程质量以及对的理解程度,但不能反映考生的智力和软件开发能力。

笔试时间90分钟。

请考生认真答题,切勿轻视。

一、请填写 , , 指针变量与“零值”比较的语句。

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

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

二、以下为下的32位程序,请计算的值(10分)三、简答题(25分)1、头文件中的干什么用?2、 <> 和“”有什么区别?3、有什么用途?(请至少说明两种)4、在程序中调用被 C编译器编译后的函数,为什么要加“C”声明?5、请简述以下两个循环的优缺点四、有关内存的思考题(20分)五、编写函数(10分)已知函数的原型是*( *, *);其中是目的字符串,是源字符串。

(1)不调用的字符串库函数,请编写函数2)能把的内容复制到,为什么还要 * 类型的返回值?六、编写类的构造函数、析构函数和赋值函数(25分)已知类的原型为:{:( * = ); 普通构造函数( ); 拷贝构造函数~ (); 析构函数& =( ); 赋值函数:*; 用于保存字符串};请编写的上述4个函数。

附录C :试题的答案与评分标准一、请填写 , , 指针变量与“零值”比较的语句。

(10分)二、以下为下的32位程序,请计算的值(10分)三、简答题(25分)1、头文件中的干什么用?(5分)答:防止该头文件被重复引用。

2、 <> 和“”有什么区别?(5分)答:对于 <> ,编译器从标准库路径开始搜索对于“”,编译器从用户的工作路径开始搜索3、有什么用途?(请至少说明两种)(5分)答:(1)可以定义常量(2)可以修饰函数的参数、返回值,甚至函数的定义体。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0.123C. 1.2E3D. 1.2e3答案:A2. C语言中,以下哪个是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"'D. 'Hello, World!"答案:A4. C语言中,以下哪个是合法的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3};答案:A5. 在C语言中,以下哪个是正确的函数声明?A. int add(int x, int y);B. int add(int x; int y);C. int add(int x, int);D. int add(int, int);答案:A6. C语言中,以下哪个是正确的结构体声明?A. struct Point { int x, y; };B. struct { int x, y; } Point;C. struct Point { int x; int y; };D. struct { int x, y; };答案:C7. 在C语言中,以下哪个是正确的指针声明?A. int *p;B. int *p[];C. int *p[5];D. int (*p)[5];答案:A8. C语言中,以下哪个是正确的枚举声明?A. enum Color { Red, Green, Blue };B. enum Color: Red, Green, Blue;C. enum { Red, Green, Blue };D. enum Color { 1, 2, 3 };答案:A9. 在C语言中,以下哪个是正确的宏定义?A. #define MAX 100B. #define MAX(100)C. #define MAX 100D. #define MAX = 100答案:A10. C语言中,以下哪个是正确的条件语句?A. if (x > 0) { ... } else { ... }B. if x > 0 { ... } else { ... }C. if (x > 0) then { ... } else { ... }D. if (x > 0) { ... } else if { ... }答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案C语言笔试考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A2. C语言中,int类型变量的默认初始值是多少?A. 0B. 1C. -1D. 随机值答案:A3. 以下哪个是正确的C语言函数声明?A. int function(int a, int b)B. void function(int a, int b)C. int function(int a, int b) {}D. int function(int a, int b) {return a + b;}答案:B4. 在C语言中,哪个运算符用于求两个数的余数?A. /B. %C. *D. -答案:B5. 下列哪个是C语言中正确的数组声明?A. int array[10];B. int array = 10;C. int array(10);D. int [10] array;答案:A6. C语言中,哪个语句用于结束程序的执行?A. break;B. continue;C. return;D. exit;答案:C7. 在C语言中,哪个函数用于计算两个数的和?A. sum(int a, int b)B. add(int a, int b)C. plus(int a, int b)D. None of the above答案:D8. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:A9. 下列哪个选项是C语言中的控制流语句?A. ifB. switchC. caseD. All of the above答案:D10. 在C语言中,哪个语句用于实现循环?A. forB. whileC. do-whileD. All of the above答案:D二、填空题(每空2分,共20分)1. C语言中,____ 用于定义一个字符常量。

大厂C语言笔试题及答案

大厂C语言笔试题及答案

大厂C语言笔试题及答案1. 请写出C语言中声明一个结构体的语法,并给出一个示例。

答案:在C语言中,声明一个结构体的语法如下:```cstruct 结构体名 {成员列表;};```示例:```cstruct Student {int id;char name[20];float score;};```2. 描述C语言中指针和数组的关系。

答案:在C语言中,指针和数组有着密切的关系。

数组名可以被看作是一个指向数组首元素的指针。

例如,如果有一个数组`intarr[10];`,那么`arr`就是指向数组第一个元素的指针。

3. 请解释C语言中的预处理指令`#include`的作用。

答案:预处理指令`#include`用于在编译前将指定的文件包含到当前文件中。

它通常用于包含标准库头文件或用户自定义的头文件。

例如:#include <stdio.h>```这行代码会将标准输入输出库的头文件包含到当前文件中。

4. 在C语言中,如何定义一个函数?答案:在C语言中定义一个函数的语法如下:```c返回类型函数名(参数列表) {函数体;}```例如:```cint add(int a, int b) {return a + b;}```5. 解释C语言中`sizeof`运算符的作用。

答案:`sizeof`运算符用于计算数据类型或变量所占用的字节数。

例如:```cint size = sizeof(int);```这行代码会将`int`类型所占用的字节数赋值给变量`size`。

6. 请写出一个C语言程序,实现两个整数的交换。

```c#include <stdio.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int main() {int x = 10, y = 20;printf("Before swap: x = %d, y = %d\n", x, y);swap(&x, &y);printf("After swap: x = %d, y = %d\n", x, y);return 0;}```7. 描述C语言中`break`和`continue`语句的作用。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案C语言笔试考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name答案:C2. 下列哪个选项是C语言的关键字?A. defineB. intC. integerD. float答案:B3. 以下哪个语句不能通过编译?A. int a = 10;B. int b = 10.5;C. int c = 'a';D. int d = 1.0;答案:B4. C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sin()D. sum()答案:D(注意:sum()不是C语言标准库函数,这里假设它是一个自定义函数)5. 以下哪个选项是正确的C语言数组声明?A. int numbers[];B. int numbers[10] = {};C. int numbers = 10;D. int [10] numbers;答案:B6. 以下哪个是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\"World"答案:A7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction();B. int myFunction;C. myFunction();D. int myFunction()答案:A8. 下列哪个选项不是C语言的标准输入输出库函数?A. printf()B. scanf()C. cout()D. getchar()答案:C9. 在C语言中,以下哪个是正确的逻辑运算符?A. &&B. ||C. ||D. ++答案:A10. 下列哪个选项是C语言的预处理指令?A. #includeB. defineC. ifD. else答案:A二、简答题(每题5分,共20分)1. 请简述C语言中数组和指针的区别。

C语言工作笔试题

C语言工作笔试题

【1 使用宏】1.1#ifdef NDEBUG#define TRACE(S) S#else#define TRACE(S) printf(”%s;\n”, #S); S#endif问:以上TRACE()宏的作用是什么?在debug状态下在计算表达式S前先打印S1.2 #error的作用?强制编译器报错不继续编译1.3 定义一个宏,求出给定数组中的元素的个数#define NELEMENTS(array) ??#define NELEMENTS(array) (sizeof(array) / sizeof((array)[0]))1.4 定义一个宏,求出给定结构中给定成员的偏移量#define OFFSET(structure, member) ??#define OFFSET(structure, member) ((int) &(((structure *)0)->member))【2 数据声明和定义】给定以下类型的变量a的定义式:a) An integer Int ab) A pointer to an integer int *ac) A pointer to a pointer to an integer int **ad) An array of 10 integers int a[10]e) An array of 10 pointers to integers int *a[10]f) A pointer to an array of 10 integers int (*a)[10]g) A pointer to a function that takes an integer as an argument and returns a n integer int (*a)(int)h) An array of ten pointers to function s that take an integer argument and ret urn an integer int (*a[10])(int)【3 复杂类型(1)】有如下表达式:char (*(*x())[])();请用文字描述x是什么。

C语言笔试题及参考答案

C语言笔试题及参考答案

C语言笔试题及参考答案-东软集团一、选择题(共30题,每题2分,满分60分)1、(数据结构)对图中的二叉树,按先根次序遍历得到的结点序列为BA、ABCDHEIFGB、ABDHIECFGC、HDIBEAFCGD、HIDBEFGAC2、(数据结构)设线性表(a1,a2,a3,...,a500)中所有元素的值由小到大排列,对一个给定的值K,用二分法查找表中与K相等的元素,在查找不成功的情况下,至多需要比较 A 次。

(本人拿不准)A、8B、9C、10D、113、(数据结构)二叉树的查找有深度优先和广度优先,深度优先包括 AA、前序遍历、后序遍历、中序遍历B、前序遍历、后序遍历、层次遍历C、前序遍历、中序遍历、层次遍历D、中序遍历、后序遍历、层次遍历4、(数据结构)已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为DA、DEBAFCB、DEFBCAC、DEBCFAD、DEBFCA5、(数据结构)队列是一种常用的数据结构,其元素的入队与出队遵循A 原则。

A、先进先出B、先进后出C、随机进、随机出D、顺序进、随机出6、(数据结构)在数据结构中,结点及结点间的相互关系是数据的逻辑结构,数据结构按逻辑关系的不同,通常可分为两类A、动态结构和表态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构7、(数据结构)队列是一种常用的数据结构,其元素的入队与出队遵循原则。

A、先进先出B、先进后出C、随机进、顺序出D、顺序进、随机出8、(数据结构)与单向链表相比,双向链表的优点之一是A、更节省存储空间B、便于进行随机访问C、更容易访问相邻结点D、可以省略头指针和尾指针9、(操作系统)在文件存储设备管理中,有三类常用字的空闲块管理方法,即位图向量法,空闲块链表法和A、级目录法B、多级目录法C、分区法D、索引法10、(操作系统)在进程管理中,当时,进程从阻塞状态变为就绪状态。

A、进程被进程调度程序选中B、等待某一事件C、等待事件发生D、时间片用完11、(操作系统)若进程P1正在运行,操作系统强行撤下P1进程所占用的CPU,让具有更高优先级的进程P2运行,这种调度方式称为A、中断方式B、抢占方式C、非抢占方式D、查询方式12、(操作系统)I/O控制方式有多种,一般用于大型、高效的计算机系统中。

c语言笔试题及答案

c语言笔试题及答案

c语言笔试题及答案C语言笔试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. voidB. intC. floatD. all of the above答案:D2. C语言中,哪个函数用于计算两个数的和?A. add()B. sum()C. max()D. min()答案:A3. 在C语言中,以下哪个是正确的字符串定义方式?A. char str[10] = "Hello";B. string str = "Hello";C. char str[] = "Hello";D. char str = "Hello";答案:A4. 以下哪个选项不是C语言的基本数据类型?A. intB. floatC. doubleD. string答案:D5. 在C语言中,以下哪个语句是正确的循环语句?A. whileB. do-whileC. forD. all of the above答案:D二、填空题(每空2分,共20分)6. C语言中,定义一个整型变量的关键字是________。

答案:int7. 在C语言中,表示逻辑与的运算符是________。

答案:&&8. 一个C语言程序的执行从________函数开始。

答案:main9. 在C语言中,数组的索引从________开始。

答案:010. C语言中,表示逻辑非的运算符是________。

答案:!三、简答题(每题10分,共20分)11. 简述C语言中函数的定义和调用过程。

答案:在C语言中,函数定义包括返回类型、函数名、参数列表和函数体。

调用函数时,需要使用函数名和相应的参数列表。

12. 解释C语言中指针的概念及其用途。

答案:指针是C语言中一种特殊的变量,它存储了另一个变量的内存地址。

指针主要用于直接访问内存地址,实现动态内存分配,以及函数参数的传递等。

c语言经典笔试题(非常全)

c语言经典笔试题(非常全)

c语言经典笔试题(非常全)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

#define MIN(A,B) ((A) <= (B) (A) : (B))4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢这个问题用几个解决方案。

我首选的方案是:while(1){}一些程序员更喜欢如下方案:for(;;){}第三个方案是用 gotoLoop:...goto Loop;5. 用变量a给出下面的定义a) 一个整型数(An integer)b) 一个指向整型数的指针(A pointer to an integer)c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)d) 一个有10个整型数的数组(An array of 10 integers)e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)f) 一个指向有10个整型数数组的指针(A pointer to an array of10 integers)g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )答案是:a) int a; 关键字static的作用是什么这个简单的问题很少有人能回答完全。

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语言笔试题(答案)

c语言笔试题(答案)

c语⾔笔试题(答案)笔试题⼀、填空题(每个空4分,共28分)1)struct tagABC{char name[10];char sex;long sno;float score[4];}*pAbc;(四字节对齐)pAbc=NULL;那么,执⾏pAbc+=2;之后pAbc的值为(64 )2)如下代码,最终value的值是(8)int *p1,*p2;int value;p1=(int*)0×400;p2=(int*)0×408;value = p2-p1;3)如下代码,printf的结果为(2)#include〈stdio.h〉#include〈string.h〉void main(void){char acNew[20]= “\\0\0”;printf(“%d\n”,strlen(acNew));}4) 有如下程序段,运⾏该程序的输出结果是(33)main (){int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执⾏(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAAUnsigned char ucPara0:2;Unsigned char ucState:6;Unsigned char ucTail:4;Unsigned char ucAvail;Unsigned char unTail2:4;Unsigned long ulData;}AAA_S问:AAA_S在字节对齐分别为1,4情况下,占⽤的空间⼤⼩分别是多少?( 9)(12 )⼆、选择题(每题2分,共34分)1)若有说明int(*p)[3];以下叙述正确的是( D )A:p是指针数组B:(*p)[3]和*p[3]等价C:p是指向⼀维数组中任何⼀个元素的指针D:p是指向含有3个整型元素的⼀维数组的指针2)以下关于单元测试的描述,哪些是对的?(D)A:⿊盒测试针对软件的功能,不考虑功能的实现细节;B:⽩盒测试针对源代码的测试,从程序功能的具体实现上找错;C:路径覆盖是⿊盒测试的⼀种⽅法,编写测试⽤例使程序的每条语句都能⾛到;D:条件覆盖是百盒测试的⼀种⽅法, 编写测试⽤例使程序的每个判断的各种情况都能到3)以下可以⽤于任务间通信的有(ABCD)A:共享内存 B:信号量C:消息队列和管道 D:socket调⽤4)有关结构,以下哪些描述是对的?(BC)A:为了测试⽅便,尽量把⼀个结构的功能设计得多⼀些B:不同结构间的关系不要过于复杂C:结构中的各元素应代表同⼀事务的不同侧⾯,⽽不应把描述没有关系或关系很弱的不同事务的元素放到同⼀结构中D:结构中元素的布局与排列顺序可以随意设计5)关于强制类型转化,下⾯说法正确的是(ABCD)A:当⽬的结构的空间⼤于源结构的空间时,要重点关注内存访问超过源结构范围的情形,可能越界;B:当⽬的结构的空间⼩于源结构的空间时,要重点关注对⽬的结构赋值不能完全覆盖源结构范围的情形,可能遗漏;C:结构体之间的强制类型转换时,其成员字段的数据类型的差异也是要格外⼩⼼的; D:与结构体之间的强制类型转换相⽐,基本数据结构的强制类型转换更容易出现上⾯描述的情况,使⽤的时候,⼀定要慎之⼜慎;6)正确的使⽤assert,软件系统不会对⼈为原因造成的错误进⾏处理。

(完整版)经典C语言测试题(众多知名企业用作招聘笔试题)

(完整版)经典C语言测试题(众多知名企业用作招聘笔试题)

一个很牛的人出的被众多知名IT企业用作面试题的看似很简单C语言测试题C++/C试题本试题仅用于考查C++/C程序员的基本编程技能。

内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。

考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。

笔试时间90分钟。

请考生认真答题,切勿轻视。

一、请填写BOOL , float, 指针变量与“零值”比较的if 语句。

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

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

二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)三、简答题(25分)1、头文件中的ifndef/define/endif 干什么用?2、#include <filename.h> 和#include “filename.h” 有什么区别?3、const 有什么用途?(请至少说明两种)4、在C++ 程序中调用被C编译器编译后的函数,为什么要加extern “C”声明?5、请简述以下两个for循环的优缺点四、有关内存的思考题(20分)五、编写strcpy函数(10分)已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串,strSrc是源字符串。

(1)不调用C++/C的字符串库函数,请编写函数strcpy2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?六、编写类String的构造函数、析构函数和赋值函数(25分)已知类String的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operate =(const String &other); // 赋值函数char *m_data; // 用于保存字符串};请编写String的上述4个函数。

c语言经典笔试题及答案详解

c语言经典笔试题及答案详解

c语言经典笔试题及答案详解1. 题目:以下代码的输出是什么?```c#include <stdio.h>int main() {int a = 1;int b = 2;int c = a + b;printf("%d", c);return 0;}```答案:输出是3。

2. 题目:如何使用指针交换两个变量的值?答案:可以使用以下代码:```c#include <stdio.h>void swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}int main() {int a = 10;int b = 20;swap(&a, &b);printf("a = %d, b = %d\n", a, b); return 0;}```输出将是:a = 20, b = 10。

3. 题目:以下代码的输出是什么?```c#include <stdio.h>int main() {char *str = "Hello, World!";printf("%c", *(str + 7));return 0;}```答案:输出是W。

4. 题目:以下代码段的输出是什么?```c#include <stdio.h>int main() {int x = 10;if (x = 20)printf("x is 20\n");elseprintf("x is not 20\n");return 0;```答案:输出是x is 20。

注意这里if语句中使用了赋值运算符(=)而不是比较运算符(==),因此x被赋值为20,条件判断为真。

5. 题目:以下代码的输出是什么?```c#include <stdio.h>int main() {int a = 2;int b = 4;int c = a & b;printf("%d", c);return 0;}```答案:输出是0。

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 等函数来实现文件的打开、写入、读取和关闭。

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

华为C语言面试题集 C语言面试题-华为C 语言面试题深圳华为面试C语言面试题1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。

要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。

对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern 关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static 形式来声明同名全局变量。

可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错4、语句for( ;1 ;)有什么问题?它是什么意思?答:和while(1)相同。

5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环6、请写出下列代码的输出内容#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return 0;}答:10,12,1207、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。

这两者在存储方式上并无不同。

这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。

而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。

由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。

从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。

把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。

static函数与普通函数作用域不同。

仅在本文件。

只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。

对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝.8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。

9、设有以下说明和定义: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));的执行结果是:___52____答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 2010、队列和栈有什么区别?队列先进先出,栈后进先出11、写出下列代码的输出内容#includeint inc(int a){return(++a);}int multi(int*a,int*b,int*c){return(*c=*a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2) (int*,int*,int*);void show(FUNC2 fun,int arg1, int*arg2){INCp=&inc;int temp =p(arg1);fun(&temp,&arg1, arg2);printf("%d\n",*arg2);}main(){int a;show(multi,10,&a);return 0;}答:11012、请找出下面代码中的所以错误说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”1、#include"string.h"2、main()3、{4、 char*src="hello,world";5、 char* dest=NULL;6、 int len=strlen(src);7、 dest=(char*)malloc(len);8、 char* d=dest;9、 char* s=src[len];10、 while(len--!=0)11、 d++=s--;12、 printf("%s",dest);13、 return 0;14、}答:方法1:int main(){char* src = "hello,world";int len = strlen(src);char* dest = (char*)malloc(len+1);//要为\0分配一个空间char* d = dest;char* s = &src[len-1];//指向最后一个字符while( len-- != 0 )*d++=*s--;*d = 0;//尾部要加\0printf("%s\n",dest);free(dest);// 使用完,应当释放空间,以免造成内存汇泄露return 0;}方法2:#include#includemain(){char str[]="hello,world";int len=strlen(str);char t;for(int i=0; i {t=str[i];str[i]=str[len-i-1]; str[len-i-1]=t;}printf("%s",str);return 0;}1.-1,2,7,28,,126请问28和126中间那个数是什么?为什么?第一题的答案应该是4^3-1=63规律是n^3-1(当n为偶数0,2,4)n^3+1(当n为奇数1,3,5)答案:632.用两个栈实现一个队列的功能?要求给出算法和思路!设2个栈为A,B, 一开始均为空.入队:将新元素push入栈A;出队:(1)判断栈B是否为空;(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;(3)将栈B的栈顶元素pop出;这样实现的队列入队和出队的平摊复杂度都还是O(1), 比上面的几种方法要好。

3.在c语言库函数中将一个字符转换成整型的函数是atool()吗,这个函数的原型是什么?函数名: atol功能: 把字符串转换成长整型数用法: long atol(const char *nptr);程序例:#include#includeint main(void){long l;char *str = "98765432";l = atol(lstr);printf("string = %s integer = %ld\n", str, l);return(0);}13.对于一个频繁使用的短小函数,在C 语言中应用什么实现,在C++中应用什么实现?c用宏定义,c++用inline14.直接链接两个信令点的一组链路称作什么?PPP点到点连接15.接入网用的是什么接口?16.voip都用了那些协议?17.软件测试都有那些种类?黑盒:针对系统功能的测试白合:测试函数功能,各函数接口18.确定模块的功能和模块的接口是在软件设计的那个队段完成的?概要设计阶段19.enum string{x1,x2,x3=10,x4,x5,}x;问x= 0x801005,0x8010f4 ;20.unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;请问p1+5= ;p2+5= ;选择题:21.Ethternet链接到Internet用到以下那个协议?A.HDLC;B.ARP;C.UDP;D.TCP;E.ID22.属于网络层协议的是:A.TCP;B.IP;C.ICMP;D.X.2523.Windows消息调度机制是:A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈;24.unsigned short hash(unsigned short key){return (key>>)%256}请问hash(16),hash(256)的值分别是:A.1.16;B.8.32;C.4.16;D.1.32找错题:25.请问下面程序有什么错误?int a[60][250][1000],i,j,k;for(k=0;k<=1000;k++)for(j=0;j<250;j++)for(i=0;i<60;i++)a[i][j][k]=0;把循环语句内外换一下26.#define Max_CB 500void LmiQueryCSmd(Struct MSgCB * pmsg){unsigned char ucCmdNum;......for(ucCmdNum=0;ucCmdNum{......;}死循环27.以下是求一个数的平方的程序,请找出错误:#define SQUARE(a)((a)*(a))int a=5;int b;b=SQUARE(a++);28.typedef unsigned char BYTEint examply_fun(BYTE gt_len; BYTE *gt_code){BYTE *gt_buf;gt_buf=(BYTE *)MALLOC(Max_GT_Length);......if(gt_len>Max_GT_Length){return GT_Length_ERROR;}.......}问答题:29.IP Phone的原理是什么?IPV630.TCP/IP通信建立的过程怎样,端口有什么作用?三次握手,确定是哪个应用程序使用该协议31.1号信令和7号信令有什么区别,我国某前广泛使用的是那一种?32.列举5种以上的电话新业务?找错题试题1:void test1(){char string[10];char* str1 = "0123456789";strcpy( string, str1 );}试题2:void test2(){char string[10], str1[10];int i;for(i=0; i<10; i++){str1[i] = 'a';}strcpy( string, str1 );}试题3:void test3(char* str1){char string[10];if( strlen( str1 ) <= 10 ){strcpy( string, str1 );}}解答:试题1字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string 只有10个字节的空间,strcpy会导致数组越界;对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string, str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10 分;对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen的结果未统计’\0’所占用的1个字节。

相关文档
最新文档