C++问题,求高手详细解答,谢谢。

2024-11-25 22:54:07
推荐回答(2个)
回答1:

第一个问题:printf()函数是控制台(就是你的dos窗口,那个黑色的)输出函数
其中的含义:%d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法

你的程序中printf("%d%8.6f",x,y); 第一个%d输出一个有符号整数就是后边对应的x的值到控制台上
紧接着输出%8.6f 即对应于y的值,这里%8.6f的意思是,首先输出一个浮点数,这个浮点数的格式是:8.6中的6代表有六个小数位(不足的用零补齐),8代表这个浮点数总共有8位(包括小数点),不足八位,在浮点数前边用空格补齐;

scanf函数跟printf正好相反是从控制台读取数据
getchar是从控制台读取一个字符

第二个问题:A选项:代表a乘b B选项:a与b按位取或, C选项:a和b按位取与 D选项是将a的八位向右移动四位

第三个问题:
#include
void main(){
FILE * fp;int a[10]={1,2,3},i,n;
fp=fopen("d1.dat","w");//以写的方式打开d1.dat文件
for(i=0;i<3;i++) fprintf(fp,"%d",a[i]);//将a【10】中的1、2、3写入d1.dat文件
fprintf(fp,"\n");
fclose(fp);
fp=open("d1.dat","r");//以读的方式打开d1.dat文件
fscanf(fp,"%d",&n);//将d1.dat中的数据读入变量n中
fclose(fp);
printf("%d\n",n);//将n的数据打印到控制台上 应该是123
}

回答2:

FILE * fp;//文件定义
int a[10]={1,2,3},i,n;//数组声明,这句声明很槽,应该分开声明
fp=fopen("d1.dat","w");//打开文件“d1,dat”,后面的W是指以写入方式打开
for(i=0;i<3;i++) fprintf(fp,"%d",a[i]); //依次循环将fp中的值写入数组
fprintf(fp,"\n");//在文件中换行
fclose(fp);//关闭文件
fp=open("d1.dat","r");//以只读方式打开
fscanf(fp,"%d",&n);//读取数据
fclose(fp);//关闭文件
printf("%d\n",n);//输出N的大小

看懂这段代码,你需要掌握C中的文件操作,和格式化输出函数