根据下列资料,回答问题。我国生活能源消费量能源品种1990199520032004200520062007合计(万吨标准煤)157991574619827.221280.723449.525387.926789.7煤炭(万吨)16700135308174.78173.28739.08386.38100.6煤油(万吨)1056456.427.426.022.719.5液化石油气(万吨)1595341292.71350.51329.01456.21607.9天然气(亿立方米)191956.967.279.4102.6133.4煤气(亿立方米)2957131.1138.1145.0156.4160.5热力(万百万千焦)89721263733666.041394.951744.056948.457688.7电力(亿千瓦小时)48110062238.02464.52825.03251.63622.7 2007年我国的生活能源消耗量约为1990年的多少倍( )
A. 1.7
B. 1.6
C. 1.5
D. 0.7
查看答案
[说明] 从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中; 请编写程序,其功能是:以行为单位把字符串中的所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数writedat()把结果XX输出到文件OUT5.DAT中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 [函数] # include "stdio.h" # include "string.h" # include "conio.h" # include "ctype.h" # include "mem.h" unsigned char xx[50][80] ; int maxline=0; int readdat (void) ; void writedat (void) ; /*将题目要求的字符串中所有小写字母。左边的字符串内容移到该串的右边存放,即将串中*/ /*“最后”一个字母o左右两侧的内容互换*/ void StrOR (void) int i; char *p1, *p2 , t[80]; for (i=0;i<maxline; i++) p2=xx [i] ; while (*p2) /*找到最后一个,’o’ */ if ( (1) ) p1=p2 p2++; strcat (t,p1+1) ; strcat (t,xx [i]) ; p1=xx[i]; p2=t ; while(*p2) /*删符’o’*/ jf( (2) )( (3) )=*p2; p2++; (4) ; void main () clrscr () ; if (readdat () printf("Can’t open the file IN.DAT!\n"); return; StrOR () ; writedat () ; int readdat (void) FILE *fp; int i=0; char *p; if ((fp= fopen ("in.dat" , "r" 》 ==NULL) return 1; while (fgets (xx [i] , 80, fp)! =NULL) p=strchr (xx [i], ’\n’) ; if (p) i++; maxline= (5) ; fclose (fp) ; return 0; void writedat (void) FILE *fp; int i; fp=fopen ("in.dat " , "w") ; for (i=0; i<maxline; i++) printf("%s\n",xx[i]); fprintf(fp, "%s\n",xx[i]) ; fclose (fp) ;
[说明] 阅读下面程序,指出其中代码的错误及原因。 [C++程序] 01 #include <iostream.h> 02 class employee 03 private: 04 short age; 05 float salary ; 06 friend void funcl () ; 07 protected: 08 char* name; 09 public: 10 employee (char* nn, short ag, float salr) ; 11 void print () const ; 12 ~employee () ; 13 ; 14 manage:public employee 15 char* department; 16 //... 17 public: 18 void print () ; 19 void setEmployee () ; 20 //... 21 22 //... 23 void manage::print () 24 25 cout <<"name: " name<<endl; 26 cout<<"salary: "<<salary<<endl; //-- (1) 27 28 void manager::setEmployee(char* dept) 29 30 employee::employee(char* nm,short ag,float salr) ; //-- (2) //-- (3) 31 department=dept; 32 33 void funcl () 34 35 cout <<"department:"<<department 11-- (4) 36 <<",name: "<<name<<endl; 37 //... 38 39 void main () 40 41 employee aemp; //-- (5) 42 manager amngr (" Kng " , 35, 578. 9); 43 //... 44
[说明] 函数int psort(int a[],int n)实现将含n个整数的数组a[]的不同元素按从小到大顺序存于数组a[]中。实现方法是从未确定的元素列中找到最小元素并将a[]的第i最小元素交换至a[i]位置。如该最小元素比已确定的最后一个最小元素大,则将它接在已确定的元素序列的后面; 否则,忽视该元素。 [函数] int psort (int a[] ,int n) int i, j ,k,p; for(i=0,k=0ji< (1) ;i++) for(j=i+1, (2) ;j<n;j++) if (a[p]>a[j]) p=j; if (p!=i) t=a[p] a[p]=a[i]; a[i]=t; if( (3) ) k++; else if ( (4) <a [i]) (5) =a[i]; return k; int a[]=5,7,5,6,4,3,4,6,7; main() int k,n; for (k=0 ; k<(sizeof a) /sizeof (int); k++) printf (" %5d" ,a [k]) ; printf ("\n\n") ; n=psort (a, (sizeof (a)) /sizeof (int)); printf("%5d",a[k]); printf ("\n\n") ;
[函数2.1说明] L为一个带头结点的循环链表。函数deletenode(LinkList L,int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。 [函数2.1] LinkList deletenode(LinkList L, int c) LinkList Lc,p,pre; pre=L; p= (1) ; Lc=(LinkList)malloc(sizeof(ListNode)); Lc->next=Lc; while(p!=L) if(p->data>c) (2) ; (3) ; Lc->next=p; p=pre->next; else pre=p; p=pre->next; return Lc; [函数2.2说明] 递归函数dec_to_k_2(int n,int k)的功能是将十进制正整数n转换成k(2≤k≤9)进制数,并打印。 [函数2.2] dec_to_k_2 (int n,int k) //将十进制正整数n转换成k(2≤k≤9)进制数。 if(n!=0) dec_to_k_2( (4) ,k); printf("%d", (5) );