山东理工大学《C高级语言程序设计》2023-2024学年第二学期期末试卷_第1页
山东理工大学《C高级语言程序设计》2023-2024学年第二学期期末试卷_第2页
山东理工大学《C高级语言程序设计》2023-2024学年第二学期期末试卷_第3页
山东理工大学《C高级语言程序设计》2023-2024学年第二学期期末试卷_第4页
山东理工大学《C高级语言程序设计》2023-2024学年第二学期期末试卷_第5页
全文预览已结束

下载本文档

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

文档简介

装订线装订线PAGE2第1页,共5页山东理工大学《C高级语言程序设计》

2023-2024学年第二学期期末试卷院(系)_______班级_______学号_______姓名_______题号一二三四总分得分批阅人一、单选题(本大题共15个小题,每小题1分,共15分.在每小题给出的四个选项中,只有一项是符合题目要求的.)1、关于C语言中的预处理器指令,如

#define

,假设有

#definePI3.14

,然后在代码中使用

floatarea=PI*r*r;

,这里的

PI

会被如何处理?()A.在编译时被替换为3.14B.在运行时被替换为3.14C.保持不变,作为一个变量D.导致编译错误2、在C语言中,若要定义一个包含10个整数的数组,以下哪种方式是正确的?()A.intnum[10];B.intnum(10);C.intnum[10]={0};D.intnum[]={1,2,3,4,5,6,7,8,9,10};3、若有定义:floata[3]={1.2,2.3,3.4};则a[1]的值是()A.1.2B.2.3C.3.4D.04、假设在C语言中有如下代码段

inta=5;int*p=&a;

,以下关于指针运算的描述,正确的是:()A.

p+1

指向的是下一个整数的地址B.对指针进行乘法运算(如

p*2

)是合法的C.可以直接将两个指针相加(如

p+p

)D.指针的减法运算(如

p1-p2

)结果的单位是字节5、若有定义:floatx=1.5;inty;,则以下表达式的值为1的是()A.(int)xB.(int)(x+y)C.(int)x+yD.x+(int)y6、C语言中的位运算可以对二进制位进行操作,实现一些特殊的功能。假设有两个整数

inta=5;intb=3;

,以下对于位运算的描述,哪一项是不准确的?()A.

a&b

执行按位与操作,结果是1B.

a|b

执行按位或操作,结果是7C.

a^b

执行按位异或操作,结果是6D.

~a

执行按位取反操作,结果是-6,并且取反后的数在所有位上的值都与原数相反7、在以下C语言代码中:

intarr[]={5,3,1,7,2};int*p=arr;

,执行

qsort(arr,sizeof(arr)/sizeof(arr[0]),sizeof(int),compare);

(假设

compare

函数已正确定义),排序完成后,

*p

的值是多少?()A.1B.2C.3D.58、C语言中的文件读写操作可以处理不同类型的数据。假设要从一个二进制文件中读取一个整数,以下哪个函数是合适的?()A.

fscanf

B.

fprintf

C.

fread

D.

fwrite

9、在C语言中,关于指针的使用,假设我们有一个整数变量

intnum=5;

,同时定义了一个指针

int*ptr=#

。以下关于指针操作的描述,哪一项是不正确的?()A.通过

*ptr

可以访问

num

的值,并对其进行修改B.可以将另一个整数变量的地址直接赋给

ptr

,而无需类型匹配C.对

ptr

进行加减运算,可以使其指向相邻的内存位置D.指针

ptr

本身也占据一定的内存空间10、若有定义:inta[5]={1,2,3,4,5},*p=a;则以下不能表示数组a中元素a[3]的是()A.*(p+3)B.p[3]C.*(a+3)D.p+311、假设有以下C语言代码段:

charstr[]="Hello,World!";intlen=strlen(str);

,那么

len

的值是多少?()A.12B.13C.14D.不确定12、在C语言中,以下能正确将字符串

s1

复制到字符串

s2

的是()A.

s2=s1;

B.

strcpy(s2,s1);

C.

s2=strcpy(s1);

D.

strcpy(s1,s2);

13、在C语言的链表操作中,假设我们有一个简单的单向链表,每个节点包含一个整数数据和一个指向下一个节点的指针。当要删除链表中的一个节点时,需要注意哪些问题?()A.只需要修改要删除节点的指针B.要修改前一个节点的指针指向删除节点的下一个节点C.不需要做任何操作,系统会自动处理D.以上都不对14、对于以下C语言代码:typedefstruct{intx;inty;}Point;Pointp1={10,20};以下访问p1中x成员的方式正确的是:()A.p1.xB.p1->xC.(*p1).xD.以上都正确15、C语言中的内存对齐是为了提高内存访问效率。假设有以下结构体定义:

structexample{charc;inti;};

,以下关于结构体

example

大小的描述,正确的是:()A.结构体的大小为5字节,因为

char

占1字节,

int

占4字节B.结构体的大小为8字节,由于内存对齐的原因C.结构体的大小取决于编译器,不同编译器可能有不同的结果D.结构体的大小一定是成员大小的简单相加二、判断题(本大题共15小题,每小题2分,共30分.有多个选项是符合题目要求的.)1、在C语言中,

fprintf

函数可以指定输出的格式,与

printf

函数的格式控制方式相同。()2、C语言中,一个源文件中可以有多个main函数。()3、C语言中的文件操作中,以“w”模式打开文件,如果文件不存在会创建一个新文件,如果文件存在则会清空原有内容。()4、C语言中的结构体可以包含结构体指针类型的成员变量。()5、C语言中的布尔类型(bool)是C99标准新增的数据类型。()6、C语言中的共用体(union)是一种特殊的数据类型,它的所有成员共享同一块内存空间,并且同一时间只能存储其中一个成员的值。()7、在C语言中,

const

修饰的指针可以分为指向常量的指针和指针本身是常量两种情况,例如

intconst*ptr

int*constptr

是不同的,需要注意其区别。()8、C语言中,两个指针变量相减得到的是两个指针之间的元素个数。()9、C语言中的文件可以以二进制方式和文本方式进行读写,对于文本文件和二进制文件,读写操作的方式是相同的。()10、C语言中的

ftell

函数用于获取文件指针当前的位置。()11、在C语言中,

strrchr

函数用于在字符串中查找指定字符最后一次出现的位置。()12、在C语言中,使用fread函数从文件读取数据时,可以指定每次读取的数据大小。()13、对于C语言中的二维数组,在进行初始化时,可以按行进行初始化,也可以按列进行初始化。()14、C语言中,对于共用体

unionData{intnum;charstr[10];};

,可以同时给

num

str

赋值。()15、C语言中的宏定义在编译时会被展开,不会进行语法检查。()三、编程题(本大题共5个小题,共25分)1、(本题5分)创建一个C程序,输入一个字符串,将其中连续的数字子串转换为对应的十六进制数并输出。2、(本题5分)设计一个C程序,创建一个二叉树结构。用户输入一系列整数,程序将其构建为二叉树,并进行前序、中序和后序遍历输出。3、(本题5分)编写一个C语言程序,用户输入一个字符串,判断其中是否存在数字和字母交替出现的情况,输出判断结果。4、(本题5分)编写一个C语言程序,实现输入一个整数n,打印出一个n行的直角三角形(使用'')。5、(本题5分)编写一个C语言程序,要求用户输入一个

温馨提示

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

评论

0/150

提交评论