中国计量大学《C语言程序设计》2021-2022学年第一学期期末试卷_第1页
中国计量大学《C语言程序设计》2021-2022学年第一学期期末试卷_第2页
中国计量大学《C语言程序设计》2021-2022学年第一学期期末试卷_第3页
全文预览已结束

下载本文档

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

文档简介

站名:站名:年级专业:姓名:学号:凡年级专业、姓名、学号错写、漏写或字迹不清者,成绩按零分记。…………密………………封………………线…………第1页,共1页中国计量大学

《C语言程序设计》2021-2022学年第一学期期末试卷题号一二三四总分得分一、单选题(本大题共15个小题,每小题1分,共15分.在每小题给出的四个选项中,只有一项是符合题目要求的.)1、在C语言的函数递归调用中,假设我们定义了一个递归函数来计算阶乘。当输入的数值较大时,可能会出现什么问题?()A.函数执行速度非常快B.可能会导致栈溢出C.结果总是准确无误D.没有任何问题2、若有定义:inta[5]={1,2,3,4,5},*p=a;,以下不能表示数组元素a[3]的是()A.*(a+3)B.p[3]C.*(p+3)D.a[3]3、若有定义:inta=3,b=2,c=1;,则表达式a-b>c的值为()A.0B.1C.2D.-14、在C语言中,关于动态内存分配的错误处理,假设使用

malloc

分配内存,以下关于错误处理的描述,哪一项是不正确的?()A.分配内存失败时,

malloc

返回

NULL

,可以通过判断是否为

NULL

来进行错误处理B.忽略对

malloc

返回值的检查,可能导致程序崩溃C.即使内存分配成功,也可能因为后续的操作导致内存访问错误D.一旦内存分配成功,就无需再担心内存相关的错误5、在C语言中,若有定义

structstudent{intnum;charname[20];};

,以下能正确定义结构体变量的是()A.

structstudents={101,"Tom"};

B.

structs={101,"Tom"};

C.

students={101,"Tom"};

D.

structstudent={101,"Tom"};

6、在C语言中,关于函数指针的定义和使用,假设有以下代码:

int(*funcPtr)(int,int);

,以下关于函数指针的描述,正确的是:()A.这是一个指向返回值为

int

,有两个

int

类型参数的函数的指针B.这是一个返回值为指针,参数为两个

int

的函数声明C.这是一个错误的函数指针定义,C语言中不允许这样定义D.这是一个指向

int

类型数组的指针7、在C语言中,关于指针和数组的关系,设有定义

intarr[5]={1,2,3,4,5};int*ptr=arr;

,那么

ptr+2

指向的元素值是多少?()A.3B.4C.不确定D.运行时错误8、C语言中的

volatile

关键字用于修饰变量,其主要作用是什么?()A.提高变量的访问速度B.防止变量被优化器优化C.使变量可以被多个线程同时访问D.以上都不对9、设有定义:floata=3.14;intb;,则以下能实现将a的值强制转换为整型并赋给b的语句是()A.b=(int)a;B.b=int(a);C.b=(int)(a);D.b=a;10、若有定义:chars[10],*p=s;,以下输入语句中正确的是()A.scanf("%s",s);B.scanf("%s",p);C.scanf("%c",s);D.scanf("%c",p);11、在C语言中,位操作符常用于对二进制位进行操作。假设有以下代码:

unsignedintnum=5;num=num<<2;

,以下关于位操作后的结果,正确的是:()A.

num

的值变为10B.

num

的值变为20C.

num

的值变为15D.程序会产生运行时错误,因为位操作不正确12、C语言中的位段(

bitfield

)可以用于节省存储空间。假设有

struct{unsignedinta:2;unsignedintb:3;}bitStruct;

,那么这个结构体占用的存储空间是多少?()A.1字节B.2字节C.4字节D.不确定13、若有定义:inta[3][4]={{1,2},{3,4},{5,6}};则a[1][1]的值是()A.1B.2C.3D.414、假设在C语言中有以下代码

enumcolor{RED,GREEN,BLUE};enumcolorc=RED;

,以下描述正确的是:()A.枚举常量的值可以是任意整数B.可以对枚举变量进行算术运算C.枚举变量占用的存储空间大小取决于其最大值D.可以将整数直接赋值给枚举变量15、若有定义

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

,则

a[1]

的值是()A.0B.1C.2D.3二、判断题(本大题共15小题,每小题2分,共30分.有多个选项是符合题目要求的.)1、对于C语言中的条件判断语句if-else,else总是与离它最近的且没有配对的if进行匹配。()2、在C语言中,一个函数内定义的变量只在本函数内有效。()3、在C语言中,结构体中的成员可以具有不同的数据类型,包括基本数据类型和自定义数据类型。()4、C语言中,定义了一个函数

voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}

,在主函数中调用该函数交换两个变量的值,这种通过指针传递实现交换的方式是有效的。()5、在C语言中,定义一个指针变量

int*ptr

后,如果没有为其进行初始化或者赋值,就对其进行解引用操作,如

*ptr=5;

,会导致未定义的行为,可能引起程序崩溃。()6、C语言中的指针可以指向一个不存在的内存地址,但访问这样的指针会导致程序出错。()7、在C语言中,使用

typedef

定义新的类型名时,不能与已有的基本数据类型名相同,否则会引起混淆。()8、在文件操作中,

r+

模式表示可读可写,但文件必须存在。()9、在C语言中,

const

修饰的变量不能通过指针来修改其值。()10、

fread

函数和

fwrite

函数可以用于结构体的读写。()11、在C语言中,

strupr

函数用于将字符串中的所有字符转换为大写。()12、C语言中的预编译指令可以嵌套使用,以实现更复杂的条件编译控制。()13、对于

intarr[10];

,可以使用

memcmp

函数比较数组的内容是否相同。()14、

calloc

函数分配的内存空间会自动初始化为0。()15、C语言中的枚举类型中的枚举常量实际上是整数,并且可以进行整数运算。()三、编程题(本大题共5个小题,共25分)1、(本题5分)设计一个C语言程序,实现插入排序算法对整数数组进行排序。2、(本题5分)编写一个C语言程序,实现一个函数,接受一个字符串作为参数,返回字符串中字符的个数。3、(本题5分)设计一个C语言程序,模拟实现一个简单的银行账户管理系统。能够进行存款、取款、查询余额等操作。4、(本题5分)编写一个C语言程序,实现一个函数,将一个整数转换为对应的二进制字符串并返回。用户输入整数,调用函数输出结果。5、(本题5分)创建一个C语言程序,用户输入一个整数n,程序输出一个n行的数字金字塔。四、论述题(本大题共3个小题,共30分)1、(本题10分)详细阐述

温馨提示

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

评论

0/150

提交评论