c语言编程题目汇总(5)

2019-06-05 14:17

else if(*q

if(*p!=a[0]) t=*p,*p=a[0],a[0]=t; if(*q!=a[0]) t=*q,*q=a[9],a[9]=t; for(i=0;i<10;i++) printf(\

}//用指针交换最值位置

试题查看

标题: 2. 用指针实现字符串排序 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 用指针实现:将10个字符串(设其长度小于20)从小到大排序。 输入: 10个字符串。

输出: 排序后的10个字符串。

ijk jkl def ghi

输入样例:

def cde hij def efg fgh cde def def def

输出样例:

efg fgh ghi hij ijk jkl

① 定义二维字符数组和指向该数组的指针数组; ② 用循环使指针数组的元素指向二维字符数组各行首;

提示: ③ 用循环为指针数组元素赋字符串为值;

④ 用strcmp函数比较两个指针数组元素的值、用strcpy函数交换两个指针数组元素的值。

来源: #include//用指针排序字符串 #include main()

{char a[10][90],(*p)[90],t[90]; int i,j;

for(i=0;i<10;i++) gets(a[i]);

for(i=0;i<9;i++) {p=a[i];

for(j=i+1;j<10;j++) if(strcmp(p,a[j])>0) strcpy(t,p), strcpy(p,a[j]),strcpy(a[j],t); } p=a;

for(i=0;i<10;i++) puts(a[i]); }

试题查看

标题: 6. 用指针实现子字符串提取 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms 描述:

用指针实现:由键盘输入一串字符,从下标为m的字符开始,取出n个字符(m和n由键盘输入),形成一个新的字符串。

输入: 键盘输入一串字符。

输出: 从下标为m的字符开始,取出n个字符(m和n由键盘输入),形成一个新的字符串。 输入样例:

0123456 5 2

输出样例: 56

① 定义二个字符数组zfsour[100]、zfdest[100],zfsour存放原串,zfdest存放新串; ② 定义二个指针变量*pzfsour、*pzfdest; zfsour字符数组的首地址;

提示: ③ 从键盘输入取字符的开始位置m(即下标值)和要取的字符个数n;

④ 让指针变量pzfsour指向zfsour+m处,让pzfdest指向zfdest字符数组的首地址; ⑤ 通过n次循环,逐次赋值、移动指针,即将原串中的n个字符存到新串字符数组中。

来源:

#include//提取字符串

#include main()

{char a[80],*p,b[80]; int m,n,count; gets(a);

scanf(\p=&a[m];

for(count=0;count

试题查看

标题: 8. 输出杨辉三角形 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

打印如下形式的杨辉三角形。 1 1 1

描述: 1 2 1

1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

输入: 杨辉三角形阶数

杨辉三角形。 1 1 1

输出: 1 2 1

1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

输入样例: 6

1 1 1

输出样例:

1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

① 杨辉三角形的特点:第一列和对角线上的元素值均为1,即a[i][0]=a[i][i]=1;其余

提示:

位置元素的值=上一行本列元素值+上一行前一列元素值,如第三行第二列2就是第二行第一列+第二行第二列,计算公式为a[i][j]=a[i-1][j-1]+ a[i-1][j]。 ② 应先对第一列和对角线元素赋值,然后再为其它元素赋值。

来源: #include

main()//打印杨辉三角 {int a[30][80],i,j,n; for(i=0;i<30;i++) for(j=0;j<80;j++) a[i][j]=1;

scanf(\switch(n)

{case 1:printf(\case 2:printf(\default :for(i=2;i

试题查看

标题: 4. 数据顺序调整 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 由键盘任意输入10个数,将最大数调到最前面,最小数调到最后面。 输入: 任意10个数

输出: 数据调整后的10个数。 输入样例: 0 1 2 3 4 5 6 7 8 9 输出样例: 9 1 2 3 4 5 6 7 8 0

① 定义四个变量d1、d2、x1、x2,分别存放最大数、最小数及它们的位置;

② 在循环开始前,将第一个元素作为参考,将其值分别存入d1、x1,将其下标分别存入d2、x2;

提示: ③ 在循环中将其它元素逐一与d1比较,若比d1大,将其存入d1,并将其下标存入d2;

否则将其与x1比较,若比x1小,将其存入x1,并将其下标存入x2;

④ 结束循环后,将d2所示位置的数与第一个数交换,将x2所示位置的数与最后一个数交换,然后输出数组所有元素即可。

来源:

#include//交换最值位置

main()

{int a[10],i,j,k,l,t; k=l=0; for(i=0;i<10;i++) scanf(\for(i=0;i<10;i++) {

if(a[k]a[i]) l=i; else ; }

if(k!=0)t=a[k],a[k]=a[0],a[0]=t; if(l!=0)t=a[l],a[l]=a[9],a[9]=t; for(i=0;i<9;i++) printf(\printf(\}

试题查看

标题: 1. 用指针实现排序 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms 描述: 用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列。 输入: 键盘输入的10个整数。 输出: 按由小到大的顺序排列。 输入样例: 1 5 4 3 2 9 23 11 5 7 输出样例: 1 2 3 4 5 5 7 9 11 23 提示: 来源:

#include//用指针排序——————————快速法 main()

{int a[10],*p[10],i,j,k,*b; for(i=0;i<10;i++) scanf(\for(i=0;i<10;i++) p[i]=&a[i]; for(i=0;i<9;i++) {k=i;

for(j=i+1;j<10;j++) if(*(p[k])>*(p[j])) k=j;


c语言编程题目汇总(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外科护理学-外科休克病人的护理-同步练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: