B、1 3 5
C、2 4 6
D、6 5 4
第1题
A.1 5 9
B.1 4 7
C.3 5 7
D.3 6 9
第2题
第3题
A.1 5 9
B.1 4 7
C.3 5 7
D.3 6 9
第4题
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是( )。
for(i=0; i<3; i++)
printf(" %d" ,x[i][2-i]);
A.1 5 9
B.1 4 7
C.3 5 7
D.3 6 9
第5题
B、147
C、357
D、369
第6题
A、1 5 9
B、1 4 7
C、3 5 7
D、3 6 9
第7题
B.036
C.048
D.258
第8题
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。
for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A. 159
B. 147
C. 357
D. 369
第9题
阅读下列说明和C代码,回答问题 1 至问题3,将解答写在答题纸的对应栏内。
【说明】
某应用中需要对100000 个整数元素进行排序,每个元素的取值在 0~5 之间。排序算法的基本思想是:对每一个元素 x,确定小于等于 x的元素个数(记为m),将 x放在输出元素序列的第m 个位置。对于元素值重复的情况,依次放入第 m-l、m-2、…个位置。例如,如果元素值小于等于4 的元素个数有 10 个,其中元素值等于 4 的元素个数有3个,则 4 应该在输出元素序列的第10 个位置、第 9 个位置和第8 个位置上。
算法具体的步骤为:
步骤1:统计每个元素值的个数。
步骤2:统计小于等于每个元素值的个数。
步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。
【C代码】
下面是该排序算法的C语言实现。
(1)常量和变量说明
R:常量,定义元素取值范围中的取值个数,如上述应用中 R值应取6i:循环变量
n:待排序元素个数
a:输入数组,长度为n
b:输出数组,长度为n
c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。
(2)函数sort
1 void sort(int n,int a[ ],intb[ ]){
2 int c[R],i;
3 for (i=0;i< (1) ;i++){
4 c[i]=0;
5 }
6 for(i=0;i<n;i++){
7 c[a[i]] = (2) ;
8 }
9 for(i=1;i<R;i++){
10 c[i]= (3) ;
11 }
12 for(i=0;i<n;i++){
13 b[c[a[i]]-1]= (4) ;
14 c[a[i]]=c[a[i] ]-1;
15 }
16 }
【问题1】(8 分)
根据说明和C代码,填充 C代码中的空缺(1)~(4)。
【问题2】(4 分)
根据C代码,函数的时间复杂度和空间复杂度分别为 (5) 和 (6) (用 O符号
表示)。
【问题3】(3 分)
根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过 100 字);
若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。
从下列的2 道试题(试题五和试题六)中任选 1 道解答。
如果解答的试题数超过 道,则题号小的 道解答有效。
第10题
某C程序定义了一个全局变量int data[256],其并创建有两类进程Ai(0<=i<=5)、bj(0<=j<=5)、分别循环式地对data数组元素依次进行设置(写)和提取(读)操作。具体而言,a类进程循环式地依次对data数组元素进行设置操作,也即设置data[0]、设置data[1]、设置data[2]、.......、设置data[255]、设置data[0]、设置data[1]、.......、设置data[255]、设置data[0]、设置data[1]、.......;b类进程循环式地依次对data数组元素进行提取操作,也即提取data[0]、提取data[1]、提取data[2]、.......、提取data[255]、提取data[0]、提取data[1]、.......、提取data[255]、提取data[0]、提取data[1]、.......;一个数据元素被写入一次后,必须被取走后该元素才可被再次写操作,同时,a类进程写入的数据必须要被某个b类进程取走且仅需取走一次。在设计和实现这两类进程对data数据共享访问同步问题的正确最高效解决方案中,关于临界资源及对应临界区操作的分析,正确无误的说法是(> A、设立进程Ai共享的data数组下标变量x,设立进程Bj共享的data数组下标变量y,并将x和y作为这两类进程的临界资源,并定义一个互斥信号量对其访问操作进行保护
B、全局变量data、i和j都是临界资源
C、全局变量data作为上述两类进程的临界资源,且把它们对data的操作都封装在相同的互斥信号量mutex保护的临界区中
D、设立进程Ai共享的data数组下标变量x,设立进程Bj共享的data数组下标变量y,并将x作为Ai类进程之间的临界资源(故而定义互斥信号量mutexX实现Ai类进程对x的互斥访问)、y作为Bj类进程之间的临界资源(故而定义互斥信号量mutexY实现Bj类进程对y的互斥访问)
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!