吉林化工学院《C语言程序设计实践II》2021-2022学年第一学期期末试卷_第1页
吉林化工学院《C语言程序设计实践II》2021-2022学年第一学期期末试卷_第2页
吉林化工学院《C语言程序设计实践II》2021-2022学年第一学期期末试卷_第3页
吉林化工学院《C语言程序设计实践II》2021-2022学年第一学期期末试卷_第4页
吉林化工学院《C语言程序设计实践II》2021-2022学年第一学期期末试卷_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

自觉遵守考场纪律如考试作弊此答卷无效密自觉遵守考场纪律如考试作弊此答卷无效密封线第1页,共3页吉林化工学院

《C语言程序设计实践II》2021-2022学年第一学期期末试卷院(系)_______班级_______学号_______姓名_______题号一二三四总分得分批阅人一、单选题(本大题共35个小题,每小题1分,共35分.在每小题给出的四个选项中,只有一项是符合题目要求的.)1、以下C语言代码段的输出结果是什么?intnum=5;int*ptr=#*ptr=10;printf("%d",num);()A.5B.10C.0D.程序报错2、若有以下函数调用语句:func((a1,a2),(a3,a4,a5));在此函数调用语句中,含有的实参个数是()A.2B.3C.4D.53、在C语言中,关于位运算,设有

inta=5;intb=3;

,那么

a&b

的值是多少?()A.1B.2C.3D.74、设有定义:floata=3.14;intb;,则以下能实现将a的值强制转换为整型并赋给b的语句是()A.b=(int)a;B.b=int(a);C.b=(int)(a);D.b=a;5、以下C语言代码段的输出结果是什么?

inta=-1;unsignedintb=1;if(a<b)printf("Yes");elseprintf("No");

()A.YesB.NoC.不确定D.运行时错误6、C语言中的选择结构

if-else

用于根据条件执行不同的代码块。假设有以下代码:

intnum=15;if(num>10&&num<20){printf("Numberisinrange\n");}else{printf("Numberisoutofrange\n");}

,以下关于这段代码的输出,正确的是:()A."Numberisinrange"B."Numberisoutofrange"C.程序会产生运行时错误,因为条件判断不正确D.没有输出,因为

if-else

结构的条件不完整7、在C语言的位运算中,以下关于按位与(&)、按位或(|)和按位异或(^)的说法,错误的是()A.按位与运算可以用来将某些位清零,而保持其他位不变B.按位或运算可以用来将某些位置1,而保持其他位不变C.按位异或运算可以用来交换两个变量的值,而无需使用临时变量D.位运算只能用于整数类型的数据,不能用于浮点数类型8、C语言中的文件操作可以实现对数据的持久存储和读取。假设要从一个文本文件中读取数据,以下关于文件操作的描述,哪一项是错误的?()A.使用

fopen

函数以适当的模式打开文件,如"r"表示只读B.通过

fscanf

fgets

等函数从文件中读取数据C.文件读取完毕后,使用

fclose

关闭文件,否则可能会导致数据丢失D.对文件的读写操作是自动缓冲的,无需手动处理缓冲问题9、C语言中的循环结构是实现重复操作的重要手段。假设有一个

for

循环

for(inti=0;i<10;i++)

,以下对于循环结构的描述,哪一项是不准确的?()A.循环条件

i<10

在每次循环开始时都会被判断,如果条件不满足则循环结束B.可以在循环体内使用

continue

语句直接开始下一次循环,跳过本次循环剩余的代码C.循环变量

i

的作用域仅限于循环体内,在循环体外无法访问D.循环可以嵌套使用,内层循环会先执行完所有的迭代,然后外层循环才会进行下一次迭代10、在C语言中,对于指针和数组的关系,假设有一个数组

intarr[10]

,同时有一个指针

int*ptr=arr;

,那么

ptr+2

指向的是什么?()A.

arr[2]

B.

arr[3]

C.

arr[1]

D.不确定11、在C语言中,若要动态分配一个整型数组,以下哪个函数是正确的?()A.int*arr=(int*)malloc(sizeof(int)*10);B.int*arr=(int*)calloc(10,sizeof(int));C.int*arr=newint[10];D.以上都正确12、若有定义:inta[5],*p=a;则以下不能表示数组元素a[1]的是()A.p[1]B.*(p+1)C.a[1]D.*p+113、在C语言中,关于字符指针和字符数组的初始化,假设有

char*ptr1="Hello";charptr2[]="World";

,以下说法正确的是?()A.

ptr1

ptr2

都可以修改指向的字符串内容B.

ptr1

可以修改,

ptr2

不可以修改C.

ptr1

不可以修改,

ptr2

可以修改D.

ptr1

ptr2

都不可以修改14、C语言中的函数可以递归调用自身。假设有以下递归函数定义:

intfactorial(intn){if(n==0||n==1)return1;elsereturnn*factorial(n-1);}

,调用

factorial(5)

,以下关于函数返回值的描述,正确的是:()A.5B.15C.120D.程序会产生运行时错误,因为递归次数过多15、若有定义:charstr1[10]="string1",str2[10]="string2";,以下能将字符串str2复制到字符串str1的是()A.strcpy(str1,str2);B.str1=str2;C.strcat(str1,str2);D.以上都不对16、在C语言的文件操作中,以下关于文本文件和二进制文件的描述,不准确的是()A.文本文件以字符形式存储数据,便于阅读和编辑B.二进制文件存储数据的效率比文本文件高,因为它不需要进行字符转换C.对文本文件和二进制文件的读写操作使用的函数是完全相同的D.二进制文件更适合存储图像、音频等非文本数据17、在C语言中,若有以下代码段:inta=5,b=3;intc=a+++b;执行完后,c的值是多少?()A.8B.9C.7D.1018、在C语言中,关于位运算,若有

inta=5;intb=3;

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

a&b

的结果是7B.

a|b

的结果是3C.

~a

的结果是-6D.

a<<2

的结果是2019、C语言中的文件读写操作可以通过

fscanf

fprintf

函数实现。假设有以下代码:

FILE*fp;fp=fopen("data.txt","w");fprintf(fp,"%d%f",5,3.14);fclose(fp);

,再次以读模式打开文件并读取数据,以下操作正确的是:()A.使用

fscanf(fp,"%d%f",&num,&fnum);

可以正确读取写入的数据B.直接使用

fscanf(fp,"%d%f",num,fnum);

读取数据,无需使用取地址符C.读取数据时,文件指针会自动移动到文件开头D.无法读取之前写入的数据,因为读写方式不匹配20、C语言中的指针数组和数组指针是两个容易混淆的概念。假设我们有以下定义:

int*ptr1[5];

int(*ptr2)[5];

,它们分别表示什么?()A.

ptr1

是一个指针数组,

ptr2

是一个数组指针B.

ptr1

是一个数组指针,

ptr2

是一个指针数组C.两者都是指针数组D.两者都是数组指针21、C语言中的共用体(union)是一种特殊的数据类型。假设有以下共用体定义:

uniondata{intnum;floatfnum;};

,以下关于共用体的描述,正确的是:()A.共用体的成员同时占用内存空间,总大小为各成员大小之和B.同一时刻只能有一个成员的值是有效的C.共用体可以作为函数的返回值类型D.共用体的成员可以是不同类型的数组22、C语言中的预处理指令可以实现条件编译。假设有以下代码:

#ifdefDEBUGprintf("Debugginginformation\n");#endif

,如果在编译时没有定义

DEBUG

宏,以下输出结果正确的是:()A.输出"Debugginginformation"B.不输出任何内容C.程序会产生编译错误D.输出结果不确定,取决于编译器的设置23、在C语言中,关于循环结构的使用是基本的编程技能。假设有以下代码:

inti,sum=0;for(i=1;i<=10;i++){sum+=i;}

,以下关于这段循环的描述,正确的是:()A.循环执行10次,

sum

的最终值为55B.循环执行11次,

sum

的最终值为66C.循环执行次数不确定,取决于运行时的条件D.循环会无限执行,因为没有正确的结束条件24、假设有以下C语言代码段:

enumdays{MON,TUE,WED,THU,FRI,SAT,SUN};enumdaystoday=WED;

,那么

today+2

的值是多少?()A.5B.FRIC.不确定D.程序会出错25、假设在C语言中有如下代码段

inta=5;int*p=&a;

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

p+1

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

p*2

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

p+p

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

p1-p2

)结果的单位是字节26、C语言中的字符串比较不能直接使用

==

运算符。假设有以下字符串:

charstr1[]="Hello";charstr2[]="Hello";

,以下比较两个字符串是否相等的正确方式是:()A.使用

if(str1==str2)

B.使用

if(strcmp(str1,str2)==0)

C.使用

if(str1.equals(str2))

(假设存在这样的方法)D.直接判断

str1

str2

的地址是否相同27、假设我们有一个C语言程序,需要在不同的操作系统上运行。在进行代码编写时,需要考虑哪些与操作系统相关的差异?()A.文件路径的表示方式B.线程和进程的管理方式C.内存分配和释放的方式D.以上都是28、在C语言的位运算操作中,假设我们有两个整数

intnum1=5;

(二进制为0101)和

intnum2=3;

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

num1&num2

的结果是多少?()A.0B.1C.3D.529、若有定义:inta[3][2]={{1},{2},{3}};则a[1][0]的值为()A.0B.1C.2D.330、若有定义:int*p,a=4;p=&a;以下均代表地址的是()A.a,pB.&a,&*pC.&a,pD.*p,&a31、若有定义:floata[3]={1.2,2.3,3.4};则a[1]的值是()A.1.2B.2.3C.3.4D.032、若有定义:inta[2][3]={{1,2,3},{4,5,6}};则a[1][2]的值是()A.2B.3C.5D.633、在C语言中,关于字符数组和字符串的处理是常见的操作。假设有一个字符数组

charstr[100]

,以下对于字符数组和字符串的描述,哪一项是不准确的?()A.可以使用

strcpy

函数将一个字符串复制到字符数组中,但要确保数组有足够的空间B.字符串是以'\0'作为结束标志的,在处理字符串时需要注意这个特殊字符C.可以通过比较字符数组的地址来判断两个字符串是否相等D.字符数组可以存储任意字符,包括不可打印字符34、以下关于C语言中数组的描述,当定义一个整型数组

intarr[10];

并进行初始化后,若要访问数组中第5个元素,以下哪种方式是正确的?()A.

arr[4]

B.

arr[5]

C.

arr[6]

D.

arr[7]

35、C语言中的选择结构(如

if-else

)使用广泛。假设有

inta=10,b=20;

,执行

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

,会输出什么?()A.AB.BC.先输出A,再输出BD.程序出错二、判断题(本大题共10小题,每小题2分,共20分.有多个选项是符合题目要求的.)1、C语言中的全局变量可以在程序的任何地方被访问和修改。()2、在C语言中,变量的存储类型决定了变量的作用域和生存期。()3、在C语言中,函数的递归调用在任何情况下都不会导致栈溢出,只要递归逻辑正确就能正常运行。()4、C语言中的位运算符~是按位取反运算符,可以将一个整数的每一位取反。()5、在C语言中,使用fflush函数可以强制将

温馨提示

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

评论

0/150

提交评论