大学c语言考试题库及答案(新)_第1页
大学c语言考试题库及答案(新)_第2页
大学c语言考试题库及答案(新)_第3页
大学c语言考试题库及答案(新)_第4页
大学c语言考试题库及答案(新)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

大学c语言考试题库第一部分单选题(50题)1、以下函数定义正确的是?()

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

B.voidfun(inta){printf("%d",a);}

C.intfun(){return5;}

D.以上都正确

【答案】:答案解析:A无参无返回值,B有参无返回值,C无参有返回值,均符合语法,故选D。2、若inta=4;执行a-=2;后a的值是?()

A.2

B.4

C.6

D.0

【答案】:答案解析:a-=2等价于a=a-2,4-2=2,故选A。3、若inti;执行for(i=0;i<5;i++)printf("%d",i);输出结果是?()

A.01234

B.12345

C.012345

D.无输出

【答案】:答案解析:for循环初始化i=0,条件i<5(成立时执行),每次循环后i++,执行5次,输出01234,故选A。4、以下if-else语句中,代码块执行顺序正确的是?()

A.先执行if条件,满足则执行if代码块,否则执行else代码块

B.先执行else代码块,再执行if条件

C.同时执行if和else代码块

D.仅执行else代码块

【答案】:答案解析:if-else逻辑为“条件判断→满足执行if,否则执行else”,互斥执行,故选A。5、以下定义函数指针正确的是?()

A.int(*fp)(int);

B.int*fp(int);

C.intfp(int);

D.int(fp)[];

【答案】:答案解析:A是指向int返回值、int参数的函数指针,B是返回int的函数,C是普通函数,D是指向数组的指针,故选A。6、以下哪个for循环是无限循环?()

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

B.for(;;)

C.for(i=0;i<5;i--);

D.for(i=5;i>0;i--)

【答案】:答案解析:for循环三个表达式均省略时,条件恒为真,是无限循环,A执行5次,C、D初始条件不满足(执行0次),故选B。7、若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。8、函数调用时,实参的顺序必须与形参的顺序?()

A.一致

B.相反

C.无关

D.部分一致

【答案】:答案解析:实参和形参需按顺序一一对应(类型、个数、顺序匹配),否则可能导致逻辑错误,故选A。9、以下循环中,循环次数为3次的是?()

A.for(i=1;i<=3;i++)

B.while(i=3)

C.do{i++;}while(i<3);

D.for(i=5;i>0;i--)

【答案】:答案解析:A执行3次(1-3),B是无限循环,C(i初始0)执行3次,D执行5次,题目问“3次”,A明确正确,故选A。10、以下函数调用错误的是?()

A.fun();

B.fun(5);

C.fun(3,4);

D.无错误(需看函数定义)

【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。11、以下for循环中,循环变量初始化、条件判断、更新表达式均正确的是?()

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

B.for(i=5;i>0;i--)

C.for(i=0;i<5;i+=2)

D.以上都正确

【答案】:答案解析:A(递增)、B(递减)、C(步长2)的三个表达式均合法,循环逻辑正确,故选D。12、若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。13、指针作为函数返回值时,不能返回?()

A.静态局部变量的地址

B.全局变量的地址

C.动态分配内存的地址

D.局部变量的地址

【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。14、数组作为函数参数时,函数形参不能是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均可作为数组形参,故选D。15、以下关于函数的说法错误的是?()

A.函数可嵌套调用

B.函数可递归调用

C.函数可重定义

D.函数可声明多次

【答案】:答案解析:C函数名不能重定义(重复定义编译报错),A、B、D正确,故选C。16、以下switch语句中,default的执行时机是?()

A.所有case都不匹配时

B.第一个case不匹配时

C.最后一个case不匹配时

D.任何时候

【答案】:答案解析:default仅在所有case都不匹配时执行,故选A。17、以下关于指针的说法正确的是?()

A.指针可用于实现多返回值函数

B.指针可提高程序效率

C.指针可用于动态内存分配

D.以上都正确

【答案】:答案解析:指针的核心用途包括多返回值、高效访问、动态内存分配,故选D。18、以下哪个是合法的字符常量?()

A."a"

B.'ab'

C.'a'

D.a

【答案】:答案解析:字符常量用单引号包裹单个字符,A是字符串,B是两个字符(错误),D是标识符,故选C。19、若inta=10,*p=&a,q=p;则q的值是?()

A.10

B.&a

C.p

D.无定义

【答案】:答案解析:q=p使q指向a,*q=10,故选A。20、以下循环中,无限循环的是?()

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

B.while(i=5)

C.do{i++;}while(i<5);

D.for(i=5;i>0;i--)

【答案】:答案解析:while(i=5)是赋值(i=5,非0,条件恒真),无限循环;A执行5次,C(i初始0)执行5次,D执行5次,故选B。21、若inti=0;执行for(;i<5;){printf("%d",i);i++;}输出结果是?()

A.01234

B.12345

C.无限循环

D.无输出

【答案】:答案解析:for循环初始化和条件省略,循环体中i自增,执行5次,输出01234,故选A。22、以下函数递归调用的例子是?()

A.计算阶乘

B.循环输出数字

C.数组遍历

D.变量交换

【答案】:答案解析:阶乘常用递归实现(n!=n*(n-1)!),B、C、D用循环更高效,故选A。23、若intx=3,y=5;则表达式x>y?x:y的结果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元运算符格式“条件?值1:值2”,x>y为假,取y=5,故选B。24、若inta=3,b=5;执行以下代码后输出结果是?()if(a>b)printf("A");elseprintf("B");

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:a=3<b=5,条件为假,执行else分支,输出B,故选B。25、C语言中,语句结束的标志是?()

A.逗号

B.分号

C.冒号

D.句号

【答案】:答案解析:C语言单条语句以分号(;)结尾,复合语句用{}包裹,故选B。26、指针与字符串的关系,以下说法正确的是?()

A.字符串常量是字符数组,数组名是指针

B.字符串可通过指针遍历

C.字符指针可指向字符串常量

D.以上都正确

【答案】:答案解析:A、B、C均是指针与字符串的基本关系,故选D。27、以下循环语句中,语法正确的是?()

A.while(i<5){printf("%d",i);i++;}

B.while(i<5)printf("%d",i);i++;

C.do{printf("%d",i);i++;}while(i<5)

D.for(i=0;i<5)printf("%d",i);

【答案】:答案解析:B中i++在循环体外(循环无限),C缺少分号,D缺少更新表达式,A语法正确,故选A。28、以下if语句语法正确的是?()

A.if(x>0)printf("yes");

B.ifx>0printf("yes");

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

D.if(x>0){printf("yes")}

【答案】:答案解析:if后条件需加括号,B缺少括号,C分号导致语句结束,D缺少分号,故选A。29、函数调用的一般格式是?()

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

B.函数名实参列表;

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

D.函数名=实参列表;

【答案】:答案解析:函数调用格式为“函数名(实参列表);”,实参与形参匹配,故选A。30、C语言中基本数据类型不包括以下哪项?()

A.char

B.int

C.float

D.array

【答案】:答案解析:基本数据类型为char、int、float、double,array是数组(构造类型),故选D。31、以下哪个不是C语言的关键字?()

A.if

B.else

C.then

D.for

【答案】:答案解析:then不是C语言关键字,if(条件)、else(否则)、for(循环)均是,故选C。32、若inta=4,b=6;则表达式a<b?a+b:a-b的结果是?()

A.10

B.-2

C.4

D.6

【答案】:答案解析:a<b为真,取a+b=4+6=10,故选A。33、预处理命令#definePI3.14159的作用是?()

A.定义变量

B.定义常量

C.函数声明

D.包含头文件

【答案】:答案解析:#define是宏定义,用于定义常量(无分号,直接替换),故选B。34、若inta=7,*p=&a;执行++*p;后a的值是?()

A.7

B.8

C.&a

D.无定义

【答案】:答案解析:++*p等价于++(*p),先解引用取a的值,再加1(a=8),故选B。35、若intx=4;执行switch(x){case2:printf("2");break;default:printf("0");case4:printf("4");break;}输出结果是?()

A.04

B.4

C.204

D.无输出

【答案】:答案解析:x=4匹配case4,执行输出4,break跳出,故选B。36、函数返回值的类型由______决定?()

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

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

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

D.编译器默认类型

【答案】:答案解析:函数返回类型在定义时指定,return表达式类型需与返回类型匹配(不匹配则强制转换),故选B。37、若inta=5;执行if(a>10);elsea=20;后a的值是?()

A.5

B.20

C.10

D.无定义

【答案】:答案解析:if后分号表示空语句,else执行a=20,故选B。38、以下字符串常量定义正确的是?()

A.charstr[]="C";

B.charstr[1]='C';

C.charstr[]={'C'};

D.charstr[2]={'C','\0'};

【答案】:答案解析:A用双引号定义字符串(自动加\0),B单引号用于字符常量,C无\0,D长度2正确但A更简洁,故选A。39、do-while循环中,循环体至少执行几次?()

A.0次

B.1次

C.2次

D.不确定

【答案】:答案解析:do-while“先执行后判断”,无论条件是否满足,循环体至少执行一次,故选B。40、函数参数传递中,值传递的特点是?()

A.形参修改影响实参

B.形参是实参的副本

C.传递的是变量地址

D.用于数组传参

【答案】:答案解析:值传递时形参是实参的拷贝,修改形参不影响实参,地址传递才影响实参,故选B。41、数组元素的下标从______开始?()

A.0

B.1

C.-1

D.任意

【答案】:答案解析:C语言数组下标从0开始,是固定规则,故选A。42、若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。43、若inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};则a[1][2]的值是?()

A.5

B.6

C.8

D.9

【答案】:答案解析:a[1][2]是第二行第三列,值为6,故选B。44、若intx=0;执行if(x)printf("A");elseprintf("B");输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:x=0为假,执行else分支,输出B,故选B。45、若intx=5;则表达式++x的结果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前

温馨提示

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

最新文档

评论

0/150

提交评论