程序选择题111道含答案.docx

上传人:b****4 文档编号:12158442 上传时间:2023-04-17 格式:DOCX 页数:162 大小:78.65KB
下载 相关 举报
程序选择题111道含答案.docx_第1页
第1页 / 共162页
程序选择题111道含答案.docx_第2页
第2页 / 共162页
程序选择题111道含答案.docx_第3页
第3页 / 共162页
程序选择题111道含答案.docx_第4页
第4页 / 共162页
程序选择题111道含答案.docx_第5页
第5页 / 共162页
点击查看更多>>
下载资源
资源描述

程序选择题111道含答案.docx

《程序选择题111道含答案.docx》由会员分享,可在线阅读,更多相关《程序选择题111道含答案.docx(162页珍藏版)》请在冰豆网上搜索。

程序选择题111道含答案.docx

程序选择题111道含答案

石家庄学院2020-2021学年一学期

课程考试试卷答案(A卷)

课程名称:

C语言考试时间:

120分钟年级:

xxx级

专业:

xxx

题目部分,(卷面共有506题,506分,各大题标有题量和总分)

一、单项选择题(506小题,共506分)

1、(函数易)以下程序的输出结果是

func(intx,inty)

{intz;

z=x+y;

returnz;

}

main()

{inta=10,b=20,c=30,s;

s=func((a--,b++,a+b),c--);

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

}

A、30     B、40     C、60     D、50

答案:

C

2、(函数易)凡是函数中未指定存储类型的局部变量,其隐含的存储类别为

A、自动(auto)B、静态(static)

C、外部(extern)D、寄存器(register)

答案:

A

3、(函数易)在下列的函数调用中,不正确的是

A、max(a,b);     B、max(3,a+b);

C、max(3,5);     D、intmax(a,b);

答案:

D

4、(函数易)以下程序的输出结果是

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn

(2);

}

main()

{printf(“%ld\n”,fib(3));}

A、2     B、4      C、6      D、8

答案:

B

5、(函数易)C语言允许函数值类型缺省定义,此时该函数值隐含的类型是

A、float型

B、int型

C、long型

D、double型

答案:

B

6、(函数易)以下正确的函数形式是

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;}

答案:

D

7、(函数易)以下程序的正确运行结果是

#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

答案:

C

8、(函数易)以下程序的输出结果是

power(intx,intn)

{intp;

if(n>0)p=power(x,n-1)*x;

elsep=1;

return(p);

}

main()

{intx=2,n=3;

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

}

A、5     B、6     C、8      D、9

答案:

C

9、(函数易)若用数组名作为函数调用的实参,传递给形参的是

A、数组的首地址

B、数组第一个元素的值

C、数组中全部元素的值

D、数组元素的个数

答案:

A

10、(函数易)以下程序的功能是计算函数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

答案:

BC

11、(函数易)以下程序的正确运行结果是

#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

答案:

A

12、(函数易)下列程序执行后的输出结果是

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

A、3     B、0     C、5     D、4

答案:

D

13、(函数易)有如下程序:

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出的结果是

A、12     B、13     C、14     D、15

答案:

D

14、(函数易)C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是

A、地址传递

B、单向值传递

C、由实参传给形参,再由形参传回给实参

D、由用户指定传递方式

答案:

B

15、(函数易)下列程序执行后输出的结果是

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf(“%d”,D、;

}

main()

{inta=3;

fun(a);

d+=a++;

printf(“%d\n”,D、;

}

A、84     B、96     C、94     D、85

答案:

A

16、(函数易)以下程序的输出结果是

longfun(intn)

{longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

returns;

}

main()

{printf("%ld\n",fun(3));}

A、1     B、2     C、3     D、4

答案:

A

17、(函数易)以下正确的说法是

A、定义函数时,形参的类型说明可以放在函数体内

B、return后边的值不能为表达式

C、如果函数值的类型与返回值类型不一致,以函数值类型为准

D、如果形参与实参的类型不一致,以实参类型为准

答案:

C

18、(函数易)以下正确的说法是

A、用户若需调用标准库函数,调用前必须重新定义

B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C、系统根本不允许用户重新定义标准库函数

D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

答案:

B

19、(函数易)以下不正确的说法是

C语言规定A、实参可以是常量、变量或表达式

B、形参可以是常量、变量或表达式

C、实参可以为任意类型

D、形参应与其对应的实参类型一致

答案:

B

20、(函数易)复合语句中定义的变量的作用范围是

A、整个源文件B、整个函数

C、整个程序D、所定义的复合语句

答案:

D

21、(函数易)以下只有在使用时才为该类型变量分配内存的存储类说明是

A、auto和static

B、auto和register

C、register和static

D、extern和register

答案:

B

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

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

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

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

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

答案:

A

23、(函数易)在下列叙述中,错误的一条是

A、scanf函数可以用来输入任何类型的多个数据

B、数组名作函数参数时,也采用“值传递”方式

C、如果形参发生改变,不会改变主调函数的实参值

D、函数的实参与形参的类型应一致

答案:

B

24、(函数易)在下列叙述中,错误的一条是

A、主函数main中定义的变量在整个文件或程序中有效

B、不同函数中,可以使用相同名字的变量

C、函数中的形式参数是局部变量

D、在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效

答案:

A

25、(函数易)一个函数的返回值由()确定。

A、return语句中的表达式B、调用函数的类型

C、系统默认的类型D、被调用函数的类型

答案:

D

26、(函数易)以下程序有语法性错误,有关错误原因的正确说法是

main()

{

intG=5,k;

voidprt_char();

……

k=prt_char(G);

……

}

A、语句voidprt_char();有错,它是函数调用语句,不能用void说明

B、变量名不能使用大写字母

C、函数说明和函数调用语句之间有矛盾

D、函数名不能使用下划线

答案:

C

27、(函数易)以下不正确的说法为

A、在不同函数中可以使用相同名字的变量

B、形式参数是局部变量

C、在函数内定义的变量只在本函数范围内有效

D、在函数内的复合语句中定义的变量在本函数范围内有效

答案:

D

28、(函数易)现有以下程序:

#include

inverse(charstr[])

{chart;

inti,j;

for(i=0,j=strlen(str);i

{t=str[i];

str[i]=str[j-1];

str[j-1]=t;

}

}

main()

{charstr[100];

scanf(“%s”,str);

inverse(str);

printf(“%s\n”,str);

}

如果输入ananple,该程序的输出结果是

A、ananple     B、elpnana     C、an     D、na

答案:

D

29、(函数易)在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是

A、externB、registerC、autoD、static

答案:

D

30、(函数易)有如下函数调用语句:

func(rec1,rec2+rec3,(rec4,rec5));

在该函数调用语句中,含有的实参个数是

A、3     B、4     C、5     D、有语法错

答案:

A

31、(函数易)关于函数参数,说法正确的是

A、实参与其对应的形参各自占用独立的内存单元

B、实参与其对应的形参共同占用一个内存单元

C、只有当实参和形参同名时才占用同一个内存单元

D、形参是虚拟的,不占用内存单元

答案:

A

32、(预处理命令易)以下程序的输出结果是

#include

#defineFUDGE(y)2.84+y

#definePR(A、printf(“%d”,(int)(A、)

#definePRINT1(A、PR(A、;putchar(‘\n’)

main()

{intx=2;

PRINT1(FUDGE(5)*x);

}

A、11     B、12     C、13     D、15

答案:

B

33、(预处理命令易)如果在用户的程序中要使用C库函数中的数学函数时,应在该源文件中使用的include命令是

A、#include     B、#include

C、#include     D、#include

答案:

B

34、(预处理命令易)设有以下宏定义:

#defineN3

#defineY(n)((N+1)*n)

则执行语句:

z=2*(N+Y(5+1));后,z的值为

A、出错     B、42     C、48     D、54

答案:

C

35、(预处理命令易)有如下程序:

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{inti;

for(i=1;i<=NUM;i++)printf(“%d\n”,i);

}

该程序中的for循环执行的次数是

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

答案:

B

36、(预处理命令易)以下for语句构成的循环执行了()次。

#defineN2

#defineMN+1

#defineNUM(M+1)*M/2

main()

{inti,n=0;

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

{n++;

printf(“%d”,n);

}

printf(“\n”);

}

A、4     B、6     C、8     D、9

答案:

C

37、(预处理命令易)宏定义#definePI3.1415926的作用是:

指定用标识符PI来代替一个

A、单精度数     B、字符串     C、双精度数     D、整数

答案:

B

38、(预处理命令易)以下程序的输出结果是

#definef(x)x*x

main()

{inta=6,b=2,c;

c=f(A、/f(b);

printf("%d\n",C、;

}

A、9     B、6     C、36     D、18

答案:

C

39、(循环控制易)C语言中while和do-while循环的主要区别是

A、do-while的循环体至少无条件执行一次

B、while的循环控制条件比do-while的循环控制条件严格

C、do-while允许从外部转到循环体内

D、do-while的循环体不能是复合语句

答案:

A

40、(循环控制易)下面程序的功能是把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

答案:

B

41、(循环控制易)下面程序是从键盘输入学号,然后输出学号中百位数字是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

答案:

BC

42、(循环控制易)下面程序段

x=3;

do{

y=x--;

if(!

y){printf(“x”);continue;}

printf(“#”);

}while(1<=x<=2);

A、将输出##B、将输出##*

C、是死循环D、含有不合法的控制表达式

答案:

C

43、(循环控制易)下面程序的运行结果是

#include

main()

{inti,b,k=0;

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

{b=i%2;

while(b-->=0)k++;

}

printf(“%d,%d”,k,b);

}

A、3,-1B、8,-1C、3,0D、8,-2

答案:

D

44、(循环控制易)对for(表达式1;;表达式3)可以理解为

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

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

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

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

答案:

B

45、(循环控制易)有以下程序段

intx=3;

do

{printf("%d",x-=2);}

while(!

(--x));

其输出结果是

A、1     B、30     C、1-2     D、死循环

答案:

C

46、(循环控制易)若有如下语句

intx=3;

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

(--x));

则上面程序段.

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

答案:

B

47、(循环控制易)下面程序的运行结果是.

#include

voidmain()

{

intnum=0;

while(num<=2)

{

num++;

printf("%d\n",num);

}

}

A、1B、1C、1D、1

222

33

4

答案:

C

48、(循环控制易)下面程序段

x=3;

do{y=x--;

if(!

y){printf(“x”);continue;}

printf(“#”);

}while(1<=x<=2);

A、将输出##B、将输出##*

C、是死循环D、含有不合法的控制表达式

答案:

C

49、(循环控制易)以下正确的描述是

A、continue语句的作用是结束整个循环的执行

B、只能在循环体内和switch语句体内使用break语句

C、在循环体内使用break语句或continue语句的作用相同

D、从多层循环嵌套中退出时,只能使用goto语句

答案:

B

50、(循环控制易)设有程序段

t=0

while(printf(“*”))

{t++;

if(t<3)bread;

}

下面描述正确的是

A、其中循环控制表达式与0等价

B、其中循环控制表达式与‘0’等价

C、其中循环控制表达式是不合法的

D、以上说法都不对

答案:

B

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;

答案:

A

52、(循环控制易)以下的for循环()

for(x=0,y=0;(y!

=123)&&(x<4);x++);

A、是无限循环     B、循环次数不定

C、执行4次      D、执行3次

答案:

C

53、(循环控制易)以下程序的输出结果是

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);}

A、x=4

B、x=8

C、x=6

D、x=12

答案:

B

54、(循环控制易)下面程序的运行结果是

#include

main()

{

inti,b,k=0;

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

{

b=i%2;

while(b-->=0)k++;

}

printf(“%d,%d”,k,b);

}

A、3,-1B、8,-1C、3,0D、8,-2

答案:

D

55、(循环控制易)与下面程序段等价的是

for(n=100;n<=200;n++)

{if(n%3==0)continue;

printf(“%4d”,n);

}

A、for(n=100;(n%3)&&n<=200;n++)printf(“%4d”,n);

B、for(n=100;(n%3)︱︱n<=200;n++)printf(“%4d”,n);

C、for(n=100;n<=200;n++)if(n%3!

=0)printf(“%4d”,n);

D、for(n=100;n<=200;n++)

{if(n%3)printf(“%4d”,n);

elsecontinue;

break;

}

答案:

C

56、(循环控制易)下面程序的运行结果是

#include

main()

{intx,i;

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

{x=1;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d”,x)

}

}

A、3981B、4284C、2668D、2870

答案:

D

57、(循环控制易)以下程序的输出结果是

#include

main()

{

inti;

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

{

if(i%2)

printf("*");

else

continue;

printf("#");

}

printf("$\n");

}

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

答案:

A

58、(循环控制易)等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择题空。

#include

main()

{inta,q,n,sum;

a=1;q=2;n=sum=0;

do{【1】;++n;a*=q;

}while(sum<100);

【2】;

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

【1】A、sum++B、sum+=aC、sum*=aD、a+=sum

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

答案:

B|D

59、(循环控制易)下面程序的功能是将从键盘输入的一对数,由小到大排序输出。

当输入一对相等数时结束循环,请选择填空。

#include

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

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1