思维导图
第一题
int main(int argc, const char *argv[])
{
printf("__-__-__-__");
fflush(stdout);
for(int i=0;i<11;i++){
printf("\b");
}
sleep(1);
printf("1");
fflush(stdout);
sleep(1);
printf("2-");
fflush(stdout);
sleep(1);
printf("3");
fflush(stdout);
sleep(1);
printf("4-");
fflush(stdout);
sleep(1);
printf("5");
fflush(stdout);
sleep(1);
printf("6-");
fflush(stdout);
sleep(1);
printf("7");
fflush(stdout);
sleep(1);
printf("8");
fflush(stdout);
while(1);
return 0;
}
第二题
将一张bmp图片的大小更改成原来的4倍,宽度和高度都要对应的变成原来的2倍,多出来的像素点用黑色填充
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./1.bmp","r+");
int size=0,wid=0,hei=0;
fseek(fp,2,SEEK_SET);
fread(&size,4,1,fp);
printf("图片大小为%d字节\n",size);
fseek(fp,2,SEEK_SET);
size=size*4-54*3;
printf("图片放大后大小为%d字节\n",size);
fwrite(&size,4,1,fp);
fseek(fp,18,SEEK_SET);
fread(&wid,4,1,fp);
fread(&hei,4,1,fp);
printf("图片像素为%d*%d\n",wid,hei);
fseek(fp,18,SEEK_SET);
wid=(wid+1)*2;
hei=hei*2;
printf("图片放大后像素为%d*%d\n",wid,hei);
fwrite(&wid,4,1,fp);
fseek(fp,22,SEEK_SET);
fwrite(&hei,4,1,fp);
unsigned char bgr[3]={0,0,0};
fseek(fp,3993174,SEEK_SET);
for(int i=0;i<wid/4*3;i++)
{
for(int j=0;j<hei/4*3;j++)
{
fwrite(bgr,3,1,fp);
}
}
fclose(fp);
return 0;
}