期末c语言考试题(黄金题型)_第1页
期末c语言考试题(黄金题型)_第2页
期末c语言考试题(黄金题型)_第3页
期末c语言考试题(黄金题型)_第4页
期末c语言考试题(黄金题型)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

期末c语言考试题第一部分单选题(50题)1、函数返回值的类型由______决定?()

A.return语句中的表达式类型

B.函数定义时的返回类型

C.函数调用时的参数类型

D.编译器默认类型

【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。2、数组名作为函数参数时,函数形参的正确写法是?()

A.inta[]

B.int*a

C.inta[5]

D.以上都是

【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。3、指针变量的作用是存储?()

A.变量的值

B.变量的地址

C.函数的地址

D.数组的元素

【答案】:答案解析:指针变量专门存储其他变量的内存地址,故选B。4、函数声明的作用是?()

A.告诉编译器函数的存在

B.实现函数功能

C.分配函数内存

D.调用函数

【答案】:答案解析:函数声明用于向编译器说明函数名、参数、返回类型(确保调用正确),定义才是实现功能,故选A。5、以下关于函数的说法正确的是?()

A.函数可提高代码复用性

B.函数可简化程序结构

C.函数可便于维护

D.以上都正确

【答案】:答案解析:函数的核心优势是复用、简化结构、便于维护,故选D。6、若intx=5;执行if(x>3&&x<7)printf("yes");elseprintf("no");输出结果是?()

A.yes

B.no

C.yesno

D.无输出

【答案】:答案解析:x=5>3且<7,条件为真,输出yes,故选A。7、若inta[3][3]={{1,2},{3,4},{5,6}};则a[1][1]的值是?()

A.2

B.4

C.5

D.6

【答案】:答案解析:a[1][1]是第二行第二列,值为4,故选B。8、数组元素的下标从______开始?()

A.0

B.1

C.-1

D.任意

【答案】:答案解析:C语言数组下标从0开始,是固定规则,故选A。9、指针作为函数参数时,传递的是?()

A.指针的值

B.指针的地址

C.变量的值

D.变量的地址

【答案】:答案解析:指针传参本质是传递变量地址,函数中通过指针可修改实参值,故选D。10、数组作为函数参数时,函数形参不能是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均可作为数组形参,故选D。11、以下for循环中,用于计算1到5的平方和的是?()

A.s=0;for(i=1;i<=5;i++)s+=ii;

B.s=0;for(i=1;i<=5;i++)s+=i2;

C.s=1;for(i=1;i<=5;i++)s*=i;

D.s=0;for(i=1;i<=5;i++)s+=i+i;

【答案】:答案解析:平方和是1²+2²+3²+4²+5²=1+4+9+16+25=55,A的逻辑正确,故选A。12、转义字符\0的作用是?()

A.表示空格

B.表示制表符

C.字符串结束标志

D.换行

【答案】:答案解析:\0ASCII码为0,是字符串默认结束标志,不计入长度,故选C。13、定义单精度浮点型变量y并赋值2.718的语句是?()

A.doubley=2.718;

B.floaty=2.718f;

C.floaty=2.718;

D.inty=2.718;

【答案】:答案解析:float是单精度,需加f后缀(否则默认double),double是双精度,故选B。14、若inta[5];则数组a的元素个数是?()

A.4

B.5

C.6

D.不确定

【答案】:答案解析:数组a[5]定义5个元素(下标0-4),故选B。15、以下指针与函数的关系正确的是?()

A.函数名是函数的地址

B.函数指针可指向函数

C.可通过函数指针调用函数

D.以上都正确

【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。16、指针的自增运算(p++)的含义是?()

A.指针值加1

B.指针指向的变量值加1

C.指针指向地址偏移一个类型大小

D.指针指向地址偏移1字节

【答案】:答案解析:p++使指针指向地址偏移“指向类型大小”(如int指针+4字节),故选C。17、若floatx=3.14;则表达式(int)x的结果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:强制转换为int取整数部分,3.14→3,故选A。18、若inta[5];执行a[0]=1;a[1]=2;则a[2]的值是?()

A.0

B.3

C.随机值

D.无定义

【答案】:答案解析:全局数组默认0,局部数组未初始化是随机值?题目未说明存储类别,通常默认全局,a[2]=0,故选A。19、以下关于指针的说法正确的是?()

A.指针可用于遍历数组

B.指针可用于字符串操作

C.指针可用于函数参数传递

D.以上都正确

【答案】:答案解析:指针在数组遍历、字符串处理、参数传递中均有核心作用,故选D。20、以下函数调用时,实参为常量的是?()

A.fun(5);

B.fun(a);

C.fun(&a);

D.fun("abc");

【答案】:答案解析:A中5是常量,B是变量,C是变量地址,D是字符串常量,题目问“常量”,A正确,故选A。21、若floatf=5.9;强制转换为整型的表达式是?()

A.int(f)

B.(int)f

C.intf

D.(float)f

【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。22、以下for循环中,循环变量更新表达式为“i-=2”的是?()

A.for(i=10;i>0;i-=2)

B.for(i=0;i<10;i+=2)

C.for(i=10;i>0;i--)

D.for(i=0;i<10;i=2)

【答案】:答案解析:i-=2等价于i=i-2,A的更新表达式正确,故选A。23、若int*p=(int)malloc(sizeof(int));则p的值是?()

A.0

B.随机值

C.1

D.无定义

【答案】:答案解析:malloc分配的内存未初始化,值为随机值,故选B。24、以下if语句中,逻辑非运算符使用正确的是?()

A.if(!x)printf("yes");

B.if(!x==0)printf("yes");

C.if(!(x>0))printf("yes");

D.A和C

【答案】:答案解析:!x表示“x为假(0)”,!(x>0)表示“x不大于0”,均正确;B中!x==0等价于x!=0,逻辑不同,故选D。25、以下switch语句中,default的位置可以在?()

A.所有case之前

B.所有case之后

C.两个case之间

D.以上都可以

【答案】:答案解析:default位置灵活,可在case前、后或中间,不影响执行逻辑,故选D。26、若intx=3;执行以下代码后a的值是?()inta;if(x>5)a=10;elseif(x>2)a=20;elsea=30;

A.10

B.20

C.30

D.无定义

【答案】:答案解析:x=3>2,执行第二个分支,a=20,故选B。27、若inti=0;执行while(1){if(i==3)break;printf("%d",i);i++;}输出结果是?()

A.012

B.0123

C.无限循环

D.无输出

【答案】:答案解析:while(1)是无限循环,i=3时break,输出012,故选A。28、以下函数无返回值的是?()

A.intfun(){return0;}

B.voidfun(){printf("hello");}

C.floatfun(){return3.14;}

D.charfun(){return'b';}

【答案】:答案解析:void类型函数无返回值,A、C、D均有返回值,故选B。29、以下switch语句语法错误的是?()

A.switch(x){case1:printf("1");break;case2:printf("2");break;}

B.switch(x){case1:printf("1");case2:printf("2");}

C.switch(x){case1:;break;case2:printf("2");}

D.switch(x){case1:printf("1");break;case1:printf("2");break;}

【答案】:答案解析:case后常量不能重复,D中case1重复,编译报错,故选D。30、若intx=5;则表达式x+++x的结果是?()

A.10

B.11

C.12

D.9

【答案】:答案解析:结合性从左到右,x+++x等价于(x++)+x=5+6=11,故选B。31、若intx=2;执行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}输出结果是?()

A.b

B.bc

C.abc

D.无输出

【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出bc,故选B。32、以下switch语句中,case穿透的情况是?()

A.case后加break

B.case后不加break

C.有default

D.无default

【答案】:答案解析:case后不加break会继续执行下一个case的代码(穿透),加break则跳出,故选B。33、C语言中,注释的正确写法是?()

A.//单行注释

B./*多行注释/

C.--注释

D.A和B

【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。34、若inti=0;执行for(;;){if(i==4)break;printf("%d",i);i++;}输出结果是?()

A.0123

B.01234

C.无限循环

D.无输出

【答案】:答案解析:for(;;)是无限循环,i=4时break,输出0123,故选A。35、逻辑表达式3&&0的结果是?()

A.0

B.1

C.3

D.真

【答案】:答案解析:逻辑与&&只要有一个operand为0则结果为0,3为真,0为假,故选A。36、若inti=1;执行while(i<=4){printf("%d",i);i+=3;}输出结果是?()

A.14

B.1234

C.1

D.无输出

【答案】:答案解析:i初始1,加3后4,执行2次,输出14,故选A。37、以下哪个表达式可访问数组a的第i个元素(i从1开始)?()

A.a[i]

B.a[i-1]

C.*(a+i)

D.*(a+i-1)

【答案】:答案解析:数组下标从0开始,第i个元素对应下标i-1,a[i-1]正确,C、D是指针访问(对应下标i),故选B。38、以下关于数组初始化的说法正确的是?()

A.数组必须初始化

B.数组初始化时元素个数不能少于长度

C.数组初始化时可部分赋值

D.数组初始化后不能修改

【答案】:答案解析:数组可部分赋值(未赋值元素默认0),A数组可不用初始化,B可少于长度,D数组元素可修改,故选C。39、定义整型变量x、y并均赋值10的语句是?()

A.intx=y=10;

B.intx=10,y=10;

C.intx=10;y=10;

D.intx=10;inty=10;

【答案】:答案解析:同一行定义多个变量用逗号分隔,A不能连续赋值,C缺少int,D是两行定义,故选B。40、若inta=5,b=3;执行if(a>b){a--;b++;}后a和b的值分别是?()

A.4,4

B.5,3

C.4,3

D.5,4

【答案】:答案解析:a>b为真,执行代码块,a=5-1=4,b=3+1=4,故选A。41、以下哪个是NULL指针?()

A.void*p=0;

B.int*p=NULL;

C.charp=(char)0;

D.以上都正确

【答案】:答案解析:NULL指针是不指向任何有效地址的指针,三种写法均正确,故选D。42、以下函数调用正确的是?()

A.fun();

B.fun(1,2);

C.fun("test");

D.取决于函数定义

【答案】:答案解析:函数调用是否正确取决于函数定义(参数类型、个数),A、B、C均可能正确,故选D。43、若inti=1,s=0;执行while(i<=5){s+=i;i++;}后s的值是?()

A.15

B.10

C.5

D.0

【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。44、以下字符串数组定义正确的是?()

A.charstr[5][10]={"hello","world"};

B.charstr[5][]={"hello","world"};

C.charstr[][10]={"hello","world","!"};

D.charstr[5][10]={"hello","world","!"};

【答案】:答案解析:B第二维不能省略,A、C、D均正确?D最完整(5行10列,初始化3个字符串),故选D。45、若inti=1;执行while(i

温馨提示

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

评论

0/150

提交评论