C语言指针的一些题目
1.将从键盘输入的每个单词的第一个字母转换成大写字母输入时各单词以空格隔开,用“.”结束输入
解体思路: 把输入的字符存入字符数组中直到输入".",然后调用函数,把字符串的第一个字符(即是第一个单词的第一个字母)转换成大写字母,然后之后的每一个单词的第一个字母的怕判断方法是:通过判断一个字符是否是空格,以及空格后是否是字母,若均满足,则将这个字符后面的那个字符就是一个单词的第一个字母,将其转换成大写字母
代码如下:
#include <stdio.h>
#include <ctype.h> void transfer(char *a , int n )
{
int i; *a = toupper(*a);
for(i=;i<n;i++)
{
if(*a ==' '&&isalpha(*(a+)))
*(a+) = toupper(*(a+));
a++;
}
*a = '\0'; } int main(void)
{
char string[] ;
int i = ; printf("Enter word end with . :");
do
{
scanf("%c",&string[i]);
i++;
} while(string[i-]!='.'); transfer(string,i);
puts(string); return ;
}
2. 从键盘输入一个字符串, 编写一个函数, 在函数中将字符串从第m个字符开始的n个字符复制成另一个字符串
解体思路: 函数的参数为两个字符指针a、b和int型的m, n,从m-1位开始一直到m+n-1把字符指针a中的每一位赋给b
代码如下:
#include <stdio.h>
void copy(char *a , char *b , int m, int n)
{
int k;
//把字符串a的第i-1位之后的j位赋给b
for(k=m-;k<=m+n-;k++)
{
*b = *(a+k);
b++;
} *b = '\0';
} int main(void)
{
int i , m , n;
char string[] , s[] ; printf("Enter the string: ");
gets(string); //输入string
printf("To copy string's n character from m character to s\n");
printf("Enter m and n : ");
scanf("%d %d",&m,&n); copy(string , s ,m , n); //输出s
for(i=;i<n;i++)
printf("%c",s[i]);
printf("\n"); return ;
}
3.输入8个整数,将其中最大的数与第一个数对换,最小的数与最后一个数对换
解体思路:先申明两个int型的指针,用来指向最大值和最小值,遍历数组把最大值指针指向最大值,最小值指针指向最小值,然后把最大值指针指向的数和数组第一个对换,最小值指针指向的数和数组最后一个对换
代码如下:
#include <stdio.h>
#define N 8 void change(int *a, int *b,int sad[]);
int main(void)
{
int *max , *min ; //指向最大值和最小值的指针
int a[N] , i ; //输入这8个数
printf("Enter %d integer numbers: ",N);
for(i=;i<N;i++)
scanf("%d",&a[i]); //初始化最大值和最小值指针
max = a;
min = a + N -; for(i=;i<N;i++)
{
if(a[i]>*max) max = a+i; //修改最大值指针的指向
if(a[i]<*min) min = a+i; //修改哦最小值指针的指向
} change(max,min,a); //输出交换后的数组
for(i=;i<N;i++)
printf("%5d",*(a+i));
printf("\n");
return ;
} //把最大值指针指向的数和数组第一个对换
//最小值指针指向的数和数组最后一个对换
void change(int *a, int *b,int sad[])
{
int *first , *last , temp = , tem = ;
first = sad;
last = sad + N -; temp = *first;
*first = *a;
*a = temp; tem = *last;
*last = *b;
*b = tem;
}
4.输入n个整数排序并输出
解体思路: 使用选择排序,每次选择最小的一个数放在序列的起始位置
代码如下:
#include <stdio.h> void sort(int *a,int n) // slection sort
{
int i , j;
//从第一个开始,依次选择最小的放在序列的第一位
//外层循环一次,序列向后推一位
for(i=;i<n-;i++)
{
for(j=i+;j<n;j++)
{
if(*(a+j)<*(a+i))
{
int temp;
temp = *(a+j);
*(a+j) = *(a+i);
*(a+i) = temp;
}
}
} } int main(void)
{
int i , n , *p;
int arr[];
p = arr; //输入数组元素个数
printf("Enter n: ");
scanf("%d",&n); //输入数组
printf("Enter %d integer numbers: ",n);
for(i=;i<n;i++)
scanf("%d",p++); //输出输入的数组
p = arr;
for(i=;i<n;i++)
printf("%5d",*(p++));
printf("\n"); //选择排序
sort(arr,n); //输出排序后的数组
p = arr;
for(i=;i<n;i++)
printf("%5d",*(p++));
printf("\n"); return ;
}
5. 输入字符串 内含数字和非数字字符,将数字提取出依次存放到数组中,输出整数的个数和这些数
解题思路:把字符读入字符数组中,然后循环遍历字符数组中的字符判断其是否是数字,若是就存入数组中,并把数字个数加一。
#include <stdio.h>
#include <string.h> int main()
{
int n, i, j=;
int find_num=; //数字的个数
int a[], num=; //存储数字的数组和存储数字的临时变量
char s[], c; //字符数组和临时字符 //输入字符串
printf("Enter a string: ");
gets(s);
//求出字符串的长度
n = strlen(s); //循环遍历字符数组
for(i=;i<=n;i++)
{
c = s[i];
if(c>=''&&c<='')
{
num = c-''; //将字符(0到9)转换成数字
a[j++] = num;
find_num++;
}
} printf("The number of integers is %d\n",j);
for(i=;i<j;i++)
printf("%d\t",*(a+i)); return ;
}
C语言指针的一些题目的更多相关文章
- (转载)c语言指针学习
前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...
- C语言指针【转】
一.C语言指针的概念 在计算机中,所有的数据都是存放在存储器中的.一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细 ...
- c语言指针学习【转】
前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...
- C语言指针的大小
C语言指针的大小 今天看到一道题目是这样的,写出以下变量在32位设备上的大小(占多少个字节) 然后其中就有一些指针类型的数据,那么我们知道在C语言中指针的大小都是一样的,不管是有数据类型的还是void ...
- C语言指针转换为intptr_t类型
1.前言 今天在看代码时,发现将之一个指针赋值给一个intptr_t类型的变量.由于之前没有见过intptr_t这样数据类型,凭感觉认为intptr_t是int类型的指针.感觉很奇怪,为何要将一个指针 ...
- [转]C语言指针学习经验总结浅谈
指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...
- 不可或缺 Windows Native (7) - C 语言: 指针
[源码下载] 不可或缺 Windows Native (7) - C 语言: 指针 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 指针 示例cPointer.h #i ...
- C语言指针学习
C语言学过好久了,对于其中的指针却没有非常明确的认识,趁着有机会来好好学习一下,总结一下学过的知识,知识来自C语言指针详解一文 一:指针的概念 指针是一个特殊的变量,里面存储的数值是内存里的一个地址. ...
- 关于C语言指针的问题
在学习关于C语言指针的时候,发现这样一个问题,代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h&g ...
随机推荐
- [转] VR-FORCES 介绍
转自:https://sanwen8.cn/p/1e6GQeK.html 今天给各位介绍的仿真平台是VR-Forces.VR-Forces是新加坡公司MAK的产品,前身是美国公司.在仿真平台领域里面, ...
- Rails-treasure chest4: 使用图表对资料进行分析chart.js(及其他);管理用户权限的gem 'Pumdit'(6000🌟)
* 多档案上传* 图表资料分析 Chartkick gem或者 chart.js* 用户权限控管 gem Pundit (6000✨) *HTML E-mail 寄送 : gem premaile ...
- uva10480最小割集
求最小割集 dinic处理后用dfs对所有点进行标记,遍历整个联接边,起点访问了,终点没访问或者起点没访问,终点访问了就是最小割集之一 #include<map> #include< ...
- FindBugs插件的安装与使用
转载:http://www.cnblogs.com/kayfans/archive/2012/06/18/2554022.html 1 什么是FindBugs FindBugs 是一个静态分析工具,它 ...
- maven中jar、war、pom的区别
一.maven的三种packaging方式 pom是maven依赖文件 jar是java普通项目打包 war是java web项目打包 pom:打出来可以作为其他项目的maven依赖,在工程A中添加工 ...
- django-pure-pagination使用方法
1.pip install django-pure-pagination 安装包. 2.加入app: 'pure_pagination', 3.在view中写入分布逻辑. try: page = r ...
- 20155317 2016-2017-2 《Java程序设计》第8周学习总结
20155317 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 1.java.util.logging包提供了日志功能相关类与接口. 2.使用日志的起点是L ...
- Yarn import now uses package-lock.json
转发自: https://yarnpkg.com/blog/2018/06/04/yarn-import-package-lock/?utm_source=tuicool&utm_medium ...
- 微信跳一跳,Python辅助自动跳程序
一.说明 此代码借鉴一位大神提供在gitHub上的源码,已经做了简化合并处理,成功连上手机并运行后,可实现自动玩微信跳一跳游戏,刷个1000+的分数轻轻松松 github源码地址 https://gi ...
- anrdroid AVD启动不起来的问题。Waiting for HOME ('android.process.acore') to be launched
Waiting for HOME ('android.process.acore') to be launched 卡在这里了. 可以到sdk mananager里面先启动起来AVD,然后在eclip ...