应数计算机程序设计(C语言)实验_c语言程序设计实验

其他范文 时间:2020-02-27 04:05:41 收藏本文下载本文
【www.daodoc.com - 其他范文】

应数计算机程序设计(C语言)实验由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序设计实验”。

问题 A: 问候世界

时间限制: 1 Sec 内存限制: 2 MB 题目描述

输出:Hello world

输入

输出

Hello world

样例输入 样例输出

Hello world

提示 Append Code #include #include

int main(){

printf(“Hello worldn”);

return 0;}

问题 B: Hello world!时间限制: 1 Sec 内存限制: 2 MB 题目描述

Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。

输入

输出

请输出: Hello Da_min, Hello Er_min, Hello Xiao_ming!

样例输入 样例输出

Hello Da_min, Hello Er_min, Hello Xiao_ming!

提示

请注意换行符

Append Code #include #include

int main(){

printf(“Hello Da_min,nHello Er_min,nHello Xiao_ming!n”);

return 0;}

问题 C: I/O练习

时间限制: 1 Sec 内存限制: 2 MB 题目描述

I/O是Input/Output的缩写,是“输入与输出”的意思。从键盘输入一个整数,然后输出这个整数。

输入

一个整数,在int类型的表示范围内。

输出

输入的整数。

样例输入

样例输出提示 Append Code #include #include

int main(){ int n;scanf(“%d”,&n);printf(“%dn”,n);}

问题 A: 货币兑换

时间限制: 1 Sec 内存限制: 2 MB 题目描述

给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。要计算的外币有三种:美元、欧元、日元。

输入

输入有三行。

第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。汇率浮动范围为(0,10000)。第二行为外币金额x,第三行为人民币金额y。x,y均为整数,且0

输出

输出为两行。

第一行是金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。第二行是金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。所有金额精确到小数点后两位。样例输入

668.5200 908.0685 7.9852 1500 1500

样例输出

10027.80 13621.03 119.78 224.38 165.19 18784.75

提示

了解浮点数据类型的精确度和输出控制。

Append Code

#include #include

int main(){

double a,b,c;

double x,y;

scanf(“%lf%lf%lf/n”,&a,&b,&c);

scanf(“%lf”,&x);

scanf(“%lf”,&y);

printf(“%.2lf %.2lf %.2lfn”,x*0.01*a, x*0.01*b, x*0.01*c);

printf(“%.2lf %.2lf %.2lfn”,y/a*100, y/b*100, y/c*100);

return 0;}

问题 B: 求字符的值 时间限制: 1 Sec 内存限制: 2 MB 题目描述

从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。

输入

输入为3个字符。

输出

输出为3行。

每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。

样例输入

0 A

样例输出

048 060 030 032 040 020 065 101 041

提示

了解字符值的存储和整型的关系。

Append Code #include #include

int main(){

char a,b,c;

scanf(“%c%c%c”,&a,&b,&c);

printf(“%.3d %.3o %.3xn”,a,a,a);

printf(“%.3d %.3o %.3xn”,b,b,b);

printf(“%.3d %.3o %.3xn”,c,c,c);

return 0;}

问题 C: 奇数还是偶数?

时间限制: 1 Sec 内存限制: 2 MB 题目描述

输入一个整数,判读它是奇数还是偶数。

输入

输入只有一行,为一个100以内的正整数。

输出

输出为一行。

若输入为偶数则输出“even”,奇数输出“odd”。

样例输入

样例输出

even 提示

用整数运算可以解决,练习“?:”表达式。

Append Code

#include #include

int main(){

int a;

scanf(“%d”,&a);

if(a>=0&&a

if(a%2==0)printf(“even”);

else

printf(“odd”);

return 0;} 问题 A: 判断是否是元音字母

时间限制: 1 Sec 内存限制: 2 MB 题目描述

输入一个英文字母,判断是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U

输入

输入一个英文字母

输出

是元音字母,输出“yes”,否则输出“no”,行尾没有回车。

样例输入 A

样例输出

yes

提示 Append Code #include #include

void main(){

char c;

scanf(“%c”,&c);

if((c>='a'&&c='A'&&c

if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'||c=='a'||c=='e'||c=='i'||c=='o'||c=='u')

printf(“yes”);

else printf(“no”);

return 0;

} }

问题 B: 你过线了吗?

时间限制: 1 Sec 内存限制: 128 MB 题目描述

经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗?

输入 输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。第二行有3个非负整数,分别表示你考的三门课程的成绩。

输出

如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。

样例输入

70 240 80 80 82

样例输出

congratulations

提示

如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

Append Code

#include #include

int main(){

int a,b,x,y,c,d,e;

scanf(“%d %d %d %d”,&a,&b,&x,&y);

scanf(“%d %d %d”,&c,&d,&e);

if(c

printf(“sorry”);

else

printf(“congratulations”);

return 0;}

问题 C: k个数的平均值

时间限制: 1 Sec 内存限制: 128 MB 题目描述

求k个数的平均值。

输入

输入分为两部分:第一个数是k,然后输入k个较小的整数。

输出

输出为这k个整数的平均值,保留3位小数。

样例输入 1 2 3

样例输出

2.000

提示

Append Code

#include int main(){ int k,i,s;double ave=0;scanf(“%d”,&k);for(i=1;i

问题 D: 多个数的平均值

时间限制: 1 Sec 内存限制: 128 MB 题目描述

求k个数的平均值。

输入

输入k个较小的整数,以EOF结尾。

输出

输出为这k个整数的平均值,保留3位小数。

样例输入2 3 样例输出

2.000

提示

Append Code

#include int main(){

int c,k,i=0;

double a,sum=0;

while(scanf(“%lf”,&a)!=EOF)

{

i++;

sum+=a;

}

printf(“%.3lf”,sum/i);}

问题 A: 分数转小数

时间限制: 1 Sec 内存限制: 2 MB

提交: 4367 解决: 2562 [提交][状态][讨论版] 题目描述

求一个分数的小数值,要求保留小数点后2位,并且进行四舍五入。输入

输入为一个分数m,格式为:“分子/分母”,也可能会有负号:“-分子/分母”。

输出

输出m的小数值,输出保留到小数后2位,根据小数点后的第3位向前四舍五入。

样例输入

-5/3

样例输出

-1.67

提示

printf函数是可以进行四舍五入的。

Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

double a,b,m;

scanf(“%lf/%lf”,&a,&b);

m=a/b;

printf(“%.2f”,m);} 问题 B: 产生等差序列 之一

时间限制: 1 Sec 内存限制: 2 MB

提交: 6534 解决: 2688 [提交][状态][讨论版] 题目描述

根据给出的初始数、公差和序列长度求等差序列。

输入

输入为一行,格式见sample。其中,start为初始数,step为公差,times为序列长度。满足,times>0,step不为0。

输出

把这个等差序列输出在一行里,序列两数之间用一个空格分隔。

样例输入

start = 1, step = 2, times = 100

样例输出3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199

提示 Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int x,y,z,n;

int a[1000];

scanf(“start = %d, step = %d, times = %d”,&x,&y,&z);

for(n=0;n

{

a[n]=x+y*n;

}

for(n=0;n

{

if(n==z-1)

printf(“%d ”,a[n]);

else

printf(“%d ”,a[n]);

} } 问题 C: 产生等差序列 之二

时间限制: 1 Sec 内存限制: 2 MB

提交: 5970 解决: 2119 [提交][状态][讨论版] 题目描述

根据给出的初始数、公差和终止条件求等差序列。

输入

输入为一行,格式见sample。其中,start为初始数,step为公差,end为终止条件。满足,step不为0,并且start和end的大小关系与step的方向一致。end不一定是序列的最后一个数。start、step和end均为int类型的范围内的整数。

输出

把这个等差序列输出在一行里,序列两数之间用一个空格分隔。

样例输入

start = 1, step = 2, end = 200

样例输出3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199

提示

根据start和step的大小关系,判断序列终止的条件可能不同。

Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int i,j,k,b,n;

int a[1000];

scanf(“start = %d, step = %d, end = %d”,&i,&j,&k);

a[0]=i;

if(j>=0)

for(n=0;a[n]

a[n+1]=i+(n+1)*j;else

for(n=0;a[n]>=k;n++)

a[n+1]=i+(n+1)*j;

for(b=0;b

if(b==n-1)

printf(“%d”,a[b]);else

printf(“%d ”,a[b]);} 问题 D: Print Graphics Problerm(II)时间限制: 1 Sec 内存限制: 16 MB

提交: 5259 解决: 2184 [提交][状态][讨论版] 题目描述

向标准输出上打印一些用ASCII字符组成的图形。

输入

输入为多个整数n,0

输出

若n为偶数,则输出一个正向的n层等腰三角形;n为奇数,则输出一个倒向的n层等腰三角形。三角形由“+”组成。任意两个图形之间有一个空行分隔,格式见sample。

样例输入4 0

样例输出

+++++++++ +++++++ +++++ +++

+

+ +++ +++++ +++++++

提示 Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int i,j,k;

int a[100];

scanf(“%d”,&a[0]);

for(i=1;i

{

scanf(“%d”,&a[i]);

if(a[i]==0)

break;

}

for(i=0;i

{

if(a[i]==0)

break;

if(a[i]%2==0)

{

for(j=1;j

{

for(k=1;k

printf(“”);

for(k=1;k

printf(“+”);

printf(“n”);

}

printf(“n”);

}

else

{

for(j=a[i];j>=1;j--)

{

for(k=a[i]-j;k>=1;k--)

printf(“”);

for(k=2*j-1;k>=1;k--)

printf(“+”);

printf(“n”);

}

printf(“n”);

}

}

return 0;} 问题 E: 它满足条件吗?

时间限制: 1 Sec 内存限制: 128 MB

提交: 3696 解决: 2040 [提交][状态][讨论版] 题目描述 需要判断给定的一个整数是否同时满足如下三个条件: 1.它是一个完全平方数。2.它是一个偶数。3.它是一个正数。

注:若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。例如:

0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 输入

一个int范围内的整数。

输出

如果输入的数字满足条件,则输出yes,否则输出no。

样例输入

样例输出

yes

提示

注意逻辑表达式判断三个条件的顺序。

如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

库函数sqrt()可以用于求一个数的平方根。

Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include #include

int main(){

int x,y;

scanf(“%d”,&x);

y=sqrt(x);

if(x==y*y&&x%2==0&&x>0)

printf(“yes”);

else

printf(“no”);

return 0;} 问题 A: 输出整数的最低两位

时间限制: 1 Sec 内存限制: 2 MB

提交: 5800 解决: 2383 [提交][状态][讨论版] 题目描述

把一个整数的最低两位打印出来,不输出整数的符号。

输入

输入为一个整数n,不会超出int类型的数据范围。输出

输出n的最低两位数字。但是,输入的数字本身不足两位时,不应当补0。如,输入为“1”,则输出为“1”。

样例输入

-102

样例输出

02

提示

printf函数可以完成补0的操作。

Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int z;

scanf(“%d”,&z);

if(z

z*=-1;

if(z

printf(“%dn”,z);

else

{

int ans=z%100;

if(ans

printf(“0”);

printf(“%dn”,ans);

}

return 0;}

问题 B: 笛卡尔平面

时间限制: 1 Sec 内存限制: 16 MB

提交: 5805 解决: 1693 [提交][状态][讨论版] 题目描述

在数学里,笛卡儿坐标系(Cartesian坐标系),也称直角坐标系,是一种正交坐标系。二维的直角坐标系是由两条相互垂直、0 点重合的数轴构成的。在平面内,任何一点的坐标 是根据数轴上对应的点的坐标设定的。

二维的直角坐标系通常由两个互相垂直的坐标轴设定,通常分别称为 x-轴 和 y-轴;两个坐标轴的相交点,称为原点,通常标记为 O,既有“零”的意思,又是英语“Origin”的首字母。每一个轴都指向一个特定的方向。这两个不同线的坐标轴,决定了一个平面,称为 xy-平面,又称为笛卡儿平面。

以笛卡尔平面上一个点的坐标(x,y)坐标为输入,输出该点是否在坐标轴上或者位于哪一个象限。

输入

输入为一行。输入的坐标x、y值都会带有1位小数,括号和逗号都是英文半角符号,逗号后面有一个空格。

输出

四个象限输出为“quadrand I”、“quadrand II”、“quadrand III”、“quadrand IV”,x-轴和y-轴输出为“x axis”和“y axis”,原点输出为“origin” 输出为以下三种:

(-1.0,-2.5)is in quadrand III(0.0, 4.8)is on the y axis(0.0, 0.0)is origin 样例输入

(-1.0,-2.5)

样例输出

(-1.0,-2.5)is in quadrand III

提示 Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

double x,y;

scanf(“(%lf, %lf)”,&x,&y);

if(x>0&&y>0)

printf(“(%.1lf, %.1lf)is in quadrand I”,x,y);

else if(x0)

printf(“(%.1lf, %.1lf)is in quadrand II”,x,y);

else if(x

printf(“(%.1lf, %.1lf)is in quadrand III”,x,y);

else if(x>0&&y

printf(“(%.1lf, %.1lf)is in quadrand IV”,x,y);

else if(x!=0&&y==0)

printf(“(%.1lf, %.1lf)is on the x axis”,x,y);

else if(x==0&&y!=0)

printf(“(%.1lf, %.1lf)is on the y axis”,x,y);

else if(x==0&&y==0)

printf(“(%.1lf, %.1lf)is origin”,x,y);

return 0;}

问题 C: Print Graphics Problerm(I)时间限制: 1 Sec 内存限制: 16 MB

提交: 2220 解决: 1439 [提交][状态][讨论版] 题目描述

向标准输出上打印一些用ASCII字符组成的图形。

输入

输入为一个整数n,0

输出一个n层等腰三角形,格式见sample。

样例输入

样例输出

+

+++

+++++ +++++++ +++++++++ 提示

推导出第i层要输出的空格和“+”与i的关系,用循环很容易完成。

Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int a,i,t;

scanf(“%d”,&a);

for(i=1;i

{

for(t=1;t

printf(“”);

for(t=1;t

printf(“+”);

printf(“n”);

} } 问题 D: 输出连续的整数序列 之一

时间限制: 1 Sec 内存限制: 128 MB

提交: 2938 解决: 1579 [提交][状态][讨论版] 题目描述

输出指定区间内的所有整数。

输入

输入只有1行,即N,N是一个int类型的数据。

输出

如果N>0,则输出[1,N]区间内的所有整数;如果N =0,则输出0;如果N

如果输出的整数多于1个,则两两之间用一个空格隔开。

样例输入

样例输出2 3 4 5 6 7 8 9 提示 Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int n,m,i;

scanf(“%d”,&n);

if(n==0)

printf(“%d”,0);

else if(n>0)

{

printf(“%d”,1);

for(i=1;i

printf(“ %d”,i+1);}

else

{

printf(“%d”,n);

for(i=n;i

printf(“ %d”,i+1);

}

return 0;} 问题 E: 输出连续的整数序列 之二

时间限制: 1 Sec 内存限制: 128 MB

提交: 3835 解决: 844 [提交][状态][讨论版] 题目描述

输出若干个连续的整数序列。

输入

输入有多行。第一行是N>0,表示后面有N行输入。

之后每行输入包含2个数据P和Q,两者之间用空格隔开,且均在int类型的表示范围内。

输出

输出N个连续的整数序列,序列两两之间用一个空行隔开。

其中第i个序列是在P和Q之间的整数,包括P和Q,且当输出的数据多于1个时,两两之间用一个空格隔开。

样例输入100 10-10 10 10

样例输出2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100-10-9-8-7-6-5-4-3-2-1 0 1 2 3 4 5 6 7 8 9 10 10 提示

当P或Q是int类型的能够表示的最大值或者最小值时,应该如何处理?

Append Code

[提交][状态][讨论版] 한국어

中文

یسراف

English

ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){

int n,m,i,a,b,e,j=1;

scanf(“%d”,&n);

i=1;

while(i

{

i++;

scanf(“%d%d”,&a,&b);

if(a>b)

{

e=a;

a=b;

b=e;

}

printf(“%d”,a);

for(j=1;j

{

printf(“ %d”,a+j);

}

printf(“nn”);

}

return 0;} Problem A: 编写函数:求三个整数的最大值(Append

Code)Time Limit: 1 Sec Memory Limit: 2 MB Submit: 5834 Solved: 2272 [Submit][Status][Web Board] Description 求三个整数的最大值。

---------------编写一个函数maxValue()求三个整数的最大值。其原型为: int maxValue(int a,int b,int c);

功能:函数的三个参数传入a,b,c的值,返回其中最大值。函数的调用格式见“Append Code”。

Input 输入三个int类型的整数,两两之间用空格隔开。

Output 输出三个整数的最大值。

Sample Input 1 2 3

Sample Output 3

HINT 参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。

Append Code append.c, append.cc,[Submit][Status][Web Board] 한국어

中文

یسراف

English ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

intmaxValue(inta,intb,intc){ if(c>=a&&c>=b){returnc;} if(a>=b&&a>=c)returna;if(b>=a&&b>=c)returnb;}

intmain(){ intx, y, z;scanf(“%d %d %d”, &x, &y, &z);printf(“%d”, maxValue(x, y, z));return0;} Problem B: 编写函数:计算分段函数(Append Code)Time Limit: 1 Sec Memory Limit: 2 MB Submit: 6176 Solved: 2797 [Submit][Status][Web Board] Description 设有函数y=f(x)定义为:

给定x的值,编程求出y的值并输出。

---------------编写函数func()和output(),其原型为: double func(double x);功能:计算f(x)并返回。int output(int n, double x)

功能:按照题意的格式输出。

函数的调用格式见“Append Code”。

Input 输入的第一个是测试样例数N,后跟N个输入为x的值。

Output 输出为N行,每行顺序与输入对应的y=f(x)的计算结果,即y的值。输出时y值保留6位小数,且不输出无意义的0。每行的格式为: case i:y=?.其中i表示测试用例编号(从1开始),?表示计算结果。

Sample Input 4-3 0.5 2.1 10.08

Sample Output case 1:y=3.case 2:y=0.841471.case 3:y=3.37061.case 4:y=30.16.HINT 参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。

Append Code append.c, append.cc,[Submit][Status][Web Board] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

double func(double x){

double y;

if(x

y=-x;

else if(x

y=sin(2*x);

else if(x

y=sqrt(x*x*x+x);

else

y=2*x+10;

return y;

}

int output(int n,double x){

printf(“case %d:y=%.6g.n”,n,x);}

int main(){

int i, cases;

double x;

scanf(“%d”, &cases);

for(i = 1;i

{

scanf(“%lf”, &x);

output(i, func(x));

}

return 0;}

Problem C: 几点几分几秒

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 3606 Solved: 1547 [Submit][Status][Web Board] Description 一天24小时,每小时60分钟,每分钟60秒。一天共有86400秒。0点0分0秒是每天的第1秒; 0点0分1秒是每天的第2秒; 0点1分0秒是每天的第61秒; 1点0分0秒是每天的第3601秒; 23点59分59秒是每天的第86400秒。你的任务是编写一个程序,把每天的第n秒转换成具体的24小时制时间(从00:00:00到23:59:59)。

Input 输入为若干整数n,表示每天的第n秒,1

Output 每行输出一个第n秒对应的具体时间,格式为“hh:mm:”。时、分、秒各占2位,不足两位要补0,如0点0分0秒为“00:00:00”。

Sample Input 1 2 61 3600 9999 86400 0

Sample Output 00:00:00 00:00:01 00:01:00 00:59:59 02:46:38 23:59:59

HINT Append Code

[Submit][Status][Web Board] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int main(){ long int n,h,m,s;for(;;){ scanf(“%ld”,&n);if(n86400)break;n=n-1;h=n/3600%60;m=n/60%60;s=n%60;printf(“%02ld:%02ld:%02ldn”,h,m,s);} return 0;} Problem D: 编写函数:求整数的位数 之一Code)

(Append Time Limit: 1 Sec Memory Limit: 2 MB Submit: 2282 Solved: 1557 [Submit][Status][Web Board] Description 输入一个十进制正整数,它共有几位数字组成?

---------------编写一个函数digits(),其原型为: int digits(int n);

功能:返回n的十进制位数。

函数的调用格式见“Append Code”。

Input 一个不超过10位的正整数num。

Output 输出num有多少位十进制数字。

Sample Input 1000

Sample Output 4

HINT 参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。

Append Code append.c, append.cc,[Submit][Status][Web Board] 한국어

中文

یسراف

English

ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include

int digits(int n){ int i=0;while(n!=0){ n=n/10;i++;} return i;}

int main(){ int num;scanf(“%d”, &num);printf(“%dn”, digits(num));} Problem A: 求矩阵的每行之和

Time Limit: 1 Sec Memory Limit: 16 MB Submit: 3723 Solved: 2107 [Submit][Status][Web Board] Description 编写一个程序,求矩阵各行元素值相加之和。其中,矩阵的元素都是很小的整数,且各行元素之和的数值不会超出int类型的表示范围。Input 输入为多行。第一行K>0,表示有K个测试用例。之后K个测试用例中,首先是两个整数0

Output 输出有K行,每个测试用例的结果占一行。每行的格式为: case i:d1 d2...dj

其中i表示测试用例的编号(从1开始),d1、d2、....、dj表示相应测试用例的各行的和,两两之间用空格隔开。

Sample Input 4 3 3 1 2 3 1 2 3 1 2 3 2 3 1 1 1 1 1 1 1 1 1 5 1 3 4 5 6 7

Sample Output case 1:6 6 6 case 2:3 3 case 3:1 case 4:3 4 5 6 7

HINT Append Code

[Submit][Status][Web Board] 한국어

中文 یسراف

English

ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include #include int main(){

int i,k,m,n,j,x,y;

int s[120];

scanf(“%d”,&k);

for(i=1;i

{

scanf(“%d %d”,&m,&n);

for(x=1;x

{

s[x]=0;

for(j=1;j

{

scanf(“%d”,&y);

s[x]=s[x]+y;

}

}

printf(“case %d:”,i);

for(x=1;x

{

if(x==1)

printf(“%d”,s[x]);

else

printf(“ %d”,s[x]);

}

printf(“n”);

} } Problem B: Print Graphics Problerm(IV)(Append

Code)Time Limit: 1 Sec Memory Limit: 16 MB Submit: 2494 Solved: 1663 [Submit][Status][Web Board] Description 向标准输出上打印一些用ASCII字符组成的图形。

---------------编写一个函数用于输出ASCII图形。用C语言实现:append.c中函数原型为 int print_graphic(int n);

用C++实现:append.cc中函数原型为 int printGraphic(int n);功能:输出n层的图形。

函数的调用格式见“Append Code”。

Input 输入为一个奇数n,1

Output 输出一个n层的空心菱形,格式见sample。

Sample Input 11

Sample Output *********** ***** ***** **** **** *** *** ** ** * * ** ** *** *** **** **** ***** ***** ***********

HINT Append Code append.c, append.cc,[Submit][Status][Web Board] 한국어

中文

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include int print_graphic(int n){

int a,b,c;

for(a=0;a

printf(“*”);

printf(“n”);

b=(n-1)/2;

for(c=0;c

{

for(a=0;a

printf(“*”);

for(a=0;a

printf(“”);

for(a=0;a

printf(“*”);

printf(“n”);

}

for(c=0;c

{

for(a=0;a

printf(“*”);

for(a=0;a

printf(“”);

for(a=0;a

printf(“*”);

printf(“n”);

}

for(a=1;a

printf(“*”);

printf(“n”);} int main(){

int num;

scanf(“%d”, &num);

print_graphic(num);

return 0;} Problem C: 浮点数的拆分

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 5185 Solved: 1571 [Submit][Status][Web Board] Description 把一个浮点数拆分成符号、整数部分和小数部分。

所有测试数据的浮点数在double范围内,其整数部分和小数部分都在int范围内。你可能会用到以下函数:

double floor(double x)返回值是小于或等于x的最大整数; double ceil(double x)返回值是大于或等于x的最小整数; 其实不用也行,如果你会用强制(显式)类型转换。Input 一个用小数点形式(即a.b)表示的浮点数x。

Output 输出x的符号、整数部分a和小数部分0.b,中间用一个空格分隔。x为负数,符号输出“-”,为正数,符号输出“+”。0的符号是“+”。x的小数部分不输出无意义的0。行尾没有回车。

Sample Input-1.00

Sample Output-1 0

HINT Append Code

[Submit][Status][Web Board] 한국어

یسراف

English

ไทย

All Copyright Reserved 2010-2011 SDUSTOJ TEAM

GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin

#include #include int main(){ double n;int a;scanf(“%lf”,&n);a=(int)n;if(n>0)printf(“+ ”);// if(n

Problem D: 寻求勾股数

Time Limit: 1 Sec Memory Limit: 2 MB Submit: 2312 Solved: 692 [Submit][Status][Web Board] Description 满足x2+y2=z2的正整数x,y和z称为一组勾股数(pythagorean triple),又称为毕达哥拉斯三元数组。现在要求你编程求指定范围内的勾股数。

Input 输入若干对数a和b,每对数占一行。0

Output 输出为多行,与上述输入一一对应。

每行输出首先输出用例编号“case i",其中i为行号,从1开始计数。

如果指定范围内有勾股数,则按照x从小到大的顺序输出每组勾股数,每组勾股数要求x

如果指定范围内没有勾股数,则输出”No pythagorean triple“。

Sample Input

下载应数计算机程序设计(C语言)实验word格式文档
下载应数计算机程序设计(C语言)实验.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文