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

下载本文档

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

文档简介

C语言笔试真题(含答案解析)适用场景:应届生求职、校内考试、基础能力测评考试时长:60分钟满分:100分一、单项选择题(共10题,每题3分,共30分)1.以下选项中,不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.以下关于变量定义的写法,正确的是()A.inta=10,b=20;B.inta=10b=20;C.inta=10;b=20;D.inta,b=10,a=5;3.执行语句inta=5;a+=a-=a*a;后,a的值为()A.-15B.-40C.0D.-204.以下运算符中,优先级最高的是()A.+=B.&&C.*D.||5.关于if-else语句,以下说法正确的是()A.else可以单独使用B.else只能和最近的未配对if匹配C.if语句必须搭配elseD.if条件括号内不能是赋值表达式6.定义数组intarr[3][4];,该数组的元素个数为()A.7B.12C.3D.47.以下关于指针的说法,错误的是()A.指针变量存储的是内存地址B.可以通过指针修改普通变量的值C.空指针可以直接解引用D.指针可以进行加减运算8.函数内部定义的局部变量,默认的存储类型是()A.autoB.staticC.externD.register9.以下循环语句中,属于死循环的是()A.for(inti=0;i<10;i++);B.while(0){}C.do{}while(1);D.for(;;0);10.预处理命令的正确写法是()A.#includestdio.hB.#include<stdio.h>C.include<stdio.h>D.#include(stdio.h)二、填空题(共5题,每题4分,共20分)1.C语言中,布尔逻辑真用______表示,假用______表示。2.charstr[]="hello";数组str的长度是______,占用内存字节数是______。3.结构体属于______数据类型,不能直接用______运算符整体赋值。4.宏定义#definePI3.14的作用是______。5.指针变量int*p;中,*p代表______,p代表______。三、程序阅读题(共3题,每题6分,共18分)1.写出以下程序的运行结果PlainText

#include<stdio.h>

intmain()

{

inti,s=0;

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

{

if(i%2==0)

continue;

s+=i;

}

printf("%d",s);

return0;

}2.写出以下程序的运行结果PlainText

#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;

}3.写出以下程序的运行结果PlainText

#include<stdio.h>

intmain()

{

intarr[]={1,2,3,4,5};

int*p=arr;

printf("%d",*(p+2));

return0;

}四、简答题(共2题,每题6分,共12分)1.简述局部变量和全局变量的区别。2.简述static关键字在C语言中的两种作用。五、编程题(共2题,每题10分,共20分)1.编写程序,输入一个正整数n,计算1~n的累加和并输出。2.编写程序,定义整型数组(长度为10),输入10个整数,求数组中的最大值和最小值并输出。参考答案及详细解析一、单项选择题答案1.C解析:C语言基础数据类型为整型、浮点型、字符型,无string字符串类型,字符串通过字符数组实现。2.A解析:变量定义多个变量需用逗号分隔,不能重复定义同一变量,B缺逗号,C变量b未定义,D重复定义a。3.B解析:赋值运算符从右往左运算,先算a*a=25,再a-=25得a=-20,最后a+=-20得a=-40。4.C解析:算术运算符优先级高于逻辑运算符、赋值运算符。5.B解析:else不能单独使用,无需必须搭配if,if括号内可使用赋值表达式。6.B解析:二维数组行数3、列数4,总元素数=3*4=12。7.C解析:空指针无有效内存地址,直接解引用会导致程序崩溃。8.A解析:局部变量默认auto类型,函数调用结束立即释放内存。9.C解析:while(1)条件恒为真,循环永不结束,属于死循环。10.B解析:预处理指令必须带#,头文件需用尖括号或双引号包裹。二、填空题答案1.非0整数;02.5;6(字符串末尾自动隐藏结束符\0,占用1个字节)3.构造;赋值(结构体不能直接整体赋值,需逐个成员赋值或memcpy拷贝)4.程序中所有PI替换为3.14(纯文本替换,无类型检查)5.指针指向的内存中的数据;变量的内存地址三、程序阅读题答案1.9解析:循环遍历1-5,跳过偶数,累加1、3、5,总和为9。2.1020解析:函数传参为值传递,仅交换形参值,不影响实参原有数值。3.3解析:p指向数组首元素,p+2偏移两个元素,指向第三个元素3。四、简答题答案1.局部变量和全局变量的区别(1)定义位置:局部变量定义在函数、代码块内部;全局变量定义在所有函数外部。(2)作用域:局部变量仅在当前代码块/函数内有效;全局变量整个工程文件有效。(3)生命周期:局部变量随函数调用创建、调用结束销毁;全局变量程序运行全程存在。(4)初始化:局部变量默认随机垃圾值;全局变量默认初始化为0。2.static关键字的两种作用(1)修饰局部变量:延长变量生命周期,程序结束才释放内存,变量只会初始化一次,保留上次运算结果。(2)修饰全局变量/函数:限制作用域,仅当前源文件可调用,其他文件无法引用,实现代码封装。五、编程题参考答案1.1~n累加和程序PlainText

#include<stdio.h>

intmain()

{

intn,i,sum=0;

printf("请输入正整数n:");

scanf("%d",&n);

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

{

sum+=i;

}

printf("累加和为:%d\n",sum);

return0;

}2.数组求最大值最小值程序PlainText

#include<stdio.h>

intmain()

{

intarr[10];

inti,max,min;

printf("请输入10个整数:\n");

for(i=0;i<10;i++)

{

scanf("%d",&arr[i]);

}

//初始化最大最小值为第一个元素

max=min=arr[0];

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

{

温馨提示

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

最新文档

评论

0/150

提交评论