二级C语言模拟题2018年(47)
(总分100,考试时间90分钟)
选择题
1. 要求tan(60°)的值,调用的库函数格式为______。
printf函数返回值A. tan(60) B. tan(pi/3)
C. tan(60.0) D. tan((double)60)
2. C语言规定,函数返回值的类型是______。
A. 由调用该函数时的主调函数类型所决定
B. 由return语句中的表达式类型所决定
C. 由调用该函数时系统临时决定
D. 由定义该函数时所指定的数值类型决定
3. 以下叙述中,错误的是______。
A. 在同一C程序文件中,不同函数中可以使用名字相同的变量
B. 在main()函数体内定义的变量是全局变量
C. 形参是局部变量,函数调用完成即失去意义
D. 若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用
4. 以下函数值的类型是______。
fun(double x)
{foat y;
y=3*x-4;
return y;
)
A. int B. 不确定
C. void D. float
5. 有以下程序:
int f1(double a)
{return a*a;}
int f2(int x,int y)
{double a,b;
a=f1(x);
b=f1(y);
return a+b;
}
main()
{double w;
w=f2(2.1,4.0);
┋
)
变量w的值是______。
A. 20.21 B. 20
C. 20.0 D. 0.0
6. 已知下列函数定义:
fun(int *b,int m,int n,int data)
{int k;
for(k=0;k<m*n;k++)
{*b=data;
b++;}
}
则调用此函数的正确写法是(假设变量a的说明为int a[50])______。
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>
void reverse(int a[],int n)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;
reverse(b,10);
for(i=0;i<3;i++)s+=b[i];
printf("%d\n",s);
}
程序运行后的输出结果是______。
A. 27 B. 6
C. 25 D. 30
8. 下述程序的输出结果是______。
#include<stdio.h>
int fun(int x)
{int p;
if(x=0||x=1)
return 3;
else
p=x-fun(x-2);
return p;
)
void main()
{pfintf("\n%d",fum(5));
}
A. 5 B. 3
C. 7 D. 1
9. 以下程序的输出结果是______。
point(char*pt);
main()
{char b[4]={"a","c","s","f"),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
return p;
}
A. .s B. .c
C. .f D. .a
10. 调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是______。
A. 实参将其值传递给形参,调用结束时形参再将其值回传给实参
B. 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C. 实参将其地址传递给形参,并释放原先占用的存储单元
D. 实参将其值传递给形参,调用结束时形参并不将其值回传给实参
11. 下面说法不正确的是______。
A. 调用函数时,实参可以是表达式
B. 调用函数时,实参与形参可以共用内存单元
C. 调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等
D. 调用函数时,实参与形参的类型必须一致
12. 下面函数调用语句含有实参的个数为______。
func((exp1,exp2),(exp3,exp4,exp5));
A. 1 B. 2
C. 3 D. 5
13. 在C语言中,函数调用时______。
A. 实参和形参各占独立的存储单元
B. 实参和形参共用存储单元
C. 由系统自动确定实参和形参是否共用存储单元
D. 由用户指定实参和形参是否共用存储单元
14. C语言规定,程序中各函数之间______。
A. 既允许直接递归调用也允许间接递归调用
B. 既不允许直接递归调用也不允许间接递归调用
C. 允许直接递归调用不允许间接递归调用
D. 不允许直接递归调用允许间接递归调用
15. 下述程序的输出结果是______。
#include<stdio.h>
int fun(int x)
{ int a;
if(x=0||x==1)
return 3;
else
a=x-fun(x-2);
return a;
}
void main()
{printf("%d",fun(7));
}
A. 2 B. 8
C. 9 D. 5
16. 以下叙述错误的是______。
A. 变量的作用域取决于变量定义语句的位置
B. 全局变量可以在函数以外的任何部位进行定义
C. 局部变量的作用域可用于其他函数的调用
D. 一个变量说明为static存储类型是为了限制其他编译单元的引用
17. 以下程序的输出结果是______。
#include<stdio.h>
int m=13;
int fun(int x,int y)
{ int m=2;
return(x*y-m);
}
main()
{int a=7,b=6;
printf("%d",fun(a,b)/m);
}
A. 1 B. 3
C. 7 D. 10
18. 以下全局变量声明中正确的是______。
A. auto int i=1; B. float a=1,b=0.5,c=a+b;
C. charfor=1; D. static char ch;
19. 已知函数f的定义如下:
void f(void)
{printf("That"s great!");}
则调用f函数的正确形式是______。
A. .f; B. f();
C. f(void); D. f(1);
20. 以下程序在编译时在第三行报错“Redeclaration of "a" infunction d”,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中不能用来替换变量名a的是______。
[程序]
int b;
void d(int a)
{int f;double a=1;
printf("%d",a);
}
main()
{int e=1;d(e);}
A. .f B. .e
C. .d D. .b
21. 以下函数定义中正确的是______。
A. int fun(int a,b){}
B. int fun(int a[][]){}
C. int fun(void){}
D. int fun(static int a,int b){}
22. 已知有函数f的定义如下:
int f(int a,int b)
{if(a<b);else retum(b,a);}
在main函数中若调用函数f(2,3),得到的返回值是______。
A. 2 B. 3
C. 2和3 D. 3和2
23. 以下关于函数定义的叙述中正确的是______。
A. 构成C语言源程序的基本单位之一是函数定义
B. 所有被调用的函数必须在调用之前定义
C. main函数定义必须放在其他函数定义之前
D. main函数定义的函数体中必须至少有一条语句或声明
24. 在main函数体内部和外部均允许出现的实体是______。
A. 预处理命令 B. 语句
C. 另一函数的定义 D. 函数形式参数声明
25. 已知函数fun的定义如下:
void fun(int x[],int y)
{ int k;
for(k=0;k<y;k++)
x[k]+=y;
}
若main函数中有声明“int a[10]={10};”及调用fun函数的语句,则正确的fun函数调用形式是______。
A. fun(a[],a[0]);
B. fun(a[0],a[0]);
C. fun(&a[0],a[0]);
D. fun(a[0],&a[0]);
26. 设有下列程序段:
static char b=2;
void Y()
{static float d=4;...)
int a=1;
void X()
{int c=3;...}
关于程序段中各变量的属性,以下叙述中错误的是______。
A. a是全局变量,函数X可以访问,函数Y不能访问
B. b是全局变量,函数X和函数Y都可以访问
C. c是动态变量,函数X可访问,函数Y不可访问
D. d是静态变量,函数X和函数Y都可以访问
27. 若已定义一个有返回值的函数,则以下关于调用该函数的叙述中错误的是______。
A. 函数调用可以作为独立的语句存在 B. 函数调用可以出现在表达式中
C. 函数调用可以作为一个函数实参 D. 函数调用可以作为一个函数形参
28. 对应main函数中的fun函数调用语句,以下给出的4个fun函数首部中错误的是______。
main()
{int a[50],n;fun(n,&a[9]);}
A. void fun(int m,int x[])
B. void fun(int s,int h[41])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论