有以下程序 #include <stdio.h> void fun(int *a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/ {int t,i,j; for(i=0;i<n-1;j++) for(j=i+1;j<n;j++) if(a[i]<a[j]) { t=a[i];a[i]:a[j];a[j]=t;} } main() {int c[10]={1,2,3,4,5,6,7,8,9,0},i fun(c+4
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
阅读下面程序,则程序段的功能是
#include "stdio.h"
main()
{ int c[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{ t=c[i];j=i-1;
while(j>=0 && t>c[j])
{ c[j+1]=c[j];j--;}
c[j+1]=t;}
for(i=0;i<7;i++)
printf("%d ",c[i]);
putchar(′\n′);}
A.对数组元素的升序排列
B.对数组元素的降序排列
C.对数组元素的倒序排列
D.对数组元素的随机排列
下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
voidsort(int a[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{ t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{ int a [10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7) ;
for(i:0;i<10;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是( )。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
void sort(inta[],int n)
{int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
A.对数组a进行插入排序(升序)
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序(升序)
D.对数组a进行选择排序(降序)
19秋学期高级语言程序设计基础在线平时作业1试卷总分:100 得分:100一、单选题 (共 20 道试题,共 100 分)1.下面对typedef的叙述中不正确的是( )。A.用typedef可以定义新的数据类型B.用typedef只是将已存在的类型用一个新的标识符来代表C.用typedef不能定义变量名D.使用typedef有利于程序的通用和移植答案:A2.下面程序( )。(每行程序前的数字为行号) 1 main 2 3 float a10=0.0; 4 int i; 5 for(i=0;i3;i+) scanf(%d,&ai); 6 for(i=1;iaj) aj+1=aj;j-; aj+1=t; 则该程序段的功能是( )。A.对数组a进行插入排序(升序)B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序)D.对数组a进行选择排序(降序)答案:B16.若有说明:int a4=0,0;则下面不正确的叙述是( )。A.数组a中的每个元素都可得到初值0B.二维数组a的第1维大小为1C.因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D.只有数组元素a00和a01可得到初值0,其余元素均得不到初值0答案:D17.C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是( )。A.longB.intC.floatD.double答案:B18.若二维数组a有m列,则在aij前的元素个数为( )。A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1答案:B19.下面程序的输出结果为( )。 main( ) int a=1,b=0; switch(a) case 1: switch (b) case 0: printf(*0*); break; case 1: printf(*1*); break; case 2: printf(*2*); break; A.*0*B.*0*2*C.*0*1*2*D.有语法错误答案:B20.C语言程序从main()函数开始执行,所以这个函数要写在( )。A.程序文件的最后B.程序文件的开始C.程序文件的任何位置D.它所调用的函数的前面答案:C
A.对数组a进行插入排序(升序)
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序(升序)
D.对数组a进行选择排序(降序)
以下程序段给数组所有的元素输入数据,请选择正确答案填入。( ) #inelude<stdio.h> main() {int a[10],i=0; while(i<10)scanf("%d",______); ┇ }
A.a+(i++)
B.&a[i+1]
C.a+i
D.&a[i++]
以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序: float sort(int a[], int n) { int i, j, t; for(i=0; i<n-1; i++) for(j=i+1; j<n; j++) if(a[i]<a[j]){t=a[i]; a[i]=a[j]; a[j]=t; } } main() { int aa[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10), i; sort(&aa[3], 5); for(i=0; i<10; i++)printf("% d", aa[i]); printf ("\n"); } 程序运行后的输出结果是______。
A.1, 2, 3, 4, 5, 6, 7, 8, 9, 10
B.10, 9, 8, 7, 6, 5, 4, 3, 2, 1
C.1, 2, 3, 8, 7, 6, 5, 4, 9, 10
D.1, 2, 10, 9, 8, 7, 6, 5, 4, 3
插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。
class InsertSort{
public:
InsertSort(int* a0,int n0):a(a0),n(n0){}//参数a0是某数组首地址,n是数组元素个数
void sort()
{//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1]…a[n-1]
for(int i=1;i<n;++i){
int t=a[i];
int j;
for(【 】;j>0;--j){
if(t>=a[j-1])break;
a[j]=a[j-1];}
a[j]==t;}}
protected:
int*a,n;//指针a用于存放数组首地址,n用于存放数组元素个数
};
以下程序段给数组所有的元素输入数据,请选择正确答案填入。#include <stdio.h>main(){ int a[10],j=0; while(i<10)scanf("%d", ______ ); : :}
A.a+(i++)
B.&a[i+1]
C.a+ i
D.&a[++i]