假设有定义:
-
int
k;
-
for
(k=1; k; k++)
-
printf
(
"%d "
, k);
-
A.
-
B.
-
C.
-
D.
循环语句
-
while
(!x&&!y)
-
A.
-
B.
-
C.
-
D.
对于
-
int
x, y;
-
if
(x < 0)
-
y = -1;
-
else
if
(!x)
-
y = 0;
-
else
-
y = 1;
-
A.
-
B.
-
C.
-
D.
若定义
-
char
s[2][3]={“ab”, “cd”}, *p=(
char
*)s;
-
A.
-
B.
-
C.
-
D.
要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确实现此功能的函数是
(单选2分)-
A.
-
B.
-
C.
-
D.
对于如下定义:
-
int
k,a[10],*p=a;
-
A.
-
B.
-
C.
-
D.
下列描述不正确的是
(单选2分)-
A.
-
B.
-
C.
-
D.
有如下定义:
-
int
x[]={1,2,3},*p=x,y;
-
y=*p++;
-
A.
-
B.
-
C.
-
D.
与
-
while
( *s++ = *t++ );
-
A.
-
B.
-
C.
-
D.
有以下结构体说明和变量定义,指针p、q、r依次指向一个链表中的三个连续结点。
-
struct
node
-
{
-
int
data
-
struct
node *next ;
-
} *p, *q, *r;
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是
-
A.
-
B.
-
C.
-
D.
有以下程序
-
void
WriteStr(
char
*fn,
char
*str)
-
{
-
FILE
*fp;
-
fp=
fopen
(fn,
"w"
);
-
fprintf
(fp,
"%s"
, str);
-
fclose
(fp);
-
}
-
int
main()
-
{
-
WriteStr(
"t1.dat"
,
"start"
);
-
WriteStr(
"t1.dat"
,
"end"
);
-
return
0;
-
}
程序运行后,文件t1.dat中的内容是
-
A.
-
B.
-
C.
-
D.
语句
-
while
(x%3) a++;
-
x%3
-
A.
-
B.
-
C.
-
D.
当文件打开出现错误时,fopen返回的是?
(单选2分)-
A.
-
B.
-
C.
-
D.
在一个链表中,要把s所指的一个结点插入到p所指的一个结点后面去,正确的语句是:
(单选2分)
-
A.
-
B.
-
C.
-
D.
下列数组定义,不正确的是 _______.
-
A.
-
B.
-
C.
-
D.
对
-
for
(表达式1;;表达式3)
-
A.
-
B.
-
C.
-
D.
对于以下代码:
-
char
ch = -1;
-
printf
(
"%hhd\n"
, ch);
输出结果是?
-
A.
-
B.
-
C.
-
D.
以下哪句不是正确的原型?
(单选2分)-
A.
-
B.
-
C.
-
D.
给定以下原型:
-
void
f(
double
dd);
和如下变量定义:
-
double
a;
哪个函数调用是不能被编译的?
-
A.
-
B.
-
C.
-
D.
以下哪个函数是不正确的(与能否被编译无关)?
(单选2分)-
A.
-
B.
-
C.
-
D.
执行下列代码后变量t的值是_____.
-
#define fun(a) 4*a;
-
int
t;
-
t=fun(1+2);
-
A.
-
B.
-
C.
-
D.
若有定义
-
struct
{
-
int
k;
-
char
s[30];
-
} a[5] = {1,
"ABC"
, 2,
"abc"
}, *p = a;
-
A.
-
B.
-
C.
-
D.
以下哪个不是C语言的关键字?
(单选2分)-
A.
-
B.
-
C.
-
D.
对于以下代码:
-
int
i;
-
for
( i=0; i<10; i++)
-
printf
(
"%d"
, i);
for循环后,i的值是多少?
-
A.
-
B.
-
C.
-
D.
以下哪个for语句是错误的?
(单选2分)-
A.
-
B.
-
C.
-
D.
以下哪个函数不是正确的?
(单选2分)-
A.
-
B.
-
C.
-
D.
给定函数原型如下:
-
int
* f(
int
*p);
-
int
i;
-
A.
-
B.
-
C.
-
D.
有以下代码片段:
-
struct
{
-
union
{
-
char
a,b;
-
int
c;
-
} d;
-
int
e[5];
-
} f, *p = &f;
那么,下列语句哪个是能被编译的:
-
A.
-
B.
-
C.
-
D.
有函数原型为
-
void
f(
int
,
int
*);
-
int
a=2, *p=&a;
-
A.
-
B.
-
C.
-
D.
若定义
-
int
k, a[10], *p=a;
-
A.
-
B.
-
C.
-
D.
语句
-
if
(4/5 > 3/4)
-
a=1;
-
else
-
a=0;
运行后,a的值是
假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是(形如ch=...答案不留任何的空格,不带结尾的分号)
(填空2分)下列程序段的输出是_______。
-
#define DF(a,b) (a+2*b)
-
int
s=5;
-
int
k= DF(s+1,s-3);
-
printf
(
"%d"
,k);
以下代码段的输出是:
int
x, y, z, w;
void
p(
int
*y,
int
x)
{
static
int
w;
*y++; x++; w = x+*--y;
printf
(
"%d#%d#%d#%d#"
,x,*y,z,w);
}
int
main(
void
)
{
int
x, y, z, w;
x=y=z=w=1;
do
{
static
int
x;
p(&x, y);
printf
(
"%d#%d#%d#%d#"
,x,y,z,w);
}
while
(0);
return
0;
}
若变量已正确定义并赋值,则表达式(-10<x<0)的值为
(填空2分)表达式
(
double
)(10/4)
假设sizeof(int)的值为4,对数组定义:
-
int
a[3][6];
写出表示“当 x 的取值在 [-10, 0] 的范围内,结果为真,否则为假”的C语言表达式,注意不要任何空格
(填空2分)若
-
int
a = 6, b = 0, c = 3
-
a && b || b - c
下列程序段输出_______。
int
fun(
int
x)
{
return
(x<3?1:(fun(x-1)+2*fun(x-2)));
}
int
main()
{
printf
(
"%d"
,fun(4)+fun(5));
}
以下代码段的输出是:
-
char
a[20]=
"cehiknqtw"
;
-
char
*s=
"fbla"
,*p;
-
int
i, j;
-
for
(p=s; *p; p++) {
-
j=0;
-
while
(*p>=a[j] && a[j]!=
'\0'
) j++;
-
for
(i=
strlen
(a); i>=j; i--) a[i+1] = a[i];
-
a[j]=*p;
-
}
-
printf
(
"%s"
, a);
根据下面的定义,F0(3+4)的输出结果是_______(注意没有空格)
#define F1(var) printf("var=%d", var)
#define F0(var) F1(var * var)
程序T1的代码如下,则运行T1 abc bcd cde aed的输出结果是_______.
-
int
main(
int
argc,
char
** argv)
-
{
-
while
(**argv++!=
'a'
);
-
printf
(
"%s"
, *argv);
-
return
0;
-
}
若定义
char
*s1;
strlen
(s1)==0
以下代码段的输出是:
-
int
number, right_digit;
-
number = 15292;
-
if
( number ==0 ) {
-
printf
(
"0"
);
-
}
else
-
while
( number != 0 ) {
-
right_digit = number % 10;
-
printf
(
"%i"
, right_digit);
-
number /= 10;
-
}
若有
int
x = 5;
则
! x<10
的结果(以整数表达)是
表达式
-
‘B’+‘8’-‘3’
现有
int
x=0,y=4;
-10<x & y<0
以下代码的输出是 :
-
void
swap(
int
*pa,
int
*pb )
-
{
-
int
pt;
-
pt = *pa, *pa = *pb, *pb = *pa;
-
}
-
int
main(
void
)
-
{
-
int
x=1, y=2;
-
f(&x, &y);
-
printf
(
"%d%d"
, x, y);
-
}
表达式
(
double
)(10/4*4)