c语言程序设计第五版答案(c语言程序设计基础第五版答案)
本篇文章给大家谈谈c语言程序设计第五版答案,以及c语言程序设计基础第五版答案对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、c语言程序设计课后习题答案(高等教育出版社何钦铭 颜晖 主编)
- 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。问在键盘上如何输入
- 3、求29.30.31答案和解释 c语言程序设计
- 4、急求 c语言程序设计 课后习题答案 谭浩强版
- 5、c语言‘c’+1等于多少
- 6、求的答案
c语言程序设计课后习题答案(高等教育出版社何钦铭 颜晖 主编)
大学学习资料免费下载网 有
在 其他公共课程 版块
标题:
C语言程序设计第三版谭浩强课后习题答案完整版txt
谭浩强C语言程序设计习题参考解答
C程序设计题解与上机指导 答案
还有很多相关资料:
谭浩强编《C语言程序设计》视频教程(曾怡讲解) 在线 下载
谭浩强编《C语言程序设计》(电子书+纸质书)
......
下载不用积分
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。问在键盘上如何输入
这题应该是谭浩强教授的c语言程序设计(第四版)第三章第五题:
运行如下:
或是
求29.30.31答案和解释 c语言程序设计
29、数组的下标值必须是整数,且不能越界,数组a的下标值范围是0--9
A
*(a+i)
等价于
a[i]
B
a[p-a+i]
等价于
a[i]
因为
p=a
所以
p-a+i=i
C
p+i
是数组中下标值为i的元素的地址
D
*(a[i])
等价于
a[i]
所以
本题答案是
C
30、strcpy(s1,s2)字符串赋值函数,把串s2放在s1的位置上,所以s1必须有足够的存储空间来存放串s2
A
st1
是一维数组可以存放字符串teacher1
B
st4
是一个指针变量,但是该指针指向一个连续的存储空间
teacher1
C
st3是指针变量,但是该指针没有指向任何存储空间,所以不能把串teacher1放在st3
D
st1
是一维数组可以存放字符串teacher1
所以
本题答案
是
C
31、p
q
是指针变量,存放的是n的地址
A
p=q
p
q
指针类型相同
可以直接赋值
B
*p=*q
也可以
//
p=q=n
则
*p=*q=n
C
n=*p
原理同
B项
D
p是指针,应该存放n的地址,即p=n
所以本题答案是:
D
急求 c语言程序设计 课后习题答案 谭浩强版
书的外观不一样,内容完全一样!
谭浩强的C语言程序设计已出版了三版,但这三个版本的习题完全一样,(相隔20年!)75岁的谭老的肚子里也就那么点东西,他的书只适合初学者.
我这里有第二版的答案,你和你的书对照一下就知道了.
PDF版:
c语言‘c’+1等于多少
c1=197 c语言
c1=197 c语言,c语言:整型和字符型的范围易错及分析
大大的蓝天
转载
关注
4点赞·1994人阅读
分析下面的程序:
#include
int main()
{
char c1, c2;
c1 = 97;
c2 = 98;
printf("c1=%c,c2=%c\n", c1, c2);
printf("c1=%d,c2=%d\n", c1, c2);
return 0;
}
(1)运行时会输出什么信息?为什么?
解:运行时输出:
c1=a,c2=b
c1=97,c2=98
请按任意键继续. . .
第一行输出是将c1,c2按%c的格式输出,97是a的ASCII码,98是字符b的ASCII码;
第二行输出是将c1,c2按%d的格式输出,所以输出两个十进制整数。
(2)如果将程序第4,5行改为:
c1=197;
c2=198;
运行时会输出什么信息?为什么?
解:程序:
#include
int main()
{
char c1, c2;
c1 = 197;
c2 = 198;
printf("c1=%c,c2=%c\n", c1, c2);
printf("c1=%d,c2=%d\n", c1, c2);
return 0;
}
结果:
c1=?c2=?
c1=-59,c2=-58
请按任意键继续. . .
由于在VS中,字符型数据是作为signed char类型处理的,存字符的有效范围为[0,127]之间,超过此范围的处理方法,不同系统得到结果不同,因而用“%c”格式输出,结果不可预料;
用“%d”格式输出时,输出c1=-59,c2=-58,这是按补码形式输出的,内存字节中第1位为1时,作为负数,59+197=58+198=256。
(3)如果将程序第3行改为:int c1,c2;
运行时会输出什么信息?为什么?
解:程序1:
#include
int main()
{
int c1,c2;
c1 = 97;
c2 = 98;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n", c1, c2);
return 0;
}
结果:
c1=a,c2=b
c1=97,c2=98
请按任意键继续. . .
输出结果和(1)相同
程序2:
#include
int main()
{
int c1,c2;
c1 = 197;
c2 = 198;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n", c1, c2);
return 0;
}
结果:
c1=?c2=?
c1=197,c2=198
请按任意键继续. . .
当c1 = 197;c2 = 198;时,用“%c”输出,仍然是不可预料的字符;用“%d”输出时,得到c1=197,c2=198
,因为它们在int类型的有效范围(-2^31,2^31-1)内,分配4个字节。
c1=197 c语言
喜报!儿子上985,女儿上211,本地妈妈出名了!点醒无数家长
教育专栏
广告
C程序设计谭浩强第五版课后答案 第三章习题答案
2510阅读·0评论·1点赞
2021年1月31日
c语言转义字符表解析,C语言常用转义字符表
910阅读·0评论·1点赞
2021年5月19日
【C语言】字符类型
2884阅读·0评论·1点赞
2017年7月10日
C语言 转义字符和ASCII码对照表
6745阅读·0评论·7点赞
2021年2月1日
c语言 变量 字符表,第3章 变量和数据类型 7、C语言中的字符(char)
171阅读·0评论·0点赞
2021年5月19日
3-分析下面程序
1315阅读·0评论·2点赞
2021年4月9日
快来,在Soul上有秒回消息的人
00:16
Soul
版本 4.57.1
立即下载
广告
隐私
权限
上海任意门科技有限公司
【c语言】—— 类型转换
177阅读·0评论·0点赞
2018年11月21日
c语言197对应什么字母,c语言的问题
1763阅读·0评论·0点赞
2021年5月19日
c语言char197用%d输出变为-59,强制类型转换所导致的数据改变
3566阅读·1评论·17点赞
2021年3月30日
C语言输出ASCII码128~255和有符号char型溢出的问题记录
2004阅读·1评论·6点赞
2020年3月22日
C语言常用字符ASCII代码表,C语言常用转义字符、ASCII、优先级对照表
1145阅读·0评论·0点赞
2021年5月20日
c语言中198对应的字符是什么,c语言中转义字符是什么意思
411阅读·0评论·0点赞
2021年5月20日
c语言中各个符号的含义总结,C语言中的符号总结
1.7W阅读·0评论·4点赞
2021年5月19日
分析下面的程序#include<stdio.h> int main() { char c1,c2; c1=197; c2=198;
1.8W阅读·0评论·3点赞
2021年3月28日
谭浩强C程序设计:第三章习题
431阅读·0评论·0点赞
2022年3月26日
C语言数据类型的存储和转换
1069阅读·0评论·1点赞
2022年3月14日
c语言综合作业答案,C语言作业答案
228阅读·0评论·0点赞
2021年5月18日
C语言程序设计(第四版)谭浩强 课后习题答案 第三章
3270阅读·0评论·6点赞
2020年4月22日
关于C语言输出ASCII码128~255和有符号char型溢出的问题。此处大坑弄明白了后记录下来分享……
6685阅读·3评论·14点赞
2019年3月19日
在C语言中为什么c1出现错误,c语言:用scanf函数输入数据,举例并分析错误原因...
232阅读·0评论·0点赞
2021年5月19日
去首页
看看更多热门内容
求的答案
(第一题)#include stdio.h
void main()
{
int gy(int m, int n);
int x,y,max, min;
printf("请输入两个大于0的正整数,以空格或者回车间隔:\n");
scanf("%d%d",x,y);
while(x1 || y1)
{
printf("输入数据不正确,请重新输入。\n");
printf("请输入两个大于0的正整数,以空格或者回车间隔:\n");
scanf("%d%d",x,y);
}
max=gy(x,y);
min=x*y/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 stdio.h
#include math.h
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 = b*b-4*a*c;
if(disc0)
{
x1 = (-b+sqrt(disc))/(2*a);
x2 = (-b-sqrt(disc))/(2*a);
printf("方程有两个实根,分别是:%f 与 %f\n", x1, x2);
}
else if(disc==0)
{
x1 = (-b)/(2*a);
printf("方程有一个实根,它是:%f\n ", x1);
}
else
{
real=(-b)/(2*a);
imag=sqrt(-disc)/(2*a);
printf("方程有两个虚根,分别是:%f+%fi, %f-%fi\n", real,imag,real,imag);
}
}
测试1:请输入一元二次方程的系数,用空格或者回车间隔:1 2 1
方程有一个实根,它是:-1.000000
测试2:请输入一元二次方程的系数,用空格或者回车间隔:1 6 5
方程有两个实根,分别是:-1.000000 与 -5.000000
测试3:请输入一元二次方程的系数,用空格或者回车间隔:1 1 1
方程有两个虚根,分别是:-0.500000+0.866025i, -0.500000-0.866025i
第三题#include stdio.h
#include math.h
void main()
{
int isprime(int n);
int n;
scanf("%d",n);
while(n2)
{
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 stdio.h
#include math.h
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;i3;i++)
{
for(j=0;j3;j++)
{
printf("%6d",a[i][j]);
}
printf("\n");
}
}
void reverse(int a[3][3]) //函数转置的定义
{
int i,j,t;
for(i=0;i3;i++)
{
for(j=0;ji;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
第五题#include stdio.h
#include string.h
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(;pq;p++,q--)
{
c=*p; *p=*q; *q=c;
}
}
第六题#include stdio.h
#include string.h
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 stdio.h
#include string.h
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; i0; i--) // 设置空格
{
str[2*i]=str[i];
str[2*i-1]=' ';
}
}
(0809)#include stdio.h
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 stdio.h
#include string.h
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 stdio.h
#include string.h
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 stdio.h
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 ((2*n-1)*x - lrd(n-1,x) -(n-1)*lrd(n-2,x))/n;
}
/*
测试1:请输入n阶勒让德多项式的阶数:0请输入x的值:99.99参数为99.990000 的 0 阶勒让德多项式的值为 1.000000.
测试2:请输入n阶勒让德多项式的阶数:1请输入x的值:99.99
参数为99.990000 的 1 阶勒让德多项式的值为 99.990000.
测试3:请输入n阶勒让德多项式的阶数:2
请输入x的值:99.99 参数为99.990000 的 2 阶勒让德多项式的值为 99.490000.
测试4:请输入n阶勒让德多项式的阶数:10
请输入x的值:1.1
参数为1.100000 的 10 阶勒让德多项式的值为 0.888677.
(0817)#include stdio.h
void main()
{
int num;
void convert(int num); // 转换为字符串的函数的声明
printf("请输入一个整数:\n");
scanf("%d",num);
printf("转换成字符串:");
if(num0)
{
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 stdio.h
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(month1 || month12)
{
printf("月份在1月和12月之间,你的输入有误,请重新输入:");
scanf("%d",month);
}
printf("输入日数:");
scanf("%d",day);;
while(day1 || 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; imonth; i++)
{ days += d[i]; }
days+=day;
return days;
}
(08050)#include stdio.h
#include string.h
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(;ij; i++,j--)
{
c=str[i]; str[i]=str[j]; str[j]=c;
}
}
(08051)#include stdio.h
#include string.h
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 stdio.h
#include string.h
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 stdio.h
#include string.h
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 iostream.h
#include iomanip.h
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"请输入你要排序的数的个数:";
cinn;
while(n1 || n10)
{
cout"请重新输入,(1=n=10):";
cinn;
}
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"]=";
cina[i];
}
}
void outputNum(int a[], int n)
{
int i;
for(i=1;i=n;i++)
{
coutsetw(6)a[i];
}
coutendl;
}
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 iostream.h
#include iomanip.h
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"请输入年份:";
cinyear;
while(year=0)
{
cout"年份不能为负,请重新输入:";
cinyear;
}
if(leap(year)) //如果为闰年,2月份的天数为29
{ d[2]=29; }
cout"输入月份:";
cinmonth;
while(month1 || month12)
{
cout"月份在1月和12月之间,你的输入有误,请重新输入:";
cinmonth;
}
cout"输入日数:";
cinday;
while(day1 || day d[month])
{
cout"日数应在1和"d[month]"之间,请重新输入:"endl;
cinday;
}
days=count(year,month,day);
coutyear"年"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; imonth; i++)
{ days += d[i]; }
days+=day;
return days;
}
关于c语言程序设计第五版答案和c语言程序设计基础第五版答案的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。