第十一周總結

這個作業屬于那個課程

C語言程序設計II

這個作業要求在哪里

https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3203

我在這個課程的目標是

理解與使用遞歸函數。

參考文獻

?

基礎題

2-1

宏定義“#define DIV(a, b) a/b”,經DIV(x + 5, y - 5) 引用,替換展開后是(A)。?(1分)

A.???? x + 5 / y - 5

B.???? (x + 5 / y – 5)

C.???? (x + 5) / (y - 5)

D.???? (x + 5) / (y - 5);

2-2

定義帶參數的宏“#define JH(a,b,t) t = a; a = b; b = t”,對兩個參數a、b的值進行交換,下列表述中正確的是(B)。?(1分)

A.??? 不定義參數a和b將導致編譯錯誤

B.??? 不定義參數a、b、t將導致編譯錯誤

C.??? 不定義參數t將導致運行錯誤

D.??? 不需要定義參數a、b、t類型

2-3

如果所有的變量按照下面的程序進行定義和聲明,那么在main()函數中所有可用的變量為 (C)。?(2分)

void fun(int x)

{?

??? static int y;

??? ……

??? return;

}

int z;

void main( )

{??

??? int a,b;

??? fun(a);

??? ……

}

A.??? x,y

B.??? x,y,z

C.??? a,b,z

D.??? a,b,x,y,z

2-4

如果一個變量在整個程序運行期間都存在,但是僅在說明它的函數內是可見的,這個變量的存儲類型應該被說明為( A )。?(1分)

A.??? 靜態變量

B.??? 動態變量

C.??? 外部變量

D.??? 內部變量

2-5

下面說法中正確的是(C)。?(1分)

A.??? 若全局變量僅在單個C文件中訪問,則可以將這個變量修改為靜態全局變量,以降低模塊間的耦合度

B.??? 若全局變量僅由單個函數訪問,則可以將這個變量改為該函數的靜態局部變量,以降低模塊間的耦合度

C.??? 設計和使用訪問動態全局變量、靜態全局變量、靜態局部變量的函數時,需要考慮變量生命周期問題

D.??? 靜態全局變量使用過多,可那會導致動態存儲區(堆棧)溢出

2-6

凡是函數中未指定存儲類別的局部變量,其隱含的存儲類型為(A )。?(1分)

A.??? 自動(auto)

B.??? 靜態(static)

C.??? 外部(extern)

D.??? 寄存器(register)

2-7

在一個C源程序文件中,若要定義一個只允許本源文件中所有函數使用的全局變量,則該變量需要使用的存儲類別是 ( D )。?(1分)

A.??? extern

B.??? register

C.??? auto

D.??? static

2-8

將一個函數說明為static后,該函數將 ( B )。(1分)

A.???? 既能被同一源文件中的函數調用,也能被其他源文件中的函數調用

B.???? 只能被同一源文件中的函數調用,不能被其他源文件中的函數調用

C.???? 只能被其他源文件中的函數調用,不能被同一源文件中的函數調用

D.???? 既不能被同一源文件中的函數調用,也不能被其他源文件中的函數調用

?

7-1?漢諾塔問題*?(10?)

漢諾塔是一個源于印度古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤,大梵天命令僧侶把圓盤移到另一根柱子上,并且規定:在小圓盤上不能放大圓盤,每次只能移動一個圓盤。當所有圓盤都移到另一根柱子上時,世界就會毀滅。請編寫程序,輸入漢諾塔圓片的數量,輸出移動漢諾塔的步驟。

輸入格式

圓盤數 起始柱 目的柱 過度柱

輸出格式

移動漢諾塔的步驟
每行顯示一步操作,具體格式為:
盤片號: 起始柱 -> 目的柱
其中盤片號從 1 開始由小到大順序編號。

輸入樣例

3
a c b

輸出樣例

1: a -> c
2: a -> b
1: c -> b
3: a -> c
1: b -> a
2: b -> c
1: a -> c

代碼

#include<stdio.h>
void hanio (int n,char a,char b,char c);
int main (void)
{int n;char a,b,c;scanf("%d\n",&n);scanf("%c %c %c",&a,&b,&c);hanio(n,a,b,c);return 0;
}
void hanio (int n,char a,char b,char c)
{if(n==1)printf("%d: %c -> %c\n",n,a,b);else {hanio (n-1,a,c,b);printf("%d: %c -> %c\n",n,a,b);hanio(n-1,c,b,a);}
}

思路圖

錯誤截圖

結果截圖

?

-2?估值一億的AI核心代碼?(20?)

本題要求你實現一個稍微更值錢一點的 AI 英文問答程序,規則是:

?

無論用戶說什么,首先把對方說的話在一行中原樣打印出來;

消除原文中多余空格:把相鄰單詞間的多個空格換成 1 個空格,把行首尾的空格全部刪掉,把標點符號前面的空格刪掉;

把原文中所有大寫英文字母變成小寫,除了 I;

把原文中所有獨立的 can you、could you 對應地換成 I can、I could—— 這里“獨立”是指被空格或標點符號分隔開的單詞;

把原文中所有獨立的 I 和 me 換成 you;

把原文中所有的問號 ? 換成驚嘆號 !;

在一行中輸出替換后的句子作為 AI 的回答。

輸入格式:

輸入首先在第一行給出不超過 10 的正整數 N,隨后 N 行,每行給出一句不超過 1000 個字符的、以回車結尾的用戶的對話,對話為非空字符串,僅包括字母、數字、空格、可見的半角標點符號。

輸出格式:

按題面要求輸出,每個 AI 的回答前要加上 AI: 和一個空格。

輸入樣例:

6
Hello ?Good to chat   with you
can   you speak Chinese?
Really?
Could you show me 5
What Is this prime? I,don 't know

輸出樣例:

Hello ?
AI: hello!Good to chat   with you
AI: good to chat with you
can   you speak Chinese?
AI: I can speak chinese!
Really?
AI: really!
Could you show me 5
AI: I could show you 5
What Is this prime? I,don 't know
AI: what Is this prime! you,don't know

代碼

#include<stdio.h>
int main (void)
{int n,i,j=0,str;char sting[1000];scanf("%d\n",&n);for(i=1;i<=n;i++)gets(string);puts(string);pritnf("AI: ");

思路

這個題不是很會做,只能寫出部分解。輸出原文,換大小寫的,換問號為感嘆號,輸出AI:

錯誤截圖

結果截圖

?

挑戰作業

7-3?***八皇后問題?(20?)

在國際象棋中,皇后是最厲害的棋子,可以橫走、直走,還可以斜走。棋手馬克斯·貝瑟爾 1848 年提出著名的八皇后問題:即在 8 × 8 的棋盤上擺放八個皇后,使其不能互相攻擊 —— 即任意兩個皇后都不能處于同一行、同一列或同一條斜線上。

現在我們把棋盤擴展到 n × n 的棋盤上擺放 n 個皇后,請問該怎么擺?請編寫程序,輸入正整數 n,輸出全部擺法(棋盤格子空白處顯示句點“.”,皇后處顯示字母“Q”,每兩格之間空一格)。

輸入格式

正整數 n (0 < n ≤ 12)

輸出格式

若問題有解,則輸出全部擺法(兩種擺法之間空一行),否則輸出 None。
要求:試探的順序逐行從左往右的順序進行,請參看輸出樣例2。

輸入樣例1

3

輸出樣例1

None

輸入樣例2

6

輸出樣例2

. Q . . . .
. . . Q . .
. . . . . Q
Q . . . . .
. . Q . . .
. . . . Q .. . Q . . .
. . . . . Q
. Q . . . .
. . . . Q .
Q . . . . .
. . . Q . .. . . Q . .
Q . . . . .
. . . . Q .
. Q . . . .
. . . . . Q
. . Q . . .. . . . Q .
. . Q . . .
Q . . . . .
. . . . . Q
. . . Q . .
. Q . . . . 

代碼

?

思路

我對本題沒思路,我有一個一個字地看,我大概理解題目要我做什么,但就是沒有思路。很亂,真的不會!

錯誤截圖

?

結果截圖

?

預習作業(第十一章 指針進階

? ? ? ?數組指針:是一個指向數組的指針。

int (*arr)[10];//指向int[10]的指針

? ? ? ?指針數組是一個存放指針的數組。

int *arr[];//[]優先級高,所以arr首先是一個數組,里面存放的是一個個指針
int** arr[];//數組中放入二級指針

? ? ? ?指針函數:我們知道能保存地址的是指針;那么問題就轉化為了哪個是指針的問題?同數組指針一樣,我們考慮優先級的問題:pfun1先和*結合,說明pfun1是指針,指針指向的是一個函數,指向的函數無參數,返回值類型為void。所以pfun1可以保存函數地址。而“void *pfun2();”是一個函數聲明,返回值為void*類型。

? ? ? ?函數指針:類似于指針數組,要把函數的地址存到一個數組中,那這個數組就叫函數指針數組

int (*parr1[10]])();//parr1先與[]結合,說明它是一個數組,數組的內容是 int (*)() 類型的函數指針。 
int *parr2[10]();//parr2先與*結合,說明它是一個指針
int (*)() parr3[10];//沒有這種定義方式,是錯誤的

? ? ? ?二級指針:帶命令行參數的main函數要用到二級指針

int main(int argc, char **agrv)

? ? ? ?單向鏈表:單鏈表)是鏈表的一種,其特點是鏈表的鏈接方向是單向的,對鏈表的訪問要通過順序讀取從頭部開始。

來源(https://blog.csdn.net/weixin_40417029/article/details/78580080)

? ? ? ?(https://blog.csdn.net/u011308691/article/details/16809235)

?

學習進度條

時間

代碼行數

這周所花的時間

學到的知識點簡介

3/2-3/19

35

四小時左右

通過代碼讀取文件里的數據,并且打印

3/9-3/19

65

三十分鐘

?

3/19-3/22

186

五個小時左右

二維數組的用法加上二分法找元素

3/22-3/28

31

三小時左右

字符串的使用

4/2-4/9

130

2小時左右

指針的使用

4/15-4/19

200

2

指針內存的動態分配,不是很清楚使用動態分配

4/22-4/27

150

3小時

對結構體的使用熟悉

5/6-5/9 ?????????????

100

2小時

遞歸函數運行過程

?

折線圖

學習感悟

感覺題目好難,這次作業也讓我了解還有很多東西需要去學習,對算法的知識了解還是太少

轉載于:https://www.cnblogs.com/LUMO/p/10843778.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

softmax函數與交叉熵損失函數

本文主要介紹了當前機器學習模型中廣泛應用的交叉熵損失函數與softmax激勵函數。 這個損失函數主要應用于多分類問題&#xff0c;用于衡量預測值與實際值之間的相似程度。 交叉熵損失函數定義如下: LCE(y^,y?)?∑i1Nclassesyi?log(yi^)L_{CE}(\hat{y}, y^*) - \sum_{i1}^…

vue配置git的子模塊

在vue的模塊需要調用許多公共組件&#xff0c;在公共組件之后會需要不斷的更新以及分組做&#xff0c;這時候可以利用git的方式更新組件所在位置 [submodule "src/component/common"] path src/component/common urlgit111.111.111.111:projectname/web-common-…

unity如何讓物體與特定物體之間不發生碰撞

unity中我們普遍使用的是碰撞器來實現各個物體的碰撞體積&#xff0c;例如Box collider, Sphere Collider。 在實現游戲的過程中&#xff0c;如果不想要物體與特定物體產生碰撞&#xff0c;或反之&#xff0c;只想讓碰撞發生在特定物體之間時&#xff0c;我們就需要配置layer …

jenkins的JAVA簡單順序配置git倉庫

后臺Java的發布配置 1、從源碼管理下載項目內容 2、構建觸發器 3 、構建下環境 4、構建后處理

SQLyog連接數據庫報錯plugin caching_sha2_password could not be loaded

打開cmd&#xff1a;mysql -uroot -p 進入mysql依次執行下面語句 ALTER USER rootlocalhost IDENTIFIED BY password PASSWORD EXPIRE NEVER; #修改加密規則 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY password; #更新一下用戶的密碼 FLUSH PRIVI…

unity導入素材時材質丟失素材變成粉紅色的解決方法

有很多時候&#xff0c;當我們通過unity asset store或者blender等等外源導入素材時&#xff0c;會出現材質缺失的bug&#xff0c;如下圖所示 : 一個很可能的原因&#xff0c;是由于unity本身管線在每個版本的更新過程中&#xff0c;材質的渲染編碼發生了改變。由于這種原因引…

Jenkins 部署vue到服務器

鏈接github名稱 2、從源碼管理下載 3、更新最新前端模塊 4、進行構建和打包

unity用coroutine并發實現暫停執行程序

廢話不多說&#xff0c;下面就用一個簡單的顯示指引案件的例子來展示如何用coroutine來暫停程序的執行 using System.Collections; using System.Collections.Generic; using UnityEngine;public class TextTriggered : MonoBehaviour {public GameObject TextObject;// Start…

P2690 接蘋果

———————————————————————— 我用了記憶化&#xff0c;因為它比DP更好理解 ————————————————————————— 資料&#xff1a;百度百科&#xff08; MIKU,I Love HER &#xff09; 來自洛谷&#xff1a;&#xff08;背包的題解&am…

gitlab使用git sourcetree時候的命令

6. Git連接設置 MacOS 打開MacOS的 terminal.app 工具。 輸入 cat ~/.ssh/id_rsa.pub 確認是否有已經存在的證書。 如果提示存在證書&#xff0c;請跳至 第5步。 輸入 ssh-keygen -t rsa -C "your.mobile136.com" -b 4096&#xff0c;并回車&#xff0c;提示的輸入…

numpy數組提取一定規律的數據

numpy數組的索引也是符合start stop step規律的&#xff0c;因此可以通過索引提取出一系列索引有規律的元素&#xff0c;如下例子: import numpy as np i np.linspace(1,100,100, dtypeint)-1 print(i) i_train i[0:100:10] print(i_train)輸出結果如下 : 可以看到通過索引…

在layui中使用 jquery 觸發select 的 change事件無效

在layui中使用 jquery 觸發select 的 change事件無效 使用layui.use監聽select事件 <select lay-filter"demo" lay-verify"required"><script> layui.use([layer, jquery, form], function () { var layer layui.layer, $ layui.j…

Maven添加Oracle驅動及依賴

oracle驅動先去官網下載,下載下來后,需要安裝到maven本地倉庫,然后再pom中添加依賴. 1下載oracle驅動包 ojdbc6-11.2.0.3.jar 2命令行安裝到maven倉庫 mvn install:install-file -DgroupIdcom.oracle -DartifactIdojdbc6 -Dversion11.2.0.3.0 -Dpackagingjar -DfileE:\orac…

Unity C# namespace 命名空間的使用

命名空間在多個面對對象的語言中有應用&#xff0c;例如JAVA&#xff0c;C&#xff0c;C#。本文主要記錄了在C#中如何調用不同命名空間的public class。 首先對namespace做一個簡單的總結。如果說類是對屬性和方法的封裝&#xff0c;那么命名空間就是對各個類的進一步封裝。在…

CRM、用戶管理權限

CRM目錄結構 from django.shortcuts import HttpResponse,render,redirect from django.conf.urls import url from django.utils.safestring import mark_safe from django.urls import reverse from django.forms import ModelForm from stark.utils.my_page import Paginat…

Spring Boot集成Druid監控

package com.xxxxxxx.framework.datasource.druid;import com.alibaba.druid.support.http.WebStatFilter;import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam;/*** druid過濾器.*/ WebFilter(filterName "druidWebStatFilter&qu…

hexo個人博客搭建

使用gitee托管平臺搭配hexo工具搭建個人博客 燁然的個人博客 第一部分 HEXO安裝(win10安裝過程) 1.安裝git 安裝后配置環境變量 C:\Program Files\Git\bin C:\Program Files\Git\libexec\git-core 2.安裝Node.js 快速下載鏈接 安裝后配置環境變量 環境變量寫入C:\Program Files…

GAN生成對抗網絡基本概念及基于mnist數據集的代碼實現

本文主要總結了GAN(Generative Adversarial Networks) 生成對抗網絡的基本原理并通過mnist數據集展示GAN網絡的應用。 GAN網絡是由兩個目標相對立的網絡構成的&#xff0c;在所有GAN框架中都至少包含了兩個部分&#xff0c;生成模型部分和判別模型部分。生成模型的目標是制造出…

dump查詢Java 狀態

代碼文件 dump.sh #!/usr/bin/env bash### use demo ### # 1)upload dump.sh # 2)dos2unix dump.sh;chmod x dump.sh # 3)usage: # 1. /data/sh/java/dump.sh /tmp/dump /usr/local/java/jdk1.8.0_05 23554 # 2. /data/sh/java/dump.sh /tmp/dump /usr/local/java/jdk1…

jdk、jre、jvm區別與聯系

JVM &#xff1a;英文名稱&#xff08;Java Virtual Machine&#xff09;&#xff0c;就是我們耳熟能詳的 Java 虛擬機。它只認識 xxx.class 這種類型的文件&#xff0c;它能夠將 class 文件中的字節碼指令進行識別并調用操作系統向上的 API 完成動作。所以說&#xff0c;jvm 是…