C語言程序設(shè)計教程第2版余琴課后答案_第1頁
C語言程序設(shè)計教程第2版余琴課后答案_第2頁
C語言程序設(shè)計教程第2版余琴課后答案_第3頁
C語言程序設(shè)計教程第2版余琴課后答案_第4頁
C語言程序設(shè)計教程第2版余琴課后答案_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章一、選擇題1.B2.C3.B4.A5.D6.C7.C8.B9.C10.A二、填空題1.物理地址2.文件包含;宏定義3.頭文件;頭文件4.注釋;多行注釋;單行注釋;注釋5.分號6.變量定義;執(zhí)行語句7.編輯;編譯;連接;運(yùn)行8..c9.目標(biāo)文件;.obj10.可執(zhí)行文件;.exe三、簡答題1.簡述C語言的優(yōu)點(1)語言簡潔緊湊:C語言的語法結(jié)構(gòu)簡潔,只有32個關(guān)鍵字和9種控制語句,程序書寫形式自由,能夠高效地表達(dá)復(fù)雜的算法和程序邏輯。(2)運(yùn)算符豐富:C語言擁有豐富的運(yùn)算符,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符等,能方便地實現(xiàn)各種復(fù)雜的運(yùn)算,滿足不同編程需求。(3)數(shù)據(jù)類型豐富:提供了多種基本數(shù)據(jù)類型(如整型、浮點型、字符型等)和構(gòu)造數(shù)據(jù)類型(如數(shù)組、結(jié)構(gòu)體、聯(lián)合體等),便于實現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu),增強(qiáng)了程序?qū)?shù)據(jù)的處理能力。(4)結(jié)構(gòu)化程序設(shè)計:C語言是結(jié)構(gòu)化語言,采用函數(shù)作為程序模塊,便于按模塊化方式組織程序,使程序結(jié)構(gòu)清晰,易于理解、調(diào)試和維護(hù)。(5)可移植性好:C語言編寫的程序幾乎不用修改或只需少量修改就能在不同的操作系統(tǒng)和硬件平臺上運(yùn)行,提高了程序開發(fā)的效率和代碼的復(fù)用性。(6)能進(jìn)行底層開發(fā):它可以直接訪問內(nèi)存地址,進(jìn)行位操作,適合編寫系統(tǒng)軟件、驅(qū)動程序等底層代碼,在系統(tǒng)編程領(lǐng)域具有很大優(yōu)勢。2.簡述C語言與C++語言的關(guān)系與區(qū)別(1)關(guān)系C++語言是在C語言的基礎(chǔ)上發(fā)展起來的,C語言是C++語言的子集。C++保留了C語言的大部分特性和語法,并且在C語言的基礎(chǔ)上進(jìn)行了功能擴(kuò)展,許多C語言程序可以直接在C++環(huán)境中編譯運(yùn)行。(2)區(qū)別①面向?qū)ο筇匦裕篊語言是面向過程的編程語言,主要關(guān)注程序的算法和流程;C++語言支持面向?qū)ο缶幊蹋黾恿祟悺ο蟆⒎庋b、繼承、多態(tài)等面向?qū)ο蟮奶匦裕钩绦蚋m合大型軟件的開發(fā)和維護(hù)。②語法差異:C++增加了一些新的語法元素,如引用、函數(shù)重載、模板等。引用提供了一種更方便的變量別名機(jī)制;函數(shù)重載允許在同一作用域內(nèi)定義多個同名但參數(shù)列表不同的函數(shù);模板則用于實現(xiàn)通用編程,提高代碼的復(fù)用性。③異常處理:C++引入了異常處理機(jī)制(try-catch-throw),能更好地處理程序運(yùn)行時出現(xiàn)的錯誤和異常情況,增強(qiáng)了程序的穩(wěn)定性和可靠性;C語言通常使用返回值等方式來處理錯誤,處理方式相對簡單。3.簡述C語言源程序的結(jié)構(gòu)特點(1)函數(shù)為基本單位:C語言源程序由一個或多個函數(shù)組成,其中有且僅有一個主函數(shù)(main函數(shù))。函數(shù)是實現(xiàn)程序功能的基本模塊,每個函數(shù)完成特定的任務(wù),通過函數(shù)調(diào)用實現(xiàn)程序的整體功能。(2)預(yù)處理命令:源程序可以包含預(yù)處理命令,如#include用于包含頭文件,使程序能夠使用標(biāo)準(zhǔn)庫函數(shù)或自定義函數(shù);#define用于宏定義,進(jìn)行符號常量定義或宏替換,增強(qiáng)程序的可讀性和可維護(hù)性。(3)注釋:使用/*…*/(多行注釋)和//(單行注釋)對程序進(jìn)行注釋,解釋程序代碼的功能和邏輯,提高程序的可讀性,便于他人理解和維護(hù)代碼。注釋內(nèi)容在編譯時被忽略,不影響程序的運(yùn)行。(4)變量和數(shù)據(jù)類型:程序中需要定義變量來存儲數(shù)據(jù),C語言提供了豐富的數(shù)據(jù)類型,變量定義通常在函數(shù)的開頭部分,遵循先定義后使用的原則。(5)語句構(gòu)成:由各種語句組成,如表達(dá)式語句、控制語句(if語句、for語句、while語句等)、函數(shù)調(diào)用語句等,這些語句按照一定的邏輯順序組合,實現(xiàn)程序的具體功能。語句以分號結(jié)束。4.簡述C語言的字符集有哪些(1)字母:包括大寫英文字母A-Z和小寫英文字母a-z,共52個。字母在C語言中用于定義標(biāo)識符(如變量名、函數(shù)名等)、表示字符常量等。(2)數(shù)字:0-9這10個數(shù)字,用于表示數(shù)值常量,參與各種算術(shù)運(yùn)算和數(shù)據(jù)處理。(3)特殊字符①標(biāo)點符號:如逗號(,)用于分隔函數(shù)參數(shù)、變量聲明等;分號(;)用于結(jié)束語句;冒號(:)用于switch語句中的case標(biāo)簽等。②運(yùn)算符:包括算術(shù)運(yùn)算符(+、-、*、/、%等)、關(guān)系運(yùn)算符(>、<、==、!=等)、邏輯運(yùn)算符(&&、||、!)、位運(yùn)算符(&、|、^、~、<<、>>)等,用于進(jìn)行各種運(yùn)算。③其他特殊字符:如空格、制表符(\t)、換行符(\n)等,用于分隔程序中的單詞、語句,影響程序的排版和格式,但在字符串中具有特定含義。5.簡述編寫C語言程序時應(yīng)遵循的規(guī)則(1)語法規(guī)則:嚴(yán)格遵循C語言的語法規(guī)范,如變量必須先定義后使用;語句要以分號結(jié)尾;函數(shù)定義要有正確的函數(shù)頭和函數(shù)體;運(yùn)算符的使用要符合其語法和優(yōu)先級規(guī)定等。(2)命名規(guī)則:標(biāo)識符(變量名、函數(shù)名、數(shù)組名等)的命名要遵循一定規(guī)則,只能由字母、數(shù)字和下劃線組成,且不能以數(shù)字開頭,不能使用C語言的關(guān)鍵字作為標(biāo)識符。命名應(yīng)具有描述性,便于理解其用途。(3)代碼結(jié)構(gòu)規(guī)則:采用結(jié)構(gòu)化編程思想,合理劃分函數(shù),每個函數(shù)完成單一、明確的功能。程序要有清晰的結(jié)構(gòu),如主函數(shù)負(fù)責(zé)程序的整體流程控制,其他函數(shù)負(fù)責(zé)具體功能實現(xiàn)。(4)注釋規(guī)則:適當(dāng)?shù)靥砑幼⑨專瑢﹃P(guān)鍵代碼段、復(fù)雜算法、變量用途等進(jìn)行解釋說明,提高代碼的可讀性和可維護(hù)性。注釋要簡潔明了,避免冗余。(5)縮進(jìn)和排版規(guī)則:使用一致的縮進(jìn)風(fēng)格(如4個空格或1個制表符)來表示代碼的層次結(jié)構(gòu),使程序結(jié)構(gòu)清晰易讀。合理使用空格分隔運(yùn)算符、函數(shù)參數(shù)等,增強(qiáng)代碼的可讀性。四、編程題#include<stdio.h>intmain(){printf("***********************************\n");printf("我是XXX\n");printf("***********************************\n");return0;}

第二章一、選擇題1.C2.B3.B4.A5.A6.C7.C8.D9.C10.B11.B12.D13.D14.A二、填空題1.1.02.283.整型;浮點型;字符型4.逗號運(yùn)算符5.常量;變量6.數(shù)據(jù)類型;變量名7.字符常量;1個字節(jié);ASCII碼值8.運(yùn)算符;運(yùn)算對象;常量;變量;函數(shù)調(diào)用9.單目運(yùn)算符;前置運(yùn)算;后置運(yùn)算10.復(fù)合賦值運(yùn)算符11.左結(jié)合性;右結(jié)合性;右結(jié)合性;左結(jié)合性12.24;22;60;0;0;013.715.716.3.5三、編程題1.#include<stdio.h>intmain(){floatlength=2,width=5,height=8;floatsurfaceArea=2*(length*width+length*height+width*height);floatvolume=length*width*height;printf("長方體的表面積為:%.2f\n",surfaceArea);printf("長方體的體積為:%.2f\n",volume);return0;}2.#include<stdio.h>#definePI3.14intmain(){floatradius,surfaceArea,volume;printf("請輸入球體半徑:");scanf("%f",&radius);surfaceArea=4*PI*radius*radius;volume=(4.0/3.0)*PI*radius*radius*radius;printf("球體的表面積為:%.2f\n",surfaceArea);printf("球體的體積為:%.2f\n",volume);return0;}3.#include<stdio.h>intmain(){charch='X';charprevCh=ch-1;charnextCh=ch+1;charprevLowerCh=tolower(prevCh);charnextLowerCh=tolower(nextCh);printf("字符%c前面的字符是%c,其小寫形式是%c\n",ch,prevCh,prevLowerCh);printf("字符%c后面的字符是%c,其小寫形式是%c\n",ch,nextCh,nextLowerCh);return0;}

第三章一、選擇題1.B2.C3.C4.C5.A6.C7.C8.B9.D10.D二、填空題1.順序結(jié)構(gòu);選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu)2.變量名=表達(dá)式;3.printf();scanf();,107.7,558.2619.3,310.666.0000006.66666711.a=3b=4c=5x=1.200000,y=2.400000,z=-3.600000x+y=3.60y+z=-1.20z+x=-2.40u=51274n=128765c1='a'or97(ASCII)c2='b'or98(ASCII)12.6.013.m=++i;n=j--;14.&a,&b,&caverage=(a+b+c)/3;15.temp&a,&b,&ctemp=a;a=b;b=c;c=temp;三、編程題1.#include<stdio.h>intmain(){printf("*******************\n");printf("*CLANGUAGE*\n");printf("*******************\n");return0;}2.#include<stdio.h>intmain(){intnum1,num2,num3,num4,num5;floataverage;printf("請輸入五個整數(shù):");scanf("%d%d%d%d%d",&num1,&num2,&num3,&num4,&num5);average=(num1+num2+num3+num4+num5)/5.0;printf("它們的平均值是:%.2f\n",average);return0;}3.#include<stdio.h>intmain(){charc1,c2,c3;printf("請輸入三個字符:");scanf("%c%c%c",&c1,&c2,&c3);printf("反向輸出為:%c%c%c\n",c3,c2,c1);return0;}4.#include<stdio.h>intmain(){inta,b;floatx,y;charc1,c2;printf("請按格式輸入數(shù)據(jù):a=3b=7x=8.5y=71.82c1=Ac2=a\n");scanf("a=%db=%dx=%fy=%fc1=%cc2=%c",&a,&b,&x,&y,&c1,&c2);return0;}

第四章一、選擇題1.A2.D3.B4.C5.C6.C7.B8.A9.C二、填空題1.else子句與在它之前最接近的、尚未配對的if子句配對2.根據(jù)條件表達(dá)式的值來選擇執(zhí)行兩個表達(dá)式中的一個。若條件表達(dá)式的值為真,則執(zhí)行“?”后的表達(dá)式;若為假,則執(zhí)行“:”后的表達(dá)式3.(1)a<b||a<c(2)a>c&&b>c(3)(a<c)||(b<c)(4)a%2==14.if(a<=b){x=1;printf("####x=%d\n",x);}else{y=2;printf("****y=%d\n",y);}5.GOOD!OK!NO!ERROR!6.a<c;t=b;7.ch>='A'&&ch<='Z';ch=ch-32;8.-1三、編程題1.#include<stdio.h>#include<math.h>intmain(){floata,b,c;printf("請輸入三個數(shù):");scanf("%f%f%f",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a){printf("這三個數(shù)能構(gòu)成三角形。");if(fabs(a*a+b*b-c*c)<1e-6||fabs(a*a+c*c-b*b)<1e-6||fabs(b*b+c*c-a*a)<1e-6){printf("且是直角三角形。\n");}else{printf("但不是直角三角形。\n");}}else{printf("這三個數(shù)不能構(gòu)成三角形。\n");}return0;}2.#include<stdio.h>#definePI3.14159intmain(){floatr;intk;printf("請輸入圓的半徑r和整型數(shù)k:");scanf("%f%d",&r,&k);if(k==1){floatarea=PI*r*r;printf("圓的面積為:%.2f\n",area);}elseif(k==2){floatcircumference=2*PI*r;printf("圓的周長為:%.2f\n",circumference);}elseif(k==3){floatarea=PI*r*r;floatcircumference=2*PI*r;printf("圓的周長為:%.2f,圓的面積為:%.2f\n",circumference,area);}else{printf("無效的k值。\n");}return0;}3.#include<stdio.h>#include<math.h>intmain(){floatx,y;printf("請輸入自變量x的值:");scanf("%f",&x);if(x<0){y=x+1;}elseif(x<5){y=sqrt(x);}elseif(x<10){y=x*x+1;}else{y=2*x-1;}printf("函數(shù)值y為:%.2f\n",y);return0;}4.#include<stdio.h>intmain(){floata,b,c,d,e,t;printf("請輸入a、b、c、d、e五個數(shù):");scanf("%f%f%f%f%f",&a,&b,&c,&d,&e);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(a>e){t=a;a=e;e=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(b>e){t=b;b=e;e=t;}if(c>d){t=c;c=d;d=t;}if(c>e){t=c;c=e;e=t;}if(d>e){t=d;d=e;e=t;}printf("從小到大的順序為:%.2f,%.2f,%.2f,%.2f,%.2f\n",a,b,c,d,e);return0;}5.#include<stdio.h>intmain(){floatnum1,num2,result;charop;printf("請輸入運(yùn)算數(shù)1、四則運(yùn)算符和運(yùn)算數(shù)2(例如:4+3):");scanf("%f%c%f",&num1,&op,&num2);switch(op){case'+':result=num1+num2;break;case'-':result=num1-num2;break;case'*':result=num1*num2;break;case'/':if(num2!=0){result=num1/num2;}else{printf("除數(shù)不能為0。\n");return1;}break;default:printf("無效的運(yùn)算符。\n");return1;}printf("計算結(jié)果為:%.2f\n",result);return0;}

第五章一、單選題1.D2.B3.D4.C5.C6.C7.B8.A9.C10.C二、填空題1.while;do-while;for2.先判斷條件,后執(zhí)行循環(huán)體;先執(zhí)行循環(huán)體,后判斷條件3.跳出當(dāng)前循環(huán);跳過本次循環(huán)剩余部分,進(jìn)入下一次循環(huán)4.11;-1;105.06.循環(huán);switch7.一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)8.189.3,310.311.**********12.5413.x>=0;x<amin14.m%n==0;s==m三、編程題1.#include<stdio.h>intmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++){printf("%d*%d=%d",i,j,i*j);}printf("\n");}return0;}2.#include<stdio.h>intmain(){inti,j;longlongsum=0,factorial;for(i=1;i<=10;i++){factorial=1;for(j=1;j<=i;j++){factorial*=j;}sum+=factorial;}printf("1!+2!+3!+…+10!的值為:%lld\n",sum);return0;}3.#include<stdio.h>intmain(){intsum=0,i,sign=1;for(i=1;i<=101;i+=2){sum+=sign*i;sign=-sign;}printf("1-3+5-7+…-99+101的值為:%d\n",sum);return0;}4.#include<stdio.h>intmain(){intm,n,s;for(m=2;m<1000;m++){s=0;for(n=1;n<=m/2;n++){if(m%n==0){s+=n;}}if(s==m){printf("%d是完全數(shù)\n",m);}}return0;}5.#include<stdio.h>intmain(){inti,j;for(i=1;i<=5;i++){for(j=1;j<=5-i;j++){printf("");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}for(i=4;i>=1;i--){for(j=1;j<=5-i;j++){printf("");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}return0;}

第六章一、選擇題1.B2.D3.D4.A5.A6.A7.B8.A9.D10.C11.C12.C13.D14.D15.C16.D17.D18.B19.C20.C二、填空題1.數(shù)據(jù)類型;相同2.標(biāo)識符3.整型常量;符號常量;變量4.可以省略5.0(對于數(shù)值型數(shù)組)或'\0'(對于字符型數(shù)組)6.引用;數(shù)組7.按行優(yōu)先順序存儲,即先存儲第一行元素,再存儲第二行元素,依次類推8.行數(shù);列數(shù)9.m-1;n-110.字符數(shù)組11.4512.713.15926103711481214.*********15.abcde16.(1)&a[i];(2)i%4==0&&i!=0;(3)printf("\n");;(4)a[i]17.(1)m=100;(2)(m/10)%10;(3)a[i]=m18.(1)i<10;(2)&a[i];(3)t=a[i];(4)a[i]19.(1)c=0;(2)max=a[0][0];(3)for(j=0;j<4;j++);(4)r=i20.(1)for(j=0;j<4;j++);(2)a[i][j]+b[i][j];(3)for(i=0;i<3;i++);(4)printf("\n")三、編程題1.#include<stdio.h>intmain(){intarr[]={3,7,8,9,10,4,5};intsum=0;for(inti=0;i<sizeof(arr)/sizeof(arr[0]);i++){if(arr[i]%2==0){sum+=arr[i];}}printf("該數(shù)組中所有偶數(shù)元素的和為:%d\n",sum);return0;}2.#include<stdio.h>intmain(){intarr[10],max,min,maxIndex,minIndex;printf("請輸入10個整數(shù):\n");for(inti=0;i<10;i++){scanf("%d",&arr[i]);}max=min=arr[0];maxIndex=minIndex=0;for(inti=1;i<10;i++){if(arr[i]>max){max=arr[i];maxIndex=i;}if(arr[i]<min){min=arr[i];minIndex=i;}}printf("最大值為:%d,下標(biāo)為:%d\n",max,maxIndex);printf("最小值為:%d,下標(biāo)為:%d\n",min,minIndex);return0;}3.#include<stdio.h>intmain(){intarr[11]={1,3,5,7,9,11,13,15,17,19};intnum,i,j;printf("請輸入要插入的數(shù):");scanf("%d",&num);for(i=0;i<10;i++){if(arr[i]>num){break;}}for(j=9;j>=i;j--){arr[j+1]=arr[j];}arr[i]=num;printf("插入后的數(shù)組為:\n");for(i=0;i<11;i++){printf("%d",arr[i]);}printf("\n");return0;}4.#include<stdio.h>intmain(){intarr[3][3],i,j,sum=0;printf("請輸入3×3的二維數(shù)組:\n");for(i=0;i<3;i++){for(j=0;j<3;j++){scanf("%d",&arr[i][j]);}}printf("行列交換后的數(shù)組為:\n");for(i=0;i<3;i++){for(j=0;j<3;j++){printf("%d",arr[j][i]);}printf("\n");}for(i=0;i<3;i++){sum+=arr[i][i];sum+=arr[i][2-i];}if(sum>arr[1][1]){sum-=arr[1][1];}printf("兩條對角線元素之和為:%d\n",sum);return0;}5.#include<stdio.h>#include<ctype.h>intmain(){charstr[100];intletter=0,digit=0,space=0,other=0;printf("請輸入一行字符串:\n");fgets(str,100,stdin);for(inti=0;str[i]!='\0';i++){if(isalpha(str[i])){letter++;}elseif(isdigit(str[i])){digit++;}elseif(isspace(str[i])){space++;}else{other++;}}printf("英文字符個數(shù):%d\n",letter);printf("數(shù)字個數(shù):%d\n",digit);printf("空格個數(shù):%d\n",space);printf("其他字符個數(shù):%d\n",other);return0;}

第七章一、選擇題1.B2.A3.B4.D5.A6.D7.A8.C9.A10.C二、填空題1.遞歸調(diào)用;沒有2.文件;函數(shù)3.main函數(shù)4.庫函數(shù);用戶自定義函數(shù);有參函數(shù);無參函數(shù)5.形式參數(shù);實際參數(shù)6.局部變量;全局變量7.函數(shù)首部;函數(shù)體8.7899.(1)i<10;(2)array[i];(3)average(score)10.1511.9三、編程題1.floatadd(floata,floatb){returna+b;}2.#include<stdio.h>floataverage(floatscores[],intn){inti;floatsum=0,avg;for(i=0;i<n;i++){sum+=scores[i];}avg=sum/n;printf("高于平均分的成績:");for(i=0;i<n;i++){if(scores[i]>avg){printf("%f",scores[i]);}}printf("\n");returnavg;}intmain(){floatscores[10];inti;printf("請輸入10個學(xué)生的英語成績:");for(i=0;i<10;i++){scanf("%f",&scores[i]);}floatavg=average(scores,10);printf("平均分:%f\n",avg);return0;}3.intcount(intx){intsum=0;while(x!=0){sum+=x%10;x/=10;}returnsum;}4.doublemypow(doublex,inty){doubleresult=1;inti;for(i=0;i<y;i++){result*=x;}returnresult;}5.intsum(intn){if(n==1){return1;}else{returnn+sum(n-1);}}

第八章一、單選題1.B2.C3.C4.C5.C6.D7.B8.D9.D10.B11.D12.D13.C14.C15.C二、填空題1.10;122.int*f();表示f是一個返回值為指針(指向整型)的函數(shù);int(*f)();表示f是一個指向函數(shù)(該函數(shù)返回整型值)的指針3.04.int*z5.*(p+5)6.&a[i];a+i;*(a+i)7.&a[i][j];a[i]+j;指向一維數(shù)組(含有j所在行剩余元素)的指針8.49.指針數(shù)組10.指針數(shù)組(有4個指向整型的指針元素);指向含有4個整型元素數(shù)組的指針11.i=10,j=212.1013.5,214.i=1515.ch=f16.num=*b;num=*c17.'\0';s18.s+n-1;p1<p2;p2--19.'\0';n++三、編程題1.#include<stdio.h>intmain(){charstr[100];char*p;intlen=0;printf("請輸入一個字符串:");scanf("%s",str);p=str;while(*p!='\0'){len++;p++;}printf("字符串的長度為:%d\n",len);return0;}2.#include<stdio.h>intmain(){char*months[]={"January","February","March","April","May","June","July","August","September","October","November","December"};intnum;printf("請輸入1-12的整數(shù):");scanf("%d",&num);if(num>=1&&num<=12){printf("%s\n",months[num-1]);}else{printf("輸入錯誤,請輸入1-12的整數(shù)。\n");}return0;}3.#include<stdio.h>intmain(){charstr[]="computer";char*p;p=str;while(*p!='\0'){printf("%c",*p);p+=2;}printf("\n");return0;}4.#include<stdio.h>voidcopyString(char*src,intm,char*dest){inti=m-1;while(src[i]!='\0'){*dest=src[i];dest++;i++;}*dest='\0';}intmain(){charstr[100],newStr[100];intm;printf("請輸入字符串:");scanf("%s",str);printf("請輸入m的值:");scanf("%d",&m);copyString(str,m,newStr);printf("復(fù)制后的字符串:%s\n",newStr);return0;}

第九章一、選擇題1.D2.D3.C4.B5.C6.D7.D8.B9.B10.D二、編程題1.#include<stdio.h>//定義結(jié)構(gòu)體表示學(xué)生成績structStudent{floatscores[5];};intmain(){structStudentstu;floatsum=0;inti;//輸入五門課成績printf("請輸入五門課的成績:\n");for(i=0;i<5;i++){scanf("%f",&stu.scores[i]);sum+=stu.scores[i];}//計算并輸出平均分floataverage=sum/5;printf("該同學(xué)五門課的平均分為:%.2f\n",average);return0;}2.#include<stdio.h>#include<string.h>//定義工資登記表結(jié)構(gòu)體structSalaryTable{charname[20];floatsalary;};intmain(){//初始化工資登記表structSalaryTabletable[]={{"張三",5000.0},{"李四",5500.0},{"王五",6000.0}};charsearchName[20];inti,found=0;//輸入要查詢的姓名printf("請輸入要查詢的姓名:");scanf("%s",searchName);//查詢工資情況for(i=0;i<sizeof(table)/sizeof(table[0]);i++){if(strcmp(table[i].name,searchName)==0){printf("%s的工資是:%.2f\n",table[i].name,table[i].salary);found=1;break;}}if(!found){printf("未找到名為%s的員工工資信息。\n",searchName);}return0;}3.#include<stdio.h>//定義學(xué)生成績結(jié)構(gòu)體structStudentScores{floatmathMid;floatmathFinal;floatchineseMid;floatchineseFinal;floatenglishMid;floatenglishFinal;};intmain(){structStudentScoresstudents[3];inti;//輸入三個學(xué)生的成績for(i=0;i<3;i++){printf("請輸入第%d個學(xué)生的成績:\n",i+1);printf("數(shù)學(xué)期中成績:");scanf("%f",&students[i].mathMid);printf("數(shù)學(xué)期末成績:");scanf("%f",&students[i].mathFinal);printf("語文期中成績:");scanf("%f",&students[i].chineseMid);printf("語文期末成績:");scanf("%f",&students[i].chineseFinal);printf("英語期中成績:");scanf("%f",&students[i].englishMid);printf("英語期末成績:");scanf("%f",&students[i].englishFinal);}//計算并輸出每個學(xué)生的平均成績for(i=0;i<3;i++){floataverage=(students[i].mathMid+students[i].mathFinal+students[i].chineseMid+students[i].chineseFinal+students[i].englishMid+students[i].englishFinal)/6;printf("第%d個學(xué)生的平均成績?yōu)椋?.2f\n",i+1,average);}return0;}

第十章一、選擇題1.D2.B3.A4.B5.B6.D7.D8.D9.B10.D二、編程題1.#include<stdio.h>#include<stdlib.h>#include<string.h>//定義學(xué)生結(jié)構(gòu)體typedefstruct{intid;charname[20];floatscore;}Student;//比較函數(shù),用于qsort排序intcompare(constvoid*a,constvoid*b){Student*s1=(Student*)a;Student*s2=(Student*)b;returns1->score-s2->score;}intmain(){Studentstudents[100];intn=0;FILE*fp;//格式化輸入多個學(xué)生記錄printf("請輸入學(xué)生數(shù)量:");scanf("%d",&n);for(inti=0;i<n;i++){printf("請輸入第%d個學(xué)生的學(xué)號、姓名和成績:",i+1);scanf("%d%s%f",&students[i].id,students[i].name,&students[i].score);}//利用fwrite將學(xué)生信息按二進(jìn)制方式寫到文件中fp=fopen("students.dat","wb");if(fp==NULL){perror("無法打開文件");return1;}fwrite(students,sizeof(Student),n,fp);fclose(fp);//利用fread從文件中讀出成績并求平均值floatsum=0;fp=fopen("students.dat","rb");if(fp==NULL){perror("無法打開文件");return1;}for(inti=0;i<n;i++){Studenttemp;fread(&temp,sizeof(Student),1,fp);sum+=temp.score;}fclose(fp);floataverage=sum/n;printf("學(xué)生成績平均值為:%.2f\n",average);//對文件中按成績排序,將成績單寫入文本文件中fp=fopen("students.dat","rb");if(fp==NULL){perror("無法打開文件");return1;}fread(students,sizeof(Student),n,fp);fclose(fp);qsort(students,n,sizeof(Student),compare);fp=fopen("sorted_students.txt","w");if(fp==NULL){perror("無法打開文件");return1;}for(inti=0;i<n;i++){fprintf(fp,"學(xué)號:%d,姓名:%s,成績:%.2f\n",students[i].id,students[i].name,students[i].score);}fclose(fp);return0;}2.#include<stdio.h>#include<stdli

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論