一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
1,在C语言中,合法的长整型常数是(A)
A. OxOL
B. 4962710M
C. 324562&
D. 216D
2,设有定义: int a[10],*p=a+6,*q=a; ,则下列运算哪种是错误的(B)
A. p-q
B. p+q
C. p+3
D. p>q
3,下列语句中符合C语言语法的赋值语句是(C)
A. a=1+b+c=a+1;
B. a=(1+b,c-atl);
C. a=(1+b,b++,a+1);
D. a=l+b,c=a+1
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
5,设有数组定义: char array [7]-“China”;则数组array所占的空间为(D)
A. 4 个字节
B. 5个字节
C. 6个字节
D. 7个字节
6.已知字母a的ASCII值为十进制的97,下面程序的输出是(D)
#include <stdio.h>
void main
{
char cl,c2;
cl=‘a’+6’-2’; c2=‘a’+‘6’-‘3’;
printf(“%c,%din”,c2,cl);
}
A. 输出不确定的值
B. d,e
C. e, f
D. d, 101
7,以下正确定义一维数组的选项是(B)
A. mta[5]={0, 1,2,3,4,5);
B. char a[]= “ABC”;
C. char a[]= “ABC”??. char a=“ABC”;
D. int a[5]=“123”;
8若定&inti;则以下循环语句的循环执行次数是(forfi=2; i=0;) printf(“%d”, i-)
B
A.无限次
B. 0次
C. 1次
D. 2次
A. int p4]
B. intp
C. int (p4])
D. int (*p)[4]
10.假定a和b为int型变量,则执行以下语句后b的值为(D)
a=1;b=10;
do {b-=a;a++;)
while(b–<0);
A. 9
B. -2
C. -1
D. 8
C. int *s, k;
char *p, c;
s=&k;
p=&c;
*p=‘a’;
D. int *s, k;
char *p, c;
s=&k;
p=&c;
S-p;
*s=1;
…
12.若有以下的说明和语句:
#include <stdio.h>
void main()
{ int t[3][2], *pt[3],k;
for(k=0; k<3;k++) pt[k]=t[k]; }
C
A. &t[3][2]
B. *pt[0]
C. *(pt+1)
D. &pt[2]
A. 两处的p 含义相同,都说明给指针变量p赋值
B.在double r-50,p-&r;中,把r的地址赋值给了p所指的存储单元
c.语句p-T:把变量r的值赋给指针变量p
D.语句p-t:取变量r的值放回r中
14.执行以下程序后, y的值是(C)
#include <stdio.h>
void main ()
{
int a0={2,4,6,8,10};
int y=1,x.p;
p=&a[1];
for(x=0;x<3;x++) y+=(p+x);
printf(“%d\n”,y);
}
A17
B18
C19
D20
15.当说明一个共用体变量时,系统分配给它的内存是?
A.第一个成员所需内存空间
B. 各成员所需内存空间之和
c. 各成员所需内存空间的最大值
D.最后一个成员所需内存空间
16, 设ntx=1, y-1:表达式(! x++&&y-) 的值是(A)
A.0
B. I
C. 2
D. -1
A. funa (intx, inty) {int*p: *p=*x: x=*y: y=*p: }
B. fund (intx,inty) {intt; tx; xy: yt: }
C. fune (int xs intg) {*x=*y: *y=x: }
D. fund fintx, int *y) {*x=*x+*y; *y=*x-*y: *x=*x-*y: }
18以下程序的输出结果是(A)
#include <stdio.b>
#include < string.h>
void mainz()
{ char *s1=“ABCDEF”,*s2=“aB”;
sl++;s2++;一printf(“%d”,strcmp(s1,s2));
}
A. 正数
B. 负数
C. 零
D.
19.一下程序的运行结果是(C)
#include <stdio.h>
void sub(int s[], int *y) {
static int t = 3;
*y = s[t];
t--;
}
int main() {
int a[] = {
1, 2, 3, 4};
int i, x = 0;
for (i = 0; i < 4; i++) {
sub(a, &x);
}
printf("%d\n", x);
return 0;
}
A. 1234
B. 4321
C. 0000
D. 4444
A. char s1[10];s1=“test”;
B. char s20={t’e’s,'t}
C. char s3[20]=“test”;
D. char s4[4]={‘t’,‘e’,‘s’,‘t’}
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
passwarn
#include <stdio.h>
void main()
{
int n='c';
switch(n++)
{
default: printf("error"); break;
case 'a': case 'A': case 'b': case 'B': printf("good"); break;
case 'c': case 'C':