C语言笔试真题(基础综合卷+详细答案)_第1页
C语言笔试真题(基础综合卷+详细答案)_第2页
C语言笔试真题(基础综合卷+详细答案)_第3页
C语言笔试真题(基础综合卷+详细答案)_第4页
C语言笔试真题(基础综合卷+详细答案)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

C语言笔试真题(基础综合卷+详细答案)考试说明:满分100分,考试时间60分钟,题型包含选择题、填空题、程序阅读题、编程题,适配应届生、入门岗位C语言笔试考核一、单项选择题(共10题,每题3分,共30分)1.以下选项中,不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.已知inta=5;执行a+=a-=a*a;后,a的值为()A.-40B.-15C.0D.-203.以下关于if-else语句的说法,正确的是()A.else可以单独使用B.else总是和离它最近的未配对if匹配C.if语句必须搭配else使用D.if条件后必须加大括号4.定义数组intarr[5];以下合法的数组操作是()A.arr[5]=10;B.arr[0]=5;C.arr={1,2,3};D.intarr[5]=arr;5.C语言中,全局变量和局部变量的区别是()A.全局变量存储在栈区,局部变量存储在堆区B.全局变量程序全程有效,局部变量仅在函数内有效C.全局变量必须初始化,局部变量无需初始化D.全局变量只读,局部变量可读写6.以下关于指针的说法,错误的是()A.指针变量存储的是内存地址B.可以通过指针修改普通变量的值C.空指针可以直接解引用D.指针可以进行加减运算7.若有函数定义voidfun(intx);以下调用方式错误的是()A.fun(10);B.inta=3;fun(a);C.fun();D.fun(5+2);8.while(1)循环的特点是()A.执行1次后退出B.无限循环C.不执行循环体D.语法报错9.预处理指令#include<stdio.h>的作用是()A.定义主函数B.引入标准输入输出头文件C.定义变量类型D.编译优化代码10.结构体变量初始化时,以下说法正确的是()A.只能整体赋值,不能单独赋值成员变量B.结构体成员可以是不同数据类型C.结构体定义后不能重复使用D.结构体变量存储在常量区二、填空题(共5题,每题4分,共20分)1.C语言中,______关键字用于定义常量,定义后值不可修改。2.表达式3/2的结果是______,表达式3.0/2的结果是______。3.数组名代表数组的______地址,数组下标从______开始。4.函数返回值类型为void时,表示该函数______返回值。5.break语句可以跳出______和switch语句,______语句仅能结束本次循环。三、程序阅读题(共3题,每题6分,共18分)1.写出以下程序的运行结果PlainText

#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.写出以下程序的运行结果PlainText

#include<stdio.h>

intmain()

{

inta=10,b=20;

int*p=&a;

*p=b;

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

return0;

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

#include<stdio.h>

voidtest(intx)

{

x=100;

}

intmain()

{

intnum=10;

test(num);

printf("%d",num);

return0;

}四、编程题(共2题,每题16分,共32分)1.编写C语言程序,实现功能:输入一个正整数,判断该数是否为素数(质数),并输出判断结果。2.编写C语言程序,定义一个整型数组,存储10个学生的成绩,计算并输出总成绩和平均分(平均分保留2位小数)。参考答案及详细解析一、单项选择题答案+解析1.答案:C解析:C语言基础数据类型包含int(整型)、float(单精度浮点型)、char(字符型)、double(双精度浮点型),没有string字符串类型,字符串需通过字符数组实现。2.答案:A解析:赋值运算符从右向左运算,初始a=5。第一步:a*a=25;第二步:a-=25,即a=5-25=-20;第三步:a+=-20,即a=-20+(-20)=-40。3.答案:B解析:else不能单独使用,必须依附if;if可以单独使用,无需搭配else;if条件后单条语句可省略大括号。else的匹配规则是就近匹配未配对的if。4.答案:B解析:数组下标范围为0~4,arr[5]越界;数组定义后不能直接整体赋值;数组不能用同类型数组直接初始化。仅arr[0]=5为合法操作。5.答案:B解析:全局变量存储在静态区,局部变量在栈区;全局变量默认自动初始化,局部变量未初始化是随机值;全局变量和局部变量均可读写。核心区别是作用域不同。6.答案:C解析:空指针指向无效内存地址,直接解引用会导致程序崩溃,是非法操作。其余选项均为指针的正确特性。7.答案:C解析:函数定义为有参函数,必须传入一个整型参数,不能空调用。常量、变量、表达式均可作为实参传入。8.答案:B解析:C语言中非0数值代表真,while(1)条件恒成立,会无限执行循环体,属于死循环。9.答案:B解析:stdio.h是标准输入输出头文件,包含printf、scanf等输入输出函数的声明,必须引入才能使用对应函数。10.答案:B解析:结构体可以单独给成员变量赋值;结构体可重复定义多个变量;结构体变量存储在栈区,并非常量区。结构体的核心特点就是可整合不同类型的数据。二、填空题答案+解析1.const解析:const修饰的变量为只读常量,初始化后无法修改数值。2.1、1.5解析:两个整数相除结果为整数,自动舍去小数;存在浮点型数据参与运算时,结果为浮点型。3.首元素、0解析:数组名是数组首元素的地址,属于常量指针,不可修改;C语言数组下标统一从0开始计数。4.无解析:void为空类型,代表函数执行完毕后不返回任何数值,无需return语句带回数据。5.循环、continue解析:break终止当前整个循环或switch;continue仅跳过本次循环剩余代码,直接进入下一次循环。三、程序阅读题答案+解析1.运行结果:9解析:循环遍历1-5,遇到偶数执行continue跳过累加,只累加奇数1、3、5,总和为9。2.运行结果:a=20,b=20解析:指针p指向变量a,*p代表a的内存空间,将b的值20赋值给*p,本质是修改了a的值,b的值不变。3.运行结果:10解析:C语言函数参数传递为值传递,test函数中的x是num的副本,修改副本x的值,不会影响主函数中原变量num的值。四、编程题参考答案(可直接编译运行)1.判断素数程序PlainText

#include<stdio.h>

intmain()

{

intnum,i,flag=1;

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

scanf("%d",&num);

//小于2的数不是素数

if(num<2)

{

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

return0;

}

//判断是否能被整除

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

{

if(num%i==0)

{

flag=0;

break;

}

}

if(flag==1)

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

else

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

return0;

}思路说明:素数定义为大于1,且只能被1和自身整除的数。只需遍历2到根号num,若存在约数则不是素数。2.学生成绩统计程序PlainText

#include<stdio.h>

intmain()

{

intscore[10];

intsum=0,i;

floatavg;

printf("请输入10个学生成绩:\n");

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

{

scanf("%d",

温馨提示

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

评论

0/150

提交评论