化学工程

化合物A的分子式为C4H6O2。它不溶于NaOH溶液,与碳酸钠无作用,可使溴水褪色。它有类似乙酸乙酯的香味。A与NaOH水溶液共热后生成乙酸钠和乙醛。另一种化合物B的分子式与A相同。B不溶于NaOH溶液,与碳酸钠无作用,可使溴水褪色,且有类似乙酸乙酯的香味。但B与NaOH水溶液共热后生成甲醇和一种羧酸钠盐。此钠盐用硫酸中和后蒸馏出的有机物可使溴水褪色。试写出化合物A,B的结构。

题目

化合物A的分子式为C4H6O2。它不溶于NaOH溶液,与碳酸钠无作用,可使溴水褪色。它有类似乙酸乙酯的香味。A与NaOH水溶液共热后生成乙酸钠和乙醛。另一种化合物B的分子式与A相同。B不溶于NaOH溶液,与碳酸钠无作用,可使溴水褪色,且有类似乙酸乙酯的香味。但B与NaOH水溶液共热后生成甲醇和一种羧酸钠盐。此钠盐用硫酸中和后蒸馏出的有机物可使溴水褪色。试写出化合物A,B的结构。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

(13)单击命令按钮时,下列程度的执行结果是 Private Sub Command1_Click() Dim a As Integer,b As Integer,c As Integer a=2:b=4:c=6 Call S2(a,b) Print"a=";a;"b=";b;"c=";c; End Sub Private Sub S1(x As Integer,y As Integer) Dim c As Integer x=2*x:y=y+2:e=x+y End Sub Sub S2(x As Integer,By Val y As Integer) Dim e As Integer x=2*x:y=y+2:e=x+y End Sub A.a=4 b=6 c=6 B.a=8 b=6 c=6 a=4 b=6 c=6 a=8 b=6 c=6 C.a=4 b=6 c=6 D.a=8 b=6 c=6 a=8 b=6 c=6 a=4 b=6 c=6


正确答案:C
【解析】在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变;否则表示是“传地址”参数,参数值会被调用的子过程改变。
题中S1过程的参数是“传地址”,因此调用后a、b、c的值都改变了,分别为4、6、6;S2过程的参数中a是“传地址”参数,b是“传值”参数,因此调用后a值改变,b值不变,因为。是过程变量,所以也没有变化,因此输出的值为8、6、6。

第2题:

有如下SUB过程:

Sub s(x As Single,y As Single)

t=x

x=t / y

y=t Mod y

End Sub

在窗体上添加一个命令按钮,然后编写如下事件过程:

Private Sub Form_Click()

Dim a As Single

Dim b As Single

a=5

b=4

s a,b

Print a,b

End Sub

则程序运行后,单击命令按钮,输出的结果为【 】 。


正确答案:1.251
1.25,1 解析:调用s过程,传入"a=5,b=4"。t=5 , x=5/4, 故x=1.25;y=5%4,故y=1。返回并输出(1.25,1)

第3题:

有以下程序: Sub subP(b()As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Command1_Click() Dim a(1 To 4)As Integer a(i)=5 a(2)=6 a(3)=7 a(4)=8 subP a() For i=1 To 4 Print a(i) Next i End Sub 运行上面的程序,单击命令按钮,输出结果为______。

A. 2 4 6 8

B.5 6 7 8

C.10 12 14 6

D.出错


正确答案:A
解析:过程SubP的参数b()是按地址传递的(ByRef,数组的传递方式),而subP过程用语句subP a()调用后,形参b()的值为b(1)=2,b(2)=4,b(3)=6,b(4)=8,则实参a()的值亦为以上值。

第4题:

下面程序的输出结果是( )。 #include"stdio.h" int sub(int m) { static a=4; a+=m; return a; } void main() { int i=2,j=1,k; k=sub(i); k=sub(j); printf("%d",k); }

A.6

B.7

C.8

D.9


正确答案:B
解析:在函数sub()的函数体中定义了一个静态存储变量a,a的值在函数调用完毕返回主函数后仍存在。第一次调用sub(i),a=a+m=4+2=6,返回值为6。第二次调用sub(j),a=a+m=6+1=7,返回值为7,最后输出k的值为7。

第5题:

阅读如下程序, a = 1: b = 2: plus S, a, b: Print S:不能使其输出结果为3的plus过程为( )。

A、Sub plus(sum, a , b ): sum = a + b: End Sub

B、Sub plus(ByVal sum , a , b ): sum = a + b: End Sub

C、Sub plus(sum , ByVal a, ByVal b ): sum = a + b: End Sub

D、Sub plus(sum , ByRef a , ByRef b ): sum = a + b: End Sub


参考答案:B

第6题:

阅读程序: Sub p( b () As Integer)For i =1To 4 b(i) = 2(iNext i End Sub Private Sub Command1_Click()Dim a (1 To 4) As Integer a(1)=5 a(2)=6 a(3)=7 a(4)=8 call p (a) For i=1 To 4 Print a(i) Next iEnd Sub运行上面的程序,单击命令按钮,输出结果为。


正确答案:2 4 6 8
【解析】本题综合考查Sub过程的建立与调用以及数组的赋值。P过程为参数b()赋值,赋值方法为b()中的元素值等于其下标的2倍。在事件过程中,数组a(1 to 4)先被逐一赋值,然后以传地址的方式被p过程调用。在调用中,a(i)被重新按照p过程的赋值方式(即元素值等于对应下标值的2倍)赋值。由于是以传地址的方式传送a(1 to 4),故在调用完p过程后,a(1 to 4),故在调用完p过程后,a(1 to 4)中的元素值将保留,故空白处填:2 4 6 8。

第7题:

运行以下程序后,输出结果为_____________。 Private Sub Command1_Click() a=1:b=2:c=3 Call test(a,b+3,(c)) Print "main:";a;b;c End Sub Private Function test(p,m,n) p=p+1:m=m+1:n=n+1 Print "sub:";p;m;n End Function

:A. sub:2 6 4 main:1 2 3

B. sub:2 6 4 main:2 2 3

C. sub:2 6 4 main:2 6 4

D. sub:2 6 4 main:1 6 4


参考答案:B

第8题:

有以下程序: Sub subP(b()As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Command1_Click() Dim a(1 To 4)As Integer a(1)=5 a(2)=6 a(3)=7 a(4)=8 subPa() For i=1 To 4 Print a(i) Next i End Sub 运行上面的程序,单击命令按钮,输出结果为( )

A.2 4 6 8

B.5 6 7 8

C.10 12 14 16

D.出错


正确答案:A

第9题:

在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序: Public x As Integer Private Sub Command1_Click() x=10 Call s1 Call s2 MSgBox x End Sub Private Sub s1() x=x+20 End Sub Private Sub s2() Dim x As Integer x=X+20 End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为______。

A.10

B.30

C.40

D.50


正确答案:B
解析:本题使用Call关键字调用子过程s1,s2。x=10在调用子过程s1后,x=30,但由于在s1中直接使用变量,所以该值的作用范围是局部的,即只限于s1子过程中,没有传回。在调用s2时,由于s2使用Dim...As关键字定义x,所以其值是模块范围的。故在消息框中输出的值,是从子过程s2传回的值。

第10题:

在窗体中添加一个命令按钮,编写如下程序: Private Sub Subl(p,m,n) p=p+1:m=m+1:n=n+1 Print"subl:";p;m;n End Sub Private Sub Command1_Click() al=1:b=2:c1=3 Call Subl(a,b1+3,c1) Print"Main:";a1;b1;c1 End Sub 程序运行后,输出结果为

A.Sub:2 6 4 Main:2 6 4

B.Sub:2 6 4 Main:2 6 4

C.Sub:2 6 4 Main:1 2 3

D.Sub:2 6 4 Main:2 2 3


正确答案:D
解析:考查考生对参数传递的掌握情况。
  [解题要点] 这是在实现子过程被调用时参数虚实结合的问题。a1为变量按址传送,b1+3和c1为表达式按值传送。
  [错解分析] 参数的传值方式和传址方式的区别。
  [考点链接] 函数调用和参数传递。

更多相关问题