应数计算机程序设计(C语言)实验.docx_第1页
应数计算机程序设计(C语言)实验.docx_第2页
应数计算机程序设计(C语言)实验.docx_第3页
应数计算机程序设计(C语言)实验.docx_第4页
应数计算机程序设计(C语言)实验.docx_第5页
已阅读5页,还剩119页未读 继续免费阅读

下载本文档

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

文档简介

问题 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类型的表示范围内。输出输入的整数。样例输入10样例输出10提示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均为整数,且0x,y10000。输出输出为两行。第一行是金额为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”。样例输入30样例输出even提示用整数运算可以解决,练习“?:”表达式。Append Code#include #include int main() int a; scanf(%d,&a); if(a=0&a=100); 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=Z) 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 80 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(ca|db|ex|c+d+ey) printf(sorry); else printf(congratulations); return 0;问题 C: k个数的平均值时间限制:1 Sec内存限制:128 MB题目描述求k个数的平均值。输入输入分为两部分:第一个数是k,然后输入k个较小的整数。输出输出为这k个整数的平均值,保留3位小数。样例输入3 1 2 3样例输出2.000提示Append Code#includeint main() int k,i,s; double ave=0; scanf(%d,&k); for(i=1;i=k;i+) scanf(%d,&s); ave+=s; ave=ave/k; printf(%.3lfn,ave);问题 D: 多个数的平均值时间限制:1 Sec内存限制:128 MB题目描述求k个数的平均值。输入输入k个较小的整数,以EOF结尾。输出输出为这k个整数的平均值,保留3位小数。样例输入1 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提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything 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为序列长度。满足,times0,step不为0。输出把这个等差序列输出在一行里,序列两数之间用一个空格分隔。样例输入start = 1, step = 2, times = 100样例输出1 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提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int main() int x,y,z,n; int a1000; scanf(start = %d, step = %d, times = %d,&x,&y,&z); for(n=0;nz;n+) an=x+y*n; for(n=0;nz;n+) if(n=z-1) printf(%d ,an); else printf(%d ,an); 问题 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样例输出1 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提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int main() int i,j,k,b,n; int a1000; scanf(start = %d, step = %d, end = %d,&i,&j,&k); a0=i; if(j=0) for(n=0;an=k;n+) an+1=i+(n+1)*j; for(b=0;bn;b+) if(b=n-1) printf(%d,ab);else printf(%d ,ab);问题 D: Print Graphics Problerm (II)时间限制:1 Sec内存限制:16 MB提交:5259解决:2184提交状态讨论版题目描述向标准输出上打印一些用ASCII字符组成的图形。输入输入为多个整数n,0n100。当n为0时结束输入。输出若n为偶数,则输出一个正向的n层等腰三角形;n为奇数,则输出一个倒向的n层等腰三角形。三角形由“+”组成。任意两个图形之间有一个空行分隔,格式见sample。样例输入5 4 0样例输出+ + + + + + + + + 提示Append Code提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int main() int i,j,k; int a100; scanf(%d,&a0); for(i=1;i100;i+) scanf(%d,&ai); if(ai=0) break ; for(i=0;i=100;i+) if(ai=0) break; if(ai%2=0) for(j=1;j=ai;j+) for(k=1;k=(ai-j);k+) printf( ); for(k=1;k=1;j-) for(k=ai-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。样例输入100样例输出yes提示注意逻辑表达式判断三个条件的顺序。如果你不会使用分支语句,同样可以使用条件运算符实现该程序。库函数sqrt()可以用于求一个数的平方根。Append Code提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything 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&x0) 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提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int main() int z; scanf(%d,&z); if(z0) z*=-1; if(z100) printf(%dn,z); else int ans=z%100; if(ans10) 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提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int main() double x,y; scanf(%lf, %lf),&x,&y); if(x0&y0) printf(%.1lf, %.1lf) is in quadrand I,x,y); else if(x0) printf(%.1lf, %.1lf) is in quadrand II,x,y); else if(x0&y0&y0) 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,0n100。输出输出一个n层等腰三角形,格式见sample。样例输入5样例输出 + + + +提示推导出第i层要输出的空格和“+”与i的关系,用循环很容易完成。Append Code提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int main() int a,i,t; scanf(%d,&a); for (i=1;i=a;i+) for (t=1;t=a-i;t+) printf( ); for (t=1;t0,则输出1,N区间内的所有整数;如果N =0,则输出0;如果N0,则输出N,-1内的所有整数。如果输出的整数多于1个,则两两之间用一个空格隔开。样例输入9样例输出1 2 3 4 5 6 7 8 9提示Append Code提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything 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 (n0) printf (%d,1); for (i=1;in;i+) printf ( %d,i+1); else printf (%d,n); for (i=n;i0,表示后面有N行输入。之后每行输入包含2个数据P和Q,两者之间用空格隔开,且均在int类型的表示范围内。输出输出N个连续的整数序列,序列两两之间用一个空行隔开。其中第i个序列是在P和Q之间的整数,包括P和Q,且当输出的数据多于1个时,两两之间用一个空格隔开。样例输入3 1 100 10 -10 10 10样例输出1 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提交状态讨论版中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything 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(ib) e=a; a=b; b=e; printf (%d,a); for (j=1;j=b-a;j+) printf ( %d,a+j); printf (nn); return 0;Problem A: 编写函数:求三个整数的最大值 (Append Code)Time Limit:1 SecMemory Limit:2 MBSubmit:5834Solved:2272SubmitStatusWeb BoardDescription求三个整数的最大值。-编写一个函数maxValue()求三个整数的最大值。其原型为:int maxValue(int a,int b,int c);功能:函数的三个参数传入a,b,c的值,返回其中最大值。函数的调用格式见“Append Code”。Input输入三个int类型的整数,两两之间用空格隔开。Output输出三个整数的最大值。Sample Input1 2 3Sample Output3HINT参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。Append Codeappend.c,append.cc,SubmitStatusWeb Board中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include int maxValue(int a,int b,int c)if(c=a&c=b)return c;if(a=b&a=c)return a;if(b=a&b=c)return b;int main()int x, y, z;scanf(%d %d %d, &x, &y, &z);printf(%d, maxValue(x, y, z);return 0;Problem B: 编写函数:计算分段函数 (Append Code)Time Limit:1 SecMemory Limit:2 MBSubmit:6176Solved:2797SubmitStatusWeb BoardDescription设有函数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 Input4 -3 0.5 2.1 10.08Sample Outputcase 1:y=3. case 2:y=0.841471. case 3:y=3.37061. case 4:y=30.16.HINT参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。Append Codeappend.c,append.cc,SubmitStatusWeb Board中文EnglishAll Copyright Reserved 2010-2011SDUSTOJTEAMGPL2.02003-2011HUSTOJ ProjectTEAMAnything about the Problems, Please Contact Admin:admin#include #include double func(double x) double y; if (x0) y=-x; else if (x1) y=sin(2*x); else if (x5) 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 = cases; i+) scanf(%lf, &x); output(i, func(x); return 0;Problem C: 几点几分几秒Time Limit:1 SecMemory Limit:2 MBSubmit:3606Solved:1547SubmitStatusWeb BoardDescription一天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=n=86400,当输入n为0时表示输入结束。Output每行输出一个第n秒对应的具体时间,格式为“hh:mm:ss”。时、分、秒各占2位,不足两位要补0,如0点0分0秒为“00:00:00”。Sample Input1 261 3600 9999 86400 0Sample Output00:00:00 00:00:0

温馨提示

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

评论

0/150

提交评论