版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章習(xí)題答案一、選擇題D2、A3、B二、填空題主函數(shù)或main()函數(shù)2、解釋編譯3、機(jī)器語言匯編語言高級語言4、///*……*/三、程序設(shè)計題1.請自行安裝VisualC++2010學(xué)習(xí)版,創(chuàng)建第一個C程序,在計算機(jī)屏幕輸出“第一個C語言程序”。#include<stdio.h>intmain(){ printf("第一個C語言程序"); return0;}編寫一個程序,輸出字符串“C語言為世界上應(yīng)用最廣泛的幾種計算機(jī)語言之一”。#include<stdio.h>intmain(){ printf("C語言為世界上應(yīng)用最廣泛的幾種計算機(jī)語言之一"); return0;}第二章習(xí)題答案一、選擇題A2、A3、C4、B5、D二、填空題1、intshort或shortintlong或longint2、doublelongdouble3、char14、659748325、單引號或''雙引號或""6、#define初始化8、33439、201510、311、x>y&&y>z(x>=0&&x<=100)&&(x>=-50&&x<=-10)13、0014、115、int第三章習(xí)題答案一、選擇題1、A2、A3、B4、B5、A6、C7、B8、C二、填空題1、順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)2、表達(dá)式語句控制語句3、getchar()putchar()4、#include<stdio.h>或#include“stdio.h”5、字母數(shù)字下劃線三、程序設(shè)計題1.從鍵盤輸入一個4位的正整數(shù)n(如4567),編程將其拆分后,組成新的兩個2位的正整數(shù)x和y(如46和57)。#include<stdio.h>intmain(){ intnum,a,b,c,d,num1,num2; scanf("%d",&num); a=num%10; b=num/10%10; c=num/100%10; d=num/1000; num1=c*10+a; num2=d*10+b; printf("%d,%d",num1,num2); return0;}2.已知華氏溫度f與攝氏溫度c的轉(zhuǎn)換公式為,請編寫程序從鍵盤上輸入華氏溫度,將其轉(zhuǎn)換為攝氏溫度。(保留1位小數(shù),請注意在程序中要避免出現(xiàn)“5/9”的整數(shù)相除)。#include<stdio.h>intmain(){ floatf,c; scanf("%f",&f); c=5*(f-32)/9.0; printf("攝氏溫度為%.1f\n",c); return0;}3.設(shè)a、b、c分別表示三角形的三邊,從鍵盤輸入a、b、c的值,根據(jù)數(shù)學(xué)公式,其中,s=(a+b+c)/2,計算三角形的面積(要求輸入的三邊長度能構(gòu)成三角形)。#include<stdio.h>#include<math.h>intmain(){ floata,b,c,s,t,area; scanf("%f%f%f",&a,&b,&c); s=(a+b+c)/2.0; t=(s-a)*(s-b)*(s-c); area=sqrt(s*t); printf("%f\n",area); return0;}第四章習(xí)題答案一、選擇題1、C 2、A 3、B 4、A 5、D6、D 7、C 8、D 9、A 10、B11、A二、填空題1、02、03、(n>10&&n<50)&&(n%2==1)三、程序設(shè)計題1.輸出100~200之間能同時被3、5、7整除的數(shù)。#include"stdio.h"intmain(){ intn;scanf("%d",&n);if(n%3==0&&n%5==0&&n%7==0) printf("%d能被同時整除!\n",n);elseprintf("%d不能被同時整除!\n",n);return0;}從鍵盤上任意輸入三角形的三邊長為a,b,c,編程判斷a,b,c的值是否能構(gòu)成一個三角形,若能構(gòu)成三角形,則計算并輸出三角形的面積area,否則輸出“不能構(gòu)成三角形!”。構(gòu)成三角形的條件是:任意兩邊之和大于第三邊。三角形面積的計算公式是: #include<math.h>intmain(){ floata,b,c,s,t,area; scanf("%f%f%f",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { s=(a+b+c)/2.0; t=(s-a)*(s-b)*(s-c); area=sqrt(s*t); printf("面積是:%f\n",area); } elseprintf("不能構(gòu)成三角形!"); return0;}使用switch語句,按運輸距離、折扣率計算運費。運費=重量′距離′(1-折扣率)′價格。距離s 折扣率s<250 0250≤s<500 2%500≤s<1000 5%1000≤s<2000 8%2000≤s<3000 10%3000≤s 15%#include<stdio.h>intmain(){intc,s;floatp,w,d,f; scanf("%f,%f,%d",&p,&w,&s); if(s>=3000)c=12; elsec=s/250; switch(c) {case0:d=0;break; case1:d=2;break; case2:case3:d=5;break; case4:case5:case6:case7:d=8;break; case8:case9:case10:case11:d=10;break; case12:d=15;break;} f=p*w*s*(1-d/100.0); printf("freight=%14.4f\n",f);return0;}第五章習(xí)題答案一、選擇題1、A 2、B 3、D 4、B 5、A 6、B 7、C二、填空題1、dowhile 2、for 3、設(shè)已有定義inta=1,b=10;則執(zhí)行下面的循環(huán)語句后,a的值為____5____,b的值為___0_____。do{b-=a;a++;}while(b);三、程序設(shè)計題1.輸出100~200之間能同時被3、5、7整除的數(shù)。#include"stdio.h"intmain(){ intn;for(n=100;n<=200;n++){ if(n%3==0&&n%5==0&&n%7==0) printf("%d能被同時整除!\n",n);}return0;}2.輸入以-1結(jié)束的若干整數(shù),輸出其中的最大值。例如,輸入“382010-1”后,輸出“max=20”。#include"stdio.h"intmain(){ intx,max;printf("輸入x:\n"); scanf("%d",&x); max=x; while(x!=-1) { scanf("%d",&x); if(x>max)max=x; } printf("%d\n",max); return0;}3.計算,當(dāng)最后一項的值小于10-6時為止。#include"stdio.h"intmain(){ doublet=1,sum=0;intn=1;while(1.0/t>=1e-6){ t=t*n; sum=sum+1.0/t; n++;}printf("%f\n",sum);return0;}4.求200~300之間全部素數(shù)的和。#include"math.h"#include"stdio.h"intmain(){ intm,i,k,s=0,n=0;for(m=200;m<=300;m++){ k=(int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k) {printf("%d,",m);s=s+m;n++;}}printf("\n素數(shù)共有%d個,和為%d\n",n,s);return0;}5.編程找出100~999之間的所有水仙花數(shù)。水仙花數(shù)是指這樣的一個3位數(shù):其各位數(shù)字的立方和等于該數(shù)本身。例如371=33+73+13,所以371是一個水仙花數(shù)。#include"stdio.h"intmain(){inta,b,c,j;for(j=100;j<=999;j++){a=j/100;b=j/10-a*10;c=j%10;if(j==a*a*a+b*b*b+c*c*c) printf("%4d",j);}printf("\n");return0;}編程輸出以下圖形。#include"stdio.h"intmain(){inti,j;for(i=1;i<=10;i++){for(j=1;j<=i;j++)printf("");for(j=1;j<=20-(2*i-1);j++)printf("*");printf("\n");}return0;}第六章習(xí)題答案一、選擇題1、A2、D 3、A 4、B 5、D 6、D 7、C 8、A 9、C 10、C二、填空題1、main函數(shù) 2、局部變量;全局變量 3、void類型4、prt_char(G); 5、sum=f(a)+f(b)+f(b-a); 6、2三、程序設(shè)計題1.設(shè)計函數(shù),實現(xiàn)求兩個整數(shù)m和n中較大的值,在主函數(shù)中調(diào)用該函數(shù)并輸出最大值。#include<stdio.h>intgetMax(intm,intn);//函數(shù)聲明:求兩個整數(shù)中的最大值intmain(){inta,b,max;printf("請輸入兩個整數(shù):");scanf("%d%d",&a,&b);max=getMax(a,b);printf("兩個數(shù)中的最大值是:%d\n",max);return0;}//函數(shù)定義:返回m和n中的較大值intgetMax(intm,intn){return(m>n)?m:n;//使用三目運算符判斷并返回最大值}分別采用窮舉法和遞歸法兩種方法,設(shè)計函數(shù)實現(xiàn)求兩個正整數(shù)m和n的最大公約數(shù)和最小公倍數(shù),在主函數(shù)中調(diào)用函數(shù)并輸出最大公約數(shù)和最小公倍數(shù)。用窮舉法:#include<stdio.h>intgcd(intm,intn){intmin,i; if(m<n)min=m;elsemin=n;for(i=min;i>=1;i--)//從較小值開始向下遍歷,尋找第一個共同約數(shù) {if(m%i==0&&n%i==0) {break;//找到最大公約數(shù)}}returni;//返回最大公約數(shù)}intlcm(intm,intn){intmax,i;if(m>n)max=m;else max=n; for(i=max;i<=m*n;i++) //從較大值開始向上遍歷,尋找第一個共同倍數(shù){if(i%m==0&&i%n==0){break; //找到最小公倍數(shù)}}returni;}intmain(){intm,n;intgcd_result,lcm_result;printf("請輸入兩個正整數(shù)m和n:");scanf("%d%d",&m,&n);if(m<=0||n<=0) //驗證輸入是否為正整數(shù){printf("錯誤:請輸入正整數(shù)!\n");return1;}gcd_result=gcd(m,n); lcm_result=lcm(m,n);printf("最大公約數(shù):%d\n",gcd_result);printf("最小公倍數(shù):%d\n",lcm_result);return0;}用遞歸法:#include<stdio.h>intgcd(intm,intn){if(n==0) {returnm;} else {returngcd(n,m%n);}}intlcm(intm,intn){return(m*n)/gcd(m,n);}intmain(){intm,n;printf("請輸入兩個正整數(shù)m和n:");scanf("%d%d",&m,&n);if(m<=0||n<=0) {printf("輸入錯誤!請確保輸入的是正整數(shù)。\n");return1;}printf("最大公約數(shù):%d\n",gcd(m,n));printf("最小公倍數(shù):%d\n",lcm(m,n));return0;}3.定義一個函數(shù)leap用來判定一個年份是否是閏年,若是閏年,返回1,否則返回0。同時編程實現(xiàn)輸出2000—3000年之間所有的閏年。#include<stdio.h>intleap(intyear);intmain(){intyear,count;count=0; printf("2000年到3000年之間的所有閏年如下:\n");for(year=2000;year<=3000;year++) {if(leap(year)) {printf("%d\t",year);count++;if(count%10==0) {printf("\n");} }}printf("\n");return0;}intleap(intyear){if((year%4==0&&year%100!=0)||(year%400==0)) {return1;//是閏年,返回1}else {return0;//不是閏年,返回0}}4.設(shè)計函數(shù)fact(
)用來計算階乘,在主函數(shù)中調(diào)用該函數(shù),實現(xiàn)求m個元素中取n個的組合數(shù),計算公式為C(m,n)=m!/[n!(m?n)!]。#include<stdio.h>doublefact(intn);intmain(){intm,n,t;doublec;printf("請輸入兩個非負(fù)整數(shù)m和n:");scanf("%d%d",&m,&n);if(m<n){t=m;m=n;n=t;}c=fact(m)/(fact(n)*fact(m-n));printf("組合數(shù)C(%d,%d)=%lf\n",m,n,c);return0;}doublefact(intn){doubleresult=1;//階乘結(jié)果(0!=1)inti;for(i=1;i<=n;i++){result*=i;}returnresult;}設(shè)計數(shù)學(xué)函數(shù)ExpTaylor(
),利用泰勒展開公式計算e的近似值,直到最后一項小于10?6。=1+x+…#include<stdio.h>doubleExpTaylor(intx){doublesum=1.0;doubleterm=1.0;intn=1;while(term>=1e-6) {term=term*x/n;sum+=term;n++;}returnsum;}intmain(){intx;doubleresult;printf("請輸入x的值:");scanf("%d",&x);result=ExpTaylor(x);printf("e^%d的近似值為:%.8lf\n",x,result);return0;}6.綜合程序設(shè)計:編寫一個計算器程序,可根據(jù)需要重復(fù)實現(xiàn)加減乘除運算,直至用戶選擇停止。#include<stdio.h>voidshowMenu();//顯示操作菜單doubleadd(doublea,doubleb);//加法doublesubtract(doublea,doubleb);//減法doublemultiply(doublea,doubleb);//乘法doubledivide(doublea,doubleb);//除法,返回特殊值表示錯誤intmain(){charchoice;doublenum1,num2,result;do{showMenu();//顯示菜單printf("請輸入選擇(1-4或q):");scanf("%c",&choice);//注意前面的空格,用于跳過可能的換行符if(choice=='q'||choice=='Q'){break;//退出循環(huán)}//獲取兩個操作數(shù)printf("請輸入兩個操作數(shù),用空格分隔:");scanf("%lf%lf",&num1,&num2);//根據(jù)選擇執(zhí)行相應(yīng)運算switch(choice){case'1':result=add(num1,num2);printf("%.2lf+%.2lf=%.2lf\n",num1,num2,result);break;case'2':result=subtract(num1,num2);printf("%.2lf-%.2lf=%.2lf\n",num1,num2,result);break;case'3':result=multiply(num1,num2);printf("%.2lf*%.2lf=%.2lf\n",num1,num2,result);break;case'4':if(num2!=0.0) //檢查除數(shù)是否為0{result=divide(num1,num2);}else{printf("錯誤:除數(shù)不能為0。\n");continue; //跳過當(dāng)前循環(huán)的剩余部分,重新開始循環(huán)}break;default:printf("無效的選擇,請重新輸入!\n");}}while(1);//無限循環(huán),直到用戶選擇退出printf("感謝使用計算器,再見!\n");return0;}//顯示操作菜單voidshowMenu(){printf("\n=====計算器=====\n");printf("1.加法(+)\n");printf("2.減法(-)\n");printf("3.乘法(*)\n");printf("4.除法(/)\n");printf("q.退出程序\n");}//加法函數(shù)doubleadd(doublea,doubleb){returna+b;}//減法函數(shù)doublesubtract(doublea,doubleb){returna-b;}//乘法函數(shù)doublemultiply(doublea,doubleb){returna*b;}//除法函數(shù),除數(shù)為0時返回特殊值-1e20表示錯誤doubledivide(doublea,doubleb){returna/b;}第七章習(xí)題答案一、選擇題1、C 2、C 3、A 4、D 5、C6、C 7、B 8、A 9、D 10、D二、填空題1、0 2、5 3、if(strcmp(s1,s2)==0) 4、5 5、Hel三、程序設(shè)計題1.具有n個元素的整型數(shù)組a中存在重復(fù)數(shù)據(jù),編寫函數(shù)intset(inta[],intn),刪除數(shù)組中的重復(fù)元素,使數(shù)組變成一個集合,函數(shù)返回集合中元素的個數(shù)。#include<stdio.h>intset(inta[],intn){intm;inti,j,k;for(i=0;i<n;i++){for(j=i+1;j<n;){if(a[j]==a[i]){for(k=j;k<n-1;k++){a[k]=a[k+1]; //后面的替換前面的}n--; //長度-1}else{j++; //下一個元素}}}returnn;}intmain(){intarr[10];intnew_size;inti;printf("輸入10個整數(shù):\n");for(i=0;i<10;++i){scanf("%d",&arr[i]);}new_size=set(arr,10);printf("\nArrayafterremovingduplicates:");for(i=0;i<new_size;i++){printf("%d",arr[i]);}return0;}2.設(shè)計函數(shù)voidpartion(inta[],intn),將長度為n的數(shù)組a中的所有負(fù)數(shù)調(diào)整到數(shù)組的前面,所有非負(fù)數(shù)調(diào)整到數(shù)組的后面,并編寫測試程序。#include<stdio.h>voidpartition(inta[],intn){intleft=0;//左指針,指向當(dāng)前已處理好的負(fù)數(shù)區(qū)域的末尾intright=0;//右指針,用于遍歷數(shù)組inttemp;while(right<n){if(a[right]<0){//如果當(dāng)前元素是負(fù)數(shù)//交換a[left]和a[right]temp=a[left];a[left]=a[right];a[right]=temp;left++;//移動左指針}right++;//移動右指針}}intmain(){inta[]={-1,2,-3,4,5,-7,8,-9};intn,i;n=sizeof(a)/sizeof(a[0]);//元素個數(shù)partition(a,n); //函數(shù)調(diào)用for(i=0;i<n;i++){printf("%d",a[i]);}printf("\n");return0;}輸入一行不超過80個字符的文字,分別統(tǒng)計出其中英文大寫字母、小寫字母、數(shù)字、空格及其他字符的個數(shù)。#include<stdio.h>#defineMAX81intmain(){charstr[MAX];intupper=0,lower=0,digit=0,space=0,other=0;inti;printf("輸入字符串(<=80字符):\n");gets(str);for(i=0;str[i]!='\0';i++){if(str[i]>='A'&&str[i]<='Z')upper++;elseif(str[i]>='a'&&str[i]<='z')lower++;elseif(str[i]>='0'&&str[i]<='9')digit++;elseif(str[i]==''||str[i]=='\t')space++;elseother++;}printf("大寫字母:%d\n",upper);printf("小寫字母:%d\n",lower);printf("數(shù)字:%d\n",digit);printf("空格:%d\n",space);printf("其他:%d\n",other);return0;}為防止惡意軟件的攻擊,在登錄網(wǎng)絡(luò)系統(tǒng)時通常要求輸入驗證碼。例如,登錄微信,需要輸入5位數(shù)字和字母混合驗證碼。請設(shè)計函數(shù)voididentifyingCode(chars[],intn),產(chǎn)生n位由數(shù)字、字母混合的驗證碼存于s數(shù)組中,并編寫測試程序模擬驗證碼驗證過程。#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#defineN5voididentifyingCode(chars[],intn){//在它長度的范圍生成隨機(jī)數(shù)charstr[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";inti,k,len;len=strlen(str);/*求字符串str的長度*/srand(time(0));for(i=0;i<n;i++){ k=rand()%len;/*生成0~1en-1的隨機(jī)數(shù)*/ s[i]=str[k];}s[i]='\0';}intmain(){charcode[N+1],str[N+1];do{identifyingCode(code,N);printf("請輸人驗證碼:%s\n",code);scanf("%s",str);}while(strcmp(code,str)!=0);printf("驗證正確.");return0;}第八章習(xí)題答案一、選擇題1、B 2、D 3、B 4、D 5、A6、D 7、D 8、C 9、D 10、A二、填空題1、*(*(ptr+1)+1) 2、p(a,b) 3、b,Bb,A 4、789三、程序設(shè)計題答案1.編寫一個函數(shù),求一個字符串的長度,要求用字符指針實現(xiàn)。在主函數(shù)中輸入字符串,調(diào)用該函數(shù)輸出其長度。#include"stdio.h"voidMyStrlen(char*pa);intmain(){chara[80];printf("pleaseinputa:");gets(a);MyStrlen(a);return0;}voidMyStrlen(char*pa){intcount=0;while(*pa!='\0'){pa++; /*指向下一位字符*/count++;}printf("實際字符個數(shù)為:%d\n",count);}2.編寫一個函數(shù),完成一個字符串的復(fù)制,要求用字符指針實現(xiàn)。在主函數(shù)中輸入任意字符串,并顯示原字符串,調(diào)用該函數(shù)之后輸出復(fù)制后的字符串。#include"stdio.h"voidcopy(char*pa,char*pb);intmain(){chara[80],b[80];printf("Pleaseinputstring:\n");gets(a);printf("\nOldString=%s\n",a);printf("\n");copy(a,b);printf("\nNewString=%s\n",b);return0;}voidcopy(char*pa,char*pb){while(*pa!='\0'){*pb=*pa;pa++;pb++;}*pb='\0';}3.在主函數(shù)中,從鍵盤輸入10個數(shù)據(jù)存放到一維數(shù)組中,然后在主函數(shù)中調(diào)用search()函數(shù)找出數(shù)組中的最大值和最大值所對應(yīng)元素的下標(biāo)。要求調(diào)用子函數(shù)search(intpa,intn,intpmax,intpflag)完成,數(shù)組名作為實參,指針作為形參,最大值和下標(biāo)在形參中以指針的形式返回。#include"stdio.h"intsearch(int*pa,intn,int*pmax,int*pflag);intmain(){inta[10],i,max,flag,pmax;printf("Pleaseinput10numbers:");for(i=0;i<10;i++)scanf("%d",&a[i]);pmax=search(a,10,&max,&flag);printf("Maxis:%d\n",max);printf("Maxpositionis:%d\n",flag);}intsearch(int*pa,intn,int*pmax,int*pflag){inti,*max;max=pmax;*pmax=pa[0];for(i=1;i<n;i++){if(*pmax<pa[i]){*pmax=pa[i];*pflag=i;}}return*max;}第九章習(xí)題答案一、選擇題1、A 2、D 3、C 4、B 5、A6、A 7、C 8、D 9、D 10、A二、填空題1、各成員大小之和+填充字節(jié) 2、)連續(xù)不連續(xù) 3、等于其最大成員所需的內(nèi)存大小三、程序設(shè)計題答案1.編寫通訊錄管理程序,用結(jié)構(gòu)體實現(xiàn)下列功能:(1)通訊錄含有姓名、電話、地址3項內(nèi)容,建立含有上述信息的通訊錄。(2)輸入姓名,查找此人的電話號碼及地址。(3)插入某人的信息。(4)輸入姓名,刪除某人的號碼。(5)列表顯示姓名、電話、地址等內(nèi)容。(6)將以上功能用子函數(shù)實現(xiàn),編寫主函數(shù),可以根據(jù)用戶的需要,調(diào)用相應(yīng)的子函數(shù)。#include"stdio.h"#include"string.h"structaddrlist{charname[50];chartelephone[20];charaddress[20];}addrs[100];intcount=0;intmain(){voidsearch(); /*按姓名查找函數(shù)*/voidinsert() /*插入通訊錄函數(shù)*/voiddel() /*刪除通訊錄函數(shù)*/voidoutput() /*輸出通訊錄函數(shù)*/charc;intflag=1;while(flag){/*在屏幕上畫一個主菜單*/printf("/**********通訊錄管理系統(tǒng)**********/\n\n");printf("1:search\n\n");printf("2:insert\n\n");printf("3:delete\n\n");printf("4:output\n\n");printf("0:exit\n\n");printf("/**********************************/\n\n");printf("pleaseselect:");c=getchar(); /*輸入選擇項*/switch(c){case'1':search();break;case'2':insert();break;case'3':del();break;case'4':output();break /*調(diào)用輸出函數(shù)*/case'0':flag=0 /*改變標(biāo)志變量的值,退出循環(huán)*/}}return0;}voidsearch(){inti;charsname[20];printf("Pleaseinputname:");scanf("%s",sname);for(i=0;i<count;i++){if(strcmp(sname,addrs[i].name)==0){printf("Name:%s\n",addrs[i].name);printf("telephone:%s\naddress:%s\n",addrs[i].telephone, addrs[i].address);}}if(i==count) /*未找到*/{printf("notfound\n\n");}}voidinsert(){if(count==99){printf("Addrlistisfull,inserterror!");}else{printf("Pleaseinputname:\n");scanf("%s",addrs[count].name);printf("Pleaseinputtelephone:\n");scanf("%s",addrs[count].telephone);printf("Pleaseinputaddress:\n");scanf("%s",addrs[count].address);count=count+1;}printf("\n");}voiddel(){charsname[20];inti,j;if(count==0){printf("Addrlistisempty,deleteerror!");}else{printf("Pleaseinputname:");scanf("%s",sname);for(i=0;i<count;i++){if(strcmp(sname,addrs[i].name)==0)break;}if(i==count) /*未找到*/{printf("notfound\n\n");}else{for(j=i;j<count;j++)addrs[j]=addrs[j+1];count=count-1;}}}voidoutput(){inti;printf("Addrlist\nName\t\ttelephone\t\taddress\n\n");for(i=0;i<count;i++){""}printf("\n");}2.已知學(xué)生成績包括:姓名、數(shù)學(xué)成績、英語成績、語文成績、平均成績5個成員,要求輸入5名學(xué)生的信息,并按平均成績排序輸出。#include"stdio.h"intmain(){structstudent /*定義結(jié)構(gòu)體類型*/{charname[20];intmath;intengl;intchin;intavg;};structstudentstud[5],t /*定義結(jié)構(gòu)數(shù)組*/inti,j,k;for(i=0;i<5;i++){printf("Pleaseinput%dname:",i);gets(stud[i].name);printf("Pleaseinput%dMath,english,Chinese:",i);scanf("%d%d%d",&stud[i].math,&stud[i].engl,&stud[i].chin);getchar();stud[i].avg=(stud[i].math+stud[i].engl+stud[i].chin)/3;}for(i=0;i<4;i++) /*選擇法排序*/{k=i;for(j=i+1;j<5;j++)if(stud[j].avg<stud[k].avg)k=j;if(k!=i){t=stud[i];stud[i]=stud[k];stud[k]=t;}}for(i=0;i<5;i++){printf("%20s%5d%5d",stud[i].name,stud[i].math,stud[i].engl);printf("%5d%5d\n",stud[i].chin,stud[i].avg);}return0;}3.設(shè)有3個候選人,每次輸入一個得票的候選人的名字,要求最后輸出各候選人的得票結(jié)果。#include"stdio.h"#include"string.h"structstudent /*候選人結(jié)構(gòu)體*/{charname[20] /*姓名*/intcount /*得票數(shù)*/}stu[3]={"li",0,"zhang",0,"fun",0};intmain(){inti,j;charname[20];for(i=1;i<=20;i++){scanf("%s",name);for(j=0;j<3;j++) /*得票人姓名與3個候選人姓名比較*/if(strcmp(name,stu[j].name)==0)stu[j].count++;}printf("\n");for(i=0;i<3;i++) /*輸出3個候選人的姓名和得票數(shù)*/printf("Name:%5s,count:%d\n",stu[i].name,stu[i].count);return0;}第十章習(xí)題答案一、選擇題1、A 2、B 3、B 4、A 5、C二、填空題1、11110000 2、1 3、00100100 4、80 5、3第十一章習(xí)題答案一、選擇題1、C2、D3、B4、A5、C二、填空題1、打開文件對文件讀、寫操作關(guān)閉文件2、(c=fgetc(fp))!=EOFfclose(fp)3、wch,fp4、(ch=fgetc(fp1))fclose(fp2)三、程序設(shè)計題1.統(tǒng)計一個文本文件中英文字母的個數(shù)。#include<stdio.h>#include<ctype.h>intmain(){FILE*file;charfilename[100];intcount=0;charch;p
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學(xué)年八年級上學(xué)期語文期末壓軸卷含答案
- 深度解析(2026)《GBT 25906.5-2010信息技術(shù) 通 用多八位編碼字符集 錫伯文、滿文名義字符、顯現(xiàn)字符與合體字 48點陣字型 第5部分:奏折體》
- 2025內(nèi)蒙古呼倫貝爾市阿榮旗教育事業(yè)發(fā)展中心遴選教研員4人考試參考試題及答案解析
- 深度解析(2026)《GBT 25915.2-2021潔凈室及相關(guān)受控環(huán)境 第2部分:潔凈室空氣粒子濃度的監(jiān)測》
- 2026江蘇蘇州健雄職業(yè)技術(shù)學(xué)院博士高層次人才需求35人備考考試試題及答案解析
- 深度解析(2026)《GBT 25769-2010滾動軸承 徑向游隙的測量方法》(2026年)深度解析
- 2025廣西百色市西林縣民族高級中學(xué)招聘后勤工作人員1人模擬筆試試題及答案解析
- 2025貴州六枝特區(qū)公共汽車運輸公司面向社會招聘駕駛員16人備考筆試題庫及答案解析
- 2025年昆明市祿勸縣人力資源和社會保障局公益性崗位招聘(5人)考試備考題庫及答案解析
- 2025浙江杭州市西湖區(qū)西溪街道辦事處招聘5人參考筆試題庫附答案解析
- JJG 443-2023燃油加油機(jī)(試行)
- q235力學(xué)性能和化學(xué)成分-中英
- 康復(fù)科護(hù)士的康復(fù)護(hù)理質(zhì)量評估和護(hù)理效果改進(jìn)
- 國家開放大學(xué)-傳感器與測試技術(shù)實驗報告(實驗成績)
- 動火作業(yè)安全告知
- 《直播運營管理》課件全套 第1-6章 直播運營認(rèn)知-直播運營復(fù)盤
- 輥壓機(jī)電氣資料
- 井控應(yīng)急預(yù)案
- 文物工程修繕施工方案設(shè)計
- 機(jī)動車駕駛員體檢表
- YY/T 0030-2004腹膜透析管
評論
0/150
提交評論