求<c语言程序设计>的答案

求<c语言程序设计>的答案,第1张

(第一题)#include <stdioh>

void main()

{

int gy(int m, int n);

int x,y,max, min;

printf("请输入两个大于0的正整数,以空格或者回车间隔:\n");

scanf("%d%d",&x,&y);

while(x<1 || y<1)

{

printf("输入数据不正确,请重新输入。\n");

printf("请输入两个大于0的正整数,以空格或者回车间隔:\n");

scanf("%d%d",&x,&y);

}

max=gy(x,y);

min=xy/max;

printf("%d与%d的最大公约数是:%d,最小公倍数是:%d\n",x,y,max,min);

}

int gy(int m, int n)

{

int max, t;

while(m%n != 0) // while(m%n)

{

t=n; n=m%n; m=t;

}

max=n;

return max;

}

第二题#include <stdioh>

#include <mathh>

void main()

{

void root(double a, double b, double c);

double a, b, c;

printf("请输入一元二次方程的系数,用空格或者回车间隔:\n");

scanf("%lf%lf%lf",&a,&b,&c);

root(a,b,c);

}

void root(double a, double b, double c)

{

double disc, x1, x2, real , imag;

disc = bb-4ac;

if(disc>0)

{

x1 = (-b+sqrt(disc))/(2a);

x2 = (-b-sqrt(disc))/(2a);

printf("方程有两个实根,分别是:%f 与 %f\n", x1, x2);

}

else if(disc==0)

{

x1 = (-b)/(2a);

printf("方程有一个实根,它是:%f\n ", x1);

}

else

{

real=(-b)/(2a);

imag=sqrt(-disc)/(2a);

printf("方程有两个虚根,分别是:%f+%fi, %f-%fi\n", real,imag,real,imag);

}

}

测试1:请输入一元二次方程的系数,用空格或者回车间隔:1 2 1

方程有一个实根,它是:-1000000

测试2:请输入一元二次方程的系数,用空格或者回车间隔:1 6 5

方程有两个实根,分别是:-1000000 与 -5000000

测试3:请输入一元二次方程的系数,用空格或者回车间隔:1 1 1

方程有两个虚根,分别是:-0500000+0866025i, -0500000-0866025i

第三题#include <stdioh>

#include <mathh>

void main()

{

int isprime(int n);

int n;

scanf("%d",&n);

while(n<2)

{

printf("Please reinput(n>=2):");

scanf("%d",&n);

}

if(isprime(n))

printf("%d是素数。\n",n);

else

printf("%d不是素数。\n",n);

}

int isprime(int n)

{

int i,k=sqrt(n);

for(i=2;i<=k;i++)

{

if(n%i==0)

return 0;

}

return 1;

}

第四题#include <stdioh>

#include <mathh>

void main()

{

void printA(int a[3][3]);

void reverse(int a[3][3]); //转置函数的声明

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

printf("原二维数组:\n");

printA(a);

reverse(a); //函数转置

printf("转置后的数组:\n");

printA(a);

}

void printA(int a[3][3])

{

int i,j;

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

{

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

{

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

}

printf("\n");

}

}

void reverse(int a[3][3]) //函数转置的定义

{

int i,j,t;

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

{

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

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

}

第五题#include <stdioh>

#include <stringh>

void main()

{

char str[30];

void fanxu(char p);

printf("请输入一个字符串:");

gets(str);

printf("进行反序\n");

fanxu(str);

printf("反序后的字符串:");

puts(str);

}

void fanxu(char p)

{

int len=strlen(p);

char q,c;

q=p+len-1; //字符串最后一个字符位置

for(;p<q;p++,q--)

{

c=p; p=q; q=c;

}

}

第六题#include <stdioh>

#include <stringh>

void main()

{

char str1[60],str2[30];

void str_copy(char p, char q);

printf("请输入第一个字符串:");

gets(str1);

printf("请输入第二个字符串:");

gets(str2);

str_copy(str1, str2);

printf("连接后的字符串:");

puts(str1);

}

void str_copy(char p, char q)

{

for(;p!='\0';p++);

for(;q!='\0';p++,q++)

{

p=q;

}

p='\0';

}

(0808)#include <stdioh>

#include <stringh>

void main()

{

char str[80];

void insert(char str[]); //插入空格的函数

printf("请输入一个字符串:");

gets(str);

insert(str); //插入空格

puts(str); //输出字符串

}

void insert(char str[])

{

int len, i;

len=strlen(str);

for(i=len; i>0; i--) // 设置空格

{

str[2i]=str[i];

str[2i-1]=' ';

}

}

(0809)#include <stdioh>

int letter; //字母个数

int digit; //数字个数

int space; //空格个数

int others; //其它字母个数

void main()

{

void count(char str[]); //统计个数的函数的声明

char s[81];

printf("请输入一个字符串:");

gets(s);

letter=0; digit=0;

space=0; others=0;

count(s);

printf("字符串中共有 %d 个字母,%d 个数字,%d 个空格,%d个其它字母。\n",letter,digit,space,others);

}

void count(char str[]) //统计个数的函数的定义

{

int i;

char c;

for(i=0; str[i]!='\0';i++)

{

c=str[i];

if(c>='a' && c<='z' || c>='A' && c<='Z')

{ letter++; }

else if(c>='0' && c<='9')

{ digit++; }

else if(c==' ')

{ space++; }

else

{ others++; }

}

}

(0810)#include <stdioh>

#include <stringh>

void main()

{

int i;

char line[81];

int alphabetic(char c); //判断一个字符是空格还是其它字母

int longest(char str[]);//寻找最长单词的起始位置

printf("请输入一行字符串:\n");

gets(line);

printf("最长的字符串是:");

for(i=longest(line); alphabetic(line[i]); i++)

{ printf("%c",line[i]);}

printf("\n");

}

int alphabetic(char c) //如果为空格返回0,其它字母返回1

{

if(c!=' ')

return 1;

else

return 0;

}

int longest(char str[])

{

int len=0; // 记录每一个单词的长度

int length=0; // 记录最长单词的长度

int flag=1; // 其值为0时表示当前位置处于字符串中,为1时表示当前位置为空格

int place=0; // 记录最长字符串(单词)的起始位置

int point; // 每个字符串的起始位置

for(int i=0; i<=strlen(str); i++)

{

if(alphabetic(str[i])) //如果当前位置为非空格

{

if(flag) //如果前一字符为空格

{

point = i; // 设置当前单词的起始位置

flag = 0; // flag设为0,表示处于单词中

}

else //如果前一字符为非空格

{ len++; } // 单词的长度加1

}

else //当前位置为空格

{

flag = 1; //flag设为1,表示当前位置为空格

if(len >= length) //如果最近单词的长度大于最长长度

{

length = len;

place = point; //设置最长单词的起始位置

len = 0; //len归0,重新开始计算单词的长度

}

}

}

return place;

}

(0811)#include <stdioh>

#include <stringh>

void main()

{

void inputNum(int a[], int n);

void outputNum(int a[], int n);

void bubble(int a[], int n);

int a[11], n;

printf("请输入你要排序的数的个数:");

scanf("%d",&n);

inputNum(a,n);

outputNum(a,n);

bubble(a,n);

printf("从小到大排序为:\n");

outputNum(a,n);

}

void inputNum(int a[], int n)

{

int i;

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

{

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

scanf("%d",&a[i]);

}

}

void outputNum(int a[], int n)

{

int i;

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

{

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

}

printf("\n");

}

void bubble(int a[], int n)

{

int i,j,t;

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

{

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

{

if(a[j]>a[j+1])

{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }

}

}

}

(0813)#include <stdioh>

void main()

{

double lrd(int, double);

double x;

int n;

printf("请输入n阶勒让德多项式的阶数:\n");

scanf("%d",&n);

printf("请输入x的值:\n");

scanf("%lf",&x);

printf("参数为%f 的 %d 阶勒让德多项式的值为 %f\n",x,n,lrd(n,x));

}

double lrd(int n, double x)

{

if(n==0)

return 1;

else if(n==1)

return x;

else

return ((2n-1)x - lrd(n-1,x) -(n-1)lrd(n-2,x))/n;

}

/

测试1:请输入n阶勒让德多项式的阶数:0请输入x的值:9999参数为99990000 的 0 阶勒让德多项式的值为 1000000

测试2:请输入n阶勒让德多项式的阶数:1请输入x的值:9999

参数为99990000 的 1 阶勒让德多项式的值为 99990000

测试3:请输入n阶勒让德多项式的阶数:2

请输入x的值:9999 参数为99990000 的 2 阶勒让德多项式的值为 99490000

测试4:请输入n阶勒让德多项式的阶数:10

请输入x的值:11

参数为1100000 的 10 阶勒让德多项式的值为 0888677

(0817)#include <stdioh>

void main()

{

int num;

void convert(int num); // 转换为字符串的函数的声明

printf("请输入一个整数:\n");

scanf("%d",&num);

printf("转换成字符串:");

if(num<0)

{

putchar('-');

num = -num;

}

convert(num);

printf("\n");

}

void convert(int n)

{

int i;

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

{

convert(i);

}

putchar(n%10 + '0');

}

(0818)#include <stdioh>

int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

void main()

{

int year,month,day;

int days;

int count(int year,int month, int day);

int leap(int y);

printf("请输入年份:");

scanf("%d",&year);

while(year<=0)

{

printf("年份不能为负,请重新输入:");

scanf("%d",&year);;

}

if(leap(year)) //如果为闰年,2月份的天数为29

{ d[2]=29; }

printf("输入月份:");

scanf("%d",&month);

while(month<1 || month>12)

{

printf("月份在1月和12月之间,你的输入有误,请重新输入:");

scanf("%d",&month);

}

printf("输入日数:");

scanf("%d",&day);;

while(day<1 || day >d[month])

{

printf("日数应在1和%d之间,请重新输入:",d[month]);

scanf("%d",&day);

}

days=count(year,month,day);

printf("%d年%d月%d日是该年的第%d天\n",year,month,day,days);

}

int leap(int y)

{

if(y%4==0 && y%100!=0 || y%400==0)

return 1;

else

return 0;

}

int count(int year,int month, int day)

{

int i,days=0;

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

{ days += d[i]; }

days+=day;

return days;

}

(08050)#include <stdioh>

#include <stringh>

void main()

{

char str[30];

void fanxu(char str[]);

printf("请输入一个字符串:");

gets(str);

printf("进行反序\n");

fanxu(str);

printf("反序后的字符串:");

puts(str);

}

void fanxu(char str[])

{

int len=strlen(str);

int i,j;

char c;

i=0; j=len-1;//i,j分别存储第一个字符和最后一个字符的下标

for(;i<j; i++,j--)

{

c=str[i]; str[i]=str[j]; str[j]=c;

}

}

(08051)#include <stdioh>

#include <stringh>

void main()

{

char str[30];

void fanxu(char s[]);

printf("请输入一个字符串:");

gets(str);

printf("进行反序\n");

fanxu(str);

printf("反序后的字符串:");

puts(str);

}

void fanxu(char s[])

{

int len=strlen(s);

int i;

char c;

for(i=0;i<=len/2;i++)

{

c=s[i];

s[i]=s[len-i-1];

s[len-i-1]=c;

}

}

(08061)#include <stdioh>

#include <stringh>

void main()

{

char str1[60],str2[30];

void str_copy(char s1[], char s2[]);

printf("请输入第一个字符串:");

gets(str1);

printf("请输入第二个字符串:");

gets(str2);

str_copy(str1, str2);

printf("连接后的字符串:");

puts(str1);

}

void str_copy(char s1[], char s2[])

{

int i,j;

for(i=0;s1[i];i++); // s1[i]!='\0'

for(j=0;s1[i]=s2[j];i++,j++);

// (s1[i]=s2[j])!='\0'

}

(08110)#include <stdioh>

#include <stringh>

void main()

{

void inputNum(char a[], char n);

void outputNum(char a[], char n);

void bubble(char a[], char n);

char a[11], n;

printf("请输入你要排序的数的个数:");

scanf("%d",&n);

inputNum(a,n);

outputNum(a,n);

bubble(a,n);

printf("从小到大排序为:\n");

outputNum(a,n);

}

void inputNum(char a[], char n)

{

char i;

printf("请连续输入%d个字符:",n);

fflush(stdin); //一般在输入字符或者字符串之前要清空输入缓冲区

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

{

scanf("%c",&a[i]);

}

}

void outputNum(char a[], char n)

{

char i;

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

{

printf("%2c",a[i]);

}

printf("\n");

}

void bubble(char a[], char n)

{

char i,j,t;

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

{

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

{

if(a[j]>a[j+1])

{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }

}

}

}

(08112)#include <iostreamh>

#include <iomaniph>

void main()

{

void inputNum(int a[], int n);

void outputNum(int a[], int n);

void bubble(int a[], int n);

int a[11], n;

cout<<"请输入你要排序的数的个数:";

cin>>n;

while(n<1 || n>10)

{

cout<<"请重新输入,(1<=n<=10):";

cin>>n;

}

inputNum(a,n);

outputNum(a,n);

bubble(a,n);

cout<<"从小到大排序为:\n";

outputNum(a,n);

}

void inputNum(int a[], int n)

{

int i;

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

{

cout<<"a["<<i<<"]=";

cin>>a[i];

}

}

void outputNum(int a[], int n)

{

int i;

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

{

cout<<setw(6)<<a[i];

}

cout<<endl;

}

void bubble(int a[], int n)

{

int i,j,t;

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

{

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

{

if(a[j]>a[j+1])

{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }

}

}

}

(08181)#include <iostreamh>

#include <iomaniph>

int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

void main()

{

int year,month,day;

int days;

int count(int year,int month, int day);

int leap(int y);

cout<<"请输入年份:";

cin>>year;

while(year<=0)

{

cout<<"年份不能为负,请重新输入:";

cin>>year;

}

if(leap(year)) //如果为闰年,2月份的天数为29

{ d[2]=29; }

cout<<"输入月份:";

cin>>month;

while(month<1 || month>12)

{

cout<<"月份在1月和12月之间,你的输入有误,请重新输入:";

cin>>month;

}

cout<<"输入日数:";

cin>>day;

while(day<1 || day >d[month])

{

cout<<"日数应在1和"<<d[month]<<"之间,请重新输入:"<<endl;

cin>>day;

}

days=count(year,month,day);

cout<<year<<"年"<<month<<"月"<<day<<"日是该年的第"<<days<<"天\n";

}

int leap(int y)

{

if(y%4==0 && y%100!=0 || y%400==0)

return 1;

else

return 0;

}

int count(int year,int month, int day)

{

int i,days=0;

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

{ days += d[i]; }

days+=day;

return days;

}

#include<stdioh>

struct Info

{

char name[30];

float score[4];

}info[5];

void main()

{

int i,j;

float average,max=0;

float total[5]={0,0,0,0,0};

printf("请输入第一位学生的姓名:");

scanf("%s",info[0]name);

printf("请输入该学生四门课成绩:");

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

scanf("%f",info[0]score+i);

printf("请输入第二位学生的姓名:");

scanf("%s",info[1]name);

printf("请输入该学生四门课成绩:");

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

scanf("%f",info[1]score+i);

printf("请输入第三位学生的姓名:");

scanf("%s",info[2]name);

printf("请输入该学生四门课成绩:");

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

scanf("%f",info[2]score+i);

printf("请输入第四位学生的姓名:");

scanf("%s",info[3]name);

printf("请输入该学生四门课成绩:");

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

scanf("%f",info[3]score+i);

printf("请输入第五位学生的姓名:");

scanf("%s",info[4]name);

printf("请输入该学生四门课成绩:");

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

scanf("%f",info[4]score+i);

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

{

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

total[j]+=info[j]score[i];

if(total[j]>max)max=total[j];

}

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

if(total[j]==max)printf("%s同学的总分最高,有%g分\n",info[j]name,total[j]);

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

{

average=(info[0]score[j]+info[1]score[j]+info[2]score[j]+info[3]score[j]+info[4]score[j])/5;

printf("科目%d的平均分是%g\n",j+1,average);

}

}

中文名:C语言程序设计

作者:吴国凤

图书分类:科技

资源格式:PDF

版本:高清文字版

出版社:合肥工业大学出版社

书号:9787565008405

发行时间:2012年8月1日

地区:大陆

语言:简体中文

本书是高清文字版非扫描拒绝模糊享受清晰!

无法下载的用户请到评论区一楼查看网盘地址!

内容介绍:

本文章由第1章 C语言概述、第2章 数据类型、运算符与表达式等组成。

内容截图:

目录:

第1章 C语言概述10

11 程序设计与C语言10

12 C程序初识12

13 程序设计方法与算法16

14 C程序运行环境与学习方法20

15 例题精解24

16 本章小结25

习题25

第2章 数据类型、运算符与表达式27

21 C语言基础27

22 常量30

23 变量32

24 基本运算符与表达式33

25 不同数据类型间的转换和运算39

26 例题精解41

27 本章小结42

习题43

第3章 顺序结构程序设计45

31 C语言中的语句45

32 数据的输入输出47

33 例题精解54

34 本章小结57

习题57

第4章 选择结构程序设计62

41 关系运算和逻辑运算62

42 if语句65

43 switch语句70

44 例题精解72

45 本章小结75

习题75

第5章 循环结构程序设计80

51 概述80

52 while语句80

53 dowhile语句82

54 for语句84

55 循环嵌套88

56 break语句、continue语句和goto语句与标号90

57 例题精解92

58 本章小结97

习题97

第6章 数组105

61 一维数组105

62 二维数组108

63 字符数组和字符串112

64 例题精解117

65 本章小结121

习题122

第7章 指针126

71 指针的基本概念126

72 指针与数组133

73 指针数组和指向指针的指针142

74 例题精解147

75 本章小结149

习题150

第8章 函数154

81 函数的基本概念154

82 函数参数和函数的值155

83 函数的调用157

84 数组作为函数参数158

85 指针作为函数参数161

86 嵌套调用与递归调用163

87 存储类型166

88 命令行参数170

89 例题精解171

810 本章小结175

习题175

第9章 编译预处理181

91 宏定义181

92 文件包含184

93 条件编译185

94 例题精解186

95 本章小结188

习题189

第10章 结构体与共用体192

101 结构体192

102 共用体208

103 枚举211

104 用户定义类型212

105 例题精解213

106 本章小结214

习题215

第11章 位运算219

111 位运算的概念219

112 位运算219

113 位域(位段)223

114 本章小结226

习题226

第12章 文件228

121 文件概念228

122 文件指针229

123 文件的打开与关闭230

124 文件的读写231

125 文件的定位 *** 作238

126 文件的错误检测240

127 本章小结241

习题241

附录243

1 常用字符与ASCII代码对照表243

2 C语言运算符的优先级与结合性244

3 C库函数245

4 常见错误信息表252

下载地址:

以上就是关于求<c语言程序设计>的答案全部的内容,包括:求<c语言程序设计>的答案、C语言程序设计答案 输入5学生4门课成绩后计算每学生的总分,每门课平均分,输出总分最高的学生姓名和总成、求C语言程序设计学习指导(苏小红) 第3版.pdf等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9426172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存