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

C语言笔试训练【第12天】

文章目录

  • 1、请阅读以下程序,其运行结果是( )
  • 2、假设编译器规定 int 和 short 类型长度分别为32位和16位,若有下列C语言语句,则 y 的机器数为( )
  • 3、下列程序的输出结果是什么( )
  • 4、C 语言中,下列运算符优先级最高的是 ( )
  • 5、要使 a 的低四位翻转,需要进行操作是( )
  • 数字颠倒
  • 单词倒排

1、请阅读以下程序,其运行结果是( )

#include<stdio.h>
int main()
{char c = 'A';if ('0' <= c <= '9') printf("YES");else printf("NO");return 0;
}

A: YES B: NO C: YESNO D: 语句错误

‘0’<=c<=‘9’并非判断x大于等于字符0,小于等于字符9,而是先执行’0’<=c,使用这个表达式的结果再和’9’比较,‘0’的ASCII码值是48,‘A’的ASCII码值是’65’,故’0’<c是真值1,1无疑是小于字符’9’的,最终是真,所以选 A

2、假设编译器规定 int 和 short 类型长度分别为32位和16位,若有下列C语言语句,则 y 的机器数为( )

unsigned short x = 65530;
unsigned int y = x;

A: 0000 7FFA B: 0000 FFFA C: FFFF 7FFA D: FFFF FFFA

unsigned short类型的x变量2个字节保存了65530,十六进制形式为0xFFFA,x给y赋值时会整型提升,而无符号数在提升时高位补0,其实就相当于把x的值放在了y的低2个字节的空间中,故选B

3、下列程序的输出结果是什么( )

#include<stdio.h>
int main()
{int n = 1001;int ans = 0;for (int i = 1; i <= n; ++i){ans ^= i % 3;}printf("%d", ans);return 0;
}

A: -2 B: 0 C: 1 D: 2

i % 3 的值按1、2、0循环,可推算出ans按1、3、3、2、0、0循环,循环进行1001次,而1001%6=5,也就是ans按规律得到的第5个数为最终结果,故ans=0。
在这里插入图片描述

4、C 语言中,下列运算符优先级最高的是 ( )

A: ! B: % C: >> D: ==

单目运算符的优先级通常都比较高,具体情况可查阅运算符优先级表格,所以选 A

5、要使 a 的低四位翻转,需要进行操作是( )

A: a|0xF B: a&0xF C: a^0xF D: ~a

十六进制数0xF是4位1,参与运算时整型提升,高位都是0。低四位和1异或,01是1,11是0;高位和0异或,00是0,10
是1。故而可以通过异或F使得a的低四位翻转,并保持高位不变。

数字颠倒

输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
数据范围:0 < n < 2^30-1

输入描述:输入一个int整数
输出描述:将这个整数以字符串的形式逆序输出
在这里插入图片描述

因为要输出字符数字,数字字符的ASCII码加48即可转化为字符数字,然后逆序输出即可。当然,如果使用除法的话,0要单独考虑。

#include <stdio.h>
int main() {int n=0;scanf("%d",&n);//数字ASCII加48即可到达字符数字int i=0;for(i=n;i>0;i/=10){int ret=i%10;printf("%c",ret+48);}if(n==0){printf("%c",n+48);} return 0;
}

单词倒排

对字符串中的所有单词进行倒排。
说明:
1、构成单词的字符只有26个大写或小写英文字母;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
数据范围:字符串长度满足 :1≤n≤10000

输入描述:输入一行,表示用来倒排的句子
输出描述:输出句子的倒排结果
在这里插入图片描述

函数 isalpha ,用来判断一个字符是不是字母。
在这里插入图片描述
这道解采用了双指针的思路,从后开始,一个指针指向单词的开头,一个指针指向单词的末尾,如果遇到非字母字符,就将头指针减减,知道找到字母字符,再将头指针赋值给尾指针,然后再控制头指针找到单词的开头(非字母字符的下一个)

#include <stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main() {char*str=(char*)malloc(sizeof(char)*10000);char*str2=(char*)malloc(sizeof(char)*10000);gets(str);int len=strlen(str);int p1=len-1,p2=0,count=0;while(p1>=0){while(p1>=0&&!isalpha(str[p1]))p1--;p2=p1;while(p1>=0&&isalpha(str[p1])){p1--;} for(int i=p1+1;i<=p2;i++){str2[count]=str[i];count++;}str2[count]=' ';count++;}puts(str2);
}
http://www.lryc.cn/news/130922.html

相关文章:

  • 外网连接局域网的几种方式?快解析内网穿透安全便利吗?
  • 基于互斥锁的生产者消费者模型
  • USB隔离器电路分析,SA8338矽塔sytatek电机驱动,源特科技VPS8701,开关电源,电源 大师
  • TPC-DS 测试是否支持 Glue Data Catalog?
  • 网络编程(8.14)TCP并发服务器模型
  • 认识负载均衡||WEBSHELL
  • Chapter 15: Object-Oriented Programming | Python for Everybody 讲义笔记_En
  • 模板编程-成员特化
  • 信安通用基础知识
  • 网上购物系统的设计与实现/在线商城/基于spring boot的电商平台/基于Java的商品销售系统
  • uniapp项目-配置store文件夹
  • element表格多选实现
  • 宠物智能自动喂食器方案设计
  • 学习笔记230818---对于promise失败状态处理的重要性
  • 【Redis】什么是缓存击穿,如何预防缓存击穿?
  • Android 13.0 强制app横屏显示
  • 平方数之和(力扣)双指针 JAVA
  • 深入浅出Pytorch函数——torch.nn.init.sparse_
  • OpenCV实现BGR2BayerGB/BG格式的转换
  • Gateway网关路由以及predicates用法(项目中使用场景)
  • 深入浅出Pytorch函数——torch.nn.init.constant_
  • centos mysql8解决Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  • Docker实战:Docker常用命令
  • 基于51单片机直流电机转速数码管显示控制系统
  • 小程序商品如何指定打印机
  • LLaMA-7B微调记录
  • 域名子目录发布问题(nginx、vue-element-admin、uni-app)
  • 【环境配置】Windows 10 安装 PyTorch 开发环境,以及验证 YOLOv8
  • 数学建模之“层次分析法”原理和代码详解
  • 使用IText导出复杂pdf