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

下载本文档

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

文档简介

大学C语言程序设计期末考试试卷(含详细答案解析)适用专业:全校理工科公共课考试时长:120分钟满分:100分考试形式:闭卷一、单项选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出。1、以下不属于C语言基本数据类型的是()A、intB、floatC、stringD、char2、在C语言中,定义符号常量的关键字是()A、defineB、constC、staticD、extern3、若有定义:inta=5,b=2;则表达式a%b的值是()A、0B、1C、2D、2.54、C语言中,合法的标识符是()A、123abcB、abc_123C、abc-123D、int5、while和do-while循环的主要区别是()A、while循环先判断后执行,do-while先执行后判断B、while循环可以嵌套,do-while不能嵌套C、循环次数不同D、语法结构不同6、若有语句:inta[3]={1,2};则数组a[2]的初始值为()A、1B、2C、0D、随机值7、C语言函数返回值的类型由()决定A、return语句后的表达式类型B、函数定义时的返回值类型C、调用函数的变量类型D、系统自动判定8、指针变量的本质是()A、一个整型变量B、存储变量地址的变量C、存储变量值的变量D、字符型变量9、以下运算符中优先级最高的是()A、++B、+C、&&D、=10、若有定义:chars[]="hello";则数组s的长度是()A、5B、6C、7D、不确定11、switch语句中,break语句的作用是()A、结束整个程序B、结束当前case分支,跳出switchC、跳过下一个caseD、无作用12、以下关于if语句的描述正确的是()A、if语句不能嵌套B、else可以单独使用C、if表达式必须是布尔值D、if语句允许多条语句执行,需用大括号包裹13、全局变量和局部变量的区别是()A、全局变量仅在函数内有效B、局部变量在整个程序有效C、全局变量从程序运行开始占用内存,结束释放D、无区别14、若int*p,a=10;p=&a;则*p的值是()A、a的地址B、10C、随机值D、p的地址15、C语言中,结构体变量的定义关键字是()A、structB、unionC、enumD、typedef16、以下循环体执行次数为3次的是()A、for(inti=1;i<3;i++)B、for(inti=0;i<3;i++)C、for(inti=1;i<=2;i++)D、for(inti=3;i>0;i=i-2)17、字符串处理函数strlen()的功能是()A、字符串复制B、字符串拼接C、统计字符串有效长度D、字符串比较18、以下不能作为循环终止条件的是()A、0B、1C、i>10D、i==019、函数递归调用的核心是()A、循环执行B、自身调用自身,且有终止条件C、多次调用其他函数D、无限制调用20、C语言源程序文件的后缀是()A、.exeB、.cC、.hD、.txt二、填空题(本大题共10空,每空2分,共20分)1、C语言程序的入口函数是________。2、表达式3+5*2的运算结果是________。3、int型变量占________个字节(32位系统)。4、数组下标从________开始计数。5、若a=3,b=5,执行a=b;后,a的值为________。6、break语句可用于循环语句和________语句中。7、指针变量p指向数组首元素,p++表示指向数组的________元素。8、C语言中,逻辑真用________表示,逻辑假用0表示。9、定义无返回值函数需要使用关键字________。10、字符串结束的标志是________。三、程序填空题(本大题共2小题,每空3分,共15分)1、以下程序实现求1~100的累加和,请补全代码。PlainText

#include<stdio.h>

intmain()

{

inti,sum=0;

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

{

sum=________;

}

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

return0;

}2、以下程序实现交换两个整型变量的值,请补全代码。PlainText

#include<stdio.h>

intmain()

{

inta=10,b=20,temp;

temp=________;

a=b;

b=________;

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

return0;

}四、编程题(本大题共2小题,共25分)1、(12分)编写C语言程序,输入一个整数,判断该数是否为偶数,若是输出“是偶数”,否则输出“是奇数”。2、(13分)编写C语言程序,定义一个长度为5的整型数组,手动输入5个整数,计算并输出数组中所有元素的平均值(保留1位小数)。参考答案及详细解析一、单项选择题答案及解析1、【答案】C解析:C语言基本数据类型为整型int、浮点型float/double、字符型char,无string字符串类型,字符串通过字符数组实现。2、【答案】B解析:const用于定义常量,#define是宏定义(预处理指令),并非关键字;static为静态变量,extern为外部变量声明。3、【答案】B解析:%为取余运算符,5除以2商2余1,表达式结果为1。4、【答案】B解析:标识符命名规则:以字母、下划线开头,由字母、数字、下划线组成,不能使用关键字。A以数字开头,C含非法字符,D是关键字。5、【答案】A解析:while是先判断条件,条件成立再执行循环体;do-while先执行一次循环体,再判断条件,至少执行一次。6、【答案】C解析:数组部分初始化时,未赋值的元素系统自动初始化为0。7、【答案】B解析:函数返回值类型由函数定义时首部的类型决定,return表达式类型需与函数类型匹配。8、【答案】B解析:指针变量专门用于存储内存地址,普通变量存储数据值。9、【答案】A解析:运算符优先级:自增运算符>算术运算符>逻辑运算符>赋值运算符。10、【答案】B解析:字符串"hello"包含5个有效字符,末尾自动隐藏字符串结束符'\0',数组总长度为6。11、【答案】B解析:break用于switch时,终止当前case,跳出整个switch结构,避免穿透执行。12、【答案】D解析:if语句支持嵌套,else必须搭配if使用,if表达式可以是任意数值或表达式(非0为真),多条执行语句必须用大括号包裹成复合语句。13、【答案】C解析:全局变量定义在函数外,整个程序生命周期有效;局部变量定义在函数/代码块内,仅局部生效,代码块结束立即释放内存。14、【答案】B解析:p=&a表示指针p存储变量a的地址,*p为解指针操作,取出地址对应的数据,即a的值10。15、【答案】A解析:struct为结构体关键字,union为共用体,enum为枚举,typedef为类型重定义。16、【答案】B解析:A执行2次(i=1、2),B执行3次(i=0、1、2),C执行2次,D执行2次(i=3、1)。17、【答案】C解析:strlen统计字符串有效字符长度(不含'\0'),strcpy复制字符串,strcat拼接字符串,strcmp比较字符串。18、【答案】A解析:C语言中0代表逻辑假,无法满足循环执行条件,不能作为有效终止判断条件;非0数值、关系表达式均可作为条件。19、【答案】B解析:递归的核心是函数自身调用自身,且必须设置递归终止条件,否则会出现无限递归报错。20、【答案】B解析:.c是源程序文件,.exe是可执行文件,.h是头文件,.txt是文本文件。二、填空题答案及解析1、【答案】main()解析:C语言程序固定从main函数开始执行,是程序唯一入口。2、【答案】13解析:先乘后加,5*2=10,10+3=13。3、【答案】4解析:32位系统中int整型占用4字节,64位系统兼容该标准。4、【答案】0解析:C语言数组下标从0开始,首个元素下标为0。5、【答案】5解析:赋值语句将b的值覆盖a的值,赋值后a=5,b=5。6、【答案】switch解析:break可用于for、while、do-while循环及switch分支语句。7、【答案】下一个解析:指针自增,地址偏移一个对应数据类型的字节长度,指向数组下一个元素。8、【答案】非0(或1)解析:C语言逻辑规则:非0即为真,0为假,常用1代表真。9、【答案】void解析:void修饰函数表示函数无返回值,无需return语句返回数据。10、【答案】'\0'解析:系统自动在字符串末尾添加'\0',作为字符串结束标识。三、程序填空题答案及解析1、【答案】i<=100;sum+i解析:循环遍历1到100所有整数,循环条件i<=100;每次循环将当前i的值累加至sum,实现累加求和。2、【答案】a;temp解析:借助临时变量temp暂存a的值,先将b赋值给a,再将暂存的a原值赋值给b,完成两数交换。四、编程题参考答案(完整可运行代码+解析)1、参考答案:判断奇偶性程序PlainText

#include<stdio.h>

intmain()

{

intnum;

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

scanf("%d",&num);

//能被2整除为偶数,否则为奇数

if(num%2==0)

{

printf("是偶数\n");

}

else

{

printf("是奇数\n");

}

return0;

}解析:利用取余运算判断,整数对2取余结果为0即为偶数,反之是奇数,通过if-else分支实现判断输出。2、参考答案:数组求平均值程序PlainText

#include<stdio.h>

intmain()

{

intarr[5];

inti,sum=0;

floatavg;

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

//循环输入数组元素并累加求和

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

{

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

sum=sum+arr[i];

温馨提示

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

评论

0/150

提交评论