编写一个函数从一给定的元素类型为int的顺序表A中删除元素值在(x,y)之间 (x≤y,不包括x,y)的所
编写一个函数从一给定的元素类型为int的顺序表A中删除元素值在(x,y)之间 (x≤y,不包括x,y)的所有元素,要求以较高的效率来实现。
编写一个函数从一给定的元素类型为int的顺序表A中删除元素值在(x,y)之间 (x≤y,不包括x,y)的所有元素,要求以较高的效率来实现。
A.定义了一个基类型为int的指针变量p,该变量具有3个指针
B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有3个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素
若有下列说明语句 int(* p)(); 则标识符p代表的是()
A.一个用于指向函数的指针变量,函数返回值的类型为int型
B.一个带回值类型为整型的函数名
C.一个用于指向整型数据的指针变量
D.一个带回值类型为指针类型的函数名
若有定义int * p[3]:,则以下叙述中正确的是 ______。
A.定义了一个基类型为int的指针变量p,该变量有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
(27 )若有定义 int (*Pt ) [3] ; ,则下列说法正确的是
A )定义了基类型为 int 的三个指针变量
B )定义了基类型为 int 的具有三个元素的指针数组 pt
C )定义了一个名为 *pt 、具有三个元素的整型数组
D )定义了一个名为 pt 的指针变量,它可以指向每行有三个整数元素的二维数组
试题二(共 15分)
阅读以下说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明 1】
函数Counter(int n, int w[])的功能是计算整数n的二进制表示形式中1的个数,同时用数组w记录该二进制数中1所在位置的权。
例如,十进制数22的二进制表示为10110。对于该二进制数,1的个数为3,在w[0]中存入2(即 )、w[1]中存入4(即 )、w[2]中存入16(即 )。
1
2 2
2 4
2
【C函数 1】
int Counter(int n, int w[])
{ int i = 0, k = 1;
while ((1) ) {
if (n % 2) w[i++] = k;
n = n / 2; (2) ;
}
return i;
}
【说明 2】
函数 Smove(int A[], int n)的功能是将数组中所有的奇数都放到所有偶数之前。其过程为:设置数组元素下标索引i(初值为0)和j(初值为n-1),从数组的两端开始检查元素的奇偶性。若 A[i]、A[j]都是奇数,则从前往后找出一个偶数,再与 A[j]进行交换;若 A[i]、A[j]都是偶数,则从后往前找出一个奇数,再与A[i]进行交换;若 A[i]是偶数而A[j]是奇数,则交换两者,直到将所有的奇数都排在所有偶数之前为止。
【C函数 2】
void Smove(int A[], int n)
{ int temp, i = 0, j = n-1;
if (n < 2 ) return;
while (i < j ) {
if (A[i] % 2 == 1 && A[j] % 2 == 1 ) { (3) ; }
else if (A[i] % 2 == 0 && A[j] % 2 == 0 ) { (4) ; }
else {
if ((5) ) {
temp = A[i]; A[i] = A[j]; A[j] = temp;
}
i++, j--;
}
}
}
若有函数 void fun(double a[]。int*n) {…} 以下叙述中正确的是()。
A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送
B.形参a和n都是指针变量
C.形参a是一个数组名,n是指针变量
D.调用fun函数时将把double型参数组元素一一对应地传送给形参a数组
以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i<N) scanf("%d", ______); } 在下划线处应填入的是
A.x+i
B.&x[i+1]
C.x+(i++)
D.&x[++i]
●试题四
【说明】
下面程序的功能是:在含有10个元素的数组中查找最大数,及最大数所在位置(即下标值),最大数可能不止一个。
例如:若输入
2857848328
则应输出
The max:8
Total:4∥最大数出现次数
The positions:1469
【函数】
#include<stdio.h>
#define M 10
int fun(int*a,int*n,int pos[])
{
int i,k max=-32767;
(1)
for(i=0;i<M;i++)
if((2) )max=a[i];
for(i=0;i<M;i++)
if((3) )pos[k++]=i;
*n=k;
return max;
}
main()
{
int a[M],pos[M],i=0,j,n;
printf("Enter 10 number:");
for(i=0;i<M;i++)scanf("%d", (4) );
j=fun((5) );
printf("The max:%d\n",j);
printf("Total:%d",n);
printf("The position:");
for(i=0;i<n;i++)printf("%4d",pos[i]);
printf("\n");
}
评价下面的代码片断:
unsigned int zero = 0;
unsigned int compzero = 0xFFFF;
/*1's complement of zero */
对于一个 int型不是16位的处理器为说,上面的代码是不正确的。应编写如
下:
unsigned int compzero = ~0;