C语言好题解析(四)

目录

  • 选择题一
  • 选择题二
  • 选择题三
  • 选择题四
  • 选择题五
  • 编程题一

选择题一

已知函数的原型是: int fun(char b[10], int *a); 
设定义: char c[10];int d; ,正确的调用语句是( )
A: fun(c,&d); B: fun(c,d); C: fun(&c,&d); D: fun(&c,d);

【答案】A
【分析】
数组:在传参时我们需要注意参数类型,对于数组而言,传参时我们可以直接省略[]和里面的数字
指针:当传参时为指针时,我们就需要注意了,指针int*a表示传入参数为整形类型的指针地址,因此表示整形地址则需&和整形类型的元素d

选择题二

请问下列表达式哪些会被编译器禁止【多选】( )
int a = 248, b = 4;
int const *c = 21;
const int *d = &a;
int *const e = &b;
int const * const f = &a;
A: *c = 32; B: *d = 43 C: e=&a D: f=0x321f

【答案】ABCD
【分析】这道题注意是考察const的理解
int const c = 21因为const在c的左边,因此为常量指针,即c是不能改变的,所以c=32错误,但是只是*c不能改变,c是可以改变的,比如c=&a
const int d = &a因为const在d的左边,因此d不能改变,这个和上边的错误一样
int const e = &b const只在e的左边,因此只有e不能被改变,而e是可以改变的,因此e=&a错误,但是e=248是正确的

int const * const f = &a,我们可以看到有两个const,一个在f左边,另一个在f左边,因此不管是f还是f都是不能被改变的,f=0x321f是16进制,表示的是地址,反正不管是f还是*f改变都是错的

选择题三

以下程序的输出结果为( )
#include <stdio.h>
int i;
void prt()
{
for (i = 5; i < 8; i++)
printf("%c", '*');
printf("\t");
} 
int main()
{
for (i = 5; i <= 8; i++)
prt();
return 0;
}
A: *** B: *** *** *** *** C: *** *** D: * * *

【答案】A
【分析】注意int i是全局变量,因此生命周期和主函数一样,只有当程序销毁了才会消失
在prt循环后i=8,跳出prt后,主函数循环中i=8是满足i<=8,然后i++使i=9,由于i=9在prt中不满足循环条件i<8直接跳出循环,最终值输出了***
注意不是prt循环三次跳出后在主函数中再循环,然后又进prt中循环,这样的结果是B,是因为没有理解到全局变量的含义。
\t的含义约等于TAB键,可以理解为按了几次空格键
下面是我用调试对关键过程的截图
在这里插入图片描述在这里插入图片描述在这里插入图片描述

选择题四

下面代码段的输出是( )
int main()
{
int a=3;
printf("%d\n",(a+=a-=a*a));
return 0;
}
A: -6 B: 12 C: 0 D: -12

【答案】D
【分析】这种题我觉得就和我之前写的一篇博客讲的一样操作符详解下(非常详细)有点花里胡哨,根本没必要这样来写,如果分步骤来写的话清晰明了
下面是对这道题的分析
在这里插入图片描述
这种算法是从右向左进行的,因此先看a-=a*a,这样算出的结果a=-6,再看a+=a,这样算出结果是-12。

选择题五

下列不能实现死循环的是( )
A: while(1){} B: for(;1;){} C: do{}while(1); D: for(;0;){}

【答案】 D
【分析】对于while来说要想实现死循环,只需让while()里面的内容为真,并且while里面的语句没有break就可以实现死循环
而for中(;x;)x为1则为真死循环,为0则为假,不循环。

编程题一

题目链接

首先输入要输入的整数个数 n ,然后输入 n 个整数。
输出为 n 个整数中负数的个数,和所有正整数的平均值
结果保留一位小数。
注意: 0 即不是正整数,也不是负数,不计入计算 
本题有多组输入用例。
输入描述:首先输入一个正整数 n ,然后输入 n 个整数
输出描述:输出负数的个数,和所有正整数的平均值

【题目分析】题目要求输出负数的个数和正整数的平均值,并且要排除输入0的情况,因此需要用到if语句将这几种情况分开
我们假设sum=0为统计输入负数的个数,average=0为正整数的平均值,x为输入的数字,当输入负数是sum++,而输入正整数时average+x
0这种情况就有点麻烦,我们还需要设一个y=0,当输入0时y–,并且将x赋值为1,这样x有0变到1,y由0变到-1,这样输入0是x+y就可以抵消,并且y也就统计出了输入0的个数,之后我们就可以在计算平均值时加上y,就相当于减去输入0的个数,值得注意的是负数的个数也需要减去(我因为没有减所以一直没做出来)
【代码】

#include<stdio.h>
int main()
{int n, sum = 0, x, y = 0;double average = 0;scanf("%d", &n);for (int i = 1; i <= n; i++){scanf("%d", &x);if (x == 0){x = 1;average += x;/*因为这样做x+y=0,这样就可以抵消,并且n最后也可以减掉x=0的个数*/y--;}else if (x > 0){average += x;//x为正数}else{sum++;//x为负数}}if (n + y == 0)average = 0.0;//全部为0的情况else{average = average + y;/*不全部为0的情况+y后就把x=0变成x=1的都减掉*/n = n + y-sum;//减去x=0的个数average = average / n;//算平均值}printf("%d %.1f", sum, average);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/48255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java进阶(4)——结合类加载JVM的过程理解创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化

目录 引出类什么时候被加载JVM中创建对象几种方式1.new 看到new : new Book()2.反射 Class.forName(“包名.类名”)如何获取Class对象【反射的基础】案例&#xff1a;连接数据库方法 3.克隆&#xff08;拷贝&#xff09;clone浅拷贝深拷贝案例 序列化和反序列化对象流-把对象存…

【面试题】前端面试复习6---性能优化

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 性能优化 一、性能指标 要在 Chrome 中查看性能指标&#xff0c;可以按照以下步骤操作&#xff1a; 打开 Chrome 浏览器&#xff0c;并访问你想要测试…

lvs-DR

lvs-DR数据包流向分析 client向目标VIP发出请求。 DIR根据负载均衡算法一台active的RS&#xff08;RIR1&#xff09;&#xff0c;将RIP1所在的网卡的mac地址作为目标的mac地址&#xff0c;发送到局域网里。 RIRI在局域网中的收到这个帧&#xff0c;拆开后发现目标&#xff08…

IPEmotion交流电功率分析计算

一 应用背景 随着国内电动汽车行业的快速发展&#xff0c;在相同的道路环境和行驶状态下&#xff0c;增加电动车的整体续航里程和提升乘员对于行驶途中用电需求的满意度尤为重要。对此&#xff0c;需要采集试验过程中交直流电压电流信号&#xff0c;以计算出车辆各种部件输出和…

Docker容器与虚拟化技术:Docker镜像创建、Dockerfile实例

目录 一、理论 1.Docker镜像的创建方法 2.Docker镜像结构的分层 3.Dockerfile 案例 4.构建Systemctl镜像&#xff08;基于SSH镜像&#xff09; 5.构建Tomcat 镜像 6.构建Mysql镜像 二、实验 1.Docker镜像的创建 2. Dockerfile 案例 3.构建Systemctl镜像&#xff08;…

大数据平台需要做等保测评吗?怎么做?

大数据时代的数据获取方式、存储规模、访问特点、关注重点都有了很大不同&#xff0c;所以保证大数据平台数据安全尤其重要。因此不少人在问&#xff0c;大数据平台需要做等保测评吗&#xff1f;怎么做&#xff1f; 大数据平台需要做等保测评吗&#xff1f; 大数据平台是需要做…

数据结构之——(手撕)顺序表

本章会介绍的知识点如下图&#xff1a; 1&#xff1a; 顺序表的概念&#xff1a;顺序表是用一段物理地址连续的存储单元依次存储数据的线性结构&#xff0c;通常我们使用数组来表示&#xff0c;对数组进行增删查改。 顺序表的结构&#xff1a;逻辑结构与物理结构都是内存中一块…

AI Agent在情景猜谜场景下的AgentBench基准测试

目录 AgentBench评估哪些场景? 近日,来自清华大学、俄亥俄州立大学和加州大学伯克利分校的研究者设计了一个测试工具——AgentBench,用于评估LLM在多维度开放式生成环境中的推理能力和决策能力。研究者对25个LLM进行了全面评估,包括基于API的商业模型和开源模型。 他们发现…

docker之Consul环境的部署

目录 一.Docker consul的介绍 1.1template模板(更新) 1.2registrator&#xff08;自动发现&#xff09; 1.3agent(代理) 二.consul的工作原理 三.Consul的特性 四.Consul的使用场景 五.搭建Consul的集群 5.1需求 5.2部署consul 5.3主服务器[192.168.40.20] 5.4client部署&…

python实战【外星人入侵】游戏并改编为【梅西vsC罗】(球迷整活)——搭建环境、源码、读取最高分及生成可执行的.exe文件

文章目录 &#x1f3a5;前言&#x1f4bc;安装Pygame&#x1f50b;游戏的实现读写并存储【外星人入侵】游戏最高分游戏源码alien_invasion.pygame_functions.pyship.pyalien.pybullet.pybutton.pyscoreboard.pygame_stats.pysettings.py宇宙飞船和外星人的 .bmp类型文件 &#…

Spark 图计算ONEID 进阶版

0、环境信息 本文采用阿里云maxcompute的spark环境为基础进行的&#xff0c;搭建本地spark环境参考搭建Windows开发环境_云原生大数据计算服务 MaxCompute-阿里云帮助中心 版本spark 2.4.5&#xff0c;maven版本大于3.8.4 ①配置pom依赖 详见2-1 ②添加运行jar包 ③添加配置信…

JVM——JVM 垃圾回收

文章目录 写在前面本节常见面试题本文导火索 1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定1.5 主要进行 gc 的区域 2 对象已经死亡&#xff1f;2.1 引用计数法2.2 可达性分析算…

java面试基础 -- 深克隆 浅克隆

引例 说到java的克隆你还记得多少? 一说到克隆你可能就会想起来那个接口, 没错, 他就是Cloneable Cloneable是java里面内置的很常用的接口, 我们说 Object类中也有一个clone方法: 但是要想合法调用 clone 方法, 必须要先实现 Clonable 接口, 否则就会抛出 CloneNotSupportedEx…

如何下载和安装google字体(中文)

打开&#xff1a;https://fonts.google.com/ 点击字体 下载 解压 双击安装 查看 控制面板-》字体-》

武汉凯迪正大—变比组别测试仪

一、概述 在电力变压器的半成品、成品生产过程中&#xff0c;新安装的变压器投入运行之前以及根据国家电力部的预防性试验规程中&#xff0c;要求变压器进行匝数比或电压比测试。传统的变比电桥操作繁琐&#xff0c;读数不直观&#xff0c;且要进行必要的换算&#xff0c;测试时…

git拉取失败/git fatal终极解决方法

前言 被折磨不下20次总结出来的终极方案 步骤 0 首先关闭代理试试&#xff0c;不行就下一步 1 重置代理或者取消代理的方式 git config --global --unset http.proxy git config --global --unset https.proxy添加全局代理 git config --global http.proxy git config …

Docker容器:Docker-Compose

Docker容器&#xff1a;Docker-Compose 一.Docker-Compose概念 1.Docker-Compose使用场景 一个Dockerfile模板文件可以定义一个单独的应用容器&#xff0c;如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案&#xff0c;今天是介绍 Docker 官方产品 Docker Com…

【React】生命周期和钩子函数

概念 组件从被创建到挂载到页面中运行&#xff0c;再到组件不用时卸载的过程。 只有类组件才有生命周期。 分为三个阶段&#xff1a; 挂载阶段更新阶段销毁阶段 三个阶段 挂载阶段 钩子函数 - constructor 创建阶段触发 作用&#xff1a;创建数据 之前定义状态是简写&…

面试题-React(三):什么是JSX?它与常规JavaScript有什么不同?

在React的世界中&#xff0c;JSX是一项引人注目的技术&#xff0c;它允许开发者在JavaScript中嵌套类似HTML的标签&#xff0c;用于描述UI组件的结构。本篇博客将通过丰富的代码示例&#xff0c;深入探索JSX语法&#xff0c;解析其在React中的用法和优势。 一、JSX基础语法 在…

PHP服饰文化网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

一、源码特点 PHP 服饰文化网站系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 源码下载 https://download.csdn.net/download/qq_41221322/88236778 PHP服饰文化网站…