问题 选择题

如图是张莉同学设计的一种食物保存方法.把食物充分加热后冷凉,放在盆A中,用盆B倒扣上,再在盆A中加入适量清水,食物可保存2~3天.下列叙述不合理的是(  )

A.对食物加热的目的是杀死食物中的微生物

B.该保存方法和冰箱贮存食物的原理相同

C.加清水主要是为了阻止空气中微生物的进入

D.引起食物腐败的原因是微生物的大量繁殖

答案

防止食品腐败的原理都是杀死或抑制细菌、真菌的生长和繁殖.

A、由图保存方法先对食物加热杀死食物中的微生物后阻止空气及空气中微生物的进入来进行防腐;而冰箱贮存食物是利用低温来抑制微生物的生长和大量繁殖的方法防腐.此说法正确.

B、由图保存方法先对食物加热杀死食物中的微生物后阻止空气及空气中微生物的进入来进行防腐;而冰箱贮存食物是利用低温来抑制微生物的生长和大量繁殖的方法防腐,两者原理不同,因此此说法错误,故该项符合题意;

C、由图我们可以看出清水将B盆内进行了封闭,阻止空气及空气中微生物的进入,有利防腐.故不符合题意;

D、我们知道由各种细菌、真菌等微生物,接触到食物,并在依附其上利用食物的养分,生长与大量繁殖.期间会产生很多的生长代谢产物,产生各种各样酸、臭等味.因此食物腐败变质是由于微生物的生长和大量繁殖而引起的.故不符合题意;

故选:B.

问答题

【说明】 C++语言本身不提供对数组下标越界的判断。为了解决这一问题,在程序6中定义了相应的类模板,使得对厂任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息。 #include<iostream.h> template <class T> class Array; template <class T> class ArrayBody { friend (1) T* tpBody; int iRows, iColumns, iCurrentRow; ArrayBody (int iRsz, int iCsz) { tpBody = (2) iRows = iRsz; iColumns =iCsz; iCurrentRow =-1; } public: T& operator[] (int j) { bool row_error, column_error; row_error=column_error=false; try{ if (iCurrentRow < 0 || iCurrentRow >=iRows) row_error=true; if (j < 0 || j >=iColumns) column_error=true; if ( row_error==true || column_error == true) (3) } catch (char) { if (row_error==true) cerr << "行下标越界[" << iCurrentRow << "] "; if (column_error== true ) cerr << "列下标越界[" <<j << "]"; cout << "\n"; } return tpBody[iCurrentRow * iColumns +j]; }; ~ArrayBody ( ) { delete[] tpBody; } }; template <class T> class Array { ArrayBody<T> tBody; public: ArrayBody<T> & operator[] (int i) { (4) return tBody; } Array (int iRsz, int iCsz) : (5) {} }; void main() { Array<int>a1(10,20); Array<double>a2(3,5); int b1; double b2; b1=a1[-5][10]; //有越界提示:行下标越界[-5] b1=a1[10][15]; //有越界提示:行下标越界[10] b1=a1[1][4]; //没有越界提示 b2=a2[2][6]; //有越界提示:列下标越界[6] b2=s2[10][20]; //有越界提示:行下标越界[10]列下标越界[20] b2=a2[1][4]; //没有越界提示 }

选择题