c語言程序設(shè)計(jì)試題答案_第1頁
c語言程序設(shè)計(jì)試題答案_第2頁
c語言程序設(shè)計(jì)試題答案_第3頁
c語言程序設(shè)計(jì)試題答案_第4頁
c語言程序設(shè)計(jì)試題答案_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、習(xí)題77.1 選擇題。( 1)下列對(duì)字符串的定義中,錯(cuò)誤的是:AA) char str7 = FORTRAN;B) char str = FORTRAN;C) char *str = FORTRAN;D) char str = F,O,R,T,R,A,N,0;( 2)以下程序段的輸出結(jié)果是: Dchar a = ABCDE ;char *p = NULL;for (p=a; pa+5; p+) printf(%sn, p);A) ABCDEB) AC) ED)ABCDEBDBCDECCCDEDBDEEAE3)下列程序是對(duì)字符串的相關(guān)操作,正確的是D_。A)#include main()stat

2、ic char a5;a = abcde ; printf(%sn, a);B)#include main()static char a7= goodbye!;printf(%sn, a) ;C)#include main()char a5 = abcde;printf(%sn, a) ;D)#include main()static char a=abcde;printf(%sn, a) ;4)閱讀下列函數(shù),函數(shù)功能為 _A 。void Exchange(int *p1, int *p2)int p;p = *p1;*p1 = *p2;*p2 = p;A)交換 *p1 和 *p2 的值B)正

3、確,但無法改變 *p1 和*p2 的值C)交換 *p1 和 *p2 的地址D )可能造成系統(tǒng)故障5)設(shè)有語句: int array34;則在下面幾種引用下標(biāo)為 i 和 j 的數(shù)組元素的方法中,不正確的引用方式是: _D 。A) arrayijB) *(*(array + i) + j)C) *(arrayi + j)D ) *(array + i*4 + j)7.2 閱讀下列程序,寫出運(yùn)行結(jié)果。(1)#include main()static int x = 1,2,3;int s, i, *p = NULL;s = 1;p = x;for (i=0; i3; i+)s* = *(p + i)

4、;printf(%dn,s);答案: 62)#include main()int a = 1,2,3,4,5;int *p = NULL;p = a;printf(%d, ,*p);printf(%d, ,*(+p);printf(%d, ,*+p);printf(%d, ,*(p-);printf(%d, ,*p+);printf(%d, ,*p);printf(%d, ,+(*p);printf(%d, ,*p);答案:1, 2, 3, 3, 2, 3, 4, 4,3)#include char b = program;char *a = PROGRAM;main()int i = 0;p

5、rintf(%c%sn,*a, b + 1); while (putchar (*(a + i) i+;printf(i = %dn,i);while ( - i)putchar (*(b + i);printf(n%sn, &b3);答案:ProgramPROGRAM i = 7 margor gram4)/* 源文件名為 */main(int argc, char *argv)int i;for (i=0; iargc; i+)printf(%sn, argvi);假設(shè)該文件及其可執(zhí)行程序位于 E 盤的 TC 目錄下,則當(dāng)命令行參數(shù)為This is aprogram ,則運(yùn)行結(jié)果應(yīng)為什么?

6、答案:Thisisaprogram7.3 閱讀程序, 按要求, 在空白處填寫適當(dāng)?shù)谋磉_(dá)式或語句, 使程序完整, 并符合題目要求。( 1)下面函數(shù)實(shí)現(xiàn) strlen 函數(shù)的功能,即計(jì)算指針 p 所指向的字符串中的實(shí)際字符個(gè)數(shù)。 unsigned int MyStrlen(char *p)int len;len = 0;for (; *p !=0 ; p+)len + ;return len ;( 2)下面函數(shù)也是實(shí)現(xiàn) strlen 函數(shù)功能的, 但計(jì)算字符串 s 中的實(shí)際字符個(gè)數(shù)的方法與上 一道題有所不同。unsigned int MyStrlen(char s)char *p = s;whil

7、e (*p !=0)p+;return p-s 提示:移動(dòng)指針 p 使其指向字符串結(jié)束標(biāo)志,此時(shí)指針 p 與字符串首地址之間的差值 即為字符串中的實(shí)際字符個(gè)數(shù)。 ( 3)下面函數(shù)實(shí)現(xiàn) strcmp 函數(shù)的功能, 即比較兩個(gè)字符串的大小, 將兩個(gè)字符串中第一個(gè) 出現(xiàn)的不相同字符的 ASII 碼值之差作為比較的結(jié)果返回,返回值大于 0 表示第一個(gè)字符串 大于第二個(gè)字符串, 返回值小于 0 表示, 表示第一個(gè)字符串小于第二個(gè)字符串, 當(dāng)兩個(gè)字符 串完全一樣時(shí),返回值為 0。int MyStrcmp(char *p1, char *p2)for (; *p1 = *p2; p1+,p2+)if (*p

8、1 = 0) return0 ;return *p1-*p2 ;7.4 在下面使用指針數(shù)組的程序中,存在一個(gè)錯(cuò)誤,試分析這個(gè)程序,并上機(jī)運(yùn)行,觀察 運(yùn)行結(jié)果,找到這個(gè)錯(cuò)誤,并分析錯(cuò)誤的原因。#include void Print(char *arr, int len);void main()char *pArray = Fred,Barrey,Wilma,Betty;int num = sizeof(pArray) / sizeof(char);printf(Total string numbers = %dn, num);Print(pArray, num);void Print(char

9、*arr, int len)int i;for (i=0; ilen; i+)printf(%sn, arri);答案: int num = sizeof(pArray) / sizeof(char);應(yīng)改為: int num = sizeof(pArray) / sizeof(char*);或:int num = sizeof(pArray) / sizeof(pArray0);理由: pArray 是一個(gè)存放了 4個(gè)字符串指針的數(shù)組,其中每一個(gè)元素是一個(gè)指針, 而非一個(gè)字符。程序希望得到的運(yùn)行結(jié)果如下:Total string numbers = 4FredBarreyWilmaBetty

10、7.5 編寫一個(gè)交換變量值的函數(shù),利用該函數(shù)交換數(shù)組a 和數(shù)組 b 中的對(duì)應(yīng)元素。 提示:參考例,用指針變量做函數(shù)參數(shù)實(shí)現(xiàn)兩數(shù)交換。答案:void swap( int a, int b, int n)int temp;for (int i =0; i n;i +)temp = ai ;ai=bi ;b i = temp;7.6 任意從鍵盤輸入 10 個(gè)整數(shù),用函數(shù)編程實(shí)現(xiàn)計(jì)算其中的最大值和最小值, 并返回它們 所在數(shù)組中的位置。 提示:參考例,用指針變量做函數(shù)參數(shù),得到最大值和最小值在數(shù)組中的位置。 答案: void MaxAndMin( int * a, int n, int * pMaxI

11、ndex, int * pMinIndex )*pMaxIndex = * pMinIndex = 0;for ( int i =0;i n; i +)if ( a* pMaxIndex a i )* pMinIndex = i ;7.7 不用 strcat 函數(shù)編程實(shí)現(xiàn)字符串連接函數(shù) strcat 的功能,將字符串 t 連接到字符串 s 的尾部。 提示:參考例,用 i 和 j 分別作為字符數(shù)組 s 和字符數(shù)組 t 的下標(biāo),先將 i 和 j 同時(shí) 初始化為 0,然后移動(dòng) i 使其位于字符 s 的尾部即字符串結(jié)束標(biāo)志處,再將字符數(shù)組 t 中的 字符依次拷貝到字符數(shù)組 s 中。 答案:void s

12、trcat ( char * s, char * t )while (* s) s+;while (* s+ = * t +);7.8 編程從鍵盤輸入一個(gè)字符串,將其字符順序顛倒后重新存放,并輸出這個(gè)字符串。答案:#include #include int main()char s100=0;scanf ( %s, s);int start = 0;int end = strlen ( s)-1;for (; start end; start +, end-)int temp = s start ;s start = s end;s end = temp;printf ( %sn , s);7

13、.9 * 編程判斷輸入的一串字符是否為“回文” 。所謂“回文”就是指順讀和倒讀都一樣的字 符串,例如 level 、 ABCCBA都是回文。 提示:由題意可知,回文就是一個(gè)對(duì)稱的字符串,利用這一特點(diǎn)可采用如下算法進(jìn)行 判斷:( 1)設(shè)置兩個(gè)指針 pStart 和 pEnd,讓 pStart 指向字符串首部,讓 pEnd 指向字符串 尾部;(2)利用循環(huán)從字符串兩邊對(duì)指針?biāo)缸址M(jìn)行比較,當(dāng)對(duì)應(yīng)的兩字符相等且兩指針 未超越對(duì)方時(shí),使指針 pStart 向前移動(dòng)一個(gè)字符位置即加 1,使指針 pEnd 向后移動(dòng)一個(gè)字 符位置即減 1,一旦發(fā)現(xiàn)對(duì)應(yīng)的兩字符不等或兩指針以互相超越(不可能是回文),則立即

14、停止循環(huán);( 3)根據(jù)退出循環(huán)時(shí)兩指針的位置,判斷字符串是否為回文。答案:#include #include int main()char s100=0;scanf ( %s, s);int start = 0;int end = strlen ( s)-1;int flag = 1;for (; start end; start +, end-)if ( s start != s end)flag = 0;break ;printf ( %sn , flag ?YES: NO);7.10 * 編寫一個(gè)能對(duì)任意 mn的矩陣進(jìn)行轉(zhuǎn)置的函數(shù) 提示:參考例,用指針變量做函數(shù)參數(shù)編程實(shí)現(xiàn)。 答案:#i

15、nclude void Transpose (int * arrDest , int * arrSource ,int for ( int i =0;i m; i +)for ( int j =0; j n;j +)*( arrDest +m*j +i ) = *( arrSource +n*i int main()int s34 =0,1,2,3,4,5,6,7,8,9,10,11,;int t 43;Transpose 。m, int n)+j );Transpose (& t 00,& s00,3,4);for ( int i =0;i 4;i +)for ( int j =0;j 3;j +)printf ( %4d, t i j );printf (n );7.11* 用指針數(shù)組編程實(shí)現(xiàn):任意從鍵盤輸入一個(gè)數(shù)字表示的月份值n,程序輸出該月份的英文表示,若 n 不在 112 之間,則輸出“ Illegal month ”。答案:#include int main()char* months=January , February ,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論