c语言题目解析答案.docx

上传人:b****4 文档编号:27505135 上传时间:2023-07-02 格式:DOCX 页数:40 大小:24.95KB
下载 相关 举报
c语言题目解析答案.docx_第1页
第1页 / 共40页
c语言题目解析答案.docx_第2页
第2页 / 共40页
c语言题目解析答案.docx_第3页
第3页 / 共40页
c语言题目解析答案.docx_第4页
第4页 / 共40页
c语言题目解析答案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

c语言题目解析答案.docx

《c语言题目解析答案.docx》由会员分享,可在线阅读,更多相关《c语言题目解析答案.docx(40页珍藏版)》请在冰豆网上搜索。

c语言题目解析答案.docx

c语言题目解析答案

网易新闻

微博

邮箱

相册

有道

摄影

闪电邮

手机邮

印像派

梦幻人生

更多博客手机博客

博客搬家

LiveWriter写博

Word写博

邮件写博

短信写博

群博客

博客油菜地

博客话题

博客热点

博客圈子

找朋友发现小组风格群博客召集令创建博客登录关注显示下一条|关闭木水文尧弹子头的故事

导航

首页日志相册音乐收藏博友关于我日志弹子

加博友关注他

最新日志

湖人惨败出局[转载]考宾州驾照+换杭州驾这个实验有意思杭州的水污染状况(部分摘抄SQLserver操作简单实例C语言初级程序汇集该作者的其他文章

博主推荐

相关日志

随机阅读

首页推荐

洋妞众目睽睽下拥抱香港短裙美女妩媚性感怨妇对付小三最有效妙招爱音乐节上的美国绅士权谋与阴谋交织的日本政局实拍佛祖的牙齿更多>>

对“推广广告”提建议

英语写作轮廓SQLserver操作简单实例

C语言初级程序汇集计算机2011-05-1007:

49:

54阅读28评论0字号:

大中小订阅

//-------------------------------------------------------------------------------------------------

编写一个c程序,程序运行时要求用户输入两个正整数m和n,然后程序给出这两个数的最大公约数和最小公倍数。

#include

voidmain()

{

intm,n,r,t,f;

scanf("%d%d",&m,&n);

f=m*n;

if(m

{t=m;m=n;n=t;}

r=m%n;

while(r)

{m=n;n=r;r=m%n;}

printf("最大公约数:

%d\n",n);printf("最小公倍数:

%d\n",f/n);

}

//-------------------------------------------------------------------------------------------------

编写一个c程序,输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include

voidmain()

{

charc=getchar();

ints1=0,s2=0,s3=0,s4=0;

while(c!

='\n')

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))s1++;

elseif(c=='')s2++;

elseif(c>='0'&&c<='9')s3++;

elses4++;

c=getchar();

}

printf("字母数:

%d\n空格数:

%d\n数字数:

%d\n其他字符数:

%d\n",s1,s2,s3,s4);

}

//-------------------------------------------------------------------------------------------------

编写一个c6_3.c程序,输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如,153是“水仙花数”,因为153=13+53+33。

#include

voidmain()

{

printf("水仙花数有:

");

for(intb=1;b<=9;b++)

for(ints=0;s<=9;s++)

for(intg=0;g<=9;g++)

{intx=b*100+s*10+g;inty=b*b*b+s*s*s+g*g*g;if(x==y)printf("%d",x);}

printf("\n");

}

求1!

+2!

+3!

+4!

+...+20!

#include

voidmain()

{

doubles=0,t=1;

for(inti=1;i<=20;i++)

{

t*=i;

s+=t;

}

printf("1!

+2!

+……+20!

=%e\n",s);

}

//-------------------------------------------------------------------------------------------------

猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

编写一个c7_2.c程序,求第一天共摘多少桃子。

#include

voidmain()

{

ints=1;

for(inti=9;i>=1;i--)

{

s=2*(s+1);

}

printf("total=%d\n",s);

}

n3-n2*n+1

#include

voidmain()

{

for(intn=0;n<=3;n++)

{for(intk=3-n;k>0;k--)printf("");

for(intt=2*n+1;t>0;t--)printf("*");

printf("\n");

}

}

//-------------------------------------------------------------------------------------------------

编写c8_1.c程序,程序运行时要求用户输入10个整数;输出这10个整数的平均值(取整);求出10个数中的最小值、最大值并输出。

完成后将文件上交到“交作业空间”。

#include

voidmain()

{

inta[10];

ints=0,H,L;

printf("输入10个整数\n\n");

for(inti=0;i<10;i++)

{

scanf("%d,",&a[i]);

s+=a[i];

if(i==0)H=L=a[i];

else

{

if(a[i]>H)H=a[i];

if(a[i]

}

}

s/=10;

printf("\n以上10个数的平均值为%d\n\n",s);

printf("最小的数:

%d\n\n",L);

printf("最大的数:

%d\n\n",H);

}

//-------------------------------------------------------------------------------------------------

编写c8_3.c程序,要求用户输入10个整数;对10个整数进行从小到大排序并输出

冒泡法:

排序效率最高

#include

voidmain()

{

inta[10];

printf("输入10个整数\n");

for(inti=0;i<10;i++)scanf("%d,",&a[i]);

intt;

for(intj=0;j<9;j++)

{

for(inti=0;i<9-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

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

a[i+1]=t;

}

}

printf("\n\n从小到大排序后\n\n");

for(inti=0;i<10;i++)printf("%d",a[i]);

printf("\n\n");

}

选择法:

#include

voidmain()

{

inta[10];

printf("输入10个整数\n");

for(inti=0;i<10;i++)scanf("%d,",&a[i]);

for(intm=0;m<9;m++)

{

intj=m;

for(intn=m+1;n<10;n++)

if(a[n]

if(j>m)

{

intk=a[m];

a[m]=a[j];

a[j]=k;

}

}

printf("\n\n从小到大排序后\n\n");

for(inti=0;i<10;i++)printf("%d",a[i]);

printf("\n\n");

}

插入法:

#include

voidmain()

{

inta[10];

intt;

printf("输入10个整数\n");

for(inti=0;i<10;i++)scanf("%d,",&a[i]);

for(inti=1;i<10;i++)

{

t=a[i];

intj;

for(j=i;(j>0)&&(t

a[j]=t;

}

printf("\n\n从小到大排序后\n\n");

for(inti=0;i<10;i++)printf("%d",a[i]);

printf("\n\n");

}

//-------------------------------------------------------------------------------------------------

编写c9_1.c程序,输出一个3X3的矩阵,将该3X3的矩阵转置之后再次输出。

要求:

转置前,用赋初值的方法定义二维数组表示的矩阵。

#include

voidmain()

{

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

printf("转置前的数组");

for(inti=0;i<3;i++)

{

printf("\n");

for(intj=0;j<3;j++)

printf("%5d",a[i][j]);

}

printf("\n转置后的数组");

for(inti=0;i<3;i++)

{

printf("\n");

for(intj=0;j<3;j++)

printf("%d",a[j][i]);

}

printf("\n");

}

//-------------------------------------------------------------------------------------------------

编写c9_2.c程序,从键盘上任意输入一个字符串和字符,要求从该字符串中删除所有的该字符。

#include

voidmain()

{

printf("请输入字符串\n");

chars1[100];

charc=getchar();//gets(s1);

inti;

for(i=0;(i<100)&&(c!

='\n');i++){s1[i]=c;c=getchar();}

s1[i]='\0';

printf("\n\n请输入要删除的字符\n");

charx;

scanf("%c",&x);

chars2[100];

intj=0;

for(i=0;i<100&&s1[i]!

='\0';i++)

{

if(s1[i]!

=x){s2[j]=s1[i];j++;}

}

s2[j]='\0';

printf("\n\n删除后的字符串\n%s\n\n",s2);

}

另一方法:

用一个字符串数组

#include

voidmain()

{

printf("请输入字符串\n");

chars1[100];

charc=getchar();//gets(s1);

inti;

for(i=0;(i<100)&&(c!

='\n');i++){s1[i]=c;c=getchar();}

s1[i]='\0';

printf("\n\n请输入要删除的字符\n");

charx;

scanf("%c",&x);

intj=0;

for(i=0;i<100&&s1[i]!

='\0';i++)

{

if(s1[i]==x)

{

for(j=i+1;j<100&&s1[j]!

='\0';j++)s1[j-1]=s1[j];

s1[j-1]='\0';

i--;

}

}

printf("\n\n删除后的字符串\n%s\n\n",s1);

}

//-------------------------------------------------------------------------------------------------

从键盘上分别输入5个句子(每个句子最多30个字符),对这5个句子以从小到大的顺序输出。

#include

#include

voidmain()

{

chara[5][30];

chartempStr[30];

printf("请输入5个句子,每个句子不超过30个字符\n");

for(inti=0;i<5;i++)

{

charc=getchar();

intj=0;

while(c!

='\n')

{

a[i][j]=c;

j++;

c=getchar();

}

a[i][j]='\0';

}

for(inti=0;i<4;i++)

for(intj=0;j<4-i;j++)

{

if(strcmp(a[j],a[j+1])>0)

{

strcpy(tempStr,a[j]);

strcpy(a[j],a[j+1]);

strcpy(a[j+1],tempStr);

}

}

printf("\n\n句子排序之后\n\n");

for(inti=0;i<5;i++)puts(a[i]);

}

//-------------------------------------------------------------------------------------------------

编写c10_1程序一个判断素数的函数,主函数中利用这个函数,打印出100与200之间的所有素数。

执行结果如下(每行打印5个数):

#include

voidmain()

{

inti,j=0;

intprime(int);

for(i=100;i<=200;i++)

{

if(prime(i))

{

printf("%5d",i);

j++;

if(j%5==0)printf("\n");

}

}

printf("\n");

}

intprime(intn)

{

inti,flag=1;

for(i=2;i

{

if(n%i==0)flag=0;

}

return(flag);

}

//-------------------------------------------------------------------------------------------------

编写c10_2一个求n!

的函数,主函数中调用这个函数,计算sum=1!

+2!

+3!

+......+10!

执行结果如下:

#include

voidmain()

{

intjiecheng(int);

inti,j;

floatsum=0;

for(i=1;i<=10;i++)

{

j=jiecheng(i);

sum=sum+j;

}

printf("1!

+2!

+3!

+......+10!

=%f\n",sum);

}

intjiecheng(intn)

{

inti,s=1;

for(i=1;i<=n;i++)

{

s=s*i;

}

return(s);

}

//-------------------------------------------------------------------------------------------------

编写主函数和一个无返回值的函数voidprint_group(intx[],int,int),完成如下功能:

产生一个包含100个随机整数(1000~9999)的一维数组a。

由用户输入数组中的元素个数以及每行打印的个数,利用print_group函数,打印数组a。

从上述数组a中找出所有奇数,放入另一个数组b,调用print_group函数打印数组b(同样也要在调用函数前输入b的元素个数和每行打印个数)。

执行结果如下:

#include

#include

voidmain()

{

voidprint_group(intx[],int,int);

intm,n,i,a[100],j=0,b[100],g,h;

printf("请输入数组元素个数:

\n");

scanf("%d",&m);

printf("每行打印数据的个数:

\n");

scanf("%d",&n);

printf("原始数组:

\n");

for(i=0;i

{

a[i]=1000+rand()%9000;

if(a[i]%2!

=0)

{

j++;

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

}

}

print_group(a,m,n);

printf("经统计,上述数组中有%d个奇数;\n",j);

printf("请输入数组元素个数:

\n");

scanf("%d",&g);

printf("每行打印数据的个数:

\n");

scanf("%d",&h);

printf("奇数数组:

\n");

print_group(b,g,h);

}

voidprint_group(intx[],intp,intq)

{

inti,j=0;

for(i=0;i

{

printf("%5d",x[i]);

j++;

if(j%q==0)printf("\n");

}

}

//-------------------------------------------------------------------------------------------------

编写函数,求两个数的和。

主函数中用随机函数产生两个2位数的整数,调用这个函数,出题给小学生做,并评判其输入的答案,答对给10分,答错不给分,共产生10道题,最后给出该生的成绩。

若总分大于或等于90,给出"成绩不错啊,继续保持哦!

"的评价;总分在60与90之间(即大于等于60,且小于90)给出"这次成绩不太好,下次好好努力!

"的评价;总分在60分以下,给出"不要气馁,你一定行的!

"评价。

执行结果如下:

#include

#include

#include

voidmain()

{

inti,j=0,m,n,p,s;

intsum(int,int);

srand((unsigned)time(NULL));//

for(i=0;i<10;i++)

{

m=10+rand()%10;

n=10+rand()%10;

s=sum(m,n);

printf("%d+%d=",m,n);

scanf("%d",&p);

if(p==s)

{

printf("答对了!

\n");

j++;

}

else

printf("不对吧,好好想想哦!

\n");

}

printf("本次测试得分:

%d\n",j*10);

if(j>=9)printf("成绩不错啊,继续保持哦!

");

elseif(j<6)printf("不要气馁,你一定行的!

");

else

printf("这次成绩不太好,下次好好努力!

\n");

}

intsum(intx,inty)

{

intsum;

sum=x+y;

return(sum);

}

前一个程序的rand函数:

产生的随机数每次都是一样的,在单个程序里运行,如:

for循环,每次循环的值还是不一样.

只是再运行这个程序的话,和前一次一样.

这个程序:

产生的随机数是不一样的.为什么呢?

srand((unsigned)time(NULL));

就是给随机数产生一个seed,我们就叫他种子吧.

time的值每时每刻都不同.

所以种子不同,所以...产生的随机数也不同..

就这个道理.

//-------------------------------------------------------------------------------------------------

编写程序clabex_11_1.c,当输入两个整数时,将这两个数作为使用宏时的实参,并输出它们两个数中更大数的值。

#include

#defineBIGGER(x,y)x>y?

x:

y

voidmain()

{

inta,b,t;

printf("inputtwointegera,b:

");

scanf("%d,%d",&a,&b);

printf("Thebiggeris%d\n",BIGGER(a,b));

}

//-------------------------------------------------------------------------------------------------

编写程序c11_2.c,定义一个宏对给定年份year判断该年是否是闰年。

要求完成后如下图所示,完成后将文件上传到“交作业空间”。

#include

#defineLEAP_YEAR(y)(y%400==0)||(y%4==0&&y%100!

=0)

voidmain()

{

intx;

printf("inputyear:

");

scanf("%d",&x);

if(LEAP_YEAR(x))

printf("%disaleapyear.\n",x);

else

printf(

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

当前位置:首页 > 初中教育 > 中考

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

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