-
请简述什么大端存储和小端存储?
小端存储为地址低位存储数据低位;地址高位存储数据高位
大端存储为地址高位存储数据低位;地址低位存储数据高位 -
请简述gcc的分步编译?
预处理:展开头文件,替换宏,删除注释 gcc -E ***.c -o ***.i
编译:检查语法的正确性,生成汇编文件 gcc -S ***.i -o ***.s
汇编:把汇编文件转换二进制文件 gcc -c ***.s -o ***.o
链接:把二进制文件链接为可执行文件 gcc ***.o -o 可执行文件 -
请回答文件剪切、赋值的指令,并说明/etc /usr /mnt分别表示什么意思?
文件剪切的命令为mv;文件复制的命令为cp,/etc文件夹一般存放系统的所有配置文件;/usr是系统核心所在,包含了所有的共享文件。它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,还有各种库文件;/mnt文件夹常用于作为被挂载的文件系统的挂载点。 -
请问一下代码的输出结果是?
-
unsigned int i;
for(i=5;i>=0;i--)
{
printf(“hello\n”);
}
会无限输出hello因为i为无符号数,所以当他小于零的那个时候其实他已经溢出成最大值了,所以会一直输出,不可能会有小于0的情况。 -
请回答以下问题
a=181 c=-75 d=6 e=5 -
设有以下语句:int a=3,b=6,c; c=a^b<<2; 则c的二进制值是
0000 0000 0001 0100 -
请回答以下程序
.
32 - 输入年月日,使用switch编程实现计算这是这一年的第几天?
Eg 输入:2024 4 1输出:这是这一年的第92天#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int f=0,y=0,m=0,d=0,sum=0; printf("请输入您想判断的年月日,请以xxxx xx xx的形式输出:"); scanf("%d %d %d",&y,&m,&d); if(y%4==0 && y%100 !=0 || y%400==0){ f=1; } switch(f){ case 0: for(int i=1;i<=m-1;i++){ switch(i){ case 1:sum+=31;break; case 2:sum+=28;break; case 3:sum+=31;break; case 4:sum+=30;break; case 5:sum+=31;break; case 6:sum+=30;break; case 7:sum+=31;break; case 8:sum+=31;break; case 9:sum+=30;break; case 10:sum+=31;break; case 11:sum+=30;break; case 12:sum+=31;break; } } printf("这是这一年的第%d天\n",sum+=d);break; case 1: for(int i=1;i<=m-1;i++){ switch(i){ case 1:sum+=31;break; case 2:sum+=29;break; case 3:sum+=31;break; case 4:sum+=30;break; case 5:sum+=31;break; case 6:sum+=30;break; case 7:sum+=31;break; case 8:sum+=31;break; case 9:sum+=30;break; case 10:sum+=31;break; case 11:sum+=30;break; case 12:sum+=31;break; } } printf("这是这一年的第%d天\n",sum+=d);break; } f=0; return 0; }
-
简述以下程序
while语句后面加了;也就是那么下面的x—永远不会执行,程序会一直不做事,也就是发呆,也不会结束。 -
请简述以下程序的区别
系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。
用户自定义的头文件用双引号括起来,编译器首先会在用户目录下查找,然后再到 C++ 的安装目录(Linux 中可以通过环境变量来设定)中查找,最后在系统文件中查找。 -
请简述以下程序的
无限次 -
请编程实现
#include <stdio.h> #include <string.h> #include <stdlib.h> #define MIN 0 int main(int argc, const char *argv[]) { int n1=0,n2=0; printf("请输入两个整数:"); scanf("%d %d",&n1,&n2); int put=n1>n2?n1:MIN; if (put==n1){ printf("%d\n",n2); }else if(put==MIN){ printf("%d\n",n1); } return 0; }
- 请编程实现输出起始值到终止值之间的素数
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int n1=0,n2=0,f=0; printf("请输入素数判断的起始值和终止值:"); scanf("%d %d",&n1,&n2); if(n1>n2){ int temp=n2; n2=n1; n1=temp; } for(int i=n1;i<=n2;i++){ f=0; for(int j=2;j<i;j++){ if(i%j==0){ f=1; break; } } if(f==0){ printf("%d ",i); } } putchar(10); return 0; }
- 请编程实现输出起始值到终止值之间的完美数
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int n1=0,n2=0,sum=1; printf("请您输入想要判断的起始值和终止值:"); scanf("%d %d",&n1,&n2); for(int j=n1;j<=n2;j++){ sum=1; for(int i=2;i<j;i++){ if(j % i==0){ sum+=i; } } if(sum==j){ printf("%d ",j); } } putchar(10); return 0; }
- 请变成实现图形打印
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int count=0; for(int i=0;i<=6;i++){ count=0; if(i==0){ continue; } for(int j=0;j<i*2;j++){ if(j>=i){ printf("%c",70-count++); }else{ putchar('_'); } } putchar(10); } return 0; }
- 循环输入10个成绩,请计算最大值,最小值
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) { int n=0,max=0,min=0,temp=0; printf("请输入您的成绩:"); scanf("%d",&n); max=n; min=n; for(int i=1;i<=9;i++){ putchar(10); printf("请输入您的成绩:"); scanf("%d",&n); if(n>=max){ max=n; } if(n<=min){ min=n; } } printf("10个成绩中成绩最高为:%d\n成绩最低为:%d\n",max,min); return 0; }