2015年江苏大学885代码题(含答案)
生活随笔
收集整理的這篇文章主要介紹了
2015年江苏大学885代码题(含答案)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2015年江蘇大學885代碼題
- 一、前言
- 二、正文
- 1.第一題
- 2. 第二題
- 3.第三題
一、前言
提示:以下是博主自己寫的代碼,僅供參考,歡迎有興趣的朋友們留言討論呀
二、正文
1.第一題
#include<stdio.h>// 求斐波那契數列第n項 int fab(int n);int main() {int i, s = 0;FILE* fp;// 打開或創建文件if (!(fp = fopen("fab.txt", "a+"))){printf("cannot open the file!\n");return 0;}for (i = 1; i <= 20; i++){s += fab(i);fprintf(fp, "%d ", fab(i));}printf("前20項和為:%d\n", s);// 關閉文件if (fclose(fp)){printf("cannot close file!\n");}return 0; }int fab(int n) {if (n == 1|| n==2){return 1;}if (n > 2){return fab(n - 1) + fab(n - 2);} }運行結果示例:
手寫版:
2. 第二題
#include <stdio.h>// 判斷一個整數的平方(四位數)是否前兩位相等且后兩位相等 int X(int n);int main() {int i;// 4位數,最小是1000(大于32的平方,即1024),最多是9999(小于100的平方,即10000)for (i = 32; i < 100; i++){if (X(i * i)){printf("%d",i*i);}}return 0; }int X(int n) {int aa[4], i;for ( i = 0; i < 4; i++){aa[i] = n % 10;n /= 10;}if ((aa[0]==aa[1])&&(aa[2]==aa[3])){return 1;}else{return 0;} }運行結果示例:
手寫版:
3.第三題
#include<stdio.h> struct {int y, m, d; }D; int c_d();//檢查日期合法性 int c_y();//判斷是否是閏年 void add(int days);//增加days后的日期int main() {int days;while (1){printf("請輸入起始年、月、日及天數:(輸入后按回車)\n");scanf_s("%d%d%d%d", &D.y, &D.m, &D.d, &days);//VS2017if (c_d()){break;}printf("日期不合法,請重新輸入\n");}add(days);if (c_d()){printf("\nenddate=%d年%d月%d日\n", D.y, D.m, D.d);}else{printf("\nerror!\n");//增加days后的日期超出范圍!}main();return 0; }int c_d() {if (D.y <= 0 || D.y >= 10000)//年份:1~9999{return 0;}if (D.m <= 0 || D.m >= 13)//月份:1~12{return 0;}if (D.m == 2 && c_y())//閏年2月:29天{if (D.d <= 0 || D.d >= 30){return 0;}}if (D.m == 2 && !c_y())//一般2月:28天{if (D.d <= 0 || D.d >= 29){return 0;}}switch (D.m) {//如果一個case語句后面沒有加break,則當前條件滿足時,后面的case語句不需要進行判斷就可以繼續執行。所以每次判斷后最好都加上breakcase 1:case 3:case 5:case 7:case 8:case 10:case 12://1、3、5、7、8、10、12月:31天if (D.d <= 0 || D.d >= 32){return 0;}break;case 4:case 6:case 9:case 11://4、6、9、11月:30天if (D.d <= 0 || D.d >= 31){return 0;}break;}return 1; } int c_y() {if ((D.y % 4 == 0 && D.y % 100 != 0) || D.y % 400 == 0)//判斷閏年{return 1;}return 0; } void add(int days) {int a[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };for (int i = 0; i < days; i++){if (c_y()){a[2] = 29;}else{a[2] = 28;}D.d = D.d%a[D.m] + 1;if (D.d == 1)//月份加1{D.m = D.m % 12 + 1;if (D.m == 1)//年份加1{D.y++;}}} }運行結果示例:
手寫版:
→返回總目錄
總結
以上是生活随笔為你收集整理的2015年江苏大学885代码题(含答案)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件工程--牙科诊所--需求分析
- 下一篇: 【WLAN】【测试】IxChariot测