C2
問題一覧
1
假设有如下宏定义:
#define N 3
#define M N+1
#define f(x,y) (x)*(x)+y*y
main函数中有如下语句:
int a = f(M,N+2);
上面的语句执行后,变量a的值是( )。
27
2
下列关于实参和形参的叙述中,错误的是( )。
形参释放空间后,实参的空间也立即被释放
3
下面的函数用于实现一维数组元素的逆序存储,请将该函数补充完整。
int fun(int a[], (1) )
{
int i, j, t;
for(i=0,j= (2) ; i<j; i++, (3) )
{
t=a[i];
(4) ;
a[j]=t;
}
}
int n, n-1, j--, a[i]=a[j]
4
阅读下面的程序并写出程序执行后的输出
#include <stdio.h>
int fun(int a)
{
if(a<3)
return a;
else
return fun(a-1)*fun(a-2);
}
int main()
{
printf("%d\n", fun(6));
return 0;
}
32
5
下面的函数用于计算并返回一维数组最大值和最小值的差,请将该函数补充完整。
int fun(int a[], int n)
{
int i, max, min;
max = min = (1) ;
for(i=1;i<n;i++)
{
if(a[i]>max)
(2) =a[i];
if(a[i]<min)
min= (3) ;
}
return (4) ;
}
a[0], max, a[i], max - min
6
阅读下面的程序并写出程序执行后的输出
#include <stdio.h>
int fun(int *a, int b)
{
int t = *a;
*a = t + b;
b = t;
return (*a) * b;
}
int main()
{
int m = 3, n = 4;
printf("%d\n", fun(&n,m));
return 0;
}
28
7
下面的函数用于计算并返回一维字符数组中字符串的实际长度,请将该函数补充完整。
int fun(char c[])
{
int i;
for(i=0; (1) !='\0'; i++);
return (2) ;
}
c[i], i
8
若有以下语句:
int a[3],*p=a;
则 &a[2]-p 的值是( )
2
9
假设有int arr[10]; int *p=&arr[0]; 下列选项中,和arr[5]等价的是( )。
*(p+5)
10
假设有:int a=100; double b=3.5; 下列用法中正确的是( )。
int *p=&a; *p=1000;
11
设 char a[5], *p=a; 下面选项中正确的赋值语句是( )。
p="abcd";
12
若有语句:int s[3][3], (*p)[3]; p=s; 则对s数组元素的引用形式正确的是( )。
p[1][2]
問題一覧
1
假设有如下宏定义:
#define N 3
#define M N+1
#define f(x,y) (x)*(x)+y*y
main函数中有如下语句:
int a = f(M,N+2);
上面的语句执行后,变量a的值是( )。
27
2
下列关于实参和形参的叙述中,错误的是( )。
形参释放空间后,实参的空间也立即被释放
3
下面的函数用于实现一维数组元素的逆序存储,请将该函数补充完整。
int fun(int a[], (1) )
{
int i, j, t;
for(i=0,j= (2) ; i<j; i++, (3) )
{
t=a[i];
(4) ;
a[j]=t;
}
}
int n, n-1, j--, a[i]=a[j]
4
阅读下面的程序并写出程序执行后的输出
#include <stdio.h>
int fun(int a)
{
if(a<3)
return a;
else
return fun(a-1)*fun(a-2);
}
int main()
{
printf("%d\n", fun(6));
return 0;
}
32
5
下面的函数用于计算并返回一维数组最大值和最小值的差,请将该函数补充完整。
int fun(int a[], int n)
{
int i, max, min;
max = min = (1) ;
for(i=1;i<n;i++)
{
if(a[i]>max)
(2) =a[i];
if(a[i]<min)
min= (3) ;
}
return (4) ;
}
a[0], max, a[i], max - min
6
阅读下面的程序并写出程序执行后的输出
#include <stdio.h>
int fun(int *a, int b)
{
int t = *a;
*a = t + b;
b = t;
return (*a) * b;
}
int main()
{
int m = 3, n = 4;
printf("%d\n", fun(&n,m));
return 0;
}
28
7
下面的函数用于计算并返回一维字符数组中字符串的实际长度,请将该函数补充完整。
int fun(char c[])
{
int i;
for(i=0; (1) !='\0'; i++);
return (2) ;
}
c[i], i
8
若有以下语句:
int a[3],*p=a;
则 &a[2]-p 的值是( )
2
9
假设有int arr[10]; int *p=&arr[0]; 下列选项中,和arr[5]等价的是( )。
*(p+5)
10
假设有:int a=100; double b=3.5; 下列用法中正确的是( )。
int *p=&a; *p=1000;
11
设 char a[5], *p=a; 下面选项中正确的赋值语句是( )。
p="abcd";
12
若有语句:int s[3][3], (*p)[3]; p=s; 则对s数组元素的引用形式正确的是( )。
p[1][2]