i = 6 and j= 5
i = 5 and j= 5
i = 6 and j= 4
i = 5 and j= 6
i = 6 and j= 6
第1题:
给定下面的代码: int i=1,j=10; do { if(i++>--j) continue; }while(i<5) 执行完之后,i与j的值分别是多少? ( )
A.i=6,j=5
B.i=5,j=5
C.i=6,j=4
D.i=5,j=6
第2题:
有以下程序: #include <iostream> using namespace std; int main() { int y=18,i=0,j,a[8]; do{ a[i]=y%2; i++; y=y/2; }while(y>=1); for(j=i-1;i>=0;j--) cout<<a[j]; cout<
A.1000
B.10010
C.110
D.10100
第3题:
●试题四
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。
【函数】
void QuickSort(int A[],int s,int t)
{int i=s,j=t+1,temp;
int x=A[s];
do{
do i++;while (1) ;
do j--;while(A[j]>x);
if(i<j){temp=A[i]; (2) ; (3) ;}
}while(i<j);
A[a]=A[j];A[j]=x;
if(s<i-1) (4) ;
if(j+1<t) (5) ;
}
●试题四
【答案】(1)A[i]<x(2)A[i]=A[j](3)A[j]=temp(4)QuickSort(A,s,j-1)
(5)QuickSort(A,j+1,t);
【解析】快速排序的思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。快速排序是对冒泡排序的一种改进方法,算法中元素的比较和交换是从两端向中间进行的,排序码较大的元素一次就能够交换到后面单元,排序码较小的记录一次就能够交换到前面单元,记录每次移动的距离较远,因而总的比较和移动次数较少。
第4题:
已知C源程序如下:
include<stdio. h>
include<string. h>
void reverse(char S[]){
int C,i,J;
for(i=0,j=strlen(s)-1;i<j;i++,j++){
c=s[i];
s[i]=s[j];
s[j]=c;
}
}
void getHex(int number,char s[]){
int I;
i=0;
while(number>0){
if(number%16<10)
s[i++]=number%16+'0';
else
switch(number%16){
case 10:s[i++]='A';break;
case 11:s[i++]='B';break;
case 12:s[i++]='C';break;
case 13:s[i++]='D';break;
case 14:s[i++]='E';break;
case 15:s[i++]='F';break;
default:printf("Error");break;
}
number/=16;
}
s[i]:'\o';
reverse(s);
}
int main(){
unsigned int number;
int i=0:
char s[50];
printf("%s","please input number;\n");
scanf("%d",&number):
getHex(number,s);
i=0;
while(s[i])
printf("%c",s[i++]);
return 0;
}
画出程序中所有函数的控制流程图。
第5题:
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。
【函数】
void QuickSort( int A[ ],int s,int t)
{ int i=s,j=t+1,temp;
int x=A[s];
do{
do i ++ ;while (1);
do j -- ;while(A[j]>x);
if(i<j){temp=A[i];(2);(3);}
}while(i<j);
A[a] =A[j];A[j] =x;
if(s<i-1) (4);
if(j+1<t) (5);
}
第6题:
在执行完此程序段后,i,j值为 int i=1,j=10; do{ if(++i>j--)continue; }while(i<5);
A.i=6 and j=5
B.i=5 and j=5
C.i=6 and j=4
D.i=5 and j=6
第7题:
本程序用冒泡法对数组a[]的元素从大到小排序,请在程序空白处填空。 void bubble(int a[],int n) {int i,j,max,temp; max=n-1; do{j=0; for(i=0;i<max;i++) if(a[i]<a[i+1]) {temp=a[i];a[i]=a[i+1];a[i+1]=temp; j=i; } max=j; }while(( )); }
第8题:
有以下程序 #inclUde <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1; j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4
A.0987654321
B.4321098765
C.5678901234
D.0987651234
第9题:
执行下面的程序段后i和j的结果为 int i=1,j=10; do { if(i++>--j)continue; } while(i<5);
A.i=6,j=5
B.i=5,j=5
C.i=6,j=4
D.i=5,j=6
第10题:
下列循环语句中有语法错误的是
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<<‘*’;