1、若有定义语句char a = '\82',则变量a()
A、说明不合法
B、包含一个字符
C、包含两个字符
D、包含三个字符
选A。因为\是转义符,会将后面的字符转义。但是\8是不可识别的转义字符。
2、指针函数是指函数的返回值为指针的函数.说法的是否正确?
正确。
3、有字符数组 a[80] 和 b[80],则正确的输出语句是()
A、puts(a);puts(b);
B、printf("%s,%s",a[],b[]);
C、putchar(a,b);
D、puts(a,b);
选择A。
4、若有以下程序
#include <stdio.h>
int f(int a[],int n)
{
if(n > 1)
{
int t;
t=f(a, n-1);
return t > a[n-1] ? t:a[n-1];
}
else
return a[0];
}
int main()
{
int a[] = {8,2,9,1,3,6,4,7,5};
printf("%d\n", f(a, 9));
return 0;
}
则程序的输出结果为()
A、9 B、1 C、8 D、5
输出结果为9。实质上是求数组的最大值。
5、由以下程序
#include <stdio.h>
int f(int x);
main()
{
int a, b = 0;
for ( a = 0; a < 3; a += 1)
{
b += f(a) ;
putchar('A'+b) ;
}
}
int f( int x)
{
return x*x + 1 ;
}
输出结果是?
a = 0,b = 0+f(a)=1,putchar('A'+1)->B
a = 1,b = 1+f(a)=3,putchar('A'+3)->D
a = 2,b = 3+f(a)=8,putchar('A'+8)->I
所以,输出结果为BDI
6、下面叙述错误的是()
char acX[]="abc";
char acY[]={'a','b','c'};
char *szX="abc";
char *szY="abc";
A、acX与acY的内容可以修改
B、szX与szY指向相同的地址
C、acX占用的内存空间比acY占用的大
D、szX的内容修改后,szY的内容也会修改
上次做错了这道题。szX与szY确实指向相同的地址。但是"abc"是保存在文字常量区,属于字符串常量,所以该数据不能修改,默认只读属性。
7、以下选项中不属于C语言程序运算符的是?
A、sizeof B、<> C、() D、&&
选B。()括号运算符,&&与运算符
8、下面main函数执行后的结果()
int func()
{
int i,j,k=0;
for(i=0,j=-1;j=0;i++,j++)
{
k++;
}
return k;
}
int main()
{
cout<<(func());
}
for循环执行时,i=0,j=-1,此时判断j是否等于0,但是不等于,所以不执行循环体。返回k的值,为0。
9、下面有关友元函数与成员函数的区别,描述错误的是?
A、友元函数可以让本类和友元类对象调用
B、友元函数和类的成员函数都可以访问类的私有成员变量或者是成员函数
C、类的成员函数属于类的,调用的时候是通过this指针调用的
D、友元函数是有关键字friend修饰,调用的时候也是通过指针this调用的
选择D。调用的时候直接调用,不用this指针。
10、有一个类B继承自类A,他们的数据成员如下:
class A {
...
private:
int &a;
};
class B : public A {
...
private:
int a;
public:
const int b;
A c;
static const char* d;
A* e;
};
则构造函数中,成员变量一定要通过初始化列表来初始化的是()
在构造函数中需要初始化列表初始化的有如下三种情况
1、带有const修饰的类成员,如const int a;
2、引用成员数据,如int& p;
3、带有引用的类变量
综上所述,b,c需要初始化列表来初始化。