C语言求职笔试题及答案_第1页
C语言求职笔试题及答案_第2页
C语言求职笔试题及答案_第3页
C语言求职笔试题及答案_第4页
C语言求职笔试题及答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言求职笔试题及答案考试时间:______分钟总分:______分姓名:______一、单项选择题1.若有定义inta[5],*p=a;则不能表示数组元素a[3]的是()。A.*p++B.*(p+3)C.*a+3D.&a[3]2.下列关于指针的叙述中,正确的是()。A.一个指针变量的值只能是某个变量的地址B.指针变量的值可以改变,即它可以指向不同的内存地址C.指针变量和它所指向的变量占用同一块内存单元D.指针变量的值一旦确定,就不能再改变3.下列关于const关键字的描述,错误的是()。A.constinta;表示变量a的值不能被修改B.int*constp;表示指针p的指向不能被修改C.constint*p;表示指针p指向的内容不能被修改D.constint*constp;表示指针p的指向和指向的内容都不能被修改4.若有定义struct{charc;inti;}s;则sizeof(s)的值是()。A.2B.3C.4D.55.下列关于预处理指令的描述,正确的是()。A.#include"stdio.h"会先在当前目录搜索头文件,找不到再去系统目录B.#defineMAX(a,b)a>b?a:b这种宏定义没有考虑运算优先级问题C.#pragmaonce只能保证头文件被包含一次D.预处理指令在程序运行时执行6.设inta=3,b=4,c=5;则表达式a+b>c&&b==c的值是()。A.0B.1C.-1D.27.下列代码执行后,输出结果是()。```c#include<stdio.h>intmain(){inta=10;int*p=&a;intpp=&p;printf("%d",pp);return0;}```A.10B.11C.100D.10008.下列关于内存管理的描述,错误的是()。A.栈内存由系统自动管理,函数返回时自动释放B.堆内存由程序员手动分配和释放,需要使用malloc和freeC.使用malloc分配的内存空间,其初始值是不确定的D.如果对空指针进行解引用操作,程序一定会崩溃9.若有定义inta[5]={1,2,3,4,5};int*p=a+2;则printf("%d",*(p+1));的输出是()。A.3B.4C.5D.610.下列关于位运算的描述,正确的是()。A.按位或运算符|的优先级高于逻辑或运算符||B.异或运算^可以用来交换两个变量的值C.左移运算符<<相当于乘以2D.取反运算符~的优先级高于逻辑非运算符!11.下列代码的输出结果是()。```c#include<stdio.h>#defineSQ(x)((x)*(x))intmain(){inta=10;intb=SQ(a++);printf("%d%d",a,b);return0;}```A.11100B.1110C.12100D.121012.下列关于volatile关键字的描述,正确的是()。A.volatile告诉编译器该变量可能会被意想不到地改变,禁止编译器优化B.volatile只能用于修饰全局变量C.使用volatile修饰的变量必须在定义时初始化D.volatile变量的访问速度比普通变量快13.若有定义charstr[]="Hello";则sizeof(str)和strlen(str)的值分别是()。A.5,5B.5,6C.6,5D.6,614.在C语言中,函数参数传递默认采用的是()。A.值传递B.引用传递C.指针传递D.块传递15.下列代码输出结果是()。```c#include<stdio.h>voidfunc(int*p){*p=20;}intmain(){inta=10;func(&a);printf("%d",a);return0;}```A.10B.20C.0D.编译错误二、填空题1.若有定义inta[10];则a[5]在内存中占用的字节数是______。2.若有定义intx=5;则表达式++x+x++的值是______。(假设x初始值为5)3.在C语言中,表示“空指针”的宏定义是______。4.若有定义structNode{intdata;structNode*next;};则定义一个指向结构体指针的变量p的语句是______。5.若有定义inta=5,b=3;则表达式a>b?a:b的值是______。6.下列宏定义的作用是:若N是奇数则输出Odd,否则输出Even。#defineCHECK(N)\if(N%2==1)printf("Odd\n");\elseprintf("Even\n");请补全该宏定义,使其在作为函数参数使用时不会导致逻辑错误。#defineCHECK(N)((N%2==1)?printf("Odd\n"):printf("Even\n"))7.字符串结束标志符是______。8.若有定义int*p;p=(int*)malloc(sizeof(int)*10);则该语句动态分配了______个整型的内存空间。9.若有定义intarr[3][4];则arr[1][2]在二维数组中的逻辑下标是第______行第______列。10.在C语言中,枚举类型中的枚举值默认从0开始依次递增,也可以手动指定后续值,例如enumWeekday{Sun=0,Mon=1,Tue};则Tue的值是______。三、编程题1.编写一个函数`intreverse(intnum)`,实现将一个整数的数字位进行反转。例如,输入123,输出321;输入-120,输出-21。注意反转后的整数不能溢出(如果反转后的整数超过32位有符号整数范围,则返回0)。2.编写一个函数`voidremoveDuplicates(char*str)`,该函数接收一个字符串参数,删除字符串中所有重复出现的字符,只保留第一个出现的字符。例如,输入"programming",输出"progamin"。注意函数内部不能使用额外的存储空间(只能使用常数个临时变量)。3.编写一个函数`structNode*reverseList(structNode*head)`,实现反转单链表。链表节点的定义如下:```cstructNode{intdata;structNode*next;};```要求使用迭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论