C语言若干题目求解

1. 若函数中局部变量的值经过函数调用后仍然保存,则该局部变量定义为 。
A、auto变量 B、static变量
C、extern变量 D、register变量
2. 若有定义:int a=12,v=5,c;执行语句c=a/b;后,c的值为 。
A、2 B、4 C、5 D、6
3. 以下正确的描述是 。
A、函数的定义可以嵌套,但函数的调用不可以嵌套。
B、函数的定义不可以嵌套,但函数的调用可以嵌套。
C、函数的定义和函数的调用均不可以嵌套。
D、函数的定义和函数的调用均可以嵌套。
4. 用于字符串比较的库函数是 。
A、strcat B、strcpy C、strcmp D、strlen
5. 若有函数定义:
fun(int a,int b)
{
return a+b;
}
则该函数的返回类型是 。
A、void B、float C、int D、未知类型
6. 下面程序执行后代输出结果是 。
int fun(int x,int y)
{
int z=x*x+y*y;
return z;
}
main()
{
int a=-1,b;
b=fun(a,2);printf("%d",b);
}
A、4 B、5 C、6 D、7
7. 若有定义:char ch;,则能判断出ch为小写字母的表达式是 。
A、'a'<=ch<='z' B、(ch>='a')||(ch<='z')
C、(ch>='a')AND(ch<='z') D、(ch>='a')&&(ch<='z')
8. 若有说明:int a[][4]={{1,2,3},{4,5,6},{7,8,9}};
则数组第1维的大小为 。
A、3 B、4 C、5 D、不能确定
9. 下面程序段执行后的输出结果是 。
char c[5]={ 'a', 'b', '\0', 'c', '\0'};
printf("%s",c);
A、'a''b' B、ab C、ab c D、abc
10. 若有定义int a[2][3];则对a数组的第i行第j列元素值的正确引用是 。
A、*(*(a+i)+j) B、(a+i)[j]
C、*(a+i+j) D、*(a+i)+j
11. 下面程序段中while循环的循环次数是 。
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
A、1次 B、10次 C、6次 D、循环次数不能确定
12. 有以下程序
#include <stdio.h>
main()
{
int i=2007;
int *p=&i;
}
通过________可获得p的地址。
A、&i B、p C、*p D、&p
13. 下面程序执行后的输出结果是 。
#include <stdio.h>
main()
{
int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i<4;i++) s+=aa[i][0];
printf("%d",s);
}
A、10 B、13 C、17 D、20

二、问答题
1. 传值调用(call by value)和传引用调用(call by reference)之间的区别,可以用实例说明。
2. 说明什么是函数抽象(function abstraction)及其优势

二、1、传值调用和传引用调用的最大区别在于传值调用是值传递,具有单向性,就是说传过后如果不用特别手段,原来变量值跟调用的函数是没有关系的,不论函数运行结果如何;传引用调用传的是变量的地址,被调用函数使用时和存结果时都是用这个传过来的地址操作,所以原变量值也在跟着变;实例就不举了,一个调用时用变量名,另一个调用时用&a的形式。
2、1)抽象类的定义
用 abstract 修饰的类是抽象类。
在C++中,含有纯虚函数的类称为抽象类,它不能生成对象。
即:抽象类必须有的是纯虚函数

2)用法
a.抽象类不能产生对象的,但可以由它的实现类来声明对象。
b.抽象类的派生类中继承抽象类的纯虚函数,则这个派生类还是一个抽象类
c.在抽象类中定义的普通成员或虚函数,仍然可以通过派生类来调用这些不是纯虚函数的函数

3)关于抽象类的其他说法
a.抽象类不应该拥有构造函数:公共抽象类型不能拥有一个公共的构造函数
构造函数被用来建立一个对象实例,但是你不能建立一个抽象类型的实例,抽象类型的构造函数就仅仅能够被它的继承类型使用。因此,为一个抽象类构造公共构造函数是一个错误的设计。如果需要,应当声明这个构造函数为保护型,或者,声明这个类型不是一个抽象类型。
b.抽象类是可以有析构函数的,因为有纯虚析构函数

综上,为觉得答案应该是友元函数,因为友元函数不能被继承,而抽象类又不能有对象,所以在抽象类中定义友元函数是没有意义的。至于构造函数、拷贝构造函数等,我觉得是可以有的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-03
1:B
2:A 题目中把b写成V了大概意思可以理解。
3:B
4:C
5:C
6:B
7:D
8:A
9:B遇到\0就结束了
10:A
11:D
12:D
12:B

问答题 可以百度下, 都有的。本回答被网友采纳
第2个回答  2011-05-03
选择题不说了 1楼答的就是对的.传直调用和引用的区别是,传直传的是副本,不会改变本来的直,引用就是把自己传进去,可以改变本来的直. 函数抽象不好解释 想了解+QQ吧 1330053200
第3个回答  2011-05-03
1.b 2.a 3.b 4.c 5.c不说明类型的,系统默认为int 6.b 7.d 8.a 9.b 10.a 11.d死循环 12.d 13.b
相似回答