#include<stdio.h>
main(){
int b=10,a=-11;
a%=b%=4;
printf("%d %d\n",a,B);
}
则程序的输出结果是?
- 1 2
- -1 2
- -1 -2
- 1 -2
答案 B
经典水题,注意从右往左计算
2.以下不能作为合法常量的是:
- 1.234e04
- 1.234e0.4
- 1.234e+4
- 1.234e0
-
答案 B
有2个小数点,明显是错的
3.看以下代码:
A *pa = new A[10];
<pre name="code" class="cpp">delete pa;
则类A的构造函数和析构函数分别执行了几次()
- 1 1
- 10 10
- 1 10
- 10 1
答案 D
A是自定义的类,所以析构时
delete pa;
是错误的,应该是
delete[] pa;
4.Consider the following definition of a recursive function, power, that will perform exponentiation.
int power(int b, int e) {
if (e == 0)
return 1;
if (e %2 == 0)
return power (b * b, e / 2);
return b * power(b * b, e / 2);
}
Asymptotically (渐进地) in terms of the exponent e, the number of calls to power that occur as a result of the call power(b, e) is
- logarithmic
- linear
- quadratic
- exponential
答案 A
题目不是太懂,一看代码,稀里糊涂就选了D
5.如下函数的f(1)的值为()
int f(int n){
static int i=1;
if(n>=5)
return n;
n=n+i;
i++;
return f(n);
}
- 5
- 6
- 7
- 8
答案 C
注意 static声明的变量只初始化一次
6.下面两段代码中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)
{}
- 32767 16383
- 32767 16363
- 33787 16363
- 33787 16383
答案 A
类似南辕北辙
5*x%65536==(7*x+2)%65536; x=32767
(3*x+3)%65536==(7*x+7)%65536; x=16383
7.在64位系统下,分别定义如下两个变量:char *p[10]; char(*p1)[10];请问,sizeof(p)和sizeof (p1)分别值为____。
- 4,40
- 80,8
- 10,10
- 8,80
- 40,4
- 4,4
答案 B
p是一个数组,一个指针数组,包含10个char型指针
p1是一个指针,一个指向数组的指针
8.
struct node
{
int elem;
node* next;
};
void difference(node** LA , node* LB)
{
node *pa , *pb , *pre , *q;
pre = NULL;
1 //1
while(pa) {
pb = LB;
while 2 //2
pb = pb->next;
if 3 //3
{
if(!pre)
*LA = 4 ; //4
else
5 = pa->next; //5
q = pa;
pa = pa->next;
free(q);
}
else {
6 ; //6
pa = pa->next;
}
}
}
4.pa->next
5.pre->next
6.pre=pa
注意答案不要引起歧义即可
9.下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新数,作为函数值返回。
例如,从主函数输入一个整数27638496,则函数返回值为26846. 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
unsigned long fun(unsigned long n )
{
unsigned long k = 0, s, i; int t;
s = n;
i = 1 ;
while ( 2 )
{
t = s % 10;
if (t % 2 = = 0)
{
k = k + t * i;
i = 3 ;//i放前面
}
s = s / 10;
}
return k;
}
main ( )
{
unsigned long n = - 1;
While (n > 99999999 || n < 0 )
{
printf (" Please input (0 < n < 100000000):");
scanf ("% ld", &n);
}
printf("\nThe result is: % id\n", fun (n));
}
答案
1
s>0 (我填了s,竟然错误。。。答案好严谨!)
i*10
10.给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
void fun (char *s, int a, double f)
{
/**********found**********/
1 * fp;
char ch; &
fp = fopen("filel.txt", "w");
fprintf (fp, "% S % d %f\n", % '%', f);
fclose(fp);
fp = fopen("filel.txt", "r");
printf("\nThe result:\n\n");
ch = fgetc(fp);
/**********found**********/
while (!feof ( 2 ))
{
/**********found**********/
putchar( 3 );
ch = fgetc(fp);
putchar('\n');
}
fclose(fp);
}
int main( )
{
char a[10] = "hello!";
int b = 12345;
double c = 98.76;
fun(a, b, c);
}
答案
FILE
fp
ch
文件这一块儿快忘完了。。。