[编译器及其命令行模式杂谈]题记: 接触了几年的计算机了,也被人当作是专业人士几年了,不得不承认,编程能力一直不是太好.但是现在一直在努力.希望能早点补齐这个缺口.最早学习C语言的时候,用的编译器是...+阅读
一、选择题
(1)有以下程序
main()
{ char p[]={'a', 'b', 'c'}, q[]="abc";
printf("%d %d\n", sizeof(p),sizeof(q));
};
程序运行后的输出结果是
A)4 4 B)3 3 C)3 4 D)4 3
(2)有以下程序
&emsp define f(x) (x*x)
main()
{ int i1, i2;
i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ;
printf("%d, %d\n",i1,i2);
}
程序运行后的输出结果是
A)64, 28 B)4, 4 C)4, 3 D)64, 64
(3)有以下程序
main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是
A)2 2
B)7 6
C)7 2
D)6 2
(4)以下叙述中正确的是
A)预处理命令行必须位于源文件的开头
B)在源文件的一行上可以有多条预处理命令
C)宏名必须用大写字母表示
D)宏替换不占用程序的运行时间
(5) 有以下程序
main( )
{ char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(A) ,sizeof(B) );
}
执行后输出结果是
A) 7 7 B) 8 8 C) 8 10 D) 10 10
(6) 有以下程序
&emspdefine f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
执行后输出结果是
A) 28 B) 22 C) 16 D) 4
(7) 有以下程序
&emspinclude
&emspdefine F(X,Y) (X)*(Y)
main ()
{ int a=3, b=4;
printf("%d\n", F(a++,b++));
}
程序运行后的输出结果是
A) 12 B) 15 C) 16 D) 20
(8) 有以下程序
main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是
A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6
(9) 有以下程序
main(int arge,char *ar[])
{ int n,i=0;
while(arv[1][i]!='\0'
{ n=fun(); i++;}
printf(%d\n",n*argc);
}
int fun()
{ static int s=0;
s+=1;
return s;
}
假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行
exam 123
则运行结果为
(10) 有以下程序
main()
{ char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; int i,j;
i=sizeof(a); j=strlen(a);
printf(“%d,%d\b”i,j);
}
程序运行后的输出结果是
A)9,9 B)8,9 C)1,8 D)9,8
(11) 程序中头文件typel.h 的内容是:
&emspdefine N 5
&emspdefine M1 N*3
程序如下:
&emspdefine “type1.h”
&emspdefine M2 N*2
main()
{ int i;
i=M1+M2; printf(“%d\n”,i);
}
程序编译后运行的输出结果是:
A) 10 B) 20 C) 25 D) 30
(12) 有以下程序
&emspinclude
main()
{ char *p,*q;
p=(char*)malloc(sizeof(char)*20); q=p;
scanf(“%s%s”,p,q); printf(“%s%s\n”,p,q);
}
若从键盘输入:abc def,则输出结果是:
A) def def B) abc def C) abc d D) d d
(13) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A) p=2*(int*)malloc(sizeof(int));
B) p=(int*)malloc(2*sizeof(int));
C) p=(int*)malloc(2*2);
D) p=(int*)calloc(2,sizeof(int));
(14) 以下程序的输出结果是
main()
{ char st[20]= “hello\0\t\\\”;
printf(%d %d \n”,strlen(st),sizeof(st));
}
A) 9 9 B) 5 20 C) 13 20 D) 20 20
(15) 以下程序的输出结果是
amovep(int p, int (a)[3],int n)
{ int i, j;
for( i=0;i
以下为关联文档:
下面的C++代码能编译么&emspinclude&emspdefine NUM getnum()int getnum(){int x = 0;scanf("%d",printf("%dn", x);return x;}int main(char** argc, int ar){int array[NUM];print...
C++技巧:用kdevelop进行交叉编译的方法用kdevelop进行交叉编译的方法。 首先提一下,我这篇文章,对于那些喜欢使用繁琐开发工具的达人们可以无视。 嵌入式的linux开发中,要建立的项目通常是三种,一是C或C++的工程。二...
酸蚀铝型材表面预处理技术的应用1、工艺简介 近年来,铝合金亚光型材生产和销售量越来越大,市场占有率在80%以上。目前亚光型材生产普遍使用碱蚀方法,铝溶损在3%-5%之间,造成巨大资源浪费,而且大大增加了环保治理...