第5章习题
04以下程序运行后输出结果是()。
#include
int fun(int a, int b)
{ return(a-b); }
main()
{ int x=5,y=3,k;
k=fun(x,y);
printf("%d-%d=%d\n",x,y,k); }
A. 0
B. x-y=2
C.5-3=2
D.2
05以下程序运行后输出结果是()。
#include
int a=2,b=3,c=5;
int fun(int a, int b)
{ int c;
c=a>b?a:b;
return(c); }
main() {
int a=6;
printf("%d",fun(fun(a,b),c)); }
A. 5
B. 3,5
C.6,5
D.6
06以下程序运行后输出结果是()。void fun(int i)
{ int m=2;
m=i++;
printf("%d ",m); }
main()
{ int m=7,n=5;
fun(n);
printf("%d",m); }
A. 5 5
B. 6 6
C.5 7
D.6 7
07若有函数定义:
int func()
{static int m=0;
return m++; }
以下程序段运行后屏幕输出为()。
int i;
for(i=1;i<=4;i++)
func();
printf("%d",func());
A. 0
B. 1
C.4
D.5
08下面程序的输出结果是()。
#include
int num=10;
func()
{int num=4;
return ++num; }
void main()
{ printf("%d\n",func()); }
A. 4
B. 5
C.10
D.1
09下列关于C语言函数的描述中,错误的是()。
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.凡不加类型说明的函数,其返回值默认为整型
C.函数的返回值可以通过函数中的return语句获得
D.可以定义有参函数,也可以定义无参函数
10以下程序的运行结果是()。
func(int a,int b)
{int c;
c=(a>b)?(a-b):(a+b);
return(c); }
main()
{int x=7,y=3;
printf("%d\n",func(x,y)); }
A. 3
B. 4
C.7
D.10
11以下程序运行结果是()。
void main( )
{int max(float a,float b);
float x,y;
int z;
x=-4.6; y=-3.7;
z=max(x,y);
printf("%d\n",z); }
int max(float a,float b)
{float c;
if(a>b)
c=a;
else c=b;
return (c); }
A. -3.7
B. -3
C.-4.6
D.-4
12下面函数调用语句含有实参的个数为()。temp((a,b,c),(x,y))
A. 2
B. 3
C.4
D.5
13C语言中,数组名作为函数调用的实参时,下面叙述正确的是()。
A.传递给形参的是数组元素的个数
B.传递给形参的是数组第一个元素的值
C. 传递给形参的是数组中全部元素的值
D. 形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化
14以下程序的运行结果是()。
int fun(int array[3][3])
{ int j;
for(j=0;j<3;j++)
array[1][j]++;
printf("\n"); }
main()
{ int j,a[3][3]={0,1,2,1,0,4,2,4,5};
fun(a);
for(j=0;j<3;j++) printf("%2d",a[1][j]); printf("\n"); }
A. 2 1 5
B. 1 0 4
C.0 1 2
D.1 2 3
15C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是()。
A. void
B. long
C.int
D.double
16以下程序的运行结果是()。
int f(int c)
{ c+=2;
return ; }
main()
{ int a=2,c=5;
a=f(a);
printf("%d %d \n",a ,c); }
A. 4 4
B. 4 5
C.2 4
D.2 5
17以下程序的运行结果是()。
int a=2,b=3;
int min(int a,int b)
{ int c;
c=a
return(c); }
main()
{ int a=4;
printf("%d",min(a,b)); }
A. 2,3
B. 2
C.3
D.4
18以下程序的运行结果是()。
fun()
{ static int a=0;
a++;
printf("%d ",a);
}
main()
{ int i;
for(i=1;i<=2;i++)
fun(); }
A. 1 1
B. 1 2
C.0 0
D.0
00以下程序的运行结果是()。
fun3(int x)
{ static int a=3;
a+=x;
return a; }
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
01以下程序运行后输出结果是()。
#define F(m,n) m*n
main( )
{ int x=5,y=3,a1,a2;
a1=F(x+y,x-y);
a2=F(x-y,x+y);
printf("%d,%d\n",a1,a2); }
A. 16,16
B. 16,-16
C.-7,17
D.17,-7
02以下叙述正确的是()。
A.编译预处理命令行必须以分号结束
B.程序中使用带参数的宏时,参数类型要与宏定义时一致
C.宏展开不占用运行时间,只占用编译时间
D.宏名只能包含大写字母和数字字符
03以下叙述正确的是()。
A.一个源程序只能有一个编译预处理命令行
B.编译预处理命令行都必须以"#"开头
C."#define PRICE=30"定义了与30等价的符号常量PRICE
D.使用带参数的宏定义时,应该说明每个参数的数据类型
04以下叙述错误的是()。
A.编译预处理命令行都必须以#号开始
B.宏名可以用小写字母表示
C. 使用预处理命令"#include <文件名>"时,编译系统只在指定的系统目录下查找该文件
D. 宏定义只能放在main()函数之前
05若有定义:#d efine N 3+2,则表达式N*2的值为()。
A. 5
B. 7
C.10
D.0
06以下程序运行后输出结果是()。
#define MIN(m,n)
m main() { int a=3,b=5,c; c=2*MIN(a,b); printf("%d",c); } A. 3 B. 5 C.6 D.10 07下列#includ e命令中,正确的是()。 A. #include "math.h" B. #include [math.h] C.#include (math.h) D.#include {math.h} 08下面程序的输出结果是()。 #include #define MON 1 #define TUE 2*MON #define WED 3*TUE void main() {printf("%d\n",WED-TUE); } A. 2 B. 3 C.4 D.5 09下面错误的叙述是()。 A.预处理命令行必须位于C源程序的起始位置 B.在C语言中,预处理命令行都以"#"开头 C.C程序在开头可以不包含预处理命令行:#include D.C语言的预处理可以实现宏定义和条件编译的功能 10以下程序的运行结果是()。 #define MUL(r) r*r main() {int a=2,b=3,c; c=MUL(a+b)*2; printf("%d",c); } A. 10 B. 14 C.36 D.50 11下面程序的运行结果是()。 #define N 10 #define K(x) x*x #define T(x) (x*x) main( ) {int a,b; a=9%K(N); b=9%T(N); printf("%d,%d\n",a,b); } A. 9,9 B. 9,90 C.90,9 D.90,90 12以下在任何情况下计算平方数时都不会引起二义性的宏定义是()。 A. #define XPF(x) x*x B. #define XPF(x) (x)*(x) C.#define XPF(x) (x*x) D.#define XPF(x) ((x)*(x)) 13以下程序的运行结果是()。 #define X a+b main( ) { int a=3,b=4,s1; s1=2*X; printf("%d\n",s1); } A. 14 B. 6 C.10 D.8 14下面叙述错误的是()。 A.“#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE B.预处理命令行都必须以“#”开头 C.预处理命令行必须以分号结束 D.C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 15下面叙述正确的是()。 A.宏展开不占用运行时间,只占用编译时间 B.预处理命令也是C语句,必须以分号结束 C.一个源程序只能有一个预编译处理命令行 D.宏名必须用大写字母表示 16下面叙述错误的是()。 A.“#inclue B.“#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICE C.C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率 D.宏定义也是C语句,必须在行末加分号 17若有定义:#d efine PI 3,则表达式PI*2*2的值为()。 A. 12 B. 4 C.322 D.不确定 18若有定义:#d efine F 2+3,则表达式F*F的值为()。 A. 25 B. 13 C.11 D.17 03自定义函数中若缺省函数值类型,则隐含的类型是()。 A. int B. long C.float D.double