C语言练习题选择题100道.docx
- 文档编号:25637625
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:53
- 大小:27.97KB
C语言练习题选择题100道.docx
《C语言练习题选择题100道.docx》由会员分享,可在线阅读,更多相关《C语言练习题选择题100道.docx(53页珍藏版)》请在冰豆网上搜索。
C语言练习题选择题100道
题目部分,(卷面共有100题,300.0分,各大题标有题量和总分)
一、单项选择题(100小题,共300.0分)
(3分)[1]
以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,‘A’,‘B’,‘C’);则符合程序段运行结果的选项是
voidmove(chargetone,charputone)
{
printf(“%c-->%c\n”,getone,putone);
}
voidhanoi(intn,charone,chartwo,charthree)
{
if(n==1)move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
A、A-->CB、A-->CC、A-->CD、A-->C
A-->BA-->BA-->BA-->B
C-->BC-->AC-->BC-->B
B-->AA-->BA-->CA-->C
C-->BB-->CB-->AA-->B
A-->CA-->CB-->CB-->C
A-->BA-->BA-->CA-->C
(3分)[2]
以下不正确的说法是
C语言规定A、实参可以是常量、变量或表达式
B、形参可以是常量、变量或表达式
C、实参可以为任意类型
D、形参应与其对应的实参类型一致
(3分)[3]
以下正确的描述是
在C语言程序中A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均不可以嵌套
D、函数的定义和函数的调用均可以嵌套
(3分)[4]
以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include
#include
main()
{
floatx,y,z,sum;
scanf(“%f%f%f”,&x,&y,&z);
sum=f(【1】)+f(【2】);
printf(“sum=%f\n”,sum);
}
floatf(floata,floatb)
{
floatvalue;
value=a/b;
return(value);
}
【1】A、x-y,x+yB、x+y,x-yC、z+y,z-yD、z-y,z+y
【2】A、x-y,x+yB、x+y,x-yC、z+y,z-yD、z-y,z+y
(3分)[5]
以下错误的描述是
函数调用可以A、出现在执行语句中
B、出现在一表达式中
C、做为一个函数的实参
D、做为一个函数的形参
(3分)[6]
下面函数调用语句含有实参的个数为
func((exp1,exp2),(exp3,exp4,exp5));
A、1B、2C、4D、5
(3分)[7]
C语言规定,函数返回值的类型是由
A、return语句中的表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定
(3分)[8]
C语言允许函数值类型缺省定义,此时该函数值隐含的类型是
A、float型
B、int型
C、long型
D、double型
(3分)[9]
以下程序有语法性错误,有关错误原因的正确说法是
main()
{
intG=5,k;
voidprt_char();
……
k=prt_char(G);
……
}
A、语句voidprt_char();有错,它是函数调用语句,不能用void说明
B、变量名不能使用大写字母
C、函数说明和函数调用语句之间有矛盾
D、函数名不能使用下划线
(3分)[10]
以下正确的说法是
A、定义函数时,形参的类型说明可以放在函数体内
B、return后边的值不能为表达式
C、如果函数值的类型与返回值类型不一致,以函数值类型为准
D、如果形参与实参的类型不一致,以实参类型为准
(3分)[11]
若调用一个函数,且此函数中没有return语句,则正确的说法是
该函数A、没有返回值
B、返回若干个系统默认值
C、能返回一个用户所希望的函数值
D、返回一个不确定的值
(3分)[12]
以下正确的说法是
在C语言中A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共占用一个存储单元
C、只有当实参和与其对应的形参同名时才共占用存储单元
D、形参是虚拟的,不占用存储单元
(3分)[13]
以下正确的函数形式是
A、doublefun(intx,inty)
{z=x+y;returnz;}
B、fun(intx,y)
{intz;returnz;}
C、fun(x,y)
{intx,y;doublez;z=x+y;returnz;}
D、doublefun(intx,inty)
{doublez;z=x+y;returnz;}
(3分)[14]
以下正确的函数定义形式是
A、doublefun(intx,inty)
B、doublefun(intx;inty)
C、doublefun(intx,inty);
D、doublefun(intx,y);
(3分)[15]
以下正确的说法是
A、用户若需调用标准库函数,调用前必须重新定义
B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C、系统根本不允许用户重新定义标准库函数
D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
(3分)[16]
建立函数的目的之一是
A、提高程序的执行效率B、提高程序的可读性
C、减少程序的篇幅D、减少程序文件所占内存
(3分)[17]
C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回给实参
D、由用户指定传递方式
(3分)[18]
若用数组名作为函数调用的实参,传递给形参的是
A、数组的首地址
B、数组第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
(3分)[19]
以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。
请选择填空。
sub(intk,intn)
{
inta1,a2;
a2=【1】;
a1=k-【2】;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{
printf(“%d”,k);
n++;
returnn;
}
elsereturn-1;
}
main()
{
intn=0,k,m;
for(k=10;k<=99;k++)
{
m=sub(k,n);
if(m!
=-1)n=m;
}
printf(“\nn=%d”,n);
}
【1】A、k*10B、k%10C、k/10D、k*10%10
【2】A、a2*10B、a2C、a2/10D、a2%10
(3分)[20]
下面程序的功能是将小写字母变成对应大写字母后的第二个字母。
其中y变成A,z变成B。
请选择填空。
#include
main()
{
charc;
while((c=getchar())!
=‘\n’)
{
if(c>=‘a’&&c<=‘z’)
{
【1】;
if(c>‘Z’)
【2】;
}
printf(“%c”,c);
}
}
【1】A、c+=2B、c-=32C、c=c+32+2D、c-=30
【2】A、c=‘B’B、c=‘A’C、c-=26D、c=c+26
(3分)[21]
一个C语言程序是由
A、一个主程序和若干子程序组成
B、函数组成
C、若干过程组成
D、若干子程序组成
(3分)[22]
C语言规定:
在一个源程序中,main函数的位置
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D、必须在最后
(3分)[23]
以下叙述不正确的是
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
(3分)[24]
以下叙述正确的是
A、在C程序中,main函数必须位于程序的最前面
B、C程序的每行中只能写一条语句
C、C语言本身没有输入输出语句
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
(3分)[25]
一个C程序的执行是从
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
(3分)[26]
在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是
A、externB、registerC、autoD、static
(3分)[27]
以下程序的正确运行结果是
main()
{
inta=2,i;
for(i=0;i<3;i++)printf(“%4d”,f(a));
}
f(inta)
{
intb=0;
staticintc=3;
b++;c++;
return(a+b+c);
}
A、777B、71013C、7911D、789
(3分)[28]
凡是函数中未指定存储类型的局部变量,其隐含的存储类别为
A、自动(auto)B、静态(static)
C、外部(extern)D、寄存器(register)
(3分)[29]
以下程序的正确运行结果是
#include
voidnum()
{
externintx,y;
inta=15,b=10;
x=a-b;
y=a+b;
}
intx,y;
main()
{
inta=7,b=5;
x=a+b;
y=a-b;
num();
printf(“%d,%d\n”,x,y);
}
A、12,2B、不确定C、5,25D、1,12
(3分)[30]
以下程序的正确运行结果是
#defineMAX10
inta[MAX],i;
main()
{
printf(“\n”);sub1();sub3(a);sub2();sub3(a);
}
sub2()
{
inta[MAX],i,max;
max=5;
for(i=0;i } sub1() { for(i=0;i } sub3(inta[]) { inti; for(i=0;i printf(“\n”); } A、024681012141618 01234 B、01234 024681012141618 C、0123456789 01234 D、024681012141618 024681012141618 (3分)[31] 以下不正确的说法为 A、在不同函数中可以使用相同名字的变量 B、形式参数是局部变量 C、在函数内定义的变量只在本函数范围内有效 D、在函数内的复合语句中定义的变量在本函数范围内有效 (3分)[32] 以下正确的说法是 如果在一个函数中的复合语句中定义了一个变量,则该变量 A、只在该复合语句中有效 B、在该函数中有效 C、在本程序范围内均有效 D、为非法变量 (3分)[33] 折半查找法的思路是: 先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。 如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。 函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;返回-1。 请选择填空。 binary(inta[10],intm) { intlow=0,high=9,mid; while(low<=high) { mid=(low+high)/2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题 选择题 100