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

C语言问题总结(二)

一、输入函数和输出函数

1.输入函数scanf

(1)

问题

解析

scanf函数中格式控制后面应该是变量地址,A选项中应为&ch,而不是ch,所以错误。getchar函数没有参数,所以B、C选项错误。

总结

输入字符可以使用scanf函数,也可以使用getchar函数,注意getchar函数没有参数,并且一次调用只能输入一个字符。

其次scanf函数的使用如格式控制,格式的声明都要注意。

(2)

问题

总结

%m.nf格式是printf函数独有的,scanf函数不支持这个格式。

2.逗号表达式

问题

解析

这个表达式输入逗号表达式,从左往右执行每个表达式,值为最后一个表达式的值。本题执行顺序是先执行(k=3*2,k+4),而括号里先执行k=3*2,则k为6;再执行k+4,则k为10。所以括号内表达式得出的值就为10,此时整体变为10,k*3;k*3为18,所以最后表达式的值为18。

问题

解析

先执行右边的表达式,括号内也是一个逗号表达式,先执行a=5,然后执行b=5,随后a自减1变为4,;逗号表达式的值为b的值即5,再赋值给x。所以最后x为5,a为4,b也为5。

3.输出函数printf

3.1和逗号表达式的区别

printf函数的形式可以表现为printf(参数1,参数2,参数3,……,参数n),参数1就是指定输出格式,其余参数也可以出现表达式。但它们并不是逗号表达式,它们仍属于参数,只是用逗号分隔开来。 

这里需要注意的是,根据编译器不同,得到的结果也会不同,有些编译器按从右到左的顺序求值参数,这个顺序执行下来,输出是1,1,1。但是有些编译器是从左到右的顺序,这样就是1,2,2。输出是严格按照从左到右进行输出的。

本人接触的都是从右到左的顺序,所以这道题选A。

4.格式符

(1)带符号和不带符号

d和i都是带符号十进制形式,o、x(X)、u都是无符号形式并且不带前导符。如:c=026,以%o格式输出时为26。

y被默认定义成unsigned  int,即无符号整型,则C、D不符合条件,而A中%d是有符号的十进制,也不符合题意,所以选B。

(2)-1和65535

#include <stdio.h>
void main() {

	int a = -1;
	printf("%u,%o,%x\n", a,a);

	unsigned b = 65535;
	printf("%d,%o,%x",b,b,b);
  }

首先看运行结果:

 

事实上,这是因为unsigned的位数是由系统决定的,图中的运行结果是在32位系统情况下得到的。

65535实际变为二进制是1111111111111111(共16个1),但是在32位系统里他还需要在前面再添加16个0。这样在转为有符号的十进制时,因为最高位是0,所以计算下来为65535。

但是在16位系统里,它就只有16位,即16个1,这时候因为全为1表示-1的补码。所以按有符号十进制输出就为-1。

同样地,对于-1,在32位系统里以无符号整型输出应该为4294967295(即32位全为1的二进制)

所以具体得到什么值要看系统位数。

相关文章:

  • 数据分析的12个挑战及其解决方法
  • Event driven agentic document workflows 笔记 - 1
  • 开源软件许可证冲突的原因和解决方法
  • 【Linux】VMware Workstation Pro 17 安装教程
  • 【实战案例】用STAR+3W模型拆解电商支付系统设计文档
  • 移动端医疗AI诊断系统的设计思路与技术展望——多模态生理数据分析的理论框架探讨
  • 中小企业如何低成本构建高效专属网络?
  • 快速入手-基于Django的mysql配置(三)
  • 分布式中间件:RabbitMQ死信队列和延迟队列
  • 实验12深度学习
  • [samba配置]宿主机访问虚拟机目录
  • 网络华为HCIA+HCIP 广域网技术
  • Linux常用命令与权限理解总结
  • “三带一”算法题
  • 2025年渗透测试面试题总结- shopee-安全工程师(题目+回答)
  • 块与块参照的一些知识——CAD c#二次开发
  • 计算机毕业设计:基于JavaWeb的二手房交易系统的设计与实现
  • stm32 L432KC(mbed)环境使用大全
  • 整理和总结微信小程序的高频知识点
  • DooTask在Linux的离线部署教程
  • 巴基斯坦称成功拦截印度导弹,空军所有资产安全
  • 市自规局公告收回新校区建设用地,宿迁学院:需变更建设主体
  • 九家企业与上海静安集中签约,投资额超10亿元
  • 民生访谈|今年上海还有哪些重要演出展览?场地配套如何更给力?
  • 澎湃研究所“营商环境研究伙伴计划”启动
  • 2025上海科技节将于5月17日开幕,拟设6大板块专题活动