首页 > 其他分享 >C语言作业四

C语言作业四

时间:2024-12-01 17:33:21浏览次数:13  
标签:初始化 digit ch ++ 作业 C语言 数组 printf

1.

2.        5335

swap1函数接受一个整型数组c[]作为参数,然后交换数组中的第一个和第二个元素的值

调用swap2(b[0], b[1]);后,b[0]b[1]的值会在函数内部被交换,但是由于swap2函数内部的交换并不会影响到b数组的实际值(因为c0c1是函数的局部变量),所以b数组仍然是{3, 5}

3. 选择题 以下叙述中错误的是( ),并给出简单解释。 (1) 结果为:F (2)简单解释:声明数组时必须指定数组的大小或者在声明时提供足够的初始值来确定数组的大小。编译器不会自动分配内存大小,除非是使用动态内存分配函数,如 malloccalloc。 4. (1) 结果为:BEGH (2) 简单解释: B 选项: 这是不正确的。定义的数组y长度为 5,但初始化列表中有 6 个元素,元素个数超出了数组长度。 D 选项: 十六进制转义序列以 \x 开头,后面跟着一个或两个十六进制数字。因此,表达式 char c2[] = {'\x10', '\xa', '\x8'}; 是一个有效的字符数组初始化。 E 选项: 这是不正确的。无括号 F选项:正确。在C语言中,如果一个数组的初始化列表中只有一个元素,那么这个元素的值将被复制到数组的每个元素中。因此, {0} 将导致数组 a 中的所有元素都被初始化为 0。 H 选项:不正确。因为数组 a 被声明为一个 2x3 的二维数组,这意味着它只有 2 行,而初始化列表中提供了 3 行。 初始化列表中的每个子列表代表数组的一行 5.

#include <stdio.h>
#include <ctype.h>

int main() {
    char line[81]; // 假设每行最多80个字符加上一个换行符
    int upper = 0, lower = 0, digit = 0, space = 0, others = 0,chinese = 0;

    // 读取三行文本
    for (int i = 0; i < 3; i++) {
         while (getchar() != '\n') continue;

        // 读取一行文本
        scanf("%80[^\n]%*c", line);

        for (int j = 0; line[j] != '\0'; j++) {
            char ch = line[j];

            // 检查是否为英文大写字母
            if (ch >= 'A' && ch <= 'Z') {
                upper++;
            }
            // 检查是否为英文小写字母
            else if (ch >= 'a' && ch <= 'z') {
                lower++;
            }
            // 检查是否为数字
            else if (ch >= '0' && ch <= '9') {
                digit++;
            }
            // 检查是否为空格
            else if (ch == ' ') {
                space++;
            }
            // 其他字符
            else if(ispunct(ch)){
                others++;
            }
        }
    }
    
    int C = 80-upper-lower-digit-space-others; 

    // 输出结果
    printf("upper:%d\n", upper);
    printf("lower:%d\n", lower);
    printf("digit:%d\n", digit);
    printf("space:%d\n", space);
    printf("others:%d\n", others);
    printf("chinese:%d\n", C);
    
    return 0;
}

标签:初始化,digit,ch,++,作业,C语言,数组,printf
From: https://blog.csdn.net/2401_87406791/article/details/144170729

相关文章

  • C语言循环与详解操作符 基础知识大汇总(下)(保驾护航大家的C语言)(保姆级超详细解说)(应对各
    hello大家好啊,这里是星空没有雨,今天你的城市下雨了吗,今天星宇给大家带来c语言环以及操作符详解,程让我们更多的新手伙伴们更好的入门   OK,now,let'sgo1.详解操作符/与%(1)/运算符/⽤来完成除法。除号的两端如果是整数,执⾏的是整数除法,得到的结果也是整数。......
  • 一课一得(C语言)
    在编程的学习过程中,我收获了许多宝贵的经验和知识,编程就像是在创造一个属于自己的数字世界,每一行代码都是构建这个世界的基石。以下是我在编程学习中的一些程思路和技巧运用方面。一、编程思路(一)问题分解在面对一个复杂的编程任务时,问题分解是至关重要的第一步。例如,在开发一......
  • 反转链表详解(C语言)
    文章目录反转链表详解(C语言)一、题目描述二、解题方法1.头插法——创建一个新的链表思路具体操作AC代码(附注释)2.迭代法——双指针实现思路具体操作AC代码(附注释)3.递归法——从前往后反转思路具体操作AC代码(附注释)4.递归法Ⅱ——从后往前反转思路具体操作AC代码(附注释)5......
  • 洛谷 P1036 [NOIP2002 普及组] 选数 C语言
    题目:https://www.luogu.com.cn/problem/P1036题目描述已知 nn 个整数 x1,x2,⋯ ,xn,以及 1 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12......
  • 经典C语言代码——part 16(按位异、按位取反)
    【程序53】题目:学习使用按位异或^。1.程序分析:0^0=0;0^1=1;1^0=1;1^1=02.程序源代码:#include"stdio.h"main(){inta,b;a=077;b=a^3;printf("\40:Thea&b(decimal)is%d\n",b);b^=7;printf("\40:Thea&b(decimal)is%d\n"......
  • C语言编程1.19男生女生
    题目描述给定一个班每个同学的性别,分别输出男女比例,男生学号和女生学号。输入格式第一行一个整数n,0<n≤500表示班级人数。第二行中有n个0(女生)或者1(男生),表示按学号(从1号开始)顺序的每个同学性别。输出格式第一行输出男生与女生的比例,形式为1:?。如果男女生相等,则输出1:1;如果......
  • C语言编程1.18票数统计
    题目描述《造星花园》青春偶像派电视剧热播后,剧组各位明星来到有“娱乐热土”之称的湖海卫视参加“我选我喜欢”的与观众现场互动娱乐节目。现场的观众对明星们投票选出最受欢迎的明星。投票的方式是:每个观众只能投一票,观众喜欢某个明星或觉得他(她)表现不错,就可以到台上将一支......
  • c语言编程1.17蓝桥杯历届试题-回文数字
    题目描述观察数字:12321,123321都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。本题要求你找到一些5位或6位的十进制数字。满足如下要求:该数字的各个数位之和等于输入的整数。输入格式一个正整数n(10<n<100),表示要求满足的数......
  • C语言程序的编译和链接
    在ANSIC的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令(⼆进制指令)。第2种是执⾏环境,它⽤于实际执⾏代码。1,翻译环境翻译环境是由编译和链接两个⼤的过程组成的,⽽编译⼜可以分解成:预处理(有些书也叫预编译)、编译、汇......
  • 第一篇!!或许通过一个有趣的小球游戏来认识C语言是个不错的选择
    反弹球一.绘制一个小球现在给你一张白纸,你要画出一个圆,你需要确定你要把这个小球画在这张纸的什么地方,你要画的这个小球的半径是多少。那我们近似类比,在计算机上通过C语言来画一个小球,你需要拥有一张“白纸”,也就是你需要使用easyx来画一个画布#include<conio.h>#includ......