C语言基础编程练习:从求和到排序,14个经典示例解析
C语言基础编程练习:14个经典示例解析
本教程提供了14个经典的 C 语言编程练习,涵盖了求和、循环、判断、数组、函数、随机数生成、字符串操作、排序等重要概念,并附带详细的代码示例和解释,适合 C 语言初学者学习和练习。
1. 求1+2+...+100的和cint sum = 0;int i = 1;while(i <= 100){ sum += i; i++;}printf('1+2+...+100 = %d ', sum);
2. 随意输入一个整数n,求'1—n'之间的奇数和和偶数和cint n, i, odd_sum = 0, even_sum = 0;printf('请输入一个整数n:');scanf('%d', &n);for(i = 1; i <= n; i++){ if(i % 2 == 0) even_sum += i; else odd_sum += i;}printf('1~%d之间的奇数和为%d,偶数和为%d ', n, odd_sum, even_sum);
3. 求1+2+3+4...+100的和cint sum = 0;int i;for(i = 1; i <= 100; i++){ sum += i;}printf('1+2+...+100 = %d ', sum);
4. 求n的阶乘cint n, i, factorial = 1;printf('请输入一个整数n:');scanf('%d', &n);for(i = 1; i <= n; i++){ factorial *= i;}printf('%d的阶乘为%d ', n, factorial);
5. 编程序统计并输出200以内所有能同时被7和3整除的数及其数量cint count = 0;int i;for(i = 1; i <= 200; i++){ if(i % 3 == 0 && i % 7 == 0) { printf('%d ', i); count++; }}printf(' 200以内能同时被3和7整除的数的数量为%d ', count);
6. 定义一个数组a[10],并赋初值0~9,反序输出cint a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int i;for(i = 9; i >= 0; i--){ printf('%d ', a[i]);}printf(' ');
7. 一个小组学生共10人,输入他们的成绩,计算并输出小组总成绩及平均成绩cint scores[10];int i, sum = 0;float average;for(i = 0; i < 10; i++){ printf('请输入第%d个学生的成绩:', i+1); scanf('%d', &scores[i]); sum += scores[i];}average = (float)sum / 10;printf('小组总成绩为%d,平均成绩为%.2f ', sum, average);
**8. 封装一个函数并且在主函数中进行调用,函数功能要求:随机输入2个整数作为参数,函数执行结束后返回最大值;**cint max(int a, int b){ return a > b ? a : b;}int x, y;printf('请输入两个整数:');scanf('%d%d', &x, &y);printf('%d和%d中,较大的数为%d ', x, y, max(x, y));
9. 单位转换——厘米转换英寸cfloat cm, inch;printf('请输入厘米数:');scanf('%f', &cm);inch = cm / 2.54;printf('%.2f厘米 = %.2f英寸 ', cm, inch);
10. 判断一个数是否是素数cint n, i;printf('请输入一个整数:');scanf('%d', &n);for(i = 2; i <= n/2; i++){ if(n % i == 0) { printf('%d不是素数 ', n); break; }}if(i > n/2) printf('%d是素数 ', n);
11. 反向输出字符cchar str[100];int i;printf('请输入一个字符串:');scanf('%s', str);for(i = strlen(str)-1; i >= 0; i--){ printf('%c', str[i]);}printf(' ');
12. 从1~100内随机输出5个不重复的数cint nums[100] = {0};int i, count = 0;srand(time(NULL)); //使用当前时间作为随机数种子while(count < 5){ int num = rand() % 100 + 1; if(nums[num] == 0) { printf('%d ', num); nums[num] = 1; count++; }}printf(' ');
13. 先设定8位数密码,然后使用暴力破解实现8位数密码的破解,并且把破解后的密码输出cchar password[9] = '12345678';char guess[9];int i, j, k, l, m, n, o, p;for(i = 0; i <= 9; i++){ for(j = 0; j <= 9; j++) { for(k = 0; k <= 9; k++) { for(l = 0; l <= 9; l++) { for(m = 0; m <= 9; m++) { for(n = 0; n <= 9; n++) { for(o = 0; o <= 9; o++) { for(p = 0; p <= 9; p++) { guess[0] = i + '0'; guess[1] = j + '0'; guess[2] = k + '0'; guess[3] = l + '0'; guess[4] = m + '0'; guess[5] = n + '0'; guess[6] = o + '0'; guess[7] = p + '0'; if(strcmp(password, guess) == 0) { printf('密码是%s ', guess); return 0; } } } } } } }
原文地址: https://www.cveoy.top/t/topic/oxxw 著作权归作者所有。请勿转载和采集!