C语言每日一练(15)
作者:小教学发布时间:2023-09-19分类:程序开发学习浏览:82
前言:
每日一练系列,每一期都包含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
前置后置结果一致,证明可以看作独立区块
他说:
第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*、*9 11 13 15 17月11日13日15日17月11日,日本银行*、*,*10 12 14 16 18 20月10日14日18日20日,日本银行*、8 10 12 14 16 18*
解析:观察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,所以最后打印的结果为8 10 12 14 16 18,选D
3、关于if语句说法正确是()
A、if语句后面只能跟一条语句
B、if语句中0表示假,1表示真,其他无意义
C、If语句时一种分支语句,可以实现单分支,也可以实现多分支
D、Else语句总是和它的对其的If语句匹配
解析:A选项错误,如果为后面可以根很多条语句,有{}即可。B选项错误,太片面了,c语言中非0的语句均为真。C选项正确,否则为就是多分支。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
第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。
编程题1:
单词分析-蓝桥云课(兰桥网)
思路:只需判断小写字母且一共有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:》
门牌制作-蓝桥云课(兰桥网)
他说:
提示:%10操作可以将数的最后一位取出,/10操作可以把数的最后一位删除:
#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;
}
- 上一篇:Hadoop的HDFS的集群安装部署
- 下一篇:[前端]实际开发案例
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7鸿蒙HarmonyOS实战-ArkUI组件(GridRow/GridCol)
- 8[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版