C语言作业二

第1题

switch对应的case中,每个后面都需要加break!(不然会继续执行)

第2题

switch(c)语句中,c不可以是什么类型?

double + float

第3题

注意点与1一样;

第4题

  • switch语句中的default子句可以放在任意位置;
  • switch语句中的case的表达式只能是整形常量表达式,且case表达式不要求顺序;

第5题

  • C语言中的关系操作符是用来比较大小关系的;
  • 且比较两个字符串大小不能使用关系操作符,要使用strcmp()函数

strcmp()使用方法:

  • 例如strcmp(str1,str2)
  • 返回类型有3种,如果str1<str2,那么返回值小于0;
  • 如果str1=str2,那么返回值等于0;
  • 如果str1>str2,那么返回值大于0;
  • 从头到尾挨个查看字符大小,不一样的时候谁的字符大,谁的字符串就大;

如何存储并定义一个字符串?(两种方法)

  • char* str1 = "abcdef";(str1是一个字符地址,里面存储了字符串中首元素的a的地址)
  • char str3\[\] = "abcdef"(str3是一个数组,相当于是用字符串来初始化这个数组,其实str3也存放了字符a的地址)
  • 区别在于数组可以修改;而常量字符串无法修改

第7题

三角形判断(牛客)

第8题

9*9乘法表

复制代码
int main()

{

    int i = 0;
    int j = 0;
    for(i = 1;i<=9;i++)
    {

    for (j = 1;j<=i;j++;)
    {
        printf("%d * %d = %d",j,i,j*i);
    }
    printf("\n");
    }
    return 0;
}

第9题

(求10个整数的最大值)

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int arr[10] = { 0 };
	int i = 0;
	int max = arr[0];
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	int j = 0;
	for (j = 1; j < 10; j++)
	{
		if (max < arr[j])
		{
			max = arr[j];
		}
	}
	printf("max = %d\n", max);
	return 0;
}

第10题

计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值,打印结果

复制代码
#define _CRT_SECURE_NO_WARN
#include<stdio.h>
int main()
{
	int i = 1;
	double sum = 0;
	for (i = 1; i <= 100; i++)
	{
		// i在之后为小数的时候,因为sum为整形,所以会自动=0,因此sum应该设定为小数
		if (i % 2 == 1)
			sum = sum + 1.0 / i;
		else
			sum = sum - 1.0 / i;
	}
	printf("sum = %lf", sum);
	return 0;
} 

第11题

计算从1~100数字中9出现的个数

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int i = 0;
	int count = 0;
	for (i = 1;i <= 100;i++)
	{
		if (i % 10 == 9)
			count++;
		if (i / 10 == 9)
			count++;
	}
	printf("9的个数为 %d ", count);
	return 0;
}

第12题

注意点:对于while(条件表达式){循环体}

  • 循环体的执行次数总是比表达式少一次!
  • 循环中遇到continue则直接判断后再次进入循环(不再执行后面的内容)

第13题

rand函数在调用前需要使用<stdlib.h>的头文件,且需要设置种子

复制代码
int rand(void)

设置种子:

复制代码
void srand(unsigned int seed)

其中将seed设置为时间戳:

复制代码
time(NULL)

常用的产生随机数的代码:

复制代码
srand((unsigned int)time(NULL))

第14题

求最大公约数

方法:辗转相除法

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	// 假如当前有a和b两数分别为24和18;则最大公约数为6
	int a = 24;
	int b = 18;
	int c = a % b;       //  c = 6
	while (c != 0)
	{
		a = b;
		b = c;
		c = a % b;
	}
	printf("最大公约数为 %d", b);
	return 0;

}

第15题

逗号表达式默认结果为后面的,例如(3,4)结果取4;

第16题

sizeof()会计算\0;但是strlen不会计算\0;

第17题

定义一个数组。输入10个整数,并求这个数组的平均值

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int arr[10] = { 0 };
	int i = 0;
	int sum = 0;
	int c = 0;
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < 10; i++)
	{
		sum = sum + arr[i];
	}
	double avg = sum / 10.0;
	printf("平均数的值为 %lf", avg);
	return 0;
}

第17题

注意点:

复制代码
char acX[] = "abcdefg";
char acY[] = {'a','b','c','d','e','f','g'};

由于sizeof()会计算\0,因此sizeof(acX) > sizeof(acY)

但是strlen(acY)的数值不确定,因为不知道什么时候能碰到\0,两个数字的strlen不能进行比较

变量的值只有在运行的时候才能确定是多少(一定是在运行的时候才能确定),编译的时候不能确定

相关推荐
大可不必了14 小时前
03 函数定义和调用
开发语言·python
I_belong_to_jesus14 小时前
C++关于分支预测的优化1
开发语言·c++·算法
承渊政道15 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛15 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
Rabitebla15 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件16 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
一个天蝎座 白勺 程序猿16 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
eggwyw17 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
楚山之石17 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri