2019-03-09 計算機二級C語言程序設計之課后習題(5)

參考資料:高教版《全國計算機等級考試二級教程——C語言程序設計》

P145 編程題

9.28

題目:

編寫函數(shù)撤嫩,對具有10個整數(shù)的數(shù)組進行如下操作:從下標為n的元素開始直到最后一個元素坊秸,依次向前移動一個位置。輸出移動后的結(jié)果俐东。

題解:

此題目的隱含條件應該是“0 < n <= 10”,否則會出錯。因為沒有進一步的解釋耀盗,所以我就認為將最后一個元素的內(nèi)容保留了氛雪。

由于這個函數(shù)沒有返回值房匆,所以定義為void類型。

定義函數(shù)fun()如下:

void fun(int a[], int n)
{
    int m = 0, i = 0;
    //數(shù)組下標n是從0開始的报亩,而我們需要移動第m個元素浴鸿,就需要在數(shù)組下標上減1
    m = n - 1;

    for (i = m; i < 9; i++)
    {
        //這一句報了警告C6386,說緩沖區(qū)溢出弦追,不知道是為什么岳链,歡迎各位大神指教
        a[i] = a[i + 1];    //移動數(shù)組中的元素
    }
}

運行測試:

完整程序如下:

#include <stdio.h>

void fun(int *, int);   //函數(shù)的說明語句

int main(void)
{
    int a[10] = { 0 }, i = 0, n = 0;

    printf("輸入10個整數(shù):\n");

    //利用for循環(huán)依次讀入數(shù)字并放入數(shù)組中
    for (i = 0; i <= 9; i++)
        scanf("%d", &a[i]);

    //輸出輸入的數(shù)組
    printf("輸入的數(shù)組為:\n");
    for (i = 0; i <= 9; i++)
        printf("%d ", a[i]);

    printf("\n輸入n:\n");
    scanf("%d", &n);            //輸入n

    //利用一個if-else語句來判斷n是否在范圍內(nèi)
    if (n <= 1 && n > 10)
        printf("輸入的數(shù)據(jù)無效。\n");
    else
        fun(a, n);

    //輸出移動后的結(jié)果
    printf("移動后的結(jié)果為:\n");
    for (i = 0; i <= 9; i++)
        printf("%d ", a[i]);

    return 0;
}

void fun(int a[], int n)
{
    int m = 0, i = 0;
    //數(shù)組下標n是從0開始的劲件,而我們需要移動第m個元素掸哑,就需要在數(shù)組下標上減1
    m = n - 1;

    for (i = m; i < 9; i++)
        a[i] = a[i + 1];    //移動數(shù)組中的元素
}

輸入輸出:

輸入10個整數(shù):
11
12
13
14
15
16
17
18
19
20
輸入的數(shù)組為:
11 12 13 14 15 16 17 18 19 20
輸入n:
6
移動后的結(jié)果為:
11 12 13 14 15 17 18 19 20 20

9.29

題目:

編寫函數(shù),把數(shù)組中所有的奇數(shù)放在另一個數(shù)組中返回零远。

題解:

定義兩個數(shù)組苗分,一個存放初始數(shù)據(jù),一個用來存放奇數(shù)遍烦。

這個函數(shù)也沒有返回值俭嘁,所以定義為void類型。

定義函數(shù)fun()如下:

void fun(int a[])
{
    
    int  b[10] = { 0 }, i = 1, j = 0;
    //判斷數(shù)組a中第i個元素是否為奇數(shù)服猪。如果是供填,則將其存放到數(shù)組b中
    for (i = 0; i < 9; i++)
    {
        if (a[i] % 2 != 0)
        {
            b[j] = a[i];
            j++;
        }
    }

    printf("\n輸入的數(shù)組為:\n");

    for (i = 0; i <= 9; i++)
        printf("%d ", a[i]);

    printf("\n");

    printf("\n奇數(shù)為:\n");

    for (i = 0; i < j; i++)
        printf("%d ", b[i]);
}

完整程序如下:

#include <stdio.h>

void fun(int*); //函數(shù)的說明語句

int main(void)
{
    //定義數(shù)組a用來存放輸入的10個數(shù)
    int a[10] = { 0 }, i = 0;

    printf("輸入10個整數(shù):\n");

    //輸入10個整數(shù)
    for (i = 0; i <= 9; i++)
        scanf_s("%d", &a[i]);

    fun(a);

    return 0;
}

void fun(int a[])
{
    //定義數(shù)組b用來存放奇數(shù)
    int  b[10] = { 0 }, i = 1, j = 0;
    
    //判斷數(shù)組a中第i個元素是否為奇數(shù)。如果是罢猪,則將其存放到數(shù)組b中
    for (i = 0; i < 9; i++)
    {
        if (a[i] % 2 != 0)
        {
            b[j] = a[i];
            j++;
        }
    }

    printf("\n輸入的數(shù)組為:\n");

    for (i = 0; i <= 9; i++)
        printf("%d ", a[i]);

    printf("\n");

    printf("\n奇數(shù)為:\n");

    for (i = 0; i < j; i++)
        printf("%d ", b[i]);
}

輸入輸出:

輸入10個整數(shù):
1
2
3
4
5
6
7
8
9
10

輸入的數(shù)組為:
1 2 3 4 5 6 7 8 9 10

奇數(shù)為:
1 3 5 7 9

9.30

題目:

編寫函數(shù)近她,把數(shù)組中所有的字母按由大到小的字母順序進行排序。

題解:

(還沒學到排序法膳帕,這里先空著粘捎,等學到排序法了再補上)

9.31

題目:

輸入若干有序數(shù)放在數(shù)組中薇缅。然后輸入一個數(shù),插入到此有序數(shù)列中攒磨。插入后泳桦,數(shù)組中的數(shù)仍然有序。請對插在最前娩缰、插在最后灸撰、插在中間三種情況運行程序,以便驗證程序是否正確拼坎。

題解:

(暫時還不會浮毯,先空著)

9.32

題目:

編寫函數(shù),把任意十進制正整數(shù)轉(zhuǎn)換成二進制數(shù)泰鸡。提示:把十進制數(shù)不斷被2除的余數(shù)放在一個一維數(shù)組中债蓝,直到商數(shù)為0。在主函數(shù)中進行輸出盛龄,要求不得按逆序輸出饰迹。

題解:

寫了一大堆沒一個正確的……從這里扒了一個過來:https://blog.csdn.net/wjkhello/article/details/78149441

#include<stdio.h> 
int main(void)
{ 
    int a,b,k,i; 
    int remainder[30]; //定義了一個remainder數(shù)組,用來收集短除法除得的余數(shù)讯嫂,棧倒序輸出蹦锋。 
    
    a=1000; 
    k=0; 
    
    while(a!=0)
    { 
        b=a/2; 
        k++; 
        remainder[k]=a-b*2; 
        a=a/2; 
    }
    
    for (i=k;i>=1;i--)
    {
        printf("%d",remainder[i]); 
    } 
    
    return 0; 
}

我發(fā)現(xiàn)不啃算法不行了,這幾天啃啃算法吧欧芽,要不然二級考試可能就涼涼了……

9.36

題目:

編寫程序打印出以下形式的乘法九九表莉掂。

        * * A MULTIPLICATION TABLE * *
        (1)     (2)     (3)     (4)     (5)     (6)     (7)     (8)     (9)
--------------------------------------------------------------------------
(1)   1       2       3       4       5       6       7       8       9
(2)   2       4       6       8       10      12      14      16      18
(3)   3       6       9       12      15      18      21      24      27
(4)   4       8       12      16      20      24      28      32      36
(5)   5       10      15      20      25      30      35      40      45
(6)   6       12      18      24      30      36      42      48      54
(7)   7       14      21      28      35      42      49      56      63
(8)   8       16      24      32      40      48      56      64      72
(9)   9       18      27      36      45      54      63      72      81
--------------------------------------------------------------------------

題解:

總算看到一個比較簡單的。

程序如下:

#include <stdio.h>

int main(void)
{
    int a[9] = { 0 },j = 0, i = 0, k = 1;           //定義一個數(shù)組和計數(shù)變量

    for (i = 0, j = 1; i <= 8; i++, j++)
        a[i] = j;                                   //將數(shù)字1-9存入該數(shù)組

    //打印表頭
    printf("\t* * A MULTIPLICATION TABLE * *\n");
    putchar('\t');

    for (i = 1; i <= 9; i++)
        printf("(%d)\t", i);
    putchar('\n');
    printf("--------------------------------------------------------------------------\n");

    //利用嵌套的for循環(huán)來打印乘法表
    for (k = 1; k <= 9; k++)
    {
        //打印每一列前的數(shù)字
        printf("(%d)\t", k);
        
        //用k分別乘以a數(shù)組中的每個元素的方式打印乘法表中的第k行
        for (i = 0; i <= 8; i++)
        {
            printf("%d\t", a[i] * k);
        }
        putchar('\n');
    }

    printf("--------------------------------------------------------------------------\n");
    
    return 0;
}

輸出:

        * * A MULTIPLICATION TABLE * *
        (1)     (2)     (3)     (4)     (5)     (6)     (7)     (8)     (9)
--------------------------------------------------------------------------
(1)   1       2       3       4       5       6       7       8       9
(2)   2       4       6       8       10      12      14      16      18
(3)   3       6       9       12      15      18      21      24      27
(4)   4       8       12      16      20      24      28      32      36
(5)   5       10      15      20      25      30      35      40      45
(6)   6       12      18      24      30      36      42      48      54
(7)   7       14      21      28      35      42      49      56      63
(8)   8       16      24      32      40      48      56      64      72
(9)   9       18      27      36      45      54      63      72      81
--------------------------------------------------------------------------

其他的題目暫時都不會了千扔,本菜鳥算法不行也沒學過矩陣憎妙,等以后啃完算法慢慢補吧……

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市曲楚,隨后出現(xiàn)的幾起案子厘唾,更是在濱河造成了極大的恐慌,老刑警劉巖龙誊,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抚垃,死亡現(xiàn)場離奇詭異,居然都是意外死亡趟大,警方通過查閱死者的電腦和手機鹤树,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逊朽,“玉大人罕伯,你說我怎么就攤上這事∵椿洌” “怎么了追他?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵坟募,是天一觀的道長。 經(jīng)常有香客問我邑狸,道長懈糯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任推溃,我火速辦了婚禮昂利,結(jié)果婚禮上届腐,老公的妹妹穿的比我還像新娘铁坎。我一直安慰自己,他們只是感情好犁苏,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布硬萍。 她就那樣靜靜地躺著,像睡著了一般围详。 火紅的嫁衣襯著肌膚如雪朴乖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天助赞,我揣著相機與錄音买羞,去河邊找鬼。 笑死雹食,一個胖子當著我的面吹牛畜普,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播群叶,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼吃挑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了街立?” 一聲冷哼從身側(cè)響起舶衬,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赎离,沒想到半個月后逛犹,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡梁剔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年虽画,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片憾朴。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡狸捕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出众雷,到底是詐尸還是另有隱情灸拍,我是刑警寧澤做祝,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站鸡岗,受9級特大地震影響混槐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜轩性,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一声登、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧揣苏,春花似錦悯嗓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坑质,卻和暖如春合武,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背涡扼。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工稼跳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吃沪。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓汤善,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巷波。 傳聞我的和親對象是個殘疾皇子萎津,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容