吉林财经大学《单片机C语言程序设计》2023-2024学年第一学期期末试卷_第1页
吉林财经大学《单片机C语言程序设计》2023-2024学年第一学期期末试卷_第2页
吉林财经大学《单片机C语言程序设计》2023-2024学年第一学期期末试卷_第3页
吉林财经大学《单片机C语言程序设计》2023-2024学年第一学期期末试卷_第4页
吉林财经大学《单片机C语言程序设计》2023-2024学年第一学期期末试卷_第5页
全文预览已结束

下载本文档

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

文档简介

学校________________班级____________姓名____________考场____________准考证号学校________________班级____________姓名____________考场____________准考证号…………密…………封…………线…………内…………不…………要…………答…………题…………第1页,共3页吉林财经大学《单片机C语言程序设计》

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

intfun(inta,floatb);

,以下调用正确的是()A.

fun(1.5,2);

B.

fun(1,2.5);

C.

fun(1,2);

D.

fun(1.5,2.5);

2、在C语言中,关于静态变量的使用,假设有以下函数:

voidfunc(){staticintcount=0;count++;printf("%d",count);}

,多次调用

func

函数,以下输出结果正确的是:()A.每次输出都是1B.输出依次为1,2,3,...C.输出结果不确定,取决于调用的顺序D.程序会产生运行时错误,因为静态变量使用不正确3、C语言中的数组是一种重要的数据结构。假设定义了一个整数数组

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

,以下关于数组操作的描述,哪一项是不准确的?()A.可以通过

arr[0]

arr[4]

的方式访问数组的每个元素B.数组的大小在定义后就不能改变C.可以将一个数组直接赋值给另一个同类型且大小相同的数组D.可以通过指针来操作数组,例如

int*p=arr;

4、在C语言中,若有定义

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

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

a[10]

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

a

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

for

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

i<10

D.数组元素的存储顺序是从大到小5、假设在C语言中有以下代码

typedefintINT;

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

INT

int

是完全不同的类型B.可以使用

INTa,b;

来定义变量C.

typedef

定义的新类型不能用于函数参数和返回值类型D.

typedef

只是给已有类型起了一个别名,不会创建新的类型6、在C语言中,指针是一个强大但也容易出错的概念。假设我们有以下代码段:

inta=5;int*p=&a;

,然后执行

*p=10;

。那么此时变量

a

的值会发生什么变化?()A.保持不变,仍为5B.变为10C.变为随机值D.程序会出错7、在C语言中,关于函数指针的定义和使用,假设有以下代码:

int(*funcPtr)(int,int);

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

int

,有两个

int

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

int

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

int

类型数组的指针8、C语言中的选择结构(如

if-else

)使用广泛。假设有

inta=10,b=20;

,执行

if(a>b)printf("A");elseprintf("B");

,会输出什么?()A.AB.BC.先输出A,再输出BD.程序出错9、若有定义:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};,则((a+1)+1)的值是()A.6B.7C.8D.910、在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

会导致程序运行错误,因为指针的使用不正确11、有关C语言中的volatile关键字,以下陈述不正确的是()A.volatile关键字用于告诉编译器,变量的值可能会被意外地改变,不要进行优化B.多线程环境中共享的变量通常应该使用volatile关键字修饰C.使用volatile关键字修饰的变量,其读写操作一定是原子性的D.硬件寄存器通常使用volatile关键字修饰12、在C语言的函数递归调用中,假设我们定义了一个递归函数来计算阶乘。当输入的数值较大时,可能会出现什么问题?()A.函数执行速度非常快B.可能会导致栈溢出C.结果总是准确无误D.没有任何问题13、若有定义:chars[100];以下不能正确把字符串"HelloWorld"存入数组s的语句是()A.gets(s);B.scanf("%s",s);C.strcpy(s,"HelloWorld");D.strcat(s,"HelloWorld");14、C语言中,对于以下代码:

typedefstruct{intx;inty;}point;

,以下说法正确的是?()A.创建了一个名为

point

的变量B.定义了一个新的数据类型

point

C.以上都不对D.声明了一个结构体指针

point

15、若有定义:charstr[20]="HelloWorld";,则strlen(str)的值为()A.11B.12C.19D.20二、判断题(本大题共15小题,每小题2分,共30分.有多个选项是符合题目要求的.)1、C语言中的

ftell

函数用于获取文件指针当前的位置。()2、在C语言中,数组名作为函数参数传递时,在函数内部对数组的修改会影响到原数组。()3、在C语言中,

atoi

函数用于将字符串转换为整数,如果字符串不是有效的整数表示,其行为是未定义的。()4、C语言中的指针可以进行比较运算,比较的是指针所指向的地址。()5、在C语言中,

short

类型的变量占用的存储空间比

int

类型少。()6、在C语言中,

#ifndef

#endif

配合使用可以防止头文件被重复包含。()7、C语言中的结构体可以包含结构体指针类型的成员变量。()8、

charstr[]="Hello";char*ptr=str;ptr[0]='M';

,这样修改字符串的操作是不合法的,因为字符串常量通常是不可修改的。()9、C语言中的字符串处理函数strstr用于在一个字符串中查找另一个字符串首次出现的位置。()10、在C语言中,对于文件读写操作,如果以

r+

模式打开文件,既可以读取文件内容,也可以向文件写入数据,但写入数据时会覆盖原有数据。()11、在C语言中,定义一个指针变量后,就可以直接对其进行解引用操作,获取其所指向的数据。()12、C语言中的结构体可以包含联合体(union)类型的成员变量。()13、C语言中的文件操作模式(如"r"、"w"、"a"等)决定了对文件的操作方式,如只读、只写、追加等,并且在打开文件时必须指定正确的操作模式。()14、C语言中的条件编译可以根据不同的条件选择编译不同的代码段,从而实现代码的优化和可移植性。()15、在C语言中,定义了一个结构体变量

structPointp1,p2;

,可以使用

p1=p2;

直接将

p2

的值赋给

p1

。()三、编程题(本大题共5个小题,共25分)1、(本题5分)设计一个C程序,用户输入一个整数n,打印出一个n行的空心菱形图案,使用*号表示。2、(本题5分)编写一个C语言程序,用户输入一个整数n,计算并输出n以内能同时被2和3整除的数的个数。3、(本题5分)编写C程序,输入一个正整数n,计算并输出1到n之间所有数的立方根之和。4、(本题5分)用C语言创建一个程序,用户输入一个字符串,程序找出其中所有由相同字符组成的子串,并输出这些子串。5、(本题5分)编写一个C语言程序,计算两个字符串的编辑距离(

温馨提示

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

评论

0/150

提交评论