华农C语言程序设计实验.docx

上传人:b****1 文档编号:14547628 上传时间:2023-06-24 格式:DOCX 页数:32 大小:20.28KB
下载 相关 举报
华农C语言程序设计实验.docx_第1页
第1页 / 共32页
华农C语言程序设计实验.docx_第2页
第2页 / 共32页
华农C语言程序设计实验.docx_第3页
第3页 / 共32页
华农C语言程序设计实验.docx_第4页
第4页 / 共32页
华农C语言程序设计实验.docx_第5页
第5页 / 共32页
华农C语言程序设计实验.docx_第6页
第6页 / 共32页
华农C语言程序设计实验.docx_第7页
第7页 / 共32页
华农C语言程序设计实验.docx_第8页
第8页 / 共32页
华农C语言程序设计实验.docx_第9页
第9页 / 共32页
华农C语言程序设计实验.docx_第10页
第10页 / 共32页
华农C语言程序设计实验.docx_第11页
第11页 / 共32页
华农C语言程序设计实验.docx_第12页
第12页 / 共32页
华农C语言程序设计实验.docx_第13页
第13页 / 共32页
华农C语言程序设计实验.docx_第14页
第14页 / 共32页
华农C语言程序设计实验.docx_第15页
第15页 / 共32页
华农C语言程序设计实验.docx_第16页
第16页 / 共32页
华农C语言程序设计实验.docx_第17页
第17页 / 共32页
华农C语言程序设计实验.docx_第18页
第18页 / 共32页
华农C语言程序设计实验.docx_第19页
第19页 / 共32页
华农C语言程序设计实验.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华农C语言程序设计实验.docx

《华农C语言程序设计实验.docx》由会员分享,可在线阅读,更多相关《华农C语言程序设计实验.docx(32页珍藏版)》请在冰点文库上搜索。

华农C语言程序设计实验.docx

华农C语言程序设计实验

华农C语言程序设计实验

[题目1118:

赋值表达式与赋值语句,写出程序运行结果]

阅读下面程序,写出运行结果:

voidmain()

{floata;

intb,c;

chard,e;

a=3.5;

b=a;

c=330;

d=c;

4

e='\\';

printf("%f,%d,%d,%c,%c",a,b,c,d,e);

}

运行结果为:

3.500000,3,330,J,\

[提示]赋值语句具有类型转换的功能,但可能会改变数据。

3.基本运算

[题目1119:

基本运算,写出程序运行结果]

阅读下面程序,写出运行结果:

voidmain()

{inta,b,c;

floatd=15,e,f;

a=35%7;

b=15/10;

c=b++;

e=15/10;

f=d/10;

printf("%d,%d,%d,%f,%f,%f",a,b,c,d,e,f);

}

运行结果为:

0,2,1,15.000000,1.000000,1.500000

[提示]除法分整除与普通除法之分。

5

[题目1126:

字符的输入与输出]

编程实现由键盘输入一个字符后,在屏幕上输出该字符。

参考程序:

#include"stdio.h"

main()

{charch;

ch=getchar();

putchar(ch);

}

[题目1127:

计算加法]

编程实现由键盘输入一个加法式,输出正确的结果。

(两个加数均为整数)

[第一组自测数据]

参考程序:

#include"stdio.h"

main()

{inta,b;

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

printf("%d",a+b);

}

[题目1014:

求圆面积]

参考程序:

#include"stdio.h"

main()

{floatarea,r;

scanf("%f",&r);

area=3.14159*r*r;

printf("%0.2f",area);

}

3

[题目1015:

计算摄氏温度值]

参考程序:

#include

voidmain()

{floatf,c;

scanf("%f",&f);

c=5.0/9*(f-32);

printf("%.2f",c);

}

4

参考程序:

#include"stdio.h"

#include"math.h"

voidmain()

{floata,b;

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

if(fabs(a*a+b*b-1)<1e-3)

printf("Y\n");

elseprintf("N\n");}

}

[题目1017:

求数的位数]

参考程序:

main()

{intn,place;

scanf("%ld",&n);

if(n>99999999)place=9;

elseif(n>9999999)place=8;

elseif(n>999999)place=7;

elseif(n>99999)place=6;

elseif(n>9999)place=5;

elseif(n>999)place=4;

elseif(n>99)place=3;

elseif(n>9)place=2;

elseplace=1;

printf("%ld\n",place);

}

[题目1018:

数的排序]

3,6,9

参考程序:

#include

main()

{inta,b,c,t;

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

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(b>c){t=b;b=c;c=t;}

printf("%d,%d,%d",a,b,c);

}

参考程序:

#include

main()

{chara,b,c,d,e;

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

if(a<='Z'&&a>='A')a=a+32;

if(b<='Z'&&b>='A')b=b+32;

if(c<='Z'&&c>='A')c=c+32;

if(d<='Z'&&d>='A')d=d+32;

if(e<='Z'&&e>='A')e=e+32;

printf("%c%c%c%c%c",a,b,c,d,e);

}

#include"stdio.h"

main()

{inta,b,c,d,e;

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

if(a%27==0)printf("YES\n");elseprintf("NO\n");

if(b%27==0)printf("YES\n");elseprintf("NO\n");

if(c%27==0)printf("YES\n");elseprintf("NO\n");

if(d%27==0)printf("YES\n");elseprintf("NO\n");

if(e%27==0)printf("YES\n");elseprintf("NO\n");

}

参考程序:

#include"stdio.h"

main()

{intn;

scanf("%d",&n);

if(n<0)printf("negative\n");

elseprintf("positive\n");

if(n%2==0)printf("even\n");

elseprintf("odd\n");

}

[题目1023:

简单计算器]

参考程序:

#include

intmain()

{floata,b,c;

charop;

scanf("%f%c%f",&a,&op,&b);

switch(op)

{case'+':

c=a+b;break;

case'-':

c=a-b;break;

case'*':

c=a*b;break;

case'/':

c=a/b;break;

default:

printf("error");

break;

}

printf("result=%.2f",c);

}

9

[题目1024:

计算阶乘]

输入正整数n,计算n!

,结果用长整型数表示(注n!

=1*2*3*...*n)

参考程序:

#include

main()

{longi,n=1,a;

scanf("%ld",&a);

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

printf("%ld\n",n);

}

[题目1025:

计算数列和]

参考程序:

#include

main()

{longn,sum=0,i,t=1;

scanf("%ld",&n);

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

{sum=sum+t;

t=t+2;

}

printf("%ld\n",sum);

}

#include

main()

{longn,sum;

scanf("%ld",&n);

sum=n*n;

printf("%ld",sum);

}

注:

评判系统不对程序实现细节进行分析,只对运行结果进行评测。

[题目1026:

累加一行字符中的数字]

参考程序:

#include

main()

{charc;

ints=0,a;

while((c=getchar())!

='\n')

{if(c>='0'&&c<='9')

{a=c-48;

s=s+a;

}

}

printf("%d",s);

}

11

[题目1029:

求最大公约数]

参考程序:

#include

main()

{longr,m,n,temp;

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

while(m!

=0)

{r=n%m;

n=m;

m=r;

}

printf("%ld\n",n);

}

#include

main()

{longm,n,t,i,s;

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

t=m>n?

n:

m;

for(i=t-1;i>=1;i--)

{if(m%i==0&&n%i==0)

{s=i;break;}

}

printf("%d",s);

}

[题目1030:

字符变换]

参考程序:

#include

main()

{charc;

while((c=getchar())!

='\n')

{if(c>='A'&&c<='Z')

c=c+32;

putchar(c);

}

}

[题目1037:

计算数列和]

参考程序:

#include

main()

{inti,t,n;

floata=2,b=1,s=0;

scanf("%d",&n);

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

{s=s+a/b;

t=a;a=a+b;b=t;

}

printf("%.4f\n",s);

}

[题目1044:

输出最小值]

参考程序:

#include"stdio.h"

main()

{inti,t,min;

scanf("%d",&min);

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

{

scanf("%d",&t);

if(t

}

printf("%d\n",min);

}

*[题目1031:

统计单词个数]

参考程序:

#include

main()

{inti,num=0,word=0;

charc;

for(i=0;(c=getchar())!

='\n';i++)

if(c=='')word=0;

elseif(word==0)

{word=1;

num++;

}

printf("%d",num);

}

*[题目1042:

百万富翁]

参考程序:

#include

#include

main()

{intn,m,i;

scanf("%d",&m);

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

if(0.01*(pow(2,i-1)-1)-i*m>=0)break;

printf("%d",i-1);

}

15

(1)进一步熟悉掌握用while语句、do-while语句和for语句实现循环的方法。

[题目1028:

求素数]

参考程序:

#include

#include

main()

{intm,k,i;

for(m=2;m<=200;m++)

{k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>k)printf("%d\n",m);

}

}

[题目1035:

打印菱形]

参考程序:

#include"stdio.h"

#include"math.h"

main()

{intn,i,j,k;

scanf("%d",&n);

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

{k=abs(n+1-i);

for(j=1;j<=k;j++)printf("");

for(j=1;j<=2*n+1-2*k;j++)printf("*");

printf("\n");

}

}

[题目1038:

打印图案]

参考程序:

#include

#include

main()

{intn,i,j,k,h;

scanf("%d",&n);

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

{for(j=0;j

printf("");

for(k=1;k<=n-abs(i);k++)printf("%d",k);

for(h=n-abs(i)-1;h>=1;h--)printf("%d",h);

printf("\n");

}

}

17

#include

main()

{inta[10];

inti;

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

for(i=9;i>=0;i--)printf("%d\n",a[i]);

}

[题目1040:

统计不同数字个数]

参考程序:

#include"stdio.h"

main()

{inta[20];

inti,t,p=0;

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

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

for(t=0;t

if(a[t]==a[i])break;

if(t==i)

p++;

}

printf("%d",p);

}

[题目1062:

打印矩阵]

参考程序:

#include

main()

{inta[3][4],b[4][3],i,j;

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

for(j=0;j<4;j++)

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

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

}

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

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

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

printf("\n");

}

}

*[题目1047:

冒泡排序]

参考程序:

#include

main()

{inta[10];

inti,j,t;

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

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

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

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

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

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

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

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

}

*[题目1046:

计算高精度加法]

参考程序:

#include"stdio.h"

#include"string.h"

main()

{inta[100]={0},b[100]={0},c[100]={0};

chars[101];

inti=0,n1=0,n2=0,max=0,e=0;

gets(s);

n1=strlen(s);

for(i=n1-1;i>=0;i--)a[n1-1-i]=s[i]-'0';

gets(s);

n2=strlen(s);

for(i=n2-1;i>=0;i--)b[n2-1-i]=s[i]-'0';

if(n1>n2)max=n1;

elsemax=n2;

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

{c[i]=(a[i]+b[i]+e)%10;

e=(a[i]+b[i]+e)/10;

}

if(c[max]>0)printf("%d",c[max]);

for(i=max-1;i>=0;i--)

printf("%d",c[i]);

}

*[题目:

找矩阵中的鞍点]

参考程序:

#include

main()

{inti,j,k,a[3][4],max,maxj,flag;

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

for(j=0;j<4;j++)

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

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

{max=a[i][0];

maxj=0;

for(j=0;j<4;j++)

if(a[i][j]>max)

{max=a[i][j];maxj=j;}

flag=1;

for(k=0;k<3;k++)

if(max>a[k][maxj])

{flag=0;break;}

if(flag)

{printf("%d",max);break;}

}

if(!

flag)

printf("NO");

}

22

[题目1121:

定义存贮字符串的字符数组]

在下面程序中填充定义字符数组的语句,使程序完整。

#include"string.h"

voidmain()

{chars[80];/*定义字符数组s*/

strcpy(s,"abcdefghijklmn");

printf("%s",s);

}

参考程序:

[题目1123:

字符串的输入与输出]

下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的语句。

#include"stdio.h"

voidmain()

{

chars[50];

printf("What'syourname?

");

gets(s);/*由键盘读入字符串*/

printf("Yournameis",);

printf("%s",s);/*打印字符串*/

}

参考程序:

[题目1122:

字符串的合并]

从键盘输入3个字符串(每个字符串以回车符做为结束标志),将3个字符串以输入先后顺序合并到

字符串s中,请填空使用程序完整。

#include"stdio.h"

#include"string.h"

main()

{

chars[100]="";

chara[30];

gets(a);strcat(s,a);

23

gets(a);strcat(s,a);

gets(a);strcat(s,a);

/*可以写多行代码*/

printf("%s",s);

}

[自测数据]

[键盘输入]

123

abc

456

[正确输出]

123abc456

参考程序:

[题目1050:

寻找字符串]

[提示]方法1:

建立双重循环,外层循环变量指示第一个串的查找起始位置,内层循环从起始位置开始判

断第二个字符中是否出现在此处;方法2:

使用字符串函数strstr()。

参考程序:

#include"stdio.h"

main()

{inti,j;

chara[80],b[80];

gets(a);gets(b);

for(i=0;a[i]!

='\0';i++)

{for(j=0;b[j]!

='\0';j++)

if(a[i+j]!

=b[j])break;

if(b[j]=='\0')break;

}

if(a[i]!

='\0')printf("%d",i+1);

elseprintf("NotFound");

}

24

[题目1059:

函数定义]

下面是使用辗转相除法,求最大公约数的程序,请补充完整程序中函数的定义与调用。

#include"stdio.h"

intf(intm,intn)

{

intr;

while((r=m%n)!

=0)

{

m=n;

n=r;

}

returnn;

}

main()

{

inta,b,n;

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

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

}

[题目1083:

编写函数计算阶乘]

下面程序实现由键盘读入整数n,计算并输出n!

,请补充完整计算阶乘的函数。

longfanc(inta)

{longi,n=1;

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

returnn;

}

voidmain()

{intn;

scanf("%d",&n);

25

printf("%ld",fanc(n));

}

[题目1124:

函数中的变量]

写出下面程序的运行结果:

intf1(intx)

{staticintz=3,y=0;

y++;

z++;

return(x+y+z);

}

main()

{inta=1,k;

for(k=0;k<3;k++)printf("%4d",f1(a));

}

程序运行结果为:

6810

*[题目1084:

编写递归调用函数,实现十进制数转二进制数]

下面程序,实现由键盘输入一个正整数(不大于100000000),输出其对应的二进制数(原码表示)。

请填空:

#include"stdio.h"

voidfun(inti)

{if(i>1)

fun(i/2);

printf("%d",i%2);

}

main()

{intn;

scanf("%d",&n);

fun(n);

}

26

[题目1091:

交换两数,由大到小输出]

下面程序,交换两数,使两数由大到小输出,请填空

#include"stdio.h"

voidswap(int*p1,int*p2)

{inttemp;

temp=*p1;

*p1=*p2;

*p2=temp;

}

intmain()

{inta,b;int*pa,*pb;

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

pa=&a;pb=&b;

if(a

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

}

[题目1065:

数组中的指针]

参考程序:

#include"stdio.h"

main()

{printf("19\n");

printf("2016\n");

printf("2000\n");

printf("2016\n");

printf("2004\n");

printf("2016\n");

printf("2036\n");

printf("2020\n");

printf("21");

}

[题目1092:

函数实现求字符串长度]

下面程序以指针方式传递参数,由函数实现求字符串长度,请填空完成

#include"stdio.h"

#include"string.h"

intf(char*p)

{returnstrlen(p);

}

intmain()

{chars[80];

inti;

scanf("%s",s);

i=f(s);

printf("%d",i);

}

[题目1125:

定义结构体类型]

/

structstudent

{charname[20];

charsex;

intnum;

floatscore;

}

28

main()

{

structstudentstu;

scanf("%s",stu.name);

scanf("%*c%c",&stu.sex);

scanf("%d",&stu.num);

scanf("%f",&stu.score);

printf("%s\n",stu.name)

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

当前位置:首页 > 农林牧渔 > 林学

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

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