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++)