【3.31】输入n值,输出高度为n的等边三角形。例如当n=4时的图形如下:

*

***

*****

*******

#include

void prt( char c, int n )

{ if( n>0 )

{ printf( "%c", c );

① ;

}

}

main()

{ int i, n;

scanf("%d", &n);

for( i=1; i<=n; i++ )

{ ② ;

③ ;

printf("\n");

}

}

【3.32】下面的函数实现N层嵌套平方根的计算。

double y(double x, int n)

{ if( n==0 )

return(0);

else return ( sqrt(x+( ① )) );

}

【3.33】函数revstr(s)将字符串s置逆,如输入的实参s为字符串"abcde", 则返回时 s 为字符串"edcba"。递归程序如下:

revstr( char *s )

{ char *p=s, c;

while(*p) p++;

① ;

if(s

{ c=*s;

*s=*p;

② ;

revstr(s+1);

③ ;

}

}

如下是由非递归实现的revstr(s)函数:

revstr (s)

char *s;

{ char *p=s, c;

while( *p ) p++;

④ ;

while( s

{ c=*s;

⑤ = *p;

*p-- = c;

}

}

【3.34】下面函数用递归调用的方法,将str中存放的长度为n的字符串反转过来,例如原来是"ABCDE",反序为"EDCBA"。

void invent(char *str,int n)

{ char t;

t=*str; *str=*(str+n-1); *(str+n-1)=t; if( n>2 ) invent ( ① ,n-2);

else ② ;

}

【3.35】从键盘上输入10个整数,程序按降序完成从大到小的排序。

#include

int array[10];

sort( int *p, int *q )

{ int *max, *s;

if( ① )

return;

max=p; for( s=p+1; s<=q; s++)

if( *s > *max )

② ; swap( ③ );

sort( ④ ); }

swap( int *x, int *y ) { int temp;

temp=*x;

*x=*y;

*y=temp;

}

main()

{ int i; printf("Enter data :\n"); for( i=0; i<10; i++)

scanf("%d", &array[i]); sort( ⑤ );

printf("Output:");

for( i=0; i<10; i++)

printf("%d ", array[i]);

}

【3.36】下面函数的功能是将一个整数存放到一个数组中。存放时按逆序存放。例如:483存放成"384"。

#include

void convert(char *a, int n)

{ int i;

if((i=n/10) !=0 )

convert( ① , i );

*a = ② ;

}

char str[10]= " ";

main()

{ int number;

scanf("%d", &number);

convert( str, number );

puts(str);

}

【3.37】下面程序的功能是实现数组元素中值的逆转。

#include

main()

{ int i,n=10,a[10]={1,2,3,4,5,6,7,8,9,10};

invert(a,n-1);

for(i=0;i<10;i++)

printf("%4d",a[i]);

printf("\n");

}

invert(int *s,int num)

{ int *t,k;

t=s+num;

while( ① )

{ k=*s;

*s=*t;

*t=k;

② ;

③ ;

}

}

【3.38】下面程序通过指向整型的指针将数组a[3][4] 的内容按3行×4列的格式输出,请给printf( )填入适当的参数,使之通过指针p将数组元素按要求输出。

#include

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p=a;

main()

{ int i,j;

for(i=0;i<3;i++ )

{ for(j=0;j<4;j++ )

printf("%4d ", ① );

}

}

【3.39】下面程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。

#include

main ( )

{ char str[81], *sptr;

int i;

for(i=0;i<80;i++ )

{ str[i]=getchar( );

if(str[i]== '\n') break;

}

str[i]= ① ;

sptr=str;

while( *sptr )

putchar( *sptr ② );

}

【3.40】下面函数的功能是将字符变量的值插入已经按ASCII码值从小到大排好序的字符串中。

void fun(char *w,char x,int *n)

{ int i,p=0;

while(x>w[p]) ① ;

for(i=*n;i>=p;i--) ② ;

w[p]=x;

++*n;

}

【3.41】下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。

#include

strmerge(a,b,c) /* 将已排好序的字符串a、b合并到c */

char *a,*b,*c;

{ char t,*w;

w=c;

while( *a!= '\0' ① *b!='\0' )

{ t= ② ?*a++:*b

if( *w ④ '\0' ) *w=t;

else if( t ⑤ *w) *++w=t; /* 将与*w不相同的t存入w */

}

while( *a != '\0' ) /* 以下将a或b中剩下的字符存入w */

if( *a != *w ) *++w=*a++;

else a++;

while( *b != '\0')

if( *b != *w ) *++w=*b++;

else b++;

*++w = ⑥ ;

}

strsort( char *s ) /* 将字符串s中的字符排序 */

{ int i,j,n;

char t,*w;

⑦ ;

for( n=0;*w != '\0'; ⑧ )

w++;

for( i=0;ifor( j=i+1;jif( s[i]>s[j] )

{ ⑨ }

}

main( )

{ char s1[100],s2[100],s3[200];

printf("\nPlease Input First String:");

scanf("%s",s1);

printf("\nPlease Input Second String:");

scanf("%s",s2);

strsort(s1);

strsort(s2);

⑩ = '\0';

strmerge(s1,s2,s3);

printf("\nResult:%s",s3);

}

【3.42】已知某数列前两项为2和3,其后继项根据前面最后两项的乘积,按下列规则生成:

① 若乘积为一位数,则该乘积即为数列的后继项;

② 若乘积为二位数,则该乘积的十位上的数字和个位上的数字依次作为数列的两个后继项。

下面的程序输出该数列的前N项及它们的和,其中,函数sum(n,pa) 返回数列的前N项和,并将生成的前N项存入首指针为pa的数组中,程序中规定输入的N值必须大于2,且不超过给定的常数值MAXNUM。

例如:若输入N的值为10,则程序输出如下内容:

sum(10)=44

2 3 6 1 8 8 6 4 2 4

#include "stdio.h"

#define MAXNUM 100

int sum(n, pa)

int n, *pa;

{ int count, total, temp;

*pa = 2;

① =3;

total=5;

count=2;

while( count++{ temp = *(pa-1) * *pa;

if( temp<10 )

{ total += temp;

*(++pa) = temp;

}

else

{ ② = temp/10;

total += *pa;

if( count{ count ++; pa++;

③ = temp%10;

total += *pa;

}

}

}

④ ;

}

main()

{ int n, *p, *q, num[MAXNUM];

do

{ printf("Input N=? (2scanf("%d", &n);

}while( ⑤ );

printf("\nsum(%d)=%d\n", n, sum(n, num));

for( p=num, q = ⑥ ; pprintf("%4d", *p);

printf("\n");

}

【3.43】下面程序的功能是输入学生的姓名和成绩,然后输出。

#include

struct stuinf

{ char name[20]; /* 学生姓名 */

int score; /* 学生成绩 */

} stu, *p;

main ( )

{ p=&stu;

printf("Enter name:");

gets( ① );

printf("Enter score: ");

scanf("%d", ② );

printf("Output: %s, %d\n", ③ , ④ );

}

【3.44】下面程序的功能是按学生的姓名查询其成绩排名和平均成绩。查询时可连续进行,直到输入0时才结束。

#include

#include

#define NUM 4

struct student

{ int rank;

char *name;

float score;

};

① stu[ ]={ 3,"liming",89.3,

4,"zhanghua",78.2,

1,"anli",95.1,

2,"wangqi",90.6

};

main()

{ char str[10];

int i;

do

{ printf("Enter a name");

scanf("%s",str);

for( i=0;i if( ② )

{ printf("Name :%8s\n",stu[i].name);

printf("Rank :%3d\n",stu[i].rank);

printf("Average :%5.1f\n",stu[i].score);

③ ;

}

if( i>=NUM ) printf("Not found\n");

}while( strcmp(str,"0")!=0 );

}

【3.45】下面程序的功能是从终端上输入5个人的年龄、性别和姓名,然后输出。

#include "stdio.h"

struct man

{ char name[20];

unsigned age;

char sex[7];

};

main ( )

{ struct man person[5];

data_in(person,5);

data_out(person,5);

}

data_in(struct man *p, int n )

{ struct man *q = ① ;

for( ;p{ printf( "age:sex:name" );

scanf("%u%s", &p->age, p->sex);

② ;

}

}

data_out( struct man *p, int n )

{ struct man *q = __③__;

for( ;pprintf("%s;%u;%s\n", p->name, p->age, p->sex);

}

c语言输入三个数从大排到小,自学考试《C语言程序设计》练习题及答案_第3页...相关推荐

  1. c语言输入三个数求平均值和乘积,C语言输入三个实数型,计算它们的和并输出(要求保留两位小数...

    C语言输入三个实数型,计算它们的和并输出(要求保留两位小数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言输入三个 ...

  2. c语言输入三个数判断等边三角形,随便输入三个数,看能否组成一个三角形

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 看看我刚设计的程序为啥点击"!"符号时提示无法生成exe文件? #include #include main() { int a,b, ...

  3. c语言填空三个数找中间大小,2013计算机等级考试二级C语言填空题.doc

    2013计算机等级考试二级C语言填空题 1.下列给定程序中,函数fun的功能是计算下式:s=2xn-1/(2xn)2 2.函数fun的功能是:将形参s所指字符串中下标为奇数的字符串取出,并按ASCII ...

  4. 关于C语言用问号表达式(正则表达式)输入三个数求最大数的问题

    问题概述: 用C语言求三个数中的最大数这一问题是C语言的基础性问题,有多种可实施办法下面介绍两种办法一种用问号表达式(正则表达式),另一种用函数法. 代码实现:问号表达式 #include<st ...

  5. c语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,从键盘上输入3个数,将它们按由大到小的顺序排列好输出...

    vb中从键盘上输入10个数,判断有几个偶数,有几个奇数? 我给你写了,挺简单的.窗体上添加两个label控件一个command控件Dima(1To10)DimbDimcAsIntegerDimdAsI ...

  6. c语言学习-从键盘输入三个数,按照从小到大(或从大到小)的顺序输出

    从键盘输入三个数,按照从小到大(或从大到小)的顺序输出 程序流程图: 代码: #include<stdio.h> void main() {float a,b,c,d; printf(&q ...

  7. c语言比较三个数大小输出最小值,比较ABC三个数的大小,从小到大排列输出。,c语言比较三个数大小按从大到小顺序输出...

    匿名网友: 思路分析:先比较2个数,取其中大者与第三个数比较得出较大者为最大数,记为max.步骤如下:第一步:输入a,b,c.第二步:比较a,b.若a>b,则执行第三步:否则,执行第四步.第三步 ...

  8. c语言求三个数最值非函数,C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针作函数参数实现。...

    www.shufadashi.com防采集. C语言编程:从键盘任意输入三个数,编写求其最大值.最小值的函数,用指针作函数参数实现.. #includevoid maxfunction(int*);v ...

  9. 输入三个数判断能否构成直角三角形 C语言

    使用C语言判断三个数能否构成直角三角形 先别急,在判断直角三角形之前应该先判断能否构成三角形 你中招了吗? //输入三个数字判断直角三角形 #include<stdio.h> int ma ...

最新文章

  1. 用css动画写一个下红包雨的效果
  2. 【剑指offer-Java版】44扑克牌的顺子
  3. 从前端角度来看网页设计
  4. Error: pgraster_wkb_reader: grayscale band type 10 unsupported
  5. ebp 函数堆栈esp_对于ESP、EBP寄存器的理解
  6. adt eclipse java1.8,android java开发 第一天 之熟习eclipse adt
  7. onvirt安装linux系统
  8. 一款实用的前端截图工具
  9. append,appendTo和prepend
  10. Atitit.跨语言  文件夹与文件的io操作集合  草案
  11. 【Themes for IntelliJ-based IDEs】Idea主题下载
  12. 计算机等级考试sumif,sumif函数的使用方法有哪些
  13. service mysql启动失败 提示unit not found 解决办法
  14. uniapp遮罩_uni-app实现弹窗遮罩
  15. macOS FileVault2 command
  16. 安徽身份证网上办理最全攻略
  17. 对List的数据进行分组
  18. 基于FastICA的声源分离实例(matlab代码)
  19. k8s之PV以及PVC
  20. 数方大数据抓取网站访问用户,精准度百分之九十以上。

热门文章

  1. 判断Linux load的值是否过高
  2. 摆脱学校机房老师的电脑控制(即摆脱控制软件的控制)【详细版】
  3. Flutter动画(全)
  4. Python壁球小游戏(操控型)与键盘的基本使用
  5. freemarker默认escape html 防范xss
  6. 影响网站排名的主要因素
  7. 用Hexo+github搭建个人博客
  8. HTML5andCSS3面试题大全
  9. 2022施工员-土建方向-岗位技能(施工员)操作证考试题库及答案
  10. [RS] 类别数据数字化的方法 —— LabelEncoder VS OneHotEncoder (虚拟变量陷阱(Dummy Variable Trap))