电气类专业C上机考试题_第1页
电气类专业C上机考试题_第2页
电气类专业C上机考试题_第3页
电气类专业C上机考试题_第4页
电气类专业C上机考试题_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、电气类专业C程序设计上机考试试题(附答案)第一题1. 输入一小写字母,分别以字符形式与数值形式输出与该小写字母相应的大写字母2. 输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32)3. 写一个程序,输入实数X,输出Y,计算Y=3X3+0.4X2-2 X / 34. 编写程序:读入三个整数a,b,c,然后交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。5. 编写程序:输入9时23分并把它化为分钟后输出。(从零点整开始计算)。6. 要将“Chiina”翻译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面的4个字母是“E”,用“E”代替“

2、A”。因此,“Chian”应译成“Glmre”。用赋初值的方法是c1,c2,c3,c4,c5五个变量的值分别为C、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别为G、l、m、r、e,并输出7. 编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和prinf函数输出这两个字符以及它们的ASCII值。8. 设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积9. 编写程序,输入两个整数 ,计算并输出它们的和、差、积、除(精确除)、整除及模的结果。10. 编一程序,对于一个给定的一个百分制成绩,输出相应的五分制成绩。设:90

3、分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。11. 输入3个整数,要求按由小到大的顺序输出12. 输入4个数,输出其中的最大数和最小数。x (x1)2x-1 (1=x=10)y= (1=x10)13. 有一函数:写一程序,输入x,输出y14. 给定一个不多于5的正整数,要求:(1)求它是几位数;(2)分别打印出每一位数字(3)按逆序打印出各位数字。例如原数为321,应输出123。15. 编写程序,要求输入整数a和b.若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。16. 根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和

4、三角形的类型17. 判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes,否则输出no18. 输入4个整数,求4个数中的偶数之和19. 输入4个整数,求4个数中的奇数之和20. 假设奖金税率如下(a代表奖金,r代表税率)a500 r=0%500=a1000 r=5%1000=a2000 r=8%2000=a3000 r=10%3000m)。(要求数据由主函数输入,复制部分编写一函数实现,复制后结果由主函数输出完成。)102 使用函数实现华氏温度向摄氏温度的转换,转换公式如下:C=(5/9)*(F-32),其中C为摄氏温度,F为华氏温度。(子函数实现温度转化,并将结果返回给主函数)103

5、 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。104 用函数实现一些程序:计算10个学生的1门课程成绩的平均值.105 有15个数按由大到小顺序存放在一个数组int a=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15中,输入一个数用顺序查找法找出该数是数组中的第几个元素的值(元素下标值),若该数不在数组中则打印“无此数”。 (要求数据由主函数输入,查找部分编写一函数实现,结果由主函数输出完成。)106 定义一个带参数的宏,完成从四个数中找出最大数的操作。107 根据已知算法定义一个带参数的宏,用来判别程序中输入的年份是否闰年。108 试定义

6、一个带参数的宏swap(x,y),以实现两个整数之间的交换,并利用它将一维数组a和b 的所有元素的值进行交换。109 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5位学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。(注意:此题要求按结构体方法求解。)110 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。111 已知字符串S中的内容为“Student!”,请用指针的方法将S中的内容逆序输出,且不能改变串中的内容。112 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符

7、个数。(要求用指针实现)。113 通过指针操作,将输入的3个字符串,按由大到小的顺序输出。114 定义整型数组a,有10个元素,用指针实现数组中的全部元素的输出.115 编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串。请用指针完成。116 利用指针编写一程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调函数中完成复制。117 用指针法实现:输入10个数,按由小到大的顺序输出。118 用指针法实现:写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度值。119 从键盘输入

8、10个学生的成绩,显示其中的最高分、最低分和平均分。用指针实现。120 编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始输出该串奇数位上的字符。(要求用指针实现)答案1.输入一小写字母,分别以字符形式与数值形式输出与该小写字母相应的大写字母 #include void main() char c; scanf(%c,&c); c=c-32; printf(%c,%d,c,c); 2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32) #inclucde void main() float c,f; scanf(%f,&f); c=5.0/9*(f-32)

9、; printf(%f,c); 3.写一个程序,输入实数X,输出Y,计算Y=3X3+0.4X2-2 X / 3 #include void main() float x,y; scanf(%f,&x); y=3*x*x*x+0.4*x*x-2*x/3; printf(%f,y); 4.编写程序:读入三个整数a,b,c,然后交换它们中的数,使a存放b的值,b存放c的值,c存放a的值。 #include void main() int a,b,c,t; t=a;a=b;b=c;c=t; printf(%d%d%d,a,b,c); 5.编写程序:输入9时23分并把它化为分钟后输出。(从零点整开始计算

10、)。 #include void main() int a,b,c; scanf(%d,%d,&a&b); printf(%dh%dminn,a,b): c=a*60+b; printf(%dminn,c); 6.要将“Chiina”翻译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“ A”后面的4个字母是“E”,用“E”代替“A”。因此,“Chian”应译成“Glmre”。用赋初值的方法 是c1,c2,c3,c4,c5五个变量的值分别为C、h、i、n、a,经过运算,使c1、c2、 c3、c4、c5分别为G、l、m、r、e,并输出 #include void main

11、() char c1=c,c2=h,c3=i,c4=n,c5=a; c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4; printf(%c%c%c%c%c,c1,c2,c3,c4,c5); 7.编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和prinf函数输出这两个字符以 及它们的ASCII值。 #include void main() char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); printf(%d,%d,c1,c2); 8.设圆半径r=1.

12、5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积 #include #define PI=3.14159 void main() float r=1.5,h=3,c,s1,s2,v1.v2; c=2*PI*r; s1=4*PI*r*r; s2=PI*r*r; v1=4.0/3*PI*r*r*r; v2=s2*h; printf(%7.2f,%7.2f,%7.2f,%7.2f,%7.2f,c,s1,s2,v1,v2); 9.编写程序,输入两个整数 ,计算并输出它们的和、差、积、除(精确除)、整除及模的结果。 #include #include void main() int a

13、,b,sum,c,e,f,g; float d; sum=a+b; c=a-b; e=a*b; f=a/b; g=sqrt(a*a+b*b); printf(%d,%d,%f,%d,%d,%d,sum,c,d,e,f,g); 10.编一程序,对于一个给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A,8089 分为B,7079分为C,6069分为D,60分以下为E。 #include void main() float a; scanf(%f,&a; if(a=90) printf(An); else if(a=80&a=70&a=60&a=69)printf(Dn); else

14、printf(En); 11.输入3个整数,要求按由小到大的顺序输出 #include void main() int a,b,ct; scanf(%d,%d,%d,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%d,%d,%dn,a,b,c); 12.输入4个数,输出其中的最大数和最小数。 #include void main() int a,b,c,d,max,min; scanf(%d,%d,%d,%d,&a,&b,&c,&d); max=a; if(ba) max=b; if(

15、cmax) max=c; if(dmax) max=d; min=a; if(ba) min=b; if(cmin) min=c; if(dmin) min=d; printf(%d,%dn,max,min); 13.有以函数y=x(x1);2x-1(1=x=10).写一程序,输入x,输出y. #include void main() int x,y,m,n m=2*x-1; n=3*x-11; scanf(%d,&x); if(x1&x=10) prinft(y=%d,n); 14.给定一个不多于5的正整数,要求:(1)求它是几位数;(2)分别打印出每一位数字(3)按逆序打 印出各位数字.

16、#include void main() long int num; int indiv,ten,hundred,thousand,ten_thousand,place; sacnf(%ld,&num); if(num9999) place=5; else if(num999) place=4; else if(num99) place=3; else if(num9) place=2; else place=1; printf(place=%dn,place); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/10

17、00; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) case5:printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv); printf(%d%d%d%d%dn,in

18、div,ten,hundred,thousand,ten_thousand); break; case4:printf(%d,%d,%d,%d,thousand,hundred,ten,indiv); printf(%d%d%d%dn,indiv,ten,hundred,thousand); break; case3:printf(%d,%d,%d,hundred,ten,indiv); printf(%d%d%dn,indiv,ten,hundred); break; case2:printf(%d,%d,ten,indiv); printf(%d%dn,indiv,ten); break;

19、 case1:print(%d,indiv); printf(%dn,indiv); break; 15.编写程序,要求输入整数a和b.若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。 #include void main() int a,b,c; scanf(%d%d,&a,&b; c=a*a+b*b; if(c100); printf(%dn,c/100); else printf(%dn,a+b); 16.根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型 #include #include void main() float a,b

20、,c,t,s,area,m; scanf(%f,%f,%f,&a,&b,&c); if(a+bc&b+ca&a+cb); s=(1.0/2)(a*b*c) area=sqrt(s*(s-a)*(s-b)*(s-c); printf(area=%6.2f,area); if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t; if(b0) printf(ruijiao); else if(m0) printf(dunjiao); 17.判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes,否则输出no #infclude #include void main() int

21、 m; sacnf(%d,&m); if(m%5=0&m%7=0) printf(yesn,m); else printf(non); 18.输入4个整数,求4个数中的偶数之和. #include #include void main() int s4,m,i; for(i=0;i4;i+) scanf(%d,&si); m=0; if(si%2)=0) m+=si printf(m=%d,m); 19.输入4个整数,求4个数中的奇数之和 #include #include void main() int s4,n,i; for(i=0;i4;i+) scanf(%d,&si); n=0; i

22、f(si%2)!=0) n+=si printf(n=%d,n); 20.假设奖金税率如下(a代表奖金,r代表税率)a500 r=0%;500=a1000 r=5%;1000=a2000 r=8%; 2000=a3000 r=10%;3000=a r=15%编写程序用if语句实现:对输入的一个资金数,求税率和应交 税款以及实际奖金数(扣除奖金税后)。 #include void mian() float a,r,t,b; intc; scanf(%f,&a); if(a=3000) c=6; else c=int(a/500); switch(C) case0:r=0;break; case1

23、:r=0.05;break; case2: case3:r=0.08;break; case4: case5:r=0.1;break; case6:r=0.15;break; t=a*r; b=a-t; printf(r=%f,t=%f,b%f,r,t,b); 21.输入一个字符,如果是大写字母,转换为小写,如果不是不转换。最后输出。 #include void main() char c; scanf(%c,&c); c=(c=A&c=Z)?c+32:c; printf(%c,c); 22.键盘上输入三角形三边a,b,c 的值,计算三角形面积,并输出三角形的三边a,b,c及面积area的值。

24、三 角形面积的公式:s=(a+b+c)/2 area=sqrts(s-a)(s-b)(s-c). #include void main() float a,b,c,s,area; sacnf(%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area); 23.编写一个程序,根据用户输入的一个字母判定它是星期几。要求用switch语句实现程序控制,当第一 个字母相同时

25、,如:T(t)uesday 和T(t)hursday故需要进一步输入U或u或H或h确认。 #include void main() char a,b,c; scanf(%c,&a); switch(a) caseM:printf(Monday);break: caseT:scanf(%c,&b); if(b=U) printf(Tuesday); else printf(thursday);break; caseW:printf(wednesday);break: caseF:printf(Friday);break: cases:scanf(%c,&c); if(c=A) printf(Sa

26、terday); else printf(Sunday);break; 24.编写一个程序:输入某年某月,判断这一月有多少天? #include void main() int year,month,t=0,leap=0; scanf(%d,%d,&year,&month); if(year%4=0&year%100!=0|year%400=0) leap=1; t=28+leap; switch(month) case2:printf(%dn,t);break; case1:printf(31n);break; case3:printf(31n);break; case5:printf(31

27、n);break; case7:printf(31n);break; case8:printf(31n);break; case10:printf(31n);break; case12:printf(31n);break; case4:printf(30n);break; case6:printf(30n);break; case9:printf(30n);break; case11:printf(30n);break; 25.从键盘上输入字母或09的数字,编写程序对其进行分类。字母可分为大写字母和小写字母,数字可分 为奇数和偶数。 #include voia main() char a120

28、,i; scanf(%s,a); for(i=0;i=19;i+) if(0=ai&ai=9) if(ai/2=0 printf(%dn,ai); else printf(%dn,ai); for(i=0;i=19;i+) if(a=ai&ai=z) printf(%c,ai); printf(n); for(i=0;i=19;i+) if(A=ai&ai=Z) printf(%c,ai); 26.编写程序:加密数据,方法:对给定数值,每一位数字均加2,且在0,9范围内,若加密后某位数字 大于9,则取其被10除的余数. #include void main() int i,a20,m,k; s

29、canf(%d,&m); for(i=0;mo;i+) ai=m%10; m=m%10; k=i; k=k+1; for(i=0;i9) ai=ai%10; for(i=k-1;i0;i-) printf(%dn,ai); 27.编写程序:计算从1995年1月1日至2000年12月10日共有多少天。闰年的2月有29天.闰年满足如下条件 :能被400整除或能被4 整除但不能被100整除。 #include void main() int year,i=0,s; for(year=1995;year=2000;year+) if(year%4=0&year%100!=0)|year%400=0)

30、i+; s=365*6+i-21; printf(%d,s); 28.编程求解一元二次方程 ax2+bx+c=0的根。 #include #include void main() float a,b,c,disc,x1,x2,realpart,imagpart; scanf(%f,%f,%f,a&,b&,&c); if(fabs(a)=1e-6) printf(is not a quadraticn); else disc=b*b-4*a*c;if(fabs(disc)1e-6) x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a); printf(h

31、as distinct rael roots:%8.4fand%8.4fn,x1,x2); else realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a); printf(has complex roots:n); printf(%8.4f+%8.4fin,raelpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); 29.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #include void main() int i,j,k,n; for(i=1;15;i+) f

32、or(j=0;j5;j+=) for(k=0;k5;k+) if(i!=j&i!=k&k!=j) printf(%d,100*i+10*j+k);n+ printf(%d,n); 30.求 (12!20!). #include void main() int i,s=0,t=1; for(i=1;i=20;i+) t=t*i; s=s+t; printf(%ld,s); 31.已知abc+cba=1333,其中a、b、c均为一位数,编写一个程序求出a、b、c分别代表什么数字。 #include void main() int a,b,c; for(a=1;a10:a+) for(b=0;b10

33、;b+) for(c=1;c10;c+) if(a*100+b*10+c+c*100+b*10+a=1333) printf(%d,%d,%d,a,b,c); 32.鸡兔共有30只,脚共有90只,编写一程序计算鸡兔各有多少只。 #include void main() int i,j; for(i=1;i30;i+) j=30-i; if(2*i+4*j=90) printf(%d,%d,i,j); 33.输入两个正整数m和n,求其最大公约数和最小公倍数. #include void main() int p,r,n,m,temp; scanf(%d,%d,&n,&m); if(nm) tem

34、p=n;n=m;m=temp; p=n*m;r=n%m; while(r!=0) r=n%m;n=m;m=r; printf(%d,m); printf(%d,p/m); 34.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。见87题35.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123.编程:找出1000以内的所 有完数。 #include void main() int i=1,j,sum; for(;i1000;i+) for(sum=0,j=1;ji;j+) if(i%j=0) sum+=j; if(sum=i) printf(%dn,i); 36

35、.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩 下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再 吃时,见只剩下一个桃子了。求第一天共摘了多少. #include void main() int a10,i; a9=1; for(i=8;i=0;i-) ai=(ai+1+1)*2; printf(%d,a10); 37.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和. #include void main() int a=2,b=1,i,t; float s=0 for(i=0;i20;i+) s+=a/b;t=a;a=a+b;b=t;

温馨提示

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

评论

0/150

提交评论