山西大学《C语言程序设计基础实验》2021-2022学年第一学期期末试卷_第1页
山西大学《C语言程序设计基础实验》2021-2022学年第一学期期末试卷_第2页
山西大学《C语言程序设计基础实验》2021-2022学年第一学期期末试卷_第3页
山西大学《C语言程序设计基础实验》2021-2022学年第一学期期末试卷_第4页
山西大学《C语言程序设计基础实验》2021-2022学年第一学期期末试卷_第5页
全文预览已结束

下载本文档

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

文档简介

装订线装订线PAGE2第1页,共3页山西大学《C语言程序设计基础实验》

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

#define

,假设有

#definePI3.14

,然后在代码中使用

floatarea=PI*r*r;

,这里的

PI

会被如何处理?()A.在编译时被替换为3.14B.在运行时被替换为3.14C.保持不变,作为一个变量D.导致编译错误2、若有以下定义:chars1[]="program",s2[]="language";则能将字符串“language”连接到字符串“program”后面的函数调用是()A.strcat(s1,s2);B.strcpy(s1,s2);C.strcmp(s1,s2);D.strlen(s1);3、在C语言中,关于指针和数组的关系是一个复杂但重要的概念。假设我们有一个整型数组

intarr[10]

,同时有一个整型指针

int*ptr

。以下对于指针和数组关系的描述,哪一项是不准确的?()A.数组名可以看作是一个指向数组首元素的常量指针B.可以通过指针来遍历数组的元素,就像通过数组下标一样C.对指针进行加减运算时,移动的步长取决于指针所指向的数据类型的大小D.数组和指针在内存中的存储方式完全相同,没有任何区别4、在C语言中,关于静态变量,设有函数

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

,连续调用该函数3次,输出结果是什么?()A.123B.012C.111D.0005、若有定义:charstr[20]="HelloWorld";,则strlen(str)的值为()A.11B.12C.19D.206、在C语言的位运算中,以下关于按位与(&)、按位或(|)和按位异或(^)的说法,错误的是()A.按位与运算可以用来将某些位清零,而保持其他位不变B.按位或运算可以用来将某些位置1,而保持其他位不变C.按位异或运算可以用来交换两个变量的值,而无需使用临时变量D.位运算只能用于整数类型的数据,不能用于浮点数类型7、在C语言中,若有以下代码段:inta=5,b=3;intc=a+++b;执行完后,c的值是多少?()A.8B.9C.7D.108、若有定义:floata[3]={1.2,2.3,3.4};则a[1]的值是()A.1.2B.2.3C.3.4D.09、C语言中,对于预处理器指令

#include

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

#include

指令只能包含.c文件B.包含的头文件可以写在程序的任意位置C.重复包含同一个头文件会导致编译错误D.可以使用尖括号

<>

和双引号

""

来指定包含的文件,它们的区别在于搜索路径不同10、在C语言中,关于结构体指针的使用,假设定义了结构体

structBook{chartitle[50];intprice;};

structBook*ptr;

,以下关于结构体指针的描述,哪一项是不准确的?()A.可以通过

ptr->title

访问结构体成员B.结构体指针可以指向结构体数组的元素C.使用结构体指针可以更高效地操作结构体数据D.结构体指针本身的大小与结构体的大小相同11、若有定义:inta[5]={1,2,3,4,5},*p=a;则以下不能表示数组a中元素a[3]的是()A.*(p+3)B.p[3]C.*(a+3)D.p+312、设有以下C语言函数:

intfun(intn){if(n<=0)return0;elsereturnn+fun(n-1);}

,调用

fun(5)

的返回值是多少?()A.5B.10C.15D.不确定13、在C语言中,设有以下宏定义

#defineMAX(a,b)((a)>(b)?(a):(b))

,那么

MAX(3+2,5)

的值是多少?()A.5B.6C.8D.不确定14、在C语言中,关于函数的默认返回值类型,如果没有明确指定,默认是什么类型?()A.

void

B.

int

C.

float

D.没有默认类型,必须指定15、若有定义

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

,则

a[1]

的值是()A.0B.1C.2D.3二、判断题(本大题共15小题,每小题2分,共30分.有多个选项是符合题目要求的.)1、在C语言中,函数的返回值类型如果是void,则表示该函数不能返回任何值,并且在函数内部也不能使用return语句返回任何值。()2、在C语言中,指针可以进行加减运算,其运算结果与指针所指向的数据类型的字节数有关。()3、在C语言中,

struct

结构体中的成员可以是另一个结构体类型,从而实现结构体的嵌套。()4、C语言中的

goto

语句可以无条件跳转到程序中的任意位置,但过度使用会使程序结构混乱,应谨慎使用。()5、C语言中的位运算符~是按位取反运算符,可以将一个整数的每一位取反。()6、C语言中的

qsort

函数可以对任意类型的数组进行排序,但需要提供一个比较函数来定义元素的排序规则。()7、C语言中的宏定义可以带参数,参数可以在宏体中使用。()8、C语言中,continue语句可以用于switch语句中。()9、在C语言中,使用strcmpi函数可以进行不区分大小写的字符串比较。()10、C语言中的文件操作中,以“a+”模式打开文件,如果文件不存在会创建新文件,如果存在则在文件末尾追加数据。()11、C语言中的共用体(union)的所有成员共享同一段内存空间。()12、C语言中的条件编译可以用于根据不同的条件选择不同的代码段进行编译。()13、

fopen

函数打开文件失败时会返回一个非空指针。()14、C语言中的

malloc

函数分配的内存空间未初始化,其内容是不确定的。()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

提交评论