c语言常见笔试题总结
c语言常见笔试题总结
此句出自北宋诗人林逋的七律《山园小梅》,原诗为“众芳摇落独暄妍,占尽风情向小园。
疏影横斜水清浅,暗香浮动月黄昏。
霜禽欲下先偷眼,粉蝶如知合断魂。
幸有微吟可相狎,不须檀板共金尊。
”
【1 使用宏】
1.1
#ifdef NDEBUG
now i will introduce myself briefly. i am 21 years old. i was born in heilongjiang province, northeast of china. i am a senior student at beijing xx university. my major is packaging engineering. and i will receive my bachelor degree after my graduation in june. in the past 4 years, i spend most of my time on study. i have passed cet4/6 with an ease. and i have acquired basic knowledge of packaging and publishing both in theory and in practice. besides, i have attended several packaging exhibition held in beijing. this is our advantage study here. moreover, i have taken a tour to some big factory and company. through these i have a deeply understanding of domestic packaging industry.
勤思考研解析:此题考查了初中生出现反抗心理的原因,有三个:自我意识高涨;独立意识增强;中枢神经系统的兴奋性过强,因此答案是C。
#define TRACE(S) S
#else
#define TRACE(S) printf(“%s;\n”, #S); S
#endif
问:以上TRACE()宏的作用是什么?
1.2 #error的作用?
1.3 定义一个宏,求出给定数组中的元素的个数
人员绩效考评的成对比较法中,管理者只有在对每个员工与其他所有员工进行成对比较之后,才能得出对其业绩的总的评价结果。
如某部门有五名员工,用该方法所需的总的成对比较次数为
答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。
这样,从
浏览器的地址栏中可以看到跳转后的链接地址。
所以,前者更加高效,在前者可以满足需
要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。
在有些情况下,
比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
#define NELEMENTS(array) ??
1.4 定义一个宏,求出给定结构中给定成员的偏移量
#define OFFSET(structure, member) ??
基线化一个文档如果经过讨论被通过了,被固定了,就可以说这个文档被“基线化”了,然后所有人就可以在这个“基线”的基础上工作。
基线化一个文档如果经过讨论被通过了,被固定了,就可以说这个文档被“基线化”了,然后所有人就可以在这个“基线”的基础上工作。
【2 数据声明和定义】
给定以下类型的变量a的定义式:
a) An integer
b) A pointer to an integer
c) A pointer to a pointer to an integer
d) An array of 10 integers
e) An array of 10 pointers to integers
曹禺(1910-1996),原名万家宝,字小石,祖籍湖北潜江,生于天津一个没落的封建
官僚家庭,中国现代杰出的戏剧家,着有《雷雨》、《日出》、《原野》、《北京人》等
着名作品。
其中处女作《雷雨》的问世,在中国现代话剧史上具有极其重大的意义,它被
公认为是中国现代话剧真正成熟的标志。
f) A pointer to an array of 10 integers
g) A pointer to a function that takes an integer as an argument and
returns an integer
h) An array of ten pointers to functions that take an integer argument and return an integer
【3 复杂类型(1)】
有如下表达式:
char (*(*x())[])();
请用文字描述x是什么。
【4 复杂类型(2)】
jmp_buf的定义:
typedef struct _jmp_buf
{
REG_SET reg;
int extra[3];
感谢您的阅读,祝您生活愉快。
C语言常见笔试题大全
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL /* UL表示unsigned logn */我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。
记住,第一印象很重要。
2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) (A) : (B))这个测试是为下面的目的而设的:1). 标识#define在宏中应用的基本知识。
这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2). 三重条件操作符的知识。
这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3). 懂得在宏中小心地把参数用括号括起来4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?least = MIN(*p++, b);3. 预处理器标识#error的目的是什么?如果你不知道答案,请看参考文献1。
这问题对区分一个正常的伙计和一个书呆子是很有用的。
只有书呆子才会读C语言课本的附录去找出象这种问题的答案。
当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。
c笔试题及答案
c笔试题及答案一、选择题(每题2分,共10分)1. 下列哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. intD. variable$2答案:B2. C语言中,哪个关键字用于定义一个函数?A. varB. defineC. functionD. void答案:D3. 在C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. andD. or答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. count()答案:A5. 下面哪个选项是C语言中的整型数据类型?A. intB. floatC. charD. All of the above答案:D二、填空题(每题2分,共10分)1. 在C语言中,一个程序的执行从________函数开始。
答案:main2. 如果一个变量的值在程序执行过程中不会改变,那么它应该被声明为________。
答案:const3. C语言中,________运算符用于将一个值赋给变量。
答案:=4. 在C语言中,________关键字用于定义一个结构体。
答案:struct5. C语言中,________函数用于将一个字符串复制到另一个字符串。
答案:strcpy三、简答题(每题5分,共20分)1. 请简述C语言中数组的定义方式。
答案:在C语言中,数组的定义方式如下:类型名数组名[数组大小];例如,定义一个包含10个整数的数组:int numbers[10];2. 解释C语言中指针的概念。
答案:在C语言中,指针是一个变量,其存储的是另一个变量的内存地址。
通过指针,程序可以直接访问和操作内存中的数据。
3. 请描述C语言中函数的原型声明。
答案:函数原型声明在C语言中用于告知编译器函数的名称、返回类型、参数类型和数量,但不提供函数的实现。
函数原型声明的一般形式为:返回类型函数名(参数类型参数名, ...);4. 举例说明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语言中,使用________关键字可以定义一个函数的返回类型为无返回值。
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个字节. 所以它的大小是20.data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是 20 + 32 = 52。
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试题讲解问答题部分:(面试中问到的内容)1.局部变量能否和全局变量重名?(华为)解析:能,局部会屏蔽全局。
要用全局变量,需要使用"::"局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量.比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
3.如何引用一个已经定义过的全局变量?(华为)解析:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
4.static全局变量与普通的全局变量有什么区别?解析:1)全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式从以上分析可以看出,static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝5.进程和线程的差别(微软亚洲)解析:答:线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销6.用宏定义写出swap(x,y)(思科)解析:#define swap(x,y)x=x+y;y=x - y;x=x - y7.什么是预编译,何时需要预编译:(思科)解析:就是指程序执行前的一些预处理工作,主要指#表示的.何时需要预编译?1)、总是使用不经常改动的大型代码体。
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笔试题目及答案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语言常见笔试题总结【1 使用宏】1.1#ifdef NDEBUG#define TRACE(S) S#else#define TRACE(S) printf("%s;\n", #S); S#endif问:以上TRACE()宏的作用是什么?1.2 #error的作用?1.3 定义一个宏,求出给定数组中的元素的个数#define NELEMENTS(array) ??1.4 定义一个宏,求出给定结构中给定成员的偏移量#define OFFSET(structure, member) ??【2 数据声明和定义】给定以下类型的变量a的定义式:a) An integerb) A pointer to an integerc) A pointer to a pointer to an integerd) An array of 10 integerse) An array of 10 pointers to integersf) A pointer to an array of 10 integersg) A pointer to a <I>function</I> that takes an integer as an argument and returns an integerh) An array of ten pointers to <I>function</I>s that take an integer argument and return an integer 【3 复杂类型(1)】有如下表达式:char (*(*x())[])();请用文字描述x是什么。
【4 复杂类型(2)】jmp_buf的定义:typedef struct _jmp_buf{REG_SET reg;int extra[3];} jmp_buf[1];setjmp函数的原型:extern int setjmp (jmp_buf __env);问:调用setjmp时传递__env的内容,还是传递指针?【5 头文件】问:为什么标准头文件都有类似以下的结构?#ifndef __INCvxWorksh#define __INCvxWorksh#ifdef __cplusplusextern "C" {#endif/*...*/#ifdef __cplusplus}#endif#endif /* __INCvxWorksh */【6 static关键字】请说出static关键字的3种用处:(1)用于全局变量;(2)用于局部变量;(3)用于函数。
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. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。
