贵州大学c语言期末试题(巩固)_第1页
贵州大学c语言期末试题(巩固)_第2页
贵州大学c语言期末试题(巩固)_第3页
贵州大学c语言期末试题(巩固)_第4页
贵州大学c语言期末试题(巩固)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

贵州大学c语言期末试题第一部分单选题(50题)1、若inta=2;执行a*=a+3;后a的值是?()

A.7

B.10

C.14

D.5

【答案】:答案解析:a*=a+3等价于a=a*(a+3)=2*(2+3)=10,故选B。2、函数调用时,实参的顺序必须与形参的顺序?()

A.一致

B.相反

C.无关

D.部分一致

【答案】:答案解析:实参和形参需按顺序一一对应(类型、个数、顺序匹配),否则可能导致逻辑错误,故选A。3、若intx=5;则表达式++x的结果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。4、若inta=7;执行if(a%3==1)printf("A");elseif(a%3==2)printf("B");elseprintf("C");输出结果是?()

A.A

B.B

C.C

D.无输出

【答案】:答案解析:7%3=1?7/3=2余1?不,7%3=1?7-3*2=1,条件1成立?哦7%3=1,应输出A?不对,7%3=1,第一个条件成立,输出A?重新计算:7÷3=2余1,a%3=1,执行第一个分支,输出A,故选A(原解析修正:之前误算,正确结果A)。5、若inta[3][2]={{1,2},{3,4},{5,6}};则a[2][1]的值是?()

A.5

B.6

C.3

D.4

【答案】:答案解析:a[2][1]是第三行第二列,值为6,故选B。6、以下关于函数的说法错误的是?()

A.函数可嵌套调用

B.函数可递归调用

C.函数可重定义

D.函数可声明多次

【答案】:答案解析:C函数名不能重定义(重复定义编译报错),A、B、D正确,故选C。7、函数返回值的类型与return语句中表达式类型不一致时,会?()

A.编译错误

B.自动强制转换为函数返回类型

C.程序崩溃

D.无影响

【答案】:答案解析:编译器会将return表达式类型强制转换为函数返回类型(可能丢失精度),不报错,故选B。8、若inti=0,s=0;执行for(i=0;i<4;i++)s+=i;后s的值是?()

A.6

B.10

C.4

D.0

【答案】:答案解析:累加0+1+2+3=6,s=6,故选A。9、以下指针的算术运算中,单位是?()

A.1字节

B.指针指向类型的大小

C.4字节

D.8字节

【答案】:答案解析:指针算术运算(如p++)偏移量是指向类型的大小(如int指针+1偏移4字节),故选B。10、若charstr[10]="abcde";则str[5]的值是?()

A.'e'

B.'\0'

C.随机值

D.无定义

【答案】:答案解析:字符串自动在末尾加\0,str[5]是\0,故选B。11、下列变量定义语法正确的是?()

A.inta=5;

B.inta=b=5;

C.int5a;

D.inta;b;

【答案】:答案解析:B不能连续赋值定义,C标识符开头错误,D分号分隔需分别定义(inta;intb;),故选A。12、以下定义指向数组的指针正确的是?()

A.inta[5],*p=a;

B.inta[5],*p=&a;

C.inta[5],p=a;

D.inta[5],*p=a[0];

【答案】:答案解析:a是数组名(首元素地址),p=a等价于p=&a[0],B&a是数组地址(类型不匹配),Cp是普通变量,Dp不能赋a[0]的值,故选A。13、若inti=0;执行for(i=0;i<5;i++){if(i==3)break;printf("%d",i);}输出结果是?()

A.012

B.0123

C.01234

D.无输出

【答案】:答案解析:i=3时break,输出012,故选A。14、二维数组a[3][4]的元素个数是?()

A.7

B.12

C.3

D.4

【答案】:答案解析:3行4列,共3×4=12个元素,故选B。15、若inta[4]={1,2,3,4};则*(a+1)的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。16、若inta=7,*p=&a;执行++*p;后a的值是?()

A.7

B.8

C.&a

D.无定义

【答案】:答案解析:++*p等价于++(*p),先解引用取a的值,再加1(a=8),故选B。17、函数调用的一般格式是?()

A.函数名(实参列表);

B.函数名实参列表;

C.返回类型函数名(实参列表);

D.函数名=实参列表;

【答案】:答案解析:函数调用格式为“函数名(实参列表);”,实参与形参匹配,故选A。18、数组作为函数参数时,函数形参不能是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均可作为数组形参,故选D。19、以下函数声明中,返回类型为float的是?()

A.floatfun();

B.voidfun(floata);

C.intfun(floata);

D.charfun(floata);

【答案】:答案解析:A返回类型为float,B无返回值,C返回类型int,D返回类型char,故选A。20、以下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。21、表达式5>3&&2<4的结果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:5>3为真(1),2<4为真(1),逻辑与&&结果为1,故选B。22、函数调用时,实参的类型必须与形参的类型?()

A.完全一致

B.兼容(可自动转换)

C.无关

D.实参类型大于形参类型

【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。23、若charstr="Clanguage";则(str+2)的值是?()

A.'C'

B.''

C.'l'

D.'a'

【答案】:答案解析:str+2指向第三个字符,值为'l',故选C。24、若inta[5];执行a[0]=1;a[1]=2;则a[2]的值是?()

A.0

B.3

C.随机值

D.无定义

【答案】:答案解析:全局数组默认0,局部数组未初始化是随机值?题目未说明存储类别,通常默认全局,a[2]=0,故选A。25、若inta=3,b=4;则表达式ab++的值是?()

A.12

B.15

C.16

D.7

【答案】:答案解析:b++是后置自增,先参与运算(ab=3*4=12),再自增(b变为5),故选A。26、以下关于函数的说法正确的是?()

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

B.函数可简化程序结构

C.函数可便于维护

D.以上都正确

【答案】:答案解析:函数的核心优势是复用、简化结构、便于维护,故选D。27、若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。28、以下关于函数递归的说法错误的是?()

A.必须有终止条件

B.可能导致栈溢出

C.效率比循环高

D.代码简洁

【答案】:答案解析:递归调用会创建栈帧,效率低于循环,A、B、D正确,C错误,故选C。29、以下哪个转义字符表示制表符?()

A.\n

B.\t

C.\b

D.\r

【答案】:答案解析:\t是制表符(Tab),\n换行,\b退格,\r回车,故选B。30、以下关于main函数的说法错误的是?()

A.程序从main开始执行

B.main函数可带参数

C.main函数必须有返回值

D.main函数可调用其他函数

【答案】:答案解析:main函数可声明为void(无返回值),C说法错误,A、B、D正确,故选C。31、以下函数参数传递方式中,能修改实参值的是?()

A.值传递

B.地址传递

C.都能

D.都不能

【答案】:答案解析:值传递修改的是形参(副本),不影响实参;地址传递通过指针修改实参值,故选B。32、若intx=10;则表达式x%3的结果是?()

A.1

B.2

C.3

D.0

【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。33、指针的核心优势是?()

A.间接访问变量,灵活操作内存

B.提高程序效率,减少内存开销

C.支持动态内存分配和函数回调

D.以上都正确

【答案】:答案解析:指针的核心优势包括间接访问、高效、动态内存、回调等,故选D。34、指针与结构体的关系,以下说法正确的是?()

A.结构体指针通过->访问成员

B.结构体变量通过。访问成员

C.结构体指针可指向结构体变量

D.以上都正确

【答案】:答案解析:A、B、C均是结构体与指针的基本规则,故选D。35、若inta=10,*p=&a;则sizeof(p)的值是?()

A.4

B.8

C.取决于系统

D.10

【答案】:答案解析:sizeof(p)是指针大小,32位系统4字节,64位8字节,故选C。36、以下关于二维数组的说法正确的是?()

A.二维数组是数组的数组

B.二维数组元素在内存中按列存储

C.二维数组长度必须是常量

D.二维数组不能作为函数参数

【答案】:答案解析:二维数组本质是数组的数组,内存按行存储,可作为函数参数,长度需常量,故选A。37、以下指针与函数的关系正确的是?()

A.函数名是函数的地址

B.函数指针可指向函数

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

D.以上都正确

【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。38、以下哪个是NULL指针?()

A.void*p=0;

B.int*p=NULL;

C.charp=(char)0;

D.以上都正确

【答案】:答案解析:NULL指针是不指向任何有效地址的指针,三种写法均正确,故选D。39、函数返回值的类型由______决定?()

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

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

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

D.编译器默认类型

【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。40、若inti=0;执行do{i++;printf("%d",i);}while(i<3);输出结果是?()

A.123

B.012

C.12

D.无输出

【答案】:答案解析:do-while先执行,i从1到3,输出123,故选A。41、以下哪个if语句的条件是“x是偶数且x大于10”?()

A.if(x%2==0&&x>10)

B.if(x%2=0&&x>10)

C.if(x%2==0||x>10)

D.if(x%2=0||x>10)

【答案】:答案解析:偶数判断用x%2==0,逻辑与用&&,B是赋值,C、D是逻辑或,故选A。42、若inti=0;执行for(;i<5;){printf("%d",i);i++;}输出结果是?()

A.01234

B.12345

C.无限循环

D.无输出

【答案】:答案解析:for循环初始化和条件省略,循环体中i自增,执行5次,输出01234,故选A。43、以下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。44、do-while循环的特点是?()

A.先判断条件,后执行循环体

B.先执行循环体,后判断条件

C.条件不满足时也不执行循环体

D.只能执行一次

【答案】:答案解析:do-while是“先执行后判断”,至少执行一次循环体,for和while是“先判断后执行”,故选B。45、若inta=6;执行a/=3;后a的值是?()

A.2

B.3

C.6

D.18

【答案】:答案解析:a/=3等价于a=a/3=6/3=2,故选A。46、函数定义和函数声明的区别是?()

A.定义包含函数体,声明不包含

B.声明包含函数体,定义不包含

C.定义和声明无区别

D.定义在程序开头,声明在结尾

【答案】:答案解析:函数定义是完整实现(含函数体),声明是告诉编译器函数名、参数、返回类型(不含函数体),故选A

温馨提示

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

评论

0/150

提交评论