二级C语言171.docx

上传人:b****3 文档编号:27137061 上传时间:2023-06-27 格式:DOCX 页数:19 大小:20.93KB
下载 相关 举报
二级C语言171.docx_第1页
第1页 / 共19页
二级C语言171.docx_第2页
第2页 / 共19页
二级C语言171.docx_第3页
第3页 / 共19页
二级C语言171.docx_第4页
第4页 / 共19页
二级C语言171.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

二级C语言171.docx

《二级C语言171.docx》由会员分享,可在线阅读,更多相关《二级C语言171.docx(19页珍藏版)》请在冰豆网上搜索。

二级C语言171.docx

二级C语言171

二级C语言-171

(总分:

100.00,做题时间:

90分钟)

一、选择题(总题数:

50,分数:

100.00)

1.要求tan(60°)的值,调用的库函数格式为______。

(分数:

2.00)

 A.tan(60)

 B.tan(pi/3) √

 C.tan(60.0)

 D.tan((double)60)

解析:

2.C语言规定,函数返回值的类型是______。

(分数:

2.00)

 A.由调用该函数时的主调函数类型所决定

 B.由return语句中的表达式类型所决定

 C.由调用该函数时系统临时决定

 D.由定义该函数时所指定的数值类型决定 √

解析:

3.以下叙述中,错误的是______。

(分数:

2.00)

 A.在同一C程序文件中,不同函数中可以使用名字相同的变量

 B.在main()函数体内定义的变量是全局变量 √

 C.形参是局部变量,函数调用完成即失去意义

 D.若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用

解析:

4.以下函数值的类型是______。

fun(doublex)

{foaty;

y=3*x-4;

returny;

(分数:

2.00)

 A.int √

 B.不确定

 C.void

 D.float

解析:

5.有以下程序:

intf1(doublea)

{returna*a;}

intf2(intx,inty)

{doublea,b;

a=f1(x);

b=f1(y);

returna+b;

}

main()

{doublew;

w=f2(2.1,4.0);

变量w的值是______。

(分数:

2.00)

 A.20.21

 B.20

 C.20.0 √

 D.0.0

解析:

6.已知下列函数定义:

fun(int*b,intm,intn,intdata)

{intk;

for(k=0;k<m*n;k++)

{*b=data;

b++;}

}

则调用此函数的正确写法是(假设变量a的说明为inta[50])______。

(分数:

2.00)

 A.fun(*a,4,5,1);

 B.fun(&a,4,5,1);

 C.fun((int*)a,4,5,1)

 D.fun(a,4,5,1); √

解析:

7.以下程序中函数reverse()的功能是将a所指数组中的内容进行逆置。

#include<stdio.h>

voidreverse(inta[],intn)

{inti,t;

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

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,10);

for(i=0;i<3;i++)s+=b[i];

printf("%d/n",s);

}

程序运行后的输出结果是______。

(分数:

2.00)

 A.27 √

 B.6

 C.25

 D.30

解析:

8.下述程序的输出结果是______。

#include<stdio.h>

intfun(intx)

{intp;

if(x=0||x=1)

return3;

else

p=x-fun(x-2);

returnp;

voidmain()

{pfintf("/n%d",fum(5));

}

(分数:

2.00)

 A.5 √

 B.3

 C.7

 D.1

解析:

9.以下程序的输出结果是______。

point(char*pt);

main()

{charb[4]={"a","c","s","f"),*pt=b;

pt=point(pt);

printf("%c/n",*pt);

}

point(char*p)

{p+=3;

returnp;

}

(分数:

2.00)

 A..s

 B..c

 C..f √

 D..a

解析:

10.调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是______。

(分数:

2.00)

 A.实参将其值传递给形参,调用结束时形参再将其值回传给实参

 B.实参将其地址传递给形参,调用结束时形参再将其地址回传给实参

 C.实参将其地址传递给形参,并释放原先占用的存储单元

 D.实参将其值传递给形参,调用结束时形参并不将其值回传给实参 √

解析:

11.下面说法不正确的是______。

(分数:

2.00)

 A.调用函数时,实参可以是表达式

 B.调用函数时,实参与形参可以共用内存单元 √

 C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等

 D.调用函数时,实参与形参的类型必须一致

解析:

12.下面函数调用语句含有实参的个数为______。

func((exp1,exp2),(exp3,exp4,exp5));

(分数:

2.00)

 A.1

 B.2 √

 C.3

 D.5

解析:

13.在C语言中,函数调用时______。

(分数:

2.00)

 A.实参和形参各占独立的存储单元 √

 B.实参和形参共用存储单元

 C.由系统自动确定实参和形参是否共用存储单元

 D.由用户指定实参和形参是否共用存储单元

解析:

14.C语言规定,程序中各函数之间______。

(分数:

2.00)

 A.既允许直接递归调用也允许间接递归调用 √

 B.既不允许直接递归调用也不允许间接递归调用

 C.允许直接递归调用不允许间接递归调用

 D.不允许直接递归调用允许间接递归调用

解析:

15.下述程序的输出结果是______。

#include<stdio.h>

intfun(intx)

{inta;

if(x=0||x==1)

return3;

else

a=x-fun(x-2);

returna;

}

voidmain()

{printf("%d",fun(7));

}

(分数:

2.00)

 A.2 √

 B.8

 C.9

 D.5

解析:

16.以下叙述错误的是______。

(分数:

2.00)

 A.变量的作用域取决于变量定义语句的位置

 B.全局变量可以在函数以外的任何部位进行定义

 C.局部变量的作用域可用于其他函数的调用

 D.一个变量说明为static存储类型是为了限制其他编译单元的引用 √

解析:

17.以下程序的输出结果是______。

#include<stdio.h>

intm=13;

intfun(intx,inty)

{intm=2;

return(x*y-m);

}

main()

{inta=7,b=6;

printf("%d",fun(a,b)/m);

}

(分数:

2.00)

 A.1

 B.3 √

 C.7

 D.10

解析:

18.以下全局变量声明中正确的是______。

(分数:

2.00)

 A.autointi=1;

 B.floata=1,b=0.5,c=a+b;

 C.charfor=1;

 D.staticcharch; √

解析:

19.已知函数f的定义如下:

voidf(void)

{printf("That"sgreat!

");}

则调用f函数的正确形式是______。

(分数:

2.00)

 A..f;

 B.f(); √

 C.f(void);

 D.f

(1);

解析:

20.以下程序在编译时在第三行报错“Redeclarationof"a"infunctiond”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是______。

[程序]

intb;

voidd(inta)

{intf;doublea=1;

printf("%d",a);

}

main()

{inte=1;d(e);}

(分数:

2.00)

 A..f √

 B..e

 C..d

 D..b

解析:

21.以下函数定义中正确的是______。

(分数:

2.00)

 A.intfun(inta,b){}

 B.intfun(inta[][]){}

 C.intfun(void){} √

 D.intfun(staticinta,intb){}

解析:

22.已知有函数f的定义如下:

intf(inta,intb)

{if(a<b);elseretum(b,a);}

在main函数中若调用函数f(2,3),得到的返回值是______。

(分数:

2.00)

 A.2

 B.3 √

 C.2和3

 D.3和2

解析:

23.以下关于函数定义的叙述中正确的是______。

(分数:

2.00)

 A.构成C语言源程序的基本单位之一是函数定义 √

 B.所有被调用的函数必须在调用之前定义

 C.main函数定义必须放在其他函数定义之前

 D.main函数定义的函数体中必须至少有一条语句或声明

解析:

24.在main函数体内部和外部均允许出现的实体是______。

(分数:

2.00)

 A.预处理命令 √

 B.语句

 C.另一函数的定义

 D.函数形式参数声明

解析:

25.已知函数fun的定义如下:

voidfun(intx[],inty)

{intk;

for(k=0;k<y;k++)

x[k]+=y;

}

若main函数中有声明“inta[10]={10};”及调用fun函数的语句,则正确的fun函数调用形式是______。

(分数:

2.00)

 A.fun(a[],a[0]);

 B.fun(a[0],a[0]);

 C.fun(&a[0],a[0]); √

 D.fun(a[0],&a[0]);

解析:

26.设有下列程序段:

staticcharb=2;

voidY()

{staticfloatd=4;...)

inta=1;

voidX()

{intc=3;...}

关于程序段中各变量的属性,以下叙述中错误的是______。

(分数:

2.00)

 A.a是全局变量,函数X可以访问,函数Y不能访问

 B.b是全局变量,函数X和函数Y都可以访问

 C.c是动态变量,函数X可访问,函数Y不可访问

 D.d是静态变量,函数X和函数Y都可以访问 √

解析:

27.若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是______。

(分数:

2.00)

 A.函数调用可以作为独立的语句存在

 B.函数调用可以出现在表达式中

 C.函数调用可以作为一个函数实参

 D.函数调用可以作为一个函数形参 √

解析:

28.对应main函数中的fun函数调用语句,以下给出的4个fun函数首部中错误的是______。

main()

{inta[50],n;fun(n,&a[9]);}

(分数:

2.00)

 A.voidfun(intm,intx[])

 B.voidfun(ints,inth[41])

 C.voidfun(intp,int*s)

 D.voidfun(intn,inta) √

解析:

29.以下关于C语言源程序的叙述中错误的是______。

(分数:

2.00)

 A.一个C源程序由若干个函数定义组成,其中必须有且仅有一个名为main的函数定义

 B.函数定义由函数头部和函数体两部分组成

 C.在一个函数定义的函数体中允许定义另一个函数 √

 D.在一个函数定义的函数体中允许调用另一个函数或调用函数自身

解析:

30.若有声明“longfun(int*x,intn,long*s);inta[4]={1,2,3,4};longb,c;”,则以下函数调用形式中正确的是______。

(分数:

2.00)

 A.e=fun(a,4,b);

 B.c=fun(a[],4,&b);

 C.c=fun(a[4],4,b);

 D.e=fun(a,4,&b); √

解析:

31.在C语言程序中,以下说法正确的是______。

(分数:

2.00)

 A.函数的定义和函数的调用均不可以嵌套

 B.函数的定义不可嵌套,但函数的调用可以嵌套 √

 C.函数的定义可以嵌套,但函数的调用不可以嵌套

 D.函数的定义和函数的调用均可以嵌套

解析:

32.设x和y都是int类型,且x=1,y=2,则printf("%d%d",x,y,(x,y))的输出结果是______。

(分数:

2.00)

 A.12 √

 B.122

 C.1,2

 D.输出值不确定

解析:

33.若定义函数int*func(),则函数func的返回值为______。

(分数:

2.00)

 A.一个实数

 B.一个指向整型变量的指针 √

 C.一个指向整型函数的指针

 D.一个整型函数的人口地址

解析:

34.有以下函数定义:

intfun(doublea,doubleb)

{returna*b;}

若以下选项中所用变量都已正确定义并赋值,错误的函数调用是______。

(分数:

2.00)

 A.if(fun(x,y)){...}

 B.z=fun(fun(x,y),fun(x,y));

 C.z=fun(fun(x,y)x,y); √

 D.fun(x,y);

解析:

35.下面程序的输出结果是______。

#include<stdio.h>

main()

{chara[]={"a","b","c","d","f","g"},*p;

p=a;

printf("%c/n",*p+4);

}

(分数:

2.00)

 A..a

 B..b

 C..e √

 D..f

解析:

36.以下叙述中不正确的是______。

(分数:

2.00)

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

 B.函数中的形式参数是局部变量

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

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

解析:

37.下面说法正确的是______。

(分数:

2.00)

 A.调用函数时,实参不可以是表达式,必须是数值

 B.调用函数时,实参与形参是共用内存单元的

 C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等 √

 D.调用函数时,实参与形参的类型可不一致,编译器能够自动转换

解析:

38.以下程序的输出结果是______。

#include<stdio.h>

main()

{inta[3][3]={0,1,2,0,1,2,0,1,2),i,j,s=1;

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

for(j=i;j<=i;j++)

s+=a[i][a[j][j]];

printf("%d/n",s);

}

(分数:

2.00)

 A.3

 B.4 √

 C.1

 D.9

解析:

39.在一个C源程序文件中,定义一个只允许本源文件中所有函数使用的全局变量的存储类别是______。

(分数:

2.00)

 A.extern

 B.static √

 C.register

 D.auto

解析:

40.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是______。

(分数:

2.00)

 A.函数调用可以作为独立的语句存在

 B.函数调用可以作为一个函数的实参

 C.函数调用可以出现在表达式中

 D.函数调用可以作为一个函数的形参 √

解析:

41.若运行时给变量x输入12,则以下程序的运行结果是______。

main()

{intx,y;

scanf("%d",&x);

y=x>12?

x+10:

x-12;

printf("%d/n",y);

}

(分数:

2.00)

 A.0 √

 B.22

 C.12

 D.10

解析:

42.若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是______。

(分数:

2.00)

 A.函数的实参和其对应的形参共占同一存储单元

 B.形参只是形式上的存在,不占用具体存储单元

 C.同名的实参和形参占同一存储单元

 D.函数的形参和实参分别占用不同的存储单元 √

解析:

43.请阅读以下程序:

#include<stdio.h>

#include<string.h>

voidfun(intb[])

{staticinti=0;

do

{b[i]+=b[i+1];

}while(++i<2);}

main()

{intk,a[5]={1,3,5,4,9};

fun(a);

for(k=0;k<5;k++)pfintf("%d",a[k]);}

上面程序的输出是______。

(分数:

2.00)

 A.13579

 B.48579

 C.48549 √

 D.48999

解析:

44.C语言中,凡未指定存储类别的局部变量的隐含存储类别是______。

(分数:

2.00)

 A.自动(auto) √

 B.静态(static)

 C.外部(extern)

 D.寄存器(register)

解析:

45.若语句“t=fun(fun(x,y,a),(a+b,a+c),x+y+z);”对fun函数的调用正确,则fun函数的形参个数为______。

(分数:

2.00)

 A.3 √

 B.4

 C.5

 D.6

解析:

46.假设有语句sizeof(double),则它是______。

(分数:

2.00)

 A.一个整型表达式 √

 B.一个双精度浮点型表达式

 C.一种函数调用

 D.一种函数定义

解析:

47.C语言中允许用外部说明来指定变量、函数和其他标识符的特征,这里所说的外部指的是______。

(分数:

2.00)

 A.冠以关键字extern

 B.位置在函数体外部

 C.作用范围是全程的

 D.位置在函数的外部 √

解析:

48.若有代数式

(其中e仅代表自然对数的底数,不是变量),则下列能够正确表示该代数式的C语言表达式是______。

(分数:

2.00)

 A.sqn(abs(n^x+e^x))

 B.sqrt(fabs(pow(n,x)+pow(x,e)))

 C.sqrt(fabs(pow(n,x)+exp(x))) √

 D.sqrt(fabs(pow(x,n)+exp(x)))

解析:

49.下列程序的运行结果为______。

#include<stdio.h>

voidabc(char*str)

{inta,b,i,j;

for(i=j=0;str[i]!

="/0";i++)

if(str[i]!

="a")

str[j++]=str[i];

str[j]="/0";

}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);

}

(分数:

2.00)

 A.str[]=bcdef √

 B.str[]=abcdef

 C.str[]=a

 D.str[]=ab

解析:

50.以下正确的说法是______。

(分数:

2.00)

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

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

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

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

解析:

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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