首页 > 其他分享 >学习c语言第八天(函数练习)

学习c语言第八天(函数练习)

时间:2024-07-17 22:26:48浏览次数:9  
标签:语句 arr return 函数 第八天 int 练习 printf

1.打印100-200之间的素数

#define _CRT_SECURE_NO_WARNINGS
打印100-200之间的素数
循环方法
#include <stdio.h>
#include <math.h>
 int main()
{
	int i = 100;
	while (i<=200)
	{
		int x = 2;
		while (x<=i)
		{
			if (i % x != 0)
			{
				x++;
				if (x == i)
				{
					printf("%d ", i);
				}
			}
			else if(i%x==0)
			{
				break;
			}
		}
		i++;
	}
	return 0;
}
int main()
{
	int i = 0;
	for (i = 101; i <= 200; i+=2)
	{
		int flog = 1;
		int x = 0;
		for (x=2;x<=sqrt(i);x++)
		{
			if (i % x == 0)
			{
				flog = 0;
				break;
			}
		}
		if (flog == 1)
		{
			printf("%d ",i);
		}
	}
	return 0;
}
int sushu(int n)
{	
	int x = 2;
	for (x = 2; x <= sqrt(n); x++)
	{
		
		if (n % x == 0)
		{
			return	0;
		}
		
	}
	return 1;

}
int main()
{
	int i = 0;
	for (i = 100; i <= 200; i++)
	{
		if(sushu(i))
			printf("%d ", i);
	}
	return 0;
}

 2.打印1000-2000闰年

//打印1000-2000之间的闰年。能被四整除,但不能被100整除,可以被400整除
//int runnian(int i)
//{
//	if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
//	{
//		return 1;
//	}
    return0;
//}
//int main()
//{
//	int i = 0;
//	for (i=1000;i<=2000;i++)
//	{
//		if(runnian(i))
        {
            printf("%d ",i);
        }
//	}
//	return 0;
//}
int main()
{
	int i = 0;
	for (i = 1000; i <= 2000; i++)
	{

		if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
		{
			printf("%d ", i);
		}
	}
	return 0;
}

要保证函数的单一功能

3.写一个函数,实现有序数组二分查找

//写一个函数,实现有序数组二分查找
int tow_serch(int arr[], int len, int k)
{
	int left = 0;
	int right = len - 1;
	while (left<=right)
	{
		int mid = left + (right - left) / 2;
		if (arr[mid] > k)
		{
			right = mid - 1;
		}
		else if (arr[mid] < k)
		{
			left = mid + 1;
		}
		else
			return mid;
	}
	if (left >= right)
	{
		return -1;
	}
}
int main()
{
	int arr[] = {1,2,3,4,5,6,7,8,9};
	int k = 7;
	int len = sizeof(arr) / sizeof(arr[0]);
	int a = tow_serch(arr, len, k);
	if(a==-1)
	{
		printf("找不到");
		
	}
	else
	{
		printf("找到了,下标是:%d",a);
	}
	return 0;
}

数组传参穿的是首元素地址

4.写一个函数每调用一次num加一

//写一个函数每调用一次num加一
void add(int*p)
{
	(*p)++ ;
}
int main()
{
	int num = 0;
	add(&num);
	printf("%d",num);
	return 0;
}

5.接收一个整形值,按顺序打印

//接收一个整形值,按顺序打印
//例子1234	打印1 2 3 4
//void print(int a)
//{
//	if (a > 9)
//	{
//		a % 10;
//		print(a / 10);
//		printf("%d\n", a % 10);
//	}
//	else
//	{
//		printf("%d\n",a);
//	}
//}
void print(int a)
{
	if (a > 9)
	{
		print(a / 10);
	}
	printf("%d\n", a%10);
}
int main()
{
	int a = 0;
	scanf("%d",&a);
	print(a);
	return 0;
}

6.编写一个求字符穿长度的函数,不能创建临时变量

//编写一个求字符串长度的函数,不能创建临时变量
int my_strlen(char* arr)
{
	if (*arr != '\0')
	{
		return	1 + my_strlen(arr + 1);
	}
	else
		return 0;
}
int main()
{
	char arr[] = { "abcdef" };
	int ret = my_strlen(arr);
	printf("%d",ret);
	return 0;
}

7.用递归和迭代求n!

//用递归和迭代求n!
int jiecheng(int b)
{
	int i = 0;
	int a = 1;
	for (i = 1; i <= b; i++)
	{
		a = a * i;
	}
	return	a;
}
int fnc(n)
{
	if (n <= 1)
	{
		return 1;
	}
	else 
	{
		return n*fnc(n - 1);
	}
}
int main()
{
	int n = 2;
	scanf("%d",&n);
	int ret =jiecheng(n);
	/*int ret = fnc(n);*/
	printf("%d",ret);
	return 0;
}

8.求第n个斐波那契数列值

//求第n个斐波那契数列值
int feibo(int n)
{
	if (n <= 2)
	{
		return 1;
	}
	else
	{
		return feibo(n-2) + feibo(n - 1);
	}
}

int naqie(n)
{
	int i = 0;
	int a = 1;
	int b = 1;
	int c = 1;
	while (n >= 3)
	{
		a = b;
		b = c;
		c = a + b;
		n--;
	}
		return c;
}

int main()
{
	int n = 0;
	scanf("%d",&n);
	/*int ret = feibo(n);*/
	int ret = naqie(n);
	printf("%d",ret);
	return 0;
}

8.小题

1.下面代码执行的结果是:(死循环打印5)

#include <stdio.h>
int main

{
int i = 0;
for(i=0;i<10; i++)
{

        if(i=5)

                printf("%d “,i);

}
return 0;

}

2.关于if吾句说法正确是:(c)
题目内容
A .i语句后面只能跟一条语句
B.i语句中0表示假,1表示真
C.if语句是一种分支语句,可以实现单分支,也可以实现多分支

D.else语句总是和它的对齐的if语句匹配

3.关于switch说法不正确的是:c
A .switct语句中的default子句可以放在任意位置

B.switch语句中case后的表达式只能是整形常量表达式

C.switch语句中case子句必须在defaut子句之前

D .switch语句中case表达式不要求顺序

4.func(1)=0

int func(int a)
{
int b;
switch
   { case 1:b=30;
     case 2:b=20;
     case 3:b=16;
     default:b=0;
    }
return b;
}
则func(1)=()

5.switch(c)据句中,c不可以是什么类型(d)        char存的是ASCII值
题目内容:
A .int
B .long

C .char
D .float

6.输出结果:hellothird

#include <stdio.h>
int main()
{
    int x=3;
    int y = 3;
    switch(x%2)
    {
         case 1:
            switch(y)
                {    
                case 0:
                     printf("first");
                case 1:
                     printf("second");
                     break;
                default: 
                     printf("hello");
                }
         case 2:printf("third");
    }
return 0;
}

9.小题

1.题目名称:
关于实参和形参描述错误的是:c
题目内容:
A .形参是实参的一份临时拷贝
B.形参是在函数调用的时候才实例化,才开辟内存空间
C.改变形参就是改变实参
D.函数调用如果采用传值调用,改变形参不影响实参

2.题目名称:
函数调用exec((v1,v2),(v3,v4),v5,v6);中,实参的个数是:B
A.3
B.4
C.5
D.6

3.

题目名称:
以下关于函数设计不正确的说法是:b
题目内容
A.函数设计应该追求高内聚低耦合(降低跟别人的关联,内容单一)
8.要尽可能多的使用全局变量
C.函数参数不易过多
D.设计函数时,尽量做到谁申请的资源就由谁来释放

4.
关于C语言函数描述正确的是:C

A.函数必须有参数和返回值
B.函数的实参只能是变量
C.库函数的使用必须要包含对应的头文件

D.有了库函数就不需要自定函数了

5.
C语言规定,在一个源程序中,main函数的位置(C)
A.必须在最开始
8.必须在库函数的后面
C.可以任意
D .必须在最后

6.
以下叙述中不正确的是:D
A .在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是在栈中保存
C.在一个函数内定义的变量只在本函数范围内有效
D .在一个函数内复合语句中定义的变量在本函数范围内有效(复合语句指函数中的
成对括号构成的代码)

7.
能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:A
A .retum 这二个数
B.形参用数组
C.形参用二个指针
D.用二个全局变量

8.
关于函数调用说法不正确的是:C
A.数可以传值调用,传值调用的时候形参是实参的一份临时拷贝

B.函数可以传址调用,传址调用的时候,可以通过形参操作实参
C.函数可以嵌套定义,但是不能嵌套调用
D.函数可以嵌套调用,但是不能嵌套定义

9.在函数调用时,以下说法正确的是B
A.函数调用后必须带回返回值

B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量

D.主调函数和被调函数总是在同一个文件里

标签:语句,arr,return,函数,第八天,int,练习,printf
From: https://blog.csdn.net/2301_79600945/article/details/140499983

相关文章

  • C语言函数:编程世界的魔法钥匙(1)
    目录1.C语言中的函数是什么?2.函数的分类:2.1标准库函数2.1.1库函数的诞生:2.1.2库函数的作用:2.1.3如何学习使用库函数2.2自定义函数2.2.1函数的组成:2.2.2自定义函数的优点  2.2.3 例题3.函数的参数3.1实际参数(实参):3.2形式参数(形参):4.函数的调用4.1......
  • 03-函数
    DAY-04课堂笔记函数print()在控制台输出input()获取控制台输⼊的内容type()获取变量的数据类型len()获取容器的⻓度(元素的个数)range()⽣成⼀个序列[0,n)#函数可以实现⼀个特定的功能我们学习⾃⼰如何定义函数,实现特定的功能???函数:将多⾏代码(可以实......
  • 【THM】Mr Robot CTF练习
    【THM】MrRobotCTF练习基于电视剧《黑客军团》,你能得到这个靶机的根权限吗?你能得到这台黑客军团风格靶机的根权限吗?这是一个适用于初学者/中级用户的虚拟机。机器上有3个隐藏的钥匙,你能找到它们吗?感谢LeonJohnson创造了这台靶机。本机器在创建者的明确许可下在此处使用......
  • 打好函数基础,让代码不在无限月读
    文章目录前言一、函数的目的和定义1.函数的目的2.函数的定义二、函数的声明和调用1.函数的声明2.函数的调用三,函数的形参和实参1.形参2.实参四,函数的参数类型(1)位置参数(2)默认参数(3)关键字参数(4)*args可变元组参数(5)**kwargs字典参数(6)函数返回值五,匿名函数......
  • Python函数基础编写定义
    目录1、函数目的2、函数定义3、函数声明4、函数调用5、函数形参6、函数实参7、函数返回值8、函数的参数类型9、匿名函数1、函数目的函数又叫方法,能减少重复代码的编写,提升代码的复用。函数封装了一定的功能,方便不断使用,可以达到简化代码、重复调用的效果,比如系......
  • 练习题三(7.17)
    任务1、新增账号zhangsanlisiwangwuzhaoliuaaabbbcccddd [root@2~]#useraddzhangsan [root@2~]#useraddlisi [root@2~]#useraddwangwu [root@2~]#useraddzhaoliu [root@2~]#useraddaaa [root@2~]#useraddbbb [root@2~]#useraddccc......
  • 练习——新增账号、设置账户权限、设置免密登录
    1.新增账号zhangsanlisiwangwuzhaoliuaaabbbcccddd[root@y~]#ls-l总用量4-rw-------.1rootroot14155月 2517:56anaconda-ks.cfgdrwxrwxr-x.2rootcode  67月 1717:07code[root@y~]#useraddzhangsan[root@y~]#useraddwangwu[root......
  • 常见的SQL数值型数据处理函数
    在数据驱动的时代,SQL已成为数据分析和管理中不可或缺的工具。无论是处理简单的查询还是复杂的数据分析,SQL都能帮助我们高效地完成任务。然而,在处理数值型数据时,你是否感到过困惑,不知道如何运用SQL中的各种函数来实现数据处理? 究竟有哪些常见的SQL数值型数据处理函数,它......
  • 2024.7.15 近期练习
    P3488[POI2009]LYZ-IceSkates我们对于鞋码为\(x\)的人,贪心地,显然先把鞋小的给他穿。所以就有了一个暴力的检验方法:从左往右扫,并对应修改。但是这样太慢。这是一个二分图匹配问题,考虑Hall定理。对于任意\(1\lel\ler\len\),当\(sum(a_l\sima_r)\le(r-l+1+d)k\)时合......
  • 7.16练习
    [root@localhost~]#lsblkNAME      MAJ:MINRM SIZEROTYPEMOUNTPOINTsda       8:0  129.3G 0disk └─sda1      8:1  129.3G 0part sr0       11:0  1 8.8G 0rom /mntnvme0n......