林州网站建设报价网页设计工作流程
林州网站建设报价,网页设计工作流程,类似5173的网站怎么做,分众传媒电梯广告价格表#x1f493;博客主页#xff1a;江池俊的博客⏩收录专栏#xff1a;C语言刷题专栏#x1f449;专栏推荐#xff1a;✅C语言初阶之路 ✅C语言进阶之路#x1f4bb;代码仓库#xff1a;江池俊的代码仓库#x1f389;欢迎大家点赞#x1f44d;评论#x1f4dd;收藏⭐博客主页江池俊的博客⏩收录专栏C语言刷题专栏专栏推荐✅C语言初阶之路 ✅C语言进阶之路代码仓库江池俊的代码仓库欢迎大家点赞评论收藏⭐表情分享⭕️ 文章目录 选择题编程题打印从1到最大的n位数计算日期到天数转换 前言 本专栏每篇练习将包括 5个选择题 2个编程题将涵盖C语言的不同方面包括基础语法、数据类型、控制结构、数组、指针和函数等。通过练习你将逐步掌握C语言的基础知识和常见问题提高你的编程技巧和解决问题的能力。我们希望这个博客能够为你提供有价值的练习资源让你在实践中不断进步。同时我们也鼓励你在练习过程中进行思考和创新尝试使用不同的编程方法和技巧。让我们一起挑战C语言练习题攻克每一个难点不断提升自己的编程技能在评论区分享你的练习心得和问题与我们一起交流和成长。 选择题
执行下面程序正确的输出是
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\nx, y);return 0;
}A: 5,7 B: 7,5 C: 3,8 D: 8,3 正确答案C 【解析】 swap函数调用时用的是全局变量主函数中定义的变量只在主函数中有效因为主函数也是一个函数它与其他函数是平行关系输出语句这里考虑局部优先的原则,故打印的x值为3y的值为8。 以下不正确的定义语句是
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[53]{0, 1, 3, 5, 7, 9}; 正确答案B 【解析】 本题B选项考查转义字符有如下格式但八进制数字是0-7没有8故B选项中’\8’是错误的 \ddd ddd表示1到3个八进制数 如\130 转义为 字符X \xhh hh表示1到2位十六进制数 如\x30 转义为 字符0 test.c 文件中包括如下语句文件中定义的四个变量中是指针类型的变量为【多选】
#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;A: a B: b C: c D: d 正确答案ACD 【解析】易错题 因为#define是宏定义仅仅是直接替换; INT_PTR a, b, 进行宏替换后代码是这样的int *a, b;这里的int *是a的类型b的类型是int故此次b只是int类型。而typedef是把该类型定义一个别名别名是一个独立的类型了使用这个类型创建的变量都是这个类型的。所以 acd才是指针类型。 若给定条件表达式 (M)?(a):(a--) 则其中表达式 M
A: 和 (M 0) 等价 B: 和 (M 1) 等价 C: 和(M !0 )等价 D: 和(M ! 1)等价 正确答案C 【解析】易错题 给定条件表达式(M)?(a):(a--)。 (表达式1)? (表达式2): (表达式3)为三目运算符。 三目运算符计算规则为先判断表达式1是否为真若为真则计算表达式2并将表达式2的结果作为整个表达式最终的结果表达式3不计算否则表达式3的结果为最终结果表达式2不计算。在此表达式中若M0为假计算a--; 若M≠0为真计算a; 若要求与M等价则要满足M取0时为假取非0数值时为真。 C选项中假定M取0则M表示假当M是0时,表达式M!0不成立为假计算a--;当M取非0数值时M为真表达式M!0成立为真计算a; 符合题意选C 有如下定义语句则正确的输入语句是【多选】
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 【解析】 根据C语言中的scanf函数正确的输入语句应该将变量的地址作为参数传递给scanf函数。 选项A和B是正确的输入语句。在选项A中虽然在第二个参数中使用c 与一般情况下使用数组名 c (即选项B) 稍有不同但两者地址值是一样的程序的效果相同因为它表示数组首元素的地址。而选项C和D均不正确因为在读取整数时需要使用b来获取变量b的地址。 编程题
打印从1到最大的n位数
【牛客网链接JZ17 打印从1到最大的n位数】
【题目信息】 【答案解析】
这里首先要清楚n位数中最大的数字实际上就是 10^n - 1 。 比如
1位数 10^1 - 1
2位数 10^2 - 1
3位数 10^3 - 1
...这个清楚后动态申请空间将数值填入就可以了需要注意的是数组下标从0开始而数值从1开始
int* printNumbers(int n, int* returnSize)
{*returnSize pow(10, n) - 1; //确定最大的数字int* arr (int*)malloc(sizeof(int) * (*returnSize));//申请足够大小的空间for (int i 0; i *returnSize; i) {arr[i] i 1;//下标从0开始而数值从1开始} return arr;
}【知识拓展】
1pow函数 2malloc函数 这里只是简单的介绍了malloc函数的原型具体如何使用还是需要大家多多探索毕竟熟能生巧大家只有多多练习才能提升自己的代码水平。
计算日期到天数转换
【牛客网链接HJ73 计算日期到天数转换】
【题目信息】 【答案解析】
这道题简单解法其实将每个月的天数枚举出来然后根据当前月份向前累加满月的天数然后再加上当前月所在的 天数。最终考虑平闰年的 2 月份区别是否增加一天。其中需要注意的是平年和闰年的判断而且是闰年的月份大于 2 的时候也就是 2 月走完总天数才能加 1 比 如 2000年2月18日 虽然是闰年但是 2月 都没走完那是不能加上闰年多出的一天的.
#include stdio.h
int is_leap_year(int year) //判断是否为闰年的函数
{if (year % 4 0 year % 100 ! 0 || year % 400 0) {return 1;} return 0;
}
int main()
{int month_day[] { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//下标对应月份int year, month, day;while (~scanf(%d %d %d, year, month, day))//多组输入{int total_day day;//先把当前月份天数加上if (is_leap_year(year) month 2){total_day 1;//若闰年且月份大于2月则在平年基础上1}for (int i month - 1; i 0; i--) {total_day month_day[i];//向前累加每月的天数即可}printf(%d\n, total_day);}return 0;
}【拓展】注意上述代码中的 while (~scanf(“%d %d %d”, year, month, day))这条语句也可以写成 while (scanf(“%d %d %d”, year, month, day)!EOF)。
scanf是一个函数用于从标准输入通常是键盘读取数据并将其存储到变量中。它的基本语法是
scanf(%format, variable1, variable2, ...)其中%format是用于指定输入数据的格式如整数%d浮点数%f字符%c等。variable1, variable2, …是要存储输入的变量的地址。
然后~是一个位运算符表示按位取反。它对操作数的每一位进行取反即把0变为1把1变为0。在计算机中数的存储是以二进制的形式进行的所以按位取反操作可以实现对一个数的所有二进制位取反。scanf返回值是成功读取数据的个数如果scanf遇到问题如用户输入的不是数字或者已经到达了文件尾那么scanf会返回-1-1在内存中存储的是补码其补码是全1所以~scanf取反后就变为全0就会返回0循环就会停止。 今天的内容就到这里了有什么问题的话欢迎大家在评论区讨论也可以私信博主为你解答如果觉得博主的文章还不错的话 请三连支持一下博主哦
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90003.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!