若x、i、j和k都是int型变量,则计算表达式 x=(i=4,j=16,k=32) 后,x的值为多少()
A.4
B.16
C.32
D.52
C、32
A.4
B.16
C.32
D.52
C、32
k=0;for(i=0,j=10;i<=j;i++,j--){k=i+j;}
A.12
B.10
C.11
D.9
试题二(共 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--;
}
}
}
若有下列定义(设int类型变量占两个字节),则i=【 】 ,j=【 】。 int i=8,j=9;float x=123.456; print("i=%oj=%o\n",i,j);
SumColumMin()的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。
#include<stdio.h>
#define M 2
#define N 4
void SumColumMin(______)/*第一空*/
{int i,j,k,s=0;
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(______)k=j;/*第二空*/
s+=a[k][i];
}
______;/*第三空*/
}
main()
{int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(x,&s);
printf("%d\n",s);
}
若x、y和z均是int型变量,则执行下面表达式后的x值为【 】。 x=(y=4)+(z=3)
若下面程序的输出结果是4,请填空。 main() { int i,j,k; k = 0 ; i = j =【 】; k+=-(i+j);printf("%d\n",k); }
若x,y和z均是int型变量,则执行下面表达式后的x值为【 】。 x=(y=4)+(z=2)
计算下列程序片段的时间代价:
int i=1;
while(i<=n){
int i=1;
while(j<=n){
int k=1;
while(k<=n){
printf("i=%d,j=%d,k=%d\n",I,j,k);
k=k+1;
j
j=j+1;
}
i=i+1;
}
设有无符号短整型变量i、j、k,i值为013,j值为 OX13。计算表达式“k=~i|j>> 3”后,k的值是()
A.06
B.0177776
C.066
D.0177766