C语言练习题选择题100道.docx

上传人:b****2 文档编号:758018 上传时间:2023-04-30 格式:DOCX 页数:53 大小:27.98KB
下载 相关 举报
C语言练习题选择题100道.docx_第1页
第1页 / 共53页
C语言练习题选择题100道.docx_第2页
第2页 / 共53页
C语言练习题选择题100道.docx_第3页
第3页 / 共53页
C语言练习题选择题100道.docx_第4页
第4页 / 共53页
C语言练习题选择题100道.docx_第5页
第5页 / 共53页
C语言练习题选择题100道.docx_第6页
第6页 / 共53页
C语言练习题选择题100道.docx_第7页
第7页 / 共53页
C语言练习题选择题100道.docx_第8页
第8页 / 共53页
C语言练习题选择题100道.docx_第9页
第9页 / 共53页
C语言练习题选择题100道.docx_第10页
第10页 / 共53页
C语言练习题选择题100道.docx_第11页
第11页 / 共53页
C语言练习题选择题100道.docx_第12页
第12页 / 共53页
C语言练习题选择题100道.docx_第13页
第13页 / 共53页
C语言练习题选择题100道.docx_第14页
第14页 / 共53页
C语言练习题选择题100道.docx_第15页
第15页 / 共53页
C语言练习题选择题100道.docx_第16页
第16页 / 共53页
C语言练习题选择题100道.docx_第17页
第17页 / 共53页
C语言练习题选择题100道.docx_第18页
第18页 / 共53页
C语言练习题选择题100道.docx_第19页
第19页 / 共53页
C语言练习题选择题100道.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言练习题选择题100道.docx

《C语言练习题选择题100道.docx》由会员分享,可在线阅读,更多相关《C语言练习题选择题100道.docx(53页珍藏版)》请在冰点文库上搜索。

C语言练习题选择题100道.docx

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;

if(m

elseif(m>a[mid])【2】;

elsereturn(mid);

}

return(-1);

}

【1】A、high=mid-1B、low=mid+1C、high=mid+1D、low=mid-1

【2】A、high=mid-1B、low=mid+1C、high=mid+1D、low=mid-1

(3分)[34]

若使用一维数组名作函数实参,则以下正确的说法是

A、必须在主调函数中说明此数组的大小

B、实参数组类型与形参数组类型可以不匹配

C、在被调函数中,不需要考虑形参数组的大小

D、实参数组名与形参数组名必须一致

(3分)[35]

已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为

inta[3][4];

f(a);

A、f(intarray[][6])

B、f(intarray[3][])

C、f(intarray[][4])

D、f(intarray[2][5])

(3分)[36]

以下程序的正确运行结果是

#include

main()

{

intk=4,m=1,p;

p=func(k,m);printf(“%d”,p);

p=func(k,m);printf(“%d\n”,p);

}

func(inta,intb)

{

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

A、8,17B、8,16C、8,20D、8,8

(3分)[37]

下面程序的运行结果是

#include

main()

{

inti,j,a=0;

for(i=0;i<2;i++)

{

for(j=0;j<4;j++)

{

if(j%2)break;

a++;

}

a++;

}

printf(“%d\n”,a);

}

A、4B、5C、6D、7

(3分)[38]

下面程序的运行结果是

#include

main()

{

inti;

for(i=1;i<=5;i++)

{

if(i%2)printf(“*”);

elsecontinue;

printf(“#”);

}

printf(“$\n”);

}

A、*#*#*#$B、#*#*#*$C、*#*#$D、#*#*$

(3分)[39]

下面程序的运行结果是

#include

main()

{

inti,j,x=0;

for(i=0;i<2;i++)

{

x++;

for(j=0;j<=3;j++)

{

if(j%2)continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

(3分)[40]

下面程序的运行结果是

#include

main()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20)break;

if(b%3==1){b+=3;continue;}

b-=5;

}

printf(“%d\n”,a);

}

A、7B、8C、9D、10

(3分)[41]

下面程序的功能是将从键盘输入的偶数写成两个素数之和。

请选择填空。

#include

#include

main()

{

inta,b,c,d;

scanf(“%d”,&a);

for(b=3;b<=a/2;b+=2)

{

for(c=2;c<=sqrt(b);c++)if(b%c==0)break;

if(c>sqrt(b))d=【1】;elsebreak;

for(c=2;c<=sqrt(d);c++)if(d%c==0)break;

if(c>sqrt(d))printf(“%d=%d+%d\n”,a,b,d);

}

}

【1】A、a+bB、a-bC、a*bD、a/b

(3分)[42]

下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include

main()

{

intn,sum=0;

n=2345;

do{

sum=sum+【1】

n=【2】

}while(n);

printf(“sum=%d”,sum);

}

【1】A、n%10B、(n%10)*(n%10)C、n/10D、(n/10)*(n/10)

【2】A、n/1000B、n/100C、n/10D、n%10

(3分)[43]

若运行以下程序时,从键盘输入3.62.4表示回车),则下面程序的运行结果是_________。

#include

#include

main()

{

floatx,y,z;

scanf(“%f%f”,&x,&y);

z=x/y;

while

(1)

{

if(fabs(z)>1.0){x=y;y=z;z=x/y;}

elsebreak;

}

printf(“%f\n”,y);

}

(3分)[44]

若i为整型变量,则以下循环执行次数是

for(i=2;i==0;)printf(“%d”,i--);

A、无限次B、0次C、1次D、2次

(3分)[45]

对for(表达式1;;表达式3)可理解为

A、for(表达式1;0;表达式3)

B、for(表达式1;1;表达式3)

C、for(表达式1;表达式1;表达式3)

D、for(表达式1;表达式3;表达式3)

(3分)[46]

下面有关for循环的正确描述是

A、for循环只能用于循环次数已经确定的情况

B、for循环是先执行循环体语句,后判断表达式

C、在for循环中,不能用break语句跳出循环体

D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

(3分)[47]

下面程序的运行结果是

#include

main()

{

inta=1,b=10;

do{b-=a;a++;}while(b--<0);

printf(“a=%d,b=%d\n”,a,b);

}

A、a=3,b=11B、a=2,b=8C、a=1,b=-1D、a=4,b=9

(3分)[48]

若运行以下程序时,从键盘输入ADescriptor表示回车),则下面程序的运行结果是

#include

main()

{

charc;

intv0=0,v1=0,v2=0;

do{

switch(c=getchar())

{

case‘a’:

case‘A’:

case‘e’:

case‘E’:

case‘i’:

case‘I’:

case‘o’:

case‘O’:

case‘u’:

case‘U’:

v1+=1;

default:

v0+=1;v2+=1;

}

}while(c!

=‘\n’);

printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

}

A、v0=7,v1=4,v2=7B、v0=8,v1=4,v2=8

C、v0=11,v1=4,v2=11D、v0=12,v1=4,v2=12

(3分)[49]

下面程序的运行结果是

#include

main()

{

inty=10;

do{y--;}while(--y);

printf(“%d\n”,y--);

}

A、-1B、1C、8D、0

(3分)[50]

下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。

请选择填空。

#include

main()

{

inti=0,j,k;

do{i++;k=316-13*i;}while(【1】);

j=k/11;

printf(“316=13*%d+11*%d”,i,j);

}

A、k/11B、k%11C、k/11==0D、k%11==0

(3分)[51]

以下不是无限循环的语句为

A、for(y=0,x=1;x>++y;x=i++)i=x

B、for(;;x++=i);

C、while

(1){x++;}

D、for(i=10;;i--)sum+=i;

(3分)[52]

下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。

请选择填空。

#include

main()

{

longintnum;

scanf(“%ld”,&num);

do{

if(【1】)printf(“%ld”,num);

scanf(“%ld”,&num);

while(2】);

}

【1】A、num%100/10==3B、num/100%10==3

C、num%10/10==3D、num/10%10==3

【2】A、n=n-2B、n=nC、n++D、n-=1

(3分)[53]

下面程序段的运行结果是

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

printf(“x=%d,y=%d”,x,y);

A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=27

(3分)[54]

若有如下语句

intx=3;

do{printf(“%d\n”),x-=2;}while(!

(--x));

则上面程序段

A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环

(3分)[55]

以下描述中正确的是

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B、do-while循环由do开始,用while结束,在while(表达式)后面不能写

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2