type
status
date
slug
summary
tags
category
icon
password
 

一.单选题(total35 questions,100.0mark)

1

【Single Choice】阅读下面程序,则执行后的结果为( ).main( ){ int m=4,n=2,k;  k=fun(m,n);  printf("%d\n",k);}fun(int m,int n){ return(m*m*m-n*n*n);}
A、64 • B、8 • C、56 • D、0
My Answer:C:56;

2

【Single Choice】以下程序的运行结果是( ).fun(int i,int j) { i++; j++;   return i+j; }main( ) { int a=1,b=2,c=3;   c+=fun(a,b)+a;   printf("%d,%d,%d\n",a,b,c); }
A、1,2,9 • B、2,3,10 • C、1,2,10 • D、2,3,9
My Answer:A:1,2,9;

3

【Single Choice】以下程序的输出结果是( ).int f( ){ static int i=0;  int s=1;  s+=i; i++;  return s; }main( ){ int i,a=0;  for(i=0;i<5;i++)a+=f( );  printf("%d\n",a); }
A、20 • B、24 • C、25 • D、15
My Answer:D:15;

4

【Single Choice】以下只有在使用时才为该类型变量分配内存的存储类说明是( ).
A、auto和 static • B、auto和 register • C、register和 static • D、extern和 register
My Answer:B:auto和 register;

5

【Single Choice】C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是().
A、地址传递 • B、单向值传递 • C、由实参传给形参,再由形参传回给实参 • D、由用户指定的传递方式
My Answer:B:单向值传递;

6

【Single Choice】请阅读以下程序:void fun(int s[]){ static int j=0;  do   {s[j]+=s[j+1];}while(++j<2); }main( ){ int k,a[10]={1,2,3,4,5};  for(k=1;k<3;k++) fun(a);  for(k=0;k<5;k++) printf("%d",a[k]); }上面程序的输出是( ).
A、34756 • B、23445 • C、35745 • D、12345
My Answer:C:35745;

7

【Single Choice】以下函数的类型是( ).       fff( float x)  { printf("%d\n", x+x); }
A、与参数x的类型相同 • B、void 类型 • C、int类型 • D、无法确定
My Answer:C:int类型;

8

【Single Choice】有以下程序:void fun(int a,int b,int c){ a=456,b=567,c=678;}main( ){ int x=10,y=20,z=30;  fun(x,y,z);  printf("%d,%d,%d\n",x,y,z); }输出结果是( ).
A、30,20,10 • B、10,20,30 • C、456,567,678 • D、678,567,456
My Answer:A:30,20,10;

9

【Single Choice】以下对C语言函数的有关描述中,正确的是( ).
A、调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 • B、函数既可以嵌套定义又可以递归调用 • C、函数必须有返回值,否则不能使用函数 • D、函数必须有返回值,返回值类型不定
My Answer:B:函数既可以嵌套定义又可以递归调用;

10

【Single Choice】若用数组名作为函数的实参,传递给形参的是( ).
A、数组的首地址 • B、数组第一个元素的值 • C、数组中全部元素的值 • D、数组元素的个数
My Answer:A:数组的首地址;

11

【Single Choice】以下程序中函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序.void f(int b[],int n,int flag){ int   i,j,t;  for(i=0;i<n-1;i++)    for(j=i+1;j<n;j++)      if(flag?b[i]>b[j]:b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main( ){ int a[10]={5,4,3,2,1,6,7,8,9,10},i;  f(&a[2],5,0);      f(a,5,1);  for(i=0;i<10;i++) printf("%d,",a[i]);}程序运行后的输出结果是( ).
A、1,2,3,4,5,6,7,8,9,10, • B、3,4,5,6,7,2,1,8,9,10, • C、5,4,3,2,1,6,7,8,9,10, • D、10,9,8,7,6,5,4,3,2,1,
My Answer:B:3,4,5,6,7,2,1,8,9,10,;

12

【Single Choice】设函数fun的定义形式为void fun(char ch,float x){…}则以下对函数fun的调用语句中,正确的是( ).
A、fun("abc",3.0); • B、t=fun('D',16.5); • C、fun('65',2.8); • D、fun(32,32);
My Answer:D:fun(32,32);;

13

【Single Choice】关于建立函数的目的,以下正确的说法是( ).
A、提高程序的执行效率 • B、提高程序的可读性 • C、减少程序的篇幅 • D、减少程序文件所占内存
My Answer:B:提高程序的可读性;

14

【Single Choice】C语言规定,函数返回值的类型是由().
A、return语句中的表达式类型所决定 • B、调用该函数时的主调函数类型所决定 • C、调用该函数时系统临时决定 • D、在定义该函数时所指定的函数类型所决定
My Answer:D:在定义该函数时所指定的函数类型所决定;

15

【Single Choice】有以下程序#include "string.h"void f(char p[][10],int n) /*字符串从小到大排序*/{ char t[10];    int i,j;  for (i=0;i<n-1; i++)  for (j=i+l; j<n; j++)  if(strcmp(p[i], p[j])>0) {strcpy(t, p[i]); strcpy(p[i], p[j]); strcpy(p[j], t); }}main( ){ char p[5][10]={"abc", "aabdfg", "abbd", "dcdbe", "cd"};  f(p,5);  printf("%d\n", strlen(p[0])); }程序运行后的输出结果是( ).
A、2 • B、4 • C、6 • D、3
My Answer:C:6;

16

【Single Choice】以下正确的函数首部是( ).
A、double fun(int x,int y) • B、double fun(int x; int y) • C、double fun(int x;y); • D、double fun(int x,y);
My Answer:A:double fun(int x,int y);

17

【Single Choice】以下正确的说法是( ).
A、定义函数时,形参的类型说明可以放在函数体内 • B、return后边的值不能为表达式 • C、如果函数值的类型与返回值类型不一致,以函数值类型为准 • D、如果形参与实参类型不一致,以实参类型为准
My Answer:C:如果函数值的类型与返回值类型不一致,以函数值类型为准;

18

【Single Choice】有如下程序:long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));  else return(2); }main( ){ printf("%d\n",fib(3));}该程序的输出结果是( ).
A、2 • B、4 • C、6 • D、8
My Answer:B:4;

19

【Single Choice】以下程序的输出结果是( ).void reverse(int a[],int n){ int i,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,8);  for(i=6;i<10;i++)s+=b[i];  printf(" %d\n ",s);}
A、22 • B、10 • C、34 • D、30
My Answer:C:34;

20

【Single Choice】阅读下列程序,则运行结果为( ).fun( ){ static int x=5;  x++;  return x;}main( ){ int i,x;  for(i=0;i<3;i++)    x=fun( );  printf("%d\n",x);}
A、5 • B、6 • C、7 • D、8
My Answer:D:8;

21

【Single Choice】有以下程序int f(int n){ if(n==1)return 1;  else return f(n-1)+1;}main( ){ int i,j=0;  for(i=1;i<3;i++)     j+=f(i);  printf("%d\n",j);}程序运行后的输出结果是( ).
A、4 • B、3 • C、2 • D、1
My Answer:B:3;

22

【Single Choice】下面函数调用语句含有实参的个数为( ).func((exp1,exp2),(exp3,exp4,exp5));
A、1 • B、2 • C、4 • D、5
My Answer:B:2;

23

【Single Choice】阅读下面程序,则执行后的结果为( ).long fun(int n){ if(n>2) return(fun(n-1)+fun(n-2));  else return(2);}main( ){ printf("%ld\n",fun(5));}
A、10 • B、15 • C、20 • D、以上3个答案都不正确
My Answer:A:10;

24

【Single Choice】C语言中函数调用的方式有:().
A、只有函数调用作为语句这一种方式 • B、只有函数调用作为函数表达式这一种 • C、只有函数调用作为语句或函数表达式这两种 • D、函数调用作为语句、函数表达式或函数参数三种
My Answer:D:函数调用作为语句、函数表达式或函数参数三种;

25

【Single Choice】全局变量的定义不可能出现在( ).
A、函数内部 • B、函数外面 • C、文件外面 • D、最后一行
My Answer:A:函数内部;

26

【Single Choice】有以下程序float fun(int x,int y){ return(x+y);}main( ){ int a=2,b=5,c=8;  printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); }程序运行后的输出结果是( ).
A、编译出错 • B、9 • C、21 • D、9.0
My Answer:B:9;

27

【Single Choice】以下程序输出结果是( ).int a=50,b=10;main( ){ int a=1,c;  c=a+b;  printf("%d  ",c);  {int a=2,b=2;c=a+b; printf("%d ",c); }}
A、60  4 • B、11  3 • C、11  4 • D、60  3
My Answer:C:11  4;

28

【Single Choice】以下错误的描述是:函数调用可以( ).
A、出现在执行语句中 • B、出现在一个表达式中 • C、做为一个函数的实参 • D、做为一个函数的形参
My Answer:D:做为一个函数的形参;

29

【Single Choice】数组名作为函数参数传递给函数,作为实际参数的数组名被处理为( ).
A、该数组的长度 • B、该数组的元素个数 • C、该数组中各元素的值 • D、该数组的首地址
My Answer:D:该数组的首地址;

30

【Single Choice】函数的值通过return语句返回,下面关于return语句的形式描述错误的是( ).
A、return 表达式; • B、return(表达式); • C、一个return语句可以返回多个函数值 • D、一个return语句只能返回一个函数值
My Answer:C:一个return语句可以返回多个函数值;

31

【Single Choice】C语言允许函数类型缺省定义,此时函数值隐含的类型是( )。
A、float • B、int • C、long • D、double
My Answer:B:int;

32

【Single Choice】当调用函数时,实参是一个数组名,则向函数传送的是( ).
A、数组的长度 • B、数组的首地址 • C、数组每一个元素的地址 • D、数组每个元素中的值
My Answer:B:数组的首地址;

33

【Single Choice】下面程序的输出结果为( ).fun(int a, int b){  int c;  c=a+b;  return c;}main( ) { int x=6,y=7,z=8,r;  r=fun( (x--,y++,x+y),z--);  printf("%d\n",r); }
A、21 • B、22 • C、23 • D、20
My Answer:A:21;

34

【Single Choice】若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( ).
A、函数调用可以作为独立的语句存在 • B、函数调用可以作为一个函数的实参 • C、函数调用可以出现在表达式中 • D、函数调用可以作为一个函数的形参
My Answer:A:函数调用可以作为独立的语句存在;

35

【Single Choice】下列函数的运行结果是( ).main( ){ int i=2,p;  int j,k;  j=i;  k=++i;  p=f(j,k);  printf("%d",p); }int f(int a,int b){ int c;  if(a>b)c=1;  else if(a==b)c=0;       else c=-1;  return(c); }
A、-1 • B、1 • C、2 • D、编译出错,无法运行
My Answer:A
C语言程序设计 测验题七C语言程序设计 测验题五
Loading...