C语言复习题目
一、是非判断题(每小题1分,共15分,对的题后打√,错的打×)
1.在C语言中,逗号运算符的优先级最低。
2.在C语言可执行程序的开始执行点是程序中第一个函数。
3.“5ch”是合法的变量名。
4.C程序中,函数的定义和函数的调用均可以嵌套。
5.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上”。
10.函数的返回值是通过函数中的return语句获得的。
11. 用数组名作函数参数时传递的是数组的值。 12. 全局变量可以被任何一个函数中的任何一个表达式使用。 13. 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。 14. 表达式i++与++i在任何场合功能完全相同。int i15. 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。”china” B *b=”china” C p=”china” D *p=”china”
3.运行下列程序后,变量t.x和t.s的正确结果为_______。
struct tree
{
int x;
char *s;
};
fun(struct tree t)
{
t.x=10;
t.s=”computer”;
return(0);
}
main()
{
struct tree t;
t.x=1;
t.s=”minicomputer”;
fun(t)?;?
printf(”%d,%s\n”,t.x,t.s?)?;
}
A 10,computer B 1,minicomputer C 1,computer D 10,minicomputer
4.若fp是指向某文件的指针,且已读到文件的末尾,则表达式feof(fp)的返回值是__________。
A 0 B -1 C 非零值 D NULL
5.正确的指针数组的描述是__________。
A int (*a)[10] B int a[i][j] C int *a[10] D 指针数组表示一个指针指向数组
6.如有int a,*p=&a以下正确执行的赋值的是_________。
A *p=&a B p=10 C *p=10 D p=a
7.main()
{
int x=3,y=2,z=1;
printf(“%s=%d\n”,”x/y&z”,x/y&z);1&z00000001
}
程序的输出结果是:__________。
A x/y&z=0 B x/y&z=1 C x^y&z=0 D x^y&~z=1
8.定义一个返回值为整型的函数指针变量,下列哪一个是正确的______。
A int * p() B int (*p)[] C int (*p)() D int p()
9.main()
{
int i=0,j=0;
do{
if(j%5= =0) i++; 1、i=0,j=0 i=1,j=1 2、j=2 3、j=3 4、j=4 5、j=5 i=1 6. i=2,j=6 第20次 i=4,j=20
第21次 i=5,j=21
j++;
}while(i!=5)
}
程序运行结束后j的值为_______。
A 25 B 20 C 26 D 21
10.若x=2,y=1,z=0,下列几个表达式的值分别为__________。
⑴x|y&&z ⑵x!=y!=z ⑶~x>y x ~x1
A 0,1,0 B 0,1,1 C 0,0,0 D 1,1,0
三、读程序,并选出正确的答案(每空2分,共30分)
1.#include
int find( char *s1,char *s2) 判断s2是否为s1的子串
{
int t;
char *p1,*p2;
for(t=0?;s1[t]?;t++)
{
p1=&s1[t]?; p1=&s1[1] p1->’ ’ p2->’i’
p2=s2?;
while(*p2&&*p2= =*p1)
{
p1++;
p2++;
}
if(!*p2) return(t);
}
return -1?;
}
m