37-巩固练习(一)

news2024/11/30 6:00:32

37-1 if语句等

1、问:输出结果

int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		if (i = 5)
		{
			printf("%d\n", i);
		}
		return 0;
	}
}

答:一直输出5,死循环

解析:i=5是赋值语句,不是判断语句,每一次循环i都被赋值为5,每一次都打印5;每一次循环i都被赋值为5,加1后是6,永远小于10,要一直循环下去

2、问:关于if语句说法正确是:()

A.if语句后面只能跟一条语句
B.if语句中0表示假,1表示真
C.if语句是一种分支语句,可以实现单分支,也可以实现多分支 
D.else语句总是和它的对齐的if语句匹配

答:C

解析:B:0表示假,非0表示真,并不只有1

3、关于switch说法不正确的是()

A.switct语句中的default子句可以放在任意位置
B.switch语句中case后的表达式只能是整形常量表达式
C.switch语句中case子句必须在default子句之前
D.switch语句中case表达式不要求顺序

答:C

解析:default与case的顺序不作要求;char也是属于整型家族的,因为字符存储的时候,存储的是ASCII码值

4、问:func(1)是多少?

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

答:0

解析:没有break

5、问:switch(c)语句中,c不可以是什么类型()

A.int   B.Jong   C.char   D .float

答:D

6、问:输出结果

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;
}

 答:hellothird

解析:注意有无break

7、将三个整数按从大到小输出

代码1:

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%d%d", &a, &b, &c);
	if (a > b)
	{
		if (a < c)
		{
			printf("%d ", c);
			printf("%d ", a);
			printf("%d ", b);
		}
		else
		{
			if (a > c)
			{
				if (b > c)
				{
					printf("%d ", a);
					printf("%d ", b);
					printf("%d ", c);
				}
				else
				{
					printf("%d ", a);
					printf("%d ", c);
					printf("%d ", b);
				}
			}
		}
	}
	else
	{
		if (b < c)
		{
			printf("%d ", c);
			printf("%d ", b);
			printf("%d ", a);
		}
		else
		{
			if (b > c)
			{
				if (a > c)
				{
					printf("%d ", b);
					printf("%d ", a);
					printf("%d ", c);
				}
				else
				{
					printf("%d ", b);
					printf("%d ", c);
					printf("%d ", a);
				}
			}
		}
	}
	return 0;
}

代码2(推荐):

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	int tmp = 0;
	scanf("%d%d%d", &a, &b, &c);
	//调整,a放最大值,b放中间值,c放最小值
	if (a < b)
	{
		tmp = a;
		a = b;
		b = tmp;
	}
	if (a < c)
	{
		tmp = a;
		a = c;
		c = tmp;
	}
	if (b < c)
	{
		tmp = b;
		b = c;
		c = tmp;
	}
	printf("%d %d %d", a, b, c);
	return 0;
}

 代码3(函数版):

void Swap(int* a, int* b)
{
	int tmp = 0;
	tmp = *a;
	*a = *b;
	*b = tmp;
}
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%d%d", &a, &b, &c);
	//调整,a放最大值,b放中间值,c放最小值
	if (a < b)
	{
		Swap(&a, &b);
	}
	if (a < c)
	{
		Swap(&a, &c);
	}
	if (b < c)
	{
		Swap(&b, &c);
	}
	printf("%d %d %d", a, b, c);
	return 0;
}

8、写一个代码打印1-100之间所有3的倍数的数字

代码1:

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

代码2:

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

9、求两个数的最大公约数

 代码1:暴力求解

int main()
{
	int a = 0;
	int b = 0;
	int tmp = 0;
	int i = 0;
	scanf("%d%d", &a, &b);
	if (a > b)  //让a是小的数
	{
		tmp = a;
		a = b;
		b = tmp;
	}
	for (i = a; i > 1; i--)
	{
		if ((a % i == 0)&&(b % i == 0))
		{
			printf("最大公约数:%d\n", i);
			break;
		}
	}
	if (1 == i)
	{
		printf("这两个数没有公约数");
	}
	return 0;
}

代码2:辗转相除法

两个整数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	int tmp = 0;
    scanf("%d%d", &a, &b);
	while (c= a % b)
	{
		a = b;
		b = c;
	}
	printf("%d\n", b);
	return 0;
}

a和b谁大谁小不影响,可以用a=18,b=24和a=24,b=18自己测试一下

37-2 for循环语句等

1、问:关于while(条件表达式)循环练以下叙述正确的是()?
(假设循环体里面没break,continue,return,goto等等语句)

A.循环体的执行次数总是比条件表达式的执行次数多一次
B.条件表达式的执行次数总是比循环体的执行次数多一次
C.条件表达式的执行次数与循环体的执行次数一样
D.条件表达式的执行次数与循环体的执行次数无关

答:B

2、问:输出结果

int main()
{
	int a = 0, b = 0;
	for (a = 1, b = 1; a <= 100; a++)
	{
		if (b >= 20) break;
		if (b % 3 == 1)
		{
			b = b + 3;
			continue;
		}
		b = b - 5;
	}
	printf("%d\n", a);
	return 0;
}

答:8

3、编程数一下1到100的所有整数中出现多少个数字9

注意:题目中说的是出现多少个9,而不是多少个数字包含9

int main()
{
	int i = 0;
	int count = 0;  //计数
	for (i = 1; i <= 100; i++)
	{
		if (i / 10 == 9)  //十位是9
		{
			count++;
		}
		if (i % 10 == 9)  //个位是9
		{
			count++;
		}
	}
	printf("%d\n", count);
	return 0;
}

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

代码1:

int main()
{
	int i = 0;
	double sum = 0;  //结果是小数
	for (i = 1; i <= 100; i++)
	{
		if (i % 2 != 0)
		{
			sum += 1.0 / i;  //要想得到小数,必须要有一个浮点数
		}
		else
		{
			sum += -1.0 / i;
		}
	}
	printf("%lf\n", sum);
	return 0;
}

代码2:

int main()
{
	int i = 0;
	double sum = 0;  //结果是小数
	int flag = 1;  //用于正负变换
	for (i = 1; i <= 100; i++)
	{
		sum += (1.0 / i)*flag;
		flag = -flag;
	}
	printf("%lf\n", sum);
	return 0;
}

5、10个数找最大值

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	int max = arr[0];
	for (i = 1; i < 10; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	printf("%d\n", max);
	return 0;
}

代码2(手动输入十个数)

int main()
{
	int arr[10] = { 0 };
	int j = 0;
	for (j = 0; j < 10; j++)
	{
		scanf("%d", &arr[j]);
	}
	int i = 0;
	int max = arr[0];
	for (i = 1; i < 10; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	printf("%d\n", max);
	return 0;
}

6、 在屏幕上输出九九乘法表

代码1:

int main()
{
	int i = 0;
    //打印9行
	for (i = 1; i <= 9; i++)
	{
		int j = 0;
        //打印一行
		for (j = 1; j <= i; j++)
		{
			printf("%d*%d=%d ", i, j, i * j);
		}
		printf("\n");
	}
	return 0;
}

代码2: 

 %2d:右对齐;%-2d:左对齐

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

37-3 函数等

1、问:关于实参和形参描述错误的是()

A.形参是实参的一份临时拷贝
B.形参是在函数调用的时候才实例化。才开辟内存空间
C.改变形参就是改变实参
D.函数调用如果采用传值调用。改变形参不影响实参

答:C

2、问:函数调用exec(v1,v2),(v3,v4),v5,v6)中,实参的个数()

A .3   B.4   C.5   D.6

答:B

解析:表达式是一个实参

3、问:以下关于函数设计不正确的说法是()

A.函数设计应该追求高内聚低耦合
B.要尽可能多的使用全局变量
C.函数参数不易过多
D.设计函数时,尽量做到谁申请的资源就由谁来释放

答:B

解析:高内聚低耦合,功能单一,不要与其他的产生过多关联;过多使用全局变量,不安全。

4、问:关于C语言函数描述正确的是()

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

答:C

5、问:C语言规定,在一个源程序中,main函数的位置()

A.必须在最开始
B.必须在库函数的后面
C.可以任意
D.必须在最后

答:C

6、问:以下叙述中不正确的是()

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

答:D

解析:

7、 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

void print_table(int n)
{
	int i = 0;
	for (i = 1; i <= n; i++)
	{
		int j = 0;
		for (j = 1; j <= i; j++)
		{
			printf("%d*%d=%-2d ", i, j, i * j);
		}
		printf("\n");
	}
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	print_table(n);
	return 0;
}

37-4 函数递归等 

1、问:能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是:()

A.return这两个数   B.形参用数组   C .形参用两个指针   D.用两个全局变量

答:A

解析:return只能返回一个数

2、问:关于函数调用说法不正境的是()

A.函数可以传值调用,传值调用的时候形参是实参的一份临时拷贝
B.函数可以传址调用,传址调用的时候。可以通过形参操作实参
C.函数可以嵌套定义,但是不能嵌套调用
D.函数可以嵌套调用,但是不能嵌套定义

答:C

3、问:在函数调用时,以下说法正确的是()

A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里

答:B

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis 保存是否可以更快?

redis 常见用法之保存 在java项目很多人都喜欢用spring-boot-starter-data-redis下的StringRedisTemplate操作redis,大多项目也用作为缓存&#xff0c;他们最常见的保存key value代码&#xff0c;如下&#xff1a; stringRedisTemplate.opsForValue().set(key, value); 大家都…

蓝桥杯算法题练习

1、20世纪有多少个星期一 &#xff08;1901、1、1——2000、12、31&#xff09; 方法一&#xff1a;python代码 方法二&#xff1a;excel工具(设置单元格格式&#xff0c;把日期换成周几的形式) 2、100个数相乘&#xff0c;结果有几个0 3、切面条 找规律:对折次数n 弯2^n-1 面…

springboot准妈妈孕期交流平台

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;准妈妈孕期交流平台当然也不能排除在外。准妈妈孕期交流平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发…

【数据结构】堆、堆排序(包你学会的)

文章目录 前言堆&#xff08;Heap&#xff09;1、堆的概念及结构2、堆的分类2.1、小堆的结构2.2、大堆的结构2.3、找到规律并证明 3、堆的实现&#xff08;小堆&#xff09;3.1、堆的结构以及接口3.2、初始化、销毁3.3、交换父子结点&#xff08;后续需要&#xff09;3.4、插入…

基于STC12C5A60S2系列1T 8051单片机通过单个按键长按次数实现开关机应用

基于STC12C5A60S2系列1T 8051单片机通过单个按键长按次数实现开关机应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍基于STC12C5A60S2系列1T 8051单片机通过单个按…

【宝塔部署】RocketMQ+可视化面板

第一步下载需要的资源文件文件 RocketMQ的官网地址&#xff1a;https://rocketmq.apache.org/ Github地址&#xff1a;https://github.com/apache/rocketmq 下载地址&#xff1a;https://rocketmq.apache.org/zh/download/第二步创建可视化面板 这样用IP:7070就可以登录进去 …

武汉星起航:领航亚马逊跨境电商,开启全新运营时代

在全球化浪潮的推动下&#xff0c;跨境电商行业正迎来前所未有的发展机遇。作为国家鼓励发展的新兴产业&#xff0c;跨境电商不仅促进了国际贸易的繁荣&#xff0c;更为众多中小企业和个人创业者开辟了新的市场天地。在这个充满机遇与挑战的行业中&#xff0c;武汉星起航电子商…

进程知识点

引用的文章&#xff1a;操作系统——进程通信&#xff08;IPC&#xff09;_系统ipc-CSDN博客 面试汇总(五)&#xff1a;操作系统常见面试总结(一)&#xff1a;进程与线程的相关知识点 - 知乎 (zhihu.com) 二、进程的定义、组成、组成方式及特征_进程的组成部分必须包含-CSDN博…

SpringBoot2.6.3 + knife4j-openapi3

1.引入项目依赖&#xff1a; <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-spring-boot-starter</artifactId><version>4.5.0</version> </dependency> 2.新增配置文件 import io.swag…

【Git项目部署到本地仓库】

1. 下载安装Git 根据您的操作系统&#xff0c;访问Git的官方网站&#xff1a;https://git-scm.com/download/win 具体安装教程请访问其他博客&#xff0c;例如&#xff1a;http://t.csdnimg.cn/I28VO 安装完成后&#xff0c;您可以通过在winR键输入cmd打开命令行输入 git -…

XXII Open Cup, Grand Prix of Daejeon C. AND PLUS OR(思维 结论)

题目 给定n(n<20)&#xff0c;再输入2^n个数&#xff0c;分别代表a[0]到a[2^n-1]&#xff0c;第i个数ai(0<ai<1e7) 问是否存在一对下标i、j满足a[i]a[j]<a[i&j]a[i|j] 如果不存在&#xff0c;输出-1&#xff0c;否则输出任意一对(i,j)即可 思路来源 官方题…

python爬虫之selenium4使用(万字讲解)

文章目录 一、前言二、selenium的介绍1、优点&#xff1a;2、缺点&#xff1a; 三、selenium环境搭建1、安装python模块2、selenium4新特性3、安装驱动WebDriver驱动选择驱动安装和测试 基础操作1、属性和方法2、单个元素定位通过id定位通过class_name定位一个元素通过xpath定位…

SQL82 返回 2020 年 1 月的所有订单的订单号和订单日期(like)

select order_num,order_date from Orders where order_date like "2020-01%" order by order_date;使用like来匹配

武汉星起航:助力跨境电商新手,打造高质量亚马逊产品评价新策略

在今日全球化与数字化浪潮的推动下&#xff0c;跨境电商已成为推动国际贸易发展的新动力。然而&#xff0c;随着市场竞争的日益激烈&#xff0c;如何让自己的产品在亚马逊平台上脱颖而出&#xff0c;成为了众多跨境电商新手面临的重要问题。武汉星起航电子商务有限公司&#xf…

WP Rocket v3.15.10最新版强大的WordPress缓存插件

WP Rocket v3.15.10是一款强大的WordPress缓存插件&#xff0c;它通过一系列优化措施来提高网站的速度和性能。 WP Rocket与免费缓存插件相比&#xff0c;提供了更丰富和高级的自定义设置功能。这些包括媒体优化、预加载、延迟加载和数据库优化等。特别是对于没有任何缓存技术…

MySQL Innodb 引擎中预防 Update 操作上升为表锁

一、MySQL 如何预防 Update 上升为表锁 在 MySQL 中&#xff0c;进行任何数据的 修改 操作都会进行一定的锁操作&#xff0c;而锁的不同直接导致性能的差异。例如 MyISAM 引擎&#xff0c;更新时采用表锁&#xff0c;并发性较差。而 Innodb 引擎支持事务&#xff0c;更新时采用…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格&#xff0c;角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格&#xff0c;角度不拉伸 点击编辑&#xff0c;拖拽到可变区域 问题2、BlockInputEvents 防止透屏

真实sql注入以及小xss--BurpSuite联动sqlmap篇

前几天漏洞检测的时候无意发现一个sql注入 首先我先去网站的robots.txt去看了看无意间发现很多资产 而我意外发现admin就是后台 之后我通过基础的万能账号密码测试or ‘1‘’1也根本没有效果 而当我注入列的时候情况出现了 出现了报错&#xff0c;有报错必有注入点 因此我…

【c 语言 】malloc函数详解

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

密码学基础-对称密码/公钥密码/混合密码系统 详解

密码学基础-对称密码/公钥密码 加解密说明1.加密解密必要因素加密安全性说明 什么是对称密码图示说明对称密码详解什么是DES?举例说明 什么是3DES什么是AES? 公钥密码什么是RSA? 对称密钥和公钥密码优缺点对比对称密码对称密码算法总结对称密码存在的问题? 公钥密码公钥密码…