c/c++ 专项练习
c/c++ 专项练习 20 题:指针、位运算、sizeof、函数指针、虚函数等(卷内含部分 Java 题)。(题目与解析为参考(自拟),非官方标准答案。)
将逻辑代码:
int x = ...;
if (x % 2) {
return x - 1;
} else {
return x;
}
用表达式:return x & -2; 替代,以下说法中不正确的是( )
代码System. out. println(10 % 3 * 2);将打印出?
下面两段代码中for循环分别执行了多少次?
1.
unsigned short i,j;
for(i=0, j=2; i!=j; i+=5, j+=7)
{}
2.
unsigned short i,j;
for(i=3,j=7;i!=j;i+=3,j+=7)
{}
已知表达式int m[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量最大值相等?
In the main() function, after ModifyString(text) is called, what’s the value of ‘text’?
#include <stdio.h>
int FindSubString(char* pch){
int count = 0;
char * p1 = pch;
while (*p1 != '\0'){
if (*p1 == p1[1] - 1){
p1++;
count++;
}else {
break;
}
}
int count2 = count;
while (*p1 != '\0'){
if (*p1 == p1[1] + 1){
p1++;
count2--;
}else {
break;
}
}
if (count2 == 0)
return(count);
return(0);
}
void ModifyString(char* pText){
char * p1 = pText;
char * p2 = p1;
while (*p1 != '\0'){
int count = FindSubString(p1);
if (count > 0){
*p2++ = *p1;
sprintf( p2, "%i", count );
while (*p2 != '\0') {
p2++;
}
p1 += count + count + 1;
}else {
*p2++ = *p1++;
}
}
}
int main(void){
char text[32] = "XYBCDCBABABA";
ModifyString(text);
printf("%s\n", text);
return 0;
}
下列不属于java语言鲁棒性特点的是
int a[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
int *p, *q;
p = a;
q = &a[2];
则a[q - p] = ?
选项中哪一行代码可以添加
到题目中而不产生编译错误?
public abstract class MyClass {
public int constInt = 5;
//add code here
public void method() {
}
}
若char是一字节,int是4字节,指针类型是4字节,代码如下:
class CTest
{
public:
CTest():m_chData(‘\0’),m_nData(0)
{
}
virtual void mem_fun(){}
private:
char m_chData;
int m_nData;
static char s_chData;
};
char CTest::s_chData=’\0’;
问:
(1)若按4字节对齐sizeof(CTest)的值是多少?
(2)若按1字节对齐sizeof(CTest)的值是多少?
请选择正确的答案。
下面关于abstract关键字描述错误的是()
以下描述正确的是?
下面有关servlet的层级结构和常用的类,说法正确的有?
int (*s[10])(int) 中s表示的是什么?
A,B,C,D 中哪些是 setvar的重载?
public class methodover
{
public void setVar(int a, int b, float c) {}
}
在32位机器中,如下代码:
void example(char acWelcome[]){
printf("%d", sizeof(acWelcome));
return;
}
void main(){
char acWelcome[] = "Welcome to Huawei Test";
example(acWelcome);
return;
}
的输出是?
以下关于final关键字说法错误的是
下面程序应该输出多少?
char *c[] = { "ENTER", "NEW", "POINT", "FIRST" };
char **cp[] = { c+3, c+2, c+1, c };
char ***cpp = cp;
int main(void)
{
printf("%s", **++cpp);
printf("%s", *--*++cpp+3);
printf("%s", *cpp[-2]+3);
printf("%s\n", cpp[-1][-1]+1);
return 0;
}
关于JSP生命周期的叙述,下列哪些为真?
定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
下面有关forward和redirect的描述,正确的是()
?