output(0); }
return 0; }
int days(struct date day) {
static int day_tab[2][13]=
{{0,31,28,31,30,31,30,31,31,30,31,30,31,}, /*平均每月的天数*/ {0,31,29,31,30,31,30,31,31,30,31,30,31,},}; int i,lp;
lp=(day.year%4==0 && day.year0!=0 || day.year@0==0); /*为闰年还是平年,lp=0为平年,非0为闰年*/
for(i=1;i void input(struct date &day) { ifstream infile(\ infile.read((char*)(&day), sizeof(day)); infile.close(); } void output(int i) { ofstream myfile; myfile.open(\ myfile< ---------------------- for(year=1990;year } yearday+=days(today); ---------------------- 判定year 第24题 (10.0分) 题号:646 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:下面程序中的函数void ins(int a[], int len,int n); 将n插入到一个包含len个从小到大排好序的整数数组a中,插入 后保证数组的有序性。完成该函数的编写。例如: a) 调用ins(a, 0,3)后,数组a中为3 b) 调用ins(a, 1,2)后,数组a中为2,3 c) 调用ins(a, 2,6)后,数组a中为2,3,6 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 ------------------------------------------------*/ #include void ins(int a[], int len, int n); int main() { int a[20],i,j,k,num; fstream infile,outfile; infile.open(\ outfile.open(\ for (i=0;i<2;i++) { for (j=0;j<10;j++) { infile>>num; ins(a, j, num); for (k=0;k<=j;k++) outfile< infile.close(); outfile.close(); return 0; } void ins(int a[], int len, int n) { /**********Program**********/ /********** End **********/ } 答案: int i; 第25题 (10.0分) 题号:267 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:一个整数数列,它的第一项是0,第二项是1, 以后每项都是前两项之和,编写求前n项之和的函数GetSum(int n)。 -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填写代码。 请勿改动主函数main和其它任何已有内容。 ------------------------------------------------*/ #include void writeinfile( ); /**********Program**********/ /********** End **********/ for (i=len;i>0;i--) { } a[i] = n; if (i>0 && a[i-1]>n) a[i] = a[i-1]; break; else void main() { int n; //数列项数 cout<<\求和的总项数:\ cin>>n; int s = GetSum(n); cout<<\和:\ writeinfile( ); } void writeinfile( ) { int n; ifstream inFile(\ if(!inFile) { cerr<<\无法打开数据文件in.txt。需要核查!\ return ; } inFile>>n; inFile.close(); fstream myfile; myfile.open(\ if(!myfile.is_open()) { cerr<<\无法打开数据文件out.txt。需要核查!\ return ; } myfile< 答案:---------------------- int GetSum(int n) { for(int i=0; i int next = a1 + a2; sum += next; a1 = a2; a2 = next; int a1 = 0, a2 = 1; int sum = a1 + a2; } } return sum; ---------------------- 第26题 (10.0分) 题号:701 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:编写一个函数void changeString(char str[]);, 功能是把其中的大写字母变成小写字母,小写字母变成大写字母, 非字母的字符不作变换。变换结果依旧保存在str数组内。 大写字母的ASCII码值比对应的小写字母的ASCII码值小32, 如'A'的ASCII码值比'a'的ASCII码值小32。 -------------------------------------------------- 注意:仅在标有\和\的注释行之间补充填写代码。 请勿改动主函数main和其它任何已有内容。 ------------------------------------------------*/ #include void writeinfile( ); /**********Program**********/ /********** End **********/ void main(){ char str[50]; cout<<\输入要变换的字符串:\ cin>>str; changeString(str); cout<<\变换结果是:\ writeinfile(); } void writeinfile( ) { ifstream inFile(\ if(!inFile) {