C语言期末复习卷习题
下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
2.下载的文档,不会出现我们的网址水印。
3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
8
积分
还剩页未读,继续阅读
关 键 词:语言
期末
复习
习题
资源描述:
期末总复习(基础知识+程序设计部分)
一. 填空
1.已知char ch=’A’; 则下列表达式的值是: a
Ch=(ch>=’A’ && ch<=’Z’)? (ch+32):ch;
2. 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是 7
3. 若x=2,y=3,则x%=y+3之值为 2
4.. 若有定义int y=3; float z=5.2, x=4.8; 则表达式y+=(int)x+x+z的值为 17
5. 设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值
1)(x&&y)==(x||z) 1
2) !(x>y)+(y!=z)||(x+y)&&(y-z) 0
3)x++-y+(++z) 13
6. 设x,y,z为int型变量,请用C语言表达式描述下列命题
1)x和y中有一个小于z (xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1
3)y是奇数y%2!=0
7. 下面for循环语句最多可执行 4 次
For (x=0,y=0;(y!=99)&&(x<4);x++)
8. 设i,j,k均为int型变量,则执行以下for语句后,k的值是 10
for (i=0,j=10;i<=j;i++,j--)
k=i+j;
9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为 7 y的值为 9 z的值为 7
m=10 ; n=5;
x=(--m==n++)? --m : ++n;
y=m++;
z=n;
10. 若有说明语句: w=1,x=2,y=3,z=4; 则表达式w>x? w:z>y? z:x值是 4
11. 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符 void
12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为 动态存储
13. 在C语言中,一个函数直接或间接地调用自身,编构成函数的 递归
14. 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成 型,在调用函数的文件中将该函数说明为 型。
15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素。N*j+m+1
16.若有定义:char *str=”I am a student.”; 则字符串在存储单元中占 16 个字节。
17. 在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是 0 。
18. 调用strlen(“abc\0ef\0g”)的返回值是 3 。\0为停止符
19. 设有定义:char s[12]=“string”; 则printf(“%d\n”,strlen(s));的输出值是 6
20. 执行下列程序段后,*p等于 3
int a[5]={1,3,5,7,9}; *p=a;p++;
二. 判断(true or false)
1. 调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。T
2. 函数可以嵌套定义F
3. 函数必须有返回值,否则不能正确作用F
4. C程序中有调用关系的所有函数必须放在同一源程序文件中。F
5. 全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F
6. 函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F
7. 当函数定义放在main()函数前面时,可以缺省函数声明。T
8. C语言中允许函数嵌套调用T
9. 局部静态变量是在编译时赋初值的,即只赋一次初值。T
10. 外部变量必须定义在文件的开头部分F
11. 字符’\0’是字符串的结束标记,其ASCII码为0.T
12. 若有说明:int a[3][4]={0};则数组a中每个元素的初值都为0.T
13. 若有说明:int a[2][4]={0,0};则只有a[0][0]和a[0][1]的初值为0, 其余元素的初值均不为0. F
14. 若有说明:int a[3][4];则数组a中各元素可在程序的编译阶段达到初值0.F
15. 若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。F
16. 在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。F
17. 当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。T
18. 在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。F
19. &b指的是变量b的地址处所存放的值;F
20. 指针变量可用于保存同类型变量的地址值;F
21. 存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F
22. 指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。F
23. 如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量,数组名或简单变量的地址T
24. char *name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。F
25. 语句y=*p++;和y=(*p)++;是等价的。F
26. 函数指针指向的是函数的入口地址。T
27. int *p;定义了一个指针变量,其值是整型的。F
28. 用指针作为函数参数时,采用的是“地址传送”方式.T
三、 选择题
1.下列变量名中哪些是合法的?
p 2a a# C$ t3 _var q int
2.语言中用________表示逻辑值“真”。
A) trueB) 整型值0C) 非零整数值D) T
3.下列合法的字符常量为________。
A) "a" B) \n C) china D) a
4. 设有语句char c=\72; 则变量c________。
A) 包含1个字符 B)包含2个字符 C) 包含3个字符 D) 不合法
5. 字符串"\t\"Name\\Address\n"的长度为________。
A) 19 B) 15 C) 18 D) 不合法
6. 设a,b,c 为 int 型变量,且a = 3 ,b = 4 , c = 5,下面表达式值为0的是________。
A) a && b B) a <= b
C) a || b+c && b-c D) !((as2) B) if (strcmp(s1, s2))
C) if (strcmp(s2, s1) > 0) D) if (strcmp(s1, s2) > 0)
23. .若用数组名作为函数调用时的实参,则实际上传递给形参的是: 。
A) 数组的首地址; B) 数组的第一个元素值;
C) 数组中全部元素的值; D) 数组元素的个数。
24. 在函数调用时,以下说法中正确的是: 。
A) 在C语言中,实参与其对应的形参各占独立的存储单元;
B) 在C语言中,实参与其对应的形参共占同一个存储单元;
C) 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;
D) 在C语言中,形参是虚拟的,不占存储单元。
25. C语言中形参的缺省存储类别是: 。
A) 自动(auto) B) 静态(static) C) 寄存器(register)D)外部(extern)
26. C语言规定:简单变量做实参时,它和对应形参之间数据的传递方式为: 。
A) 地址传递; B) 单向值传递;
C) 由实参传给形参,再由形参传回给实参; D) 由用户指定传递方式。
27.
(1) 阅读程序,选择程序的运行结果。
#include int Try(int n)
{
if (n > 0)
return(n*Try(n-2));
else
return 1;
}
main()
{
int x;
x = Try(5);
printf("%d\n", x);
}
A. 15B. 120C. 1D. 前面三个答案都是错的
(2)下面的函数f两次进行调用,请选择程序的运行结果。
#include int Fun(int m)
{
static int n = 0;
m /= 2;
m =m * 2;
if (m)
{
n *= m;
return(Fun(m-2));
}
else
return n;
}
main()
{
int a,i,j;
for (i=0; i<2; i++)
{
a = Fun(4+i);
printf("%d\n",a);
}
}
① 第一次输出的结果 A. 8 B. 0C. 64D. 4
② 第一次输出的结果 A. 8 B. 0C. 64D. 4
28. 设有语句:int a[10], *p=a;,则在下面语句中,不正确的是
A) P=P+1 B)P[0]=*P+1 C)a[0]= a[0]+1 D)a=a+1
29. 指向变量的指针,其含义是指该变量的
A)值 B)地址 C)名 D)一个标志
30. 若int(*p)[5];,则其中p的含义是
A) 5个指向整形变量的指针 ;
B) 指向5个整形变量的函数指针;
C)一个指向具有5个整形元素的一维数组的指针;
D)具有5个指针元素的一维数组指针,每个元素都只能指向整型量;
31. 设有定义:int a=3,b,*p=&a;则下列语句中使b不为3的语句是
A) b=*&a; B)b=*P; C)b= a; D)b=*a;
32. 设char **s;则以下表达式中,正确的是
A) s=”computer”; B) *s=”computer”;
C) **s=”computer”; D)*s=’s’
33. 设 char s[10], *p=s;,以下表达式中不正确的是
A) p=s+5; B)s=s+p; C)s[2]=p[4]; D)*p=s[0];
34. 执行下列程序段后,*p等于
int a[5]={1,3,5,7,9}, *p=a; p++
A) 1; B)3; C)5; D)7;
程序设计题
1. 编程计算1*2*3 + 3*4*5 + 99*100*101的值。
#include int main()
{
int i,j,k,sum=0;
for(i=1,j=2,k=3;i<100,j<101,k<102;i+=2,j+=2,k+=2)
sum=sum+i*j*k;
printf("%d\n",sum);
}
2. 编程计算 a + aa + aaa + …. + aa..a (n个a)的值,n和a的值由键盘输入。
#include Void main()
{
int n,a,i;
int sum,na;
printf("Please input n and a:");
scanf("%d %d",&n,&a);
sum=0;
na=a;
for(i=1;i<=n;i++)
{
sum+=na;
na=na*10+a;
}
printf("sum=%d\n",sum);
}
3. 利用前100项之积计算π。
#include int main()
{
float a=2,b=1;
double num=1;
int i;
for (i=1;i<=100;i++)
{
num*=a/b;
if(i%2==0)a+=2;
else b+=2;
}
num*=2;
printf("π=%.16lf\n",num);
}
4. 按如下格式打印100以内整数的平方根表。
5. 编程计算的值。(m,k从键盘上输入,m>k)
6. 用整数1-12依次表示1-12月,由键盘输入一个月份数,输出对应的季节英文名称(12-2月为冬季,3-5月为春季,6-8月为夏季,9-11月为秋季),要求输入输出表达的意义清楚明白。
7. 编程打印以下图形
1
121
12321
1234321
…
12345678987654321
8. 用递归的方法求n的阶乘
9. 编写求两个整数的最大公约数和最小公倍数的函数
展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:C语言期末复习卷习题
链接地址:https://www.renrendoc.com/p-36105758.html