2、下面程序的功能是通过动态分配内存函数malloc产生动态数组,程序的某次运行结果如下: Enter array size:8↙ array[0]=0 array[1]=10 array[2]=20 array[3]=30 array[4]=40 array[5]=50 array[6]=60 array[7]=70 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。include <stdio.h> include <stdlib.h> int main() { int *p,n,i; printf("Enter array size:"); scanf("%d",&n); __________________; for(i=0;i<n;i++) { ____________; } for(i=0;i<n;i++) { _______________; } free(p); retu
A.第8行: p=(int *)malloc(n*sizeof(int)); 第12行: *(p+i)=i*10 第16行: printf("array[%d]=%d\n",i,*(p+i))
B.第8行: p=(int *)(n*malloc(sizeof(int*))) 第12行: *p+i=i*10 第16行: printf("array[%d]=%d\n",i,*(p+i))
C.第8行: p=(int *)malloc(n*sizeof(int)); 第12行: *p+i=i*10 第16行: printf("array[i]=%d\n",i,*p+i)
D.第8行: p=(int)malloc(n*sizeof(int *)); 第12行: *(p+i)=i*10 第16行: printf("array[i]=%d\n",i,*(p+i))
时间:2024-04-24 15:24:06
相似题目
-
内存虚拟化是指()通过维护物理内存和虚拟机内存的映射方式,为虚拟机分配给的内存。
A . VMQ
B . VMM
C . VMP
D . VMS
-
动态重定位是程序执行期间每次访问内存之前进行重定位,这种变换是靠()实现的。
-
什么是动态链接?用何种内存分配方法可以实现这种链接?
-
操作系统功能中存储管理的主要任务是内存分配、内存保护、地址应慎和内存扩充。
A . 正确
B . 错误
-
内存的分配与回收是内存管理的主要功能之一。
A . 正确
B . 错误
-
作业调度,其主要功能是根据一定的算法,从输人的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程,如输人、输出进程,最后把它们的程序和数据调人内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。
A . 正确
B . 错误
-
执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。()
A . 正确
B . 错误
-
假设堆内存分配均成功,则下面程序段完全正确的是()。
A . int*p=newint(3);cout<;<;*p;deletep;
B . int*p=newint[5]={1,2,3,4,5};for(inti=0;i<;5;i++)cout<;<;p;delete[]p;
C . int*p=newint[5];for(inti=0;i<;5;i++,p++){*p=i;cout<;<;*p;}delete[]p;
D . 以上程序段均正确
-
若定义了以下函数:void f(……){……*p=(double*)malloc(10*sizeof(double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是( )。
-
动态存储分配函数malloc()不需要包含任何文件可以直接使用。
-
若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数123的语句为().
-
在动态分区式内存分配算法中,倾向于优先使用低地址部分空闲区的算法是首次适应算法;能使内存空间中空闲区分布较均匀的算法是循环首次()
-
5、变量和函数在程序中使用之前必须声明,其声明的本质就通过编译系统给所声明的变量和函数分配存储空间。
-
对指定类型对象动态分配内存并返回该类型的指针的是使用【】运算符来完成的。
对指定类型对象动态分配内存并返回该类型的指针的是使用【 】运算符来完成的。
-
存储器管理功能主要包括:内存分配、地址映射、内存保护和内存扩充。其中内存扩充的功能是()
A.管理内存各级缓存大小的功能
B.随着存储器硬件技术的发展,管理将来可能安装的更大容量的物理内存
C.连接网络,使用其他计算机空闲的内存运行部分程序
D.采取逻辑上扩充内存的方法,也就是“虚拟存储技术”
-
设某多道程序系统中有用户使用内存1000M,打印机1台。系统采用可变分区动态分配算法管理内存,而对打印机采用静态分配。假设输入输出操作时间忽略不计,采用最短剩余时间优先的进程调度算法,进程最短剩余时间相同时采用先来先服务的算法,进程调度时机选择在进程执行结束或新进程创建时,现有进程如下:
<img src='https://img2.soutiyun.com/ask/uploadfile/11277001-11280000/4fc3fa773ba3ff1b4a790c7f86a536e7.jpg' />
假设系统优先分配内存低地址区域,且不允许移动,那么,求:
(1)给出进程调度算法选中进程的次序,并说明理由。
(2)全部进程执行结束所用的时间是多少?
-
下面Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
<img src='https://img2.soutiyun.com/shangxueba/ask/11049001-11052000/11051026/ct_ctjjm_compapp_00189(20092).jpg' />
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code="ex7_3.class" width=800 height=400 >
</applet>
*/
public class ex7_3 extends JApplet {
private JTextField jtf = new JTextField(15);
private JButton Hold = new JButton("Hold"),resume = new JButton("Resume");
private ex7_3th obj7_3th = new ex7_3th();
class ex7_3th extends Thread {
private int cnt = 0;
private boolean bIsHold = false;
public ex7_3th() { start(); }
public void hold() {
bIsHold = true;
}
public synchronized void fauxResume() {
bIsHold = false;
wait();
}
public void run() {
while (true) {
try {
sleep(150);
synchronized(this) {
while (bIsHold)
not i fy ();
}
} catch(InterruptedException ie) {
System.err.println("Interrupted");
}
jtf.setText(cnt);
}
}
public void init() {
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jtf);
Hold.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ae) {
obj7_3th.hold();
}
});
cp.add(Hold);
resume.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e){
obj7_3th.fauxResume();
}
});
cp.add(resume);
public static void main(String[] args) {
ex7_3 obj7_3=new ex7_3();
String str= obi7_3.getClass().toString();
if(str.indexOf("class") != -1)
str= str.substring(6);
JFrame. frm = new JFrame(str);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(O);
}
});
frm.getContentPane().add(obj7_3);
frm.setSize(300, 200);
obj7_3.init();
-
以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
define M 2
define N 4
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
for(i=0;i〈N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=【 】;
}
【 】 =s;
}
main()
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【 】);
printf("%d\n",s);
}
-
下面一段程序要实现的功能是:在内存中从地址source开始有一个长度为100的字符串,测试该字符串中是否存在数字,如有则将DL的第五位置1,否则将该位置0。
BEGIN: MOV CX,100
MOV SI,0
REPEAT: MOV SOURCE[SI]
CMP AL,30H
JB GOON
GMP AL,【 】
JA GOON
OR DL,20H
JMP EXIT
GOON: INC SI
LOOP REPFATI
AND DL,00FH
EXIT:
-
请在程序中2个划线处填入适当的语句,使得下面程序实现功能: 计算并输出下列级数的前n项之和Sn,直到Sn大于q为止,q的值通过形参传入。 Sn = 2/1 + 3/2 + 4/3 + …… + (n+1)/n 例如,若q的值为50.0,则函数值为50.416695。 include
A.<= n++>
B.> n++
C.< n++
D.>= n++
-
7、下面是一个将十进制正整数转换为2进制数的函数定义: void tobinary(int x) { while (x>0) { printf("%1d",x%2); } } 要实现函数的功能,则在空白处应该填写的程序语句是()。
A.x=x/2;
B.x=x/10;
C.x=x%2;
D.x=x%10;
-
4、假设用下面语句申请了一块动态内存,并用指针变量指p向了它,用这块内存保存m*n个整型元素,即作为一个二维动态数组来使用,那么下面哪种通过p访问这个二维动态数组第i行第j列元素的方法是正确的()。 p = (int *) malloc(m*n*sizeof(int)); 或者 p = (int *) calloc(m*n, sizeof(int));
A.p[i*n+j]
B.*(p+i*n+j)
C.p[j*n+i]
D.p[i][j]
E.*p[i*n+j]
F.p+i*n
G.p+i*n+j
-
2、要实现动态联编,必须通过()调用虚函数?
A.对象指针
B.成员名限定
C.对象名
D.派生类名
-
5、动态分配内存的关键字为?
A.Malloc;
B.new;
C.New;
D.molloc;