高分求C语言高手做题目

C语言程序设计
1. 单项选择题(60道)
(1)以下关于C语言程序的说法中正确的为( )。
a) 计算机不能直接执行 b) 计算机能直接执行
c) 编辑好就可以执行 d) 编译好就可以执行
(2)以下不属于C语言特点的为( )。
a) 简洁 b) 运算符丰富 c) 具有结构化的控制语句 d) 语法限制严格。
(3)C语言的程序必须包含( )。
a) 语句 b) 变量声明 c) 函数 d) 宏定义
(4)以下不属于算法特点的为( )。
a) 有穷性 b) 无穷性 c) 有效性 d) 确定性
(5)算法的三种基本结构除了顺序结构、选择结构外,还有( )。
a) 循环结构 b) 递归结构 c) 调用结构 d) 跳转结构
(6)在下列关于C语言常量的说法中正确的为( )。
a) 没有数据类型 b) 有数据类型 c) 必须有名字 d) 不能输出
(7)在下列关于C语言变量的说法中正确的为( )。
a) 必须先定义后使用 b) 不必先定义后使用
c) 只能在函数外修改变量的值 d) 只能在函数内修改变量的值
(8)以下属于整型常量不正确写法的为( )。
b) 指向N个double型变量的函数指针。
c) 一个指向由N个double型元素组成的一维数组的指针。
d) 具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
(17)以下程序的输出结果是( )。
char str[15]=”hello!”;
a*=x*(‘E’ - ‘A’);
printf(“%f\n”,(float)a);
a) 62.000000 b) 62.800000 c) 63.000000 d) 62
(23)下列描述中不正确的是( )。
a) 字符型数组中可能存放字符串。
b) 可以对字符型数组进行整体输入、输出。
c) 可以对整型数组进行整体输入、输出。
d) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
(24)设有如下定义: int x=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
a) 1 b) 0 c) 4 d) 3
(25)定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};
则语句for(i=0;i<3;i++) printf("%d ",x[i][2-i]); 的输出结果是( )。
a) 1 5 9 b) 1 4 7 c) 3 5 7 d) 3 6 9
(26)以下对二维数组a进行正确初始化的是( )
a) int a[2][3]={{1,2},{3,4},{5,6}}; b) int a[ ][3]={1,2,3,4,5,6};
c) int a[2][ ]={1,2,3,4,5,6}; d) int a[2][ ]={{1,2},{3,4}};
(27)设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是( )。
a) aa数组成元素的值分别是"abcd"和ABCD"
b) aa是指针变量,它指向含有两个数组元素的字符型一维数组
c) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
d) aa数组的两个元素中各自存放了字符'a'和'A'的地址
(28)
a) 1,0,4 b) 1,0,3 c) 0,0,3 d) 0,0,4
(39)下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
a) xyabcAB b) abcABz c) ABabcz d) xycdBCD
(40)执行下面的程序后,a的值是( )。
#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
a) 10 b) 1 c) 9 d) 0
(41)表达式:10!=9的值是( )。
a) true b) 非零值 c) 0 d) 1
(42)若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是( )。
a) i= *p; b) *p=*&j; c) i=&j; d) i=* *p;

第一题:选A,解释:不能直接执行,必须通过编译器将C语言程序“翻译”为机器语言后,才可以被计算机执行。
第二题:选D,解释:1 c语言具有语法简洁的特点,相信用过其他语言的人都知道
2 运算符丰富,夺得我有时后都分不清
3 数据结构类型丰富
4 结构化,就是想一小块一小块的程序,这样写起来容易
5 语法要求不严格,这样的话相对容易一些,但有时喉也不爽,有错的时候不知道语言的语法错了
6 功能强大,现在诸如nuix这样 的操作系统就是用c 语言写的
第三题:C,解释:C语言是有函数组成的。宏定义:宏定义是高级语言编译器提供的常用语法,其目的是利用某一标识符标识某个文本字符串。在编写程序时,如果程序中反复地使用某个数据或某段程序片段,就可以考虑将这个数据或程序片段定义为宏,然后每个出现该数据或程序片段的地方用宏名替代,这样做的好处是程序简洁,可读性好,而且当需要修改这些相同的程序片段时,只要修改宏定义中的字符串即可,不需要修改多处。
第四题:选B,解释:通常一个算法必须具备一下五部分,1,有穷性。2.确定性。3.有效性。4.有一个或多个输出。5.有一个或多个输入。
第五题:选A,解释:这个不予解释。
第六题:选B,C语言程序中无论变量还是常量必须具有数据类型且可以输出。
第七题:选A,C语言中的变量必须先定义后使用,不然编译器不能识别。
第八题:就这么多吧,没时间回答了。追问

你回答得很不错 但是题目要做完啊 按理说你把题目做完分肯定是你的 但是你得坚持做完是不是 嘿嘿~

追答

我回答你的题也不是要什么分的,就是想多做些C语言题。嘿嘿``````没事好好学吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-07
呵呵,前面八道已经有人帮你答了,我来帮你说说后面的那些吧~~~
42.d 给你个公式吧,两个*或者&相互抵消,和原来的变量等价,题中*p=&j,给他再加个*可得
**p=*&j=j,正是d选项,其他的代进去即可,就不多解释了
41.b 表达式10!=9,显然为真,C语言中非零即为真值
40.b 按照宏定义的格式代进去,即表达式为a/=k+m*k+m/k+m*k+m,按照优先级,先算右边, k+m*k+m/k+m*k+m 2+1*2+1/2+1*2+1结果为7,再算左边10/=7,结果便为1,这里注意一下,如果宏定义中改变,结果就截然不同了~~~
39.d strcat(p1+2,p2+1)将p2+1后面的字符串连接到p1+2后面的字符串后面,即cdBCD,再将
其复制到str数组的第三个元素内,但前面的两个元素要保留,结果变为d
28.因为没有题目,所以答案我也不清楚,等你补充完题目后我再帮你答吧
27.c aa是指针数组,它包含了两个字符数组的指针元素组成,注意,如果定义改成char (*p)[2],
那答案就是b,注意两种定义方式的不同
26.b 当数组以那种方式赋值,第一个索引值行号可以省略,基础题,不多解释了
25.c 循环输出x[0][2],x[1][1],x[2][0],相当于输出矩阵的斜对角线,对应于矩阵的3.5.7
24.d 考察逗号运算符,结果为逗号右边表达式的值,即x/y,结果为3
23.d 明显错误,可以通过“=”对字符数组整体赋值,例如 char c[]={''china"};
17.无答案~~~~因为题目中没有定义x也没有告诉a的初值,请确定是否缺少初始条件
8.d Ok,终于答完了,如果还有什么不懂得话可以百度hi我,打字累啊,希望可以帮到你~~~
第2个回答  2011-04-06
1A,2A,3C,4B,5A,6B,7A,8D,17B,23A,24D,25C,26D,27D,28?,39D,40A,41D,42B本回答被提问者采纳
第3个回答  2011-04-06
初学者,抱学习的态度来解答,算是抛砖引玉。不对请指正。
1.a 2.d 3.a 4.b 5.a 6.c 7.a
23. a 24. d 25.c 26. b 27. c
39. ? 40.b 41 d 42.b
第4个回答  2011-04-06
1-8 :d d a b a b a d
17 :c
23-27:c a c d c d
39-42: b c c d

如果行就给分吧追问

你错得也太多了吧?第一题就错,选a。
3.c
8.?
17.?
24.d
23-27:c a c d c d (一共5题你怎么做出6个答案了?)
41.d
42.b
尽管答案错得有点多
不过还是谢谢你,因为你第一个帮助我的~ O(∩_∩)O~

相似回答