专升本历年真题

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

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

选择题  


1、以下程序的输出结果是________.

#include <stdio.h>

void main()

{ int i,a[10];

  for(i=9;i>=0;i--)  a[i]=10-i;

  printf("%d%d%d",a[2],a[5],a[8]);  

}

A) 258     B) 741       

C) 852      D) 369


2、以下定义语句中,错误的是________.

A) int a[]={1,2};              

B) char a={"test"};

C) char s[10]={"test"};         

D) int a[]={'a','b','c'};

 

3、以下定义语句中,错误的是________.

A) int a[]={1,2};              

B) char a[]={"test"};

C) char s[10]={"test"};         

D) int n=5,a[n];

 

4、下列程序的输出结果是________.

#include <stdio.h>

void main()

{char b[]="ABCDEFG";

 char p=0;

 while(p<7)

   putchar(b[p++]);

 putchar('\n');  

}

A) GFEDCBA          

B) BCDEFG   

C) ABCDEFG         

D) GFEDCB

 

5、下述对C语言字符数组的描述中错误的是_____.

A) 字符数组可以存放字符串

B) 字符数组中的字符串可以整体输入、输出

C) 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D) 不可以用关系运算符对字符数组中的字符串进行比较


6、以下程序的输出结果是________.

#include<stdio.h>

void  main()

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

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

     printf("%d,",x[i][i]);

   printf("\n");  

}

A) 1,5,9,       

B) 1,4,7,      

C) 3,5,7,    

D) 3,6,9,

 

7、如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,则数组a的大小是________.

A) 10         

B) 11         

C) 8       

D) 不定

 

8、有如下程序

#include<stdio.h>

void main()

{ char ch[80]="123abcdEFG*&";

   int j;long s=0;

   puts(ch);

   for(j=0;ch[j]>'\0';j++)

   if(ch[j]>='A'&&ch[j]<='Z')

ch[j]=ch[j]+'e'-'E';

   puts(ch);  

}

该程序的功能是________.

A) 测字符数组ch的长度

B) 将数字字符串ch转换成十进制数

C) 将字符数组ch中的小写字母转换成大写

D) 将字符数组ch中的大写字母转换成小写


9、设有如下定义:

char aa[2][20]={ "abcd", "ABCD"};

则以下说法中错误的是________.

A) aa是个二维数组,可以存放2个19个字符以下的字符串

B) aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD"

C) aa[0]可以看作是一维数组名

D) aa[0][0]可以看作是一维数组名

 

10、以下对C语言函数的有关描述中,正确的是_____.

A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B) C函数既可以嵌套定义又可以递归调用

C) 函数必须有返回值,否则不能使用函数

D) C程序中有调用关系的所有函数必须放在同一个源程序文件中

 

11、有如下说明:  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]

 

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

A) 4个字节    

B) 5个字节

C) 6个字节    

D) 7个字节

 

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

#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

 

14、请读程序:

#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

 

15、请读程序:

#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


16、请读程序:

#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

 

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

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) 程序中没有错误,可以正常运行

 

18、若已定义实参数组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];

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

23、以下叙述中,不正确的是_______.

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

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

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

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

 

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

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

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

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

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

 

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

A) int 型              

B) float 型

C) double 型           

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

 

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

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

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

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

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


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

A) float型      

B) long型  

C) int型   

D) double型

 

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

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中

 

29、设有如下函数定义:

 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

 

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

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

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

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

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

  


参考答案 

1~5CBDCC

6~10AADDA

11~15BCBBB

16~20BDBCB

21~25CDBCA

26~30BCBCA



上一篇:专升本C语言|选择题训练(五)                  专升本管理学 丨单项选择题练习