一个C语言问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个C语言问题相关的知识,希望对你有一定的参考价值。

设变量X为float型且已赋值,则以下语句中能将X中的数值保留到小数点后两位,并将第
三位四舍五入的是
A)x=x*100+0.5/100.0;
B)x=(x*100+0.5)*100.0;
C)x=(int)(x*100+0.5)/100.0;
D)x=(x/100+0.5)*100.0;
答案选C.不过我不清楚为什么,这种题目怎么做啊

碰到这种题不要害怕,先看它问的是什么,选项设置也没有难为你,形式都差不多.

首先是float型的x,既然要保留小数点后两位,那就应该x*100,这样将他扩大100倍,比如x=1.2343,x*100=123.43,这样小数点后面一位就是需要舍入的.然后(int)x*100+0.5这样强制转换为一个整形数,起到了舍入的作用.我们知道,这种强制转换是不考虑精度的,在内存中就是把一个高字节的数强行缩短成低字节,所以精度会丢失.经过+0.5后再取整得到的就是舍入的值.最后再把这个数/100.0得到结果.

这种题你根据它的意思,分析选项的异同就可以了.
参考技术A 一个浮点型变量只能保证的有效数字是7位。
比如x=1.234567,x*100=123.4567,加上0.5的作用就是四舍五入,这里简单说明一下,比如0<x<0.5,x+0.5<1.0,那么对(x+0.5)取整的话就可以得到0.最后再除一百就可以得到题目要求的值了!

C语言问题 怎样从一个文件中逐个读入字符(每次读入一个)

怎样从一个文件中逐个读入字符(每次读入一个),再把读入的数经过加密后逐个写入到指定的文件中,加密过程不需要,读写过程的编程请各位赐教了~~高手们都来帮帮忙呀~~~~

charstr[1024];

inti=0;

while((str[i]=getchar())!='\\n')

i++;

getchar();

扩展资料

C语言读取一个文件的字符:

#include<stdio.h>

intmain(void)

FILE*stream;

errno_terr;

//Openforread(willfailiffile"crt_fopen_s.c"doesnotexist)

err=fopen_s(&stream,"crt_fopen_s.c","r");

if(err==0)

printf("Thefile'crt_fopen_s.c'wasopened\\n");

else

printf("Thefile'crt_fopen_s.c'wasnotopened\\n");

参考技术A

一般有两种方式

FILE*fp=fopen("文件路径名","打开方式");

文件路径可以是绝对路径,默认为相对路径

打开方式由于是读入,可以直接写"r"

 

方法1,

char ch;
while(!feof(fp))
fscanf(fp,"%c",&ch);

用fscanf()函数读入

 

方法2,

char ch;
while(!feof(fp))
ch=fgetc(fp);

用fgetc()函数读入

参考技术B 先打开文件,然后利用读写函数
ch=fgetc(fp);
while(ch!=EOF)

putchar(ch);
ch=fgetc(fp);

fp为文件型指针变量,ch 字符变量。fgetc函数带回一个字符,赋给ch。如果在执行fgetc函数度字符时遇到文件结束符,函数返回一个文件结束标志EOF(即-1)

以上适用于文本文件。需要#include "stdlib.h"本回答被提问者采纳

以上是关于一个C语言问题的主要内容,如果未能解决你的问题,请参考以下文章

一个C语言问题

C语言的一个问题

c语言问题

c语言问题?????????

一个c语言的问题

“C语言是中间语言”,中间语言是啥意思?