C语言好题解析(一)

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

选择题1

执行下面程序,正确的输出是( )
int x = 5, y = 7;
void swap()
{
	int z;
	z = x;
	x = y;
	y = z;
} int main()
{
	int x = 3, y = 8;
	swap();
	printf("%d,%d\n",x, y);
	return 0;
}
A: 5,7    B: 7,5    C: 3,8    D: 8,3

【答案】 C
【分析】 首先我们可以看到x和y有两个不同的值,为x=5和3,y=7和8,其中x=5和y=7的范围比x=3和y=8的范围更大(即作用域更大),而printf函数有一个就近原则,即输出与它最近的x和y,swap函数则是将x=5和y=7进行交换(因为swap函数没有就近原则,而x=5和y=7作用域更大

选择题2

以下不正确的定义语句是( )
A double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0};
B char c2[] = {'\x10', '\xa', '\8'};
C char c1[] = {'1','2','3','4','5'};
D int y[5+3]={0, 1, 3, 5, 7, 9};

【答案】 B
【分析】\8表示8进制的8,而8进制的数字表示为0~7,因此\8表示错误

选择题3

若给定条件表达式 (M)?(a++):(a--) ,则其中表达式 M ()
A: 和(M==0)等价 B: 和(M==1)等价 C: 和(M!=0)等价 D: 和(M!=1)等价

【答案】 C
【分析】(M)?(a++):(a–)的含义为判断表达式M是否为真(M!=0)(因为为表达式,所以只要非0就为真),如果为真就a++,反之则a–

选择题4

有如下定义语句,则正确的输入语句是【多选】( )
int b;
char c[10];
A: scanf("%d%s",&b,&c); B: scanf("%d%s",&b,c);
C: scanf("%d%s",b,c); D: scanf("%d%s",b,&c);

【答案】 AB
【分析】这里可能会有人认为scanf后面都应该要有&,其实&只是为了储存数据地址,而数组可以省略&。
我们举一个例子

#include<stdio.h>
void jack( int *arr)
{
	for (int i = 0; i <= 5; i++)
	{
		arr[i] = i;
	}
}
int main()
{
	int arr[6] = { 0 };
	jack(arr);
	for (int i = 0; i <= 5; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

这个代码运行结果如图
C语言好题解析(一),c语言,算法,数据结构
而加上&后

#include<stdio.h>
void jack( int *arr)
{
	for (int i = 0; i <= 5; i++)
	{
		arr[i] = i;
	}
}
int main()
{
	int arr[6] = { 0 };
	jack(&arr);
	for (int i = 0; i <= 5; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

C语言好题解析(一),c语言,算法,数据结构
我们可以看出结果并没有变,所以&可加可不加。

编程题一

根据输入的日期,计算是这一年的第几天。输入保证年份为4位数且日期合法。
输入描述:输入一行,每行空格分割,分别是年,月,日。
输出描述:输出是这一年的第几天
示例:
输入:2012 12 31 输入:1982 3 4
输出:366 输出:63

牛客网题目链接
【题目分析】
1:由于每个月的天数都不一定相同,如果我们不用数组的话是非常难搞定这问题的(我去试了),因此我们需要定义一个数组,以每个月的天数为元素,按顺序输入进数组,又因为闰年的二月和非闰年的二月天数不同,因此我们要定义两个数组分别代表闰年和非闰年。
2:因为我们最后输入的日不一定是这个月的最后一天,因此我们需要少计算一个月,然后将前面月的天数相加,再加上输入的天数,即可得到最终结果

【代码】文章来源地址https://www.toymoban.com/news/detail-652611.html

#include <stdio.h>
int main()
{
	int year, month, day,sum=0;
	scanf("%d %d %d", &year, &month, &day);
	int run[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
	int notrun[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		for (int i = 0; i <= month - 2; i++)
		{
			sum = sum+run[i];
		}
		sum += day;
	}
	else
	{
		for (int i = 0; i <= month - 2; i++)
		{
			sum =sum+ notrun[i];
		}
		sum += day;
	}
	printf("%d", sum);
	return 0;
}

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

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

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

相关文章

  • C语言数据结构与算法

    冒泡排序 例题 顺序表下的 冒泡排序 注意:冒泡排序 稳定,最多执行n(n-1)/2次 选择排序不稳定,平均比较次数n(n-1)/2 直接插入排序,是在有序基础上,速度最快且稳定的排序方法。 希尔排序是 不稳定的 顺序查找 二分查找(非递归) 二分查找(递归) 数组 链表 查询 快 慢

    2024年02月06日
    浏览(55)
  • 数据结构和算法——用C语言实现所有图状结构及相关算法

    本文所有代码均在仓库中,这是一个完整的由纯C语言实现的可以存储任意类型元素的数据结构的工程项目。 首先是极好的工程意识,该项目是一个中大型的CMake项目,结构目录清晰,通过这个项目可以遇见许多工程问题并且可以培养自己的工程意识。 其次是优秀的封装性(

    2024年02月06日
    浏览(43)
  • 数据结构与算法——排序(C语言实现)

    ✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿 🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟 🌟🌟 追风赶月莫停留 🌟🌟 🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀🍀 🌟🌟 平芜尽处是春山

    2024年04月09日
    浏览(39)
  • C语言 数据结构--栈 括号匹配算法

    今天这一期使用栈来完成括号匹配算法 ① 栈结构 ② 初始化栈 ③ 入栈 ④ 出栈 ⑤ 判断栈是否为空 ⑤ 括号匹配 完整代码: 结果: (1)括号序列为char str[]={\\\'(\\\',\\\'{\\\',\\\'[\\\',\\\']\\\',\\\'}\\\',\\\')\\\'}; (2)括号序列为char str1[]={\\\'{\\\',\\\'(\\\',\\\'}\\\',\\\']\\\'};    

    2024年02月05日
    浏览(38)
  • C语言 数据结构与算法 I

    因为之前写算法都是用C++,也有了些C++基础,变量常量数据类型就跳过去吧。 首先是环境,学C++时候用Clion,C语言也用它写吧~ 新建项目,选C执行文件,语言标准。。。就先默认C99吧,反正是测试环境,应该问题不大 直接运行一手 嗯。。JB家的新UI。。真是。。。。。。。一

    2024年02月09日
    浏览(33)
  • 【C/C++数据结构与算法】C语言数据存储

    目录 一、大小端存储 二、整型提升和截断 三、数据的二进制存储 四、结构体内存对齐 大端存储 :数据的低位字节存储在高地址 小端存储 :数据的低位字节存储在低地址 不同编译器有不同的存储方式 提升 :短字节数据类型 --- 长字节数据类型 截断 :长字节数据类型 --

    2024年02月09日
    浏览(33)
  • 【学习笔记】数据结构算法文档(类C语言)

    1.1.1 线性表的顺序存储表示 1.1.2 顺序表中基本操作的实现 1.1.2.1 初始化 1.1.2.2 取值 1.1.2.3 查找 1.1.2.4 插入 1.1.2.5 删除 1.1.2.6 计数 1.2.1 单链表的定义和表示 ★ 关于结点 1.2.2 单链表基本操作的实现 1.2.2.1 初始化 1.2.2.2 取值 1.2.2.3 查找 1.2.2.4 插入 1.2.2.5 删除 1.2.2.6 前插法创建单

    2024年02月07日
    浏览(35)
  • 深入理解Java线程池ThreadPoolExcutor实现原理、数据结构和算法(源码解析)

    什么是线程池?         线程池主要是为了解决执行新任务执行时,应用程序为减少为任务创建一个新线程和任务执行完毕时销毁线程所带来的开销。通过线程池,可以在项目初始化时就创建一个线程集合,然后在需要执行新任务时重用这些线程而不是每次都新建一个线

    2024年02月07日
    浏览(34)
  • 数据结构英文习题解析-第一章 算法复杂度分析Algorithm Analysis

    前言:最近快到FDS考试了,po重刷了一下学校的题目,自己整理了一些解析orz 因为po在自己找解析和学习的过程中非常痛苦,所以在此共享一下我的题目和自己写的解题思路,欢迎各位指出错误~全章节预计会陆续更新,可在专栏查看~ HW1 1. The major task of algorithm analysis is to an

    2024年03月12日
    浏览(53)
  • (C语言)数据结构算法-病毒感染检测(BF算法&&KMP算法)

    病毒感染检测: 医学研究者最近发现了某些新病毒,得知它们的DNA序列都是环状的。为了快速检测出患者是否感染了相应的病毒,研究者将患者的DNA和病毒的DNA均表示成一些字母组成的字符串序列,然后检测某种病毒DNA序列是否在患者的DNA序列中出现过,如果出现过,则此人

    2024年02月08日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包