下列說法正確的是()。
A.乙烯和溴發(fā)生加成反應(yīng)的產(chǎn)物為溴乙烯B.分子式*C7H16且主鏈上有5個(gè)碳原子的烷烴共有4種C.烷烴的通式為CnH2n+2,隨n值增大碳元素的質(zhì)量分?jǐn)?shù)逐漸增大D.1mol苯恰好與3mol氫氣完全加成,說明一個(gè)苯分子中有三個(gè)碳碳雙鍵
相關(guān)標(biāo)簽: 分子式
相關(guān)問題推薦
-
某羧酸酯的分子式為C18H26O5,1mol該酯完全水解可得到1mol羧酸和2mol乙醇,該羧酸的分子式為()
A、C14H18O5
B、C14H16O4
C、C14H22O5
D、C14H10O5
-
某烴在常溫下是液體,常用作油漆的溶劑.為測定該烴的分子式,將0.1mol該烴在氧氣中完全燃燒,得到的CO2在標(biāo)準(zhǔn)狀況下的體積為13.44L,得到水的質(zhì)量為5.4g,請寫出該烴的分子式.若該烴不能使溴的四氯化碳溶液和酸性高錳酸鉀溶液退色,試推測該烴的名稱并寫出其結(jié)構(gòu)簡式.
-
甲苯的分子式是什么?
-
下列說法不正確的是()
A、苯是芳香烴
B、苯環(huán)上和兩個(gè)氫原子被甲基取代后有兩種結(jié)構(gòu)
C、苯的分子式是C6H6n
D、苯難溶于水
E、苯的分子式是C2H2n
-
●試題五
閱讀下列程序說明和C代碼,將應(yīng)填入(n)處的字句寫在答卷的對應(yīng)欄內(nèi)。
【程序5說明】
下列文法可用來描述化學(xué)分子式的書寫規(guī)則(例如,Al2(CO3)3、Cu(OH)2):
λ→β\βλβ→δ\δn
δ→ξ\ξθ\(λ)
其中:λ是一個(gè)分子式;δ或是一個(gè)元素,或是一個(gè)帶括號(hào)的(子)分子式,元素或是一個(gè)大寫字母(記為ξ),或是一個(gè)大寫字母和一個(gè)小寫字母(記為ξθ);β或是一個(gè)δ,或是在δ之后接上一個(gè)整數(shù)n,δn表示β有n個(gè)δ的元素或(子)分子式。一個(gè)完整的分子式由若干個(gè)β組成。
當(dāng)然一個(gè)正確的分子式除符合上述文法規(guī)則外,還應(yīng)滿足分子式本身的語義要求。
下面的程序輸入分子式,按上述文法分析分子式,并計(jì)算出該分子式的分子量。例如:元素H的原子量是1,元素O的原子量是16。輸入分子式H2O,程序計(jì)算出它的分子量為18(1×2+16)。程序中各元素的名及它的原子量從文件atom.dat中讀入。
【程序5】
#include
#include
#define MAXN 300
#define GMLEN 30
struct elem{char name[];/*元素名*/
doublev;/*原子量*/
}nTbl[MAXN];
char cmStr[GMLEN],*pos;
int c;FILE*fp;
double factor();
double atom()/*處理文法符號(hào)δ*/
{char w[3];int i;double num;
while((c=*pos++)==′||c==′\t′);/*略過空白字符*/
if(c==′\n′)return 0.0;
if(c>=′A′ && C<=′Z′){/*將元素名存入W*/
w[i=0]=c;c=*pos++;
if(c>=′a ′&& c<=′z′)w[++i]=c;else pos--;
w[++i]=′\0′;
for(i=0;nTbl[i].v>0.0;i++)
if(strcmp(w,nTb[i].name)==0)returnnTbl[i].v;
printf("\n元素表中沒有所輸入的元素:\t%s\n",w);retur n-1.0;
}elseif(c==′(′){
if((num= (1) )<0.0)return-1.0;/*包括可能為空的情況*/
if(*pos++!=′)′){printf("分子式中括號(hào)不匹配!/n");return-1.0;}
returnnum;
}
printf("分子式中存在非法字符:\t%c\n",c);
return-1.0;
}
double mAtom()/*處理文法符號(hào)β*/
{double num;int n=1;
if((num= (2) )<0.0)return-1.0;
c=*pos++;
if(c>=′0′&&c<=′9′){
n=0;while(c>=0&&c<=′9′)
{n= (3) ;
c=*poss++;
}
}
pos--;
return num*n;
}
double factor()/*處理文法符號(hào)λ*/
{double num=0.0,d;
if((num=mAtom())<0.0)return-1.0;
while(*pos>=′A′&&*pos<=′Z′||*pos==′(′){
if((d= (4) )<0.0)return-1.0;
(5) ;
}return num;
}
void main()
{char fname[]="atom.dat";/*元素名及其原子量文件*/
int i;double num;
if((fp=fopen(fname,"r"))==NULL){/*以讀方式打開正文文件*/
printf("Can not open%s file.\n",fname);return/*程序非正常結(jié)束*/
}
i=0;
while(i
i++;
fclose(fp);nTbl[i].v=-1.0;
while (1) {/*輸入分子式和計(jì)算分子量循環(huán),直至輸入空行結(jié)束*/
printf("\n輸入分子式!(空行結(jié)束)\n");gets(cmStr);
pos=cmStr;
if(cmStr[0]==′\0′)break;
if((num=fator())>0.0)
if(*pos!=′\0′)printf("分子式不完整?。躰");
else printf("分子式的分子量為%f\n",num);
}
}