大一C语言程序设计题_第1页
大一C语言程序设计题_第2页
大一C语言程序设计题_第3页
大一C语言程序设计题_第4页
大一C语言程序设计题_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

顺序接构程序设计第一部分1.*******************Iamastudent*******************#include<stdio.h>intmain(void){printf("**********************\nIamastudent\n*********************\n");}/***********************Iamastudent**********************/2.【实验内容】求分段函数。

【实验目的】运用if语句实现分支结构程序设计。

【实验题目】编写程序,输入x,计算并输出下列分段函数f(x)的值(保留两位小数),请调用sqrt()函数求平方根,调用pow()函数求幂,该函数请参看素材。

作品素材列表:素材1#include<stdio.h>#include<math.h>intmain(void){ doublex,y; printf("Enterx:\n"); scanf("%lf",&x); if(x<0){ y=pow(x,5)+2*x+1/x; } else{ y=sqrt(x); } printf("y=f(%f)=%.2f\n",x,y); return0;}Enterx:10y=f(10.000000)=3.16Pressanykeytocontinue3.【实验内容】运用for循环处理简单数值计算问题。

【实验目的】模仿第2章例题,掌握for循环的使用。

【实验题目】编写程序,输入一个正整数n,计算数列的前n项和,结果保留5位小数。

1

2

3

4

5

6

n

-

+

-

+

-

+

1

3

5

7

9

11

2*n-1

若n=50,参考答案为:

0.39020#include<stdio.h>#include<math.h>intmain(void){ intdenominator,flag,i,n; doubleitem,sum; printf("Entern:"); scanf("%d",&n); flag=1; denominator=1; sum=0;for(i=1;i<=n;i++){ item=flag*pow(-1,flag+1)/denominator; sum=sum+item; flag=flag+1; denominator=denominator+2; } printf("sum=%.5f\n",sum); return0;}/*Entern:50sum=0.39020Pressanykeytocontinue*/实验四分支结构程序设计130输入任意的三角形的三条边求其面积,如果输入的三条边不能构成三角形,给出提示信息并退出,结果保留两位小数。提示:借助于海伦公式#include<stdio.h>#include<math.h>main(){ doublea,b,c,half,s; printf("输入三角形的3条边,各参数用,隔开:\n"); scanf("%lf,%lf,%lf",&a,&b,&c); if(a+b<=c||a+c<=b||b+c<=a||a<0||b<0||c<0) printf("不能构成三角形,请重新运行程序!\n"); else { half=(a+b+c)/2; s=sqrt(half*(half-a)*(half-b)*(half-c)); printf("三角形面积为:%.2lf\n",s); }}230循环输入12个字符,将其中的大写字母转换为小写字母输出,小写字母转换为大写字母输出,其他字符不变,输出结果如下所示。

原始字符序列:AbC123fG8JeB

输出字符序列:aBc123Fg8jEb#include<stdio.h>#include<math.h>main(){ inti; charch; printf("输入12个字符,可以多于12,不可少于12:\n"); for(i=1;i<=12;i++) { ch=getchar(); if(ch>='a'&&ch<='z') ch=ch-32; else if(ch>='A'&&ch<='Z') ch=ch+32; putchar(ch); } printf("\n");}340输入年和月,返回当月有多少天。本题必须使用switch分支结构编程,考虑平年和闰年2月天数不同的情况。平年28,闰年29#include<stdio.h>main(){intyear,mon;scanf("%d,%d;",&year,&mon);if(mon==2) if(year%4==0) if(year%100==0) if(year%400==0)printf("Day=29\n"); elseprintf("Day=28\n"); elseprintf("Day=29\n"); elseprintf("Day=28\n"); else switch(mon) {case1:case3:case5:case7:case8:case10:case12: printf("Day=31\n");break;case4:case6:case9:case11: printf("Day=30\n");break; default:printf("error\n");} getch();}/*2013,4Day=30*/实验五循环结构程序设计(第I部分)130计算并输出下式的值,要求最后一项的绝对值小于0.00001时终止运算,结果保留5位小数。

1

1

1

1

1

s=

1

-

+—

-

+

-

+

4

7

10

13

16

参考答案:0.83564

0.83565(多算一轮或少算一轮的差别)

参考答案:0.83564

0.83565(多算一轮或少算一轮的差别)230输入一个长正整数,从高位开始逐位分割并输出。

如,输入123456,

逐位输出:1,2,3,4,5,6。340输入6个整数,中间用空格隔开,判断每个数是否是素数,并给出相应提示,显示时,每行一个进行说明。如:

x

是素数。

y

不是素数。

注意:检查区间

2~sqrt(x)。1.#include<stdio.h>#include<math.h>intmain(void){ doubles=0,a;intf=-1; intx=1; while(1) { a=f*1.0/x; if(fabs(a)<0.00001) break; s=s+a; x=x+3; f=-f; } printf("1-1/4+1/7-...=%.5f\n",s); return0;}/*1-1/4+1/7-...=0.83564*/2.main(){ intx,temp; scanf("%d",&x); if(x<=0) printf("输入数据有误!"); else { do { temp=x%10; printf("%d",temp); x=x/10; }while(x!=0); } printf("\n");}//以下程序用于输入正序的数据/*main(){ intx,y,temp; scanf("%d",&x); y=0; if(x<=0) printf("输入数据有误!"); else { do { temp=x%10; printf("%d",temp); x=x/10; y=y*10;//还原为逆序正整数 y=y+temp; }while(x!=0); printf("\n"); do { temp=y%10; printf("%d",temp); y=y/10; }while(y!=0); } printf("\n");}*3.#include<stdio.h>#include<math.h>main(){ inti,j,x,y; printf("输入6个整数,判断其是否为素数:\n"); for(i=1;i<=6;i++) { scanf("%d",&x); y=(int)sqrt(x); for(j=2;j<=y;j++) { if(x%j==0) break; } if(j>y) printf("%d是素数。\n",x); else printf("%d不是素数。\n",x); }}实验六循环结构程序设计(第2部分)1【实验目的】穷举法编程

【实验内容】百鸡问题。100元买100只鸡,其中:公鸡5元1只、母鸡3元1只、小鸡1元3只,要求每种鸡至少有1只。编写程序统计并输出所有的购买方案,完成后提交源程序.#include<stdio.h>main(){ inti,j,k;//i表示公鸡,j表示母鸡,k表示小鸡 for(i=1;i<100/5;i++) for(j=1;j<100/3;j++) for(k=1;k<100;k++) if(5*i+3*j+k/3==100&&k%3==0&&i+j+k==100) { printf("公鸡-母鸡-小鸡分别为:%3d,%3d,%3d\n",i,j,k); }}/*三种总数为100,可表示为i+j+k==100小鸡一元三个,可表示为k%3==0价格总数,可表示为5*i+3*j+k/3==100*/

公鸡-母鸡-小鸡分别为:

4,

18,

78

公鸡-母鸡-小鸡分别为:

8,

11,

81

公鸡-母鸡-小鸡分别为:

12,

4,

842.【实验目的】迭代法编程

【实验内容】一个数列的前3项依次为0,0,1,以后的每项都是前三项的和.

请编写程序打印此数列的前30项,按每行6个数据输出,每个

数据占宽为10。

0

0

1

1

2

4

7

13

24

44

81

149

274

504

927

1705

3136

5768

10609

19513

35890

66012

121415

223317

410744

755476

1389537

2555757

4700770

8646064#include<stdio.h>main(){ inti; doublex0,x1,x2,x3; x0=0; x1=0; x2=1; printf("%10.0lf%10.0lf%10.0lf",x0,x1,x2); for(i=4;i<=30;i++) { x3=x0+x1+x2; x0=x1; x1=x2; x2=x3; printf("%10.0lf",x3); if(i%6==0) printf("\n"); } printf("\n");}3.实验内容】产生10个100

999

间的随机数,每个数都显示在屏幕上,最后将其中的的最大值和最小值也输出到屏幕上。阅读并仿照以下产生随机数例程,完成本程序。

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

main()

{

int

r;

srand(time(0));//产生随机数种子

r=rand()%(99-10+1)+10;

printf("r=%d\n",r);}#include<stdio.h>#include<stdlib.h>#include<time.h>main(){ inti,r,max,min; srand(time(0));//产生随机数种子 r=rand()%(999-100+1)+100;//先产生第1个 printf("%6d",r);//显示第1个 max=r;//假定第1个数是最大值 min=r;//假定第1个数是最小值 for(i=1;i<=9;i++) { r=rand()%(999-100+1)+100; if(r>max) max=r; if(r<min) min=r; printf("%6d",r); } printf("\n"); printf("max=%d,min=%d\n",max,min);}22.实验七函数程序设计(第1部分题号分数作品题标题及要求

130设计一个过程(函数或子程序):计算n!=1×2×3×…×n。用主调函数过程调用这个过程并完成下列任务:

(1)计算s=20!;

(2)计算t=26!;

(3)计算k=t/s

参考答案:

20!=2432902008176640000

26!=403291461126605650000000000

26!/20!=165765600

Press

any

key

to

continue240编写子函数(过程),求正整数m,n的最大公约数。调用该函数,求m=248,n=36时的结果。

参考答案:

248与36的最大公约数=4

248与36的最小公倍数=2232

Press

any

key

to

continue

330编写程序,输入两个正整数m和n(m大于等于1,n小于等于500),统计并输出m,n之间的素数的个数以及这些素数的和。要求,定义并调用函数prime(x)判断m是否为素数。

参考答案:

输入待判断其是否为素数的整数范围(m<n,空格隔开):2

20

2

3

5

7

11

13

17

19

2与20

间的素数个数=8

2与20

间的素数之和=77

Press

any

key

to

continue1.#include<stdio.h>#include<math.h>main(){ doubles,t,k; doublefac(intn); s=fac(20); t=fac(26); k=t*1.0/s; printf("20!=%.0lf\n",s); printf("26!=%.0lf\n",t); printf("26!/20!=%.0lf\n",k);}doublefac(intn){ doubler=1; inti; for(i=1;i<=n;i++) r*=i; returnr;}2.*/#include<stdio.h>#include<math.h>main(){ intm,n; intgcd(intx,inty); intlcm(intx,inty); m=248; n=36; printf("%d与%d的最大公约数=%d\n",m,n,gcd(m,n)); printf("%d与%d的最小公倍数=%d\n",m,n,lcm(m,n));}intgcd(intx,inty){ intp,r; p=x*y; r=x%y; while(r!=0) { x=y; y=r; r=x%y; } returny;}intlcm(intx,inty){ intp,r; p=x*y; r=x%y; while(r!=0) { x=y; y=r; r=x%y; } returnp/y;}3.#include<stdio.h>#include<math.h>main(){ inti,m,n,count=0,sum=0; intprime(intx); printf("输入待判断其是否为素数的整数范围(m<n,空格隔开):"); scanf("%d",&m); scanf("%d",&n); if(m>n) { printf("请重新运行程序!\n"); return; } for(i=m;i<=n;i++) { if(prime(i)==1) { printf("%5d",i); count++; sum+=i; } } printf("\n"); printf("%d与%d间的素数个数=%d\n",m,n,count); printf("%d与%d间的素数之和=%d\n",m,n,sum);}intprime(intx){ inti,m; m=(int)sqrt(x); for(i=2;i<=m;i++) if(x%i==0) break; if(i>m) return1; else return0;}23.实验八数据类型与表达式1以下选项中属于C语言的数据类型是()A.复数型B.逻辑型C.双精度型D.集合型2下列选相中合法的C语言关键字是()A.VARB.cherC.intgerD.default3在C语言中,以下合法的字符常量是()A.‘\084’B.‘\x43’C.‘ab’D.“\0”4下列选项中可作为c语言标志符的是()A._pointerB.3_dayC.#abcD.flag.bbc5C语言中简单数据类型包括()A.整型实型逻辑型B.整型实型字符型C.整型字符型逻辑型D.数型整型实型字符型6下列不正确的转义字符是()A.‘\\’B.‘\’C.‘074’D.‘\0’7下面不合法的c语言常量是()A.123B.‘M’C.0892D.“FLAG”8下列四个选项中,均是不正确的八进制数或十六进制的选项是()A.0160x8f018B.0abc0170xaC.010-0x110x16D.0a127ff-1239已知英文字母a的ASCII码值是十六进制数61H,那么字母d的ASCII代码值是(A.34HB.54HC.4HD.64H10在C语言中,int、char和short三种类型数据在内存中所占字节数()A.由用户自己定义B.均为2个字节C.是任意的D.由所用机器的机器字长决定11下列程序执行后的输出结果是:main(){intx='f';printf("%c\n",'A'+(x-'a'+1));}A.GB.HC.ID.J12C语言中,两个运算对象都必须为整型数据的运算符是()A.%B./C.%和/D.%和\13以下有关增1和减1运算符中,正确的是()A.---aB.++100C.a-b++D.a++14若已定义x,y位double形变量,则表达式x=1,y=x+3/2的值是()A.1B.3C.2.0D.2.515设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是()printf(”%d,%d\n”,x--,--y);A.10,3B.9,3C.9,2D.10,216设intx=11;则变达式(x++*1/3)的结果是()A.5B.3C.4D.617设有变量说明:floatx=4.0,y=4.0。使x为10.0的表达式是()A.x-=y*2.5B.x/=y+9C.x*=y-6D.x+=y+218设x,y,z和k都是int形变量,则执行表达式x=(y=4,z=16,k=32)后x的值为()A.4B.16C.32D.5219以下选项中,与k=n++完全等价的表达式是()A.k=n,n=n++B.n=n+1,k=nC.k=++nD.k+=n+120整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是,|表示按位或,^表示按位异或()A.x||yB.x|yC.x&yD.x^y1.C2.D3.B4.A5.B6.B7.C8.D9.D10.D11.A12.A13.D14.C15.D16.B17.D18.C19.A20.D.实验九一维数组的应用120掌握选择法排序,对数组A进行升序排列,A数组的值由随机函数随机产生的100至200之间的20个数据。240编写程序实现统计一维数组中小于数组元素平均值的元素个数,并输出各元素的值、平均值和小于平均值的元素的个数。

(数组中数据:12,56,69,59,47,21,24,51,64)340求一维数组中最大的三个元素的平方根之和,A数组的数据位56,78,98,45,58,34,12,90,26,88(思路:先排序确定最大三元素位置,然后计算输出)。1.#include<stdio.h>#include<time.h>#include<stdlib.h>voidmain(){ inti,t,temp; inta[20]; srand((unsigned)time(NULL)); for(i=0;i<20;i++){ a[i]=rand()%200; if(a[i]<100) a[i]=a[i]+100;} for(t=0;t<19;t++) for(i=t+1;i<19;i++) if(a[t]>a[i]) { temp=a[t]; a[t]=a[i]; a[i]=temp;} for(i=0;i<19;i++) { printf("%d",a[i]); if((i+1)%100==0) printf("\n");}}2.#include<stdio.h>main(){inti,count=0,sum=0;doubleaverage;inta[9]={12,56,69,59,47,21,24,51,64};printf("数组原始数据为:\n");for(i=0;i<9;i++){printf("%3d",a[i]);sum=sum+a[i];}printf("\n");/*求平均值*/average=1.0*sum/9;printf("数组各元素的平均值为:\n%.2lf。\n",av

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论