第八章测试1.
以下关于函数的叙述中正确的是( )。
A:函数调用必须传递实参
答案:B
2.
关于C语言函数声明的位置,以下叙述正确的是( )。
A:函数声明只能出现在源程序的开头位置,否则编译时会出现错误信息
有以下程序
#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 );
}
程序运行后的输出结果是( )。
A:20 B:15 C:31 D:21 4.
有以下程序
#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 );
}
程序运行后的输出结果是( )。
A:5 6 3 4
B:1 2 5 6
C:3 4 5 6
D:5 6 1 2
5.
以下叙述中错误的是( )。
A:函数中的形参属于局部变量
有以下程序
#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); }
程序运行后的输出结果是( )。
A:30,20,10
B:0,0,0
C:20,30,10
D:10,20,30
7.
有如下程序
#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("");
}
程序运行后的输出结果是( )。
A:1,3,6,10,15,
若有以下程序
#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);
}
则程序的输出结果是( )。
A:6-5-4-3-2-1
B:1-2-3-4-5-6
C:1-2-3-4-5-6-
D:6-5-4-3-2-1-
9.
有如下程序
#include <stdio.h>
int sub(double a, double b)
{
return (int)(a - b);
}
main()
{
printf("%d", sub(3.8, 2.1));
}
程序运行后的输出结果是( )。
A:1
B:2.0
C:1.7
D:2
10.
有以下程序
#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: 13,10,7,4,
B:1,6,11,16,
C:4,7,10,13,
D:16,11,6,1,