经典基础编程题练习 下载本文

内容发布更新时间 : 2024/5/20 0:48:15星期一 下面是文章的全部内容请认真阅读。

编程题1:sizeof测试字节数 成绩: 100 / 折扣: 1

1.编写程序,测试以下类型在内存中所占空间大小: char 、 int 、 short 、 long 、 unsigned int 、 float 、 double ,输出时给出较清晰的提示信息。 本题无输入,输出结果如下: sizeof(char)=1 sizeof(int)=4 sizeof(short)=2 sizeof(long)=4

sizeof(unsigned int)=4 sizeof(float)=4 sizeof(double)=8 测试输入 期待的输出 时间限制 内存限制 以文本方式显示 1. sizeof(char)=1? 2. sizeof(int)=4? 3. sizeof(short)=2? 以文本方式显示 测试用例 0 4. sizeof(long)=4? 1. ? 5. sizeof(unsigned int)=4? 6. sizeof(float)=4? 7. sizeof(double)=8? 无限制 64M 编程题2:输入/输出练习 成绩: 100 / 折扣: 1 2. 编写程序,定义一个 int 型变量 a ,一个 float 型变量 b ,一个 double 型变量 c , a 变量初始化, b 变量赋值, c 变量的值从键盘输入,调用 printf 函数输出三个变量的值,输出时给出较清晰的提示信息。 说明:( 1 ) scanf 之前无需用 printf 给提示信息 。 ( 2 )实数的输入格式控制用 %lf 测试输入 期待的输出 时间限制内存限制 测试用以文本方式显示 1. 102.3E10? 例 0 以文本方式显示 1. a=20? 2. b=12.345000? 3. c=1023000000000.000000? 以文本方式显示 1. a=20? 2. b=12.345000? 3. c=3.120000? 无限制 64M 测试用以文本方式显示 1. 3.12? 例 1 无限制 64M 编程题3:用if语句求解分段函数

成绩: 100 / 折扣: 1 3.

分段函数求解 : 输入 x ,计算并输出 y 的值:

y=x+100 ( 当 x < 20) y= x ( 当 2 0 ≤ x ≤ 100) y=x-100 ( 当 x > 100)

测试用例的输入及输出结果如下 : 测试输入 期待的输出 时间限制内存限制 测试用以文本方式显示 1. -9? 例 0 测试用以文本方式显示 1. 78.97? 例 1 测试用以文本方式显示 1. 235.98? 例 2 以文本方式显示 1. x=-9.000000, y=91.000000? 以文本方式显示 1. x=78.970000, y=78.970000? 以文本方式显示 1. x=235.980000, y=135.980000? 无限制 64M 无限制 64M 无限制 64M 编程题4:打印每月有几天 成绩: 100 / 折扣: 0.9

4.读入一个年份和月份,打印出该月有多少天(考虑闰年),用 switch 语句实现选择结构。 说明:( 1 ) scanf 之前无需用 printf 给提示信息 。

(2)输出语句的格式控制串为\三个格式控制符对应于年月日的信息 (3)注意闰年的判断条件:年号能被400整除,或者年号能4整除但不能被100整除

测试用例的输入及输出结果如下 :

测试输入 期待的输出 时间限制无限制 无限制 无限制 内存限制64M 64M 64M 测试用例 0 测试用例 1 测试用例 2 以文本方式显示 1. 2009 10? 以文本方式显示 1. 2009 2? 以文本方式显示 1. 2008 2? 以文本方式显示 1. 2009-10-31? 以文本方式显示 1. 2009-2-28? 以文本方式显示 1. 2008-2-29? 编程题5:输出所有的3位数字的质数 成绩: 100 / 折扣: 0.9 5.

以每行 5 个的形式输出所有的 3 位数字的质数。 说明:( 1 )每个质数按 ”m” 格式输出。 ( 2 )最后一个质数后面要输出一个换行符。 无输入,输出结果如下 : 测试输入 期待的输出 时间限制内存限制 以文本方式显测试用例 示 0 1. ? 以文本方式显示 1. 101 103 107 109 113? 2. 127 131 137 139 149? 3. 151 157 163 167 173? 无限制 64M 4. 179 181 191 193 197? 5. 199 211 223 227 229? 6. 233 239 241 251 257? 7. 263 269 271 277 281? 8. 283 293 307 311 313? 9. 317 331 337 347 349? 10. 353 359 367 373 379? 11. 383 389 397 401 409? 12. 419 421 431 433 439? 13. 443 449 457 461 463? 14. 467 479 487 491 499? 15. 503 509 521 523 541? 16. 547 557 563 569 571? 17. 577 587 593 599 601? 18. 607 613 617 619 631? 19. 641 643 647 653 659? 20. 661 673 677 683 691? 21. 701 709 719 727 733? 22. 739 743 751 757 761? 23. 769 773 787 797 809? 24. 811 821 823 827 829? 25. 839 853 857 859 863? 26. 877 881 883 887 907? 27. 911 919 929 937 941? 28. 947 953 967 971 977? 29. 983 991 997? 编程题6:数列求和 成绩: 100 / 折扣: 1

6.输入一个双精度实数 x ,计算并输出下式的值,直到最后一项的绝对值小于 10 -5 ( 保留两位小数 ) , s=x-x 2 /2!+x 3/ 3!-x 4 /4! + … 说明:( 1 ) scanf 之前无需用 printf 给提示信息。 ( 2 )求和结果用 \控制输出格式。 测试用例的输入及输出结果如下 :

测试输入 期待的输出 时间限制无限制 无限制 无限制 内存限制64M 64M 64M 测试用例 0 测试用例 1 测试用例 2 以文本方式显示 以文本方式显示 1. 3.5? 1. sum=0.97? 以文本方式显示 以文本方式显示 1. 5.0? 1. sum=0.99? 以文本方式显示 以文本方式显示 1. 1? 1. sum=0.63? 编程题7:求平均值

成绩: 100 / 折扣: 1

7.

编程从键盘上输入 20 个整数,求去掉最大值和最小值以后那些元素的平均值。 说明:( 1 ) scanf 之前无需用 printf 给提示信息。 测试用例的输入及输出结果如下 :

时内间存限限制制 测试以文本方式显示 以文本方式显示 无64用1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 191. count=18,average=10.限M 例 20? 500000? 制 0 测试以文本方式显示 以文本方式显示 无64用1. 90 80 70 100 50 60 70 100 75 85 85 90 80 70 61. count=16,average=76.限M 例5 50 60 70 80 90? 250000? 制 1 编程题8:用数组实现Fibonacci数列 成绩: 100 / 折扣: 1

8 .编程首先计算 Fibonacci 数列 1,1,2,3,5,8,13,21,...... 的前 n 项( n 不超过 40 )存入一维整型数组 f 中,再按 d 的格式输出每项的值,每 6 项换一行。 说明:( 1 )输入数列项 n ,在scanf前不能用printf输出提示信息. 测试输入 期待的输出 时间内存限限制制 无限64M 制 无限64M 制 测试输入 期待的输出 测试以文本方式显以文本方式显示 用例 示 1. 1 1 2 3 5? 0 1. 5? 测试以文本方式显以文本方式显示 1. 1 1 2 3 5 8? 用例 示 1 1. 10? 2. 13 21 34 55? 编程题9:删除所有相同值的元素 成绩: 100 / 折扣: 1

9 .从键盘输入整型一维数组中 a 中的各元素(以元素 0 结束, 0 是最后一个有效果元素,元素个数不超过 20 个),再输入一个待删除的整数。先输出删除前的所有数组元素。从数组中删除所有的元素值等于该整数的元素,如果元素不存在,则输出提示信息: does not exist,no operating! 否则输出删除后的所有数组元素 说明:( 1 )数组的定义: int a[20];

( 2 )应该用一个变量存储实际有效果的元素个数(含 0 )

( 3 )元素的输出用 ] 的格式控制

( 4 ) scanf 之前不能用 printf 输出提示信息 测试输入 期待的输出 时间内存限限制制 测试以文本方式显示 1. 2 3 4 5 3 2 0? 用例 0 2. 4? 以文本方式显示 1. Before delete,elements are:? 2. 2 3 4 5 3 2 0? 3. After delete,elements are:? 4. 2 3 5 3 2 0? 以文本方式显示 1. Before delete,elements are:? 2. 2 3 4 2 0? 3. does not exist,no operating!? 以文本方式显示 1. Before delete,elements are:? 2. 2 3 3 4 3 5 3 7 0? 3. After delete,elements are:? 4. 2 4 5 7 0? 无限64M 制 测试以文本方式显示 1. 2 3 4 2 0? 用例 1 2. 5? 无限64M 制 测试以文本方式显示 1. 2 3 3 4 3 5 3 7 0? 用例 2 2. 3? 无限64M 制 编程题10:动态一维数组的定义与实现 成绩: 100 / 折扣: 1

10 .在 main ()函数中定义指针变量 int *array 用来实现动态一维数组,数组的元素个数由从键盘输入的整数 n 决定;分别用两个函数实现产生数组的元素及输出元素,最后释放动态数组空间 说明: ① 定义函数 void create ( int a[ ] , int n ),生成数组 a 中 n 个元素 , 元素值依次为 1,2,3…n ② 定义函数 void print ( int a[ ] , int n ),输出元素的语句为: printf(\,输出所有的元素结束后用printf(\换行。

测试输入 期待的输出 时间限制无限制 无限制 内存限制64M 64M 测试用例 0 测试用例 1 以文本方式显示 以文本方式显示 1. 5? 1. 1,2,3,4,5,? 以文本方式显示 以文本方式显示 1. 8? 1. 1,2,3,4,5,6,7,8,? 编程题11:指针形参的使用,找数组中的最大最小元素值

成绩: 100 / 折扣: 1 11 .

编写程序,主函数中定义数组 int array[10]={23,45,90,-9,43,90,4,2,-9}; ,调用函数 Find ,在该函数中通过一趟循环,找到数组中的第 1 个最大元素及对应下标,第 1 个最小元素及对应下标。 说明:( 1 )查找函数的原型为: void Find(int *a,int n,int *max,int *maxPos,int *min,int *minPos); 形参 a 用来接受主函数中的数组名,最后四个指针形参用于通过间接访问求最大