二级培训C讲义wang8上机Word下载.docx

上传人:b****3 文档编号:6648613 上传时间:2023-05-07 格式:DOCX 页数:11 大小:17.93KB
下载 相关 举报
二级培训C讲义wang8上机Word下载.docx_第1页
第1页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第2页
第2页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第3页
第3页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第4页
第4页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第5页
第5页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第6页
第6页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第7页
第7页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第8页
第8页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第9页
第9页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第10页
第10页 / 共11页
二级培训C讲义wang8上机Word下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

二级培训C讲义wang8上机Word下载.docx

《二级培训C讲义wang8上机Word下载.docx》由会员分享,可在线阅读,更多相关《二级培训C讲义wang8上机Word下载.docx(11页珍藏版)》请在冰点文库上搜索。

二级培训C讲义wang8上机Word下载.docx

2106"

Zhang"

"

5129"

Chang"

4512"

An"

6868"

}

intk;

sort(stu,0,4);

printf("

TheSortedArray:

\n"

);

for(k=0;

5;

name:

%s,num:

%s\n"

stu[k]->

name,stu[k]->

num);

二、函数find的功能是:

在给定的5×

5矩阵中,找出所有元素a[i][j],使其第i行上所有元素之和等于第j列上所有元素之和。

voidfind(inta[5][])

{inti,j,row,col,sum1,sum2;

for(i=0;

i<

i++)

for(j=0;

{sum1=sum2=0;

for(col=0;

col<

col++)sum1+=a[i][col];

for(row=0;

row<

row++)sum2+=a[j][row];

if(sum1=sum2)

a[%d][%d]:

%d\n"

i,j,a[i][j]);

}

{inti,j,a[5][5]={{2,8,1,9,4},{5,7,1,3,0},{7,1,7,5,2},{3,2,2,1,5,},{0,2,1,6,8}};

{for(j=0;

%4d"

a[i][j]);

find(a,5);

10.2编程题

一、编写函数voidcount(chara[],charw[][10],intn,intb[])。

统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看作单词分割符),拧将统计结果依次保存在b指向的数组中。

main()

{chara[]="

thisisabook,isanapple."

;

charw[6][10]={"

this"

that"

is"

a"

an"

book"

};

intb[6];

count(a,w,6,b);

6;

%s:

%d,"

w[i],b[i]);

voidcount(chara[],charw[][10],intn,intb[])

{charword[10];

inti=0;

n;

j++)b[j]=0;

while(s[i])

{getword(a,word,&

i);

if(strcmp(word,w[j])==0)break;

if(j<

n)b[j]++;

intischar(charc)

{if(s[i]>

='

a'

&

&

s[i]<

z'

||s[i]>

A'

Z'

return

(1);

return(0);

}

voidgetword(chara[],charword[],int*p_i);

{inti;

for(i=*p_i;

s[i];

if(ischar(s[i])==1)break;

if(s[i]){word[0]='

\0'

return;

ischar(s[j])==0;

j++)word[j]=s[i]

*p_i=i;

二、编写函数char*d_to_h(charb[],charc[])。

将b指向的数组中一个整数的十进制字符串转换成该整数的十六进制字符串,并保存在c指向的数组中。

(十六进制字符串自左向右依次保存在c[0]开始的数组元素中)。

函数返回c指向的数组的首地址。

{charb[]="

26"

c[6];

d_to_h(b,c);

puts(c);

char*d_to_h(charb[],charc[])

{inttmp;

tmp=d_to_int(b);

int_to_h(tmp,c);

return(c);

intd_to_int(charb[])

{inti,num=0;

b[i];

i++)num=num*10+b[i]-'

0'

return(num);

voidint_to_h(intx,charc[])

{inti=0;

for(;

x;

{tmp=x%16;

if(tmp>

=0&

tmp<

=9)c[i]=tmp+'

elsec[i]=tmp-10+'

x=x/16;

c[i]='

reverse(c);

voidreverse(charc[])

{intlen,i,j;

chartmp;

for(len=0;

c[len];

len++);

for(i=0,j=len-1;

j;

i++,j--)

{tmp=c[i];

c[i]=c[j];

c[j]=tmp;

};

三、编写函数intstat(inta[],intn,intc[][2])。

a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。

函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;

统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。

函数返回不同整数的个数。

{inta[10]={0,1,1,2,4,0,0,1,2,3},c[5][2];

intn,i;

n=stat(a,10,c);

%d:

c[i][0],c[i][1]);

intstat(inta[],intn,intc[][2])

/*生成有n/2个元素组成的整数数列*/

for(j=0,i=0;

n/2;

i++,j=j+2)

{c[i][0]=a[j]*10+a[j-1];

c[i][1]=1;

/*统计该数列中不同整数各自出现的次数*/

n=n/2;

for(j=i+1;

if(c[j][0]==c[i][0])

{c[i][1]++;

delete(c,n,i);

n--;

voiddelete(intc[][2],intn,intk)

for(i=n-1;

i>

k;

i--)

{c[i-1][0]=c[i][0];

c[i-1][1]=c[i][1];

四、编写函数voidFindWord(chara[])。

将a指向的字符串中最长的单词(空格作为单词分割符)移动到该字符串的最后。

youarestudenttoo."

FindWord(a);

puts(a);

voidFindWord(chara[])

{charword[50];

intlen;

charlongword[50];

intlonglen=0,startpos;

inti;

a[i];

{while(a[i]=='

'

/*过滤空格*/

/*发现单词*/

a[i]&

a[i]!

)word[len++]=a[i++];

word[len]='

/*是否是最长单词*/

if(len>

longlen)

{longlen=len;

statrpos=i-longlen;

strcpy(longword,word);

/*将a[statrpos]…a[statrpos+longlen-1]删除*/

for(i=statrpos+longlen;

i++)a[i-longlen]=a[i];

/*将longword[]中的字符串添加在a[]中字符串末尾*/

longword[j];

j++)a[i++]=longword[j];

a[i]='

五、将未在字符串s中出现而在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符。

例如,当s="

ABCDE"

,t="

BDFGG"

时,u中的字符串为"

FGG"

main()

{chars[]="

t[]="

u[100];

fun(s,t,u);

puts(u);

voidfun(char*s,char*t,char*u)

{inti,j,sl,tl;

sl=strlen(s);

tl=strlen(t);

t[i];

i++)

s[j];

if(t[i]==s[j])break;

if(s[j]=='

){*u=t[i];

u++;

*u='

六、编写函数fun(int*a,intn,int*odd,int*even),功能是:

求出数组a[]中所有奇数之和以及所有偶数之和。

并利用指针odd返回奇数之和,利用指针even返回偶数之和。

例如:

a[]的值依次为:

1,9,2,3,11,6;

则利用指针odd返回奇数之和24;

利用指针even返回偶数之和8。

main()

{inta[N]={1,9,2,3,11,6},i,n=6,odd,even;

fun(a,n,&

odd,&

even);

odd=%d,even=%d\n"

odd,even);

fun(int*a,intn,int*odd,int*even)

*odd=0;

*even=0;

if(a[i]%2)*odd+=a[i];

else*even+=a[i];

七、编写函数longfun(longn)。

函数功能:

(1)判断参数n的最高位是否为奇数,若是奇数,则将所有值为奇数的数字位提取出来,否则,将所有值为偶数的数字位提取出来;

(2)用所提取的这些数字组成一个降序数,函数返回这个降序数。

例如由n=3214586生成的降序数为531;

由n=87954632生成的降序数为8642。

2.编写main函数。

声明一个longint型数组并用测试数据初始化该数组,用测试数据调用函数fun,将每一测试数据及由其生成的降序数保存到结果文件myf2.out中。

最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。

测试数据:

3214586,87954632

运行结果:

3214586,531

87954632,8642

longfun(longn);

voidsort(inta[],intn);

{longinta[2]={3214586,87954632};

longintx[2];

FILE*fp;

x[0]=fun(a[0]);

x[1]=fun(a[1]);

fp=fopen("

f:

\\myf2.out"

w"

fprintf(fp,"

%ld,%ld\n"

a[0],x[0]);

a[1],x[1]);

1111111\n"

fclose(fp);

longfun(longn)

{inta[100],count=0;

intb[100],i,j;

longs;

while(n>

0)

{a[count++]=n%10;

n=n/10;

/*3214586:

a[0]...a[count-1]:

6854123*/

j=0;

if(a[count-1]%2)

for(i=count-1;

=0;

{if(a[i]%2)b[j++]=a[i];

else

{if(a[i]%2==0)b[j++]=a[i];

/*有效数字:

b[0]...b[j-1]*/

sort(b,j);

/*有效数字已经降序:

s=0;

s=s*10+b[i];

return(s);

/*降序:

大...小*/

voidsort(inta[],intn)

{inti,j,tmp;

n-1;

if(a[j]<

a[j+1])

{tmp=a[j];

a[j]=a[j+1];

a[j+1]=tmp;

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2