若inti,j;则for(i=j=0;i<10&&j<8;i++,j+ =3)控制的循环体执行的次数是()
A.9
B.8
C.2
D.3
A.9
B.8
C.2
D.3
试题二(共 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--;
}
}
}
若x,ij和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,X的值为()。
A)4
B)16
C)32
D)52
●试题四
【说明】
下面程序的功能是:在含有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");
}
#include<stdio.h>
main()
{int i,j,row,colum,m;
static int arry[3][3]={{100,200,300},{28,27,29},{850,26,5)};
m=arry[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(arry[i][j]<m)
{m=arry[i][j];row=i;colum=j;}
printf("%d,%d,%d\n",m,row,colum);
}
A.beijing
B.china
C.welcome
D.tiananmen
A.O(1)
B.O(m+n)
C.O(log2mn)
D.O(m*n)
A.int i;for(i=1;i<10;i++) cout<<‘*’;
B.int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*’;
C.int i=0;for(;i<10;i++)cout<<‘*’;
D.for(1) cout<<‘*’;
A.0
B.1
C.2
D.3
A.k=0,m=5
B.k=0,m=3
C.k=1,m=5
D.k=1,m=3
(14 )以下程序用以删除字符串所有的空格,请填空。
#include <stdio.h>
main ()
{ char s[100]={ " Our teacher teach C language! " };int i,j;
for (i=j=0;s[i]!= ’ \0 ’ ;i++ )
if (s[i]!= ‘ ’ ) {s[j]=s[i];j++;}
s[j]= 【 14 】
printf (" %s\n " ,s ) ;
}
以下程序的输出结果为()。
main()
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0;
printf("%s\n",s1);
}
A side
B country
C sidetry
D countryside