c入门经典练习答案.docx

上传人:b****1 文档编号:14325596 上传时间:2023-06-22 格式:DOCX 页数:14 大小:19.49KB
下载 相关 举报
c入门经典练习答案.docx_第1页
第1页 / 共14页
c入门经典练习答案.docx_第2页
第2页 / 共14页
c入门经典练习答案.docx_第3页
第3页 / 共14页
c入门经典练习答案.docx_第4页
第4页 / 共14页
c入门经典练习答案.docx_第5页
第5页 / 共14页
c入门经典练习答案.docx_第6页
第6页 / 共14页
c入门经典练习答案.docx_第7页
第7页 / 共14页
c入门经典练习答案.docx_第8页
第8页 / 共14页
c入门经典练习答案.docx_第9页
第9页 / 共14页
c入门经典练习答案.docx_第10页
第10页 / 共14页
c入门经典练习答案.docx_第11页
第11页 / 共14页
c入门经典练习答案.docx_第12页
第12页 / 共14页
c入门经典练习答案.docx_第13页
第13页 / 共14页
c入门经典练习答案.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c入门经典练习答案.docx

《c入门经典练习答案.docx》由会员分享,可在线阅读,更多相关《c入门经典练习答案.docx(14页珍藏版)》请在冰点文库上搜索。

c入门经典练习答案.docx

c入门经典练习答案

c入门经典练习答案

【篇一:

c语言程序设计入门经典例题】

加法式子,用户通过键盘作答后,程序给出正确与错误提示信息。

要求:

利用c的选择语句if条件语句或switch开关语句,键盘输入数据前,程序会出被输入数据的信息提示。

#includestdio.h

voidmain(){

inta,b,c;

printf(pleaseputanaddend:

\n);scanf(%d,a);

printf(pleaseputanaugend:

\n);scanf(%d,b);

printf(pleaseanswerthequestion:

a+b=?

);scanf(%d,c);

if(a+b==c)

printf(verygood!

);

else

printf(wrong!

);

}

个人感觉这个程序最不好的地方是,不管回答正确还是回答错误,程都会立即结束,所以我用了do?

while实现一个回答错误之后获得再次回答机会的循环,则程序修改如下:

#includestdio.h

voidmain(){

inta,b,c;

printf(请输入一个加数:

\n);scanf(%d,a);

printf(请输入一个被加数:

\n);scanf(%d,b);

do

{

printf(请回答:

a+b=);scanf(%d,c);

if(a+b!

=c)

printf(请再想一想\n);

}

while(a+b==c)

printf(回答正确!

);

}

2、判闰年程序:

判断某一年是否闰年?

要求:

程序首先提示用户从键盘输入4位数年份,程序能显示“xxxx年是闰年”或“xxxx年不闰年”的输出信息。

算法:

year是闰年,即year能被4整除但不能被100整除,或year能被400整除。

其对应的c逻辑表达式为:

(year%4==0year%100!

=0)||(year%400==0)或:

(!

(year%4)year%100)||!

(year%400)

程序中可设置1个变量leap来代表是否闰年的信息,闰年:

leap=1;不闰年:

leap=0。

#includestdio.h

voidmain()

intyear;

printf(请输入4位数年份:

);scanf(%d,year);

if(year%4==0year%100!

=0||year%400==0)//闰年就是能被4整除但不能被100整除及能被400整除的

printf(%d是闰年,year);

el

se

printf(%d不是闰年,year);

}

3、三角形九九表程序:

要求选择c实现循环的4种方法(if+go,for语句,while语句,do…while语句)中的一种,比如,最好选择for语句来实现如下形式的“九九表”输出。

#includestdio.h

voidmain()

inta,b,c;

for(a=1;a=9;a++)//纵列表数每循环完一次换行

{for(b=1;b=9;b++)

if(b=a)

printf(%d,a*b);

printf(\n);}}

4、平面等腰三角形:

要求利用c的for循环实现如下平面图形输出。

如图,等腰三角形有6层,则

#includestdio.h

viodmain()

inta,b,c;//a,b,c分别是层数变量,变量,*变量

for(a=1;a=6;a++)

{for(b=6-a;b=1;b--)

printf();

for(c=1;c=2*a-1;c++)

printf(*);

printf(\n);}}

5、平面倒立等腰三角形:

要求利用c的for循环实现如下平面图形输出。

#includestdio.h

viodmain()

inta,b,c;//a,b,c分别是层数变量,变量,*变量

for(a=6;a=1;a--)

{for(b=6-a;b=1;b++)

printf();

for(c=11;c=2*a-1;c--)

printf(*)

printf(\n);}}

6、判素数:

要求由用户从键盘输入任一正整数m,程序输出m是否素数的信息。

#includestdio.h

viodmain()

intm,n;

printf(请输入任一正整数m:

);scanf(%d,m);

if(m==0||m==1);

printf(%d不是素数,m);//0和1既不是素数也不是合数

for(n=2;nm;n++)

{

if(m%n==0)

{printf(%d不是素数,m);

break;

else

printf(%d是素数“,m);

}}

7、计算:

1!

+2!

+3!

+...+9!

#includestdio.h

voidmain()

{

inti;longp=1;doubles=0.0;

for(i=1;i=9;i++)

{p*=i;s+=p;}

printf(1!

+2!

+3!

+?

+9!

=%f\n,s);}

8、计算:

1!

+3!

+5!

+...+15!

#includestdio.h

voidmain()

inti;longp=1;doubles=0.0;

for(i=1;i=15;i++)

{p*=i;

if(i%2!

=0)

s+=p;}

printf(1!

+3!

+5!

+?

15!

=%t\n,s);}

9、计算:

2!

+4!

+6!

+...+16!

#includestdio.h

voidmain()

inti;longp=1;doubles=0.0;

for(i=1;i=16;i++)

{p*=i;

if(i%2==0)

s=s+p;}

printf(2!

+4!

+6!

+?

16!

=%t\n,s);}

10、利用“比较交换法”对由用户从键盘输入的任意10个整数升序排序。

要求:

利用c的数组和循环,程序能分别输出排序前后的数组。

#includestdio.h

voidmain()

{

inti,s,a[10],t;//数组下标变量i

printf(请输入10个整数:

\n);

for(i=0;i=9;i++)

scanf(%d,a[i]);//将10个整数分别存入该数组的下标0到9这10个位置中去for(i=0;i9;i++)

{for(s=i+1;s=9;s++)//a[s]为a[i]的后一位

if(a[i]a[s])

{t=a[i];

a[i]=a[s];

a[s]=t;}//将数组中的数两两逐个比较换位,实现升序

printf(排序后的数组为:

\n);

for(i=0;i=9;i++)

printf(%d,a[i]);}

11、统计:

由用户从键盘输入任意10个数,统计其中最大数,最小数及平均值。

#includestdio.h

voidmain()

{

inti,s,a[10],t,sum;doublen;

printf(输入任意10个整数:

\n);

for(i=0;i=9;i++)

scanf(%d,a[i]);

for(i=0;i=9;i++)

printf(%d,a[i]);

for(i=0;i=9;i++)

{for(s=i+1;s9;s++)

if(a[i]a[s])

{t=a[i];

a[i]=a[s];

a[s]=t;}//实现10数升序排列

for(i=0,1=9,i++)

sum+=a[i];

n=sum/10;

printf(

10个数的最大是:

%d\n

10个数的最小是:

%d\n

10个数的平均是:

%t\n,a[9],a[0],n);}

12、由二维数组实现矩阵:

定义数组inta[5][4];实现5行4列矩阵输出。

要求:

矩阵元按数组的逻辑顺序依次是1~20间的自然数。

提示:

用双重for循环与二维数组的按行输出。

#includestdio.h

voidmain()

inti,j,s=1;

inta[5][4];

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

{for(j=0;j=3;j++)

{for(a[j]=s;s=20;s++)

printf();

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

printf(\n);}

【篇二:

c语言初学者的几个经典习题】

xt>#includestdio.h

voidmain()

{

inta,b,num1,num2,temp;

printf(请输入两个数:

\n);scanf(%d%d,num1,num2);if(num1num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!

=0){temp=a%b;a=b;b=temp;}

printf(最小公倍数为:

%d\n,num1*num2/a);}

2.判断某一天是一年的第多少天:

#includestdio.h

intsum_day(intyear,intmonth,intday);

voidmain()

{

intyear,month,day;intdays;

printf(请输入要查询的年月日\n);scanf(%d%d%d,year,month,day);days=sum_day(year,month,day);

printf(该天是%d天\n,days);

}

inttab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};intsum_day(intyear,intmonth,intday)

{

inti,days=0;

if(year%4==0year%100!

=0||year%400==0)tab[2]=29;

for(i=1;imonth;i++)

days+=tab[i];

days+=day;

returndays;

}

3.判断一个数是不是素数:

#includestdio.h

intisprime(inta);

voidmain()

{

}

intx;printf(请输入要判断的正整数:

\n);scanf(%d,x);if(isprime(x))printf(%d是素数\n,x);elseprintf(%d不是素数\n,x);

4.计算矩阵对角线元素之和:

#includestdio.h

voidmain()

{

inti,j,a[5][5],sum=0,n=5;

for(i=0;i5;i++)

{

}

}printf(行%d:

j);for(j=0;j5;j++){scanf(%d,a[i][j]);if(i==j)sum+=a[i][j];if(i+j==4)sum+=a[i][j];sum-=a[2][2];}

5.斐波拉契数列:

(1)#includestdio.h

voidmain()

{

inta[20];

inti;

a[0]=1;

a[1]=1;

for(i=2;i20;i++)

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

for(i=0;i20;i++)

{

printf(%d,a[i]);

if((i+1)%5==0)

printf(\n);

}

(2)#includestdio.h

intfibo(intn);

voidmain()

{

inti;

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

{printf(%d,fibo(i));

if(i%5==0)

printf(\n);

}

}

intfibo(intn)

{

intk;

if(n==1)k=1;

elseif(n==2)k=1;

elsek=fibo(n-1)+fibo(n-2);returnk;

}

6.查询数字:

#includestdio.h

voidmain()

{

inta[10],left=0,right=10,mid,i,j;

printf(请按从小到大的顺序输入被查询序列的10个数:

\n);for(i=0;i=9;i++)scanf(%d,a[i]);printf(请输入待查询的整数:

\n);scanf(%d,j);while(left=right){mid=(left+right)/2;if(a[mid]==j){printf(待查询数字在%d位,mid+1);break;}elseif(a[mid]j)right=mid-1;elseif(a[mid]j)left=mid+1;}if(leftright)printf(待查询数字不在此序列);

7.统计字符串:

#includestdio.h

intp(chara[],charb[])

{

inti=0,j=0,k=0;

for(i=0;a[i];i++)

{

j=i;

for(k=0;a[j]==b[k]b[k]a[j];j++,k++);if(!

b[k])

return++i;

}

return-1;

}

intmain(void)

{

chara[100],b[100];

gets(a);

gets(b);

printf(%d\n,p(a,b));

return0;

}

【篇三:

c程序设计基础经典例题】

+3,…,从键盘输入一数值为整数,则输出整数序

列。

例如:

若k=6,则应输出:

136101521

2请编写程序,其功能把1,2,4,8,9,11,13,34,45,78从小到大有序放在数组中,数组的

值由从键盘读入,当插入一个整数后,数组中的数仍然有序。

3

例如:

输入256,输出的字符为6*5*2。

4请编写程序,它的功能是:

求高于平均分的人数。

数组中存放n位学生的成绩。

数组的值由从键盘读

入,用-1来结束输入。

例如:

输入877297则输出为:

2

5请编写程序,程序的功能是:

根据整数m,整数m从键盘读入,计算如下公式的值:

y=1+1/2!

+1/3!

+1/4!

+…+1/m!

例如:

若m=6,则应输出:

1.718056。

6请编写程序,要求不使用库函数,使用泰勒(taylor)级数法求解。

功能是:

求sin(x)的值,输入x值为

弧度,输出值精确到小数后6位。

7请编写下面的程序,它的功能是:

分别找出字符串中每个数字字符(0,1,2,3,4,5,6,

7,8,9)的个数,用num[0]来统计字符0的个数,用num[1]来统计字符1的个数,…,用num[9]来统计字符9的个数。

字符串由从键盘读入。

8请编写下面的程序,它功能是:

80到89分的学生成绩,存放在数组中,数组的值由键盘读入,统计

80到89分各数的人数。

例如:

若输入:

8088818488848481888282–1(注意:

用-1结束输入)

则输出应该是:

80:

181:

2

82:

283:

0

84:

385:

0

86:

087:

0

88:

389:

0

9请编写下面的程序,它的功能是:

把字符串中的字符按逆序存放,字符串由键盘读入。

例如:

若输入

字符串为abcdefg,则逆置后的字符串为gfedcba。

10请编写程序,实现任意一矩阵(维数小于100x100)从键盘输入建立矩阵,并实现转置运算。

11请编写程序,实现任意二矩阵(维数小于100x100)从键盘输入建立矩阵,并实现两矩阵的乘法运算。

12请编写程序实现,从键盘输入两个字符串,比较两个字符串的长度,如果前者大于后者,输出1,相

等输出0,前者小于后者,输出-1。

(要求不能用库函数strlen)

13请编写程序实现,从键盘输入两个字符串,将后面输入的字符串连接到前面输入字符串的后面,再从屏幕输出。

(要求不能用库函数strcat)。

14请编写一个程序,输入一个字符串,其中所有的大写字母+3,小写字母-3,再输出加密后的字符串。

15请编写下面的程序,功能是求s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n)的和。

例如:

若n=6,则应输出:

s=1.714286

16请编写一个程序,从键盘输入字符串,统计字符串中小写字母a到f字母各自出现的次数,并依次放

在pp所指的数组中。

17请编写一个程序,功能从键盘输入数值,建立一个4x3的二维数组,求出二维数组周边元素之和。

18请编写一个程序,功能:

实现任意一矩阵(维数小于100x100)从键盘输入建立方阵,左下半三角中元素中的值乘以m(m从键盘输入)后从屏幕输出结果。

19.请编写一个程序,从键盘输入字符串到数组tt中,功能是:

将字符串转换为一个整数(不得调用c语言

提供的将字符串转换为整数的函数)。

20请编写一个程序,功能是:

计算并输出下列级数和:

s=1/1*2+1/2*3+...+1/n*(n+1)

例如n=6,s=0.857143

21请编写一个程序,它的功能是:

计算并输出给定整数(合数)n的所有分解因子。

规定n的值不大于100。

例如输入24,输出24=2*2*2*3

22请编写一个程序,其功能是:

从键盘输入字符串,将字符串中下标位偶数同时ascii值为奇数的字符

删除。

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

当前位置:首页 > 高等教育 > 哲学

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

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