首页 > 试题广场 >

使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’

[单选题]
使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近()
  • 0.001秒
  • 1秒
  • 100秒
  • 2小时
LPC头像 LPC
当代典型PC机运算速度可达10亿次/秒(109),即执行一条典型指令 1/1,000,000,000秒=1纳秒
1GB = 230 B = 810 B(810大小为10亿多一点)
编辑于 2018-06-25 22:00:42 回复(0)
更多回答
执行1条语句约1ns即10的-9次方秒,1G=1024M=1024*1024k=1024*1024*1024byte,每次赋值1byte都要执行一次语句,故至少花费1024*1024*1024*10^-9=1.073741824s
发表于 2020-09-29 23:49:41 回复(1)
答案是B
           现在机器cpu都是GHz,每次需要若干个指令,大约在1秒。
发表于 2016-12-17 22:12:26 回复(1)
单位之间的换算规则是:
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
1B = 8bits
所以1GB = 1,073,741,824B
执行1条语句约1ns即1/1,000,000,000秒,每次赋值1B都要执行一次语句,所以对于1G来说大约是1秒
编辑于 2021-11-25 18:07:19 回复(0)
看成了16字节 我是瞎了吗😂
发表于 2021-03-20 11:42:59 回复(0)
#include <time.h>
#include <stdio.h>
 
int main(void)
{
    time_t t;
    struct tm *timeinfo;  
    time(&t);
    timeinfo = localtime(&t);
    printf("\nstart:%s\n", asctime(timeinfo));  

    char a[1073741824]; // 1024*1024*1024
    for (int i = 0; i < 1073741824; ++i) {
        a[i] = 'A';
    }

    timeinfo = localtime(&t);
    printf("end:%s\n", asctime(timeinfo));  
    return 0;
}
发表于 2021-02-05 14:15:27 回复(1)
1G Byte = 8G bit,假如置位一次需要CPU1个机器指令,
那么1GHz的计算机,置位1G Byte需要8s左右。
我的计算机是2.5GHz,3s多可以完成。
编辑于 2019-05-11 23:45:29 回复(0)
这样

发表于 2023-09-15 22:47:06 回复(0)
cpu主频的单位,比如bai2.0Ghz就是duzhi说这个cpu的主频是2.0G赫兹,cpu的主频是cpu的外频dao和倍频的乘积
它是CPU运算速度1653的单位,cpu的运算速度单位有MHz、GHz
,其中GHz=1000MHz,像2.0,就表示CPU的运算速度是2000000000次/秒。 
1GB = 230 B = 810 B



发表于 2020-11-17 19:18:25 回复(0)
按道理,我感觉是这样,但是真的跑起来,我总感觉1S不太靠谱。。
发表于 2019-10-28 10:49:09 回复(1)
答案是B
           现在机器cpu都是GHz,每次需要若干个指令,大约在1秒。
发表于 2017-04-19 19:05:47 回复(1)