【判断题】以下程序段将把a的最大值移到末尾位置 for(i=1;i<N-1;i++) if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; }
A.Y.是
B.N.否
第1题:
下面程序的功能是:对字符串从小到大进行排序并输出,请填空。
#include "string.h"
#include "stdio.h"
sort(char *a[],int n)
{ int i,j;
char *p;
for(j=1;j<=n-1;j++)
for(i=0; 【15】 ;i++)
if( 【16】 >0)
{ p=a[i];
a[i]=a[i+1];
a[i+1]=p;}}
main()
{ int i;
char *book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};
sort( 【17】 );
for(i=0;i<6;i++)
printf("%s\n",book[i]);}
第2题:
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。
【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。
void quicksort (int a[], int left, int right) {
int temp;
if (left<right) {
hat pivot = median3 (a, left, right); //三者取中子程序
int i = left, j = right-1;
for(;;){
while (i <j && a[i] < pivot) i++;
while (i <j && pivot < a[j]) j--;
if(i<j){
temp = a[i]; a[j] = a[i]; a[i] = temp;
i++; j--;
}
else break;
}
if (a[i] > pivot)
{temp = a[i]; a[i] = a[right]; a[right] = temp;}
quicksort( (1) ); //递归排序左子区间
quieksort(a,i+1 ,right); //递归排序右子区间
}
}
void median3 (int a[], int left, int right)
{ int mid=(2);
int k = left;
if(a[mid] < a[k])k = mid;
if(a[high] < a[k]) k = high; //选最小记录
int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 left
if(a[mid] < a[right])
{temp=a[mid]; a[mid]=a[right]; a[right]=temp;}
}
消去第二个递归调用 quicksort (a,i+1,right)。 采用循环的办法:
void quicksort (int a[], int left, int right) {
int temp; int i,j;
(3) {
int pivot = median3(a, left, right); //三者取中子程序
i = left; j = righi-1;
for (;; ){
while (i<j && a[i] < pivot)i++;
while (i<j && pivot <a[j]) j--;
if(i <j) {
temp = a[i]; a[j]; = a[i]; a[i]=temp;
i++; j--;
}
else break;
}
if(a[i]>pivot){(4);a[i]=pivot;}
quicksoft ((5)); //递归排序左子区间
left = i+1;
}
}
第3题:
本程序用冒泡法对数组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(( )); }
第4题:
以下程序的输出结果是______。 main() { int i,k,a[10],p[3] k=5; for(i=0;i<10;i++)a[i]=i for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); }
A.20
B.21
C.22
D.23
第5题:
阅读以下函数说明和Java代码,将应填入(n)处的字句写在对应栏内。
【说明】
以下程序实现数据的排序,将n个整数分别按照升序和降序进行排序,类SortInt_1实现升序排序,类SortInt_2实现降序排序。
【Java代码】
class SortInt_1{
int i,i,k,temp;
void SortInt(int a1,int a2[]){//升序排序
for(i=0;i<a1-1;i++){
k=i;
for(j=i+1;j<a1;j++){
if((1)) k=j;
if(k !=i){
temp=a2[i];a2[i]=a2[k];a2[k]=temp;
}
}
}
}
}
class SortInt_2 (2) {
int i,j,k,temp;
void SortInt(int a1, int a2[]){//降序排序
for(i=0; i<a1-1;i++){
k=i;
for(j=i+1;j<a1;j++){
if((3))k=j;
}
if(k !=i){
temp=a2[i];a2[i]=a2[k];a2[k]=temp;
}
}
}
}
public class test{
public static void main(String args[]){
int a[]={10,55,100,35,87,90,100,16};
SortInt_1 NewInt=(4);
NewInt.SortInt(a.lenvh,a);//调用SortInt_1类的方法
System.out.println("升序排列的数据: ");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
NewInt=new SortInt_2();//创建类SortInt_2的对象
(5);//调用相应方法进行降序排序
System.out.println("降序排列的数据: ");
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
第6题:
有以下程序:
main()
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是【 】。
第7题:
以下程序的输出结果是( )。 main { int i,k,a[10],p[3]; k=5; for(i=0:i<10;i++)a[i]=i; for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k、; }
A.20
B.21
C.22
D.23
第8题:
以下能够正确计算n!的程序是______。
A.Private Sub Commeadl_Click() n=5: x=1 Do x=x*i i=i+1 Loop While i<n Print x End Sub
B.Private Sub Command1_Click() n=5: x=1: i=1 Do x=x*i i=i+1 Loop While i<n Print x End Sub
C.Private Sub Command1_Click() n=5: x=1: i=1 Do x=x*i i=i+1 Loop Whilei<=n Print x End Sub
D.Private Sub Commsndl_Click() n=5: x=1: i=1 Do x=x*i i=i+1 Loop While i>n Print x End Sub
第9题:
写出模板函数实现数值型数组元素值按从小到大排序的程序。
include<iostream>
using namespace std;
template <class T>
void sort(T b[],int n)
{
T temp;
int i,j;
T *a=new T[n];
for (i=0;i<n;i++){a[i]=b[i];}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{ if(a[i]>a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<n;i++){cout<<a[i]<<" ";}
cout<<endl;
delete []a;
}
void main()
{
int i,n=6;
int a[]={5,1,9,10,3,8};
____________;
for(i=0;i<n;i++)
{cout<<a[i]<<" ";}
cout<<endl;
}
第10题:
以下非法的赋值语句是
A.n=(i=2, i++)
B.i++
C.x=j>0
D.++(i+1)
第11题:
int a[10]; 给数组a的所有元素分别赋值为1、2、3、„„的语句是().
第12题:
Hay
How are you
we
ay
第13题:
阅读下列Java程序和程序说明, 将应填入(n)处的字句写在答题纸的对应栏内。
【说明】数据排序。将给定的n个整数分别按照升序和降序进行排列。
class SortInt_1
{
int i, j, k, temp;
void SortInt(int a1, a2[]){//升序排序
for(i=0; i<a1-1; i++){
k=i;
for(j=i+1 ;j<a1 ;j++)
if ((1)) k=j;
if(k!=i){
temp=a2[i];a2[i]=a2[k];a2[k]=temp;
}
}
}
}
class Sortlnt_2 (2)
{
int i, j, k, temp;
void Sortlnt(int a1,a2[]){//降序排序
for(i=0;i<a1-1 ;i++) {
k=i;
for(j=i+1 ;j<a1 ;j++)
if ((3)) k=j;
if(k!=i){
temp=a2[i];a2[i]=a2[k];a2[k]=temp;
}
}
}
}
Class TestOverLoad {
Public static void main(String args[])
{
int a[]={10,55,100,35,87,90,100,16};
Sortlnt_1 newlnt1=(4);
Newlnt1. SortInt(a. length, a);//调用SortInt_1类的方法
System. out. println("升序排列的数据");
For(int i=0;i<8;i++)
System. out. print(a[i]+" ");
system. out. println();
SortInt_2 newInt2=new sortint_2(); //创建类SortInt_2的对象
(5);
System. out. println("降序排列的数据: ");
For(int i=0;i<8;i++)
System. out. print(a[i]+" ");
}
}
第14题:
A.20
B.21
C.22
D.23
第15题:
下列程序的运行结果为【 】。
include<iostream.h>
void main(void)
{int i=10;
switch(i)
{ case 9:i=i+1;
case 10:i=i+1;
case 11:i=i+1;
default:i=i+1;
}
cout<<i<<endl;
}
第16题:
有以下程序
main( )
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++) p[i]=i+1;
printf("%d \n",a[1][2]);
}
程序运行后的输出结果是
A.3
B.6
C.9
D.2
第17题:
以下程序运行后输入:3,abcde<回车>,则输出结果是【 】
include <string.h>
move(char *str, int n)
{ char temp; int i;
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-1];
str[0]=temp;
}
main( )
{ char s[50]; int n, i, z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1; i<=n; i++) move(s, z);
printf("%s\n",s);
}
第18题:
以下能够正确计算n!的程序是
A.Privas Sub Command1_Click() n=5:x=1 Do x=x*i i=i+1 Loop While i<n Print x End Sub
B.Private Sub Command1_Click() n=5:x=1:i=1 Do x=x*i i=i+1 Loop While i<n Print x End Sub
C.Private Sub Command1_Click() n=5:x=1:i=1 Do x=x*i i=i+1 Loop while i<=n Print x End Sub
D.Private Sub Command1_Click() n=5:x=1:i=1 Do x=x*i i=i+1 Loop While i>n Print x End Sub
第19题:
下列程序的输出结果是______。 main() { int i,k,a[10],p[3]; k=5; for (i=0;i<10;i++) a[i]=i for (i=0;i<3;i++) p[i]=a[i*(i+1)]; for (i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); }
A.20
B.21
C.22
D.23
第20题:
下面程序的结果是( )。 i=l j=0 Do j=i+1 i=i+1 Loop Until i<5
A.0
B.4
C.1
D.5
第21题:
下列各C++程序段中,不包含复合语句的选项为( )。
A.{x=y+z;}
B.for(i=1;k<0;i++) if(i%3==1) cout<<i<<endl;
C.while(i<10){cout<<i<<endl;i++;}
D.if(i<10){i=i+1;}
第22题:
以下与k=i++完全等价的表达式是()
第23题:
i=i+1,k=i
k=i,i=i+1
k=++i
k+=i+1
第24题:
you!
Howareyou!
areyou!
are you!