四川大学C语言题库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入十进制数,输出该数的十六进制数。
#include <>
int main(void)
{
int n;
printf("input:");
scanf("%d", &n);
printf("output:%X\n", n);
return 0;
输入实型数据a,b,然后输出a、b的值。
#include <>
int main(void)
{
double number1, number2;
printf("please input two numbers:");
scanf("%lf,%lf", &number1, &number2);
printf("Output:\n");
printf("a=%f,b=%f\n", number1, number2);
return 0;
输入一个小写英文字母,第一输出它及其ASCII码,然后输出其对应的大写字母及其ASCII 码
int main(void)
{
char ch;
printf("Input a lowercase letter:");
ch = getchar();
printf("Output:\n");
printf("%c(%d)\n", ch, ch);
printf("%c(%d)\n", ch - 32, ch - 32);
return 0;
从键盘输入一个正三角形的边长(整型),计算该三角形的面积和周长
#include <>
int main(void)
{
int side;
printf("Input a side of triangle: ");
scanf("%d", &side);
printf("Output:\n");
printf("The area of triangle is %.2f, the circle of triangle is %.0f.\n", * side *
side * sqrt(3) / 4, * side);
return 0;}
从键盘读入一个任意字符,输出该字符ASCII的十六进制小写值
#include <>
int main(void)
{
char ch;
printf("Input a character: ");
ch = getchar();
printf("Output:%x\n", ch);
return 0;
从键盘输入一个正方体的边长(整型),计算该正方体的体积和表面积#include <>
int main(void)
{
int side;
printf("Input a side of cube: ");
scanf("%d", &side);
printf("Output:\nThe volume of cube is %d, the surface area of cube is %d.\n", side * side * side, 6 * side * side);
return 0;#include <>
从键盘输入X,Y,Z的值
#include <>
int main(void)
{
int float_z;
double float_x, float_y;
printf("please input x,y,z:");
scanf("%lf,%lf,%d", &float_x, &float_y, &float_z);
printf("Output:");
printf("%f\n", float_x + float_z % 3 * (int)(float_x + float_y) % 2 / 4);
return 0;
}
从键盘输入一日期,年月日之间以“-”分隔,并以一样的形式但以“/”作分隔符输出。
#include <>
int main(void)
{
int year, month, day;
printf("please input a data:");
scanf("%d-%d-%d", &year, &month, &day);
printf("Output:\n");
printf("the date is:%d/%d/%d\n", year, month, day);
return 0;
}
从键盘上输入一个四位整数,计算各个位上的数字之和。
#include <>
int main(void)
{
int number;
printf("Input a number with 4-digit: ");
scanf("%d", &number);
printf("Output:\n");
printf("sum=%d\n", number / 1000 + number / 100 % 10 + number / 10 % 10 + number % 10);
return 0;
}
已知某产品单价是30 ,输入其数量是num,输出其总价。
#include <>
int main(void)
{
int num;
printf("please input num:");
scanf("%d", &num);
printf("Output:\ntotal=%d\n", 30 * num);
return 0;
}
输入两个整数,输出这两个整数的和
#include <>
int main(void)
{
int number1, number2;
printf("please input data: ");
scanf("%d%d", &number1, &number2);
printf("Output:\n");
printf("%4d+%4d=%4d\n", number1, number2, number1 + number2);
return 0;
}
用scanf输入圆半径r,圆柱高h,求圆周长C1(=2πr)、圆面积S(=πr2)、圆柱体积V(=πr2h)。
#include <>
int main(void)
{
double rad, high, c1, s, ver;
printf("Input: ");
scanf("r=%lf,h=%lf", &rad, &high);
c1 = 2 * rad * ;
s = * rad * rad;
ver = s * high;
printf("Output:\n");
printf("C1=%.2f\n", c1);
printf("S=%.2f\n", s);
printf("V=%.2f\n", ver);
return 0;
}
输入一个华氏温度,要求输出摄氏温度,计算公式为c=5(F-32)/9<b style="float:right;color:red">
#include <>
int main(void)
{
double cel, fra;
printf("Input the degree:");
scanf("%lf", &fra);
cel = 5 * (fra - 32) / 9;
printf("Output:\n");
printf("F(%.2f)=C(%.2f)\n", fra, cel);
return 0;
}
[2151]发奖金
#include <>
int LastRemaining_Solution2(int n, unsigned int m)
{
int lastinteger=0;
int i = 2 ;
if(n <= 0 || m < 0)
return -1;
for (i = 2; i <= n; i ++)
lastinteger = (lastinteger + m) % i;
return lastinteger;
}
int main()
{
int a,b;
printf("the number of people:");
scanf("%d",&a);
printf("the lucky number is:");
scanf("%d",&b);
printf("Output:\nthe lucky one's number is:");
while((a&&b)!=EOF)
{
printf("%d\n",LastRemaining_Solution2(a,b));
break;
}
return 0;
}
数列求和
#include<>
int main()
{
float sum,term,deno,sign,n;
printf("Please input n:\n");
scanf("%f",&n);
sum=1;
deno=2;
sign=1;
printf("Output:\n");
if(n<=0)
{
printf("Input error!\n");
return 0;
}
while(deno<=n)
{
sign=sign*(-1);
term=sign*(1/deno);
sum=sum+term;
deno++;
}
printf("the ans is %.2f\n",sum);
return 0;
}
[2139]汉诺塔3
#include<>
long f(int n)
{
if(n==1)
return 2;
return f(n-1)*3+2;
}
int main()
{
int n;
printf("Please input n:\n");
scanf("%d",&n);
printf("Output:\nthe times are:\n");
while(n!=EOF)
{
printf("%lld\n",f(n));
break;
}
return 0;
}
[2803]晨跑
#include <>
#include <>
#define inf 00
int n, l, g[16][16], deg[16], odd[16], flag[16];
int dfs()
{
int i, j, t, r = inf;
for (i = 0; i < l; i++)
if (!flag[i])
break;
if (i == l)
return 0;
flag[i] = 1;
for (j = i + 1; j < l; j++)
if (!flag[j])
{
flag[j] = 1;
t = dfs() + g[odd[i]][odd[j]];
r = r < t ? r : t;
flag[j] = 0;
}
flag[i] = 0;
return r;
}
int main()
{
int m, i, j, k, s, e, v, d;
printf("请输入花坛的个数:\n");
scanf("%d", &n);
while (n!= EOF, n)
{
printf("请输入小路的个数:\n");
scanf("%d", &m);
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
g[i][j] = inf;
memset(deg, 0, sizeof(deg));
printf("输入各小路的关系:\n");
for (d = i = 0; i < m; i++)
{
scanf("%d%d%d", &s, &e, &v);
deg[s]++;
deg[e]++;
d += v;
if (v < g[s][e])
g[s][e] = g[e][s] = v;
}
for (k = 1; k <= n; k++)
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
if (g[i][k] + g[k][j] < g[i][j])
g[i][j] = g[i][k] + g[k][j];
for (l = 0, i = 1; i <= n; i++)
if (deg[i] % 2)
odd[l++] = i;
memset(flag, 0, sizeof(flag));
printf("Output:\n");
printf("最短路程为:\n");
printf("%d\n", d + dfs());
break;
}
return 0;
}
迷障
#include<>
#include<>
int cmp(const void *a,const void *b)
{
return *((int*)a)-*((int*)b);
}
int main()
{
int i,n,v,w,cnt;
double now;
int as[109],cas;
printf("测试数据的组数:\n");
scanf("%d",&cas);
while( cas-- )
{
printf("全能药水的种数和体积:\n");
scanf("%d%d",&n,&v);
printf("解药的最大浓度:\n");
scanf("%d",&w);
now=0;
cnt=0;
for( i=0; i<n; i++ )
{
printf("第%d种药水的浓度:\n",i+1);
scanf("%d",as+i);
}
qsort(as,n,sizeof(as[0]),cmp);
for( i=0; i<n; i++ )
{
if( now+as[i] > (cnt+1)*w )
break;
else
now+=as[i],cnt++;
}
if( cnt )
now=now/cnt/100;
printf("Output:\n");
printf("解药的最大体积解药的浓度:\n");
printf("%d %.2lf\n",cnt*v,now);
printf("\n");
}
return 0;
}
[2352]求上网
#include <>
int main()
{
int n, i;
double x[100], y[100], r[100], a, b;
printf("请输入WIFI热点的个数n:\n");
scanf("%d", &n);
while (n!= EOF, n)
{
printf("请输入x,y,r:\n");
for (i = 0; i < n; i++)
scanf("%lf%lf%lf", &x[i], &y[i], &r[i]);
printf("请输入a,b:\n");
scanf("%lf%lf", &a, &b);
for (i = 0; i < n; i++)
{
if ((a - x[i]) * (a - x[i]) + (b - y[i]) * (b - y[i]) <= r[i]
* r[i])
break;
}
printf("Output:\n");
puts(i < n ? "YES" : "NO");
break;
}
return 0;
}
【1175】计算温度
#include <>
#include <>
#define PI 3.
int main() {
float F, c;
printf("Input F: ");
scanf("%f", &F);
printf("Output:\n");
c = / * (F - 32);
printf("%.2f\n", c);
return 0;
}
[1155]简单计算
#include <>
int main() {
double x, y, ans;
int a;
printf("Input x,a,y: ");
scanf("%lf %d %lf", &x, &a, &y);
printf("Output:\n");
printf("The ans is ");
ans = x + a % 3 * (int)(x + y) % 2 / 4;
printf("%.6f\n", ans);
return 0;
}
[2141]不容易系列之一
#include<>
int main()
{
long a[21]={0,0,1};
int n,i;
for(i=3;i<=20;i++)
a[i]=(i-1)*a[i-1]+(i-1)*a[i-2];
printf("Please input the number of friends:\n");
while((scanf("%d",&n)!=EOF)&&n<=20&&n>0)
{
printf("Output:\n");
printf("%lld\n",a[n]);
break;
}
if(n>20||n<0)
{
printf("Output:\n");
printf("input error!\n");
}
return 0;
}
对a计算
#include <>
int main() {
int a;
printf("Input:\n");
scanf("%d", &a);
a += a -= a *= a;
printf("Output:\n%d\n", a);
return 0;
}
1157]简单计算
#include <>
int main() {
int a;
scanf("%d", &a);
printf("Output:\n");
a += a;
printf("%d\n", a);
return 0;
}
[1156]简单计算
#include <>
int main() {
float x, y, ans;
int a, b;
printf("Input: ");
scanf("%d %d %f %f", &a, &b, &x, &y);
ans = (float)(a + b) / 2 + (int)x % (int)y;
printf("The ans is %.6f\n", ans);
return 0;
}
粗心的小明
#include <>
int a,b;
void run()
{
int c,k;
c=a+b;
printf("\nOutput:\nthe right answer is:\n");
printf("%d ",c);f, x2=%.4f\n", ans0, ans1);
} else if (delta == 0) {
ans0 = (-b) / * a);
printf("x=%.4f\n", ans0);
} else {
printf("no answer\n");
}
return 0;
}
[1189]输入任一点的坐标,求该点的建筑高度(塔外的高度为0)
#include <>
int main() {
int h = 10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2;
float x,y,d1,d2,d3,d4;
printf("Input:\n请输入座标:");
scanf("%f %f", &x, &y); /*求该点到各中心点的距离*/
d1=(x-x1) * (x-x1)+(y-y1) * (y-y1);
d2=(x-x2) * (x-x2)+(y-y2) * (y-y2);
d3=(x-x3) * (x-x3)+(y-y3) * (y-y3);
d4=(x-x4) * (x-x4)+(y-y4) * (y-y4);
if (d1>1 && d2>1 && d3>1 && d4>1) h=0; /*判定该点是不是在塔外*/
printf("Output:\n该点建筑物高度为:%.2f\n", h + .0);
return 0;
}
[2060] 点的距离
#include <>
#include <>
int main() {
int t;
int ax, ay, bx, by;
printf("Plseae input ax,ay bx,by:");
scanf("%d,%d %d,%d",&ax,&ay,&bx,&by);
printf("Output:\nThe distance from a to b is:%.2f.\n",sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by)));
return 0;
}
[1159]运算符的利用
#include <>
int main() {
int a;
printf("Input: ");
scanf("%d", &a);
printf("Output:\n");
a *= 2 + 3;
printf("%d\n", a);
return 0;
}
【1158】运算符的运用
#include <>
int main() {
int a;
printf("Input: ");
scanf("%d", &a);
printf("Output:\n");
a -= 2;
printf("%d\n", a);
return 0;
}
[1160]运算符的运用
#include <>
int main() {
int a;
printf("Input: ");
scanf("%d", &a);
printf("Output:\n");
a /= a + a;
printf("%d\n", a);
return 0;
}
【1161】运算符的利用
#include <>
int main() {
int a, n;
printf("Input a,n: ");
scanf("%d %d", &a, &n);
printf("Output:\n");
a %= (n %= 2);
printf("%d\n", a);
return 0;
}
【1162】运算符的利用
#include <>
int main() {
int a;
printf("Input: ");
scanf("%d", &a);
printf("Output:\n");
a += a -= a *= a;
printf("%d\n", a);
return 0;
}
【1153】进制转化
#include <>
int main() {
int n;
printf("Input: ");
scanf("%d", &n);
printf("Output:\n");
if (n < 0) {
printf("-%o -%x\n", -n, -n);
} else {
printf("%o %x\n", n, n);
}
return 0;
}
处置一个数字的每一名
#include ""
#include ""
{
long a,b,c,d,e,x;
printf("Please input a number:\n"); scanf("%ld",&x);
a=x/10000;/*
分解出万位
*/
b=x%10000/1000;/*
分解出千位
*/
c=x%1000/100;/*
分解出百位
*/
d=x%100/10;/*
*/
e=x%10;/*
分解出个位
*/
printf("Output:\n");
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
else if (e!=0) printf(" there are 1,%ld\n",e);
}
四舍五入
#include<>
int main()
{
double num;
int n;
printf("Please input num and n: \n");
scanf("%lf,%d",&num,&n);
printf("Output:\n");
printf("%.*f\n",n,num);
return 0;
}
输入三角形的三边长a、b、c(边长能够是小数),求三角形面积area,并输出#include <>
#include <>
int main(void)
{
double side1, side2, side3, circle, area;
printf("please input triange sides:");
scanf("%lf,%lf,%lf", &side1, &side2, &side3);
printf("Output:\n");
if (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1) {
circle = (side1 + side2 + side3) / 2;
area = sqrt(circle * (circle - side1) * (circle - side2) * (circle - side3));
printf("area=%.2f\n", area);
}
else
{
printf("data error\n");
}
return 0;
}
输入x,y两个整数,输出其中较大的数。
#include <>
int main(void)
{
int number1, number2, max;
printf("please input x,y:");
scanf("%d,%d", &number1, &number2);
if (number1 > number2)
{
max = number1;
}
else
{
max = number2;
}
printf("Output:\n%d is bigger\n", max);
return 0;
}
输入月份,打印2003年该月有几天。
当输入的月份超范围时,应显示“Invalid month input”。
#include <>
int main(void)
{
int month, day;
printf("please input the month number:");
scanf("%d", &month); switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = 28;
break;
default:
day = 0;
break;
}
printf("Output:\n");
if (day == 0)
{
printf("Invalid month input !\n");
}
else
{
printf("2003.%d has %d days.\n", month, day);
}
return 0;
}
【1200】测定一串字符的英文字母,空格,数字和其他字符的个数#include <>
#include <>
int main() {
char c;
int letter, space, digit, other;
printf("Input: ");
letter = 0; space = 0; digit = 0; other = 0;
while ((c = getchar()) != '\n') {
if (('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'))
letter++;
else if (c == ' ')
space++;
else if ('0' <= c && c <= '9')
digit++;
else
other++;
}
printf("Output:\n");
printf("%d %d %d %d\n", letter, space, digit, other);
return 0;
}
企业发放奖金
#include""
#include""
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
printf("Please Input lr\n");
scanf("%ld",&i);
bonus1=100000*;
bonus2=bonus1+100000*;
bonus4=bonus2+200000*;
bonus6=bonus4+200000*;
bonus10=bonus6+400000*;
if(i<=100000)
bonus=i*;
else if(i<=200000)
bonus=bonus1+(i-100000)*;
else if(i<=400000)
bonus=bonus2+(i-200000)*;
else if(i<=600000)
bonus=bonus4+(i-400000)*;
else if(i<=1000000)
bonus=bonus6+(i-600000)*;
else
bonus=bonus10+(i-1000000)*;
printf("Output:\nbonus=%d\n",bonus); }
从键盘输入3个整数,输出绝对值最大的数#include <>
#include <>
int main(void)
{
int number1, number2, number3, max;
printf("Input 3 numbers: ");
scanf("%d,%d,%d", &number1, &number2, &number3);
if (abs(number1) > abs(number2))
{
max = number1;
}
else
{
max = number2;
}
if (abs(max) < abs(number3))
{
max = number3;
}
printf("Output:\nThe number with maximum absolute value is %d.\n", max);
return 0;
}
输入两个整数,若是相等输出yes ,不然输出no
#include <>
int main(void)
{
int number1, number2;
printf("please input x y:");
scanf("%d %d", &number1, &number2);
printf("Output:");
if (number1 == number2)
{
printf("Yes.");
}
else
{
printf("No.");
}
printf("\n");
return 0;
}
[2135] 最小公倍数
#include<>
int main()
{
int a,b,k,t,i;
printf("Please input a and b:");
scanf("%d %d",&a,&b);
if(a>1000||a<=0||b>1000||b<=0)
{
printf("Output:\nInput error!\n");
return 0;
}
else
{
if(a<b)
{
k=a;
a=b;
b=k;
}
t=a*b;
while(b!=0)
{
i=a%b;
a=b;
b=i;
}
printf("Output:");
printf("%d\n",t/a);
return 0;}
}
已知某银行整存整取存款不同期限的年息利率别离为,计算利息#include <>
void main()
{
int i, x, money;
double rate;
double array[5] = {, , , , };
printf("Input:\nPlease input benjin,cunqi:\n");
scanf("%d,%d", &money, &x);
if(money<0)
{
printf("\nOutput:\nThe Money is Invalid!\n");
return;
}
i = x;
if (x == 5)
{
i = 4;
}
else if (x == 8)
{
i = 5;
}
rate = money * array[i - 1] * x / 100;
printf("\nOutput:\nlixi = %.2f yuan!\n", rate); }
计算一年的第几天
#include ""
#include ""
main()
{
int day,month,year,sum,leap;
printf("Please input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month) /*
先计算某月以前月份的总天数
*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*
再加上某天的天数
*/
if(year%400==0||(year%4==0&&year%100!=0)) /*
判定是不是闰年
*/
leap=1;
else
leap=0;
if(leap==1&&month>2) /*
若是是闰年且月份大
于
2,
总天数应该加一天
*/
sum++;
printf("Output:\nIt is the %dth day.\n",sum); }
请依照输入的利润计算员工的薪水
#include <>
int main(void)
{
int profit;
double rate = 500; printf("Input profit: "); scanf("%d", &profit);
if (profit <= 1000)
{
;
}
else if (profit <= 2000) {
rate += profit * ;
}
else if (profit <= 5000) {
rate += profit * ;
}
else if (profit <= 10000) {
rate += profit * ;
}
else
{。