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

C语言复习题

请完成以下题目。注意,请勿直接调用ANSI C 函数库中的函数实现。
a)请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请给出该题的至少一个不同解法。(第二、三种解法范围(0-127)
unsigned int TestOne1(char s)
{unsigned int num = 0,val;for(int i = 0; i < 8; i++){val = s >> i;val &= 0x01;if(val){num++;}}return num;
}
unsigned int TestOne2(char s1)
{unsigned int num = 0,val;int chu = 99,yu;int s = s1;while(chu){chu = s/2;yu = s % 2;if(yu != 0){num++;}s = chu;}return num;
}
​

unsigned int TestOne3(char s)
{unsigned int num = 0,val;while(s){if((s & 0x01) != 0){num++;}s = s >> 1;}return num;
}
b)请编写一个 C 函数,该函数将给定的一个字符串转换成整数。
int str_int(char *str)
{int num = 0;while(*str != '\0'){int n = *str - 48;num = num*10 + n;str = str + 1;}return num;
}
c)请编写一个 C 函数,该函数将给定的一个整数转换成字符串。
void int_str(int num,char* pval)
{char str[100];int i,j;int val0 = 0;int val1 = 0;val0 =  num;for(i = 0;i < 100;i++){val1 = val0 % 10; // 取余val0 = val0 / 10; // 取整str[i] = val1 + 48; // 数字转字符if(val0 < 10){i++;str[i] = val0 + 48;break;}  }for(j = 0;j <= i;j++){pval[j] = str[i-j];}pval[j] = '\0';
}
d)请编写一个 C 函数,该函数将一个字符串逆序。
char *Reverse1(char *str)
{char *ptr1;char *ptr = ptr1;int i=0;int len = strlen(str);while(len--){*ptr1 = str[len];ptr1 = ptr1 + 1;}return ptr;}
char *Reverse2(char *str)
{char *ptr1;char *ptr = ptr1;int i=0;while(str[i]!='\0'){i++;}while(i--){*ptr1 = str[i];ptr1 = ptr1 + 1;}return ptr;
}
e)请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
int Search(char *Startptr,int n,char ch)
{for(int i=0;i<n;i++){if(*(Startptr + i) == ch){return i;}}return -1;
}
f)请编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,该字符串是由同一字符组成的。
int maxlen(char *str)
{int max = 0;int i = 1;char ch1,ch2;ch1 = str[0];while(*str != '\0'){if(*str != ch1){i = 1;}if(max < i){max = i;ch2 = *str;}ch1 = *str;i++;str += 1;}return max;
}


http://www.mrgr.cn/news/45573.html

相关文章:

  • 一分钟掌握 Java21 新特性
  • AOP(面向切面编程)
  • Java中的五种引用类型
  • [NewStar2024]
  • 在spring boot项目中使用Spring Security的BCryptPasswordEncoder类进行相同密码不同密文的加密和验证
  • tensorflow快速入门--如何定义张量、定义网络结构、超参数设置、模型训练???
  • 机器学习初步【1】
  • YOLO11改进|注意力机制篇|引入MSCA注意力机制
  • 在JavaScript中,改变this指向的call,apply,bind有什么区别,原理分别是什么?
  • df 的各种用法 以及与du 的区别
  • 【Python】文件及目录
  • JavaSE - 基础语法
  • QT入门介绍篇
  • 【stm32】寄存器(stm32技术手册下载链接)
  • 远程控制软件推荐:亲测好用!
  • torch和torchvision 版本对应
  • var let const 之间的区别
  • 26. 删除有序数组中的重复项
  • 五十、架构设计经验与技巧(架构设计基本原则)
  • 银河麒麟V10安装ToDesk远程控制