大学C语言期末考试试卷(含详细参考答案)_第1页
大学C语言期末考试试卷(含详细参考答案)_第2页
大学C语言期末考试试卷(含详细参考答案)_第3页
大学C语言期末考试试卷(含详细参考答案)_第4页
大学C语言期末考试试卷(含详细参考答案)_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

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

文档简介

大学C语言期末考试试卷(含详细参考答案)适用专业:计算机、机电、大数据等工科专业考试时长:120分钟满分:100分一、单项选择题(共15题,每题2分,共30分)1.以下不属于C语言基本数据类型的是()A.intB.floatC.stringD.char2.在C语言中,合法的标识符是()A.123abcB.abc_123C.abc-123D.int3.若定义inta=5;执行a+=a-=a*a;后,a的值为()A.-15B.-40C.0D.-204.C语言中switch语句的case分支()A.必须有break语句B.可以没有break语句C.必须有default分支D.分支表达式可以是浮点型5.以下关于if语句的描述,正确的是()A.if语句不能嵌套使用B.else可以单独使用C.if表达式必须是布尔值D.if语句允许多层嵌套6.循环语句中,continue的作用是()A.结束整个循环B.结束本次循环,进入下一次循环C.终止程序运行D.跳过后续所有代码7.定义数组intarr[5];该数组合法的最大下标是()A.0B.4C.5D.68.以下关于字符数组和字符串的说法,正确的是()A.字符数组必须以'\0'结尾B.字符串默认以'\0'作为结束标志C.chara[3]="abc";合法D.字符串长度包含'\0'9.C语言函数的返回值类型默认是()A.voidB.intC.floatD.char10.指针变量的本质是()A.存放数值的变量B.存放内存地址的变量C.特殊的数组D.字符串变量11.宏定义#definePI3.14159中,PI在预处理阶段会()A.被赋值为变量B.直接替换为3.14159C.参与运算后赋值D.不做任何处理12.结构体变量初始化时,以下说法正确的是()A.只能整体赋值B.可以逐个成员赋值C.成员数据类型必须相同D.结构体不能嵌套定义13.以下运算符中优先级最高的是()A.=B.+C.&&D.!14.若有int*p,a=10;p=&a;以下说法错误的是()A.*p代表变量a的值B.p代表变量a的地址C.&p代表指针变量p的地址D.p=a;语句合法15.二进制文件和文本文件的主要区别是()A.文件名不同B.存储数据的编码方式不同C.文件大小不同D.读写函数不同二、填空题(共10空,每空2分,共20分)1.C语言程序的入口函数是________。2.表达式3%2的结果是________,表达式5/2的结果是________。3.逻辑表达式中,0代表________,非0代表________。4.for循环的三个表达式分别负责初始化、________、________。5.数组名代表数组的________地址。6.函数内部定义的变量称为________变量,仅在函数内有效。7.打开文件的函数是________。三、程序阅读题(共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>

voidfun(intx)

{

x=x*2;

}

intmain()

{

inta=10;

fun(a);

printf("%d",a);

return0;

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

#include<stdio.h>

intmain()

{

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

int*p=arr;

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

return0;

}四、程序填空题(共2空,每空3分,共6分)以下程序功能:计算1~100的累加和,补全代码。PlainText

#include<stdio.h>

intmain()

{

inti,sum=0;

for(i=1;_______;i++)

{

_______;

}

printf("%d",sum);

return0;

}五、编程大题(共2题,每题13分,共26分)1.编写C语言程序,输入一个正整数,判断该数是否为素数(质数),并输出对应结果。(13分)要求:素数定义:大于1,且只能被1和自身整除的整数。2.编写C语言程序,定义一个整型数组,存储10个学生的成绩,统计并输出最高分、最低分和平均分。(13分)参考答案及详细解析一、单项选择题答案及解析1.C解析:C语言基础数据类型为int、float、double、char,无string类型,string是C++或其他语言类型。2.B解析:标识符规则:字母、数字、下划线组成,不能以数字开头,不能是关键字。A数字开头,C含非法符号,D是关键字。3.B解析:赋值运算符从右向左运算。先算a*a=25,a-=25即a=5-25=-20,a+=-20即a=-20-20=-40。4.B解析:case可无break,会发生穿透;switch可不写default,case表达式只能是整型或字符型。5.D解析:if语句支持多层嵌套,else不能单独使用,C语言表达式非0即真,不局限于布尔值。6.B解析:continue结束本次循环,跳过本次后续代码,直接进入下一次循环;break才是结束整个循环。7.B解析:数组下标从0开始,定义长度为5的数组,下标范围0~4。8.B解析:字符串自动补'\0'作为结束标志;普通字符数组无需结束符;长度为3的数组无法存放"abc"(需4字节,含结束符)。9.B解析:C语言无指定函数返回值类型时,默认返回int类型。10.B解析:指针变量专门用于存储内存地址,是地址变量。11.B解析:宏定义是简单的文本替换,预处理阶段直接将代码中PI替换为3.14159,不参与运算。12.B解析:结构体可以逐个成员赋值,支持嵌套定义,成员数据类型可以不同。13.D解析:优先级:逻辑非(!)>算术运算(+)>逻辑与(&&)>赋值(=)。14.D解析:p是指针变量,存储地址;a是整型变量,存储数值,不能直接将数值赋值给地址变量。15.B解析:核心区别是存储编码,文本文件以字符编码存储,二进制文件以原始二进制数据存储。二、填空题答案1.main()2.1、23.假、真4.条件判断、增量运算5.首元素6.局部7.fopen()三、程序阅读题答案及解析1.运行结果:9解析:循环遍历1-5,遇到偶数执行continue跳过累加,只累加奇数1、3、5,总和为9。2.运行结果:10解析:函数传参为值传递,形参x的修改不会影响主函数实参a的值,a保持初始值10。3.运行结果:2解析:p指向数组首元素arr[0],p+1指向arr[1],*(p+1)取值为2。四、程序填空题答案第一空:i<=100第二空:sum=sum+i(或sum+=i)五、编程大题参考答案(可直接运行)1.判断素数程序PlainText

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

}评分标准:输入输出规范(3分)、小于2的数判断(3分)、循环判断逻辑(5分)、结果输出(2分)2.成绩统计程序PlainText

#include<stdio.h>

intmain()

{

intscore[10];

inti,max,min,sum=0;

floatavg;

//输入10个成绩

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

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

{

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

sum+=score[i];

}

//初始化最值

max=min=score[0];

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

{

if(score[i]>max)

max=score[i];

if(score[i]<min)

min=score[i];

}

//计算平均分

avg=sum/10.0;

printf("最高分

温馨提示

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

最新文档

评论

0/150

提交评论