专升本历年真题

专升本C语言|选择题训练(五)

浏览次数: 发布时间:2022-07-06

选择题


1、有如下说明:  int a[10]={0,1,2,3,4,5,6,7,8,9};

则数值不为9的表达式是________.

A) a[10-1]     B) a[8]     

C) a[9]-0       D) a[9]-a[0]

 

2、设有数组定义:char array[]="China";则数组array所占的存储空间为________.

A) 4个字节    B) 5个字节

C) 6个字节    D) 7个字节

 

3、下面程序的输出是________.

#include <stdio.h>

int m=13;

int fun2(int x, int y)

{ int m=3;

  return(x*y-m);  

}

void main()

{ int a=7, b=5;

  printf("%d\n",fun2(a,b)/m);

}

A) 1        B) 2           

C) 7        D) 10

 

4、请读程序:

#include <stdio.h>

f(int b[ ], int n)

{ int i, r=0;

  for(i=0; i<=n; i++) r=r+b[i];

return r;

}

void main()

{

int x, a[]={ 2,3,4,5,6,7,8,9};

  x=f(a, 3);

  printf("%d\n",x);  }

上面程序的输出结果是________.

A) 20       B) 14         

C) 9         D) 5

 

5、请读程序:

#include <stdio.h>

f(int b[ ], int n)

{ int i, r=1;

  for(i=0; i<=n; i++) r=r*b[i];

  return r;  }

void main()

{ int x, a[]={ 2,3,4,5,6,7,8,9};

  x=f(a, 3);

  printf("%d\n",x);  }

上面程序的输出结果是________.

A) 720        B) 120        

C) 24          D) 6


6、请读程序:

#include<stdio.h>

f(char s[ ])

{ int i,j;

  i=0;j=0;

  while( s[j]!= '\0') j++;

  return  (j-i);  }

void main()

{printf("%d\n",f("ABCDEF"));}

上面程序的输出结果是________.

A) 0           B) 6          

C) 7          D) 8


7、对以下程序,正确的说法是________.

sub (char x,char y)

{ int z; z=x%y; return  z; }

void main( )

{ int g=5,h=3,k;

  k=sub(g,h);

  printf("%d\n",k);  }

A) 实参与其对应的形参类型不一致,程序不能运行

B) 被调函数缺少数据类型说明,程序不能运行

C) 主函数中缺少对被调函数的说明语句,程序不能运行

D) 程序中没有错误,可以正常运行

 

8、若已定义实参数组int a[3][4]={2,4,6,8,10};,则在被调用函数f的下述定义中,对形参数组b定义正确的选项是________.

A) f(int b[ ][6])         

B) f(b) int b[ ][4];        

C) f(int b[3][ ]);        

D) f(b) int b[4][5];

 

9、若函数调用时用数组名作为函数参数,以下叙述中,不正确的是________.

A) 实参与其对应的形参共占用同一段存储空间

B) 实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递

C) 实参与其对应的形参分别占用不同的存储空间

D) 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组

 

10、以下叙述中,不正确的是________.

A) 使用static float a定义的外部变量存放在内存中的静态存储区

B) 使用float b定义的外部变量存放在内存中的动态存储区

C) 使用static float c定义的内部变量存放在内存中的静态存储区

D) 使用float d定义的内部变量存放在内存中的动态存储区

 

11、如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量________.

A) 为全局变量,在本程序文件范围内有效

B) 为局部变量,只在该函数内有效

C) 为局部变量,只在该复合语句中有效

D) 定义无效,为非法变量

 

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

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

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

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

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

 

13、以下叙述中,不正确的是________.

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

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

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

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

 

14、若函数调用时参数为基本数据类型的变量(俗称简单变量),以下叙述正确的是________.

A) 实参与其对应的形参共占存储单元

B) 只有当实参与对应的形参同名时才共占存储单元

C) 实参与其对应的形参分别占用不同的存储单元

D) 实参将数据传递给形参后,立即释放原先占用的存储单元

 

15、若主调用函数类型为double,被调用函数定义中没有进行函数类型说明,而return语句中的表达式类型为float型,则被调函数返回值的类型是________。

A) int 型              

B) float 型

C) double 型           

D) 由系统当时的情况而定

 

16、在以下叙述中,不正确的选项是________。

A) C语言程序总是从main( )函数开始执行

B) 在C语言程序中,被调用的函数必须在main( )函数中定义

C) C程序是函数的集合,在这个函数集中包括标准函数和用户自定义函数

D) 在C语言程序中,函数的定义不能嵌套,但函数的调用可以嵌套


17、C语言中,若未说明函数的类型,则系统默认该函数的类型是________。

A) float型      B) long型  

C) int型         D) double型

 

18、下面函数的功能是________。

sss(s, t)

char s[ ], t[ ];

{ int i=0;

while((s[i])&&(t[i])&&(t[i]== s[i]))  i++;

return  (s[i]-t[i]);}

A) 求字符串的长度

B) 比较两个字符串的大小

C) 将字符串s复制到字符串t中

D) 将字符串s接续到字符串t中

 

19、设有如下函数定义:

 int f(char s[ ])

 { int i=0;

   while(s[i++]!='\0');

   return (i-1);  }

如果在主程序中用下面的语句调用上述函数,则输出结果为________.

printf("%d\n",f("goodbey!"));

A) 3          B) 6        C) 8        D) 9

 

20、对于C语言的函数,下列叙述中正确的是______.

A) 函数的定义不能嵌套,但函数调用可以嵌套

B) 函数的定义可以嵌套,但函数调用不能嵌套

C) 函数的定义和调用都不能嵌套

D) 函数的定义和调用都可以嵌套

 

21、以下说法中正确的是________.

A) C语言程序总是从第一个定义的函数开始执行

B) 在C语言程序中,要调用的函数必须在main()函数中定义

C) C语言程序总是从main()函数开始执行

D) C语言程序中的main()函数必须放在程序的开始部分

 

22、以下程序的输出结果是_________.

#include <stdio.h>

int a,b;

void fun()

{ a=100;  b=200; }

void main()

{ int a=5,b=7;

   fun();

   printf("%d%d\n",a,b);  }

A) 100200     B) 57      

C) 200100      D) 75

 

23、以下函数func()的功能是:使具有n个元素的一维数组b的每个元素的值都增加2,划线处应填入___.

func(int  b[ ],int n)

{ int ;

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

 __________;  }

A) b[i++]      B) b[i]++   

C) b[i+=2]    D) b[i]+=2

 

24、设有以下函数:

#include <stdio.h>

int f(int  a)

{ int b=0,c;

  c=3;

  b++ ;  c++;

  return (a+b+c);  }

如果在下面的程序中调用该函数,则输出结果是____.

void main()

{ int i;

  for(i=0;i<3;i++)  printf("%d\n",f(i));  }

A) 5       B) 5      C) 3      D) 3

    7           6           4          3

    9           7           5          3

 

25、设有以下函数:

#include <stdio.h>

int f(int a)

{ int b=0;

   static  c=3;

   b++ ;  c++;

   return (a+b+c);  }

如果在下面的程序中调用该函数,则输出结果是____.

void main()

{ int a=2,i;

   for(i=0;i<3;i++)  printf("%d\n",f(a));  }

A) 7       B) 7       C) 7        D) 7

    8           9           10           7

    9          11          13           7

  

26、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_______.

A) 地址传递         

B) 单向值传递

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

D) 传递方式由用户指定


27、C语言规定,除主函数外,程序中各函数之间____.

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

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

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

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


28、以下函数fun形参的类型是________.

  fun( float  x)

  { float  y;

    y=3*x-4;

    return  y;  }

A) int        B) 不确定     

C) void       D) float

 

29、下面程序的输出是________.

int fun3(int x)

{static int a=3;

  a+=x;

  return(a);  }

void main()

{int k=2,m=1,n;

  n=fun3(k);

  n=fun3(m);

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

A) 3        B) 4          

C) 6         D) 9

 

30、下列程序执行后输出的结果是________.

#include<stdio.h>

int f(int a)

{int b=0;

  static c=3;

  a=c++,b++;

  return(a);  }

void main()

{int a=2,i,k;

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

     k=f(a++);

  printf("%d\n",k);  }

A) 3        B) 0         

C) 5        D) 4

 


参考答案

1~5  BCBBB

6~10  BDBCB

11~15  CDBCA

16~20  BCBCA

21~25  CBDBA

26~30  BADCC



上一篇:专升本C语言|选择题训练(四)                  专升本C语言|选择题训练(六)