湖南大学信息科学与工程学院C语言上机部分题库一五0道题.docx
- 文档编号:24318979
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:112
- 大小:41.57KB
湖南大学信息科学与工程学院C语言上机部分题库一五0道题.docx
《湖南大学信息科学与工程学院C语言上机部分题库一五0道题.docx》由会员分享,可在线阅读,更多相关《湖南大学信息科学与工程学院C语言上机部分题库一五0道题.docx(112页珍藏版)》请在冰豆网上搜索。
湖南大学信息科学与工程学院C语言上机部分题库一五0道题
信息科学与工程学院C语言上机150道题参考答案
001.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。
#include
#include
main()
{
floata[10],ave,max,min,sum=0;
inti;
printf("请输入10个考生的成绩:
\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
sum+=a[i];
ave=sum/10;
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
min=a[0];
for(i=1;i<10;i++)
if(a[i] max=a[i]; printf("平均成绩: %f,最高分: %f,最低分: %f",ave,max,min); getch(); } 003.用while循环结构编写程序打印ASCII码为33-127的字符。 #include #include main() { inti=33; while(i<=127) { printf("%c",i); i++; } getch(); } 004用do-while,for循环结构编写程序打印ASCII码为33-127的字符。 #include #include main() { inti=33; do { printf("%c",i); i++; }while(i<=127); getch(); } 006.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。 #include #include main() { inti; for(i=1;i<=500;i++) { if(i%3==2&&i%5==3&&i%7==5) printf("%d\n",i); } getch(); } 007.输入一个整数将其倒着输出,如54321——12345。 (方法一) #include #include #include main() { chara[100]; intlen,i; printf("请输入一个整数: \n"); scanf("%s",a); len=strlen(a); for(i=len-1;i>=0;i--) printf("%c",a[i]); getch(); } 007(方法二) #include #include main() { intnum,t; printf("请输入一个整数: \n"); scanf("%d",&num); while(num>0) { t=num%10; num=num/10; printf("%d",t); } getch(); } 008.计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4。 #include #include main() { intn; floatt=1,s=0; for(n=1;t>0.0001;n+=2) { t=(float)1/n; s=s+t; } printf("s=%f",s); getch(); } 009.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。 #include #include main() { intn,i,s=0; printf("请输入一个整数: \n"); scanf("%d",&n); for(i=1;i<=n;i++) s=s+i*i; printf("%d",s); getch(); } 010.用while循环计算1+2+……+100的和。 #include #include main() { ints=0,i=1; while(i<=100) { s=s+i; i++; } printf("%d",s); getch(); } 11. 用dowhile循环计算1+2+……+100的和 #include main() { inti,result; i=1;result=0; while(i<=100) { result=i+result; i++; } printf("1+2+...+100=%d",result); while (1); } 12.用for循环计算1+2+……+100的和。 #include main() { inti,result; for(i=1,result=0;i<=100;i++) { result=i+result; } printf("1+2+...+100=%d",result); while (1); } 13.输入一个小于等于10的整数n,计算n! 。 #include longfac(intn) { longresult; if(n==0||n==1){result=1;} else{result=n*fac(n-1);} returnresult; } main() { intn;longresult; printf("请输入一个小于等于10的整数\n"); scanf("%d",&n); if(n>=0&&n<=10) { result=fac(n); printf("%d! =%ld",n,result); } elseprintf("输入数据错误"); while (1); } 14.输入两个正整数m和n,计算m! +n! ,m和n的值均小于10。 #include longfac(intn) { longresult; if(n==0||n==1){result=1;} else{result=n*fac(n-1);} returnresult; } main() { intn,m;longresult; printf("请输入两个小于等于10的整数\n"); scanf("%d%d",&n,&m); if(n>=0&&n<=10&&m>=0&&n<=10) { result=fac(n)+fac(m); printf("%d! +%d! =%ld",n,m,result); } elseprintf("输入数据错误"); while (1); } 15.用循环语句,计算1~100之间的所有3的倍数之和。 #include main() { inti,result; for(i=1,result=0;i<=100;i++) { if(i%3==0) result=result+i; } printf("1~100之间的所有3的倍数之和为%d",result); while (1); } 16.用循环语句,计算100-200之间的所有7的倍数之和。 #include main() { inti,result; for(i=100,result=0;i<=200;i++) { if(i%7==0) result=result+i; } printf("100-200之间的所有7的倍数之和为%d",result); while (1); } 17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。 #include main() { inti,num; for(i=1,num=0;i<=100;i++) { if(i%7==0||i%10==7) num++; } printf("1-100之间,7的整数倍数或数字尾数为7的数字个数为%d",num); while (1); } 18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。 #include intmain() { inti=0,space=0,num=0,n=0,ch=0; chars[1000000]; printf("请输入一串字符"); gets(s); while(s[i]! ='\0') { if(s[i]=='') space++; elseif(s[i]<='9'&&s[i]>='0') num++; elseif(s[i]<='z'&&s[i]>='a'||s[i]<='Z'&&s[i]>='A') ch++; else n++; i++; } printf("刚才输入的字符中英文字符个数为%d\n",ch); printf("刚才输入的字符中空格个数为%d\n",space); printf("刚才输入的字符中数字个数为%d\n",num); printf("刚才输入的字符中其他个数为%d\n",n); while (1); } 19.输入一个整数,统计它有几位数。 如输入367,则该数有3位数。 #include main() { intn,i,j; i=1;j=0; printf("请输入一个整数\n"); scanf("%d",&n); if(n==0)printf("这个数是1位数",j); else{ while(n>=i) { i=10*i; j=j+1; } printf("这个数是%d位数",j); } while (1); } 20.编写程序,输出1到50中间所有能被3整除的正整数。 #include main() { printf("1到50中间所有能被3整除的正整数如下\n"); intn; for(n=1;n<=50;n++) { if(n%3==0) printf("%d\t",n); } while (1); } 21.把100~200之间不能被3整除的输出。 #include main() { printf("100~200之间不能被3整除的正整数如下\n"); intn; for(n=100;n<=200;n++) { if(n%3! =0) printf("%d\t",n); } while (1); } 22.编程Y=1+3+5+7+...111。 #include main() { printf("Y="); intn,result; for(n=1,result=0;n<=111;n=n+2) { printf("%d+",n); result=result+n; } printf("=%d\n",result); while (1); } 23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。 #include #include main() { inti; longinty; y=1; for(i=1;i<=10;i++) { y=y*i; } printf("y=1/%ld",y); getch(); } 24.编程输出九九乘法表。 #include #include main() { inti,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%d*%d=%d\t",j,i,i*j); printf("\n"); } getch(); } 25.求1到100奇数和。 #include #include main() { inti=0,n; for(n=1;(2*n-1)<100;n++) i=i+(2*n-1); printf("1到100以内的奇数之和为: %d\n",i); getch(); } 26.求1到100偶数和。 #include #include main() { inti,s; s=0; for(i=2;i<=100;i=i+2) s=s+i; printf("1到100的偶数和是: "); printf("s=%d\n",s); getch(); } 27.编程求200以内所有质数(素数)。 #include #include #include intisprime(intm) {inti; for(i=2;i<=sqrt(m);i++) if(m%i==0) {return0;break;} if(i>=(int)sqrt(m)+1) return1; } main() {intn,flag; for(n=1;n<=200;n++) { flag=isprime(n); if(flag) printf("%d\t",n);} getch(); } 28.从键盘输入一个整数,求该数的绝对值。 #include #include main() { floata,t; printf("Pleaseinputthevalue\t"); scanf("%f",&a); if(a<0) t=-a; else t=a; printf("Theabsolutevalueis: \t%f",t); getch(); } 29.从键盘输入+、-、*、/中的任一个,输出对应的英文单词: plus、minus、mutiply、divide,如输入的不是这4个字符中的任一个,则输出“sorry,youarewrong”。 #include #include main() { charch; ch=getchar(); if(ch=='+') printf("plus\n"); elseif(ch=='-') printf("minus\n"); elseif(ch=='*') printf("multiply\n"); elseif(ch=='/') printf("divide\n"); else printf("youarewrong"); system("pause"); } 30.从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。 #include #include main() { charn1='a',n2='r',n3='f',n4; charm1='A',m2='R',m3='F'; printf("请输入一个字符: "); scanf("%c",&n4); if(n4==n1||n4==m1) {printf("youareright! \n"); printf("n4=%c\n",n4); } elseif(n4==n2||n4==m2) {printf("youareright! \n"); printf("n4=%c\n",n4); } elseif(n4==n3||n4==m3) {printf("youareright! \n"); printf("n4=%c\n",n4); } else printf("youputintoawrongchar! \n"); getch(); } 31.求解一元二次方程ax2+bx+c=0的跟(a不等于0),a,b,c均为实数,其值由键盘输入。 #include #include #include main() { doublea,b,c; doubles,x1,x2; printf("pleaseentera,b,c: \n"); scanf("%lf%lf%lf",&a,&b,&c); if(a>=-(1e-6)&&a<=(1e-6)) printf("sorry! youhaveawrongnumbera.\n"); else { s=b*b-4*a*c; if(s>(1e-6)) { x1=(-b+sqrt(s))/(2*a); x2=(-b-sqrt(s))/(2*a); printf("therearetwodifferentreal: \nx1=%5.2f,x2=%5.2f\n",x1,x2);} else if(s>=-(1e-6)&&s<=(1e-6)) { x1=x2=-b/(2*a); printf("therearetwoequalreal: \nx1=x2=%5.2f\n",x1); } else { s=-s; x1=-b/(2*a); x2=fabs(sqrt(s)/(2*a)); printf("therearetwodifferentcomplex: \n"); printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",x1,x2,x1,x2); } } getch(); } 32.编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成绩。 设: 90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。 (要求用switch语句编程)。 #include #include main() { intscore,temp,logic; chargrade; logic=1; while(logic) { printf("inputscore: \n"); scanf("%d",&score); if((score>100)||(score<0)) printf("\nerror,inputagain! \n"); else logic=0; printf("\n"); } if(score==100) temp=9; else temp=(score-score%10)/10; switch(temp) { case9: grade='A';break; case8: grade='B';break; case7: grade='C';break; case6: grade='d';break; case5: case4: case3: case2: case1: case0: grade='e';break; } printf("scoreis: %d,thegradeis: %c.\n",score,grade); system("pause"); } 33.输入一个整数,判断它能否被3,5,7整除。 #include #include main() { intx; printf("Pleaseenterx: "); if((x%3==0)&&(x%5==0)&&(x%7==0)) printf("%d能被3,5,7整除",x); else printf("%d不能被3,5,7整除",x); getch(); } 34.用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。 要求用if嵌套实现)。 #include #include main() { intmonth,i; loop: printf("enteraninteger(1~12): \n"); scanf("%d",&month); if(month<1||>12) gotoloop; r=month%12; r=r/3; if(r==0) printf("winter\n"); elseif(r==1) printf("spring\n"); elseif(r==2) printf("summer\n"); else printf("autumn\n"); getch(); } 35.编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。 #include #include main() { inta,b,c; printf("pleaseentera,b,c: \n"); scanf("%d%d%d",&a,&b,&c); switch(a) { case1: printf("%d+%d=%d\n",b,c,b+c); break; case2: printf("%d-%d=%d\n",b,c,b-c); break; case3: printf("%d*%d=%d\n",b,c,b*C); break; case4: printf("%d/%d=%d\n",b,c,b/c); break; default: break; } getch(); } 36.编写输入一个整数,将其数值按小于10,10~99,100~9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南大学 信息科学 工程学院 语言 上机 部分 题库 道题