![游洪躍的程序設(shè)計(jì)第5章 習(xí)題解答_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/3510c82c-04e5-45f3-931e-994ad26dc2ec/3510c82c-04e5-45f3-931e-994ad26dc2ec1.gif)
![游洪躍的程序設(shè)計(jì)第5章 習(xí)題解答_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/3510c82c-04e5-45f3-931e-994ad26dc2ec/3510c82c-04e5-45f3-931e-994ad26dc2ec2.gif)
![游洪躍的程序設(shè)計(jì)第5章 習(xí)題解答_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/3510c82c-04e5-45f3-931e-994ad26dc2ec/3510c82c-04e5-45f3-931e-994ad26dc2ec3.gif)
![游洪躍的程序設(shè)計(jì)第5章 習(xí)題解答_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/3510c82c-04e5-45f3-931e-994ad26dc2ec/3510c82c-04e5-45f3-931e-994ad26dc2ec4.gif)
![游洪躍的程序設(shè)計(jì)第5章 習(xí)題解答_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/3510c82c-04e5-45f3-931e-994ad26dc2ec/3510c82c-04e5-45f3-931e-994ad26dc2ec5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 習(xí)題解答一、選擇題1以下敘述中錯(cuò)誤的是 。A)對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出B)數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變C)在程序執(zhí)行中,當(dāng)數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息D)可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)解析:對(duì)于double類型數(shù)組,不能直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出。所以選項(xiàng)A的說法是正確的。數(shù)組名代表數(shù)組所占內(nèi)存區(qū)的首地址,是一個(gè)固定指針,其值不可改變,因此選項(xiàng)B也是正確的。在C語言一維數(shù)組定義時(shí)可以不指定數(shù)組長(zhǎng)度,由賦初值的初值個(gè)數(shù)決定數(shù)組的長(zhǎng)度。因此選項(xiàng)D也是正確的。C語言程
2、序在執(zhí)行時(shí),不檢查數(shù)組元素的下標(biāo)是否越界,如果出現(xiàn)越界,可能會(huì)引起系統(tǒng)死機(jī),因此選項(xiàng)C不正確。答案:C2有以下程序:/* 文件路徑名:ex5_1_2main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/出頭文件 */int main(void)/* 主函數(shù)main() */char s = "abcde"/* 定義字符數(shù)組 */s += 2;/* s自加2 */printf("%dn", s0);/* 輸出s0 */return 0; /* 返回值0, 返回操作系統(tǒng) */執(zhí)行后的結(jié)果是 。A)輸出字符a的ASCII碼B)輸出字
3、符c的ASCII碼C)輸出字符c D)程序出錯(cuò)解析:數(shù)組s的首地址值s是不可改變的,故該程序編譯時(shí)會(huì)出錯(cuò)。答案:D3有以下程序:/* 文件路徑名:ex5_1_3main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/出頭文件 */int main(void)/* 主函數(shù)main() */int a10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *p = &a3, *q = p + 2; /* 定義數(shù)組及變量 */printf("%dn", *p + *q);/* 輸出*p + *q之值 */return 0; /*
4、返回值0, 返回操作系統(tǒng) */程序運(yùn)行后的輸出結(jié)果是 。A)16 B)10 C)8 D)6解析:數(shù)組a各元素a0-a9的值依次為110,語句“*p=&a3”把指針變量p初始化為&a3,即*p的值為4,指針變量q初始化為“*q=p+2”,所以*q的值為6,從而*p+*q=l0。答案:B4有以下程序:/* 文件路徑名:ex5_1_4main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/出頭文件 */void Sort(int a, int n)/* 將a中元素從大到小進(jìn)行排序 */int i, j, t;/* 定義變量 */for (i = 0; i &
5、lt; n - 1; i+)for (j = i + 1; j < n; j+)if (ai < aj) t = ai; ai = aj; aj = t; int main(void)/* 主函數(shù)main() */int a10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; /* 定義數(shù)組及變量 */Sort(a + 2, 5);for (i = 0; i < 10; i+)printf("%d,", ai);/* 輸出ai */printf("n");/* 換行 */return 0; /* 返回值0, 返回
6、操作系統(tǒng) */程序運(yùn)行后的輸出結(jié)果是 。A)1,2,3,4,5,6,7,8,9,10 B)1,2,7,6,3,4,5,8,9, 10,C)1,2,7,6,5,4,3,8,9,10 D)1,2,9,8,7,6,5,4,3, 10,解析:函數(shù)Sort()的功能是將數(shù)組a中的元素按照從大到小的順序排列。但主函數(shù)調(diào)用Sort()時(shí),實(shí)參是a+2和5,即是將數(shù)組a中a2-a6共5個(gè)元素進(jìn)行從大到小的排序。所以得到的輸出結(jié)果應(yīng)該是1,2,7,6,5,4,3,8,9,10。答案:C5以下數(shù)組定義中錯(cuò)誤的是 。A)int x3 = 0;B)int x23 = 1, 2, 3, 4, 5, 6;C)int x3
7、 = 1, 2, 3, 4, 5, 6;D)int x23 = 1, 2, 3, 4, 5, 6;解析:二維數(shù)組賦初值時(shí),第一個(gè)維數(shù),即行數(shù)可以省略,但是列數(shù)不能省略。因此選項(xiàng)A, C正確。選項(xiàng)D是按數(shù)據(jù)在二維數(shù)組中的順序初始化。在選項(xiàng)B中,行維數(shù)的初始化格式跟定義的維數(shù)不一致,為錯(cuò)誤選項(xiàng)。答案:B6有以下程序:/* 文件路徑名:ex5_1_6main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/出頭文件 */int main(void)/* 主函數(shù)main() */int i, t3 = 9, 8, 7, 6, 5, 4, 3, 2, 1;/* 定義變量及數(shù)組 *
8、/for (i = 0; i < 3; i+)printf("%d", t2 - ii);/* 輸出元素值 */printf("n");/* 換行 */return 0; /* 返回值0, 返回操作系統(tǒng) */程序的執(zhí)行后的輸出結(jié)果是 。A)753 B)357 C)369 D)751解析:定義二維數(shù)組時(shí)第一維的長(zhǎng)度可以不指定,該程序中t3通過賦初值等價(jià)于t33,并且其數(shù)組按行進(jìn)行賦值,通過for循環(huán)輸出的分別是t20、t11和t02。答案:B7若有語句“char *line5;”,以下敘述中正確的是 。A)定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基
9、類型為char的指針變量B)定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組C)定義line是一個(gè)指針數(shù)組,語句中的*號(hào)稱為取址運(yùn)算符D)定義line是一個(gè)指向字符型函數(shù)的指針解析:在語句“char *line5;”中,遵照運(yùn)算符的優(yōu)先級(jí),的優(yōu)先級(jí)高于*號(hào),因此line先與結(jié)合,構(gòu)成一個(gè)數(shù)組,數(shù)組的基類型為“char *”,所以line為指針數(shù)組,它的每個(gè)元素都是基類型為char的指針。所以選項(xiàng)A敘述正確。答案:A8有以下程序:/* 文件路徑名:ex5_1_8main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/出頭文件 */int main(vo
10、id)/* 主函數(shù)main() */int a33, *p, i;/* 定義數(shù)組及變量 */p = &a00;/* p指向數(shù)組a的首元素 */for (i = 0; i < 9; i+)pi = i;/* 為pi賦值 */for (i = 0; i < 3; i+)printf("%d ", a1i);/* 輸出a1i */printf("n");/* 換行 */return 0; /* 返回值0, 返回操作系統(tǒng) */程序運(yùn)行后的輸出結(jié)果是 。A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5解析: p指向二維數(shù)組a的首元
11、素,而二維數(shù)組是按行存放的。因此“for(i=0;i<9;i+) pi=i;”的結(jié)果是等價(jià)于a33=0,1,2,3,4,5,6,7,8,也就是a33=10,1,2,3,4,5,16.7,8。因此a1i(i=0,1,2)的結(jié)果是3, 4, 5。答案:D9若有定義語句“int a23, *p3;”,則以下語句中正確的是 。A)p0=a; B)p0=a; C)p0=&a12; D)p1=&a解析:因?yàn)?p3定義成指針數(shù)組,指針數(shù)組中的任何元素都是基類型為int的指針,只有選項(xiàng)B是正確的。答案:B10設(shè)已有定義“float x;”,則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的
12、是 。A)float *p=1024; B)int *p=(float)x; C)float p=&x; D)float *p=&x;解析:指針的值是變量的地址而不能是數(shù)值常量,所以選項(xiàng)A錯(cuò);選項(xiàng)B同樣是將float類型的值賦給指針而不是地址,所以選項(xiàng)B也錯(cuò)。定義指針變量前面必須有星號(hào)(*),所以選項(xiàng)C不正確。答案:D11若有定義“short int a=10,20,30, *p=&a;”,當(dāng)執(zhí)行“p+;”后,下列說法錯(cuò)誤的是 。A)p向高地址移了一個(gè)字節(jié)B)p向高地址移了一個(gè)存儲(chǔ)單元C)p向高地址移了兩個(gè)字節(jié)D)p與a+l等價(jià)解析:“*p=&a”將數(shù)組a的首地
13、址賦給指針p,通過對(duì)指針變量加上一個(gè)整數(shù)可以移動(dòng)指針,移動(dòng)的單位為存儲(chǔ)單元,short int型變量在存儲(chǔ)器中占兩個(gè)字節(jié)。答案:A12有以下程序:/* 文件路徑名:e5_1_12main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */int main(void)/* 主函數(shù)main() */int a = 1, b = 3, c = 5;/* 定義變量 */int *p1 = &a, *p2 = &b, *p = &c;/* 為指針變量賦值 */*p = *p1 * (*p2);/* 修改p2指向的變量的值 */printf(&
14、quot;%dn", c);/* 輸出c */return 0; /* 返回值0, 返回操作系統(tǒng) */執(zhí)行后的輸出結(jié)果是 。A)1 B)2 C)3 D)4解析:指針p1指向變量a,指針p2指向變量b,指針p指向變量c,“*p = *p1 * (*p2);”等價(jià)于“c=a*b”,故正確選項(xiàng)為C。答案:C13己定義以下函數(shù):int f(int *p) return *p; f()函數(shù)返回值是 。A)不確定的值B)一個(gè)整數(shù)C)形參p中存放的值D)形參p的地址值解析:p中存放的是地址值,*p間接引用了p指向的整數(shù)值。因此返回一個(gè)整數(shù)。答案:B14己有定義“char a = "xyz
15、", b = 'x', 'y', 'z'”,以下敘述中正確的是 。A)數(shù)組a和b的長(zhǎng)度相同B)a數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度C)a數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度D)上述說法都不對(duì)解析:對(duì)于定義“char a = "xyz", b = 'x', 'y', 'z'”,由于字符串"xyz"串長(zhǎng)為3,連同隱含的結(jié)束符'0 ',占4個(gè)字節(jié),所以a數(shù)組的長(zhǎng)度為4。而b數(shù)組由單個(gè)字符賦初值,個(gè)數(shù)是3,因此b數(shù)組長(zhǎng)度為3。答案:C15有以下程序:/* 文件路徑名:
16、ex5_1_15main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */int main(void)/* 主函數(shù)main() */char ch = "uvwxyz", *pc;/* 定義字符數(shù)組與字符指針 */pc = ch;/* pc指向字符數(shù)組ch的首字符 */printf("%cn", *(pc + 5);/* 輸出*(pc+5) */return 0; /* 返回值0, 返回操作系統(tǒng) */程序運(yùn)行后的輸出結(jié)果是 。A)z B)0 C)元素ch5地址D)字符y的地址解析:字符指針pc指向字符串?dāng)?shù)組ch的的
17、首字符,*(pc+5)就是pcI5l的值。答案:A16有以下程序:/* 文件路徑名:ex5_1_16main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */int main(void)/* 主函數(shù)main() */char s = "159", *p;/* 定義數(shù)組與指針 */p = s;/* p指向s的首字符 */printf("%c", *p+);/* 輸出*p+ */printf("%cn", *p+);/* 輸出*p+ */return 0; /* 返回值0, 返回操作系統(tǒng) */程序運(yùn)
18、行后的輸出結(jié)果是 。A)15 B)16 C)12 D)59解析:數(shù)組s中存放字符串"159", p指向s的首字符。因此語句"printf("%c",*p+);”輸出的是字符'1',輸出后p加1指向下一個(gè)字符'5',下一個(gè)“peintf(.1%c",*p+);”輸出的是字符'5'。答案:A17若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù) 。A)puts() B)gets() C)getchar() D)scanf()解析:函數(shù)puts()是從屏幕輸出一個(gè)字符。getchar()從鍵盤讀
19、入一個(gè)字符。scanf()是格式化輸入函數(shù),空格字符被用于多個(gè)數(shù)據(jù)輸入的分隔符,含有空格的字符串會(huì)被截?cái)?。gets()用于字符串的輸入,并且以回車鍵為結(jié)束符。答案:B*18對(duì)于長(zhǎng)度為n的查找表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為 。A)log2n B)n/2 C)n D)n+l解析:如果查找表中的第一個(gè)元素就是要查找元素,則只需做一次比較就查找成功;如果被查找的元素是查找表中的最后一個(gè)元素,或者被查找的元素根本就不在查找表中,則需要與查找表中所有的元素進(jìn)行比較,可知對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較n次。答案:C*19冒泡排序在最壞情況下的比較次數(shù)是 。A)n(n+l
20、 )/2 B)nlog2n C)n(n-1)/2 D)n/2解析:如果查找表的長(zhǎng)度為n ,則在最壞情況下,冒泡排序需要經(jīng)過n-1趟從前往后掃描,每趟掃描需要的比較次數(shù)依次是n-1,n-2,1,需要總比較次數(shù)為n(n-1)/ 2。答案:C二、填空題1設(shè)有定義語句“int a3 = 0, 1, 2;”,則數(shù)組元素a12的值為 。解析:二維數(shù)組中當(dāng)某行一對(duì)花括號(hào)內(nèi)的初值個(gè)數(shù)小于該行中元素的個(gè)數(shù)時(shí),系統(tǒng)將自動(dòng)給該行后面的元素補(bǔ)初值0,由此可見數(shù)組a12=0。答案:02以下程序中,LineMax ()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁铡?* 文件路徑名:ex5_2_2main.c
21、*/#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */void LineMax(int m, int n, int a4, int *bar)int i, j, x;/* 定義變量 */for (i = 0; i < m; i+)x = ai0;/* 第i行的首元素 */for (j = 0; j < n; j+)if (x < aij)/* 如果x小于第i行的j號(hào)元素aij */x = aij;/* 則將aij賦給x */ = x;/* x為第i行的最大值 */int main(void)/* 主函數(shù)main() */int a34 = 12,
22、 41, 36, 28, 19, 33, 15, 27, 3, 27, 19, 1, b3, i;LineMax(3, 4, a, b);/* 調(diào)用LineMax()函數(shù)求每行的最大值 */for (i = 0; i < 3; i+)printf("%4d", bi);/* 輸出每行的最大值 */printf("n");/* 換行 */return 0; /* 返回值0, 返回操作系統(tǒng) */解析:函數(shù)LineMax()的功能是求出二維數(shù)組每行元素中的最大值。對(duì)于3行4列的二維數(shù)組將有3個(gè)最大值存放到數(shù)組bar中。x存放的是每行的最大值,求出每行的最
23、大值x后,應(yīng)該將x賦值給bari。因此此處填空應(yīng)該是:bari。答案:bari3己知“int a = 3;”,a的地址為1001,&a= 。解析:變量的地址可以通過運(yùn)算符來得到,而a的存儲(chǔ)單元地址是1001,所以&a=1001。答案:10014以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕,請(qǐng)?zhí)羁铡?* 文件路徑名:ex5_2_4main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */int main(void)/* 主函數(shù)main() */int x, y, z, max, *px = &a
24、mp;x, *py = &y, *pz = &z, *pmax = &max;/* 定義變量 */scanf("%d%d%d", &x, &y, &z);/* 輸入x,y,z */ ;if (*pmax < *py)/* 如果*py更大 */*pmax = *py;/* 則將*py賦給*pmax */if (*pmax < *pz)/* 如果*pz更大 */*pmax = *pz;/* 則將*pz賦給*pmax */printf("max=%dn", max);/* 輸出最大值 */return
25、 0; /* 返回值0, 返回操作系統(tǒng) */解析:程序中定義了4個(gè)指針變量,px指向x,py指向y,pz指向z,pmax指向max, if語句將pmax指向的存儲(chǔ)單元的值與*py與*pz兩個(gè)數(shù)值比較,可知*px代表x的值,可知初始時(shí)假設(shè)x中的值最大,就讓pmax指向x。答案:*pmax = *px或*pmax = x或max = *px或max = x5以下程序的輸出結(jié)果是 。/* 文件路徑名:ex5_2_5main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */#include <string.h>/* 字符串頭文件 */int main
26、(void)/* 主函數(shù)main() */printf("%dn", strlen("IBMn0121");/* 輸出字符串的長(zhǎng)度 */return 0; /* 返回值0, 返回操作系統(tǒng) */解析:轉(zhuǎn)義符'n'、'1'和''都會(huì)別只算一個(gè)字符,所以"IBMn0121"的字符數(shù)為9。答案:96以下程序的輸出結(jié)果是 。/* 文件路徑名:e5_2_6main.c */#include <stdio.h>/* 標(biāo)準(zhǔn)輸入/輸出頭文件 */#include <string.h>
27、;/* 字符串頭文件 */int main(void)/* 主函數(shù)main() */char a = '1', '2', '3', '4', '0'/* 定義字符數(shù)組 */printf("%d,%dn", sizeof(a), strlen(a);/* 輸出字符串所占空間大小與長(zhǎng)度 */return 0; /* 返回值0, 返回操作系統(tǒng) */解析:strlen()求字符串的實(shí)際長(zhǎng)度,不包括'0',sizeof()是求數(shù)組a所占的字節(jié),包括'0'。答案:5,4*7對(duì)
28、長(zhǎng)度為10的查找表表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為 。解析:如果查找表的長(zhǎng)度為10 ,則在最壞情況下,冒泡排序需要經(jīng)過n-1趟從前往后掃描,每趟掃描需要的比較次數(shù)依次是9,8,1,需要總比較次數(shù)為36。答案:45三、編程題1求一個(gè)4×4整型矩陣對(duì)角線元素之和。參考程序:/* 文件路徑名:ex5_3_1main.c */#include <stdio.h>/* 包含庫函數(shù)printf()所需要的信息 */#include <stdlib.h>/* 包含庫函數(shù)system()所需要的信息 */int Sum(int a44)/* 返回二維數(shù)組a對(duì)角線元素
29、之和 */int s = 0, i;/* 定義變量 */for (i = 0; i < 4; i+)/* 求對(duì)角線元素之和 */s = s + aii;/* 累加主對(duì)角線 */s = s + ai3 - i;/* 累加副對(duì)角線 */return s;/* 返回對(duì)角線元素之和 */int main(void)/* 主函數(shù)main() */int a44 = 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16;/* 定義二維數(shù)組 */printf("對(duì)角線元素之和為%dn", Sum(a);/* 輸出二維數(shù)組a對(duì)角線元素之和 */
30、system("PAUSE");/* 調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息 */return 0;/* 返回值0, 返回操作系統(tǒng) */2將一個(gè)數(shù)組中的值按逆序重新存放,例如,原來的順序?yàn)?,8,5,2,9。要求重排為9,2,5,8,6。參考程序:/* 文件路徑名:ex5_3_2main.c */#include <stdio.h>/* 包含庫函數(shù)printf()所需要的信息 */#include <stdlib.h>/* 包含庫函數(shù)system()所需要的信息 */void Reverse(int a, int n)/* 將數(shù)組a中的值按逆
31、序重新存放 */int i, j, tem;/* 定義變量 */for (i = 0, j = n - 1; i < j; i+, j-)/* 交換ai與aj */tem = ai; ai = aj; aj = tem;/* 循環(huán)賦值交換ai與aj */int main(void)/* 主函數(shù)main() */int a = 6, 8, 5, 2, 9, n = 5, i;/* 定義數(shù)組及變量 */printf("原數(shù)組:");for (i = 0; i < n; i+)printf("%d ", ai);/* 依次輸出各元素之值 */pri
32、ntf("n");/* 換行 */Reverse(a, n);/* 將數(shù)組a中的值按逆序重新存放 */printf("逆序后:");for (i = 0; i < n; i+)printf("%d ", ai);/* 依次輸出各元素之值 */printf("n");/* 換行 */system("PAUSE");/* 調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息 */return 0;/* 返回值0, 返回操作系統(tǒng) */3從鍵盤上輸入三行文字,每行文字最多有80個(gè)字符,要求分別統(tǒng)計(jì)其中的
33、英文大寫字母、小寫字母、數(shù)字、空格和其它字符的個(gè)數(shù)。參考程序:/* 文件路徑名:ex5_3_3main.c */#include <stdio.h>/* 包含庫函數(shù)printf()所需要的信息 */#include <stdlib.h>/* 包含庫函數(shù)system()所需要的信息 */#include <string.h>/* 包含字符串庫函數(shù)的信息 */int main(void)/* 主函數(shù)main() */char str81;/* 存儲(chǔ)一行字符 */unsigned int i, j, n1 = 0, n2 = 0, n3 = 0, n4 = 0,
34、n5 = 0;/* 定義變量 */for (i = 0; i < 3; i+)/* 輸入并處理三行字符 */gets(str);/* 輸入一行字符str */for (j = 0; j < strlen(str); j+)/* 統(tǒng)計(jì)字符 */if (strj >= 'A' && strj <= 'Z')/* 大字字母 */n1+;/* 對(duì)大寫字母進(jìn)行記數(shù) */else if (strj >= 'a' && strj <= 'z')/* 小字字母 */n2+;/*
35、對(duì)小寫字母進(jìn)行記數(shù) */else if (strj >= '0' && strj <= '9')/* 數(shù)字 */n3+;/* 對(duì)數(shù)字進(jìn)行記數(shù) */else if (strj = ' ')/* 空格 */n4+;/* 對(duì)空格進(jìn)行記數(shù) */else/* 其它字符 */n5+;/* 對(duì)其它字符進(jìn)行記數(shù) */printf("含%u個(gè)大寫字母n", n1);/* 輸出大寫字母?jìng)€(gè)數(shù) */printf("含%u個(gè)小寫字母n", n2);/* 輸出小寫字母?jìng)€(gè)數(shù) */printf("含%
36、u個(gè)數(shù)字n", n3);/* 輸出數(shù)字個(gè)數(shù) */printf("含%u個(gè)空格n", n4);/* 輸出空格個(gè)數(shù) */printf("含%u個(gè)其它字符n", n5);/* 輸出其它字符個(gè)數(shù) */system("PAUSE");/* 調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息 */return 0;/* 返回值0, 返回操作系統(tǒng) */4編寫一個(gè)程序,將字符數(shù)組s2中全部字符復(fù)制到字符數(shù)組s1中,要求不使用strcpy()函數(shù),在復(fù)制時(shí),'0'也要復(fù)制過,'0'后面的字符不再復(fù)制。參考程序:/*
37、 文件路徑名:ex5_3_4main.c */#include <stdio.h>/* 包含庫函數(shù)printf()所需要的信息 */#include <stdlib.h>/* 包含庫函數(shù)system()所需要的信息 */void StringCopy(char s1, char s2)/* 將字符數(shù)組s2中全部字符復(fù)制到字符數(shù)組s1中,'0'也要復(fù)制過 */int i = 0;/* 定義變量 */while (s1i = s2i) != '0') i+;/* 逐個(gè)復(fù)制字符 */int main(void)/* 主函數(shù)main() */ch
38、ar s180, s2 = "this is a test!"/* 定義字符數(shù)組 */StringCopy(s1, s2);/* 將s2復(fù)制到s1 */puts(s1);/* 輸出s1 */system("PAUSE");/* 調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息 */return 0;/* 返回值0, 返回操作系統(tǒng) */5編寫一個(gè)程序?qū)蓚€(gè)字符串連接起來,要求不用strcat()函數(shù)。參考程序:/* 文件路徑名:ex5_3_5main.c */#include <stdio.h>/* 包含庫函數(shù)printf()所需要的信息 */#
39、include <stdlib.h>/* 包含庫函數(shù)system()所需要的信息 */char *StrCat(char s1, char s2)/* 將s2中的字符串連接到s1 中字符串的后面 */int i = 0, j = 0;/* 定義變量 */while (s1i != '0') i+;/* 使s1i = '0' */while (s1i + j = s2j) != '0') j+;/* 將s2字符串連接到s1中字符串的后面 */return s1;/* 返回字符s1的首地址 */int main(void)/* 主函數(shù)ma
40、in() */char s180 = "This ", s2 = "is a test!"/* 定義字符數(shù)組 */StrCat(s1, s2);/* 將s2連接到s1 */puts(s1);/* 輸出s1 */system("PAUSE");/* 調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息 */return 0;/* 返回值0, 返回操作系統(tǒng) */6編寫一個(gè)程序求字符串的長(zhǎng)度,要求不使用strlen()函數(shù)。參考程序:/* 文件路徑名:ex5_3_6main.c */#include <stdio.h>/* 包含庫函數(shù)
41、printf()所需要的信息 */#include <stdlib.h>/* 包含庫函數(shù)system()所需要的信息 */unsigned int StrLen(char s)/* 返回將s中的字符串的長(zhǎng)度 */int i = 0;/* 定義變量 */while (si != '0') i+;/* 使si = '0',i的值即為s的長(zhǎng)度 */return i;/* 返回i */int main(void)/* 主函數(shù)main() */char s = "This is a test!"/* 定義字符數(shù)組 */printf(&quo
42、t;"%s"的長(zhǎng)度是%un", s, StrLen(s);/* 輸出結(jié)果 */system("PAUSE");/* 調(diào)用庫函數(shù)system( ),輸出系統(tǒng)提示信息 */return 0;/* 返回值0, 返回操作系統(tǒng) */7編寫一個(gè)函數(shù),對(duì)含n個(gè)元素的整型數(shù)組a求最大值與最小值,并通過形參傳回調(diào)用函數(shù),并要求編寫測(cè)程序。參考程序:/* 文件路徑名:ex5_3_7main.c */#include <stdio.h>/* 包含庫函數(shù)printf()所需要的信息 */#include <stdlib.h>/* 包含庫函數(shù)sy
43、stem()所需要的信息 */void MaxMin(int a, int n, int *pMax, int *pMin)/* 求數(shù)組a求最大值與最小值,并通過形參傳回調(diào)用函數(shù) */int i;/* 定義變量 */*pMax = *pMin = a0;/* 初始化*pMax, *pMin */for (i = 1; i < n; i+)/* 逐個(gè)比較ai */if (ai > *pMax) *pMax = ai;/* ai更大,ai為當(dāng)前的最大值 */if (ai < *pMin) *pMin = ai;/* ai更小,ai為當(dāng)前的最小值 */int main(void)/* 主函數(shù)main() */int a = 1, 7, 0, 5, 80, -20, n = 6, max, min;/* 定義數(shù)組及變量 */MaxMin(a, n, &max, &min);/* 求a的最大值及最小值 */printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級(jí)英語下冊(cè) Unit 1 Animals on the farm(Again Please)說課稿 冀教版(三起)
- 8的乘法口訣(說課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)北京版
- 2024年九年級(jí)語文上冊(cè) 第四單元 第15課《少年中國(guó)說》說課稿 北京課改版
- 16 麻雀 第一課時(shí) 說課稿-2024-2025學(xué)年語文四年級(jí)上冊(cè)統(tǒng)編版
- 2024年春七年級(jí)語文下冊(cè) 第二單元 8 木蘭詩說課稿 新人教版
- 1 折彩粽(說課稿)蘇教版二年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)001
- Unit 4 My home Part B Lets learn(說課稿)-2024-2025學(xué)年人教PEP版英語四年級(jí)上冊(cè)
- 2025樓房承包合同協(xié)議模板
- 2025家居裝修工程施工合同范文
- 2025房地產(chǎn)銷售代理合同范本
- 物業(yè)管理服務(wù)應(yīng)急響應(yīng)方案
- 醫(yī)院培訓(xùn)課件:《如何撰寫護(hù)理科研標(biāo)書》
- 風(fēng)車的原理小班課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年山東省濟(jì)南市中考英語試題卷(含答案)
- 2024年北師大版八年級(jí)上冊(cè)全冊(cè)數(shù)學(xué)單元測(cè)試題含答案
- 江蘇省南京市第二十九中2025屆數(shù)學(xué)高二上期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 六年級(jí)數(shù)學(xué)競(jìng)賽試題及答案(六套)
- 八年級(jí)下學(xué)期期末考試語文試題(PDF版含答案)
- 浙教版八年級(jí)下冊(cè)科學(xué)第一章 電和磁整章思維導(dǎo)圖
- (正式版)SH∕T 3541-2024 石油化工泵組施工及驗(yàn)收規(guī)范
評(píng)論
0/150
提交評(píng)論