版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章指針
一、選擇題
1-5DDAAB
6-10DDCDD
11-15CDDCC
16-20CBABD
20-25BCDCB
26-30ACCDC
二、填空題
1.60
2.w[i-l]
3.①row(2)a[row][colum]
4.*s-*t
5.略
6.strcmp(a[i],a[i+A])book,6
7.int*c
8.str[i];i
9.略
10.pl++;*p2
三、編程題
1.輸入3個(gè)整數(shù),按曰小到大的順序輸出。
:include<stdio.h>
voidsort31ntegers(int*a,int*b,int*c)
(
inttemp;
if(*a>*b)
(
temp=
*a=*b:
*b=tenp;
)
if(*b>*c)
temp=仙
*b=*c;
*c=tenp;
if(*a>*b;
(
temp=
*a=*b:
*b=tenp;
}
}
intmain()
(
intnuml,num2,num3;
printf(〃請(qǐng)輸入三個(gè)整數(shù):\n");
scanf(z,%d%d%d”,&numl,&num2,&num3);
sort3Integers(&numl,&num2,&num3);
printf(〃按升序排列后的結(jié)果為:%d%d%d\n,z,numl,num2,nun3);
return0;
}
2.已知一個(gè)整型數(shù)組x[4],它的各元素值分別為3、118和2使用指針表示法
編寫(xiě)程序,求該數(shù)組各元素之積。
ftinclude<stdio.h>
intmainO
(
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ù)
交換。
ttinclude<stdio.h>
voidswap(int*a,int*b)
(
inttemp=%;
*a=*b;
*b二temp;
}
intmain()
(
intnumbers[10];
printf(〃請(qǐng)輸入10個(gè)整數(shù):\n〃);
for(inti=0;i<10;i++)
(
scanf(〃%d〃,&numbers[i]);
)
intminlndcx=0;
intmaxIndex=0;
//尋找最小值和最大值的索引
for(inti=1;i<10;i++)
if(numbers[i]<numbers[minindex])
{
minZndex=i;
}
if(numbers[i]>numbers[maxindex])
(
maxIndex=i;
//最小數(shù)與第一個(gè)數(shù)交換
swap(&numbers[0],&numbers[minindex]);
//最大數(shù)與最后一個(gè)數(shù)交換
swap(&numbers[9],&numbers[maxlndex]);
printf("交換后的數(shù)組為:\n〃);
for(inti=0;i<10;i++)
(
printf("刎〃,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&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;
return0;
)
5.要求從鍵為y4][4]數(shù)組輸入數(shù)據(jù),使用一維數(shù)指針變量輸入/輸出數(shù)元素,并
且分別求出主、次對(duì)角線元素之和。
nclude<stdio.h>
ttdefineROWS4
ttdefineCOLS4
voidinputArrayjnt*arr)
(
printf(〃請(qǐng)輸入數(shù)組元素:\n〃);
for(inti=0;i<ROWS*COLS;i-+)
(
scanfarr+i);
)
)
voidoutputArray(int*arr)
(
printf(〃數(shù)組元素為:\n〃);
for(inti=0;i<ROWS;i++)
(
for(intj=0;j<COLS;j++)
{
printfC%d”,*(arr+i*COLS+j));
)
printf("\n〃);
intcalculateMamDiagonalSuin(int*arr)
(
intsum=0:
for(inti=0;i<ROWS;i++)
(
sum+=*(arr+i*COLS+i);
}
returnsum;
}
intcalculateSecondaryDiagonalSum(intxarr)
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);
outputArrayJptr);
intmainDiagonalSum=calculateMainDiagonalSum(ptr);
printf(〃主XT角線元素之和為:%d\n〃,mainDiagonalSum);
intsecondaryDiagonalSum=calculateSecondaryDiagonalSum(ptr);
printf(〃次龍■角線元素之和為:%d\nz,,secondaryDiagonalSum);
return0;
)
6.編寫(xiě)一個(gè)程序,將一個(gè)字符串插入另一個(gè)字符串的指定位置。
ttinclude<stdio.h>
#include<string.h>
voidinsertString(char*strl,char*str2,intpos)
(
intlenl=strlen(strl);
intlen2=strlen(str2);
//檢查插入位置的有效性
if(pos<0pos>lenl)
printf("錯(cuò)誤:插入位置無(wú)效!\n");
return;
)
//創(chuàng)建臨時(shí)字符數(shù)組來(lái)儲(chǔ)存插入后的字符串
charresult[lenl+len2+1];
inti,j;
//復(fù)制strl中的前pos個(gè)字符到結(jié)果字符串result
for(i=0;i<pos;i++)
(
result[i]=strl[i];
}
//復(fù)制str2到結(jié)果字符串result
for(j=0;j<len2;j++)
(
result[i+j]=str2[j];
)
//復(fù)制strl中剩余的字符到結(jié)果字符串result
for(;i<lenl;i++)
(
result[i+len2]=strl[i];
}
//添加末尾的NULL終止符
result[lenl+len2]='\0';
//將結(jié)果字符串復(fù)制回strl
strcpy(strl,result);
)
intmainO
(
charstrl[100];
printf(〃請(qǐng)輸入目標(biāo)字符串:\n〃);
fgets(strl,sizeof(strl),stdin);
strl[strcspn(strl,z/\n,z)]='\0';//去除fgets函數(shù)讀取的換行
符
charstr2[100];
printf(〃請(qǐng)輸入要插入的字符串:\n〃);
fgets(str2,sizeof(str2),stdin);
str2[strcspn(str2,z/\n,z)]='\0';//去除fgets函數(shù)讀取的換行
符
intpos;
printf(〃請(qǐng)輸入插入位置:\n〃);
scanf&pos);
insertString(strl,str2,pos);
printf("插入后的字符串為:%s\n〃,strl);
return0;
)
7.編寫(xiě)一個(gè)程序,用指針操作將一個(gè)一維數(shù)組中的個(gè)整數(shù)進(jìn)行以下處理:順序?qū)?/p>
前面各數(shù)后移m個(gè)位置,使最后面的m個(gè)數(shù)變成前面的m個(gè)。例如,有5個(gè)
數(shù)13579,兩個(gè)后7913。
ttinclude<stdio.h>
voidshiftArraylint*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(,z%d,z,&size);
intarrfsize];
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;
return0;
)
8.編寫(xiě)一個(gè)程序,使用指針操作將一個(gè)矩陣轉(zhuǎn)置,即二維數(shù)組a的轉(zhuǎn)置矩陣滿(mǎn)
足下列條件:b的行就是a的列。
ftinclude<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);
)
}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油站工作培訓(xùn)課件
- 2026年石家莊幼兒師范高等專(zhuān)科學(xué)校單招職業(yè)技能測(cè)試題庫(kù)及參考答案詳解1套
- 2026年天津電子信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解1套
- 2026年汕尾職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及答案詳解一套
- 2026年硅湖職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)及參考答案詳解
- 2026年南通師范高等專(zhuān)科學(xué)校單招職業(yè)傾向性測(cè)試題庫(kù)帶答案詳解
- 2026年仙桃職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)及答案詳解一套
- 2026年江西應(yīng)用科技學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解一套
- 2026年資陽(yáng)環(huán)境科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫(kù)及答案詳解一套
- 2026年廣西電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)參考答案詳解
- DB21∕T 3165-2025 鋼纖維混凝土預(yù)制管片技術(shù)規(guī)程
- 人工智能輔助耳鼻咽喉虛擬內(nèi)鏡訓(xùn)練系統(tǒng)構(gòu)建
- 2025年及未來(lái)5年中國(guó)高功率連續(xù)光纖激光器行業(yè)發(fā)展監(jiān)測(cè)及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年常見(jiàn)非標(biāo)機(jī)械設(shè)計(jì)師面試題及答案
- 員工冬季出行安全
- GB/T 14748-2025兒童呵護(hù)用品安全兒童推車(chē)
- 《粵港澳大灣區(qū)城際鐵路建設(shè)工程資料管理規(guī)范》
- 期末復(fù)習(xí)知識(shí)清單 2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- 2025年中國(guó)碳?xì)淝逑磩┦袌?chǎng)調(diào)查研究報(bào)告
- 海水墻面防水施工方案設(shè)計(jì)
- 退化森林修復(fù)技術(shù)-洞察與解讀
評(píng)論
0/150
提交評(píng)論