2018C语言复习题

  • 格式:docx
  • 大小:34.70 KB
  • 文档页数:17

C语言复习题

1.C语言程序由若干个( )构成。

A. 过程 B. 函数 C. 子程序 D. 标识符

2.若k是int型变量,且有下面的程序片段:

k=-3;

if(k<=0) printf("####");

else printf("&&&&");

上面程序段的输出结果是( )。

A. #### B. &&&&

C. ####&&&& D. 有语法错误

3.下面标识符中,不合法的用户标识符为( )。

A.Pad B.a_10 C.CHAR D.a#b

4.在C语言程序中,main( )的位置( )。

A.必须作为第一个函数 B.必须作为最后一个函数

C.可以任意位置 D.必须放在它所调用的函数之后

5.对于数学表达式2xa,下面正确的C语言表达式是( )。

A.sqrt(x)/(2*a) B.sqrt(x)/2*a C.sqr (x)/2a D.sqr(x)/(2*a)

6.在C语言中,变量的隐含存储类别是( )。

A.auto B.static C.extern D.无存储类别

7.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是( )。

A.a^b B.a|b C.a&b D.a<<4 8. 以下选项中不属于字符常量的是( )。

A.′C′; B.′\072′; C.′\xCC′; D."C";

9.以下能正确定义一维数组的选项是( )。

A.int a[5]={0,1,2,3,4,5}; B.int a[5]="0123";

C.char a[]={′0′,′1′,′2′,′3′,′\0′}; D.char a={′A′,′B′,′C′};

10.在C语言中,( )既不是保留字,也不是合法的标识符。

A.x*y B.for C.long D. x2

11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。

A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+1;

12.在一个源文件中定义的全局变量的作用域为( )。

A.本文件的全部范围 B.本程序的全部范围

C.从定义该变量开始至本文件结束 D.本函数的全部范围

13.下面程序段的输出结果是( )。

char p1[20]="abcd", *p2="ABCD",str[20]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A.xyabcAB B.xycdBCD

C.ABabcz D.abcABz

14.设有以下语句

typedef struct TT

{char c;

int a[4];

}CIN; 则下面叙述中正确的是( )。

A.可以用CIN定义结构体变量 B. TT是struct类型的变量

C. 可以用TT定义结构体变量 D. CIN是struct TT类型的变量

15. 设有以下定义

int a=0;

double b=1.25;

char c=’A’;

#define d 2

则下面语句中错误的是( )。

A.a++; B.b++ C.c++; D.d++;

16. 用十进制数表示表达式12|012的运算结果是( )。

A.1 B.0 C.14 D.12

17. 设s1,s2是两个字符数组名,判断s1和s2中的字符串是否相等,应当使用( )。

A. if(s1==s2) B. if(strcmp(s1,s2)==0)

C. if(s1=s2) D. if(strcmp(s1,s2)= 0)

18.执行下面程序中输出语句后,x的值是( )。

#include

main( )

{ int x;

printf("%d\n",(x=4,x++,x*4,x*=4));

}

A.80 B.16 C.20 D.5

19.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )。

A.k++ B.k+=1 C.++k D.k+1 20.下列程序的输出结果是( )。

main()

{ int a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;

printf("%d",*++p);

}

A.非法 B.9 C.3 D.7

21.下面函数的功能是( )。

int sss(char *s, char *t)

{ while((*s)&&(*t)&&(*t++== *s++));

return(*s-*t);

}

A.求字符串的长度 B.比较两个字符串的大小

C.将字符串s复制到字符串t中 D.将字符串s接续到字符串t中

22. 在C语言的程序中,下列叙述错误的是( )。

A.形参是局部变量

B.不同的函数中,可以使用相同名称的变量

C.在一个函数的内部,可以在复合语句中定义变量

D.main()函数中定义的变量在整个文件或程序中都有效

23. 假定已建立以下链表结构,且指针p 和q 已指向如图所示的结点:

则可将q 所指结点从链表中删除并释放该结点的语句组是( )。

A.(*p).next=(*q).next; free(p); B.p=q->next; free(q); C. p=q; free(q); D.p->next=q->next; free(q);

24.有以下结构体说明和变量的定义,且定义有题图1所示指针变量p指向变量 a,指针变量q指向变量b。则不能把结点b 连接到结点 a 之后的语句是( )。

A.(*p).next=q; B.p.next=&b;

C.p->next=&b; D.a.next=q;

25.若要打开D 盘上user文件夹下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是( )。

A.fopen(“D:\user\abc.txt”,”r”); B.fopen(“D:\\user\\abc.txt”,”r+”);

C.fopen(“D:\user\abc.txt”,”rb”); D.fopen(“D:\\user\\abc.txt”,”w”);

26.设有以下程序段

struct

{int num;

char name[20];

float score;

}student, *p;

p=&student;

若要引入结构体变量的num成员,写法错误的是( )。

A.p->num B.student.num C.student->num D.(*p).num

27.在VC++6.0编程环境中,C语言源程序文件名的后缀是 。

28.表达式“1≤a≤10”在C语言中应表示为 。 题图1 29.设a,b,c是整型变量,若a=10,b=20,则执行c=a++&&b++; 语句,变量b的值为__________。

30.若有定义int a=2,c; c=a<<2; 变量c的值为 。

31. C语言程序在计算机上运行,需要经过编辑、编译、连接和 四个步骤。

32.将数据3.12345存储到变量x中,则x定义语句为 。

33. 若x=0,y=1,z=2,表达式z+=(x++&&y++? x:y)的值是 。

34. 设有说明语句:int a[3][4]={{1,2},{3,4,5},{6,7,8}}; 则a[2][2]的初始化值为_____________。

35. 设有以下宏定义:#define f(z) z*z,执行赋值语句k=f(4+4)/f(2+2);(k为int型变量)后,k的值是 。

36.若 n= 10;则语句while(n>11);{n++;}的循环次数是 。

37.若x为int型变量,则执行下列语句后x的值为 。

x=6;

x+=x-=x*x;

38.若有定义char s[l0]=“remind”; 。则执行puts(s+2);后的输出结果 是 。

39.设已有定义

union

{char c[2]; int x;

}s; s.x=0x4342;

语句printf("\n%d,%d",s.c[0], s.c[1]);的输出结果为 。

40.下面程序的输出结果是____________________。

main()

{ char b[ ]= "Hello,you";

b[5]=’\0’;

printf("%s \n", b ); }

41. 设有定义

struct person

{ int ID;char name[12];

} p;

请将scanf("%d", );语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。

42. 定义以下结构体数组

struct

{ int num;

char name[10] ;

}x[3]={{1,"China"},{2,"USA"},{3,"England"}};

语句printf("\n%d:%s",x[0].num,x[0].name)的输出结果为__ 。

43.下面程序段的运行结果是 __________。

char a[ ]="lanuage",*p=a;

while(*p!=′u′){printf("%c",*p-32);p++;}

44.以下程序段中内循环体printf(“*”)的执行次数是__________。

for ( i=5;i>0;i--)

for ( j=0;j<2;j++)