C语言机试Word文档格式.docx

上传人:b****3 文档编号:15828284 上传时间:2022-11-16 格式:DOCX 页数:30 大小:38.01KB
下载 相关 举报
C语言机试Word文档格式.docx_第1页
第1页 / 共30页
C语言机试Word文档格式.docx_第2页
第2页 / 共30页
C语言机试Word文档格式.docx_第3页
第3页 / 共30页
C语言机试Word文档格式.docx_第4页
第4页 / 共30页
C语言机试Word文档格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言机试Word文档格式.docx

《C语言机试Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言机试Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。

C语言机试Word文档格式.docx

400500600

700800900

程序输出:

100400700

200500800

300600900

voidfun(intarray[3][3])

{inti,j;

intb[3][3];

for(i=0;

i<

3;

i++)

for(j=0;

j<

j++)

b[j][i]=array[i][j];

/*将矩阵行列互换*/

array[i][j]=b[i][j];

/*将b数组中的数据原封不动的保存在array数组中*/

3.编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。

intfun(intlim,intaa[MAX])

{inti,j=0,k=0;

for(i=2;

lim;

i++)/*判断i是否小于lim,如果i小于lim执行循环*/

{for(j=2;

i;

j++)/*判断i是否能被比它小的整数整除*/

if(i%j==0)break;

/*假如i能被整除,则退出该层循环*/

if(j==i)aa[k++]=i;

/*假如i不能被比它小的整数整除,则将i存入aa数组中*/

}

returnk;

4.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

例如:

二维数组中的值为

13579

29994

69998

13570

则函数值为61。

解题思路:

二维数组的周边元素的特点是:

它有一个下标为0或为数组上界。

所以我们只需判断数组的下标是否为0或数组上界即可。

按行、列进行循环可以保证符合条件的元素只被运算一次。

intfun(inta[M][N])

inti,j,sum=0;

for(i=0;

i<

M;

for(j=0;

j<

N;

j++)

if((i==0)||(i==M-1)||(j==0)||(j==N-1))/*判断a[i][j]是否为数组中的第一行或最后一行或第一列或最后一列*/

sum+=a[i][j];

/*对a数组的周边元素求和*/

returnsum;

5.请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。

例如,原来的字符串为CEAedca,排序输出为CedcEAa

只对除首、尾字符外的字符排序,排序可用多种方法来实现,本题用的是选择法,通过一变量来记录大数的下标,再与前面的数交换,从而实现降序排序。

*/

intfun(char*s,intnum)

{inti,j,h,t;

for(i=1;

num-1;

{h=i;

for(j=i;

if(s[h]<

s[j])h=j;

/*从字符串的第i+1个字符到num-1个字符中找出最大的字符,并将其数组下标赋值给h*/

if(h!

=i)/*判断找到的最大字符的下标是否为第i个字符*/

{t=s[h];

s[h]=s[i];

s[i]=t;

}/*将s[h]与s[i]中的字符进行交换*/

6.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

inti,j,min;

for(i=0;

4;

{

min=tt[0][i];

/*将每列的第一个数赋值给min*/

for(j=0;

3;

j++)/*将min与该列中的每个数进行比较,并把最大的那个数赋值给min*/

if(min>

tt[j][i])

min=tt[j][i];

pp[i]=min;

7.编写一个函数,从传入的num个字符串找出最长的一个字符串,并通过形参指针max传回该串地址。

(注意:

用****作为结束输入的标志。

通过求字符串长度函数对一组字符串的字符进行比较,并将地址赋给一指针变量。

fun(char(*a)[81],intnum,char**max)

{inti;

*max=a[0];

/*将第一个字符串赋值给max指针*/

=num;

if(strlen(a[i])>

strlen(*max))*max=a[i];

/*假如字符串a[i]的长度比指针max中的字符串的长度长,则将a[i]字符串赋值给max指针*/

8.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如,假定输入的字符串为:

asdasasdfgasdaszx67askmklo,子字符串为:

as,则应输出6。

将主串中的字符从第一个位置开始逐个与子串中的字符作比较,若子串出现在主串中,次数加1,主串中的指针移动到下一个位置继续与子串比较,反之,主串中的指针也同样移动到下个位置,直至主串中的字符全部比较结束。

intfun(char*str,char*substr)

{unsignedinti=0;

intj,k=0,add;

while(i<

strlen(str))

{j=0;

add=i;

while((str[add]==substr[j])&

&

(substr[j]!

='

\0'

))

{add++;

j++;

if(substr[j]=='

)k++;

i++;

9.程序定义了N×

N的二维数组,并在主函数中赋值。

请编写函数fun,函数的功能是:

求出数组周边元素的平均值并作为函数值返回给主函数中的s。

a数组中的值为

|01279|

|19745|

a=|23831|

|45682|

|59141|

则返回主程序后s的输出结果为:

3.375000。

使用循环语句控制行,然后对首行和末行使用内循环求取所有元素的和。

对于其他行则取其首尾元素的值。

最后求这些数总和的平均值。

doublefun(intw[][N])

inti,j,count=0;

doubleaverage,sum=0.0;

for(i=0;

N;

i++){

if(i==0||i==(N-1))/*判断是否为第一行或最后一行的元素*/

for(j=0;

j++){

sum+=w[i][j];

count++;

/*元素个数加1*/

}/*对第一行或最后一行的元素求和*/

else

{

sum+=w[i][0];

/*对第i行第一列的元素求和*/

sum+=w[i][N-1];

/*对第i行最后一列的元素求和*/

count+=2;

}/*对除首尾两行外的其他行中每行的首尾两个元素求和*/

average=sum/count;

/*计算数组周边元素的平均值*/

returnaverage;

10.编写一个函数fun,它的功能是:

实现两个字符串的连接(不使用库函数strcat)。

1、定义两个字符型指针point1、point2,分别指向字符串p1和p2;

2、point1起始指向字符串p1的第一个字符,通过循环,令其指向p1串尾,为未来的连接工作做好准备;

3、point2起始指向字符串p2的第一个字符,通过循环,不断将指针指向p2的下一个字符;

4、将point2指向的字符通过指针point1逐一连接在字符串p1末尾;

5、连接完毕后,将指向字符串p1末尾的指针point1指向'

,以保证指针不越界。

voidfun(charp1[],charp2[])

char*point1,*point2;

point1=p1;

point2=p2;

while(*point1!

)point1++;

/*将指针point1指向字符串末尾的结束符位置上*/

while(*point2!

){

*point1=*point2;

/*将point2指向的字符通过指针point1逐一连接在字符串p1末尾*/

point1++;

/*point1指针指向p1字符串中的下一个字符*/

point2++;

}/*判断point2是否指向字符串末尾的结束符位置上,如果是则连接完成退出循环*/

*point1='

;

/*将point指针指向'

,以保证指针不越界*/

11.请编写函数fun,函数的功能是:

实现B=A+A'

,即把矩阵A加上A的转置,存放在矩阵B中。

计算结果在main函数中输出。

例如,输入下面的矩阵:

其转置矩阵为:

|123||147|

|456||258|

|789||369|

|2610|

|61014|

|101418|

A的转置即指原先在i行j列的元素现放置在j行i列上,通过一个两重循环即可求得矩阵与其转置的和。

voidfun(inta[3][3],intb[3][3])

{inti,j;

b[i][j]=a[i][j]+a[j][i];

/*按从行到列的顺序,求得矩阵与其转置的和*/

12.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:

将低于平均分的人数作为函数值返回。

例如,当score数组中的数据为:

10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:

10203040。

1、首先定义两个变量total和average,分别放置总分数和平均分;

2、通过循环,计算出数组score[]中各个分数的总和,并放至total中;

3、根据由主函数传过来的m,计算平均分,并放至average中;

4、定义指针p_below,指向主函数中的数组below[],通过这个指针的操作设置below[]中各元素的值;

5、通过循环,让

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1