一、选择题
1.以下正确的函数定义是( )。
A.double fun(int x, int y) B.double fun(int x,y)
{ z=x+y; return z ; } { int z; return z;}
C.fun (x,y) D.double fun (int x, int y)
{ int x, y; double z ; { double z ;
z=x+y; return z;} return z;}
【答案】D
【说明】其返回值与函数类型相符。
2.若调用一个函数,且此函数中没有return语句,则正确的说法是字符串处理函数 如果是a展示b( )。
A.该函数没有返回值 B.该函数返回若干个系统默认值
C.能返回一个用户所希望的函数值 D.返回一个不确定的值
【答案】A
3.以下不正确的说法是( )。
A.实参可以是常量,变量或表达式
B.形参可以是常量,变量或表达式
C.实参可以为任意类型
D.如果形参和实参的类型不一致,则以形参类型为准
【答案】B
【说明】形参只能是变量或数组。
4.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( )。
A.地址传递 B.值传递
C.有实参传给形参,再由形参传给实参 D.由用户指定传递方式
【答案】B
【说明】地址传递是在实参和形参是数组的情况下进行的。
5.C语言规定,函数返回值的类型是决定于( )。
A.return语句中的表达式类型 B.调用该函数时的主调函数类型
C.调用该函数时由系统临时 D.在定义函数时所指定的函数类型
【答案】D
6.若用数组名作为函数调用的实参,传递给形参的是( )。
A.数组的首地址 B.数组中第一个元素的值
C.数组中的全部元素的值 D.数组元素的个数
【答案】A
7.如果在一个函数中的复合语句中定义了一个变量,则该变量( )。
A.只在该复合语句中有定义 B.在该函数中有定义
C.在本程序范围内有定义 D.为非法变量
【答案】C
【说明】因为该变量为局部变量。
8.下面程序的输出是( )。
int i=2;
printf("%d%d%d",i*=2,++i,i++);
A.8,4,2 B.8,4,3 C.4,4,5 D.4,5,6
【答案】A
9.已知一个函数的定义如下:
double fun(int x, double y)
{ }
则该函数正确的函数原型声明为( )。
A.double fun (int x,double y) B.fun (int x,double y)
C.double fun (int ,double ); D.fun(x,y) ;
【答案】A
10.以下不正确的说法是( )。
A.全局变量,静态变量的初值是在编译时指定的
B.静态变量如果没有指定初值,则其初值为0
C.局部变量如果没有指定初值,则其初值不确定
D.函数中的静态变量在函数每次调用时,都会重新设置初值
【答案】D
【说明】静态局部变量在其函数调用结束后仍然可以保留变量值。
11.以下任何情况下计算平方数时都不会引起二义性的宏定义是( )。
A.#define POWER(x) x*x B.#define POWER(x) (x)*(x)
C.#define POWER(x) (x*x) D.#define POWER(x) ((x)*(x))
【答案】D
12.以下正确的叙述是( )。
A.C语言的预处理功能是指完成宏替换和包含文件的调用。
B.C语言的预处理指令只能位于C源程序文件的首部。
C.凡是C源程序中行首以“#”标识的控制行都是预处理指令。
D.C语言的编译预处理就是对源程序进行初步的语法检查。
【答案】B
13.C语言提供的预处理功能包括条件编译,其基本形式是:
#XXX 标识符
程序段1
#else
程序段2
#endif
这里XXX可以是( )。
A.define或 include B.ifdef或include
C.ifdef或ifndef或define D.ifdef或 ifndef
【答案】D
二、填空题
1.C语言函数返回类型的默认定义类型是 。
【答案】整型
2.函数调用语句:fun((a,B.,(c,d,e))实参个数为 。
【答案】2
3.函数的实参传递到形参有两种方式: 和 。
【答案】传值、传址
4.在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式。
【答案】嵌套调用 递归
5.C语言变量按其作用域分为 和 ;按其生存期分为 和 。
【答案】全局变量 局部变量 动态变量 静态变量
6.已知函数定义:void dothat(int n,double x) { … },其函数声明的两种写法为
和 。
和 。
【答案】dothat(int n,double x) { … } dothat(int,double) { … }
7.C语言变量的存储类别有 , , 和 。
【答案】自动变量和寄存器变量 静态外部变量 静态局部变量 外部变量
8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为 。
【答案】自动
9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变
量需要定义的存储类别为 。
【答案】静态全局变量
10.变量被赋初值可以分为两个阶段:即 和 。
【答案】定义时赋值 运行中赋值
11.下面程序的运行结果是 。
#define MAX(a,b) (a>b?a:b)+1
main()
{ int j=6,k=8,f;
printf("%d\n",MAX(j,k));}
【答案】9
12.下面程序的运行结果是 。
#define A 4
#define B(x) A*x/2
main()
{ float c,a=4.5;
c=B(a );
printf("%5.1f\n",c );}
【答案】9.0
13.以下程序的输出结果是 。
#include "stdio.h"
#define F(y) 3.84+y
#define PR(A. printf("%d",(int)(A.)
#define PRINT(A. PR(A.;putchar('\n')
main()
{ int x=2;
PRINT(F(3)*x);}
【答案】9
14.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。
main()
{ int x=2,y=3;
printf("%d\n",pow(x,y));}
【答案】#include <math.h>
15.下面程序的运行结果是 。
main()
{ int a=10,b=20,c;
c=a/b;
#ifdef DEBUG
printf("a=%d,b=%d",a,b );
#endif
printf("c=%d\n", c );}
【答案】c=0
16.下面程序的运行结果是 。
#define DEBUG
main()
{ int a=14,b=15,c;
c=a/b;
#ifdef DEBUG
printf("a=%d,b=%d, ",a,b );
#endif
printf("c=%d\n", c );}
【答案】a=14,b=15,c=0
三、程序阅读题
1.写出下面程序的运行结果。
func(int a,int B.
{ static int m=0,i=2;
i+=m+1;
m=i+a+b;
return (m);
}
main()
{ int k=4,m=1,p1,p2;
p1=func(k,m); p2=func(k,m);
printf("%d,%d\n",p1,p2);
}
【答案】8,17
2.写出下面程序的运行结果。
#define MAX 10
int a[MAX], i;
sub1()
{ for(i=0; i<MAX; i++) a[i]=i+i;
}
sub2()
{ int a[MAX], i ,max;
max=5;
for(i=0; i<MAX; i++) a[i]=i;
}
sub3(int a[])
{ int i;
for(i=0; i<MAX; i++) printf("%d",a[i]);
printf("\n");
}
main()
{ sub1(); sub3(A.; sub2(); sub3(A.;
}
【答案】
024*********
024*********
3.若输入的值是-125,写出下面程序的运行结果。
#include <math.h>
fun(int n)
{ int k,r;
for(k=2; k<=sqrt(n); k++)
{ r=n%k;
while(!r)
{ printf("%d",k); n=n/k;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论