版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章初識(shí)C語(yǔ)言一、選擇題1-5ACDCB6-7CA二、填空題1.編輯;編譯;鏈接(連接);執(zhí)行(運(yùn)行)2.obj3..c4..exe5.分號(hào)6./*…*/三、編程題第2章C語(yǔ)言基礎(chǔ)一、選擇題1-5BDAAC6-10BBCAC11-15ADCDC16-20BACBD21-25CCACB26-30AABCD二、填空題1.一個(gè);兩個(gè)2.unsigned;double;char3.十;八;十六4.double8.'f'9.123410.ASCII碼值11.212.813.214.515.2916.9,1017.118.j19.2220.0x4b;0113;0165;117;61;0x3d。第3章數(shù)據(jù)的輸入/輸出一、選擇題1-5BCDBC6-10ACBAD11-15DACDC16-20DCCAC二、填空題1.5.0,4,c=32.a=A,b=B3.格式控制符應(yīng)為%f;變量k前缺少4.略5.-60三、寫出程序的運(yùn)行結(jié)果1.10,12,a2.20,03.14.35.123.466.運(yùn)行后報(bào)錯(cuò)四、編程題1,從鍵盤上輸入兩個(gè)實(shí)型數(shù),編程求它們的和、差、積、商,要求輸出結(jié)果保留2位小數(shù)。#include<stdio.h>intmain(){floatnum1,num2;printf("請(qǐng)輸入第一個(gè)實(shí)數(shù):");scanf("%f",&num1);printf("請(qǐng)輸入第二個(gè)實(shí)數(shù):");scanf("%f",&num2);floatsum=num1+num2;floatdifference=num1-num2;floatproduct=num1*num2;floatquotient=num1/num2;printf("和:%.2f\n",sum);printf("差:%.2f\n",difference);printf("積:%.2f\n",product);printf("商:%.2f\n",quotient);return0;}```在這個(gè)程序中,我們首先定義了兩個(gè)變量`num1`和`num2`,用于存儲(chǔ)從鍵盤輸入的實(shí)型數(shù)。然后使用`printf`和`scanf`函數(shù)分別提示用戶輸入兩個(gè)實(shí)數(shù),并將輸入的值存儲(chǔ)到相應(yīng)的變量中。接下來(lái),我們使用四個(gè)變量`sum`、`difference`、`product`和`quotient`分別計(jì)算輸入的兩個(gè)實(shí)數(shù)的和、差、積和商。最后,我們使用`printf`函數(shù)將計(jì)算結(jié)果輸出到屏幕上,并使用格式控制符`%.2f`將結(jié)果保留兩位小數(shù)。運(yùn)行程序后,您可以在控制臺(tái)上輸入兩個(gè)實(shí)數(shù),然后程序?qū)⒂?jì)算并輸出它們的和、差、積和商,結(jié)果將保留兩位小數(shù)。2.從鍵盤上輸入一個(gè)梯形的上底、下底和高的值,輸出梯形的面積。要求使用實(shí)型數(shù)據(jù)進(jìn)行計(jì)算(保留2位小數(shù))。#include<stdio.h>intmain(){floatupper_base,lower_base,height;printf("請(qǐng)輸入梯形的上底:");scanf("%f",&upper_base);printf("請(qǐng)輸入梯形的下底:");scanf("%f",&lower_base);printf("請(qǐng)輸入梯形的高:");scanf("%f",&height);floatarea=(upper_base+lower_base)*height/2;printf("梯形的面積為:%.2f\n",area);return0;}在這個(gè)程序中,我們首先定義了三個(gè)變量`upper_base`、`lower_base`和`height`,用于存儲(chǔ)從鍵盤輸入的梯形的上底、下底和高的值。然后使用`printf`和`scanf`函數(shù)分別提示用戶輸入這三個(gè)值,并將輸入的值存儲(chǔ)到相應(yīng)的變量中。接下來(lái),我們使用一個(gè)變量`area`來(lái)計(jì)算梯形的面積,根據(jù)梯形面積的公式:面積=(上底+下底)*高/2。最后,我們使用`printf`函數(shù)將計(jì)算得到的梯形面積輸出到屏幕上,并使用格式控制符`%.2f`將結(jié)果保留兩位小數(shù)。運(yùn)行程序后,您可以在控制臺(tái)上輸入梯形的上底、下底和高的值,然后程序?qū)⒂?jì)算并輸出梯形的面積,結(jié)果將保留兩位小數(shù)。3.輸入一個(gè)除a和z外的小寫英文字,輸出它的前一個(gè)小寫字母、本身及它后面的一個(gè)小寫字母。#include<stdio.h>intmain(){charletter;printf("請(qǐng)輸入一個(gè)小寫英文字母(除a和z之外):");scanf("%c",&letter);//計(jì)算前一個(gè)字母charprev_letter=letter-1;//計(jì)算后一個(gè)字母charnext_letter=letter+1;printf("前一個(gè)小寫字母:%c\n",prev_letter);printf("當(dāng)前小寫字母:%c\n",letter);printf("后一個(gè)小寫字母:%c\n",next_letter);return0;}程序中,我們首先定義了一個(gè)變量`letter`,用于存儲(chǔ)輸入的小寫英文字母。然后使用`printf`和`scanf`函數(shù)分別提示用戶輸入一個(gè)小寫英文字母,并將其存儲(chǔ)到`letter`變量中。接下來(lái),我們定義了兩個(gè)變量`prev_letter`和`next_letter`,分別用于計(jì)算輸入字母的前一個(gè)字母和后一個(gè)字母。前一個(gè)字母的ASCII碼值等于輸入字母的ASCII碼值減1,后一個(gè)字母的ASCII碼值等于輸入字母的ASCII碼值加1。最后,我們使用`printf`函數(shù)將計(jì)算得到的前一個(gè)字母、輸入字母和后一個(gè)字母輸出到屏幕上。運(yùn)行程序后,您可以在控制臺(tái)上輸入一個(gè)除a和z之外的小寫英文字母,然后程序?qū)⒂?jì)算并輸出該字母的前一個(gè)字母、本身及后面的一個(gè)字母。第4章選擇結(jié)構(gòu)一、選擇題1-5CADBC6-10BCCBD11-15AACAB16-20CDABA20-25AADAD二、填空題1.5,5,4;3,4,5;2,5,42.略。3.略。4.d1+d2d1-d2d1*d2d1/d2d1,op,d2,result5.56.4,5,997.102008.19.略。10.1011.yes(知識(shí)點(diǎn):簡(jiǎn)單if語(yǔ)句的格式與功能、運(yùn)算符=和==)試題分析:if語(yǔ)句后判斷的條件是c=a+b,即將a+b的值賦給c,再判斷c的值是否為真,而不是判斷c是否等于a+b。運(yùn)算符=和==是不同的。12.113.略。14.200if(x==y)t=x;x=y;y=t;15.585858三、編程題1.已知銀行存款不同期限的月息利率為:0.315%(1年)0.330%(2年)0.345%(3年)0.375%(5年)0.420%(8年)要求輸入本金及期限,計(jì)算到期時(shí)從銀行獲得到多少錢?#include<stdio.h>#include<math.h>intmain(){doubleprincipal;intduration;printf("請(qǐng)輸入本金(單位:元):");scanf("%lf",&principal);printf("請(qǐng)輸入期限(單位:年):");scanf("%d",&duration);doubleinterest_rate;switch(duration){case1:interest_rate=0.00315;break;case2:interest_rate=0.0033;break;case3:interest_rate=0.00345;break;case5:interest_rate=0.00375;break;case8:interest_rate=0.0042;break;default:printf("不支持該期限的利率計(jì)算。\n");return1;}doubleamount=principal*pow((1+interest_rate),duration*365);printf("到期時(shí)從銀行獲得的金額為:%.2f元\n",amount);return0;}2.編程實(shí)現(xiàn):輸入整數(shù)a和b,若a2+b2大于100,則輸出a2+b2百位以上的數(shù)字,否則輸出兩數(shù)之和。#include<stdio.h>intmain(){inta,b;printf("請(qǐng)輸入整數(shù)a:");scanf("%d",&a);printf("請(qǐng)輸入整數(shù)b:");scanf("%d",&b);intsum=a*a+b*b;if(sum>100){intdigit=sum/100;printf("a^2+b^2百位以上的數(shù)字為:%d\n",digit);}else{intresult=a+b;printf("兩數(shù)之和為:%d\n",result);}return0;}3.編寫程序判斷輸入的正整數(shù)是否既是5又是的整倍是則輸出yes;否則輸出no.#include<stdio.h>intmain(){intnum;printf("請(qǐng)輸入一個(gè)正整數(shù):");scanf("%d",&num);if((num%5==0)&&(num%7==0)){printf("yes\n");}else{printf("no\n");}return0;}4.企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。當(dāng)利潤(rùn)小于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提成10%:當(dāng)利潤(rùn)為10萬(wàn)元~20萬(wàn)元(含)時(shí),小于10萬(wàn)的部分可提成10%,大于0萬(wàn)元的部分可提成7.5%;當(dāng)利潤(rùn)為20萬(wàn)元~40萬(wàn)元(包含)時(shí)于20萬(wàn)元的部分可提成5%;當(dāng)利潤(rùn)為40萬(wàn)元~60萬(wàn)元(包含)時(shí),大于40萬(wàn)元的部分可提成3%:當(dāng)利潤(rùn)為60萬(wàn)元100萬(wàn)元(包含)時(shí),大于60萬(wàn)元的部分可提成1.5%,當(dāng)利潤(rùn)大于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分可提成1%,從鍵盤輸入當(dāng)月利潤(rùn),求應(yīng)發(fā)放獎(jiǎng)金的總數(shù)?#include<stdio.h>intmain(){doubleprofit;//利潤(rùn)doublebonus=0;//獎(jiǎng)金printf("請(qǐng)輸入當(dāng)月利潤(rùn)(萬(wàn)元):");scanf("%lf",&profit);if(profit<=10){bonus=profit*0.1;}elseif(profit<=20){bonus=10*0.1+(profit-10)*0.075;}elseif(profit<=40){bonus=10*0.1+10*0.075+(profit-20)*0.05;}elseif(profit<=60){bonus=10*0.1+10*0.075+20*0.05+(profit-40)*0.03;}elseif(profit<=100){bonus=10*0.1+10*0.075+20*0.05+20*0.03+(profit-60)*0.015;}else{bonus=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(profit-100)*0.01;}printf("應(yīng)發(fā)放獎(jiǎng)金的總數(shù)為:%.2lf萬(wàn)元\n",bonus);return0;}5.輸入某年、某月、某日,判斷這一天是這一年的第幾天?#include<stdio.h>//判斷某年是否為閏年intisLeapYear(intyear){if((year%4==0&&year%100!=0)||year%400==0){return1;//是閏年}else{return0;//不是閏年}}//計(jì)算某月某日是這一年的第幾天intcalculateDay(intyear,intmonth,intday){intdaysInMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};inttotalDays=0;//判斷是否為閏年,如果是閏年,將二月的天數(shù)修改為29天if(isLeapYear(year)){daysInMonth[1]=29;}//計(jì)算之前月份的天數(shù)總和for(inti=0;i<month-1;i++){totalDays+=daysInMonth[i];}//加上當(dāng)月的天數(shù)totalDays+=day;returntotalDays;}intmain(){intyear,month,day;printf("請(qǐng)輸入年份:");scanf("%d",&year);printf("請(qǐng)輸入月份:");scanf("%d",&month);printf("請(qǐng)輸入日期:");scanf("%d",&day);intdayOfYear=calculateDay(year,month,day);printf("%d年%d月%d日是這一年的第%d天\n",year,month,day,dayOfYear);return0;}6.給出一個(gè)不多于5位的正整數(shù),要求:求它是幾位數(shù),逆序打印出每位數(shù)字。#include<stdio.h>intmain(){intnumber;intdigit;intcount=0;printf("請(qǐng)輸入一個(gè)不多于5位的正整數(shù):");scanf("%d",&number);printf("它是%d位數(shù),逆序打印出每位數(shù)字為:",count);while(number>0){digit=number%10;printf("%d",digit);number=number/10;count++;}printf("\n");return0;}7.設(shè)整型變量abcd分別存放從鍵盤輸入的4個(gè)整數(shù),編寫程序,按從小到大的順序排列這4個(gè)整數(shù),并且按順序輸出這4個(gè)整數(shù)。#include<stdio.h>voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}intmain(){inta,b,c,d;printf("請(qǐng)輸入4個(gè)整數(shù):");scanf("%d%d%d%d",&a,&b,&c,&d);if(a>b){swap(&a,&b);}if(a>c){swap(&a,&c);}if(a>d){swap(&a,&d);}if(b>c){swap(&b,&c);}if(b>d){swap(&b,&d);}if(c>d){swap(&c,&d);}printf("按從小到大的順序排列的4個(gè)整數(shù)為:%d%d%d%d\n",a,b,c,d);return0;}第5章循環(huán)結(jié)構(gòu)一、選擇題1-5CACBA6-10BABBB11-15C略A略C16-20BACBD20-25CCCDD26-30DCAAD二、填空題1.略2.略3.略4.略5.89216.略7.略8.10i9.略10.略11.略12.略13.略14.略15.略16.-117.1,3,218.119.a=-520.8三、編程題1.自然常數(shù)e的計(jì)算公式為e=l+-+一+.++”。編寫程序計(jì)算e的近似值,要求被舍棄的首項(xiàng)上<0.000001。#include<stdio.h>intfactorial(intn){intresult=1;for(inti=1;i<=n;i++){result*=i;}returnresult;}intmain(){doublee=1.0;doubleterm=1.0;intn=1;while(term>=0.000001){term=1.0/factorial(n);e+=term;n++;}printf("e的近似值為:%lf\n",e);return0;}2.某旅行團(tuán)有男人、女人和小孩共30人,在紐約一家小飯館里吃飯,該飯館按人頭收費(fèi),每個(gè)男人收取3美元,每個(gè)女人收取2美元,每個(gè)小孩收取美元,共收取50美元問共有多少組解?count=0formeninrange(31):forwomeninrange(31):forchildreninrange(31):ifmen+women+children==30and3*men+2*women+0.5*children==50:count+=1print("共有%d組解"%count)3.猴子第1天摘下若干個(gè)桃子,當(dāng)即吃了一半,又多吃了1個(gè)桃子。以后每天早晨猴子都吃掉前一天剩下的一半多1個(gè)桃子。到第5天時(shí),猴子再去吃桃子時(shí)發(fā)現(xiàn)只剩下1個(gè)桃子。問第1天猴子摘了多少個(gè)桃子?#include<stdio.h>intmain(){intpeach=1;//第5天的桃子數(shù)量//逆推計(jì)算第1天猴子摘了多少個(gè)桃子for(intday=4;day>=1;day--){peach=(peach+1)*2;}printf("第1天猴子摘了%d個(gè)桃子\n",peach);return0;}4.有1、23、4四個(gè)數(shù)字,能組成多少個(gè)不相同且無(wú)重復(fù)數(shù)字的3位數(shù)?都是多少?count=0#計(jì)數(shù)器,用于統(tǒng)計(jì)滿足條件的數(shù)字?jǐn)?shù)量foriinrange(1,5):#第一位數(shù)遍歷1到4forjinrange(1,5):#第二位數(shù)遍歷1到4forkinrange(1,5):#第三位數(shù)遍歷1到4ifi!=jandi!=kandj!=k:#檢查三個(gè)數(shù)字是否都不相等print(i,j,k)#輸出滿足條件的數(shù)字count+=1#計(jì)數(shù)器加1print("總共有",count,"個(gè)滿足條件的數(shù)字")5.從鍵盤上任意輸入10個(gè)數(shù),求其最大值與最小值。#include<stdio.h>intmain(){intnum[10];//用于存儲(chǔ)輸入的10個(gè)數(shù)intmax,min;//最大值和最小值printf("請(qǐng)輸入10個(gè)數(shù):\n");//從鍵盤上輸入10個(gè)數(shù)for(inti=0;i<10;i++){scanf("%d",&num[i]);}//假設(shè)第一個(gè)數(shù)既是最大值又是最小值max=num[0];min=num[0];//遍歷數(shù)組,找出最大值和最小值for(inti=1;i<10;i++){if(num[i]>max){max=num[i];}if(num[i]<min){min=num[i];}}printf("最大值:%d\n",max);printf("最小值:%d\n",min);return0;}6.打印所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)3位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一個(gè)“水仙花數(shù)”,因?yàn)?53=13+53+33。fornuminrange(100,1000):#從100到999遍歷所有3位數(shù)#求各位數(shù)字digit1=num//100#百位數(shù)digit2=(num//10)%10#十位數(shù)digit3=num%10#個(gè)位數(shù)#判斷是否為水仙花數(shù)ifnum==digit1**3+digit2**3+digit3**3:print(num)7.輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。string=input("請(qǐng)輸入一行字符:")#輸入一行字符letter_count=0#英文字母?jìng)€(gè)數(shù)space_count=0#空格個(gè)數(shù)digit_count=0#數(shù)字個(gè)數(shù)other_count=0#其他字符個(gè)數(shù)forcharinstring:ifchar.isalpha():#判斷是否為英文字母letter_count+=1elifchar.isspace():#判斷是否為空格space_count+=1elifchar.isdigit():#判斷是否為數(shù)字digit_count+=1else:other_count+=1print("英文字母?jìng)€(gè)數(shù):",letter_count)print("空格個(gè)數(shù):",space_count)print("數(shù)字個(gè)數(shù):",digit_count)print("其他字符個(gè)數(shù):",other_count)8.求s-a=aa=aaa=aaaa+...+aa...a的值,其中,是一個(gè)數(shù)字。例如,2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),由鍵盤控制幾個(gè)相加的數(shù)字。n=int(input("請(qǐng)輸入相加的數(shù)字個(gè)數(shù):"))#輸入相加的數(shù)字個(gè)數(shù)a=int(input("請(qǐng)輸入數(shù)字a:"))#輸入數(shù)字as=0#初始化結(jié)果變量foriinrange(1,n+1):#構(gòu)造aa...a,其中a重復(fù)i次num=int(str(a)*i)s+=numprint("s-a=",s-a)9.打印如下圖案。****************n=4#指定圖案的行數(shù)foriinrange(n):#打印空格forjinrange(n-i-1):print("",end="")#打印星號(hào)forkinrange(2*i+1):print("*",end="")print()#換行10.求1+21+3!+..+20!的和。importmathn=20#指定求和的范圍total_sum=0#初始化總和變量foriinrange(1,n+1):factorial=math.factorial(i)#計(jì)算i的階乘total_sum+=factorialprint("1+21+3!+...+20!=",total_sum)第6章數(shù)組一、選擇題1-5DDCBA6-10CBBBD11-15DDBDD16-20ACBDC20-25DDCCC26-30CCDBA二、填空題1.略2.略3.-2,2,14.略5.略6.略三、編程題1.利用選擇法將N個(gè)數(shù)按從大到小的順序排列。defselection_sort(arr):n=len(arr)foriinrange(n-1):max_index=i#假設(shè)當(dāng)前位置的元素為最大值#在未排序的部分中找到最大值的索引forjinrange(i+1,n):ifarr[j]>arr[max_index]:max_index=j#將最大值與當(dāng)前位置交換arr[i],arr[max_index]=arr[max_index],arr[i]returnarr#測(cè)試示例nums=[5,2,8,1,9,3]sorted_nums=selection_sort(nums)print("排序結(jié)果:",sorted_nums)2.求一個(gè)3x3矩陣對(duì)角線元素之和。matrix=[[1,2,3],[4,5,6],[7,8,9]]sum_diagonal=matrix[0][0]+matrix[1][1]+matrix[2][2]print("對(duì)角線元素之和:",sum_diagonal)6.不使用字符串連接函數(shù),將兩個(gè)字符串進(jìn)行連接。str1="Hello"str2="World"result=str1+str2print("連接結(jié)果:",result)7.將一個(gè)一維數(shù)組逆序輸出。arr=[1,2,3,4,5]reversed_arr=arr[::-1]print("逆序輸出:",reversed_arr)8.任意輸入一個(gè)5階方陣,輸出這個(gè)方陣上三角元素中的最小數(shù)和下三元素中的最大數(shù)。#輸入一個(gè)5階方陣matrix=[]print("請(qǐng)輸入一個(gè)5階方陣:")for_inrange(5):row=list(map(int,input().split()))matrix.append(row)#初始化最小數(shù)和最大數(shù)min_upper=float('inf')max_lower=float('-inf')#遍歷方陣的上三角部分foriinrange(5):forjinrange(i+1,5):ifmatrix[i][j]<min_upper:min_upper=matrix[i][j]#遍歷方陣的下三角部分foriinrange(1,5):forjinrange(i):ifmatrix[i][j]>max_lower:max_lower=matrix[i][j]#輸出結(jié)果print("上三角元素中的最小數(shù):",min_upper)print("下三角元素中的最大數(shù):",max_lower)第7章函數(shù)一、選擇題1-5DBCBD6-10CCCAC11-15CBBBB16-20CCBBA20-25AABDD26-30BAABC二、填空題1.數(shù)組的首地址2.2463.134.125.略6.略7.48.略三、編程題1.編寫程序,要求在main0主函數(shù)中輸入一個(gè)整數(shù),prime0子函數(shù)判斷該整數(shù)是否為素?cái)?shù),如果是素?cái)?shù),則返回1,否則返回0。defprime(num):ifnum<=1:return0foriinrange(2,int(num**0.5)+1):ifnum%i==0:return0return1defmain():num=int(input("請(qǐng)輸入一個(gè)整數(shù):"))ifprime(num):print(num,"是素?cái)?shù)")else:print(num,"不是素?cái)?shù)")main()2.編寫程序,要求在ma0主函數(shù)中輸入一個(gè)字符串,prime0子函數(shù)將該字符串中的大寫字母轉(zhuǎn)換為小寫字母,小寫字母轉(zhuǎn)換為大寫字母,其他字符不變,并將轉(zhuǎn)換后的字符串返回主程序。defswap_case(string):swapped_string=""forcharinstring:ifchar.islower():swapped_string+=char.upper()elifchar.isupper():swapped_string+=char.lower()else:swapped_string+=charreturnswapped_stringdefmain():string=input("請(qǐng)輸入一個(gè)字符串:")swapped_string=swap_case(string)print("轉(zhuǎn)換后的字符串:",swapped_string)main()3.輸入一個(gè)正整數(shù)n,求1+1/2!+1/3!+···+I/n!的值,要求定義并調(diào)用fact(n)函數(shù)計(jì)算n的階乘,函數(shù)返回值的類型是單精度浮點(diǎn)型。deffact(n):ifn==0:return1else:returnn*fact(n-1)defcalculate_sum(n):sum=0foriinrange(1,n+1):sum+=1/fact(i)returnsumdefmain():n=int(input("請(qǐng)輸入一個(gè)正整數(shù):"))result=calculate_sum(n)print("累加數(shù)列的結(jié)果:",result)main()4,用遞歸方法求1+2+3+4+··-+n。#include<stdio.h>intrecursiveSum(intn){if(n==1)return1;elsereturnn+recursiveSum(n-1);}intmain(){intn;printf("請(qǐng)輸入一個(gè)正整數(shù)n:");scanf("%d",&n);intresult=recursiveSum(n);printf("1+2+3+...+%d的和為:%d\n",n,result);return0;}5.編寫一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度。在main0主函數(shù)中輸入字符串,并輸出其長(zhǎng)度6,編寫一個(gè)函數(shù),求出給定的二維數(shù)組中每一行最大的元素,并顯示出來(lái)。#include<stdio.h>#include<string.h>intstringLength(charstr[]){intlength=0;while(str[length]!='\0'){length++;}returnlength;}voidfindMaxElements(intarr[][5],introws){for(inti=0;i<rows;i++){intmaxElement=arr[i][0];for(intj=1;j<5;j++){if(arr[i][j]>maxElement){maxElement=arr[i][j];}}printf("第%d行的最大元素是:%d\n",i+1,maxElement);}}intmain(){//計(jì)算字符串長(zhǎng)度charstr[100];printf("請(qǐng)輸入一個(gè)字符串:");scanf("%s",str);intlength=stringLength(str);printf("字符串的長(zhǎng)度為:%d\n",length);//尋找二維數(shù)組每一行的最大元素intarr[3][5]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}};findMaxElements(arr,3);return0;}第8章指針一、選擇題1-5DDAAB6-10DDCDD11-15CDDCC16-20CBABD20-25BCDCB26-30ACCDC二、填空題1.602.w[i-1]3.①row②a[row][colum]4.*s-*t5.略6.strcmp(a[i],a[i+A])book,67.int*c8.str[i];i9.略10.p1++;*p2三、編程題1.輸入3個(gè)整數(shù),按由小到大的順序輸出。#include<stdio.h>voidsort3Integers(int*a,int*b,int*c){inttemp;if(*a>*b){temp=*a;*a=*b;*b=temp;}if(*b>*c){temp=*b;*b=*c;*c=temp;}if(*a>*b){temp=*a;*a=*b;*b=temp;}}intmain(){intnum1,num2,num3;printf("請(qǐng)輸入三個(gè)整數(shù):\n");scanf("%d%d%d",&num1,&num2,&num3);sort3Integers(&num1,&num2,&num3);printf("按升序排列后的結(jié)果為:%d%d%d\n",num1,num2,num3);return0;}2.已知一個(gè)整型數(shù)組x[4],它的各元素值分別為3、118和2使用指針表示法編寫程序,求該數(shù)組各元素之積。#include<stdio.h>intmain(){intx[4]={3,118,2};intproduct=1;int*ptr=x;for(inti=0;i<3;i++){product*=*(ptr+i);}printf("數(shù)組各元素之積為:%d\n",product);return0;}3.輸入10個(gè)整數(shù),將其中最小的數(shù)與第一個(gè)數(shù)交換,把最大的數(shù)與最后一個(gè)數(shù)交換。#include<stdio.h>voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}intmain(){intnumbers[10];printf("請(qǐng)輸入10個(gè)整數(shù):\n");for(inti=0;i<10;i++){scanf("%d",&numbers[i]);}intminIndex=0;intmaxIndex=0;//尋找最小值和最大值的索引for(inti=1;i<10;i++){if(numbers[i]<numbers[minIndex]){minIndex=i;}if(numbers[i]>numbers[maxIndex]){maxIndex=i;}}//最小數(shù)與第一個(gè)數(shù)交換swap(&numbers[0],&numbers[minIndex]);//最大數(shù)與最后一個(gè)數(shù)交換swap(&numbers[9],&numbers[maxIndex]);printf("交換后的數(shù)組為:\n");for(inti=0;i<10;i++){printf("%d",numbers[i]);}printf("\n");return0;}4.將n個(gè)數(shù)按輸入順序逆序排列。#include<stdio.h>voidreverseArray(intarr[],intn){intleft=0;intright=n-1;while(left<right){inttemp=arr[left];arr[left]=arr[right];arr[right]=temp;left++;right--;}}intmain(){intn;printf("請(qǐng)輸入要逆序排列的數(shù)的個(gè)數(shù):\n");scanf("%d",&n);intarr[n];printf("請(qǐng)輸入%d個(gè)整數(shù):\n",n);for(inti=0;i<n;i++){scanf("%d",&arr[i]);}reverseArray(arr,n);printf("逆序排列后的數(shù)組為:\n");for(inti=0;i<n;i++){printf("%d",arr[i]);}printf("\n");return0;}5.要求從鍵為y4][4]數(shù)組輸入數(shù)據(jù),使用一維數(shù)指針變量輸入/輸出數(shù)元素,并且分別求出主、次對(duì)角線元素之和。#include<stdio.h>#defineROWS4#defineCOLS4voidinputArray(int*arr){printf("請(qǐng)輸入數(shù)組元素:\n");for(inti=0;i<ROWS*COLS;i++){scanf("%d",arr+i);}}voidoutputArray(int*arr){printf("數(shù)組元素為:\n");for(inti=0;i<ROWS;i++){for(intj=0;j<COLS;j++){printf("%d",*(arr+i*COLS+j));}printf("\n");}}intcalculateMainDiagonalSum(int*arr){intsum=0;for(inti=0;i<ROWS;i++){sum+=*(arr+i*COLS+i);}returnsum;}intcalculateSecondaryDiagonalSum(int*arr){intsum=0;for(inti=0;i<ROWS;i++){sum+=*(arr+i*COLS+(COLS-1-i));}returnsum;}intmain(){intarray[ROWS][COLS];int*ptr=&array[0][0];inputArray(ptr);outputArray(ptr);intmainDiagonalSum=calculateMainDiagonalSum(ptr);printf("主對(duì)角線元素之和為:%d\n",mainDiagonalSum);intsecondaryDiagonalSum=calculateSecondaryDiagonalSum(ptr);printf("次對(duì)角線元素之和為:%d\n",secondaryDiagonalSum);return0;}6.編寫一個(gè)程序,將一個(gè)字符串插入另一個(gè)字符串的指定位置。#include<stdio.h>#include<string.h>voidinsertString(char*str1,char*str2,intpos){intlen1=strlen(str1);intlen2=strlen(str2);//檢查插入位置的有效性if(pos<0||pos>len1){printf("錯(cuò)誤:插入位置無(wú)效!\n");return;}//創(chuàng)建臨時(shí)字符數(shù)組來(lái)儲(chǔ)存插入后的字符串charresult[len1+len2+1];inti,j;//復(fù)制str1中的前pos個(gè)字符到結(jié)果字符串resultfor(i=0;i<pos;i++){result[i]=str1[i];}//復(fù)制str2到結(jié)果字符串resultfor(j=0;j<len2;j++){result[i+j]=str2[j];}//復(fù)制str1中剩余的字符到結(jié)果字符串resultfor(;i<len1;i++){result[i+len2]=str1[i];}//添加末尾的NULL終止符result[len1+len2]='\0';//將結(jié)果字符串復(fù)制回str1strcpy(str1,result);}intmain(){charstr1[100];printf("請(qǐng)輸入目標(biāo)字符串:\n");fgets(str1,sizeof(str1),stdin);str1[strcspn(str1,"\n")]='\0';//去除fgets函數(shù)讀取的換行符charstr2[100];printf("請(qǐng)輸入要插入的字符串:\n");fgets(str2,sizeof(str2),stdin);str2[strcspn(str2,"\n")]='\0';//去除fgets函數(shù)讀取的換行符intpos;printf("請(qǐng)輸入插入位置:\n");scanf("%d",&pos);insertString(str1,str2,pos);printf("插入后的字符串為:%s\n",str1);return0;}7.編寫一個(gè)程序,用指針操作將一個(gè)一維數(shù)組中的個(gè)整數(shù)進(jìn)行以下處理:順序?qū)⑶懊娓鲾?shù)后移m個(gè)位置,使最后面的m個(gè)數(shù)變成前面的m個(gè)。例如,有5個(gè)數(shù)13579,兩個(gè)后7913。#include<stdio.h>voidshiftArray(int*arr,intsize,intm){//創(chuàng)建臨時(shí)數(shù)組,用于保存后面的m個(gè)數(shù)inttemp[m];//復(fù)制后面的m個(gè)數(shù)到臨時(shí)數(shù)組中for(inti=size-m,j=0;i<size;i++,j++){temp[j]=arr[i];}//將前面的數(shù)向后移動(dòng)m個(gè)位置for(inti=size-1;i>=m;i--){arr[i]=arr[i-m];}//將臨時(shí)數(shù)組中的數(shù)放到前面的m個(gè)位置for(inti=0;i<m;i++){arr[i]=temp[i];}}intmain(){intsize;printf("請(qǐng)輸入數(shù)組的大小:\n");scanf("%d",&size);intarr[size];printf("請(qǐng)輸入%d個(gè)整數(shù):\n",size);for(inti=0;i<size;i++){scanf("%d",&arr[i]);}intm;printf("請(qǐng)輸入要移動(dòng)的位置數(shù)m:\n");scanf("%d",&m);shiftArray(arr,size,m);printf("移動(dòng)后的數(shù)組為:\n");for(inti=0;i<size;i++){printf("%d",arr[i]);}printf("\n");return0;}8.編寫一個(gè)程序,使用指針操作將一個(gè)矩陣轉(zhuǎn)置,即二維數(shù)組a的轉(zhuǎn)置矩陣滿足下列條件:b的行就是a的列。#include<stdio.h>voidtransposeMatrix(int*a,int*b,introws,intcols){for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){*(b+j*rows+i)=*(a+i*cols+j);}}}voidprintMatrix(int*matrix,introws,intcols){for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){printf("%d",*(matrix+i*cols+j));}printf("\n");}}intmain(){introws,cols;printf("請(qǐng)輸入矩陣的行數(shù)和列數(shù):\n");scanf("%d%d",&rows,&cols);inta[rows][cols];printf("請(qǐng)輸入矩陣的元素:\n");for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){scanf("%d",&a[i][j]);}}intb[cols][rows];transposeMatrix((int*)a,(int*)b,rows,cols);printf("轉(zhuǎn)置后的矩陣為:\n");printMatrix((int*)b,cols,rows);return0;}第8章指針一、選擇題1-5DDAAB6-10DDCDD11-15CDDCC16-20CBABD20-25BCDCB26-30ACCDC二、填空題1.602.w[i-1]3.①row②a[row][colum]4.*s-*t5.略6.strcmp(a[i],a[i+A])book,67.int*c8.str[i];i9.略10.p1++;*p2三、編程題1.輸入3個(gè)整數(shù),按由小到大的順序輸出。#include<stdio.h>voidsort3Integers(int*a,int*b,int*c){inttemp;if(*a>*b){temp=*a;*a=*b;*b=temp;}if(*b>*c){temp=*b;*b=*c;*c=temp;}if(*a>*b){temp=*a;*a=*b;*b=temp;}}intmain(){intnum1,num2,num3;printf("請(qǐng)輸入三個(gè)整數(shù):\n");scanf("%d%d%d",&num1,&num2,&num3);sort3Integers(&num1,&num2,&num3);printf("按升序排列后的結(jié)果為:%d%d%d\n",num1,num2,num3);return0;}2.已知一個(gè)整型數(shù)組x[4],它的各元素值分別為3、118和2使用指針表示法編寫程序,求該數(shù)組各元素之積。#include<stdio.h>intmain(){intx[4]={3,118,2};intproduct=1;int*ptr=x;for(inti=0;i<3;i++){product*=*(ptr+i);}printf("數(shù)組各元素之積為:%d\n",product);return0;}3.輸入10個(gè)整數(shù),將其中最小的數(shù)與第一個(gè)數(shù)交換,把最大的數(shù)與最后一個(gè)數(shù)交換。#include<stdio.h>voidswap(int*a,int*b){inttemp=*a;*a=*b;*b=temp;}intmain(){intnumbers[10];printf("請(qǐng)輸入10個(gè)整數(shù):\n");for(inti=0;i<10;i++){scanf("%d",&numbers[i]);}intminIndex=0;intmaxIndex=0;//尋找最小值和最大值的索引for(inti=1;i<10;i++){if(numbers[i]<numbers[minIndex]){minIndex=i;}if(numbers[i]>numbers[maxIndex]){maxIndex=i;}}//最小數(shù)與第一個(gè)數(shù)交換swap(&numbers[0],&numbers[minIndex]);//最大數(shù)與最后一個(gè)數(shù)交換swap(&numbers[9],&numbers[maxIndex]);printf("交換后的數(shù)組為:\n");for(inti=0;i<10;i++){printf("%d",numbers[i]);}printf("\n");return0;}4.將n個(gè)數(shù)按輸入順序逆序排列。#include<stdio.h>voidreverseArray(intarr[],intn){intleft=0;intright=n-1;while(left<right){inttemp=arr[left];arr[left]=arr[right];arr[right]=temp;left++;right--;}}intmain(){intn;printf("請(qǐng)輸入要逆序排列的數(shù)的個(gè)數(shù):\n");scanf("%d",&n);intarr[n];printf("請(qǐng)輸入%d個(gè)整數(shù):\n",n);for(inti=0;i<n;i++){scanf("%d",&arr[i]);}reverseArray(arr,n);printf("逆序排列后的數(shù)組為:\n");for(inti=0;i<n;i++){printf("%d",arr[i]);}printf("\n");return0;}5.要求從鍵為y4][4]數(shù)組輸入數(shù)據(jù),使用一維數(shù)指針變量輸入/輸出數(shù)元素,并且分別求出主、次對(duì)角線元素之和。#include<stdio.h>#defineROWS4#defineCOLS4voidinputArray(int*arr){printf("請(qǐng)輸入數(shù)組元素:\n");for(inti=0;i<ROWS*COLS;i++){scanf("%d",arr+i);}}voidoutputArray(int*arr){printf("數(shù)組元素為:\n");for(inti=0;i<ROWS;i++){for(intj=0;j<COLS;j++){printf("%d",*(arr+i*COLS+j));}printf("\n");}}intcalculateMainDiagonalSum(int*arr){intsum=0;for(inti=0;i<ROWS;i++){sum+=*(arr+i*COLS+i);}returnsum;}intcalculateSecondaryDiagonalSum(int*arr){intsum=0;for(inti=0;i<ROWS;i++){sum+=*(arr+i*COLS+(COLS-1-i));}returnsum;}intmain(){intarray[ROWS][COLS];int*ptr=&array[0][0];inputArray(ptr);outputArray(ptr);intmainDiagonalSum=calculateMainDiagonalSum(ptr);printf("主對(duì)角線元素之和為:%d\n",mainDiagonalSum);intsecondaryDiagonalSum=calculateSecondaryDiagonalSum(ptr);printf("次對(duì)角線元素之和為:%d\n",secondaryDiagonalSum);return0;}6.編寫一個(gè)程序,將一個(gè)字符串插入另一個(gè)字符串的指定位置。#include<stdio.h>#include<string.h>voidinsertString(char*str1,char*str2,intpos){intlen1=strlen(str1);intlen2=strlen(str2);//檢查插入位置的有效性if(pos<0||pos>len
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學(xué)《影像診斷學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《數(shù)據(jù)庫(kù)管理》2021-2022學(xué)年期末試卷
- 石河子大學(xué)《景觀生態(tài)學(xué)原理》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《數(shù)據(jù)庫(kù)原理》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《化工原理A》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《電路實(shí)驗(yàn)》2021-2022學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《產(chǎn)品語(yǔ)義學(xué)應(yīng)用設(shè)計(jì)》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《nux系統(tǒng)程序設(shè)計(jì)》2023-2024學(xué)年期末試卷
- 合伙承包高鈣粉合同
- 同步新課堂高中歷史專題二近代中國(guó)維護(hù)國(guó)家主權(quán)的斗爭(zhēng)課時(shí)訓(xùn)練7偉大的抗日戰(zhàn)爭(zhēng)含解析人民版必修1
- 15D501 建筑物防雷設(shè)施安裝
- CJJ1-2008城鎮(zhèn)道路工程施工與質(zhì)量驗(yàn)收規(guī)范
- 【公開課】銀飾之美
- 安徽徽商銀行總行合規(guī)部招聘金牌沖刺卷I試題3套含答案詳解
- GB/T 41632-2022絕緣液體電氣用未使用過(guò)的合成有機(jī)酯
- GB/T 247-1997鋼板和鋼帶檢驗(yàn)、包裝、標(biāo)志及質(zhì)量證明書的一般規(guī)定
- GB/T 12584-2001橡膠或塑料涂覆織物低溫沖擊試驗(yàn)
- FZ/T 50040-2018化學(xué)纖維短纖維親水性能試驗(yàn)方法
- ICH-Q7活性藥物成分(API)的GMP指南課件
- 最新人教版七年級(jí)數(shù)學(xué)上冊(cè)《數(shù)學(xué)活動(dòng)》教學(xué)課件
- 小學(xué)安全教育人教四年級(jí)上冊(cè)安全生活家庭燃?xì)庑孤┑念A(yù)防和處理 課件
評(píng)論
0/150
提交評(píng)論