当前位置:首页 » 编程语言 » 在c语言中43等于多少
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

在c语言中43等于多少

发布时间: 2023-08-13 11:16:38

c语言编程输出结果的疑问

楼上各位有说的正确的,也有欠妥的,我总结一下:

首先,对于第一个结果可以肯定:你的程序和输出结果不符!
(1)如果你程序是对的:
第一个结果就是43,正常的10进制常量43赋值给c,又把c赋值给i,再以10进制形式输出i,也就是输出43了。
(2)如果想得到教材的输出结果,程序应为
c=043;i=c
printf("i=%d\n",i);
这里043表示8进制常量

其次,对于第二个结果,'\376'表示ASCII的8进制表示为376的字符,10进制为254,这时由于超过了127,因此用了2个Byte来表示,而系统对2Byte将会当成扩展ASCII字符集进行处理,所以如果用%c输出的话,会看到这么个汉字“”……,至于输出的-2是这样来的:
尽管(8进制)376=(2进制)011 111 110=(10进制)254
但从char型的c向int型的i赋值时,默认char只占一个Byte,所以只有后面8位赋值给了i,因此i的值只是11111110,又最高位是符号位,因而该值转换成10进制(除符号位外取反:10000001,再加1:10000010)得-2。

② C语言中的A=41,B=42,C=43是怎么来的

这是将A,B,C的ASCII十进制数65,66,67转换成十六进制数41,42,43;就是这样的

③ C语言进制转换

计算机中常用的数的进制主要有:二进制、八进制、十进制、十六进制。  

2进制,用两个阿拉伯数字:0、1;  

8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;  

10进制,用十个阿拉伯数字:0到9;  

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。 

下面用余数短除法把十进制数转化为二进制数为例进行说明

1、明确问题。举个例子,我们现在是要将一个十进制数字156转换成二进制数字。先将这个十进制数作为被除数写在一个倒着的“长除法”的符号里。把目标数系的基数(在这里二进制是“2”)作为除数写在这个除法符号的外面。用这个方法将计算过程可视化会更方便理解,因为整个计算过程只需将数字一直除以2。

活用这个方法可以将所有十进制数字转换成任何进制表达。除数为2是因为我们最终想得到的以2为基数的数(即二进制数值) 。如果最终想得到其他数系的数字,用目标数系的基数代替这个方法里二进制的基数2 就可以了。例如,要得到基数为9的数,就用9来代替2作为除数 。最终的结果就是目标数系的数字表达。

(3)在c语言中43等于多少扩展阅读:

十进制--->二进制

对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”

十进制--->八进制

10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。

④ C语言中的A=41,B=42,C=43是怎么来的

char c='A';
这里c的asc码值其实就是65,65在十六进制中就是41。

⑤ C语言求救=。=帮忙补全程序

程序1代码:

/*
功能:产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求每行元素的和
*/

#include<stdio.h>
voidwwjt();

voidrow_sum(inta[5][4],intb[5])
{
inti=0,j=0,sum=0;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<4;j++)
{
sum+=a[i][j];
}
b[i]=sum;
}
}

main()
{
voidrow_sum();
inta[5][4],b[5],i,j;

for(i=0;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%(120-30+1)+30;

FILE*fp=fopen("in.dat","w");//将随机产生的数组写入到in.dat中,供wwjt()函数使用
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
printf("%5d",a[i][j]);
fprintf(fp,"%5d",a[i][j]);
}
printf(" ");
fprintf(fp," ");
}
fclose(fp);

row_sum(a,b);
for(i=0;i<5;i++)
printf("%6d",b[i]);
printf(" ");
wwjt();
}

voidwwjt()
{
FILE*IN,*OUT;
intm,n;
inti[5][4];
into[5];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}

for(m=0;m<5;m++)
for(n=0;n<4;n++)
fscanf(IN,"%d",&i[m][n]);

row_sum(i,o);
for(n=0;n<5;n++)
fprintf(OUT,"%d ",o[n]);

fclose(IN);
fclose(OUT);
}

运行结果:

108 104 67 112
31 96 68 46
31 89 32 98
43 34 120 44
117 66 53 67
391 241 250 241 303


程序2代码:

/*
功能:实现两个整数的交换。
例如:给a和b分别输入:60和65,输出为:a=65b=60
*/

#include<stdio.h>
voidwwjt();

voidfun(int*a,int*b)
{
inttmp;
tmp=*a;
*a=*b;
*b=tmp;
}

main()
{
inta,b;
printf("Entera,b:");
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%db=%d ",a,b);
wwjt();
}

voidwwjt()
{
FILE*IN,*OUT;
inta,b,n;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<5;n++)
{
fscanf(IN,"%d%d",&a,&b);
fun(&a,&b);
fprintf(OUT,"a=%db=%d ",a,b);
}
fclose(IN);
fclose(OUT);
}

运行结果:

Enter a,b: 60 65
a=65 b=60


程序3代码:

/*
题目:编写函数,要求输入一行字符,统计其中字母、数字、空格及其他字符的个数
(用指针作为函数参数)。
*/

#include<stdio.h>
#defineN100

voidfun(charstr[],int*p1,int*p2,int*p3)
{
inti;
i=0;
while(str[i]!='')
{
if(str[i]>='a'&&str[i]<='z')
(*p1)++;
elseif(str[i]>='A'&&str[i]<='Z')
(*p2)++;
elseif(str[i]>='0'&&str[i]<='9')
(*p3)++;
i++;
}
}

voidmain()
{
charstr[N];
inta=0,b=0,c=0;
gets(str);
fun(str,&a,&b,&c);
printf("小写字母个数为a=%d,大写字母个数为b=%d,数字个数为c=%d ",a,b,c);
}

运行结果:

BAIDU 123456
小写字母个数为a=6, 大写字母个数为b=5, 数字个数为c=6