94、下面哪个语句无法通过编译?
b选项缺少一个大括号把逻辑左右条件包含起来
95、若有以下程序
#include
int f (char x){return x*x%10;
}
main(){char a; int b=0;for (a=0; a<5; a+=1){b =f(a);printf("%d",b);}
}
则程序的输出结果是
96、下列程序的输出结果是()
fun(int a, int b, int c) { c = a * b;
}
int main(void){ int c;fun(2, 3, c);printf(”%d\n”, c);return 0;
}
如果是定义的全局变量或者静态变量,未初始化的话就是0.如果是局部变量,那就是以前残留在堆栈里的随机值。这题是局部变量,初始值随机,所以不确定!
函数fun()的参数为值传递,在函数体内的操作不能对传入的值进行修改,所以无法确定
正确解法:
1.将fun(int a,int b,int c)改为fun(int a,int b,int * c) 或者是 fun(int a,int b,int & c),即指针或者引用传递
2.加返回值 int fun(int a,int b,int c)
97、下面说明不正确的是()
C选项 a是一个指针,指向了字符常量”china’',是正确的。但是如果定义char a[10];a=“china”;是错误的!这相当于是数组的复制,而在c中并不存在数组复制的内建方法!
对定义的字符型指针变量可以将字
符串常量对其赋值,但数组名是地址常量,是不能用字符串对其赋值的。所以正确答案是D。
98、有以下程序
#include
main() {int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p = a + 5, *q = NULL;*q = *(p+5);printf("%d %d\n", *p, *q);
}
程序运行后的输出结果是()
q指针在这里是空指针,对该指针操作会出现段错误
99、以下叙述中正确的是()
100、fun((exp1,exp2),(exp3,exp4,exp5))有几个实参?
101、下列定义不正确的是( )
#define S345定义了预处理常量,
int max(x,y); int x,y; { }中的形参类型不可缺省
102、下列程序段的功能是判断字符串是否对称,对称返回1,不对称返回0,请将缺失处处缺失程序补充完整。
bool fun(string str) {int i=0,j=0;j = ____;for (j--; i < j && str[i]==str[j]; i++, j--);return i <= j;
}
传入的是string类型,而不是char*类型,直接调用string类的成员函数length()或者size()都行。
103、当参数*x=1, *y=1, *z=1时,下列不可能是函数add的返回值的( )?
int add(int *x, int *y, int *z){*x += *x;*y += *x;*z += *y;return *z;}
- 三个形参指向三个地址,此时返回值是4;2. 任意两个指向同一个地址,剩下一个指向其他地址,此时返回值有可能是5或6;3. 三个形参都指向同一个地址,则返回值是8。
104、函数strlen(“ASDFG\n”)的值是7。()
其中的’\n’为一个字符
105、C 语言程序中,运算对象必须是整型数的运算符是()
% 取余运算是二目运算符 , 且要求运算对象必须为整数
106、以下正确的函数原型为()
107、下面程序输出结果为()
#include
#include
class A {
};
int main() {printf("%d\n", sizeof(class A));return 0;
}
空类的大小原本是0,但是为什么实际上是1,主要的一个中心思想是在强调:任何相同类的不同对象应该拥有不同的地址。
108、下面程序段的输出结果是 ( )
int x = 23;
do {printf("%d", x--);
} while(!x);
109、32位系统,函数void Func(char str[100]){}中sizeof(str)的大小为()
110、标准输入设备的文件流标识符是( )。
111、下列选项,不正确的是
B选项末尾必须加分号int a=1; do { a++; }while(a<=10);,不然无法编译,这是最基本的语法错误。
112、以下代码段中循环执行的次数是()
int k = 0;
do {++k;
} while(k < 1);
do-while 语句至少执行一次
113、C 语言属于一种机器语言( )
计算机语言通常分为三类:即机器语言、汇编语言和高级语言。 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。
114、在C语言中,顺序存储长度为3的字符串,需要占用()个字节。
C语言中,字符串默认每个占用1字节,末尾还有’\0’,所以一共是4字节
115、有以下程序
#include
void fun(int *s) {static int j = 0;do {s[j] += s[j + 1];} while (++j < 2);
}
int main() {int i, a[10] = {1, 2, 3, 4, 5};for (i = 1; i < 3; i++)fun(a);for (i = 1; i < 5; i++)printf("%d", a[i]);printf("\n");return 0;
}
程序运行后的输出结果是?
116、假设C语言程序里使用malloc申请了内存,但是没有free掉,那么当该进程被kill之后,操作系统会()
内存泄漏只发生在程序运行期间,进程被kill后,该进程所有动态分配的内存空间都会被操作系统标记为可用空间,可以供其它进程申请使用。
117、哪个是将一个十六进制赋值给一个long型变量()
118、一个C程序的执行是从()
程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。在执行程序时,由系统调用main函数 。main 函数是在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的。
无论main函数内部嵌套多少个其他函数 他们在被调用完总是会返回main函数中继续向下执行!
119、有如下类定义:
class A {public:int fun1();virtual void fun2();private:int _a;
};
在32位机器上,请问sizeof(A)的值为:
类的大小只与成员变量(非static数据成员变量)和虚函数指针有关,还要考虑到对齐. 所以类A的大小:4个字节(int _a)+4个字节(指向虚函数的指针)= 8个字节
120、7&3+12的值是15。请问这句话的说法是正确的吗?
7&3+12,因为+的优先级更高,则先计算3+12 = 15,之后和7进行二进制按位与(&) 即:0111 & 1111 = 0111 = 7
121、以下程序输出()个“-”
int main(void) {int i;for (i = 0; i < 2; i++) {fork();printf("-\n");//没换行符是8}return 0;
}