本周作業(yè)頭
| 這個作業(yè)屬于那個課程 | C語言程序設(shè)計II |
|---|---|
| 這個作業(yè)要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/3202 |
| 我在這個課程的目標(biāo)是 | <能夠獨立的完成作業(yè),以便與以后的學(xué)習(xí)> |
| 這個作業(yè)在那個具體方面幫助我實現(xiàn)目標(biāo) | <宏的基本定義> |
| 參考文獻 | <C語言程序設(shè)計> |
1.基礎(chǔ)作業(yè)
2-1
宏定義“#define DIV(a, b) a/b”,經(jīng)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
定義帶參數(shù)的宏“#define JH(a,b,t) t = a; a = b; b = t”,對兩個參數(shù)a、b的值進行交換,下列表述中正確的是(B)。 (1分)
A.不定義參數(shù)a和b將導(dǎo)致編譯錯誤
B.不定義參數(shù)a、b、t將導(dǎo)致編譯錯誤
C.不定義參數(shù)t將導(dǎo)致運行錯誤
D.不需要定義參數(shù)a、b、t類型
2-3
如果所有的變量按照下面的程序進行定義和聲明,那么在main()函數(shù)中所有可用的變量為 (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
如果一個變量在整個程序運行期間都存在,但是僅在說明它的函數(shù)內(nèi)是可見的,這個變量的存儲類型應(yīng)該被說明為( A)。 (1分)
A.靜態(tài)變量
B.動態(tài)變量
C.外部變量
D.內(nèi)部變量
2-5
下面說法中正確的是(C)。 (1分)
A.若全局變量僅在單個C文件中訪問,則可以將這個變量修改為靜態(tài)全局變量,以降低模塊間的耦合度
B.若全局變量僅由單個函數(shù)訪問,則可以將這個變量改為該函數(shù)的靜態(tài)局部變量,以降低模塊間的耦合度
C.設(shè)計和使用訪問動態(tài)全局變量、靜態(tài)全局變量、靜態(tài)局部變量的函數(shù)時,需要考慮變量生命周期問題
D.靜態(tài)全局變量使用過多,可那會導(dǎo)致動態(tài)存儲區(qū)(堆棧)溢出
2-6
凡是函數(shù)中未指定存儲類別的局部變量,其隱含的存儲類型為(A )。 (1分)
A.自動(auto)
B.靜態(tài)(static)
C.外部(extern)
D.寄存器(register)
2-7
在一個C源程序文件中,若要定義一個只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使用的存儲類別是(D)。 (1分)
A.extern
B.register
C.auto
D.static
2-8
將一個函數(shù)說明為static后,該函數(shù)將 (B )。(1分)
A.既能被同一源文件中的函數(shù)調(diào)用,也能被其他源文件中的函數(shù)調(diào)用
B.只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用
C.只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用
D.既不能被同一源文件中的函數(shù)調(diào)用,也不能被其他源文件中的函數(shù)調(diào)用
2.編程題
7-1 漢諾塔問題* (10 分)
漢諾塔是一個源于印度古老傳說的益智玩具。據(jù)說大梵天創(chuàng)造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤,大梵天命令僧侶把圓盤移到另一根柱子上,并且規(guī)定:在小圓盤上不能放大圓盤,每次只能移動一個圓盤。當(dāng)所有圓盤都移到另一根柱子上時,世界就會毀滅。

請編寫程序,輸入漢諾塔圓片的數(shù)量,輸出移動漢諾塔的步驟。
輸入格式
圓盤數(shù) 起始柱 目的柱 過度柱
輸出格式
移動漢諾塔的步驟
每行顯示一步操作,具體格式為:
盤片號: 起始柱 -> 目的柱
其中盤片號從 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);
}
}
實驗結(jié)果截圖

流程圖

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

以上圖片來自新浪微博。
本題要求你實現(xiàn)一個稍微更值錢一點的 AI 英文問答程序,規(guī)則是:
無論用戶說什么,首先把對方說的話在一行中原樣打印出來;
消除原文中多余空格:把相鄰單詞間的多個空格換成 1 個空格,把行首尾的空格全部刪掉,把標(biāo)點符號前面的空格刪掉;
把原文中所有大寫英文字母變成小寫,除了 I;
把原文中所有獨立的 can you、could you 對應(yīng)地?fù)Q成 I can、I could—— 這里“獨立”是指被空格或標(biāo)點符號分隔開的單詞;
把原文中所有獨立的 I 和 me 換成 you;
把原文中所有的問號 ? 換成驚嘆號 !;
在一行中輸出替換后的句子作為 AI 的回答。
輸入格式:
輸入首先在第一行給出不超過 10 的正整數(shù) N,隨后 N 行,每行給出一句不超過 1000 個字符的、以回車結(jié)尾的用戶的對話,對話為非空字符串,僅包括字母、數(shù)字、空格、可見的半角標(biāo)點符號。
輸出格式:
按題面要求輸出,每個 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
本題思路:本題自己本身就看不懂,書上也沒有相關(guān)的例子,網(wǎng)上百度的話格式要求也不一樣,待解。
7-3 ***八皇后問題 (20 分)
在國際象棋中,皇后是最厲害的棋子,可以橫走、直走,還可以斜走。棋手馬克斯·貝瑟爾 1848 年提出著名的八皇后問題:即在 8 × 8 的棋盤上擺放八個皇后,使其不能互相攻擊 —— 即任意兩個皇后都不能處于同一行、同一列或同一條斜線上。
現(xiàn)在我們把棋盤擴展到 n × n 的棋盤上擺放 n 個皇后,請問該怎么擺?請編寫程序,輸入正整數(shù) n,輸出全部擺法(棋盤格子空白處顯示句點“.”,皇后處顯示字母“Q”,每兩格之間空一格)。
輸入格式
正整數(shù) 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 . . . .
本題思路:沒有思路。。。。。。。。。。。
3.學(xué)習(xí)進度條

學(xué)習(xí)總結(jié)
本周的題目例如第一題發(fā)現(xiàn)看書也沒有思路了,后面的就更不用說了,對學(xué)渣要不要這么不友好。。。
浙公網(wǎng)安備 33010602011771號