谭浩强老师C语言第五版第五章(上)

article/2025/8/20 6:50:21

本文涉及字符宽度,暂不做讲解,不懂留言

仅代表个人看法

如有侵权请说明

题目1:请画出例 5.6 中给出的3个程序段的流程图。

程序如下1、

#include <stdio.h>
int main()
{
    int i, j, n = 0;
    for (i = 1; i <= 4; i++) 
        for (j = 1; j <= 5; j++, n++)
        {
            if (n % 5 == 0)
                printf("\n"); 
            printf("%d\t", i * j);
        }
    printf("\n");
    return 0;
}

2、

#include <stdio.h>
int main()
{
    int i, j, n = 0;
    for (i = 1; i <= 4; i++)
        for (j = 1; j <= 5; j++, n++)
        {
            if (n % 5 == 0)
                printf("\n"); //控制在输出5个数据后换行
            if (i == 3 && j == 1)
                break; //遇到第3行第1列,结束内循环
            printf("%d\t", i * j);
        }
    printf("\n");
    return 0;
}
3、#include <stdio.h>
int main()
{
    int i, j, n = 0;
    for (i = 1; i <= 4; i++)
        for (j = 1; j <= 5; j++, n++)
        {
            if (n % 5 == 0)
                printf("\n"); //控制在输出5个数据后换行
            if (i == 3 && j == 1)
                continue; //遇到第3行第1列,终止本次内循环
            printf("%d\t", i * j);
        }
    printf("\n");
    return 0;
}

复制请说明

 

题目2:请补充例 5.7 程序,分别统计当" fabs(t)>=1e-6"和"fabs(t)>=1e-8" 时执行循环体的次数。

解:
 
 根据本题要求,分别统计当 fabs(t)>=1e-6 和 fabs(t)>=1e-8 时,执行循环体的次数。

(1)采用fabs(t)>=le-6作为循环终止条件的程序补充修改如下∶

 #include <stdio.h>
#include <math.h> 
int main()
{
    int sign = 1, count = 0;              
    double pi = 0.0, n = 1.0, term = 1.0; 
    while (fabs(term) >= 1e-6)              
    {
        pi = pi + term;     
        n = n + 2;        
        sign = -sign;     
        term = sign / n; 
        count++;        
    }
    pi = pi * 4;                 
    printf("pi=%10.8f\n", pi);     
    printf("count=%d\n", count); 
    return 0;
}

采用fabs(t)>= 1e-8作为循环终止条件的程序, 

#include <stdio.h>
#include <math.h> 
int main()
{
    int sign = 1, count = 0;              
    double pi = 0.0, n = 1.0, term = 1.0; 
    while (fabs(term) >= 1e-8)
    {
        pi = pi + term;     
        n = n + 2;        
        sign = -sign;     
        term = sign / n; 
        count++;        
    }
    pi = pi * 4;                 
    printf("pi=%10.8f\n", pi);     
    printf("count=%d\n", count); 
    return 0;
}

题目3:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。

解:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int main(){int p, r, n, m, temp;printf("请输入两个正整数n.m∶");scanf("%d,%d,", &n, &m);if (n < m){temp = n;n = m;m = temp;}p = n * m;while (m != 0){r = n % m;n = m;m = r;}printf("它们的最大公约数为∶%d\n", n);printf("它们的最小公倍数为∶%d\n", p / n);return 0;}
复制请说明
 

题目4:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数

include <stdio.h>
int main()
{
    char c;
    int letters = 0, space = 0, digit = 0, other = 0;
    printf("请输人一行字符:\n");
    while ((c = getchar()) != '\n')
        if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
            letters++;
        else if (c == ' ')
            space++;
        else if (c >= '0' && c <= '9')
            digit++;
        else
            other++;
    printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n", letters, space, digit, other);
    return 0;
}

题目5:求 Sn=a+aa+aaa+⋯+aa…a⏞n个a 之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如:2+22+222+2222+22222 (此时 n=5)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int a, n, i = 1, sn = 0, tn = 0;
    printf("a,n=:");
    scanf("%d, %d", &a, &n);
    while (i <= n)
    {
        tn = tn + a;  
        sn = sn + tn; 
        a = a * 10;
        ++i;
    }
    printf("a十aa十aa十...=%d\n", sn);
    return 0;
}

题目6:求 ∑n=120n! (即求1!+2!+3!+4!+…+20!)。

#include <stdio.h>
int main()
{
    double s = 0, t = 1;
    int n;
    for (n = 1; n <= 20; n++)
    {
        t = t * n;
        s = s + t;
    }
    printf("1!+2!+...+20!=%22.15e\n", s);
    return 0;
}

注意(s 不应定义为 int 型或 long 型,因为在使用 Turbo C 或 Turbo C++ 等编译系统时,int 型数据在内存占 2个字节,而整数的范围为-32768~32767,long 数据在内存占 4 个字节,整数的范围为 -21亿~21亿。用Visual C++ 6.0 时,int 型和 long 型数据在内存都占4 个字节,数据的范围为-21亿~21 亿。无法容纳求得的结果。今将 s 定义为 double 型,以得到更多的精度。在输出时,用 22.15e 格式,使数据宽度为 22,数字部分中小数位数为15位。 )-------参考谭浩强老师C语言程序设计(第五版)

题目7:求 
 ∑k=1100k+∑k=150k2+∑k=1101k 。

#include <stdio.h>
int main()
{
    int nl = 100, n2 = 50, n3 = 10;
    double k, s1 = 0, s2 = 0, s3 = 0;
    for (k = 1; k <= nl; k++) 
    {
        s1 = s1 + k;
    }
    for (k = 1; k <= n2; k++)
    {
        s2 = s2 + k * k;
    }
    for (k = 1; k <= n3; k++) 
    {
        s3 = s3 + 1 / k;
    }
    printf("sum=%15.6f\n", s1 + s2 + s3);
    return 0;
}

题目8:输出所有的"水仙花数",所谓"水仙花数"是指—个 3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为 153=13+53+33 。

#include <stdio.h>
int main()
{
    int i, j, k, n;
    printf("parcissus numbers are ");
    for (n = 100; n < 1000; n++)
    {
        i = n / 100;
        j = n / 10 - i * 10;
        k = n % 10;
        if (n == i * i * i + j * j * j + k * k * k)
            printf("%d ", n);
    }
    printf("\n");
    return 0;
}

结果:

复制请说明

 

 

题目9:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1,2,3,而 6=1+2+3 ,因此 6 是"完数"。编程序找出 1000 之内的所有完数,并按下面格式输出其因子

6 its factors are 1,2,3

方法一

#include <stdio.h>
#define M 1000 
int main()
{
    int k1, k2, k3, k4, k5, k6, k7, k8, k9, k10;
    int i, a, n, s;
    for (a = 2; a <= M; a++) 
    {
        n = 0; 
        s = a; 
        for (i = 1; i < a; i++) 
            if (a % i == 0) 
            {
                n++;
                s = s - i; 
                switch (n) 
                {
                case 1:
                    k1 = i; 
                    break;
                case 2:
                    k2 = i; 
                    break;
                case 3:
                    k3 = i; 
                    break;
                case 4:
                    k4 = i; 
                    break;
                case 5:
                    k5 = i; 
                    break;
                case 6:
                    k6 = i;
                    break;
                case 7:
                    k7 = i; 
                    break;
                case 8:
                    k8 = i; 
                    break;
                case 9:
                    k9 = i; 
                    break;
                case 10:
                    k10 = i; 
                    break;
                }
            }
        if (s == 0)
        {
            printf("%d ,Its factors are", a);
            if (n > 1)
                printf("%d,%d", k1, k2); 
            if (n > 2)
                printf(",%d", k3); 
            if (n > 3)
                printf(",%d", k4); 
            if (n > 4)
                printf(",%d", k5); 
            if (n > 5)
                printf(",%d", k6);
            if (n > 6)
                printf(",%d", k7);
            if (n > 7)
                printf(",%d", k8);
            if (n > 8)
                printf(",%d", k9);
            if (n > 9)
                printf(",%d", k10);
            printf("\n");
        }
    }
    return 0;
}

方法二

#include <stdio.h>
int main()
{
    int m, s, i;
    for (m = 2; m < 1000; m++)
    {
        s = 0;
        for (i = 1; i < m; i++)
            if ((m % i) == 0)
                s = s + i;
        if (s == m)
        {
            printf("%d,its factors are", m);
            for (i = 1; i < m; i++)
                if (m % i == 0)
                    printf("%d ", i);
            printf("\n");
        }
    }
    return 0;
}
 

 

 

本文遵守Creative Commons协议,侵权必究

如有转载请说明出处

谢谢观看与点赞


http://chatgpt.dhexx.cn/article/NURjHvTM.shtml

相关文章

谭浩强C语言程序设计(1-3章代码学习)

谭浩强C语言程序设计 参考书 C语言学习笔记记录&#xff0c;学习为主&#xff0c;新手小白入门 我所用的C语言在线编译器&#xff1a;lightly在线编译工具 可新建工程 谭浩强C语言程序设计书籍所包含的代码示例加注释说明如下&#xff1a; /*笔记记录者&#xff1a;xy;学习教…

谭浩强C语言第九章知识总结

第九章 shyu 结构体&#xff1a;用户自定义的数据类型 如&#xff1a;在描述一个学生的相关信息时&#xff0c;需要整型变量来记录学号&#xff0c;字符数组来记录名字&#xff0c;等等&#xff0c;物品们可以通过定义结构体改变变量的数据类型&#xff0c;把这些信息整成一…

谭浩强C语言第七章知识总结

第七章 定义函数 定义没有参数的函数&#xff0c; 类型名 函数名&#xff08;&#xff09; 类型名 函数名&#xff08;void&#xff09; { { 函数体 或 函数体 } …

C语言 谭浩强 题目 -第六章

文章目录 笔记字符数组字符数组输出字符串处理函数输入字符串的函数 gets&#xff08;&#xff09;字符串连接函数--strcat字符串赋值函数--strcpy字符串比较函数---strcmp测字符串长度的函数--strlen转换为大小写的函数 EG 1EG 2EG 3 排序 冒泡排序 不用函数EG 4EG 5EG 6EG 7E…

C语言 谭浩强 题目 -第八章

文章目录 笔记通过指针引用数组用数组名作函数参数以变量名和数组名作为函数参数的比较 例题【例8.2】【例8.6】【例8.3】【例 8.4】【例 8.5】【例 8.6】【例8.7】【例8.8】【例8.9】【例 8.10】选择法起泡法 【例 8.11】【例 8.12】【例 8.13】【例8.30】 用指向数组的指针作…

C语言 谭浩强 题目 -第七章

文章目录 笔记函数参数函数调用返回值函数的嵌套函数的递归数组作为函数参数多维数组名作函数参数局部变量和全局变量全局变量 变量的存储方式和生存期自动变量(auto变量)static静态局部变量寄存器变量(register变量) 全局变量在一个文件内扩展外部变量的作用域将外部变量的作用…

【C语言】谭浩强

1.分支选择结构 #include<stdio.h> int main(){ char grade; scanf(“%c”,&grade); printf(“Your score:”); switch(grade) { case’A’:printf(“85~100\n”);break; case’B’:printf(“70~84\n”);break; case’C’:printf(“60~69\n”);break; case’D’:prin…

C语言 谭浩强第五版 课后习题解答

第一章 1.什么是程序?什么是程序设计? 程序&#xff1a;就是一组能识别和执行的指令&#xff0c;每一条指令使计算机执行特定的操作 程序设计&#xff1a;是指从确定任务到得到结果、写出文档的全过程 2.为什么需要计算机语言?高级语言有哪些特点? 为什么需要计算机语言&am…

谭浩强c语言课后习题(更新中)

1.第三章 纯代公式题 #include<stdio.h>int main() {float p1.07; //第一年倍数for (int i 1; i < 10; i) //只用循环了9次&#xff0c;因为是从第一年开始{p p * 1.07;}printf("%f%%%",p*100); }第2题也是代进公式即可 其实也是代给出的公式&#xff0…

C语言学习笔记(C程序设计-谭浩强)

入门&#xff1a; 计算机程序&#xff1a; 一组计算机能够识别和执行的指令。计算机的每一个操作都是根据指令进行的&#xff0c;计算机的一切操作都是由程序控制的 计算机指令&#xff1a;指挥机器工作的指示和命令。 指令包含操作码和操作数&#xff0c;操作码决定要完成的…

清风数学建模笔记--熵权法

是一种可以客观赋权的方法&#xff08;我们可以从数据中查看权重&#xff09; 依据的原理&#xff1a;指标的变异程度越小&#xff0c;所反映的信息量也越少&#xff0c;其对应的权值也应该越低。 本文借鉴了数学建模清风老师的课件与视频&#xff0c;如果大家发现文章中有不正…

c语言计算文本信息熵,C语言求信息熵,条件熵,联合熵

C语言求信息熵,条件熵,联合熵 (3页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 11.90 积分 #include#include#define u 20int i,j,n,m;float H_X,H_Y,H_XY,H_XpY,Pypx[u][u],Px[u],H_YpX,Py[u],…

谭浩强C语言笔记

文章目录 谭浩强C语言笔记1.C语言基础知识1.常量和变量1.1入门程序1.2 常量1.2.1 整型常量1.2.2 实型&#xff08;浮点型&#xff09;常量1.2.3 字符常量1.2.4 字符串常量1.2.5 符号常量 1.3 变量1.4 常变量 2.标识符和关键字2.1 标识符2.2 关键字2.3 小习题 3. 基本数据类型3.…

天池比赛总结1

这次参加天池的一场比赛 先把数据读取了如下 接下来准备使用YOLO框出图片中的字符&#xff0c;然后进行识别

比赛总结+近期总结

比赛总结&#xff1a; 这次比赛没考好 20(没加高精度)0&#xff08;文件输出写错&#xff09;1000120 T1&#xff1a;这一题的方法是分解质因数高精度 T2&#xff1a;明显就是一道spfa的题嘛 T3&#xff1a;强大的四维DP&#xff08;我的神啊&#xff01;&#xff09; T4&#…

计算机课件比赛总结,课件制作比赛活动总结

【www.gz85.com - 投篮比赛活动工作总结】 课件制作比赛&#xff0c;是对计算机多媒体等辅助手段的一次检阅&#xff0c;也有力地促进了制作多媒体课件技艺的提高。下面是小编为您整理的“课件制作比赛活动总结”&#xff0c;仅供参考&#xff0c;希望您喜欢&#xff01;更多详…

2018年全国邀请赛(江苏) 比赛总结

先吐槽一下中矿大。。。周六在食堂吃的午饭&#xff0c;肉菜一个鱼一个辣土豆炒牛肉&#xff0c;对于对鱼过敏又感冒比较严重的我来说。。。&#xff08;然后再也没去食堂吃饭&#xff09; 南湖校区大是真大&#xff0c;风景也不错&#xff0c;就是门口离体育馆有点远。。。&a…

比赛总结

比赛总结 比赛总结-a5165.png 初赛终于结束了&#xff0c;头一次如此投入去打比赛&#xff0c;这一个多月以来真是痛并快乐着。最大的感悟是&#xff1a;构造线下验证集并没有什么用&#xff0c;做了一堆工作还不如一个leak。首先取得这个成绩算是给自己一个交代了&#xff0c;…

关于全国大学生软件测试大赛总结与反思

关于全国大学生软件测试大赛总结与反思 文章目录 一、软件测试大赛简介二、可能出现的错误三、个人总结与反思四、谈谈软件测试工程师1、测试的三个阶段2、就业优势3、就业要求4、参考薪资 一、软件测试大赛简介 由教育部软件工程专业教学指导委员会、全国高等院校计算机基础教…

【赛后总结】第十三届服务外包创新创业大赛总结——A14

目录 前言组队&#xff06;选题分工&项目推进提交材料&项目答辩区域赛初赛区域赛决赛全国总决赛 写在最后 前言 先摆两个参赛视频 初赛视频 决赛视频 比赛已经过去几个月了&#xff0c;也算是想起来这个比赛可以写一个总结了。在历时8个月左右的时间之后&#xff0c;我…