字符串相关笔试题

合集下载

PHP试题

PHP试题

D MongoDB支持CAP定理中的AP,MySQL支持CAP中的CA,全部都支持不可能存在。
16、关于设计模式的说法,错误的是:
A 创立型模式的根本意图是要把对象的创建和使用分离的责任进行分离,从而降低系统的耦合度。
B MVC模型的基本工作原理是基于观察者模式,实现是基于命令模式。
C fsockopen()和fputs() 结合起来可以发送邮件,也可以用来抓取网页内容,下载ftp文件等。
D 如果表单中没有选择上传的文件,则 PHP 变量 的值将为NULL 。
13、关于Mysql索引的说法,不对的是:
A 一般情况下不鼓励使用like操作,类似的“ like "abc%" ” 可以使用到索引。
史上最难PHPer笔试题
1、有关PHP字符串的说法,不对的是:
A PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全。
B 如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1。
C 一个布尔值 Boolean 的 true 被转换成 string 的 “ 1 ”,false 被转换成空字符串。
15、以下关于NOSQL的说法,不对的是:
A Redis支持字符串、哈希、列表、集合、有序集合等数据结构,目前Redis不支持事务。
B MongoDB不用先创建Collection的结构就可以直接插入数据,目前MongoDB不支持事务。
C Memcache既支持TCP协议,也支持UDP协议,我们可以把PHP的Session存放到Memcache中。
C Shell下执行命令“ :(){:|:& };: ” ,系统会没有响应,只能重启了。

python 字符串题

python 字符串题

以下是一个Python 字符串的题目:
题目:将一个字符串中的所有字符按照其出现次数进行排序,并返回排序后的字符串。

示例:
输入: "abcaabb"
输出: "abc"
实现思路:
1.遍历字符串,统计每个字符的出现次数。

2.将字符和出现次数作为键值对存储在字典中。

3.按照字符的出现次数对字典进行排序。

4.根据排序后的字典顺序重新构建字符串。

下面是Python 代码实现:
python复制代码
def sort_string(s):
# 统计每个字符的出现次数并存储在字典中
char_count = {}
for char in s:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 按照字符的出现次数对字典进行排序
sorted_chars = sorted(char_count.items(), key=lambda x: x[1])
# 根据排序后的字典顺序重新构建字符串
sorted_string = ""
for char, count in sorted_chars:
sorted_string += char * count
return sorted_string
示例输出:
python复制代码
print(sort_string("abcaabb")) # 输出 "abc"。

Python字符串练习题

Python字符串练习题

Python字符串练习题1.输⼊⼀个⽉份数字,返回对应⽉份名称,此问题的IPO模式是:输⼊:输⼊⼀个表⽰⽉份的数字(1-12)处理:利⽤字符串基本操作实现该功能输出:输出对应的⽉份名称代码:#实例.pymonth="⼀⽉份⼆⽉份三⽉份四⽉份五⽉份六⽉份七⽉份⼋⽉份九⽉份⼗⽉份⼗⼀⽉⼗⼆⽉"for i in range(12): #插⼊循环,可循环12次n=eval(input("请输⼊你要转换的⽉份(1-12):")) pos=(n-1)*3 print("{}⽉份是{}".format(n,month[pos:pos+3]))运⾏结果:2.天天向上续。

尽管每天坚持,但⼈的发展能⼒并不是⽆限的,它符合特定模型。

假设能⼒增长符合如带有平台期的模型:以7天为周期,连续学习三天能⼒值不变,从第4天开始⾄第7天每天能⼒增长为前⼀天的1%。

如果七天中有⼀天间断学习,则周期从头计算。

请编写程序回答,如果初始能⼒值为1,连续学习365天后能⼒值是多少?代码:#3.2.pyx=1y=0.01a='asistent'b='giveup'temp=1state='asistent'for i in range(365):if state == a and (temp in [1,2,3]):x=xtemp = (temp + 1)%7elif state == a and (temp in [0,4,5,6]):x=x*(1+y)temp = (temp + 1)%7elif state == unstudy:temp = 0print("365天后的能⼒值为:{:.2f}".format(x))执⾏结果:3.回⽂数判断。

设n是⼀任意⾃然数,如果n的各位数字反向排列所得⾃然数与n相等,则n被称为回⽂数。

java字符串处理选择题附加答案解析

java字符串处理选择题附加答案解析

Java 字符串选择题附加答案解析1. 下列关于Java字符串的描述中,错误的是:A. 字符串是不可变的。

B. 字符串可以通过字符数组来初始化。

C. 字符串可以用’+’操作符连接。

D. 字符串可以被修改。

答案: D。

解析:Java字符串是不可变的,一旦创建就不能修改。

2. 给定以下Java代码片段:javaString str = "Hello, World!";变量’str’的值是:A. nullB. "Hello, World!"C. "Hello"D. "World!"答案: B。

解析:’str’被初始化为字符串字面量"Hello, World!"。

3. 给定以下Java代码片段:javaString str = "Hello";表达式’str.length()’的值是:A. 4B. 5C. 6D. 7答案: B。

解析:’str.length()’返回字符串’str’的长度,这里是5。

4. 给定以下Java代码片段:javaString str1 = "Hello";String str2 = "World";String result = str1 + ", " + str2 + "!";变量’result’的值是:A. "Hello World"B. "Hello, World"C. "Hello, World!"D. "HelloWorld!"答案: C。

解析:字符串’result’连接了’str1’、", "、’str2’和"!",其值为"Hello, World!"。

1.7编程基础之字符串(30题)

1.7编程基础之字符串(30题)

01:统计数字字符个数∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述输入一行字符,统计出其中数字字符的个数。

输入一行字符串,总长度不超过255。

输出输出为1行,输出字符串里面数字字符的个数。

来源习题(7-1) 医学部2010 期末试题樊波02:找第一个只出现一次的字符∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。

如果没有,输出no。

输入一个字符串,长度小于100000。

输出输出第一个仅出现一次的字符,若没有则输出no。

03:基因相关性∙∙提交∙统计∙提问总时间限制:1000ms内存限制:65536kB描述为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。

现比对两条长度相同的DNA序列。

首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。

接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。

输入有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。

输出若两条DNA序列相关,则输出“yes”,否则输出“no”。

04:石头剪子布描述石头剪子布,是一种猜拳游戏。

起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。

简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。

游戏规则:石头打剪刀,布包石头,剪刀剪布。

现在,需要你写一个程序来判断石头剪子布游戏的结果。

输入输入包括N+1行:第一行是一个整数N,表示一共进行了N次游戏。

计算机编程笔试题目及答案

计算机编程笔试题目及答案

计算机编程笔试题目及答案1. 问题描述小明是一名计算机科学专业的学生,他正在准备参加一场计算机编程笔试。

为了提高自己的编程水平,他收集整理了一些常见的编程笔试题目及其参考答案。

下面是他整理的一部分题目及答案。

希望对大家的学习有所帮助。

2. 题目一:字符串反转题目描述:请编写一个函数,接收一个字符串作为参数,并返回将该字符串反转后的结果。

输入:hello world输出:dlrow olleh参考答案:```pythondef reverse_string(string):return string[::-1]# 测试print(reverse_string("hello world")) # 输出:dlrow olleh```3. 题目二:判断素数题目描述:请编写一个函数,接收一个正整数作为参数,并判断该数是否为素数(只能被1和自身整除的数)。

输入:17输出:是素数参考答案:```pythondef is_prime(num):if num <= 1:return Falsefor i in range(2, int(num**0.5) + 1):if num % i == 0:return False# 测试print(is_prime(17)) # 输出:是素数```4. 题目三:链表反转题目描述:请编写一个函数,将给定链表反转,并返回反转后的链表头节点。

给定链表:1 ->2 ->3 ->4 -> 5返回链表:5 -> 4 -> 3 -> 2 -> 1参考答案:```pythonclass ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextdef reverse_linked_list(head):curr = headwhile curr:next_node = curr.nextcurr.next = prevprev = currcurr = next_nodereturn prev# 构造测试链表head = ListNode(1)head.next = ListNode(2)head.next.next = ListNode(3)head.next.next.next = ListNode(4)head.next.next.next.next = ListNode(5)# 测试new_head = reverse_linked_list(head)while new_head:print(new_head.val, end=" -> ") # 输出:5 -> 4 -> 3 -> 2 -> 1 -> Nonenew_head = new_head.next```5. 题目四:数组去重题目描述:请编写一个函数,接收一个整数数组作为参数,并将数组中重复的元素去除,保留唯一的元素,并按升序排列。

c语言的考试题目答案及解析

c语言的考试题目答案及解析

c语言的考试题目答案及解析1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C解析:在C语言中,变量名必须以字母或下划线开头,不能以数字开头。

因此,选项A和D是不合法的。

选项B虽然以字母开头,但是数字紧跟字母,没有下划线或空格分隔,所以也是不合法的。

选项C 以下划线开头,符合变量命名规则。

2. 题目:以下哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A解析:在C语言中,字符串字面量应该用双引号括起来。

选项B使用了单引号,这是用于字符字面量的,而不是字符串。

选项C和D是重复的,并且由于格式问题,它们可能没有正确显示,但假设它们是正确的字符串字面量,那么答案应该是A,因为它是第一个出现的合法字符串字面量。

3. 题目:以下哪个选项是C语言中正确的函数声明?A. int function(int x) {}B. void function() {}C. int function(int x, int y) {}D. All of the above答案:D解析:在C语言中,函数声明可以包含参数列表,也可以没有参数。

选项A和C都包含了参数列表,并且参数类型是int,这是合法的。

选项B没有参数列表,并且指定了返回类型为void,这也是合法的。

因此,所有选项都是正确的函数声明。

4. 题目:以下哪个选项是C语言中正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... }C. if (x > 0) { ... } else { ... }D. if (x > 0) { ... } elseif { ... }答案:C解析:在C语言中,条件语句必须使用if关键字,并且条件表达式需要用括号括起来。

程序员笔试题

程序员笔试题

以下是一些常见的程序员笔试题:1. 编写一个函数,输入一个字符串,反转这个字符串并输出。

```c#include <stdio.h>#include <string.h>void reverse_string(char* str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");gets(str);reverse_string(str);printf("Reversed string: %s", str);return 0;}```2. 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的下标。

假设每个输入只有一个解决方案,并且不可以重复使用相同的元素。

```c#include <stdio.h>void find_two_sum(int nums[], int target, int* result) {int len = sizeof(nums) / sizeof(nums[0]);for (int i = 0; i < len - 1; i++) {for (int j = i + 1; j < len; j++) {if (nums[i] + nums[j] == target) {result[0] = i;result[1] = j;return;}}}}int main() {int nums[] = {2, 7, 11, 15};int target = 9;int result[2];find_two_sum(nums, target, result);printf("Two sum: %d, %d", result[0], result[1]);return 0;}```3. 实现一个函数,输入一个整数数组和一个整数k,找出数组中和为k的连续子数组的个数。

华为笔试题——编程题及答案.doc

华为笔试题——编程题及答案.doc

问题:输入一个字符串,用指针求出字符串的长度。

答案:ttinclude <stdio. h>int main (){char str[20], *p;int length=0;printf (''Please input a string: 〃);gets(str);p=str;while (*p++)(length++;}printf (''The length of string is %d\n〃,length);return 0;}问题:使用c语言实现字符串中子字符串的替换描述:编写一个字符串替换函数,如函数名为StrReplace(char* strSrc, char* strFind, char* StrReplace), strSrc为原字符串,strFind是待替换的字符串,StrReplace为替换字符串。

举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换为“ggg”这个字符串,结果就变成了:ABCDEFGHIJKLMNOPQgggUVWXYZ答案一:ftinclude <stdio. h>ftinclude <string. h>void StrReplace(char* strSrc, char* strFind, char* StrReplace); ftdefine M 100;void main ()(char s口二〃ABCDEFGHIJKLMNOPQRSTUVWXYZ〃;char sl[]=〃RST〃;char s2[]=〃ggg〃;StrReplace(s, si, s2);printf (/z%s\n,z, s);}void StrReplace(char* strSrc, char* strFind, char* StrReplace){int i=0;int j;int n=strlen (strSrc);int k=strlen(strFind);for (i=0;i<n;i++){if (* (strSrc+i) =*strFind){for(j=0;j<k;j++){if (* (strSrc+i+j) =* (strFind+j))(* (strSrc+i+j)=*(strReplace+j);}else continue;}}}}答案二:ftinclude <stdio. h>ftdefine MAX 100StrReplace(char *s, char *sl, char *s2) {char *p;for(; *s; s++) {for(p = si; *p && *p !二*s; p++);if (*p) *s 二*(p - si + s2);int main ()char s[MAX]; 〃s是原字符串char si [MAX], s2[MAX] ; 〃sl 是要替换的//s2是替换字符串puts (,z Please input the string for s:〃);scanf (〃%s〃,s);puts (,z Please input the string for sl:〃);scanf(〃%s〃,si);puts (/z Please input the string for s2:〃);scanf(〃%s〃,s2);StrReplace(s, si, s2);puts (z,The string of s after displace is:〃);printf (〃%s\n〃,s);return 0:答案三:ftinclude <stdio. h>ftinclude <stdlib. h>ftinclude <string. h>ftdefine M 100void StrReplace(char* strSrc, char* strFind, char* StrReplace);int main ()(char s [] =,Z ABCDEFGHIJKLMNOPQRSTUVWXYZ";char si □二〃RST〃;char s2 □=〃gggg〃;StrReplace(s, si,s2);printf(〃%s\n〃,s);return 0:}void StrReplace(char* strSrc, char* strFind, char* StrReplace)if(^strSrc = *strFind){if(strncmp(strSrc, strFind, strlen(strFind)) = 0 ){int i 二strlen(strFind);int j 二strlen(strReplace);printf (z/i 二%d, j 二%d\n〃,i, j);char *q = strSrc + i;printf(〃*q 二%s\n〃, q);while((*strSrc++ = *strReplace++) != ' \0');printf (/z strSrc - 1 = %s\n,/, strSrc - 1);printf(〃*q = %s\n〃, q);while((*strSrc++ = *q++) != '\0');}else{strSrc++;}}else{strSrc++;}}}问题:编写一个程序实现功能:将字符串” Computer Secience”赋给一个字符数组,然后从第一个字母开始间隔的输出该串,用指针完成。

python 字符串 选择题

python 字符串 选择题

Python字符串选择题字符串是编程中常用的数据类型之一,掌握字符串的操作对于编程是非常重要的。

下面给出一些关于Python字符串操作的选择题,希望对大家的学习有所帮助。

1. 下面哪个Python字符串方法可以返回指定字符在字符串中第一次出现的索引位置?A. find()B. index()C. search()D. locate()2. 下面哪个方法可以用于将字符串转换为小写字母?A. lower()B. tolower()C. casefold()D. small()3. 以下哪个方法可以用于判断字符串是否只包含字母和数字?A. isalnum()B. isalpha()C. isnumeric()D. isalphanumeric()4. 下面哪个方法可以用于将字符串按照指定的分隔符拆分成多个子串?A. split()B. partition()C. slice()D. divide()5. 以下哪个方法可以用于移除字符串首尾指定的字符?A. trim()B. strip()C. remove()D. clear()6. 下面哪个方法可以用于将字符串中的所有字母转换为大写字母?A. caseupper()B. toupper()C. upper()D. uppercase()7. 以下哪个方法可以用于返回字符串的长度?A. size()B. length()C. len()D. count()8. 下面哪个方法可以用于替换字符串中的指定子串?A. replace()B. subst()C. swap()D. update()9. 以下哪个方法可以用于判断字符串是否以指定的前缀开头?A. startswith()B. beginswith()C. isstart()D. prefixof()10. 下面哪个方法可以用于将字符串中的所有字母转换为小写字母?A. caselower()B. tolower()C. lower()D. lowercase()以上就是关于Python字符串操作的选择题,希望大家能够认真思考并选择正确的答案。

攻克大厂笔试题及答案

攻克大厂笔试题及答案

攻克大厂笔试题及答案1. 编程题:字符串反转- 题目描述:给定一个字符串,请编写一个函数,实现字符串的反转。

- 输入:字符串 `s`- 输出:反转后的字符串- 示例:- 输入:`hello`- 输出:`olleh`- 答案:```pythondef reverse_string(s):return s[::-1]```2. 算法题:寻找缺失的数字- 题目描述:给定一个包含 `n` 个元素的数组,其中 `n` 个连续整数从 `1` 到 `n`,但有一个数字缺失。

请找出缺失的数字。

- 输入:数组 `nums`- 输出:缺失的数字- 示例:- 输入:`[3, 2, 1]`- 输出:`4`- 答案:```pythondef missing_number(nums):expected_sum = len(nums) * (len(nums) + 1) // 2actual_sum = sum(nums)return expected_sum - actual_sum```3. 数据结构题:链表反转- 题目描述:给定一个单链表的头节点,请实现一个函数,将链表进行反转,并返回反转后的头节点。

- 输入:链表头节点 `head`- 输出:反转后的链表头节点- 答案:```pythonclass ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextdef reverse_list(head):prev = Nonecurrent = headwhile current:next_node = current.nextcurrent.next = prevprev = currentcurrent = next_nodereturn prev```4. 系统设计题:设计一个缓存系统- 题目描述:设计一个缓存系统,要求支持以下操作:- `get(key)`: 如果键存在于缓存中,则获取其数据值(总是正数),否则返回 -1。

第6章-数组和字符串-练习题

第6章-数组和字符串-练习题

第6章-数组和字符串-练习题一、选择题1.下面正确的初始化语句是___A. char str[]="hello";B. char str[100]="hello";C. char str[]={'h','e','l','l','o'};D. char str[]={'hello'};2.定义了一维int型数组a[10]后,下面错误的引用是___A. a[0]=1;B. a[10]=2;C. a[0]=5*2;D. a[1]=a[2]*a[0];3.下面的二维数组初始化语句中,正确的是____A. float b[2][2]={0.1,0.2,0.3,0.4};B. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4.引用数组元素时,数组下标可以是____A. 整型常量B. 整型变量C. 整型表达式D. 以上均可5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是____A. char str[5]="hello";B. char str[]={'h','e','l','l','o','\0'};C. char str[5]={"hi"};D. char str[100]="";7.给出下列代码,则数组初始化中哪项是不正确的?byte[]array1,array2[];byte array3[][];byte [][]array4;A.array2 = array1 B.array2=array3C.array2=array4 D.array3=array48.下面程序的运行结果是____main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 509.下面不是创建数组的正确语句A.float f[][]=new float[6][6];B.float f[]=new float[6];C.float f[][]=new float[][6];D.float[][]f=new float[6][];10.下列关于Java语言的数组描述中,错误的是()。

字符串例题

字符串例题

字符串例题
以下是一些与字符串相关字符串例题:
1.编写一个函数,将字符串中的所有字母转换为大写。

2.编写一个函数,将字符串中的所有字母转换为小写。

3.编写一个函数,判断字符串是否为回文字符串。

4.编写一个函数,将字符串中的所有单词首字母转换为大写。

5.编写一个函数,将字符串中的所有单词逆序排列。

6.编写一个函数,将字符串中的所有单词反转。

7.编写一个函数,统计字符串中出现的字符频率。

8.编写一个函数,统计字符串中出现的单词频率。

9.编写一个函数,将字符串中的所有连续重复字符替换为单个字符。

10.编写一个函数,将字符串中的所有连续空格替换为单个空格。

请注意,这些练习题只是示例,实际上还有很多其他的字符串相关的问题可以进行练习和探索。

C语言字符串笔试题_笔试题目

C语言字符串笔试题_笔试题目

C语言字符串笔试题C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。

下面就由小编为大家介绍一下C语言字符串笔试题的文章,欢迎阅读。

C语言字符串笔试题篇1对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。

[cpp] view plain copy print?#include#include#include#define N 30/*函数名称: fun*创建时间: 20xx.12.5*描述:对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。

*参数: char * s,int *m*返回值: chLetter(数组chLetter的首元素地址)*局部变量: char chLetter[N];* char chNumber[N];* int i,j,k;/char * fun(char * s,int *m) //参数m是通过调试才想到的{char chLetter[N]; //用来存放字母char chNumber[N]; //用来存放数字int i,j,k;i=0; //初始化j=0; //j用来记录字母的个数k=0; //k用来记录数字的个数for (i=0; i{if (s[i] >= 'A' && s[i] <= 'Z' //将字母存入chLetter || s[i] >= 'a' && s[i] <= 'z'){chLetter[j]=s[i];j++;}if (s[i] >= '0' && s[i] <='9') //将数字存入chNumber {chNumber[k]=s[i];k++;}}chLetter[j]='';chNumber[k]='';*m=j+k; //用来返回最后输入和输出时字符的个数strcat(chLetter,chNumber);return chLetter;}//主函数void main{char s[N];int i;int m;char *p;p=NULL;printf("请输入字符串(30字符以内):n");scanf("%s",s);p=fun(s,&m); //刚开始没定义出这个m来现限制指针p所指数组的长度就出现了后面两个字符乱码for (i=0; i{s[i]=p[i];}printf("结果为:");for (i=0; i{printf("%c",s[i]);}printf("n");}C语言字符串笔试题篇2将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串。

数据结构(字符串)练习题与答案

数据结构(字符串)练习题与答案

1、下面关于串的叙述中,正确的是()。

A.串是一种特殊的线性表B.串中元素只能是字母C.空串就是空白串D.串的长度必须大于零正确答案:A解析:串是一种特殊的线性表,其元素为单个字符,长度可以为0。

2、两个字符串相等的条件是()。

A.串的长度相等B.含有相同的字符集C.都是非空串D.两个串的长度相等且对应位置的字符相同正确答案:D3、若串str=“Software”,其子串的个数是()。

A.8B.9C.36D.37正确答案:D解析:该串中所有字符不相同,长度为0的子串1个,长度为1的子串8个,长度为2的子串7个,…,长度为7的子串2个,长度为8的子串1个,总计子串数=1+8+7+…+2+1=1+8×9/2=37。

4、一个链串的节点类型定义为#define NodeSize 6typedef struct node{ char data[NodeSize];struct node *next;} LinkStrNode;如果每个字符占1个字节,指针占2个字节,该链串的存储密度为()。

A.1/3B.1/2C.2/3D.3/4正确答案:D解析:链串节点大小指每个节点存放的字符个数,本题节点大小为6,存储密度=(6*1)/(6*1+2)=3/4。

5、串采用节点大小为1的链表作为其存储结构,是指()。

A.链表的长度为1B.链表中只存放一个字符C.链表中每个节点的数据域中只存放一个字符D.以上都不对正确答案:C解析: C、链串节点大小指每个节点存放的字符个数。

6、对于一个链串s,查找第一个字符值为x的算法的时间复杂度为()。

A.O(1)B.O(n)C. O(n2)D.以上都不对正确答案:B解析:在链串查找第一个字符值为x的算法的时间复杂度为O(n)。

7、设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为()。

A.求子串B.串联接C.模式匹配D.求串长正确答案:C解析:模式匹配算法就是找子串在主串中的位置。

JAVA字符串笔试

JAVA字符串笔试

JAVA的整型与字符串相互转换1如何将字串String 转换成整数int?A. 有两个方法:1). int i = Integer.parseInt([String]); 或i = Integer.parseInt([String],[int radix]);2). int i = Integer.valueOf(my_str).intValue();注: 字串转成Double, Float, Long 的方法大同小异.2 如何将整数int 转换成字串String ?A. 有叁种方法:1.) String s = String.valueOf(i);2.) String s = Integer.toString(i);3.) String s = "" + i;注: Double, Float, Long 转成字串的方法大同小异.Java数据类型转换ynniebo [收藏]关键字类型转换出处这是一个例子,说的是JAVA中数据数型的转换.供大家学习引import java.sql.Date;public class TypeChange {public TypeChange() {}//将String型转换为Int型public static int stringTolnt(String intstr) {Integer integer;integer = Integer.valueOf(intstr);return integer.intValue();}//将Int型转换为String型public static String intToString(int value) {Integer integer = new Integer(value);return integer.toString();}//将String型转换为float型public static float stringToFloat(String floatstr) { Float floatee;floatee = Float.valueOf(floatstr);return floatee.floatValue();}//将float型转换为String型public static String floatToString(float value) {Float floatee = new Float(value);return floatee.toString();}//将String型转换为sqlDate型public static java.sql.Date stringToDate(String dateStr) { return java.sql.Date.valueOf(dateStr);}//将sqlDate型转换为String型public static String dateToString(java.sql.Date datee) { return datee.toString();}}JAVA中常用数据类型转换函数虽然都能在JAVA API中找到,整理一下做个备份。

python试题 字符串

python试题 字符串

python试题字符串
好的,以下是一些Python字符串相关的试题,供您参考:
什么是字符串?字符串是由零个或多个字符组成的有限序列。

字符串的拼接可以使用加号(+)运算符来实现。

字符串是不可变序列,即不能修改字符串中的单个字符。

字符串的索引从0开始,可以使用方括号([])运算符来访问指定位置的字符。

字符串的切片可以使用切片运算符(slice)来实现,格式为“str[start:end]”。

字符串的常用方法包括:len()、isalpha()、isdigit()、isalnum()、lower()、upper()、strip()等。

字符串的格式化可以使用%格式化运算符或format()函数来实现。

字符串的查找可以使用find()或index()方法来实现,返回指定子串在字符串中第一次出现的位置。

字符串的替换可以使用replace()方法来实现,将字符串中所有出现的指定子串替换为新的子串。

字符串的比较可以使用==、!=、<、>、<=、>=运算符来实现。

请注意,以上仅为部分试题,更多Python字符串相关的试题可以参考相关的Python教材或在线学习资源。

C++字符数组练习题及解答

C++字符数组练习题及解答

第1题:编写程序,比较两个字符串的大小,不允许使用strcmp函数。

输入分2行,每一行均为字符串(不包含空格)。

如果第一个字符串大于第二个字符串,则输出1;如果两个字符串大小相等,则输出0;如果第一个字符串小于第二个字符串,则输出-1。

样例输入:ChinaChina样例输出:0#include<iostream.h>int main(){char a[100],b[100];int t=0,i;cin>>a;cin>>b;for(i=0;a[i]!=0||b[i]!=0;i++){if(a[i]>b[i]){t=1;break;}if(a[i]<b[i]){t=-1;break;}}cout<<t;return 0;}第2题:编写程序,将一个字符串首尾互换,并与原字符串连接后输出。

输入字符串(不包含空格),输出处理后的结果。

样例输入:china样例输出:chinaanihc#include<iostream.h>#include<string.h>int main(){char str1[100],i;int n;cin>>str1;n=strlen(str1);for(i=0;i<n;i++){str1[n+i]=str1[n-i-1];}for(i=0;i<n*2;i++)cout<<str1[i];return 0;}第3题:编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。

样例输入:7843028503样例输出:4 6#include <string.h>#include <iostream.h>int main(){int a[100],i,n,o,j;char str[100];o=0;j=0;cin>>str;n=strlen(str);for(i=0;i<n;i++){a[i]=str[i];}for(i=0;i<n;i++){a[i]=a[i]-48;if(a[i]%2==0){o=o+1;}else{j=j+1;}}cout<<j<<" "<<o;return 0;}第4题:编写程序,输入字符串(不包含空格),删除字符串中ASCII码值能被3整除的字符,将剩余字符按从小到大排序后输出。

雅虎笔试题目

雅虎笔试题目

while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst) { ++src; ++dst; } if ( ret < 0 ) ret = -1 ; else if ( ret > 0 ) ret = 1 ; return( ret ); } 3、求 1000!的未尾有几个 0 (用素数相乘的方法来做,如 72=2*2*2*3*3);求出 1->1000 里,能被 5 整除的数的个数 n1, 能被 25 整除的数的个数 n2,能被 125 整除的数的个数 n3, 能被 625 整除的数的个数 n4. 1000!末尾的零的个数=n1+n2+n3+n4; #include #define NUM 1000 int find5(int num){ int ret=0; while(num%5==0){ num/=5; ret++; } return ret; } int main(){ int result=0; int i; for(i=5;i<=NUM;i+=5) { result+=find5(i); } printf(" the total zero number is %d\n",result); return 0; } 4、有双向循环链表结点定义为: struct node { int data; struct node *front,*next; }; 有两个双向循环链表 A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中 data 值相同的结点删除 BOOL DeteleNode(Node *pHeader,DataType Value)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.写一个将整数转换成字符串的函数itoa解析:整数转化成字符串,可以采用加'0',然后再逆序,整数加'0'就会隐形转化为char类型的数。

#include <iostream>#include <stdio.h>using namespace std;int main(void){int num = 12345, j=0, i=0;char temp[7], str[7];while(num){temp[i] = num%10 + '0';i++;num = num/10;}temp[i] = 0;printf("temp = %s\n",temp);i=i-1;while(i>=0){str[j] = temp[i];j++;i--;}str[j]=0;printf("string = %s\n", str);return 0;}2.编程实现字符串数转化成整数的方法。

解析:可以采用减'0' 再乘10累加的方法,字符串减'0' 就会隐性转换为int类型的数#include<iostream.h>#include<stdio.h>int main(void){int num=12345, j=0, i=0, sum=0;char temp[7]={'1', '2', '3', '4', '5', '\0'}, str[7];while (temp[i]){sum=sum*10+(temp[i]-'0');i++;}printf("sum=%d\n", sum)return 0;}3.字符串拷贝函数strcpy#include <stdio.h>char * strcpy(char * strDest, const char * strSrc) // 实现strSrc到strDest的复制{if ((strDest == NULL) || (strSrc == NULL)) //判断参数strDest和strSrc的有效性return NULL;char *strDestCopy = strDest; //保存目标字符串的首地址while ((*strDest++ = *strSrc++)!='\0'); //把strSrc字符串的内容复制到strDest下return strDestCopy;}strcpy函数返回char *类型的原因是为了能使用链式表达式。

拷贝函数的一个完整的标准写法如下:#include<stdio.h>#include<malloc.h>#include<assert.h>#include<string.h>void stringcpy(char *strdest, const char *strsrc){assert(strdest!=NULL && strsrc!=NULL);while(*strsrc!='\0'){*strdest++=*strsrc++;}*strdest='\0';}int main(void){char *f;char *t;f=(char *)malloc(15);t=(char *)malloc(15);stringcpy(f, "asdfghjkl");stringcpy(t, f);printf("%s\n", f);printf("%s\n", t);return 0;}4. strcpy和memcpy主要有以下3方面的区别:1) 复制的内容不同。

strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等;2) 复制的方法不同。

strcpy不需要指定长度,它遇到字符串结束符"\0"便结束。

memcpy则是根据其第3个参数决定复制的长度。

3) 用途不同。

通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy。

5.malloc函数函数原型:void *malloc (unsigned int size)作用:在内存的动态存储区中分配一个长度为size的连续空间,其参数为一个无符号整型数,返回值是一个指向所分配的连续存储域的起始地址的指针。

注意:若函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针,所以在调用该函数时应检测返回值是否为NULL并执行相应的操作。

例如:if ((array (int *) malloc(10*sizeof(int)))==NULL){printf("不能成功分配存储空间。

");exit(1);}6."回文数"是一种数字。

如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。

思路1:建立数组,按位存储。

比较首位和末位是否相同。

如不同,则不是回文数。

相同则继续比较,首位递增,末位递减,直到首位不再小于末位。

思路2:求反转后的数是否与原先相同。

7.有100个整数,其中有负数,找出连续三个数之和最大的部分。

#include<iostream.h>void main(){int a[10]={-3, 4, 6, 8, -9, 7, 10, -6, 20, -9};int i, index, sum=a[0]+a[1]+a[2];for (i=1; i<8; i++){if (sum<a[i]+a[i+1]+a[i+2]){sum=a[i]+a[i+1]+a[i+2];index=i;}}cout<<a[index]<<","<<a[index+1]<<","<<a[index+2]<<endl;}8.关于sizeofcout<<sizeof(1==2)<<endl; // == 操作符返回bool类型,相当于cout<<sizeof(bool)<<endl; 1)union的sizeofunion u{double a;int b;};union u2{char a[13];int b;};union u3{char a[13];char b;};cout<<sizeof(u)<<endl; // 8cout<<sizeof(u2)<<endl; // 16cout<<sizeof(u3)<<endl; // 13union的大小取决于它所有的成员中占用空间最大的一个成员的大小。

所以对于u来说,大小就是最大的double类型成员a了,所以sizeof(u)=sizeof(double)=8。

但是对于u2和u3,最大的空间都是char[13]类型的数组,为什么u3的大小是13,而u2是16呢?关键在于u2中的成员int b。

由于int类型成员的存在,使u2的对齐方式变成4,也就是说,u2的大小必须在4的对界上,所以占用的空间变成了16(最接近13的对界)。

结论:复合数据类型,如union,struct,class的对齐方式为成员中对齐方式最大的成员的对齐方式。

2)struct和对齐struct s1{char a;double b;int c;char d;};struct s2{char a;char b;int c;double d;};cout<<sizeof(s1)<<endl; // 24cout<<sizeof(s2)<<endl; // 16对于s1,首先把a放到8的对界,假定是0,此时下一个空闲的地址是1,但是下一个元素b是double类型,要放到8的对界上,离1最接近的地址是8了,所以b被放在了8,此时下一个空闲地址变成了16,下一个元素c的对界是4,16可以满足,所以c放在了16,此时下一个空闲地址变成了20,下一个元素d需要对界1,也正好落在对界上,所以d放在了20,结构体在地址21处结束。

由于s1的大小需要是8的倍数,所以21-23的空间被保留,s1的大小变成了24。

对于s2,首先把a放到8的对界,假定是0,此时下一个空闲地址是1,下一个元素的对界也是1,所以b摆放在1,下一个空闲地址变成了2;下一个元素c的对界是4,所以取离2最近的地址4摆放c,下一个空闲地址变成了8,下一个元素d的对界是8,所以d摆放在8,所有元素摆放完毕,结构体在15处结束,占用总空间为16,正好是8的倍数。

struct s1{char a[8];};struct s2{double d;};struct s3{s1 s;char a;};struct s4{s2 s;char a;};cout<<sizeof(s1)<<endl; // 8cout<<sizeof(s2)<<endl; // 8cout<<sizeof(s3)<<endl; // 9cout<<sizeof(s4)<<endl; // 16;s1和s2大小虽然都是8,但是s1的对齐方式是1,s2是8(double),所以在s3和s4中才有这样的差异。

32位C++中的基本数据类型,也就char,short int(short),int,long int(long),float,double, long double大小分别是:1,2,4,4,4,8,10。

3)class A1{public:int a;static int b;A1();~A1();}sizeof(A1)=4;静态变量是存放在全局数据区的,而sizeof计算栈中分配的大小。

9. sizeof作用1). sizeof操作符的一个主要用途是与存储分配和I/O系统那样的例程进行通信。

例如:void *malloc(size_t size)size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream)。

相关文档
最新文档