Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1208104
  • 博文数量: 322
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3276
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-17 09:21
文章分类

全部博文(322)

文章存档

2010年(155)

2009年(167)

我的朋友

分类: 嵌入式

2009-12-19 09:13:27

5.1    选择题
(346)    形参的缺省存储类别是_____。
a. 自动(auto)            b. 静态(static)
c. 寄存器(register)        d. 外部(extern)
(a)
(347)    下列程序的输出结果是_____。
fun(int a, int b, int c)
{  
c = a*b;  
}
main( )
{  
int c;
fun(2, 3, c);
printf("%d\n", c);
}
a. 0          b. 1           c. 6         d. 无法确定
(d)
(348)    在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。
a. int        b. double     c. void     d. char 
(a)
(349)    以下程序的输出结果是_____。
# include
main()

printf("%d\n",NULL); 
}
a. 不确定的(因变量无定义)         b.0         c.-1         d.1
(b)
(350)    简单变量做实参时,它相对应形参之间的数据传递方式是____。
a. 地址传递 
b. 单向值传递
c. 由实参传给形参,再由形参传回给实参
d. 由用户指定传递方式
(b)
(351)    以下四个程序中, ______不能对两个整型变量的值进行交换。
a. # include
main()
{
int a=10, b=20; 
swap(&a,&b); 
printf("%d %d\n", a, b);
}
swap(int *p, int *q)
{
int *t; 
t=(int)malloc(sizeof(int));
t=p;
*p=*q;
*q=*t;
}
 
b. # include  
main()
{
int a=10,b=20; 
swap(&a,&b);
printf("%d %d\n", a, b);
}
swap(int *p, int *q)
{
int t;
t=*p;
*p=*q;
*q=t;
}
 
c. # include
main()

int *a,*b;
*a=10,*b=20;
swap(a,b);
printf("%d %d\n", *a, *b);
}
swap(int *p, int *q)
{
int t;
t=*p;
*p=*q;
*q=t;
}
 
d. # include
main()
{
int a=10,b=20;
int x=&a,y=&b;
swap(x,y);
printf("%d %d\n", a, b);
}
swap(int *p, int *q)
{
int t;
t=*p;
*p=*q;
*q=t;
}
(a.c.d)
(352)    不是建立函数的目的选项是_____。
a.  提高程序的执行效率
b.  提高程序的可读性
c.  减少程序的篇幅
d.    减少程序文件所占内存
(a.c.d)
(353)    下面关于递归的说法正确的是_____。
a. 每次当一个递归函数被调用时, 程序首先应该检查其些基本的条件是否满足了, 例如某个参数的值等于零, 函数应停止递归;
b. 每次当函数被递归调用时, 传递给函数一个或多个参数, 应该以某种方式变得"更简单";
c. 一般情况下, 递归方法比迭代方法快;
d. 递归函数的目的是执行一系列调用, 一直到达某一点, 序列终止。
(a.b.d)
(354)    下面说法正确的是_____。
a. 函数定义可以嵌套,但函数调用不能嵌套
b. 函数定义不可以嵌套,但函数调用可以嵌套
c. 函数定义和调用均不能嵌套
d. 函数定义和调用均可以嵌套
(b)
(355)    有一函数 
 
 
y= 
 
 
以下程序段中不能根据x的值正确计算出y的值的是______。 
a. if(x>0) y=1;else if(x==0) y=0;else y=-1; 
b. y=0;if(x>0) y=1;else if(x<0) y=-1; 
c. y=0;if(x>=0)if(x>0) y=1;else y=-1; 
d. if(x>=0) if(x>0) y=1;else y=0;else y=-1;
(c)
(356)    若定义了以下函数:
void f(......)
{
……
*p=(double *)malloc(10*sizeof(double));
……
}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是_____。
a. double *p    c. float **p    c. double **p        d. float *p
(c)
(357)    若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是____。
a. 函数调用可以作为独立的语句存在     b. 函数调用可以作为一个函数的实参
c. 函数调用可以出现在表达式中         d. 函数调用可以作为一个函数的形参
(d)
(358)    已定义以下函数
fun(int *p)
  { 
return *p; 
}
该函数的返回值是_____。
  a. 不确定的值                       b. 形参p中存放的值
  c. 形参p所指存储单元中的值         d. 形参p的地址值
(c)
(359)    下列函数定义中,会出现编译错误的是_____。
     a. max(int x,int y,int *z)              b. int max(int x,y)
          { *z=x>y ? x:y; }                         { int z;
                                                          z=x>y ? x:y;
                                                          return z;  }
     c. max(int x,int y)                      d. int max(int x,int y)
     {   int z;                                   { return(x>y?x:y); }
z=x>y?x:y; 
return(z); 
}
(b)
(360)    已定义以下函数
fun(char *p2, char *p1)
  { 
while((*p2=*p1)!='\0')

p1++;
p2++; 
}
 }
  函数的功能是_____。
a. 将p1所指字符串复制到p2所指内存空间
b. 将p1所指字符串的地址赋给指针p2
c. 对p1和p2两个指针所指字符串进行比较
d. 检查p1和p2两个指针所指字符串中是否有'\0'
(a)
(361)    函数调用语句 func((a1,a2,a3),(a4,a5)); 的参数个数是____。
a. 2         b. 5             c. 1             d. 调用方式不合法
(a)
(362)    下列程序的输出结果是_____。
fun(int a, int b, int c)
{  
c = a*b;  
}
void main( )
{  
int c;
fun(2,3,c);
printf("%dn", c);
}
a. 0          b. 1           c. 6          d. 无法确定
(d)
(363)    在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。
a. int        b. double     c. void      d. char 
(a)
(364)    数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
a. 该数组的元素个数
b. 该数组中各元素的值
c. 该数组的首地址
d. 以上答案均不对
(c)
(365)    以下说法正确的是____。
a. 用户若需调用标准函数,调用前必须重新定义
b. 用户可以重新定义系统标准库函数,若如此,原系统标准库函数将失效
c. 允许用户重新定义标准函数
d. 要调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
(b.c)
(366)    以下关于说法正确的是_____。
a. 实参和与其对应的形参各占用独立的存储单元
b. 实参与其对应的形参共占用一个存储单元
c. 实参和与其对应的形参同名时才共占用存储单元
d. 形参虚拟的,不占用存储单元
(d)
(367)    若调用一个函数(无全局、指针、静态变量),且此函数中没有return语句,则关于该函数正确的说法是_____。
a. 无返回值
b. 返回若干个系统默认值
c. 能返回一个用户所希望的函数值
d. 返回一个不确定的值
(a)
(368)    在c语言中以下不正确的说法是_____。
a. 实参可以是常量、变量、或表达式
b. 形参可以是常量、变量或表达式
c. 实参可以为任意类型
d. 形参应与其对应的实参类型一致
(b)
(369)    若使用一位数组名作函数实参,则以下正确的说法是_____。
a. 必须在主调函数中说明此数组的大小
b. 实参数组类型与形参数组类型可以不匹配
c. 在被调用函数中,不需要考虑形参数组的大小
d. 实参数组名与形参数组名必须一致
(a.c)
(370)    函数调用strcat(strcpy(str1,str2),str3)的功能是_______。
a. 将串str1复制到串str2中后在连接到串str3之后
b. 将串str1连接到串str2之后再复制到串str3之后
c. 将串str2复制到串str1中后再将串str3连接到串str1之后
d. 将串str2连接到串str1中后再将串str1复制到串str3中
(c)
(371)    下面说法正确的是______。
a. C语言中函数名直接对应于函数生成的指令代码在内存中的地址,因此函数名可以直接赋给指向函数的指针;
b. 调用函数实际上等同于"调转指令+参数传递处理+回归位置入栈";
c. 函数调用最核心的操作是将函数生成的目标代码的首地址赋给CPU的PC寄存器;
d. 函数调用的本质是跳转到某一个地址单元的code去执行。
(a.b.c)
阅读(1016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~