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语言指针的一些题目的更多相关文章

  1. (转载)c语言指针学习

    前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...

  2. C语言指针【转】

    一.C语言指针的概念 在计算机中,所有的数据都是存放在存储器中的.一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等,在前面已有详细 ...

  3. c语言指针学习【转】

    前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...

  4. C语言指针的大小

    C语言指针的大小 今天看到一道题目是这样的,写出以下变量在32位设备上的大小(占多少个字节) 然后其中就有一些指针类型的数据,那么我们知道在C语言中指针的大小都是一样的,不管是有数据类型的还是void ...

  5. C语言指针转换为intptr_t类型

    1.前言 今天在看代码时,发现将之一个指针赋值给一个intptr_t类型的变量.由于之前没有见过intptr_t这样数据类型,凭感觉认为intptr_t是int类型的指针.感觉很奇怪,为何要将一个指针 ...

  6. [转]C语言指针学习经验总结浅谈

    指针是C语言的难点和重点,但指针也是C语言的灵魂 . 这篇C语言指针学习经验总结主要是我入职以来学习C指针过程中的点滴记录.文档里面就不重复书上说得很清楚的概念性东西,只把一些说得不清楚或理解起来比较 ...

  7. 不可或缺 Windows Native (7) - C 语言: 指针

    [源码下载] 不可或缺 Windows Native (7) - C 语言: 指针 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 指针 示例cPointer.h #i ...

  8. C语言指针学习

    C语言学过好久了,对于其中的指针却没有非常明确的认识,趁着有机会来好好学习一下,总结一下学过的知识,知识来自C语言指针详解一文 一:指针的概念 指针是一个特殊的变量,里面存储的数值是内存里的一个地址. ...

  9. 关于C语言指针的问题

    在学习关于C语言指针的时候,发现这样一个问题,代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h&g ...

随机推荐

  1. js 面试题总结 3

    console.log(a); // undefined function fn() { console.log(a); // undefined } fn(); console.log(a); 创建 ...

  2. 雷林鹏分享:JSP 简介

    JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开 ...

  3. wikioi 1021 玛丽卡

    链接:http://wikioi.com/problem/1021/ 这题挺有意思的,虽然比较水,但是让我想起来那次百度or腾讯的一道最大流的题目,很给力,也是对最后找边进行优化,不过这题比那题简单多 ...

  4. vue.js单个slot

    刚开始看这个slot的时候有点蒙,想了几分钟才明白过来,汗颜 <script> var mycompoent = Vue.extend({ template:"<div&g ...

  5. 『转』Kaspersky Internet Security for Android &KMS – 免费6个月

    卡巴越南的活动,需要注册账户,完成小调查,24小时内发送激活码,激活码3个月内有效.建议用谷歌翻译下网站.KIS for Android 的激活码也通用于 Kaspersky Mobile Secur ...

  6. 201621123006 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...

  7. Mac下 cordova 安装随笔

    首先这是我自己第一篇博客,如果有什么不对的,大家指出,积极修改. cordova是大家做混合开发最经常使用的一款使用HTML, CSS & JS进行移动App开发多平台共用一套代码,中文官方网 ...

  8. windows update失败还原更改,无法开机

    转自  http://jingyan.baidu.com/article/59a015e34c5a73f794886520.html?tj=exp_relate_3&st=2&from ...

  9. 关键词提取算法-TextRank

    今天要介绍的TextRank是一种用来做关键词提取的算法,也可以用于提取短语和自动摘要.因为TextRank是基于PageRank的,所以首先简要介绍下PageRank算法. 1.PageRank算法 ...

  10. HDU1502 Regular Words DP+大数

    要是c语言可以和java一样写大数就好了,或者我会写重载就好了,最后还是只能暴力一把. 开始写的记忆化搜索,然而n=10就超过LL了 #include<cstdio> #include&l ...