第八章单元测试
以下关于函数的叙述中正确的是( )。
关于C语言函数声明的位置,以下叙述正确的是( )。
有以下程序
#include <stdio.h>
int fun( int a, intB)
{ return a+b; }
main()
{ int x=6, y=7, z=8, r ;
r = fun ( fun(x,y), z-- );
printf (" %d" , r );
}
程序运行后的输出结果是( )。有以下程序
#include <stdio.h>
int a=1, b=2;
void fun1( int a, int b )
{
printf( "%d %d " ,a, b ); }
void fun2()
{ a=3; b=4; }
main()
{
fun1(5,6); fun2( );
printf( "%d %d",a, b );
}
程序运行后的输出结果是( )。以下叙述中错误的是( )。
有以下程序
#include <stdio.h>
void fun( int a, int b, int c )
{ a=b; b=c; c=a; }
main()
{ int a=10 , b=20, c=30;
fun( a, b, c );
printf("%d,%d,%d",c,b,a); }程序运行后的输出结果是( )。
有如下程序
#include <stdio.h>
int sum(int data)
{
static int init = 0;
return init += data;
}
main()
{
int i;
for (i=1; i<=5; i++)
printf("%d,", sum(i));
printf("");
}
程序运行后的输出结果是( )。若有以下程序
#include <stdio.h>
void f(int x)
{ if (x >= 10)
{ printf("%d-", x%10); f(x/10); }
else
printf("%d", x);
}
main()
{ int z = 123456;
f(z);
}
则程序的输出结果是( )。有如下程序
#include <stdio.h>
int sub(double a, double b)
{
return (int)(a - b);
}
main()
{
printf("%d", sub(3.8, 2.1));
}
程序运行后的输出结果是( )。有以下程序
#include <stdio.h>
#define N 4
void fun(int a[][N])
{ int b[N][N],i,j;
for(i=0; i<N; i++)
for(j=0; j<N; j++)
b[i][j] = a[N-1-j][i];
for(i=0; i<N; i++)
for(j=0; j<N; j++)
a[i][j] = b[i][j];
}
main()
{
int x[N][N]={ {1, 2, 3, 4},{5, 6, 7, 8},
{9,10,11,12},{13,14,15,16}
},i;
fun(x); fun(x);
for (i=0;i<N; i++)
printf("%d,", x[i][i]);
printf("");
}
程序的运行结果是( )。
A:函数调用必须传递实参
答案:函数形参的类型与返回值的类型无关
A:在函数声明之后对该函数进行调用,编译时不会出现错误信息
A:31 B:21 C:20 D:15
A:1 2 5 6
B:5 6 3 4
C:3 4 5 6
D:5 6 1 2
A:在函数内部定义的变量只能在本函数范围内使用
A:10,20,30
B:20,30,10
C:0,0,0
D:30,20,10
A:0,0,0,0,0,
A:6-5-4-3-2-1-
B:1-2-3-4-5-6
C:6-5-4-3-2-1
D:1-2-3-4-5-6-
A:2
B:1.7
C:1
D:2.0
A:4,7,10,13,
B:1,6,11,16,
C:16,11,6,1,
D: 13,10,7,4,