![語言程序設(shè)計(jì)試題答案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/2934c2d4-7848-469e-a365-9b20974ffe15/2934c2d4-7848-469e-a365-9b20974ffe151.gif)
![語言程序設(shè)計(jì)試題答案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/2934c2d4-7848-469e-a365-9b20974ffe15/2934c2d4-7848-469e-a365-9b20974ffe152.gif)
![語言程序設(shè)計(jì)試題答案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/2934c2d4-7848-469e-a365-9b20974ffe15/2934c2d4-7848-469e-a365-9b20974ffe153.gif)
![語言程序設(shè)計(jì)試題答案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/2934c2d4-7848-469e-a365-9b20974ffe15/2934c2d4-7848-469e-a365-9b20974ffe154.gif)
![語言程序設(shè)計(jì)試題答案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/20/2934c2d4-7848-469e-a365-9b20974ffe15/2934c2d4-7848-469e-a365-9b20974ffe155.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、習(xí) 題 77.1 選擇題。(1)下列對字符串的定義中,錯(cuò)誤的是: A 。A) char str7 = "FORTRAN"B) char str = "FORTRAN"C) char *str = "FORTRAN"D) char str = 'F','O','R','T','R','A','N',0;(2)以下程序段的輸出結(jié)果是:_D_char a = "ABCDE" ; char *p = NULL;f
2、or (p=a; p<a+5; p+) printf("%sn", p);A)ABCDEB) AC) ED)ABCDE B DBCDE C CCDE D BDE E AE(3)下列程序是對字符串的相關(guān)操作,正確的是_D_。A)#include <stdio.h>main()static char a5; a = "abcde" ; printf("%sn", a);B)#include <stdio.h>main()static char a7= "goodbye!" printf(&
3、quot;%sn", a) ;C)#include <stdio.h>main()char a5 = "abcde" printf("%sn", a) ;D)#include <stdio.h>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)正確,
4、但無法改變*p1和*p2的值C)交換*p1和*p2的地址 D)可能造成系統(tǒng)故障(5)設(shè)有語句:int array34; 則在下面幾種引用下標(biāo)為i和j的數(shù)組元素的方法中,不正確的引用方式是:_D_。A)arrayij B)*(*(array + i) + j)C)*(arrayi + j) D)*(array + i*4 + j)7.2 閱讀下列程序,寫出運(yùn)行結(jié)果。(1)#include <stdio.h>main()static int x = 1,2,3;int s, i, *p = NULL; s = 1;p = x;for (i=0; i<3; i+) s* = *(p
5、 + i);printf("%dn",s);答案:6(2)#include <stdio.h>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, &
6、quot;,+(*p);printf("%d, ",*p);答案:1, 2, 3, 3, 2, 3, 4, 4,(3)#include <stdio.h>char b = "program"char *a = "PROGRAM"main() int i = 0;printf("%c%sn",*a, b + 1);while (putchar (*(a + i) i+;printf("i = %dn",i);while ( - i) putchar (*(b + i);printf(&
7、quot;n%sn", &b3); 答案:ProgramPROGRAM i = 7margorgram(4)/* 源文件名為demo.c */main(int argc, char *argv)int i;for (i=0; i<argc; i+) printf("%sn", argvi);假設(shè)該文件demo.c及其可執(zhí)行程序demo.exe位于E盤的TC目錄下,則當(dāng)命令行參數(shù)為demo.exe This is a program,則運(yùn)行結(jié)果應(yīng)為什么?答案:demo.exeThisisaprogram7.3 閱讀程序,按要求,在空白處填寫適當(dāng)?shù)谋磉_(dá)式
8、或語句,使程序完整,并符合題目要求。(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;while (*p != 0 ) p+;return p-s ;提示:移動指針p使其指向字符串結(jié)束標(biāo)志,此時(shí)指
9、針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 (*p1 = '0') return 0 ;return *p1-*p2 ;7.4 在下面使用指針數(shù)組的程序中,存在一個(gè)錯(cuò)誤,試分析
10、這個(gè)程序,并上機(jī)運(yùn)行,觀察運(yùn)行結(jié)果,找到這個(gè)錯(cuò)誤,并分析錯(cuò)誤的原因。#include <stdio.h>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
11、);void Print(char *arr, int len) int i; for (i=0; i<len; 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 strin
12、g numbers = 4FredBarreyWilmaBetty7.5 編寫一個(gè)交換變量值的函數(shù),利用該函數(shù)交換數(shù)組a和數(shù)組b中的對應(yīng)元素。提示:參考例7.2,用指針變量做函數(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;bi=temp;7.6 任意從鍵盤輸入10個(gè)整數(shù),用函數(shù)編程實(shí)現(xiàn)計(jì)算其中的最大值和最小值,并返回它們所在數(shù)組中的位置。提示:參考例7.3,用指針變量做函數(shù)參數(shù),得到最大值和最小值在數(shù)組中的位置。答案:void MaxAndMin(int *a
13、, int n, int *pMaxIndex, int *pMinIndex)*pMaxIndex = *pMinIndex = 0;for (int i=0;i<n;i+)if (a*pMaxIndex<ai)*pMaxIndex = i;if (a*pMinIndex>ai)*pMinIndex = i;7.7 不用strcat函數(shù)編程實(shí)現(xiàn)字符串連接函數(shù)strcat的功能,將字符串t連接到字符串s的尾部。提示:參考例7.5,用i和j分別作為字符數(shù)組s和字符數(shù)組t的下標(biāo),先將i和j同時(shí)初始化為0,然后移動i使其位于字符s的尾部即字符串結(jié)束標(biāo)志處,再將字符數(shù)組t中的字符依次
14、拷貝到字符數(shù)組s中。答案:void strcat(char*s,char*t)while (*s) s+;while(*s+ = *t+);7.8 編程從鍵盤輸入一個(gè)字符串,將其字符順序顛倒后重新存放,并輸出這個(gè)字符串。答案:#include <stdio.h>#include <string.h>int main()char s100=0;scanf("%s",s);int start = 0;int end = strlen(s)-1;for (;start<end;start+,end-)int temp = sstart;sstart
15、= send;send = temp;printf("%sn",s);7.9 *編程判斷輸入的一串字符是否為“回文”。所謂“回文”就是指順讀和倒讀都一樣的字符串,例如"level"、"ABCCBA"都是回文。提示:由題意可知,回文就是一個(gè)對稱的字符串,利用這一特點(diǎn)可采用如下算法進(jìn)行判斷:(1)設(shè)置兩個(gè)指針pStart和pEnd,讓pStart指向字符串首部,讓pEnd指向字符串尾部;(2)利用循環(huán)從字符串兩邊對指針?biāo)缸址M(jìn)行比較,當(dāng)對應(yīng)的兩字符相等且兩指針未超越對方時(shí),使指針pStart向前移動一個(gè)字符位置即加1,使指針pEnd向后
16、移動一個(gè)字符位置即減1,一旦發(fā)現(xiàn)對應(yīng)的兩字符不等或兩指針以互相超越(不可能是回文),則立即停止循環(huán);(3)根據(jù)退出循環(huán)時(shí)兩指針的位置,判斷字符串是否為回文。答案:#include <stdio.h>#include <string.h>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 (sstart!=send)flag = 0;break;printf("
17、;%sn",flag?"YES":"NO");7.10 *編寫一個(gè)能對任意m×n的矩陣進(jìn)行轉(zhuǎn)置的函數(shù)Transpose。提示:參考例7.9,用指針變量做函數(shù)參數(shù)編程實(shí)現(xiàn)。答案:#include <stdio.h>void Transpose(int *arrDest,int *arrSource,int m,int n)for (int i=0;i<m;i+)for (int j=0;j<n;j+)*(arrDest+m*j+i) = *(arrSource+n*i+j);int main()int s34 =
18、 0,1,2,3,4,5,6,7,8,9,10,11,;int t43;Transpose(&t00,&s00,3,4);for (int i=0;i<4;i+)for (int j=0;j<3;j+)printf("%4d",tij);printf("n");7.11 *用指針數(shù)組編程實(shí)現(xiàn):任意從鍵盤輸入一個(gè)數(shù)字表示的月份值n,程序輸出該月份的英文表示,若n不在112之間,則輸出“Illegal month”。答案:#include <stdio.h>int main()char* months="January","February","March","April","May","June","July","Augu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人簽訂合同委托(2篇)
- 2025年個(gè)人門面房屋租賃合同經(jīng)典版(三篇)
- 2025年產(chǎn)品維護(hù)服務(wù)合同機(jī)器或程序(2篇)
- 2025年個(gè)人車位出租協(xié)議經(jīng)典版(三篇)
- 2025年個(gè)體合伙經(jīng)營協(xié)議經(jīng)典版(三篇)
- 2025年產(chǎn)品委托銷售合同常用版(五篇)
- 2025年人防車位轉(zhuǎn)讓協(xié)議(4篇)
- 2025年二手房全款購房合同(2篇)
- 2025年企業(yè)倉儲合同(4篇)
- 2025年產(chǎn)品銷售代理協(xié)議格式范文(2篇)
- DZ∕T 0080-2010 煤炭地球物理測井規(guī)范(正式版)
- 小學(xué)生心理健康教育學(xué)情分析
- 2024年高考語文一輪復(fù)習(xí):文言文文意概括簡答題知識清單 (二)
- 超級大腦:孩子六維能力培養(yǎng)指南
- 縱隔腫物的護(hù)理查房
- 新能源汽車概論題庫
- 設(shè)備維保的維修成本和維護(hù)費(fèi)用
- 客運(yùn)站員工安全生產(chǎn)教育培訓(xùn)
- 口腔預(yù)防兒童宣教
- 綠城桃李春風(fēng)推廣方案
- 顱腦損傷的生物標(biāo)志物
評論
0/150
提交評論