华东交通大学专升本 C 语言
(2008-01-10 15:37:36)
转载
标签:
华东交通大学
c 语言
专升本
真题
江西专升本
教育
一.单项选择题
1. 以下定义语句中正确的是 ( )
A)char a='A'b='B'; B)float a=b=10.0;
C)int a=10,*b=&a; D)float *a,b=&a;
2. 下列运算符中,优先级最高的是 ( ) 。
A. ->
&&
B.
++
D. =
3. 表达式!(x>0&&y>0)等价于 ( ) 。
C.
A. ! (x>0) || ! (y>0)
&& !y>0
D. !(x>0) && ! (y>0)
B. !x>0 || !y>0
C.
!x>0
4. 有以下程序
main()
{ int a=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是( )
A)错误信息 B)666 C)888 D)666,888
5. 有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
程序运行后的输出结果是 ( )
A)022111 B)021021 C)000122 D)012
6. 若 x 和 y 代表整型数,以下表达式中不能正确表示数学关系|x-y|<10 的是
( )
A)abs(x-y)<10 B)x-y>-10&& x-y<10
C)!(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100
7. 数组定义为,int a[11][11]; 则数组 a 的元素个数为: ( )
A. 12
100
B.
144
D.
121
C.
8. 对于以下的变量定义,不正确的表达式是:( )。
struct node {
int
j , k ;
}x,*p=&x;
A.
k=2
p->k=2;
B.
(*p).k=2;
C.
x .
D.
x->k=2
9. 不正确的赋值或赋初值的方式是 ( ) 。
A.
str[10];
char str[ ]=”string”;
str=”string”;
char *p=”string”;
C.
*p; p=”string”;
B.
char
D.
char
10. 设程序中不再定义新的变量,写出在函数 main 中可以使用的所有变量为:
()
#include
int z;
int p(int x)
static int y;
return (x+y);
{
}
void main( )
{
int a,b;
printf(“%dn”, p(a));
………
}
A. a,b
a,b,z
a,b,x,y,z
B.
C.
a,b,y,z
D.
11.有以下程序
main()
{ int i=0,x=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是 ( )
A)10 B)13 C)21 D)程序进入死循环
12.有以下程序
main()
{ char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是()
A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6
13.s12 和 s2 已正确定义并分别指向两个字符串。若要求:当 s1 所指串大于 s2
所指串时,执行语句 S;则以下选项中正确的是( )
A)if(s1>s2)S; B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S;
14.有以下定义和语句
int a[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是 ( )
A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2]
15.程序中对 fun 函数有如下说明
void *fun();
此说明的含义是:( )
A)fun 了数无返回值
B)fun 函数的返回值可以是任意的数据类型
C)fun 函数的返回值是无值型的指针类型
D)指针 fun 指向一个函数,该函数无返回值
16.有以下程序
void fun(int *a,int i,int j)
{ int t;
if(inum B)p->num C)(*p).num D)stu[3].age
18.已定义 ch 为字符型变量,以下赋值语句中错误的是 ( )
A)ch='\'; B)ch=62+3; C)ch=NULL; D)ch='\xaa';
19.以下选项中不能正确把 cl 定义成结构体变量的是 ( )
A)typedef struct B)struct color cl
{ int red; { int red;
int green; int green;
int blue; int blue;
} COLOR; };
COLOR cl;
C)struct color D)struct
{ int red; { int red;
int green; int green;
int blue; int blue;
} cl; } cl;
20.有以下程序
fun(int a, int b)
{ if(a>b) return(a);
else return(b);
}
main()
{ int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf("%d\n", r);
}
程序运行后的输出结果是 ( )
A)3 B)6 C)8 D)12
21.有以下程序段
main()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了 c=&b;b=&a;语句后,表达式:**c 的值是 ( )
A)变量 a 的地址 B)变量 b 中的值 C)变量 a 中的值 D)变量 b 的地址
22. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是 ( )
A) 3 B) 4 C) 11 D) 12
23. 下列程序的输出结果是 ( )
A) 3 B) 3.2 C) 0 D) 3.07
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
24. 下列变量定义中合法的是 ( )
A) short _a=1-.le-1; B) double b=1+5e2.5;
C) long do=0xfdaL; D) float 2_and=1-e-3;
25. 以下循环体的执行次数是 ( )
A) 3 B) 2 C) 1 D) 0
main()
{ int i,j;
for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);
}
26. 以下叙述正确的是 ( )
A) do-while 语句构成的循环不能用其它语句构成的循环来代替。
B) do-while 语句构成的循环只能用 break 语句退出。
C) 用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。
D) 用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环。
27. 下列程序执行后的输出结果是( )
A) G B) H C) I D) J
main()
{ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }
28. 下列程序执行后的输出结果是 ( )
A) 6 B) 7 C) 8 D) 9
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5];
a=0; b[0]=3;
func(&a,b); printf("%d \n,b[0]);
}
29. 下列程序的运行结果是 ( )
A) a=%2,b=%5 B) a=2,b=5
C) a=d, b=d D) a=%d,b=%d
#include
main()
{ int a=2,c=5;
printf("a=%d,b=%d\n",a,c); }
30. 设有数组定义: char array [ ]="China"; 则数组 array 所占的空间为 ( )
A) 4 个字节 B) 5 个字节 C) 6 个字节 D) 7 个字节
31. 下列程序的输出结果是 ( )
A) 5 B) 6 C) 7 D) 8
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0],a+s[1],b;
printf("%d \n",t);
}
32. 若有以下调用语句,则不正确的 fun 函数的首部是 ( )
A) void fun(int m, int x[]) B) void fun(int s, int h[41])
C) void fun(int p, int *s) D) void fun(int n, int a)
main()
{ …
int a[50],n;
…
fun(n, &a[9]);
…
}
33. 设已有定义: char *st="how are you"; 下列程序段中正确的是 ( )
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11]; strcpy(a, st);
D) char a[], *p; strcpy(p=&a[1],st+2);
34. 下列程序执行后的输出结果是 ( )
A) you&ne B) you C) me D) err
mai()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
}
35. 下列程序执行后的输出结果是 ( )
A) 6 B) 8 C) 10 D) 12
#define MA(x) x*(x-1)
main()
{ int a=1,b=2; printf("%d \n",MA(1+a+b));}
36. 变量 a 所占内存字节数是 ( )
A) 4 B) 5 C) 6 D) 8
union U
{ char st[4];
int i;
long l;
};
struct A
{ int c;
union U u;
}a;
二、填空题
1. 表达式 1<0<5 的值是
。
3. 表达式 ~(10>>1^~5) 的值
是
。
2. 设变量已正确定义,在程序段 B 中填入正确的内容,使程序段 A 和程序段 B
等价。
程序段 A
for(k=s=0;k<=10;s+=a[k++])
if(a[k]<0) break;
程序段 B
for(k=0,s=0; ; s+=a[k++])
if(
) break;
3. 下列程序的输出结果是
#define T 10
#define
MD 3*T
printf(“%d”,30/MD);
4. 下列程序的输出结果是
int k,s;
k++;
for(k=s=0;k<10&&s<=10;s+=k)
printf(“k=%d,s=%d”,k,s);
5. 下列程序的输出结果是
#include
int f(int m)
{
static int k=2;
k++;
。
。
。