C语言编程个人真情奉献答案2Word文档格式.docx

上传人:b****4 文档编号:18168560 上传时间:2022-12-13 格式:DOCX 页数:36 大小:83.15KB
下载 相关 举报
C语言编程个人真情奉献答案2Word文档格式.docx_第1页
第1页 / 共36页
C语言编程个人真情奉献答案2Word文档格式.docx_第2页
第2页 / 共36页
C语言编程个人真情奉献答案2Word文档格式.docx_第3页
第3页 / 共36页
C语言编程个人真情奉献答案2Word文档格式.docx_第4页
第4页 / 共36页
C语言编程个人真情奉献答案2Word文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

C语言编程个人真情奉献答案2Word文档格式.docx

《C语言编程个人真情奉献答案2Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言编程个人真情奉献答案2Word文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

C语言编程个人真情奉献答案2Word文档格式.docx

printf("

%d\n"

max);

return0;

}

6.8程序定义了 

4的二维数组,请编写程序,给二维数组赋值,并使数组下半三角元素中的值乘以n。

例如:

数组中的值为

假设n为10,则输出结果如下:

(输出的数按照4位宽度来输出,即%4d)

#defineN4

inta[N][N];

inti,j,n;

4;

for(j=0;

j<

j++)

a[i][j]);

n);

if(i>

=j)

a[i][j]=n*a[i][j];

%d"

a[i][j]);

\n"

);

6.9杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。

  其实,中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。

中国古代数学史曾经有自己光辉灿烂的篇章,而贾宪三角的发现就是十分精彩的一页。

杨辉三角有如下性质:

1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。

2、第n行的数字个数为n个。

3、每个数字等于上一行的左右两个数字之和。

编写程序,输入正数n,将所有数据存储到二维数组中,并在屏幕上显示对应的杨辉三角形(注意数据之间的空格)。

例如:

n=5 

图形如下:

1

1

#defineN100

=n;

if(i==j||j==0)

a[i][j]=1;

for(i=1;

for(j=1;

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

{if(a[i][j]!

=0)

{printf("

%3d"

6.10编写一个程序,求出4×

5的二维数组周边元素之和。

输入:

二维数组元素

输出:

周边元素之和

如:

13579

29994

69998

13570

61

inta[N][N+1];

inti,j,sum=0;

5;

scanf("

a[i][j]);

if(i==0||i==3||j==0||j==4)

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

}}}

sum);

6.11编程,输入n,存储并输出如下例(n=5)所示的图形。

12345

11234

11123

11112

11111

inta[N][N];

n;

if(j<

=i)

}if(j>

i)

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

%2d"

6.12对数组a[10]中的十个整数从小到大进行连续编号,输出各个元素的编号。

要求不能改变数组a中元素的顺序,且相同的整数要具有相同的编号。

例如数组是:

A=(5,3,4,7,3,5,6,8,9,10)则输出为:

 (4,1,3,7,1,4,6,8,9,10)

inta[11],c[11];

inti,j,t,n;

11;

c[i]=a[i];

11-j;

if(a[i]>

=a[i+1])

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

for(n=1;

n<

n++)

if(c[n]==a[i])

i);

break;

}printf("

8.1描述

提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。

输入

一个以回车符为结束标志的字符串(少于80个字符)。

输出

把字符串中的所有数字字符(‘0’...‘9’)转换为一个整数并输出。

string.h>

charstr1[81],str2[80];

inti=0,j=0;

gets(str1);

while(str1[i]!

='

\0'

if('

0'

<

=str1[i]&

&

str1[i]<

9'

str2[j]=str1[i];

j++;

i++;

}//{if(str2[j]=’\0’)

//break;

str2[j]='

;

//}}

%s\n"

str2);

//相同

8.2输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。

两个已经排好顺序(升序)的字符串

一个合并在一起的有序(升序)的字符串

要求:

设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。

如果采用先进行串连接,然后再进行排序的算法,则效率太低了。

chara[100],b[100],t;

inti,j,k;

gets(a);

gets(b);

strcat(a,b);

k=strlen(a);

=k;

k-j;

puts(a);

8.3输入一个长度不超过100的字符串,删除串中的重复字符。

输入要检查的字符串,长度不超过100个字符。

abacaeedabcdcd。

删除重复字符后的字符串。

abced。

chara[100],b[100];

intn,i,j,cnt=1;

n=strlen(a);

b[0]=a[0];

i;

if(a[i]==a[j])

if(a[i]==a[j]&

i==j)

b[cnt]=a[j];

cnt++;

i<

cnt;

i++)

%c"

b[i]);

8.4输入两个字符串s1和s2,在s1中删除任何s2中有的字符。

例如,s1:

“abc123ad”,s2:

“a1”,则输出“bc23d”。

两个字符串s1和s2

删除后的字符串s1

chara[100],b[100],c[100];

intx,y,i,j,cnt;

%s"

a);

b);

x=strlen(b);

y=strlen(a);

j<

x;

j++)

cnt=0;

y;

if(a[i]!

=b[j])

c[cnt]=a[i];

strcpy(a,c);

y=cnt;

c[i]);

8.5用空格或换行分开的字符串称为单词。

输入多行字符串,直到遇到了单词"

stop"

时才停止。

最后输出单词的数量。

用于分割单词的空格或换行可能多于1个。

多个字符串

单词的数量

malloc.h>

{intcnt=0;

char*word;

while

(1)

word=(char*)malloc(sizeof(char)*20);

word);

++cnt;

if(0==strcmp(word,"

))

free(word);

cnt-1);

8.6输入两个字符串s1、s2和s1中任意字符k,在s1中的指定字符k第一次出现的位置处插入字符串s2并输出。

两个字符串s1、s2和s1中任意字符k

插入后的字符串s1

inti,j,n,t,cnt=-1;

chark;

t=strlen(b);

k);

=n-1;

{cnt=cnt+1;

if(k==a[i])

for(i=cnt;

cnt+t;

c[i]=b[i-cnt];

for(i=cnt+t;

=n+t;

c[i]=a[i-t];

}puts(c);

9.1请编写函数fun,其功能是:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a的十位和个位依次存放在c数的十位和千位上,b的十位和个位依次存放在c数的个位和百位上。

当a=45,b=12,调用该函数后,c=5241。

提醒:

本题提交的时候,只需要提交fun函数就可以。

预设代码

前置代码

/*PRESETCODEBEGIN-NEVERTOUCHCODEBELOW*/

/*PRESETCODEEND-NEVERTOUCHCODEABOVE*/

后置代码

inta,b,c;

%d%d"

a,&

b);

c=fun(a,b);

c=%d\n"

c);

答案

intfun(inta,intb,int*c)

*c=a%10*1000+a/10*10+b%10*100+b/10;

return&

c;

9.2请编写函数fun,其功能是判断一个整数n是否为素数,如果是素数,则返回1,否则返回0。

inta;

a);

if(fun(a))printf("

Prime\n"

elseprintf("

NonPrime\n"

答案:

intfun(intn)

inti,flag=0;

for(i=2;

if(n%i==0)

flag++;

if(flag==0)

return1;

if(flag>

0)

9.3请编写函数fun,它的功能是计算下列级数和,值由函数值返回。

例如,当n=10,x=0.3时,函数值为1.349859。

请勿改动主函数main,仅在函数fun的花括号中填入所编写的若干语句。

doublex;

intn;

%lf%d"

x,&

%lf\n"

fun(x,n));

答案:

doublefun(doublex,intn)

inti;

doublesum=1,v=1,k=1;

v=v*i;

k=k*x;

sum=sum+k/v;

returnsum;

9.4请编写一个函数,其功能是:

将大于整数m且紧靠m的k个素数存入xx所指的数组中。

例如,若输入175,则应输出1923293137

intm,n,zz[1000];

m,&

fun(m,n,zz);

for(m=0;

m<

m++)

%6d"

zz[m]);

voidfun(intm,intk,intzz[])

inti,j,t=0;

for(i=m+1;

;

for(j=2;

=i;

if(i%j==0)

if(i==j)

zz[t]=i;

t++;

if(t==k)

9.5请编写函数fun,其功能是:

从字符串中删除指定的字符。

同一字母的大、小写按照不同的字符处理。

charstr[80];

charch;

gets(str);

ch);

fun(str,ch);

str);

intfun(chars[],charc)

inti,j=0;

s[i]!

if(s[i]!

=c)

s[j++]=s[i];

s[j]='

return(s);

9.6背景:

哈哈!

我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!

来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。

功能:

求整数n到m区间的累加和,其中n<

=m。

区间的起始点n 

区间的终止点m

累加和

使用递归算法完成。

intmain()

{

intm,n,s;

n,&

m);

s=fun(n,m);

s);

#include<

intsum(inti,intj)

intc;

if(j==i)

c=i;

else

c=j+sum(i,j-1);

returnc;

voidmain()

intm,n;

sum(m,n));

9.7请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。

n和m

n和m的最大公约数

intfun(intn,intm)

inta,r,t;

if(n<

m)

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

当前位置:首页 > 职业教育 > 职高对口

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

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