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. 30道Spring面试题和答案

    Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring ...

  2. Android之Glide(非常好用的图片加载框架)

    谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech. Glide是一种快速.高效的开源媒体管理和Android的包裹mediadecoding图像加载框架,内 ...

  3. Appium 自动化测试(7) -- Appium 服务器初始化参数设置

    Desired Capabilities Desired capabilities 是一些发送给 Appium 服务器的键值对集合 (比如 map 或 hash),告诉服务器我们想要启动什么类型的自动 ...

  4. js 文件系统API操作示例

    最近有个需求是:自动抓取某网站登录页面的验证码图片并保存,抓取n次.使用chrome插件来实现,其中使用到了js操作文件系统的api,特将代码记录下来,以备查阅. PS:第一次使用js文件系统的api ...

  5. 115. Distinct Subsequences *HARD* -- 字符串不连续匹配

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  6. linux提权辅助工具(三):privchecker.py

    来自:https://www.securitysift.com/download/linuxprivchecker.py #!/usr/env python ##################### ...

  7. Centos7 安装JDK环境和Tomcat

    Linux JDK 64位下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.ht ...

  8. Qt Creator 模块QtSql

    在新建Qt Gui Application时,没有弹出模块选择页, 可以手动在pro文件中增加. 比如要选中QtSql模块,(目前我没有找到哪里可以修改要选中的模块), 我是手动在pro文件中增加了一 ...

  9. POJ 1611:The Suspects(并查集)

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 48327   Accepted: 23122 De ...

  10. CSS基础知识,学前准备

    1.引入层叠样式表: A.行内引入 <bodystyle="background-color:#cccccc">; 在标签内使用style属性 </body> ...