山东杏林科技职业学院《C面向对象程序设计》2023-2024学年第一学期期末试卷_第1页
山东杏林科技职业学院《C面向对象程序设计》2023-2024学年第一学期期末试卷_第2页
山东杏林科技职业学院《C面向对象程序设计》2023-2024学年第一学期期末试卷_第3页
山东杏林科技职业学院《C面向对象程序设计》2023-2024学年第一学期期末试卷_第4页
山东杏林科技职业学院《C面向对象程序设计》2023-2024学年第一学期期末试卷_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

学校________________班级____________姓名____________考场____________准考证号学校________________班级____________姓名____________考场____________准考证号…………密…………封…………线…………内…………不…………要…………答…………题…………第1页,共3页山东杏林科技职业学院《C面向对象程序设计》

2023-2024学年第一学期期末试卷题号一二三四总分得分一、单选题(本大题共25个小题,每小题1分,共25分.在每小题给出的四个选项中,只有一项是符合题目要求的.)1、在C语言中,若有定义

inta[10]={1,2,3,4,5,6,7,8,9,10};

,以下关于数组的描述,正确的是:()A.可以通过

a[10]

访问数组的最后一个元素B.数组

a

的长度是可以动态改变的C.使用

for

循环遍历数组时,循环条件可以是

i<10

D.数组元素的存储顺序是从大到小2、若有定义:intx=3,y=2;则表达式x=(y++)+x的值是()A.5B.6C.7D.83、若有定义:chars[10],*p=s;,以下输入语句中正确的是()A.scanf("%s",s);B.scanf("%s",p);C.scanf("%c",s);D.scanf("%c",p);4、对于以下C语言代码:typedefstruct{intx;inty;}Point;Pointp1={10,20};以下访问p1中x成员的方式正确的是:()A.p1.xB.p1->xC.(*p1).xD.以上都正确5、若有定义:inta[3][4]={{1,2},{3,4},{5,6}};则a[1][1]的值是()A.1B.2C.3D.46、在C语言中,关于结构体的嵌套使用,假设定义了结构体

structPoint{intx;inty;};

structRectangle{structPointtopLeft;structPointbottomRight;};

以下关于结构体嵌套的描述,哪一项是不准确的?()A.可以通过嵌套结构体来构建更复杂的数据结构B.访问嵌套结构体的成员需要使用多个成员访问运算符C.嵌套结构体的内存布局是连续的D.对嵌套结构体的成员进行赋值和操作与普通结构体成员相同7、在C语言中,关于宏定义的使用,有如下代码:

#defineSQUARE(x)(x*x)

,若有表达式

SQUARE(2+3)

,其计算结果是多少?()A.25B.11C.10D.不确定8、在C语言中,若要判断一个字符是否为大写字母,以下哪个函数是合适的?()A.islower()B.isupper()C.tolower()D.toupper()9、在C语言中,以下不能将字符串"hello"赋给数组s的语句是()A.chars[10]="hello";B.chars[]="hello";C.char*s="hello";D.chars[6]={'h','e','l','l','o'};10、在C语言中,关于函数的默认返回值类型,如果没有明确指定,默认是什么类型?()A.

void

B.

int

C.

float

D.没有默认类型,必须指定11、在C语言中,关于动态内存分配,使用

malloc

函数分配内存后,如果不再使用,应该使用哪个函数释放内存?()A.

free

B.

delete

C.

release

D.不需要释放12、在C语言的位运算操作中,假设我们有两个整数

intnum1=5;

(二进制为0101)和

intnum2=3;

(二进制为0011),进行按位与运算

num1&num2

的结果是多少?()A.0B.1C.3D.513、若有定义:structstudent{intnum;charname[20];}s;则以下对成员num的引用正确的是()A.s.numB.student.numC.s->numD.(*s).num14、在C语言的指针运算中,假设我们有一个指针

int*ptr

,并且它指向一个整数数组的某个元素。如果进行

ptr+=2

的操作,指针会指向什么位置?()A.数组的下一个元素B.数组的第三个元素C.不确定的位置D.以上都不对15、在C语言中,设有函数

voidfun(int*p)

,在函数体内通过

*p

对指针所指向的变量进行操作。若在主函数中有

inta=10;fun(&a);

,那么在函数

fun

中改变

*p

的值,主函数中的

a

的值会发生变化吗?()A.会B.不会C.不一定D.以上都不对16、关于C语言中的预处理器指令,如

#define

,假设有

#definePI3.14

,然后在代码中使用

floatarea=PI*r*r;

,这里的

PI

会被如何处理?()A.在编译时被替换为3.14B.在运行时被替换为3.14C.保持不变,作为一个变量D.导致编译错误17、设有以下语句:charstr1[]="string",str2[8],*str3,*str4="string";则()是对库函数strcpy的不正确调用。A.strcpy(str2,"hello");B.strcpy(str3,"hello");C.strcpy(str1,"hello");D.strcpy(str4,"hello");18、若有定义:inta=3,b=2,c=1;,则表达式a-b>c的值为()A.0B.1C.2D.-119、在C语言的库函数中,以下关于math.h头文件中的数学函数,描述不准确的是()A.sqrt函数用于计算一个数的平方根B.pow函数用于计算一个数的幂次方C.random函数用于生成随机数D.abs函数用于计算一个整数的绝对值20、设有定义:intx=10,y=20;,以下能正确交换x和y值的程序段是()A.intt;t=x;x=y;y=t;B.x=y;y=x;C.x+=y;y=x-y;x-=y;D.以上都正确21、函数在C语言编程中起着重要作用。假设有以下函数定义:

intmyFunction(intx,inty){returnx+y;}

,在主函数中调用

myFunction(3,5)

,返回的值是什么?()A.3B.5C.8D.不确定22、C语言中的

volatile

关键字用于修饰变量,其主要作用是什么?()A.提高变量的访问速度B.防止变量被优化器优化C.使变量可以被多个线程同时访问D.以上都不对23、在C语言的函数调用中,参数传递的方式有值传递和地址传递。假设有以下函数定义:

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

,以及主函数中的调用

intx=3,y=5;swap(&x,&y);

。以下关于函数

swap

的作用,正确的是:()A.函数

swap

不能交换

x

y

的值,因为是值传递B.函数

swap

可以交换

x

y

的值,并且这种交换在主函数中是有效的C.函数

swap

可以交换

x

y

的值,但这种交换只在函数内部有效,主函数中的

x

y

值不变D.函数

swap

会导致程序运行错误,因为指针的使用不正确24、在C语言中,对于指针的操作,若有

int*p,a=10;p=&a;

,以下描述正确的是:()A.

*p

的值和

a

的值始终相等B.对

p

进行自增操作(

p++

),其指向的值会增加C.可以通过

*p=20;

来修改指针

p

所指向的内存地址D.指针

p

所占的内存空间大小与

int

型变量相同25、C语言中,对于函数声明

voidfun(inta[],intn)

,以下关于函数参数的描述,正确的是:()A.在函数内部修改数组元素的值,不会影响主调函数中的数组B.形参

n

用于指定数组

a

的长度,其值在函数内不可改变C.数组

a

实际上是以指针的形式传递给函数的D.函数无法返回数组二、判断题(本大题共10小题,每小题2分,共20分.有多个选项是符合题目要求的.)1、在C语言中,结构体的内存布局可能会因为字节对齐而存在填充字节。()2、在C语言中,若有函数声明

voidprint(intn);

,在实现该函数时,函数体中可以没有任何输出语句。()3、C语言中的预处理器指令#define不仅可以定义常量,还可以定义简单的函数。()4、C语言中,fopen函数打开文件失败时返回NULL。()5、在C语言中,函数指针是指向函数的指针变量,可以通过函数指针来调用不同的函数,从而实现函数的动态调用和回调机制。()6、在C语言中,

strlwr

函数可以将字符串中的所有字母转换为小写形式。()7、在C语言中,

fputs

函数用于将字符串输出到文件中,不会自动添加换行符。()8、C语言中,文件的读写位置指针可以超出文件的末尾。()9、C语言中,两个指针变量相减得到的是两个指针之间的元素个数。()10、对于C语言中的字符串函数strcspn,它可以计算字符串开头连续不匹配指定字符集的字符个数。()三、编程题(本大题共5个小题,共25分)1、(本题5分)创建一个C语言程序,输入一个字符串,判断其中是否包含子串,如果包含输出"包含",否则输出"不包含"。2、(本题5分)创建一个C语言程序,用户输入一个整数n,程序输出一个n行的等腰梯形,使用“&”表示。3、(本题5分)设计一个C语言程序,用户输入一个整数n,程序打印出一个n行的倒等腰三角形,使用'*'字符。4、(本题5分)设计一个C语言程序,输入一个整数n,计算并输出n以内所有的相亲数对(相亲数是指一对数,其中一个数的所有真因数之和等于另一个数,且另一个数的所有真因数之和等于第一个数)。5、(本题5分)设

温馨提示

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

评论

0/150

提交评论