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

下载本文档

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

文档简介

C语言笔试真题及详细答案解析适用场景:校招、实习生、嵌入式、后端基础笔试总分100分考试时长90分钟一、单项选择题(共15题,每题2分,共30分)1、以下不属于C语言基本数据类型的是()A、intB、floatC、stringD、char答案:C解析:C语言基础数据类型包含整型int、浮点型float/double、字符型char,没有string字符串类型,字符串需要通过字符数组或指针实现。2、以下变量命名合法的是()A、1_numB、num_1C、num-1D、int答案:B解析:C语言变量名只能由字母、数字、下划线组成,不能以数字开头,不能使用关键字。A数字开头、C含非法符号、D是关键字,均不合法。3、sizeof(char)的值为()A、0B、1C、2D、4答案:B解析:char字符型在所有C语言编译环境中固定占用1字节内存空间。4、已知inta=5;a+=a-=a*a;执行后a的值为()A、-15B、-40C、0D、-20答案:B解析:赋值运算符从右向左运算。第一步:a*a=25;第二步:a=5-25=-20;第三步:a=-20+(-20)=-40。5、if和else的配对原则是()A、缩进对齐配对B、随机配对C、else与上方最近未配对的if配对D、从上到下依次配对答案:C解析:C语言if-else遵循就近匹配原则,和缩进无关,只与代码语法顺序有关。6、以下关于数组描述正确的是()A、数组下标从1开始B、数组名是常量指针,不可赋值C、数组长度可以用变量定义D、数组元素类型可以不一致答案:B解析:C语言数组下标从0开始;数组名代表数组首地址,是常量,不能被赋值;常规数组定义长度必须为常量;数组所有元素类型必须统一。7、指针变量char*p;则p+1偏移的字节数是()A、1B、2C、4D、8答案:A解析:指针加减运算偏移字节数由指向的数据类型决定,char占1字节,因此p+1偏移1字节。8、以下不能作为循环结束条件的语句是()A、breakB、continueC、gotoD、return答案:B解析:continue仅结束本次循环,直接进入下一次循环迭代,无法终止整个循环;break可跳出循环,return结束函数,goto可跳出循环。9、全局变量和局部变量的区别说法错误的是()A、全局变量作用域整个程序B、局部变量仅作用于当前函数/代码块C、全局变量生命周期随程序结束D、局部变量初始化默认值为0答案:D解析:全局变量未初始化默认值为0,局部变量未初始化时是随机垃圾值,无默认值。10、结构体变量占用内存大小是()A、所有成员字节数之和B、考虑内存对齐后的总字节数C、最大成员的字节数D、固定8字节答案:B解析:结构体存在内存对齐机制,占用空间为对齐后的总内存大小,并非简单的成员字节数相加。11、预处理指令的作用阶段是()A、编译前B、编译中C、链接时D、运行时答案:A解析:#define、#include等预处理指令,在程序正式编译前执行文本替换。12、函数形参和实参的传递方式,C语言默认是()A、地址传递B、值传递C、引用传递D、双向传递答案:B解析:C语言函数参数默认值传递,传递的是变量副本,函数内修改形参不会影响实参;指针可实现地址传递效果。13、以下哪个关键字可以防止变量被修改()A、staticB、constC、externD、volatile答案:B解析:const修饰的变量为只读常量,无法修改;static修饰静态变量,extern声明外部变量,volatile防止编译器优化。14、while(0)循环的执行次数是()A、0次B、1次C、无限次D、2次答案:A解析:0代表逻辑假,while条件不成立,循环一次都不执行。15、关于宏定义#defineN10说法正确的是()A、N是变量,可以修改B、编译时会将代码中N替换为10C、会分配内存空间D、可以进行类型检查答案:B解析:宏定义是纯文本替换,无类型检查、不分配内存,不是变量,无法修改。二、填空题(共10空,每空2分,共20分)1、C语言程序的入口函数是________。答案:main2、inta[3]={1,2};则数组a[2]的默认值为________。答案:03、指针变量本质上是存储变量________的变量。答案:内存地址4、static修饰的局部变量,生命周期为________,作用域为________。答案:整个程序运行期间、当前函数内部5、字符串"abc"在内存中占用________字节,末尾自动隐藏________结束符。答案:4、\06、switch语句中,________关键字用于跳出分支结构。答案:break7、函数递归调用必须具备两个条件:________和________。答案:递归表达式、递归终止条件三、程序阅读题(共3题,每题6分,共18分)1、写出以下程序运行结果c

#include<stdio.h>

intmain()

{

inti,sum=0;

for(i=1;i<5;i++)

{

if(i==3)

continue;

sum+=i;

}

printf("%d",sum);

return0;

}答案:7解析:i=1、2、4时累加,i=3时跳过。sum=1+2+4=7。2、写出以下程序运行结果c

#include<stdio.h>

voidswap(inta,intb)

{

intt=a;

a=b;

b=t;

}

intmain()

{

intx=10,y=20;

swap(x,y);

printf("%d%d",x,y);

return0;

}答案:1020解析:函数为值传递,仅交换形参副本,不会影响主函数的实参变量,xy值不变。3、写出以下程序运行结果c

#include<stdio.h>

intmain()

{

charstr[]="hello";

printf("%d%d",sizeof(str),strlen(str));

return0;

}答案:65解析:sizeof统计数组总内存(包含\0结束符,共6字节);strlen统计有效字符长度,不包含\0,结果为5。四、简答题(共2题,每题6分,共12分)1、简述局部变量、全局变量、静态局部变量的区别。答案解析:1、局部变量:定义在函数/代码块内,作用域仅限当前代码块,程序执行到代码块时开辟内存,执行结束释放,未初始化值为随机值。2、全局变量:定义在所有函数外部,作用域为整个程序,程序启动分配内存,程序结束释放,未初始化默认值为0。3、静态局部变量(static修饰):作用域仅限当前函数,生命周期贯穿整个程序,只初始化一次,未初始化默认值为0,函数调用结束后值保留。2、指针和数组的关系与区别?答案解析:联系:数组名可看做指向数组首元素的常量指针,数组访问本质是指针偏移,a[i]等价于*(a+i)。区别:1、数组名是常量,不能赋值、不能自增自减;指针是变量,可以修改指向。2、sizeof(数组名)得到数组总内存;sizeof(指针)得到指针本身内存大小(4/8字节)。3、数组内存连续固定;指针可指向任意合法内存地址。五、编程题(共2题,每题10分,共20分)1、编写程序,求1-100之间所有偶数的和参考代码:c

#include<stdio.h>

intmain()

{

inti,sum=0;

for(i=1;i<=100;i++)

{

//判断偶数

if(i%2==0)

{

sum+=i;

}

}

printf("1-100偶数和为:%d\n",sum);

return0;

}运行结果:25502、编写函数,实现字符串反转(不使用库函数)参考代码:c

#include<stdio.h>

//字符串反转函数

voidreverseStr(char*str)

{

intlen=0;

inti,j;

chartemp;

//手动计算字符串长度

while(str[len]!='\0')

{

len++;

}

//首尾交换反转

for(i=0,j=len-1;i<j;i++,j--)

{

temp=str[i];

str[i]=str[j];

str[j]=temp;

}

}

intmain()

{

charbuf[100]="hel

温馨提示

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

评论

0/150

提交评论