C语言复习题
熟读理论教材,理解相关知识,并复习理论教材课后练习题
(切记:以理论教材知识、例题和课后练习为主复习)
熟读课本例题及知识,完成以下知识点的复习及总结。
一.填空
1.一个C语言的执行是从本程序的____开始,到____结束
2.C语言中用户的标识符命名规则是____。
3.在一个c语言程序中,main函数的位置是___。
4.若有代数式p(mne)/(bcd),其中p、m、n、e、b、c、d为变量,则该代数式的 C语言表达式为___。
5.char a; int x; float y,m; double z,p;则表达式“a*x*m+z-y*x*p”值的数据类型为___。
6.C语言的常用关键字有___(举例说明,越多越好)。
7.printf函数中用到格式符%ms,其中数字m表示输出的字符串占用m列。如果字符串长度大于m,则输出时的规则是___。若如果字符串长度小于m,则输出时的规则是___。若如果字符串长度等于m,则输出时的规则是___。当m>0时是左对齐还是右对齐m<0呢
8已有定义“int x; float y;”且执行“scanf(“%4d%f”,&x,&y);”语句,若从第一列开始输入数据9876543,则x的值为___。
10.能正确表示a≥-100或a≦100的关系表达式是___。能正确表示a≥-100且a≦100的关系表达式是___。
11.判断逻辑值为“真”的判断方法是___。逻辑值为“假”的判断方法是___。
12.已知“int x=100,y=200,z=300”,则执行if(x>y)z=x;x=y;y=z;语句后,x、y、z的值是___。
13.若m和n均为int型变量,则以下for语句循环执行的次数___及输出结果是___。
for(n=8,m=8;m!=8;m++,++n) printf(“Welcome you!\n”);
14.若n为int型变量,则循环语句“for(n=0;n<100;n++)”控制循环体执行___次。
15.在循环语句循环体中执行continue语句,其作用是___,break的作用是__;在swich()
Case语句中break语句作用是__。
16.关于函数的参数,实参可以是__,形参可以是__,
A.表达式;B.变量 c.常量 D.默认值
语言的编译系统对宏命令的处理是在什么时间进行__
18.在C语言中,函数返回值的类型最终取决于__
19.定义二维整型数组b时,该数组行号和列号是否可以为变量
20.对一维数组和二维数组定义及初始化的方法进行总结,并举例说明__
21.若有以下语句,char a[]=”abcdefgh”; char b[]={‘a’,’b’,’c’,’d,’e,’f’,’g’,’h’};则a和b数组长度分别为__和__
22.设有定义“int n1=0,n2,*p=&n2,*q=&n1;”,以下赋值语句中与“n2=n1;”语句等价的是另外一种表示语句为__
23.如有语句“int q=100,*p=&q;”,下面均代表地址的一组选项是________________
A. q,p,*&q B. &*q,&q,*p C. *&p, p,&q D. float *q,&*p ,p
24.若有说明语句“int m, c语言用递归函数求n的阶乘a[10][10];”,则不能将a[1][1]的值赋给变量m的语句是________________
A. m=*(*(a+1)+1); B. m=a[1][1] C. m=*(*(a+1)) D. m=*(a[1])+1)
25.下面程序的运行结果是________________
char str[]=”ABCDEFGGH”,*p=str; printf(“%d\n”,*(p+3));
语言结构体类型变量在程序执行期间驻留在内存中的包括________________
27.以下关于结构体与共用体的共同点和区别是________________,他们如何分配空间的
28.已有定义“int a,b,c;”,且a=b=c=20,执行if(a++||b++) c++;语句后,a、b、c的值是分别是________________、______________、________________。
已有定义“int a,b,c;”,且a=b=c=20,执行if(a++&&b++) c++;语句后,a、b、c的值是分别是________________、______________、________________
29. 在一个源文件中定义的全局变量和局部变量的作用域为________________和________________。
30. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是什么如果实参是地址值呢不同的是什么
31.有以下程序, 结果为_______________。
void main( )
{ int a[5]={1, 2, 3, 4, 5};
int *pa=&a[1];
printf(“%d”, pa[1]);
}
32.下面函数调用语句含有实参的个数为_______________。
y = fun(a, b, c, min(d ,e),max(a,b));
33.以下程序的输出结果是_______________。
long fib(int n)
{ if(n>2)
return(fib(n-1)+fib(n-2)); else
return (2);
}
void main( )
{ printf("%ld\n", fib(5)); }
34.若有以下语句int a,*p,**p; a=808;p=&a;pp=&p;则**PP的值是_______________。
35. 设有如下定义:int *p( ); int a[10], *q[10];q[i]=&a[i]则p表示的意义是_______________,*q的表示的含义是_______________,其值是_______________。
38.若有 #define MU(x,y) x*y , 则表达式24/MU(1+2,2)的值是_______________。
39.若有 int a=1; 则执行完循环语句while( a++<100 );后a的值为_______________。
40.以下所列的C语言常量中,错误的是_______________。
A.0xFF B. C. D.'B'
41.所有的字符串都是以_______________字符结束的。
42假定double类型变量占用8个字节,且有定义:double x[10]={1,2,3};,则数组x在内存中
所占字节数是_______________
43判断char型变量ch是否为小写字母的正确表达式是_______________
44. 以下语句正确的有_______________,错误的有_______________
A char a='P', b='M'; B float a=b=;
C int m=101, *n=&m; D double *a, b=&a;
45.以下4个选项中,不能看做一条语句的是_______________
A.a-=23; B.a=8,b=,c=;
B.if(a<15) p++; D.if(b!=5)x=2; y=6;
46.关于if后一对圆括号中的表达式,可以是哪种类型的表达式_______________
47.以下有关变量使用范围不正确的说法是_______________。
A 在不同函数中可以使用同名的变量 B 形式参数是局部变量
C 在函数内定义的变量只在本函数内有效 D 全局变量可以在所有函数中使用
48.若有说明语句:int a,b,*d=&b;,则能正确从键盘读入2个整数分别赋给变量a、b的语句是_______________。
A.scanf("%d%d", &a,d); B.scanf("%d%d", &a,&d);
C.scanf("%d%d" ,a,d); D.scanf("%d%d", a,*d);
49.已知 int p=20; 则执行
if(p<=0)
if(p!=0) printf(“AAAAA”);
else printf(“BBBBB”);
else printf(“CCCCC”);
语句后,输出的结果是_______________。
50.要使字符数组str存放一个字符串"Goodbye",正确的定义语句是_______________。
51.若用二维数组名作为函数调用的实参,传递给形参的值是_______________。
52.若有 int x=20,y=8,z;,则执行语句z=+x/y后z的值为_______________。
53.设有以下语句:
struct SS
{int no; char name[10];}PERSON;
则下面叙述中错误的是_______________。
A struct是结构体类型的关键字 B struct SS是结构体类型
C PERSON是结构体类型名 D name是结构体成员名
54.已知:char ch='m';则下列表达式的值是_______________。
ch = (ch>='a'&&ch<='z') (ch-32) : ch;
55.下面程序的运行结果是_______________。
char c[8]={'a','\0,’b','\0','c','\0'};
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论