公司c语言笔试题

合集下载

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笔试题目及答案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语言笔试考试题及答案

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`语句的作用。

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语言工作笔试题

【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语言经典笔试题(非常全)

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 of 10 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; // An integerb) int *a; // A pointer to an integerc) int **a; // A pointer to a pointer to an integerd) int a[10]; // An array of 10 integerse) int *a[10]; // An array of 10 pointers to integersf) int (*a)[10]; // A pointer to an array of 10 integersg) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integerh) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer6. 关键字static的作用是什么?这个简单的问题很少有人能回答完全。

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语言招聘试题及答案一、选择题(每题4分,共10题)1. 下列哪个是C语言中的关键字?A. printfB. outputC. writeD. yield2. C语言中,用于定义常量的关键字是?A. constantB. defineC. constD. var3. 在C语言中,变量名的命名规则是什么?A. 只能使用英文字母B. 只能使用数字C. 只能使用下划线D. 可以使用字母、数字和下划线,且必须以字母或下划线开头4. C语言的注释方式是什么?A. // 单行注释B. /\* \*/ 块注释C. # 开头的注释D. ''' ''' 注释5. 下列哪个运算符的优先级最高?A. +B. *C. =D. /6. 在C语言中,用于循环执行的关键字是?A. forB. ifC. switchD. continue7. 下列哪个函数用于从标准输入读取一个字符?A. getchar()B. putchar()C. scanf()D. printf()8. 在C语言中,条件语句的格式是怎样的?A. if(condition) { statement; }B. for(condition) { statement; }C. while(condition) { statement; }D. do { statement; } while (condition);9. 下列哪个函数用于将一个字符转换为整数?A. atoi()B. itoa()C. getchar()D. putchar()10. 在C语言中,判断两个数是否相等的运算符是?A. ==B. >C. <D. !=二、填空题(每题4分,共5题)1. 在C语言中,输出到屏幕上的函数是__printf__。

2. 在C语言中,& 是取__地址__运算符。

3. 使用__while__语句实现的循环会先判断条件是否成立。

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语言经典笔试题(非常全)

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 of 10 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语言经典笔试题(非常全)

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

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语言经典笔试题及答案详解

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的笔试题及答案1. 选择题:(1)以下哪个不是C语言的关键字?A. intB. floatC. doubleD. case(2)以下哪个运算符用于判断两个值是否相等?A. ==B. !=C. >D. &&(3)在C语言中,以下哪个循环结构不会先判断条件再执行循环体?A. while循环B. do-while循环C. for循环(4)以下哪个函数用于输出字符到屏幕上?A. printf()B. scanf()C. getchar()D. putchar()2. 填空题:(1)C语言中,用于声明整型变量的关键字是______。

(2)在C语言中,条件运算符的格式为______。

(3)以下是一个典型的for循环语句:for (i = 0; i < 10; i++) {printf("%d ", i);}那么上述代码的输出结果是______。

3. 简答题:(1)请简要解释C语言的数据类型。

包括基本数据类型和派生数据类型的定义和特点。

(2)什么是函数?请简要解释函数的定义和调用,并给出一个简单的函数示例。

(3)请简要介绍一下C语言中的条件语句if-else的用法,并给出一个简单的if-else语句示例。

答案:1. (1)D;(2)A;(3)C;(4)A2. (1)int;(2)exp1 ? exp2 : exp3;(3)0 1 2 3 4 5 6 7 8 93. (1)基本数据类型:包括整型、浮点型、字符型和空类型,其定义不依赖其他数据类型;派生数据类型:包括数组、结构体和指针类型,其定义依赖于基本数据类型或其他派生数据类型。

基本数据类型具有固定的存储空间和取值范围,而派生数据类型可以根据需要组合和扩展基本数据类型。

(2)函数是一段完成特定任务的程序代码。

函数的定义包括函数头和函数体,函数头包括函数返回类型、函数名和参数列表,函数体包括函数执行的代码。

函数的调用是通过函数名和传递给函数的参数来调用的。

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语言笔试题

公司内部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语言面试题集 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 就构成了静态的全局变量。

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19.写一个函数找出一个整数数组中,第二大的数。自己设计函数的形式参数和返回值。
20.写一个函数,输入一个字符串,分别统计出其中的英文字母数,数字,空格,和其他字符。
4.char str[] =“Hello”;char *p = str ;int n = 10;
请计算
sizeof (str ) = (6);
sizeof ( p ) = (4)
sizeof ( n ) = (4)
5. void Func ( char str[100])
{
请计算
sizeof( str ) = (4);
}
6. void *p = malloc( 100 );
请计算
sizeof ( p ) =(4);
7.以下程序的输出结果是
main( )
{ int k=17;
printf(“%d,%o,%x \n”,k,k,k);
}(17,21,11)
8.在位运算中,操作数每右移一位,其结果相当于(操作数除以2)
9.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++
{ 4, 5,6}
};
int *p = (int *)(a + 1);
p--;
printf(“%d\n”, *p);
}
输出(3)
14.填写下列代码运行的Байду номын сангаас果。
void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
int *p = (int *)(a[0] + 1);
1.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。(#defineMIN(A,B)((A)<= (B) (A) : (B)))
2.用变量a给出下面的定义
a)一个整型数(int a)
b)一个指向整型数的指针(int *a)
c)一个指向指针的的指针,它指向的指针是指向一个整型数(int **a)d)一个有10个整型数的数组(int a[10])
p--;
printf(“%d\n”, *p);
}
输出(1)
15.填写下列代码运行的结果。
void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
int *p = (int *)(&a + 1);
p--;
printf(“%d\n”, *p);
}
输出(6)
后x的值为(10),n的值为(6)
10.若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0),a[2][1]得到的初值是(6)。
11.若有定义:int a=8,b=5,C;,执行语句C=a/b+;后,c的值为(1)
12.请写出下列代码的输出内容(10,12,120)
e)一个有10个指针的数组,该指针是指向一个整型数的(int *a[10])f)一个指向有10个整型数数组的指针(int (*a)[10])
g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(int(*a)(int))
3.int a = 5, b = 7, c; c = a+++b; a=(6), c=(12)
16.填写下列代码运行的结果。
void main(void)
{
int a[2][3] = {
{1, 2, 3},
{ 4, 5,6}
};
printf(“%d, %d”, sizeof(a), sizoe(a[1]));
}
输出(24,12)
17.填写下列代码运行的结果。
int main()
{
char a[2][3] ={
{‘a’,‘b’,‘c’},
{‘d’,‘e’,‘\0’}
};
printf(“%s”, a[0]);
return 0;
}
输出(abcde)
18. #include <>和#include“”有什么区别?
答:对于#include <>,编译器从标准库路径开始搜索
对于#include“”,编译器从用户的工作路径开始搜索
#include<>
main()
{
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;
}
13.填写下列代码运行的结果。
void main(void)
{
int a[2][3] = {
{1, 2, 3},
相关文档
最新文档