c语言每日一练(15)

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

前言:
每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,上学期间将看学业情况更新。

 五道选择题:

1、程序运行的结果为()

#include<stdio.h>
int main()
{
int pad = 0; int pAd = 0;
int sum = 5;
pad = 5;
pAd = (sum++,pAd++, ++pAd);
printf("%d %d\n", pAd,pad);
}

A、1,5      B、2,5      C、1,6     D、2,6

解析:首先定义sum和pad为5,接着是一串逗号表达式,从左往右进行,最后的值为最后一个表达式,我们可以走一下,sum++,令sum为6,pAd++,令pAd=1(注意:这里不用什么前置后置,你可以把逗号表达式之间的表达式看作一个单独的区块,计算机会执行完这个区块的内容才去执行别的),最后一步可以看作pAd=(++pAd),独立区块++pAd先执行,令pAd为2,,pad一直为5,所以最后打印出来的结果为,2,5,选B

前置后置结果一致 ,证明可以看作独立区块

c语言每日一练(15),每日一练,c语言,算法,数据结构 c语言每日一练(15),每日一练,c语言,算法,数据结构

 2、程序运行的结果为()

#include <stdio.h>
int sum(int a)
{
    int c = 0;
    static int b = 3;
    c += 1;
    b += 2;
    return (a + b + c);
}
int main()
{
    int i;
    int a = 2;
    for (i = 0; i < 5; i++) 
    { 
        printf("%d ", sum(a)); 
    } 
} 

A、 8 8 8 8 8          B、 9 11 13 15 17                 C、10 12 14 16 18          D、8 10 12 14 16 

解析:观察sum可以发现,它返回的值为a+b+c的和,而sum没有对a进行额外操作,所以每次a都是2;c每次进来都会被重定义为0,再c+=1,所以c每次都为1,再说下b,b是static类型的变量,也就是说b的生命域是全局的且它只会被定义一次,第一次b被定义为3,接着b+=2令b为5,第二次b+=2,令b为7,第三次,b为9,第四次b为11,第五次b为13,而a+c始终为3,所以最后打印的结果为3+5 3+7 3+9 3+11 3+13 =8 10 12 14 16选D

c语言每日一练(15),每日一练,c语言,算法,数据结构

3、关于if语句说法正确是( )
A、if语句后面只能跟一条语句
B、if语句中0表示假,1表示真,其他无意义
C、if语句时一种分支语句,可以实现单分支,也可以实现多分支
D、else语句总是和它的对其的if语句匹配 

解析:A选项错误,if后面可以根很多条语句,有{}即可。B选项错误,太片面了,c语言中非0的语句均为真。C选项正确,else if就是多分支。D选项错误,没有括号的情况默认和最近的匹配。

4、程序运行的结果为()

#include<stdio.h>
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;
}
int main()
{
  int x=3
  printf("%d",func(x));
}


A、 30    B、20    C、16    D、0

解析:switch中要如果没有break中止就会顺着走下去,这道题就是这样,它的case语句中均没有break,那么它就会顺着走下去,一直走到最后的b=0,所以最后返回的值也是0,选D

c语言每日一练(15),每日一练,c语言,算法,数据结构 5、程序运行的结果为()

#include <stdio.h>
int main()
{
   int a = 0, b = 0;
    // for循环将a和b的初始值均设置为1
   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;
}

A、7   B、8   C、22   D、死循环 

解析:观察代码可以发现主体部分是个循环,目标是打印出a的值,而a的值只会在循环结束时才会++,那么不难看出,完整进行循环的次数+1(为什么+1,因为跳出循环前a先++之后才执行break)就是a的值,b>=20会跳出循环,而b若%3==1就会增3,由于遇到了continue,所以b就会一直加3直到>=20,可以看出加7次3,b就会>=20,所以完整的循环进行了7次,所以最后a为8,选B 

c语言每日一练(15),每日一练,c语言,算法,数据结构

编程题1:

单词分析 - 蓝桥云课 (lanqiao.cn)

c语言每日一练(15),每日一练,c语言,算法,数据结构

思路:只需判断小写字母且一共有26个字母,所以创建一个长度为26的整型数组来储存每个字母出现的次数,接着比较得出最大即可,需要注意的一点就是记得储存对应的下标 

int main(int argc, char *argv[])
//这个参数不用看它,你就把它当作没有即可
{
int count[26]={0};
//分别储存26个字母的出现次数
char ch=0;
while((ch=getchar())!='\n')
{
  count[ch-'a']++;
  //对应字母-'a'可以得到对应的下标
}
int i=0;int max=0;int max_i=0;
for(i=0;i<26;i++)
{
   if(count[i]>max)
   {
     max=count[i];//储存最多出现次数
     max_i=i;//下标也储存
   }
}
printf("%c\n%d",max_i+'a',max);
}

编程题2: 

门牌制作 - 蓝桥云课 (lanqiao.cn)

 c语言每日一练(15),每日一练,c语言,算法,数据结构

提示:%10操作可以将数的最后一位取出,/10操作可以把数的最后一位删除 文章来源地址https://www.toymoban.com/news/detail-724248.html

#include <stdio.h>
int main()
{
  int i=0;int count=0;
  for(i=1;i<=2020;i++)
  {
    int number=i;
    while(number)
    {
      if(number%10==2)
      {
        count++;
      }
      number/=10;
    }
  }
  printf("%d",count);
  return 0;
}

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

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

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

相关文章

  • C语言每日一练--Day(15)

    本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题: 珠玑妙算 两数之和 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C语言天天练 🚚代码仓库:小小unicorn的

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

    目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:寻找奇数 思路一: 题二:寻找峰值 思路一: 本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵! 感谢大佬们的一键三连! 感谢大佬们的一键三连

    2024年02月10日
    浏览(48)
  • 【数据结构和算法15】二叉树的实现

    二叉树是这么一种树状结构:每个节点最多有两个孩子,左孩子和右孩子 重要的二叉树结构 完全二叉树(complete binary tree)是一种二叉树结构,除最后一层以外,每一层都必须填满,填充时要遵从先左后右 平衡二叉树(balance binary tree)是一种二叉树结构,其中每个节点的左

    2024年02月16日
    浏览(35)
  • 数据结构与算法入门书籍推荐(15本)

    1.《算法图解》 本书适合刚开始学习算法的初学者,它使用非常通俗易懂的语言,详细解释了各种基础算法的实现方法,包括快速排序、图论、动态规划和贪心算法等。 2.《算法导论》 这是一本通用的算法指南,涵盖了所有重要的算法和数据结构。尽管它可能对初学者来说过

    2024年02月11日
    浏览(47)
  • C语言每日一题:11.《数据结构》链表分割。

    题目链接: 1.构建两个新的带头链表,头节点不存储数据。 2.循环遍历原来的链表。 3.小于x的尾插到第一个链表。 4.大于等于x尾插到第二个链表。 5.进行链表合并,注意第二个链表的尾的下一个需要置空防止成环。 6.free两个头之前需要保存新的满足条件的单链表的头。 1.有

    2024年02月14日
    浏览(46)
  • C语言每日一题:13《数据结构》环形链表。

    题目链接: 使用快慢指针利用相对移动的思想: 1,令快指针(fast)速度为2. 2.慢指针(slow)速度为1. 3.以慢指针进入环中开始。 4。假设slow刚刚进入环中fast与它相距N。 如图所示: 1,令快指针(fast)速度为3.M 2.慢指针(slow)速度为1. 3.以慢指针进入环中开始。 4。假设slow刚

    2024年02月14日
    浏览(46)
  • 【算法每日一练]-图论(保姆级教程篇15 )#会议(模板题) #医院设置 #虫洞(模板题) #无序字母对 #旅行计划 #最优贸易

    目录 今日知识点: 求数的重心先dfs出d[1]和cnt[i],然后从1进行dp求解所有d[i] 两两点配对的建图方式,检查是否有环 无向图欧拉路径+路径输出 topo+dp求以i为终点的游览城市数 建立分层图转化盈利问题成求最长路 会议(模板题) 医院设置  虫洞(模版题) 无序字母对  旅行

    2024年01月21日
    浏览(44)
  • 【每日算法 && 数据结构(C++)】—— 03 | 合并两个有序数组(解题思路、流程图、代码片段)

    An inch of time is an inch of gold, but you can’t buy that inch of time with an inch of gold. An inch of time is an inch of gold, but you can\\\'t buy that inch of time with an inch of gold 给你两个有序数组,请将两个数组进行合并,并且合并后的数组也必须有序 这个题目要求将两个有序数组合并成一个有序数组。在数

    2024年02月11日
    浏览(56)
  • 【每日算法 && 数据结构(C++)】—— 02 | 数组的并交集(解题思路、流程图、代码片段)

    When you feel like giving up, remember why you started. 当你想放弃时,请记住为什么你开始 给你两个数组,请分别求出两个数组的交集和并集 在数学中,我们可以通过交集和并集来描述两个集合之间的关系。 交集(Intersection) :指的是两个集合中共有的元素组成的集合。可以用符号

    2024年02月11日
    浏览(53)
  • 【算法每日一练]-结构优化(保姆级教程 篇4 树状数组,线段树,分块模板篇)

    目录 分块 分块算法步骤: 树状数组 树状数组步骤: 线段树点更新 点更新步骤: 线段树区间更新 区间更新步骤: 不同于倍增和前缀和与差分序列。 前缀和处理不更新的区间和 差分处理离线的区间更新问题 倍增处理离线的区间最值问题 分块,树状数组,线段树: 分块处

    2024年02月04日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包