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

下载本文档

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

文档简介

C语言初级笔试题(含详细答案解析)适用人群:初学C语言、计算机基础面试、期末复习、企业初级开发笔试考试时长:60分钟满分:100分一、单项选择题(共10题,每题3分,共30分)1、以下不属于C语言基本数据类型的是()A、intB、floatC、stringD、char2、在C语言中,定义变量必须遵循的规则是()A、变量可以以数字开头B、变量名不能使用关键字C、变量名可以包含空格D、变量无需定义即可使用3、表达式3/2+3.0/2的运算结果是()A、2B、2.5C、3D、3.54、设有定义inta=5;,执行语句a+=a-=a*a;后,a的值为()A、-15B、-40C、0D、-205、以下关于if语句的说法正确的是()A、if后面的括号可以省略B、else可以单独使用C、if嵌套可以多层使用D、if判断条件只能是布尔值6、while和do-while循环的主要区别是()A、while执行效率更高B、do-while至少执行一次循环体C、while不需要循环条件D、do-while循环条件写在前面7、数组intarr[5]中,合法的数组下标最大值是()A、5B、4C、6D、08、以下关于指针的说法错误的是()A、指针变量存储的是内存地址B、可以通过指针修改变量的值C、指针没有数据类型D、空指针的值为NULL9、C语言中函数return语句的作用是()A、暂停程序B、结束当前函数,返回指定值C、终止整个程序D、循环跳转10、预处理命令以()开头A、//B、/*C、#D、二、填空题(共5题,每题4分,共20分)1、C语言程序的入口函数是________。2、char类型数据占用________个字节内存。3、逻辑表达式中,非0即为________。4、数组名代表数组的________地址。5、结束本次循环,直接进入下一次循环的语句是________。三、程序阅读题(共3题,每题8分,共24分)1、写出以下程序的输出结果c

#include<stdio.h>

intmain()

{

inti,sum=0;

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

{

if(i%2==0)

continue;

sum+=i;

}

printf("%d",sum);

return0;

}2、写出以下程序的输出结果c

#include<stdio.h>

intmain()

{

inta=10,b=20;

int*p=&a;

*p=b;

printf("a=%d,b=%d",a,b);

return0;

}3、写出以下程序的输出结果c

#include<stdio.h>

intfun(intx)

{

returnx*x;

}

intmain()

{

inta=3;

printf("%d",fun(fun(a)));

return0;

}四、编程大题(共2题,每题13分,共26分)1、编写C语言程序,输入一个整数n,判断该数是否为素数(质数),并输出结果。(素数:大于1,且只能被1和自身整除的整数)2、编写C语言程序,实现对数组intarr[10]={9,2,5,1,8,3,7,4,6,0}的冒泡排序,从小到大排序并输出排序后的数组。参考答案及详细解析一、单项选择题答案及解析1、答案:C解析:C语言基础数据类型包含int整型、float单精度浮点、double双精度浮点、char字符型。string字符串类型不属于C语言基础类型,C语言没有自带字符串类型,需通过字符数组实现。2、答案:B解析:C语言变量命名规则:只能由字母、数字、下划线组成,不能以数字开头,不能包含空格,不能使用系统关键字;C语言变量必须先定义后使用。3、答案:B解析:3/2为两个整数相除,结果取整为1;3.0/2为浮点运算,结果为1.5;两者相加最终结果为2.5。4、答案:B解析:复合赋值运算符优先级从右往左计算。原式拆解:先算a*a=25,再算a-=25,a=5-25=-20,最后算a+=-20,a=-20+(-20)=-40。5、答案:C解析:if后面括号必须保留;else不能单独使用,必须搭配if;C语言无布尔类型,非0为真、0为假,判断条件可以是任意数值表达式;if支持多层嵌套。6、答案:B解析:while先判断条件后执行循环体,条件不成立则一次都不执行;do-while先执行一次循环体,再判断条件,至少执行一次。7、答案:B解析:C语言数组下标从0开始,定义长度为5的数组,下标范围为0~4,最大合法下标为4。8、答案:C解析:指针有严格的数据类型限制,int*指针只能操作整型数据,char*指针只能操作字符数据,类型决定了指针取值的字节长度。9、答案:B解析:return用于结束当前调用的函数,并将返回值带回主调函数;终止整个程序使用exit()函数。10、答案:C解析:所有预处理命令(#include、#define等)均以#开头,放置在程序最上方。二、填空题答案及解析1、main解析:C语言程序固定从main函数开始执行,是程序唯一入口。2、1解析:char字符型固定占用1个字节内存空间。3、真解析:C语言没有专门布尔类型,规定0为假,所有非0数值均代表真。4、首元素解析:数组名是常量指针,默认指向数组第一个元素的内存地址。5、continue解析:continue结束本次循环,进入下一次循环;break是跳出整个循环。三、程序阅读题答案及解析1、输出结果:9解析:循环遍历1-5,遇到偶数执行continue跳过累加,只累加奇数1、3、5,总和为9。2、输出结果:a=20,b=20解析:指针p指向变量a,*p代表a的内存空间,将b的值20赋值给*p,本质是修改了a的值,b值不变。3、输出结果:81解析:第一层fun(3)=3*3=9,第二层fun(9)=9*9=81,最终输出81。四、编程大题答案及解析1、判断素数完整代码c

#include<stdio.h>

intmain()

{

intn,i,flag=1;

printf("请输入一个整数:");

scanf("%d",&n);

//小于2的数不是素数

if(n<2)

{

printf("%d不是素数\n",n);

return0;

}

//判断是否能被2~根号n之间的数整除

for(i=2;i*i<=n;i++)

{

if(n%i==0)

{

flag=0;

break;

}

}

if(flag==1)

printf("%d是素数\n",n);

else

printf("%d不是素数\n",n);

return0;

}解析:通过标记变量flag判断素数,减少循环次数,只需遍历到根号n,提升程序效率;单独处理小于2的非素数情况。2、数组冒泡排序完整代码c

#include<stdio.h>

intmain()

{

intarr[10]={9,2,5,1,8,3,7,4,6,0};

inti,j,temp;

intlen=sizeof(arr)/sizeof(arr[0]);

//冒泡排序双层循环

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

{

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

{

//前数大于后数则交换

if(arr[j]>arr[j+1])

{

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

//输出排序后数组

printf("排序后

温馨提示

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

最新文档

评论

0/150

提交评论