C语言题目强化-DAY14

题型指引

  • 一、选择题
  • 二、编程题


★★写在前面★★
本题库源自互联网,仅作为个人学习使用,记录C语言题目练习的过程,如果对你也有帮助,那就点个赞吧。


一、选择题

1、有以下函数,该函数的功能是( )

int fun(char *s)
{char *t = s;while(*t++);return(t-s);
}

A: 比较两个字符的大小
B: 计算s所指字符串占用内存字节的个数
C: 计算s所指字符串的长度
D: 将s所指字符串复制到字符串t中
正确答案:B
答案解析:循环在*t为0时停止,同时t++,t最后会停在字符串结束的’\0’之后的一个位置,t作为尾部指针减去头部指针就是整个字符串占用内存的字节数,包含\0在内;而c答案字符串长度不包括最后的\0,选项B正确。
2、若有“ float a[3]={1.5,2.5,3.5},pa=a;(pa++)*=3; ”,则*pa 的值是( )
A: 1.5 B: 2.5 C: 3.5 D: 4.5

正确答案:B
答案解析:在*pa=a中指针pa指向a[0];pa++返回值仍是操作之前的值;*(pa++)取pa指向的地址的值;*(pa++)*=3将该值变为原来的3
倍,也就是数组a的第一个值为4.5;由于pa++之后pa指针移动了sizeof(float)个字节,所以pa指向a[1],所以值为2.5,选项B正确。

3、以下程序运行后的输出结果是( )

#include <stdio.h>
int main()
{int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p = a + 5, *q = NULL;*q = *(p+5);printf("%d %d\n", *p, *q);return 0;
}

A: 运行后报错 B: 6 6 C: 6 11 D: 5 10

正确答案:A
答案解析:指针q初始化为NULL,接着又解引用指针q,是错误的,对NULL指针是不能解引用的,选项A正确。

4、设有定义char*p[]={“Shanghai”,“Beijing”,“Honkong”}; 则结果为j字符的表达式是( )A: *p[1] +3 B: *(p[1] +3) C: (p[3] +1) D: p[3][1]
正确答案:B
答案解析:B选项,p是个char
类型的数组,p[1]拿到字符串"beijing"的首地址,再加3便是’j’的地址,解地址拿到’j’,选项B正确。

5、以下叙述中正确的是( )
A: 即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同
B: 如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息
C: 设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL;
D: 指针变量之间不能用关系运算符进行比较

正确答案:B
答案解析:A 选项描述不正确,不同类型指针一般不可以直接赋值;C选项中,p=NULL;和p=0;是等价的;D选项中,指向同一数组的两
指针变量进行关系运算可表示它们所指数组元素之间的位置关系,选项B正确。

二、编程题

1、珠玑妙算游戏(the game of master mind)的玩法如下。

计算机有4个槽,每个槽放一个球,颜色可能是红色( R )、黄色( Y )、绿色( G )或蓝色( B )。例如,计算
机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。作为用户,你试图猜出颜色组合。打个比方,你
可能会猜YRGB 。要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。注
意,“猜中”不能算入“伪猜中”。
给定一种颜色组合solution 和一个猜测guess ,编写一个方法,返回猜中和伪猜中的次数answer ,其中answer[0]
为猜中的次数, answer[1] 为伪猜中的次数。

leetcode【leetcode 题号:面试题 16.15. 珠玑妙算】

示例:
输入: solution="RGBY",guess="GGRR"
输出: [1,1]
解释: 猜中1次,伪猜中1次。
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* masterMind(char* solution, char* guess, int* returnSize){
}
int* masterMind(char* solution, char* guess, int* returnSize){
*returnSize=2;
srand((unsigned)time(NULL));
int* arr=(int*)malloc(sizeof(int)*2);
int count1=0,count2=0,i=0,j=0;
for(i=0;i<4;i++)
{if(solution[i]==guess[i])count1++;
}
for(i=0;i<4;i++)
{for(j=0;j<4;j++){if(guess[i]==solution[j]){count2++;for(int k=0;k<4;k++){if(solution[k]==guess[i]){solution[k]=rand();guess[i]=rand();}}break;}}
}
arr[0]=count1;
arr[1]=count2-count1;
return arr;
}

2、给出一个整型数组 numbers 和一个目标值 target ,请在数组中找出两个加起来等于目标值的数的下标,返回
的下标按升序排列。

牛客网【牛客网题号: NC61 两数之和】

注意:本题只需要找到第一组符合要求的数据下标即可。不需要返回多组
示例:
输入:[3,2,4],6
返回值:[2,3]
说明:因为 2+4=6 ,而 2的下标为24的下标为3 ,又因为 下标2 < 下标3 ,所以输出[2,3]
/* C语言声明定义全局变量请加上static,防止重复定义 */
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) {
}
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) {int* index = (int*)malloc(sizeof(int) * 2);*returnSize = 2;for (int i = 0; i < numbersLen - 1; i++) {if (numbers[i] - 10 > target) { /continue; // 减去10之后仍比target大,则最终和一定不等于target,故可用continue跳过本轮循环}for (int j = i + 1; j < numbersLen; j++) {if (numbers[i] + numbers[j] == target) {index[0] = i + 1;index[1] = j + 1;return index;}}}return index;
}

代码思路:开辟元素个数为2的数组,遍历整个数组元素,判断元素是否符合最基本的两数之和可以等于target,如果可以的话,进行下一步判断,用以此元素之后的元素与该处元素进行相加的和的比较,满足题意则i和j就是数组两个元素。(为什么j是从i+1开始呢?因为i是从0开始进行遍历的,当遇到第一个能作为加数的元素时,j就可以从i+1开始遍历,只有当后面都不符合要求的时候,i才会加1,所以当i加到数组中间元素的时候,j根本不需要跟i之前的元素进行相加了,i在到达此时的i之前,已经判定过前面的i不可能跟后面的j进行相加和为target,所以j只需要从i+1开始执行即可。)

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

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

相关文章

wangeditor实时预览

<template><div><!--挂载富文本编辑器--><div style"width: 45%;float: left;margin-left: 2%"><p>编辑内容</p><div id"editor" style"height: 100%"></div></div><div style"w…

日本运营商启动先进边缘云技术研发

摘要&#xff1a;日本运营商乐天移动最近启动了为 5G 之后的下一个通信标准开发边缘平台功能的研发工作。 乐天移动&#xff08;Rakuten Mobile&#xff09;表示&#xff0c;其面向下一代通信的先进边缘云技术研发&#xff08;R&D&#xff09;项目已被日本国家信息通信技术…

获取WordPress分类链接

CMS模板主题首页多以分类列表的形式展示内容&#xff0c;一般需要在适当位置添加某分类归档页面链接的按钮&#xff0c;下面的代码可以帮你实现。 代码一、通过分类别名获取Wordpress分类链接&#xff1a; <?php $catget_category_by_slug(‘wordpress’); $cat_linksget_…

27. Spring源码篇之SpEL表达式之自定义解析模版

简介 其实前面文章我们已经介绍过了如何定义spring表达式的解析模版&#xff0c;但是那是直接使用表达式api的形式&#xff0c;对于使用spring的同学来说&#xff0c;更优雅的方式就是可以自定义一个扩展去修改 本文就是介绍如何通过Spring的扩展点修改表达式解析模版 自定义…

【Linux】信号

Linux 信号 1.信号介绍2.core dump3.发送信号3.1.kill3.2.send3.3.abort 4.信号产生4.1.软件条件产生信号4.1.1.SIGPIPE4.1.2.SIGALRM 4.2.硬件异常产生信号 5.信号处理6.可重入函数 & volatile7.SIGCHLD 1.信号介绍 信号本质是一种通知机制。 而进程要处理信号&#xff0…

windows通过regsvr32注册dll文件失败

1、注册dll文件失败 最近在研究中文输入法&#xff0c;下载SampleIME源码后编译得到SampleIME.dll&#xff0c;最后只需要将输入法安装&#xff08;即注册&#xff09;就可以使用了。 但是通过命令&#xff1a; regsvr32 C:\Windows\System32\SampleIME.dll 注册时却提示错…

【3 栈和队列】链队的操作。

结构体&#xff1a; typedef struct QNode{int data;struct QNode *next; }QNode;typedef struct{QNode *front,*rear; }*LinkQueue; 初始化、判空&#xff1a; void InitQueue(LinkQueue &Q){ //初始化 Q.frontQ.rear(QNode*)malloc(sizeof(QNode)); //建立头结点…

6.2 Windows驱动开发:内核枚举SSSDT表基址

在Windows内核中&#xff0c;SSSDT&#xff08;System Service Shadow Descriptor Table&#xff09;是SSDT&#xff08;System Service Descriptor Table&#xff09;的一种变种&#xff0c;其主要用途是提供Windows系统对系统服务调用的阴影拷贝。SSSDT表存储了系统调用的函数…

光线追踪-Peter Shirley的RayTracing In One Weekend系列教程(book1-book3)代码分章节整理

自己码完了一遍了&#xff0c;把代码分章节整理了一下&#xff0c;可以按章节独立编译&#xff0c;运行, 也可以直接下载编译好的release版本直接运行。 项目地址&#xff1a; Github: https://github.com/disini/RayTracingInOneWeekendChaptByChapt ​ ​ ​ ​

transformers pipeline出现ConnectionResetError的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

如果客户端同时有ipv4和ipv6,浏览器是如何选择用哪种ip

在互联网协议&#xff08;IP&#xff09;的发展历程中&#xff0c;IPv4和IPv6是两种主要的版本。对于一个客户端来说&#xff0c;同时拥有IPv4和IPv6的能力是常见的情况。那么&#xff0c;当一个客户端同时具有IPv4和IPv6的能力时&#xff0c;浏览器是如何选择使用哪种IP进行通…

内容运营常用的ChatGPT通用提示词模板

内容定位&#xff1a;请帮助我明确我们的内容定位&#xff0c;包括目标受众、内容类型、主题、风格等方面的内容&#xff0c;以便我能够更好地制定内容策略和规划。 内容策划&#xff1a;请帮助我制定一个详细的内容策划方案&#xff0c;包括内容主题、风格、形式、发布时间等…

软件测试高职教师组比赛复盘

1、考试分为四个模块&#xff1a; 任务1&#xff1a;自动化测试30分&#xff0c;4道题 任务2&#xff1a;单元测试20分&#xff0c;4道题 任务3&#xff1a;接口测试20分&#xff0c;2道题 任务4&#xff1a;性能测试30分&#xff0c;LoadRunner和Jmeter两个。 2、考试时间…

linux复习笔记05(小滴课堂)

hell脚本与crontab定时器的运用 查看状态&#xff1a; 关闭服务&#xff1a; 开启服务&#xff1a; 重启服务&#xff1a; crontab定时器的使用&#xff1a; 我们可以看到没有任何任务。 编辑&#xff1a; 我们可以看到这个任务了。 删除所有任务&#xff1a; 这代表着每分钟…

5.一维数组——输入一行字符,统计其中各个大写字母出现的次数。

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 四、举一反三一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为一维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 输入一行字符&#xff0c;统计其中各个大写字母出现的…

Android控件全解手册 - 自定义ViewGroup卫星导航菜单

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列

Redis序列化操作

目录 1.protostuff 的 Maven 依赖 2.定义实体类 3.序列化工具类 ProtostuffSerializer 提供了序列化和反序列化方法 4.测试 利用 Jedis 提供的字节数组参数方法&#xff0c;如&#xff1a; public String set(String key, String value) public String set(byte[] key…

LeetCode 1457. 二叉树中的伪回文路径

原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 耗时&#xff1a;28min48s C代码 dfs、二叉树前序遍历、哈希表记录 #include<bits/stdc.h> using namespace std;struct TreeNode {int val;TreeNode *left;TreeNode *rig…

HarmonyOS(六)——@Builder装饰器

前言 前面章节介绍了如何创建一个自定义组件以及认识页面和自定义组件生命周期。明白了自定义组件内部UI结构固定&#xff0c;仅与使用方进行数据传递。同时明白了自定义组件对应生命周期的机制管理。ArkUI还提供了一种更轻量的UI元素复用机制Builder&#xff0c;Builder所装饰…

CentOS7部署FTP服务器

首先准备一台centos7虚拟机&#xff0c;作为服务器IP地址必须是固定的。 vim /etc/sysconfig/network-scripts/ifcfg-ens33配置内容如下&#xff1a; TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no" BOOTPROTO"static" DEFROU…