C语言求救哦,采纳有加分哦

1. 若有:int a[10],*p=&a[0];,关于数组名a的不正确的说法是( )。
A. a是个数组指针
B. 数组名a表示数组的首地址
C. 数组名a与a[0]等价
D. a和p都指向同一个存储单元
满分:5 分
2. 判断字符串的长度,应该使用的函数是( )。
A. strcat
B. strcmp
C. strcpy
D. strlen
满分:5 分
3. 已知 int i=1;执行语句while(i++<4)后,变量i的值为( )。
A. 3
B. 4
C. 5
D. 6
满分:5 分
4. 从变量的作用域来分,可分为全局变量和局部变量,形参是( )。
A. 局部变量
B. 全局变量
C. 静态变量
D. 动态变量
满分:5 分
5. 设有定义int a[ ]={1,5,7,9,11,13},*p=a+3;则*(p-2),*(a+4)的值是( )。
A. 5 11
B. 1 9
C. 5 9
D. 有错误
满分:5 分
6.
有如下程序:
main( )
{
int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
该程序的输出结果是( )。
A. a=2 b=1
B. a=1 b=1
C. a=1 b=0
D.
a=2 b=2
满分:5 分
7. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是( )。
A. s=a+b
B. s=a+c
C. s=s+c
D. s=b+c
满分:5 分
8.
以下程序的输出结果是( )。
main()
{
int a=5,b=4,c=6,d;
printf(“%d\n”,d=a>b?(a>c?a:c):(b));
}
A. 5
B. 4
C. 6
D. 不确定
满分:5 分
9.
已定义以下函数
fun(int *p)
{ return *p; }
该函数的返回值是( )。
A. 不确定的值
B.
形参p中存放的值
C. 形参p所指存储单元中的值
D.
形参p的地址值
满分:5 分
10. 以下不能正确定义二维数组的选项是( )。
A. int a[2][2]={{1},{2}}
B. int a[][2]={l,2,3,4}
C. int a[2][2]={{l},2,3}
D. int a[2][]={{1,2},{3,4}}
};

答案:CDCAAABCCD

针对楼上几位答案有所不同处,我做一下解释:

第一题:C肯定是错的。但A也有问题。将一个数组名称为“数组指针”,这显然不妥。事实上,有很多所谓“经典”的教材上也会把数组名和指针混淆。数组名肯定不是指针变量。对于这方面的分析,你可以看看这个链接:
h ttp://hi.baidu.com/sqshining/blog/item/493bc6fab420701e6c22eb5f.html(把h后的空格去掉)
作为考试题或作业题,我只能说C选项是标准答案。

第三题:由于是i++,所以先将i与4比较,然后再运算i=i+1;

第六题:case后无break,导致程序没有跳出,所以选A

第十题:D选项二维数组列的大小没有确定,编译器无法定位。不过,B选项越界了,很危险,但是一定要选个答案,还是选D吧。D的话程序都无法执行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-02
C D C A A A B C C B
第2个回答  2011-01-02
1-5,ADCAA
6-10,DBCAD
第3个回答  2011-01-02
C D C A A A B C C D
和楼上就最后一题有冲突
第4个回答  2011-01-02
1. C
2. D
3. B
4. A
5. D
6. A
7. B
8. C
9. C
10. D
相似回答