【C语言】每日一题(半月斩)——day3

这篇具有很好参考价值的文章主要介绍了【C语言】每日一题(半月斩)——day3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【C语言】每日一题(半月斩)——day3,【C】-每日题,c语言,数据结构,开发语言,学习,程序人生,算法

目录

一,选择题

1.已知函数的原型是: int fun(char b[10], int *a);

2、请问下列表达式哪些会被编译器禁止【多选】( )

3、以下程序的输出结果为( ) 

4、下面代码段的输出是( ) 

5、下列不能实现死循环的是( ) 

二,编程题

1.记负均正

2.旋转数组的最小数字


一,选择题

1.已知函数的原型是: int fun(char b[10], int *a);

设定义: char c[10];  int d; ,正确的调用语句是()

A: fun(c,&d);            B: fun(c,d);

C: fun(&c,&d);         D: fun(&c,d);

解析:

本体考察的是函数的调用和传参;

数组名:

数组名就是地址,通常来说:数组名是数组首元素的地址

但是有2个例外:

  1. sizeof(数组名),这里的数组名表示的整个数组,计算的是整个数组的大小,单位是字节。
  2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。

除此之外,所有遇到的数组名都是数组首元素的地址。

注:数组传参的本质是指针,传递的是数组首元素地址

但是形参也可以是数组接收,也可以指针接收。
正确答案:A

2、请问下列表达式哪些会被编译器禁止【多选】( )

int a = 248, b = 4;
int const* c = 21;
const int* d = &a;
int* const e = &b;
int const* const f = &a;

A: *c = 32;             B: *d = 43         C: e=&a         D: f=0x321f 

解析:

考察的是对const的理解

const修饰指针

修饰指针有两种方法

counst int* p ;

int * counst p;

  • const 放在的左边

限制的指针指向的内容,也就是说: 不能通过指针来修改指针指向的内容

但是指针变量是可以修改的,也就是指针指向其他变量的

  • const 放在的右边

限制的是指针变量本身,指针变量不能再指向其他对象

但是可以通过指针变量来修改指向的内容

正确答案:ABCD

3、以下程序的输出结果为( ) 

int i;
void prt()
{
	for (i = 5; i < 8; i++)
		printf("%c", '*');
	printf("\t");
}
int main()
{
	for (i = 5; i <= 8; i++)
		prt();
	return 0;
}

A: ***         B: *** *** *** ***         C: *** ***         D: * * * 

解析:

本题考察的是,转义字符和全局变量 

转义字符:

'\t'  代表为水平制表符,简单来说就是在键盘上按了TAB的效果,也可以理解为缩进符

 全局变量

作用域为整个程序生命周期与主函数相同,只有程序结束,它才会销毁

 在进入prt()后出来时 i  被修改成了8,然后进行主函数的条件调整表达式;  i++;i变成了9;

不满足主函数的条件判断表达式,推出循环

正确答案:A

4、下面代码段的输出是( ) 


int main()
{
	int a = 3;
	printf("%d\n", (a += a -= a * a));
	return 0;
}

A: -6                 B: 12                 C: 0       D: -12 

解析:

考察:运算符优先级,操作符(复合赋值符)的理解 

查看操作符优先级表可以得知,'*'乘法的优先级高于赋值操作符;

所以先算后面的  a-=a*a  -> a=a-a*a;  a=-6;

再算前面的   a+=a->  a=a+a;   a=-12;

正确答案:D

5、下列不能实现死循环的是( ) 

 A: while(1){}                B:  for(;1;){}                 C: do{}while(1); D:         for(;0;){}

 解析:

考察:循环条件判断

C语言中规定:0为假,非0为真;

只有条件为真时才进行循环, ABC 中 1 为真, D 中 0 为假

正确答案:D

二,编程题

1.记负均正

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。

0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。

记负均正——牛客网

int main()
{
	int n = 0;
	int arr[1000];
	scanf("%d", &n);
	int i = 0;
	//往数组输入元素
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//输出负数
	int num = 0;	//记录负数个数
	//正整数的平均值
	double pos = 0;	//记录正整数个数
	double temp = 0;
	double sum = 0;	//平均数
	int zero = 0;  //记录0的个数
	for (i = 0; i < n; i++)
	{
		if (arr[i] < 0)
		{
			num++;
		}
		else if (arr[i] == 0)
			zero++;
		else
		{
			temp = temp + arr[i];
			pos++;
		}
	}
	if (zero == n)
	{
		printf("%d 0.0\n",num);
	}
	else {
    {
        sum = temp / pos;
	printf("%d %.1lf",num, sum);
    }
    }
	return 0;
}

2.旋转数组的最小数字

有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。

旋转数组的最小值——牛客网

static int min = 10000;
int minNumberInRotateArray(int* rotateArray, int rotateArrayLen ) {
    // write code here
    int i = 0;
    for(i = 0; i < rotateArrayLen;i++)
    {
        if(rotateArray[i]< min)
        {
            min = rotateArray[i];
        }
    }
    return min;
}

【C语言】每日一题(半月斩)——day3,【C】-每日题,c语言,数据结构,开发语言,学习,程序人生,算法

 【C语言】每日一题(半月斩)——day3,【C】-每日题,c语言,数据结构,开发语言,学习,程序人生,算法文章来源地址https://www.toymoban.com/news/detail-732915.html

到了这里,关于【C语言】每日一题(半月斩)——day3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言每日一练------(Day3)

    本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今天练习题的: 尼科彻斯定理 等差数列 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C语言天天练 🚚代码仓库:小小

    2024年02月10日
    浏览(41)
  • C语言:选择+编程(每日一练Day3)

    目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:记负均正 思路一: 题二:旋转数组的最小数字 思路一: 1、已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; , 正确的调用语句是 ( ) A: fun(c,d);     B: fun(c,d);    C: fun(c,d);    D: f

    2024年02月09日
    浏览(45)
  • 【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难

    原题链接 给定一个长度为 n n n 的数组,将这个数组进行拆分成若干个连续子数组, 使得每个子数组的最大值减去最小值小于等于 s s s , 且每个子数组的长度大于等于 l e n len l e n 。 问最少可以拆分成多少个连续子数组,如果不可以,则输出 − 1 -1 − 1 1 ≤ n , l e n ≤ 1 0

    2024年02月06日
    浏览(50)
  • 二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”

    各位CSDN的uu们你们好呀,今天小雅兰的内容仍然是二叉树和Leetcode每日一题,下面,就让我们进入二叉树的世界吧!!! 这个题目需要重新定义一个函数,函数参数需要有左子树和右子树,题目所给定的函数无法解决问题。 每个不为空的结点,都可以认为是一棵子树的根 

    2024年02月16日
    浏览(46)
  • 二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”

    各位CSDN的uu们你们好呀,今天继续数据结构与算法专栏中的二叉树,下面,让我们进入二叉树的世界吧!!! 二叉树(上)——“数据结构与算法”_认真学习的小雅兰.的博客-CSDN博客 二叉树链式结构的实现 二叉树链式结构的实现 求二叉树的高度 但是这种写法有很大的问题

    2024年02月17日
    浏览(41)
  • C语言 每日一题 PTA 11.6 day10

    N 个正数的算数平均是这些数的和除以 N,它们的调和平均是它们倒数的算数平均的倒数。 本题就请你计算给定的一系列正数的调和平均值。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出正整数 N(≤1000);第 2 行给出 N 个正数,都在区间[0.1, 100] 内。 输出

    2024年02月05日
    浏览(45)
  • C语言每日一题 ----计算日期到天数转换(Day 2)

    本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C语言天天练 🚚代码仓库:小小unicorn的代码仓库🚚 🌹🌹🌹关注我带你学习编

    2024年02月11日
    浏览(38)
  • Linux每日练习day3

    创建1个f开头的文件夹,2个f开头的普通文件 1、输出文件名时,每个文件名前加一个前缀abc 2、输出所有文件名时,在行头加一个前缀 aaa 2、通过批量处理的命令 exec或者xargs 删除f开头的普通文件 1、过滤出etc目录中以p开头的文件名 2、过滤出etc下passwd这个文件内容中包含字母

    2024年03月13日
    浏览(47)
  • 蓝桥杯 题库 简单 每日十题 day3

    题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 1200000 有多少个约数(只计算正约数)。 解题思路 枚举,从1开始一直到1200000本身都作为1200000的除数,如果可以整除,则是它的约数 题目描述 本题为填空题,只需要算出结果后,在

    2024年02月08日
    浏览(42)
  • 暑期代码每日一练Day3:874. 模拟行走机器人

    题目 874. 模拟行走机器人 分析 这道题就是个简单的模拟 主要有两点考察点: 对 方向数组 的运用 方向数组存储的是各个方向的单位向量,也即: 方向 X Y 向北 0 1 向东 1 0 向南 0 -1 向西 -1 0 存储在数组中,则是方向数组: 我们很容易发现: 我们可以使用一个变量 j 来指示当

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包