大学C语言编程题.docx
《大学C语言编程题.docx》由会员分享,可在线阅读,更多相关《大学C语言编程题.docx(19页珍藏版)》请在冰豆网上搜索。
大学C语言编程题
课程单元:
1、运算符、表达式、输入输出语句
能力要求:
a)能够正确定义、输入、输出并使用常用数据类型:
整型、实型、字符型
b)掌握五种基本算术运算符的使用:
+、-、*、/、%,知道优先级与结合性
c)掌握逻辑运算符和关系运算符、条件运算符的使用
d)能够正确使用printf()和scanf()进行各种数据正确格式的输入输出
e)编写简单顺序结构程序
基础能力落实:
1)输入一个字母,输出其对应的ASCII码.
main()
{
charc;
scanf("%c",&c);
printf("%d\n",c);
}
2)输入一个小写字母,输出其对应的大写字母.
main()
{
charc;
scanf("%c",&c);
c=c-32;
printf("%c\n",c);
}
3)从键盘输入一个四位数,编程计算该四位数的各位和并输出。
main()
{
inti,a,b,c,d;
scanf("%d",&i);
a=i/1000;
b=i%1000/100;
c=i%100/10;
d=i%10;
printf("%d\n",a+b+c+d);
}
4)教材,2(关于数据类型、运算符、表达式的练习题,其他类似题目均可)
进阶能力落实:
1)输入一个十进制数,输出其对应的八进制数据。
main()
{
inti;
scanf("%d",&i);
printf("%o\n",i);
}
2)输入一个圆的半径,分别求圆的周长,面积。
#definePI3.14
main()
{
floatr,s,c;
scanf("%f",&r);
c=2*PI*r;
s=PI*r*r;
printf("c=%.2f,s=%.2f\n",c,s);
}
课程单元:
2、选择结构程序设计
能力要求:
a)能够使用if语句编写条件选择程序
b)能够使用嵌套if语句和switch语句编写多分支选择结构程序
基础能力落实:
1)判断一个数的正、负,输出相应信息
#include
main()
{
intn;
printf("输入整数n,n不等于0:
\n");
scanf("%d",&n);
if(n<0)
printf("n为负数\n");
else
printf("n为正数\n");
}
2)判断一个数的奇偶,输出相应信息
#include
main()
{
intn;
printf("输入整数n:
\n");
scanf("%d",&n);
if(n%2==0)
printf("n为偶数\n");
else
printf("n为奇数\n");
}
3)在主函数中输入整型数据n,判断该数是否能被3整除,如果能被3整除,输出“yes”,否则输出“no”
#include
main()
{
intn;
printf("输入整数n:
\n");
scanf("%d",&n);
if(n%3==0)
printf("yes\n");
else
printf("no\n");
}
4)写一程序,输入x,求y的值,
y=
x(x<1)
2x-1(1≤x<10)
3x–11(x≥10)
main()
{
intx,y;
scanf("%d",&x);
if(x<1)
y=x;
elseif(x>=1&&x<10)
y=2*x-1;
else
y=3*x-11;
printf("y=%d\n",y);
}
5)从键盘输入三个数,按照从小到大(或从大到小)的顺序输出
从小到大输出
#include
main()
{
inta,b,c,t;
printf("请输入三个整数:
\n");
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("从小到大排序\n%d%d%d\n",a,b,c);
}
6)判断一个年份是否闰年
#include
main()
{
inty,leap;
printf("输入年份y:
");
scanf("%d",&y);
if(y%4!
=0)
leap=0;
elseif(y%100!
=0)
leap=1;
elseif(y%400!
=0)
leap=0;
else
leap=1;
if(leap==1)
printf("%d年是闰年\n",y);
else
printf("%d年不是闰年\n",y);
}
或者
#include
main()
{
inty,leap;
printf("输入年份y:
");
scanf("%d",&y);
if((year%4==0&&year%100!
=0)||(year%400==0))
printf("%d年是闰年\n",y);
else
printf("%d年不是闰年\n",y);
}
7)对一个百分制的成绩给出相应的等级(如90分以上A,80分以上B等)
#include
main()
{
floatgrade;
inti;
printf("输入百分制成绩(0~100):
");
scanf("%f",&grade);
if(grade<0||grade>100)
printf("error\n");
else
{
i=grade/10;
switch(i)
{
case10:
case9:
printf("A\n");break;
case8:
printf("B\n");break;
case7:
printf("C\n");break;
case6:
printf("D\n");break;
case5:
case4:
case3:
case2:
case1:
case0:
printf("F\n");break;
}
}
}
8)从键盘输入两个整数,输出大数(用条件表达式求解)
main()
{
intx,y,max;
printf("请输入2个整数,逗号隔开");
scanf("%d,%d",&x,&y);
max=x>y?
x:
y;
printf("maxis%d\n",max);
}
9)阅读程序的训练,类似题目均可,如:
以下程序的运行结果是。
main()
{intm=5;
if(m++>5)
printf(“%d\n”,m);
else;
printf(“%d\n”,m--);
}
A)4B)5C)6D)7
进阶能力落实:
1)从键盘上输入一个数,判断其是否为水仙花数。
#include
main()
{
inta,b,c,d,e,n;
scanf("%d",&n);
a=n/100;
b=n/10%10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
{
printf("是水仙花\n");
}
else
{
printf("不是水仙花\n");
}
}
2)求一元二次方程的根
#include
#include//包含math.h头文件,开根函数sqrt()
main()
{
inta,b,c;//定义一元二次方程的三个变量为整型
doubled,x1,x2;//定义d=(b^2-4ac)以及两个根,数据类型为双精度类型
printf("输入一元二次方程a*x*x+b*x+c=0中a,b,c的值,逗号隔开:
\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a==0)
printf("不是一元二次方程\n");
else
{
d=b*b-4*a*c;
if(d<0)
printf("无实根\n");
else
{
d=sqrt(b*b-4*a*c);
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
printf("方程的两个根分别是:
x1=%lf,x2=%lf\n",x1,x2);
}
}
}3)编程实现以下功能,读入两个数(d1,d2)和一个运算符(o),计算d1od2的值。
#include
main()
{
charop;
doubleresult,n1,n2;
printf("请输入表达式\n");
scanf("%lf%c%lf",&n1,&op,&n2);
if(op=='+'||op=='-'||op=='*'||op=='/')
{
switch(op)
{
case'+':
result=n1+n2;break;
case'-':
result=n1-n2;break;
case'*':
result=n1*n2;break;
case'/':
result=n1/n2;break;
}
printf("结果是%lf",result);
}
else
printf("输入错误\n");
}
4)输入一个数,判断是否能被3,5,7整除,并输出同时被几个整除。
#include
main()
{
intn,counter=0;
scanf("%d",&n);
printf("能被以下数整除:
");
if(n%3==0)
{
printf("3,");
counter++;
}
if(n%5==0)
{
printf("5,");
counter++;
}
if(n%7==0)
{
printf("7,");
counter++;
}
printf("同时被%d个整除.\n",counter);
}
课程单元:
3、循环结构程序设计
能力要求:
a)掌握for、do-while、while语句结构
b)能够使用for、do-while、while编写循环结构程序
c)使用for、do-while、while编写多重循环语句
基础能力落实:
1)求1+2+3+…+100的和存入变量sum中,并将sum打印出来。
#include
main()
{
inti,sum=0;
for(i=0;i<=100;i++)
sum+=i;
printf("%d\n",sum);
}
3)计算正整数1-n中的奇数之和及偶数之和
#include
main()
{
inti,sum1=0,sum2=0,n;
scanf("%d",&n);
for(i=1;i<=n;i+=2)
{
sum1+=i;
}
for(i=2;i<=n;i+=2)
{
sum2+=i;
}
printf("%d,%d\n",sum1,sum2);
}
4)从5-100之间找出能被5或7整除的数(或类似求1-100之间不能被8整除的数)
main()
{
intn;
for(n=5;n<101;n++)
if(n%5==0||n%7==0)
printf("%d\n",n);
}
5)阅读程序的训练,类似题目均可,如:
下面程序段的运行结果是__________.
intn=0;
while(n++<=2);printf("%d",n);
a)2b)3c)4d)有语法错
6)功能:
下面的程序是求1!
+2!
+3!
+……+10!
的和。
#include
main()
{
longintfac,sum;
inti,j;
sum=0;
for(i=1;i<=10;k++)
{
fac=1;
/**********SPACE*********/
for(j=1;j<=i;j++)//
/**********SPACE*********/
fac=fac*j;
sum=sum+fac;
}
printf(“sum=%ld\n”,sum);
}
(1)求100以内个位数为8且能够被6整除的所有数。
#include
main()
{
inti,j;
for(i=0;i<10;i++)
{
j=i*10+5;
if(j%6!
=0)
continue
printf(“%d\t”j);
}
}
(2)计算100-300之间有多少个数,其各位数字之和为8。
#include
main()
{
inti,s,k,count=0;
for(i=100;i<1000;i++)
{
s=0;
k=i;
while(k!
=0)
{
s=s+k%10;
k=k/10;
}
if(s!
=8)
continue;
else
{
count++;
printf(“%d%d\n”,count,i);
}
}
printf(“个数为:
%d\n”,count);
}
7)求Fibonacci数列的前20个数。
该数列的生成方法为:
F1=1,F2=1,Fn=Fn-1+Fn-2(n>=3),即从第3个数开始每个数等于前2个数之和。
(每行输出4个数)
main()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=10;i++)
{
printf("%12ld%12ld",f1,f2);
if(i%2==0)
printf("\n");
f1=f1+f2;
f2=f1+f2;
}
}
8)编程输出所有“水仙花数”:
所谓水仙花数是指一个三位十进制数,该数的各位数字立方之和,等于该数本身。
(例如,153是一个水仙花数,因为1*1*1+5*5*5+3*3*3=153)
#include
main()
{
inta,b,c,n=100;
for(n=100;n<=999&&n>=100;n++)
{
a=n/100;
b=n%100/10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
printf("%4d",n);
}
}
10)求满足条件1+2+3+……..n<1000的n的最大值.
main()
{
intn,sum;
n=sum=0;
for(;sum<1000;sum+=n)
n++;
printf("%d\n",n-1);
}
11)编写一个具有加、减、乘、除四则运算功能的程序,要求能反复多次操作,当输入“#”运算符时退出(switch—case语句应用)。
#include
main()
{
floatn1,n2,result;
charop;
charc=0;
while(c!
='#')
{
printf("如要计算请输入x,退出请输入#。
\n");
c=getch();
if(c=='x'||c=='X')
{
printf("请输入表达式:
\n");
scanf("%f%c%f",&n1,&op,&n2);
if(op=='+'||op=='-'||op=='*'||op=='/')
{
switch(op)
{
case'+':
result=n1+n2;break;
case'-':
result=n1-n2;break;
case'*':
result=n1*n2;break;
case'/':
result=n1/n2;break;
}
printf("%f%c%f=%f\n",n1,op,n2,result);
}
else
printf("输入错误\n");
}
elseif(c=='#')
exit(0);
else
printf("输入错误请重新输入\n");
}
}