当前位置: 首页 > news >正文

文山知名网站建设联系电话装修设计装饰公司

文山知名网站建设联系电话,装修设计装饰公司,php语言的网站建设,北京模板建站哪家好#x1f493;博客主页#xff1a;江池俊的博客⏩收录专栏#xff1a;C语言刷题专栏#x1f449;专栏推荐#xff1a;✅C语言初阶之路 ✅C语言进阶之路#x1f4bb;代码仓库#xff1a;江池俊的代码仓库#x1f389;欢迎大家点赞#x1f44d;评论#x1f4dd;收藏⭐ 文… 博客主页江池俊的博客⏩收录专栏C语言刷题专栏专栏推荐✅C语言初阶之路 ✅C语言进阶之路代码仓库江池俊的代码仓库欢迎大家点赞评论收藏⭐ 文章目录 选择题编程题求两个数的最小公倍数倒置字符串 前言 欢迎来到这个关于C语言的初阶测评题博客在这里我们将为您呈现一系列考察基础知识和编程技能的问题帮助您巩固对C语言的了解并提升编程能力。这次的测评题包含 15个选择题2个编程题,希望大家看完能够有所收获 选择题 下列程序执行后输出的结果为( ) #include stdio.h int cnt 0; int fib(int n) {cnt;if (n 0)return 1;else if (n 1)return 2;elsereturn fib(n - 1) fib(n - 2); } void main() {fib(8);printf(%d, cnt);//67 }A 41 B 67 C 109 D 177 正确答案B 67 【解析】 cnt 是一个全局变量用于统计递归调用次数。fib 函数用于计算斐波那契数列的第 n 项。在每次递归调用时会将 cnt 增加 1。main 函数调用 fib(8)即计算斐波那契数列的第 8 项同时会统计递归调用次数。最后printf 输出递归调用次数这里输出结果为 67。 需要注意的是这段代码使用递归来计算斐波那契数列但是递归在计算较大的斐波那契数时会存在重复计算效率较低。可以考虑使用循环或者记忆化递归等方法来优化计算。、 以下程序的输出结果是 int x 1; do {printf(%2d\n, x); } while (x--);A 1 B 无任何输出 C 2 D 陷入死循环 正确答案 D 陷入死循环 【解析】 do while循环语句会先执行循环内语句再判断x初值为1printf语句中打印的是x的值由于x是后置所以打印的值为1,执行完printf语句后x的值变为2随后进行循环条件的判断即判断x--是否为真由于是后置–所以此时x的值还是2判断结果为结果为真当再次进入循环后x的值变为1,再次循环上述步骤所以该程序会陷入死循环。 下面的代码段中执行之后i和j的值是什么 int i 1; int j; j i;A 1,1 B 1,2 C 2,1 D 2,2 正确答案 C 2,1 【解析】 在给定的代码段中i 被赋值为 1然后通过 j i; 因为是后置所以先将 i 的值赋给 j然后 i 的值自增。 所以i 的值变为 2j 的值为 1。 以下程序的k最终值是 int i 10; int j 20; int k 3; k * i j;A 90 B 50 C 70 D 30 正确答案 A 90 【解析】 首先计算 i j得到 10 20 30。 然后将 k 乘以 30所以 k 的值将变为 3 * 30 90。 以下程序的最终的输出结果为 #includestdio.h #includestdlib.h int a 1; void test() {int a 2;a 1; }int main() {test();printf(%d\n, a);return 0; }A 1 B 2 C 3 D 4 正确答案 A 1 【解析】 在这段代码中首先在全局作用域中定义了一个名为 a 的全局变量并初始化为 1。然后在 test 函数中定义了一个同名的局部变量 a其初始值为 2然后通过 a 1; 进行自增操作。由于这个自增操作仅在 test 函数的局部作用域内有效它不会影响到全局变量 a。在 main 函数中调用了 test 函数然后打印全局变量 a 的值。由于全局变量 a 没有在 test 函数内被修改所以 main 函数中的 printf 语句会输出全局变量 a 的值即 1。 下列描述中正确的是 A 表示mn为true或者mn为true的表达式为mnmn B switch语句结构中必须有default语句 C 如果至少有一个操作数为true则包含“||”运算符的表达式true D if语句结构中必须有else语句 正确答案 C 如果至少有一个操作数为true则包含“||”运算符的表达式true 【解析】 选项 A 错误因为 mnmn表达式表示的是 m 大于 n 并且同时小于 n这是不可能的因此整个表达式永远为 false。选项 B 错误switch 语句不必须包含 default 语句只有在需要处理没有匹配的情况时才需要使用 default语句。选项 D 错误if 语句可以没有 else 语句只要它满足特定的逻辑需求。 C 语言规定在一个源程序中main函数的位置。 A 必须在最开始 B 必须在系统调用的库函数的后面 C 可以任意 D 必须在最后 正确答案 C 可以任意 【解析】 在C语言中编译器会从程序的入口函数 main 开始执行而 main 函数可以放置在源文件的任何位置。 以下叙述不正确的是 A 一个C源程序可由一个或多个函数组成 B 一个C源程序必须包含一个main函数 C C程序的基本组成单位是函数 D 在C程序中注释说明只能位于一条语句的后面 正确答案 D 在C程序中注释说明只能位于一条语句的后面 【解析】 在C程序中注释可以位于一条语句的后面也可以位于一行的开头或者在任何有效的位置。注释用于解释代码的含义提高代码的可读性而不影响程序的执行。在C语言中有两种类型的注释 单行注释以 // 开始从双斜杠后面的内容一直到行末都被视为注释。多行注释以 /* 开始以 */ 结束之间的内容被视为注释。 所以在C程序中注释可以位于任何位置不仅仅是一条语句的后面。 以下叙述正确的是 A 在C程序中main函数必须位于程序的最前面 B C程序的每行中只能写一条语句 C C语言本身没有输入输出语句 D 在对一个C程序进行编译的过程中可发现注释中的拼写错误 正确答案 C C语言本身没有输入输出语句 【解析】 选项A错误main函数可以放在C程序的任何位置只要程序是按顺序编译的即可选项B错误在C语言中一条语句可以跨多行也可以一行写多条语句选项C正确C语言本身没有输入输出语句需要调用函数实现输入输出例如printf和scanf函数选项D错误注释中的拼写错误对编译没有影响编译不会检查注释中的内容。 执行如下代码 c的值是 int a 0, c 0; do {--c;a a - 1; } while (a 0);A 0 B 1 C -1 D 死循环 正确答案 C -1 【解析】 该循环会一直执行直到 a 的值不大于 0。初始时a 的值为 0因此循环会至少执行一次。 在每次循环中c 会递减 1a 会减少 1。因此第一次循环时c 的值会从 0 减少到 -1而 a 的值会从 0 减少到 -1。由于 a 的值已经不大于 0因此循环会在第一次执行后终止。 因此最终 c 的值是 -1。 假定 x 和 y 为 double 型则执行 x2 yx3/2 后 y 的值为 A 3.500000 B 3 C 2.000000 D 3.000000 正确答案 D 3.000000 【解析】 在 C 语言中整数除法的结果会被截断为整数部分所以 3/2 的结果是 1。然后这个结果 1 会与 x初始值为 2相加所以 y 的计算过程是 y x 1即 y 2 1结果是 3.000000。 以 下 for 循 环 的 执 行 次 数 是。 for(x0,y0; (y123)(x4); x) ;A 是无限循环 B 循环次数不定 C 4次 D 3次 正确答案 C 4次 【解析】 这个 for 循环的执行次数取决于条件 (y123)(x4) 的值。y的初始值被设为0然后在每次循环中y的值都会被重新赋值y123。那么条件表达式就会变为 (123 x 4)由于 123 是 true所以整个表达式的结果就取决于 x 4。因此只要 x 的值小于 4for 循环就会一直执行下去。因此for 循环会执行 4 次因为x初始值1为0当 x 的值等于 4 时条件 (x 4) 就为 false循环会停止执行。 若有定义语句 int year1009 *pyear 以下不能使变量 year 中的值增至 1010 的语句是 A *p1; B (*p); C (*p) D *p 正确答案 D *p 【解析】 A. *p1;这将通过指针 p 访问year再修改 year 变量的值将其增加 1变为 1010。B.(*p);同上先访问year变量再将变量的值加 1。C. (*p);同上只是后置改为前置了。D.*p;这将会对指针 p 先进行自增操作这会将 p 指向下一个地址但不会修改 year 的值。 选择表达式 11|10 的结果本题数值均为十进制 A 11 B 10 C 8 D 2 正确答案 A 11 【解析】 | 是按位或运算符。将两个数字的二进制表示进行按位或运算即对应位上只要有一个为1结果就为1否则为0。 11 的二进制表示是1011而 10 的二进制表示是 1010。 按位或运算后对应位上得到 1、0、1、1转换为十进制就是 11因此结果为 11|10 11。 11: 101110: 1010----------- 按位与结果: 1011 char a int b flat c double d 则表达式 a*bd-c 值的类型为 A float B int C char D double 正确答案 D double 【解析】 知识点根据C语言中的类型转换规则表达式中涉及到的操作数会被自动提升为更大的类型以使得表达式能够正常计算。在这里我们可以考虑操作数的类型提升顺序char - int - float - double。 所以根据表达式 a*bd-c其中 a 和 b 的类型是 char 和 int它们会被提升为 int 类型而 c 的类型是float会被提升为 double 类型。因此整个表达式会以 double 类型进行计算结果的类型也是 double。 编程题 求两个数的最小公倍数 【牛客网链接HJ108 求最小公倍数】 【题目信息】 【方法一】暴力求解假设最小公倍数为mm从1开始每次增加1 直到m能同时整除输入的这两个数时m就是最小公倍数。 #includestdio.h int main() {int a, b;while (scanf(%d %d, a, b) ! EOF)//多组输入{int m 1;while (1){if (m % a 0 m % b 0)break;m;}printf(%d\n, m);}return 0; }【方法二】用其中一个数假设为a* ii从 1 开始依次递增 1再利用这个数即a* i% 另一个数假设为b直到 a*i % b 0时a * i 即为最小公倍数。相比于方法一大大提高了效率 #include stdio.hint main() {int a, b;while (scanf(%d %d, a, b) ! EOF)//多组输入{int i 1;while (i * a % b ! 0){i;}printf(%d\n, i * a);}return 0; } 【方法三】两个数乘积除以它们的最大公因数求最大公因数方法辗转相除法。 辗转相除法介绍 辗转相除法也称为欧几里德算法是一种用于计算两个数的最大公约数GCD的方法。该算法基于以下原理两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。 以下是辗转相除法求最大公约数的详细步骤和示例 假设要求两个数 a 和 b 的最大公约数其中 a b。 计算 a 除以 b 的余数记为 ra b * q r其中 q 是商r 是余数。 若 r 等于 0则 b 即为最大公约数算法结束。 若 r 不等于 0则将 b 赋值给 a将 r 赋值给 b然后回到步骤 2。 重复执行步骤 2~4直到余数为 0。此时的 b 就是两个数的最大公约数。 以下是一个示例求解最大公约数 GCD(48, 18) 初始值a 48b 18。 计算商和余数48 ÷ 18 2 余 12。 更新 a 和 ba 18b 12。 计算商和余数18 ÷ 12 1 余 6。 更新 a 和 ba 12b 6。 计算商和余数12 ÷ 6 2 余 0。 余数为 0算法结束。最大公约数为 6。 通过上述步骤我们得出了最大公约数 GCD(48, 18) 6。 辗转相除法的优点在于它的迭代过程非常简单且有效。它被广泛用于计算最大公约数和最小公倍数以及其他一些数学和算法问题中。 #include stdio.hint main() {int a, b;while (scanf(%d %d, a, b) ! EOF)//多组输入{int producta*b;//计算a、b的乘积int ra%b;while(r!0){ab;br;ra%b;}//当c0时b的值就是最大公因数printf(%d\n,product/b);}return 0; }倒置字符串 【牛客网链接OR62 倒置字符串】 【题目信息】 【方法一】直接逆序打印从后往前依次打印单词因为单词间以空格字符为界所以可以从字符串末尾遍历计算出空格的位置每次计算到空格的位置那么此位置1就是单词首字母的位置拿到这个地址打印字符串即可打印完后将空格位置改成 ‘\0’ 依次重复上述步骤直到遍历完这个字符串为止。 #includestdio.h #includestring.hint main() {char arr[100] { 0 };gets(arr);int sz strlen(arr);while (sz){if (arr[sz] ){printf(%s , arr[sz 1]);arr[sz] \0;//打印完将字符串截断去除打印完的字符}sz--;}printf(%s, arr);return 0; }【方法二】先逆序整个字符串再逆序每个单词也可以反过来先逆序每个单词再逆序整个字符串 #includestdio.h #includestring.h void reverse(char* left, char* right)//逆序字符串函数 {while (left right){char temp *left;*left *right;*right temp;left;right--;} }int main() {char str[101] {0};//I like beijing.\0// 注意不能使用scanfscanf遇到空格一次输入接收就结束了gets(str);//输入字符串//scanf(%[^\n]s, str);//输入一串字符不包含\n。第二种输入字符串方法// int ch 0;// int i 0;// while ((ch getchar()) ! \n)// {// str[i] ch;// } //第三种输入字符串的方法使用getcharint len strlen(str);//1.逆序字符串reverse(str, str len - 1);//2.逆序每个单词char* cur str;while (*cur){char* start cur;//记录单词首字符的位置while(*cur ! *cur ! \0){cur;}char* end cur - 1;//记录单词末尾的位置reverse(start, end);if (*cur ! \0){cur;}}printf(%s\n, str);return 0; }今天的内容就到这里了有什么问题的话欢迎大家在评论区讨论也可以私信博主为你解答如果觉得博主的文章还不错的话 请三连支持一下博主哦
http://www.hkea.cn/news/14350096/

相关文章:

  • 新手学做网站从哪里开始做网站需要商标注册吗
  • 广州市官网网站建设哪家好网站开发实训报告参考文献
  • 做网站公司怎样全国十大外贸平台
  • 湘潭网站建设口碑好磐石网络泉州关键词优化
  • 怎么做网站最便宜wap入口
  • 淄博亿泰网站建设推广建设外贸网站注意什么
  • 石家庄网络公司排名企业网站优化面向什么工作
  • 全县网站建设管理工作会议召开美发培训职业学校
  • 买外贸服装去哪个网站河北网站搜索排名优化方案
  • 少主网络建站拼团网站建设
  • 网站正能量大全小制作简单易学
  • 电商类网站开发费用怎么修改网站的源代码
  • 自适应网站推广松江网站建设品划网络
  • 深圳微信网站开发公司网站建设 总体目标
  • 南阳网站运营网站建设评价
  • 主机做网站服务器怎么设置网站上怎么做返回主页链接
  • 免费企业网站空间昆明网站建设方案优化
  • 如何做网络推广赚钱深圳网站开发搜行者seo
  • 云南最便宜的网站建设全网推广成功再收费
  • 织梦网站漏洞伊宁市建设局网站
  • 湖南省建设厅网站购物网站建设市场调查论文
  • 做五金找订单查什么网站企业大全企业名录
  • 南京律师网站建设描述网站开发的流程
  • xxx网站建设策划书范文建立网站 英语怎么说
  • 唯美网站建设手机上做网站的软件
  • 石家庄无极网站建设那个网站建设好
  • 哪个网站美丽乡村做的比较好应用市场下载安装软件
  • 服装网站建设任务表网络信息设计
  • 广州做网站发多少钱高邮建设局网站
  • 湛江个人网站制作在哪里做网络规划设计师报考多少钱