第二学期 C 期末复习题终极版.docx
- 文档编号:10283980
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:62
- 大小:45.89KB
第二学期 C 期末复习题终极版.docx
《第二学期 C 期末复习题终极版.docx》由会员分享,可在线阅读,更多相关《第二学期 C 期末复习题终极版.docx(62页珍藏版)》请在冰点文库上搜索。
第二学期C期末复习题终极版
系部:
班级:
学号:
姓名:
淮安信息职业技术学院2006~2007学年度第二学期
《C语言》期末复习题
考试班级:
题号
一
二
三
四
五
六
七
八
总分
一、判断题(2’×5=10’)
1.对于整型变量a,b,(a++)+b可以表示为(a+b)++。
(错)
2.C语言中实参变量和形参变量之间的数据传递是单向传递。
(对)
3.fputc实现把一个字符写到磁盘文件中。
p295(对)
4.对于数组,先定义后引用,因而inta[10];a[10]=5;表示是对的。
(错)
5.int*p[4]是指针数组,而int(*p)[4]是数组指针。
(对)
6.逻辑运算符两侧的运算量可以是任何数据类型(对)
7.关系表达式和逻辑表达式值只能是0和1(对)
8.算术运算符中‘/‘的优先级高于‘%’。
(错)
9.chara[5];a数组中有6个元素。
(错)
10.实参和形参共占同一存储单元。
(错)
11.一维数组是由同种类型的变量组成的一组数据;二维数组是由不同类型的变量组成的一组数据(错)
12.一个C程序可以由一个或若干个源程序文件组成,C语言是以源程序为单位进行编译的。
(对)
13.如果在一个函数中,全局变量与局部变量同名,则全局变量起作用,局部变量被“屏蔽”。
(错)
14.在主函数的函数体内可以定义其它函数,在其它函数的函数的函数体内不可以定义主函数(错)
15.在C语言中可以使用数组名a表示数组元素a[1]的地址,使用表达式a+i表示数组元素a[i]的地址。
(错)
16.函数中实参和形参的数据传递是通过值传递实现的,并且能够互相传递。
(错)
17.文件包含处理的目的是将另外的文件完全复制到本文件中,可以避免重复工作。
(对)
18.结构体和共用体一样,都可以通过初始化对其进行赋值。
P269(4)(错)
19.缓冲文件系统和非缓冲文件系统都是有系统给定的,并且缓冲区的方式大小都是一样的.(错)
20.访问数组元素总是从数组元素下标为1开始的。
(错)
21.每个C程序都必须有一个main函数。
(对)
22.B的ASCII值是66。
(对)
23.函数getchar()的作用是:
输出一个字符。
(错)
24.选择法的思路是:
将相邻两个数比较,将小的调到前头。
(错)
25.位运算中,每左移一位,相当于原值扩大2倍。
(错)
26.函数是C语言的基本单位,一个C程序可以有多个主函数构成(错)
27.Dowhile循环最少执行0次(错)
28.指针存放的是地址(错)
29.数组名作为函数的参数实际上传递的是数组的首地址(是)
30.C语言不区分大小写(错)
31.数组的大小有时不能事先确定,因此C语言允许用户对数组的大小进行动态定义。
(错)P99(4)
32.如果被调用函数的定义出现在主调函数之前,可以不必加以声明。
(对)
33.由于long型数据在内存中占用的字节数比int型数据占用的字节数多,所以不能将一个long型数据赋给一个int型变量。
(错)
二、选择题(2’×20=40’)
1.以下能正确构成C语言程序的是(B)
A)一个或若干个函数,其中main函数是可选的
B)一个或若干个函数,其中有且只有一个main函数
C)一个或若干个子程序,其中包括一个主程序
D)由若干个过程组成
2.假定w、x、y、z、m均为int型变量,有如下程序段:
(D)
m=1;x=2;y=3;z=4;
m=x>y?
x:
(y>z?
y:
z);
则该程序运行后,m的值是
A)1 B)2 C)3 D)4
3.有如下程序
main()
{inty=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
运行该程序的输出结果是(D)
A)34B)42
C)43D)33
4.设有定义:
int a=2,b=3,c=4;,则以下选项中值为0的表达式是(A)
A)(!
a==1)&&(!
b==0)
B)(a
c||1
C)a&&b
D)a||(b+b)&&(c-a)
5.main()
{
inta=3,b=4,d=2;
if(a>b)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%5d\n",d);
}
A3
B4
D23
输出43
程序运行后的输出结果是(C)
A)23 B)34 C)43 D)44
6.下面程序的运行时若输入35<回车>,写出输出结果(C)
main()
{intx,y,z;
scanf("%d%d",&x,&y);
switch(x)
{case3:
z=x++;
case4:
z=x+y;break;
case5:
z=x/y;
}
printf("%d",z);
}
X34
Y5
Z39
A)3B)4C)9D)0
小结:
是否向下执行,取决于有无break语句
7.main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}1&&1
I2j3k3
程序运行后的输出结果是 (D)
A)1 2 3
B)2 3 4
C)2 2 3
D)2 3 3因为k++==3不再执行
8.i=-4;
do{i=0;i++;}while(i<0);do-while语句执行循环次数为(B)
A)0B)1C)2D)3
9.下面程序输出正确结果的是(A)
inta=2;
intf()
{intb=0;
staticintc=3;
a++;b++;c++;
return(a+b+c);
}
main()
{inti;
for(i=0;i<2;i++){printf("%4d",f());}
}
A234
B0101
C345
I01
A)810B)57C)811D)58
全局变量、静态变量(static)在整个程序中保留值
10.判断两个字符串S1和S2相等的正确语句是____(D)
A.if(S1=S2)
B.if(S1==S2)
C.if(strcpy(S1,S2))
D.if(strcmp(S1,S2)==0)
11.change(int*p1,inty);
main()
{
intx=3,y=9;
change(&x,y);
printf("%d,%d",x,y);
}
change(int*p1,inty)
{*p1++;
y++;
}
实参形参
X3p1
Y9
10y
上面程序输出结果是(A)
A)3,9B)4,9C)3,10D)4,10
12.以下能正确选项是(B)
A)intnum[]
B)#defineN100intnum[N];
C)intnum[0..100];
D)intnum[10];num[10]=5;
13.以下程序输出结果是(C)
main()
{inti,x[3][3]={1,2,3,4,5,6,7,8};
for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}
x[0][2]x[1][1]x[2][0]
A)1,5,0,B)1,4,7
C)3,5,7D)3,6,9
123
456
78
14.以下程序的输出正确结果是(C)
main()
{chars[]="abcdef";
s[3]='\0';
printf("%s",s);
}
A)abcdeB)abcdefC)abcD)ab
15.有以下函数定义
voidfun(intn,doublex){……}
若以下选项中的变量都正确定义并赋值,则对函数fun的正确调用的语句是(无答案)
Voidgotoxy(intx,inty)
Gotoxy(2,3);
A)fun(inty,doublem);
B)k=fun(10,12.5);
C)fun(x,n)D)voidfun(n,x);
16.下面程序的输出结果是(C)
longfun(intn)
{ints;
if(n==1||n==2)s=1;
elses=fun(n-1)+fun(n-2);
returns;
}
main()
{printf(“%d\n”,fun(4));}
A)1B)2C)3D)4
Fun(4)=FUN(3)+FUN
(2)
Fun(4)=FUN
(1)+FUN
(2)+fun
(2)
17.当调用函数时,实参是一个数组名,则向函数传送的是(B)
A)数组的长度B)数组的首地址
C)数组每一个元素的地址D)数组每个元素的值
18.#defineM2(B)
#defineS(a,b)a*b+2
main()
{intx=2,y=5,z;
z=S(x+y,y-x);
printf(“%d”,z);
}
A)23B)27C29D21
a*b+2
z=x+y*y-x+2
19.以下程序输出正确的是(A)
main()
{chars[]=”CHINA”;
char*p=s;
p++;
prinf(“%s”,p);
}
A)HINAB)CHINAC)CD)H
25.下面程序段的运行结果是(D)
char*s=”abcde”;
s+=2;printf(“%d”,s);
A、cdeB、无确定的输出结果
C、字符’c’的ASCII码值D、存放字符’c’的存储单元的地址
20.main()
{chars1[80]=”student”,s2[80];
char*p1=s1,*p2=s2;
while(*p2++=*p1++);
printf(“%d”,strlen(s2));
}(D)
A)80B)79C)8D)7
*p2=*p1;
P2++;
P1++;
S1:
student\0
S2:
student\0
21.以下变量全部合法的是(A)
A)ABC、L10、a_b、_a1
B)?
123、print、*P、a+b
C) _12、Zhang、*P、 11F
D) li_li、P、for、101
22.有以下程序,要输出22o98p,正确的输入方式是(B)
main()
{intx1,x2;
charc1,c2;
scanf(“%d%c%d%c”,&x1,&x2,&c1,&c2);
printf(“%d%c%d%c\n”,x1,x2,c1,c2);
}
当要输入的是数值和字符时,中间不不要用其他的分隔符
A)22o98p<回车>2219p
B)22o98p<回车>22o98p
C) 22o98p<回车>22o98
D) 22o98p<回车>2219p
23.正确进行数组初始化的是(B)
A、intS[2][]={{2,1,2},{6,3,9}};
B、ints[][3]={9,8,7,6,5,4};
C、ints[3][4]={{1,1,2},{3,3,3},{3,3,4},{4,4,5}};
D、ints[3,3]={{1},{4},{6}}
24.指针变量a所指的字符串长度为(D)
char*a=”\nmynameiszhangli.\”\n”;
A、26B、27C、28D、23
一个转义字符占一个字节
26.今有a=3,b=-4,c=5,表达式!
(b+c)+(b!
=a)||(a+b)&&(b-c)的值是(A)
A、1B、真C、0D、假
0+1
27.以下正确的说法是_C_____。
A)定义函数时,形参的类型说明可以放在函数体内。
B)return后边的值不能为表达式。
C)如果函数值的类型与返回值类型不一致,以函数值类型为准。
D)如果形参与实参的类型不一致,以实参类型为准。
28.以下正确的函数定义形式是__D____。
A)doublefun(intx,inty)
{z=x+y;returnz;}
B)fun(intx,y)
{intz;returnz;}
C)fun(x,y)
{intx,y;doublez;
z=x+y;returnz;}
D)doublefun(intx,inty)
{doublez;z=x+y;returnz;}
29.下面程序___D__
1main()
2{inta[3]={3*0};
3inti;
4for(i=0;i<3;i++)
scanf(“%d”,&a[i]);
5for(i=1;i<3;i++)a[0]=a[0]+a[i];
6printf(“%d\n”,a[0]);
7}
A)第2行有误B)第6行有误C)第4行有误D)没有错误
30.以下对二维数组a的正确说明是__C___。
A)inta[3][];
B)floata(3,4);
C)doublea[1][4];
D)floata(3)(4);
31.若有以下定义,则对a数组元素地址的正确引用是_D___。
inta[5],*p=a;
A)p+5B)*a+1
C)&a+1..D)&a[0]
32.若有定义:
int*p[4];则标识符p__B__。
A)是一个指向整型变量的指针
B)是一个指针数组名.
C)是一个指针,它指向一个含有四
个整型元素的一维数组
D)说明不合法
[]优先于*
33.已知
structabc
{inti;
charc;
floata;
}test;
则sizeof(test)的值
是_D___。
A)4B)5C)6D)7
34.structData
{intyear;
intmonth;
intday;
};
structstudent
{intno;
structDatabirth;
charname[20];
charsex;}s;
变量s中的生日应是1984年11月11日,下列对生日的正确赋值方式是__D___
A)year=1984;month=11;day=11;
B)birth.year=1984;birth.month=11;
birth.day=11;
C)s.year=1984;s.month=11;s.day=11;
D)s.birth.year=1984;s.birth.month=11;
s.birth.day=11;
35.运行以下程序时,从键盘输入:
aabb
ccdd运行结果是__A__.
#include
main()
{chara1[5],a2[5],a3[5],a4[5];
scanf(“%s%s”,a1,a2);
gets(a3);gets(a4);
puts(a1);puts(a2);puts(a3);puts(a4);
}
A)aaB)aaC)aaD)aabb
bbbbbbcc
ccccdddd
ccddddee
scanf将空格作为字符串的分隔符
gets将空格作为字符串的一部分
36.下列程序的运行结果是(A)
f()
{inta=3;
staticb=4;
a=a+1;b=b+1;
printf(“a=%d,b=%d\n”,a,b);}
main()
{f();f();}
A、a=4,b=5B、a=3,b=4C、a=4,b=5D、a=3,b=5
a=4,b=6a=3,b=6a=4,b=5a=4,b=6
A3434
B4556
39.以下程序输出的结果是(D)
A9B1C11D10
Intk,j,s;
For(k=2;k<6;k++,k++)
{
S=1;s1510
for(j=k;j<6;j++)j456
s+=j;k46
}
Printf(“%d\n”,s);
因为每次循环s都=1,所以只要找到最后一个k为4
40.若x=4,y=2,z=6,则表达式x x++: y++的值是: (A) A、2B、3C、4D、5 后置加加,先输出值,再自己加1 41.若定义intc;则语句c=’A’;printf(“c=%d”,c);执行的结果: (B)。 A、c=’A’B、c=65C、c=97D、出现数据类型不匹配的错误。 42.已定义x和y为double类型,则表达式“x=1,y=3/2”的值是(A)。 A、1.0B、2.0C、2.5D、2 43.如有定义语句charstr[13]={“Howareyou! ”};则输出字符数组str的结果为(B)。 (下划线表示空格。 ) A、HowB、How_are_you! C、How_are_you! _D、不确定 44.C语言程序是从main函数开始执行的,这个函数写在(D)。 A、程序文件的开始B、它所调用的函数的前面 C、程序文件的最后D、程序文件的任何位置 46.下列字符序列中,合法的标识符是(C)。 A、6DetB、88#C、_YGlD、J.GAM 47.设有函数原型、一维数组和变量定义如下: 函数原型voidfun(int*a,intn); 数组定义 inta[4]={1,2,3,4}; floatb[4]={1.0,2.0,3.0,4.0}; 变量定义intm=4; 下列函数调用,正确的是(A)。 A、fun(a,m); B、value=fun(a[1],m); C、value=fun(a,4); D、fun(b,m); 48.下列选项中,不合法的C语言常量是(A)。 A、1.52eB、’x’C、”abc”D、0.1 49.有如下说明,则数值为9的表达式是(A)。 inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; A、*(p+8)B、*p+9C、*p+=9D、p+8 50.设a=2,b=3,x=3.5,y=2.5,求算术表达式“(float)(a+b)/2+(int)x%(int)y”的值(A)。 A、3.5B、2.5C、a2D、3 51.语句if(m%n)printf(“%d”,m);中的条件表达式m%n的含义是(D)。 A、m除以n的商B、m除以n的余数 C、m可被n整除D、m不能被n整除 52.C语言中,输出较大字符串的正确语句是(C) A、 if(strcmp(str1,str2))printf(“%s”,str1); B、if(str1>str2)printf(“%s”,str1); C、if(strcmp(str1,str2)>0)printf(“%s”,str1); D、if(strcmp(str1)>strcmp(str2))printf(“%s”,str1); 53.如有说明语句float*p,a;则正确给变量p和a赋值的程序段是(D)。 A、scanf(“%f”,a);*p=&a;B、scanf(“%f”,&p);*p=&a; C、scanf(“%f”,p);a=&p;D、scanf(“%f”,&a);p=&a; 54.下面程序执行后的输出结果是(87)。 main() { inti,t[][2]={0,1,2,3,4,5,6,7,8,9}; for(i=0;i<2;i++) printf(“%d”,t[4-i][i]); } A、753B、357C、369D、751 01 23 45 67 89 T[4][0]T[3][1]输出87 55.下列关于函数递归调用的说法中正确的是(C)。 A、递归调用是在主函数的定义中调用其它函数 B、递归调用是在其它函数的定义中调用主函数 C、递归调用是在函数定义中调用该函数本身 D、递归调用是无休止的重复执行同一函数 56.下列程序的执行结果是: intadd(intx) {x++;} main(){ intn=2; add(n); printf(“%d”,n); } (2) 57.下列描述中错误的是: (无答案) A、结构体类型是由不同数据类型组合而成的 B、结构体类型是由相同类型的数据组成的 C、共用体类型是不同类型的数据共用同一段内存空间 D、共用体类型是相同类型的数据共用同一段内存空间 58.在C语言中,定义Pi为一个符号常量,正确的写法是(A)。 A、#definePi3.14B、definePi3.14 C、#includePi3.14D、includePi3.14 59.如charstr[12]={“computer”};printf(“%d”,strlen(str));则输出结果是(8)。 A、10B、11C、9D、12 答案为8 60.设有intx=11;则表达式(x++*1/3)的值是( A)。 A)3 B)4 C)11 D)12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二学期 期末复习题终极版 第二 学期 期末 复习题 终极