设有如下C语言程序: void main() { int i.,sum; for fi=0;i<1000;i++) { sum+=funcl(i); } } int funcl(int a) { return(a%50); } 可以对该C语言程序采取的优化措施包括_______。
A.常量合并
B.公共子表达式删除
C.死代码删除
D.函数嵌入
A.常量合并
B.公共子表达式删除
C.死代码删除
D.函数嵌入
第1题
A.常量合并
B.公共子表达式删除
C.死代码删除
D.函数嵌入
第2题
【说明】
设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:
其中填自然数的思想如下;
(1)先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列;但若n为偶数,最后1次只排第1列中间一个数。
(2)自右向左,先右第1列中间填数;若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。
【程序】
include <stdio.h>
define size 10
int a[3][size];
void main()
{
int i,k,m,n;
printf("imput the n:");
scanf("%d",&n);
k=1;
for(i=0; i<=n/2; i++)
{
a[1][2*i]=k; k++;
if((i==n/2)&& (1) ||(i<n/2))
{
a[0][2*i+1]=k;
k++;
(2)
k++;
}
}
if(n%2==1)
{
(3)
k++;
m=n;
}
else
(4)
for(i=0; i<n/2; i++)
{
a[1][m-2*i]=k; k++;
(5)
k++;
a[2][m-2*i-1]=k; k++;
}
a[1][1]=k;
printf("\n");
printf(" ");
for(i=1; i<=n; i++)
printf("%6d",a[0][i]);
printf("\n\n");
for(i=0; i<=n+1; i++)
printf("%6d",a[1][i]);
printf("\n\n");
printf(" ");
for(i=1; i<=n; i++)
printf("%6d",a[2][i]);
printf("\n");
}
第3题
B、输入数据中存在阶差大于等于25的两个数
C、数据之和存在小数部分
D、数据之和大于2147483647
第4题
A、2
B、3
C、4
D、5
第5题
某C语言程序部分代码及其反汇编后的机器级代码如下: 08048441 <main>: int a[3] = { -32767, 100, -2 }; void main() { int n = 3, x; 8048441: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048445: 83 e4 f0 and $0xfffffff0,%esp 8048448: ff 71 fc pushl -0x4(%ecx) 804844b: 55 push %ebp 804844c: 89 e5 mov %esp,%ebp 804844e: 51 push %ecx 804844f: 83 ec 14 sub $0x14,%esp 8048452: c7 45 f0 03 00 00 00 movl $0x3,-0x10(%ebp) x = sum( a, n ); 8048459: ff 75 f0 pushl -0x10(%ebp) 804845c: 68 1c a0 04 08 push $0x804a01c 8048461: e8 a0 ff ff ff call 8048406 <sum> 8048466: 83 c4 08 add $0x8,%esp 8048469: 89 45 f4 mov %eax,-0xc(%ebp) ...... } 在IA-32+Linux+GCC的环境中,调试执行上述程序,当前调试信息如下: (gdb) x/1xw 0x804a01c+2*4 0x804a024: ① 则①处显示的内容是()
A、0x804a024
B、0xffff8001
C、0x00000064
D、0xfffffffe
第7题
第9题
用语言描述下面的程序,并举例说明程序运行的结果: class SampleParameter { public void Swap1(int x, int y) { int z = x; x = y; y = z; } public void Swap2(ref int x, ref int y) { int z = x; x = y; y = z; } public void Add(int x, int y, out int sum) { sum = x + y; } } class Program { static void Main(string[] args) { int a, b, c; Console.Write("请输入第一个数:"); a = int.Parse(Console.ReadLine()); Console.Write("请输入第二个数:"); b = int.Parse(Console.ReadLine()); SampleParameter smpParameter = new SampleParameter(); smpParameter.Swap1(a, b); Console.WriteLine("交换结果是{0},{1}", a, b); smpParameter.Swap2(ref a, ref b); Console.WriteLine("交换结果是{0},{1}", a, b); smpParameter.Add(a, b, out c); Console.WriteLine("输出结果是{0}", c); Console.ReadLine(); } }
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!