C语言程序设计 复习题.docx
- 文档编号:25542800
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:23
- 大小:26.77KB
C语言程序设计 复习题.docx
《C语言程序设计 复习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 复习题.docx(23页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习题
C语言程序设计期末复习题
一、填空:
(每空1分,计20分)
1.1、文件是指存放在(外部存储介质)上的数据集合。
根据文件的组织形式,可分为(顺序存取文件)和(随机存取文件)。
2.2、系统给每个打开的文件都在(内存)中开辟一个区域,用于存放文件的有关(信息)(如文件名、文件位置等)。
这些(信息)保存在一个结构类型变量中,该结构类型由系统定义并取名为(FILE)。
结构类型名(FILE)必须大写。
3.3、对文件进行操作之前,必须先打开该文件;使用结束后,应立即关闭,以免数据丢失。
4.C语言规定了标准输入输出函数库,用(fopen())函数打开一个文件,用(fclose())函数关闭一个文件。
5.若采用十进制数的表示形式,则077为(63),0xab为(171);
6.设x,y,z均为int类型变量,请用C语言的表达式描述以下命题。
7.①x或y中有一个小于z(x<=z||y<=z)
8.②x、y和z中只有2个负数(x<0&&y<0&&z>0||x<0&&y>0&&z<0||x>0&&y<0&&z<0)
③y是奇数(yMOD2!
=0)
9.C源程序的基本单位是(函数);
10.20<<2后的结果是(80),20>>2后的结果是(5)
11.动态整型变量数组不赋值时,其各元素的值(不定)。
12.已知程序段:
staticinta[5]={2,3,4,5,6};
13.int*p;
p=&a[0];
写出一个与p=&a[0]等价的语句(p=a);
写出一个与p=(a+3)等价的语句(P=P+3);
a[4]的值是(6);*(a+2)的值是(4)。
14.已知程序段:
inta=2,b=9,x;
x=b;b=a;a=x;
执行操作后,a的值是(9),b的值是
(2)。
15.结构化程序设计有三种基本结构,分别是(顺序结构)、(选择结构)和(循环结构)。
16.以下程序段根据输入的截止日期(年:
yend、月:
mend、日:
dend)和出生日期(byear,bmonth,bday),计算出实际年龄,请填空:
intyend,mend,dend,byear,bmonth,bday,age;
age=yend-byear;
if(mend(<)bmonth)
age--;
elseif(mend(==)bmonth&&dend(>)bday)
age--:
17.设变量x和y均为整型,以下语句可以不借肋任何变量把x,y中的值进行交换,请填空。
x+=(y);y=x-(y);x-=(y);
18.有说明intx=10,y=20;请写出下面各printf语句对应的输出结果。
①printf(“%x\n”,x+y);(1E)
②printf(“%o\n”,x*y);(310)
③printf(“%o\n”,x%y);(12)
④printf(“%x\n”(x%y,x-y,x+y);(1E)
19.设inta[9];则该数组的下限是(a[0]),上限是(a[9]),
长度是(10 )。
20.结构化程序设计的循环结构有三种,分别是(for语句)、(do-while语句)和while语句。
21.设x=1,y=2,z=3则表达式(x x: y)==z++的值是(0)。 该表达式执行后z的值是(4)。 22.静态整型变量数组不赋值时,其各元素的值是(0)。 23.在C语言中,输入操作可以由库函数(scanf())完成,输出操作可以由库函数(printf())完成; 24.若采用十进制数的表示形式,则077为( 63 ),(00000111)2为( 7 ),0x29为(41),0xab为(171); 25.静态整型变量数组不赋值时,其各元素的值是(0)。 26.已知程序段: staticinta[5]={2,3,4,5,6};int*p;p=&a[0]; 写出一个与p=&a[0]等价的语句(p=a);*(p++)的值是 (2);*(a+2)的值是(4);a[4]的值是(6)。 27.已知程序段: staticinta[5]={2,3,4,5,6}; int*p;p=&a[0]; 写出一个与p=&a[0]等价的语句(p=a);*(p+3)的值是(5);a[4]的值是(6);*(a+2)的值是(4)。 28.main() {inta=3,b=4; printf(“%d\n”,a=a+1,b+a,b+1);输出结果: (4)。 printf(“%d\n”,(a=a+1,b+a,b+1));}输出结果: (5)。 二、选择题: (每题题1分,计20分) 1、若有以下类型说明语句: chara;intb;floatc;doubled; 则表达式a*b+d-c的结果类型为(D) A)floatB)charC)intD)double 2、以下运算符中优先级最高的算符是(B) A)&&B)++C)? : D)! = 3、若有定义: intk=7;floata=2.5,b=4.7; 则表达式a+k%3*(int)(a+b)%2/4的值是(A) A)2.500000B)2.750000C)3.500000D)0.000000 4、若有说明: inta=1,b=2,c=3,d=4;则条件表达式a a: c c: d的值是(D) A)4B)3C)2D)1 1、C语言中逻辑“真”等价于(C) A)大于零的数B)大于零的整数C)非零的数D)非零整数 2、若有定义: intk=7;floata=2.5,b=4.7; 则表达式a+k%3*(int)(a+b)%2/4的值是(A) A)2.500000B)2.750000C)3.500000D)0.000000 3、浮点型变量的说明语句是(B) A)intB)floatC)charD)double 4、若有定义: intx[5],*p=x;则不能代表x数组首地址的是(C) A)xB)&x[0]C)&xD)p 5、若有以下定义和语句,inta[2][3],(*p)[3];p=a; 则对a数组元素的正确引用的是(C) A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+2 6、执行下面程序段后,X的值是(C) intx;printf(“%d\n”,(x=3*5,x+5)); A)10B)15C)20D)5 7、在宏定义中#definePI3.1415926的PI替代的是(D) A)常量B)整型数C)实型数D)一串字符型数值 8、若有以下类型说明语句: chara;intb;floatc;doubled; 则表达式a*b+d-c的结果类型为(D) A)floatB)charC)intD)double 9、设有说明语句: char*str=”\t\’c\\Language\n”; 则指针str所指字符串的长度为(A) A)13B)15C)17D)说明语句不合法 10、若用fopen函数打开一个新的二进制文件,要求文件既能读也能写,则应选用的文件方式字符串是(A) A)”wb+”B)”r+”C)”rb+”D)”ab+” 11、若有定义: inta[2][3]; 则以下对a数组元素地址的正确表示为(A) A)*(a+1)B)*(a[1]+2)C)a[1]+3D)a[0][0] 12、语句printf(“%d\n”,NULL);的执行结果是(B) A)1B)0C)-1D)无确定值 13、执行以下程序段后M和N的值分别是(C) intm=11,n=22;m=m^n;n=n^m;m=m^n; A)m=11,n=22B)m=22,n=22C)m=22,n=11D)m=11,n=11 14、设有如下定义,若字符型变量占1字节、整型变量占2字节、双精度变量占8字节,则共用体变量b占用内存的字节数是(C) uniondata {intI;charch;doublef;}b; A)14B)15C)8D)11 15、若已有定义int(*p)();则指针p(B) A)代表函数的返回值B)指向函数的入口地址 C)表示函数的类型D)表示函数的返回值的类型 16、若有定义: intb[5];,则以下对b数组元素的正确引用的是(D) A)*&b[5]B)b+2C)*(*(b+2))D)*(b+2) 17、若有定义: intx[10],*p=x;则*(p+5)表示(B) A)数组元素x[5]的地址B)数组元素x[5]的值 C)数组元素x[6]的地址D)数组元素x[6]的值 18、以下运算符中优先级最高的算符是(B) A)&&B)++C)? : D)! = 19、若有函数max(a,b),并且已使函数指针变量p指向函数max,则利用函数指针调用max函数的正确形式是(D) A)(*p)max(a,b)B)*pmax(a,b)C)p->max(a,b)D)(*p)(a,b) 20、若有定义语句: ints[4][6],(*p)[6];以下正确的赋值语句是() A)p=tB)p=sC)p=s[2]D)p=t[3] 21、以下表达式不等价的一组是() A)a&=b与a=a&bB)a¦=b与a=a¦bC)a! =b与a=a! bD)a^=b与a=a^b 22、设二进制数x的值是00110101,若想通过运算x&y使中的x低位不变,高位清零,则以下能实现此功能的是() A)x=x¦0x0fB)x=x&0x0fC)x=x¦0x0fD)x=x&0x0f 23、运行下列程序后n的值是() main() {charx=012;intn=0; while(x) {x>>=2;n++;} printf(“%d\n”,n);} A)12B)8C)3D)2 24、若说明: char*pc[]={“aaa”,”bbb”,”ccc”,”ddd”}; 则以下叙述正确的是() A)*pc[0]代表的是字符串“aaa”B)*pc[0]代有是字符串’a’ B)pc[0]代表的是字符串’aaa”D)pc[0]代表的是字符’a’ 25、若有定义: int(*p)[3];则以下叙述正确的是() A)p是一个指针数组名 B)p是一个指针,它指向一个一维数组中的任意元素 C)p是一个指针,它指向一个含有3个整型元素的一维数组 D)(*p)[3]等价于(*p) 26、若K为整型变量,则以下for循环的执行次数是() for(k=2;k=00;) printf(“%d”,k--); A)无限次B)0次C)1次D)2次 27、变量的指针的含义是指该变量的() A)值B)地址C)名D)标志 28、C程序的基本单位是() A)程序行B)语句C)函数D)字符 29、已知: intt[3][2],*pt[3];其中pt是指向t数组的指针数组, 则可取出t数组中元素地址的表达式是() A)&t[3][2]B)*pt[0]C)*(pt+1)D)&pt[2] 30、一个C程序开始执行的位置是() A)头文件B)预编译C)全局变量说明D)main()函数 1、C程序的基本单位是() A)程序行B)语句C)函数D)字符 2、若有说明: inta=1,b=2,c=3,d=4;则条件表达式a==b? a: c c: d的值是() A)4B)3C)2D)1 3、变量的指针的含义是指该变量的() A)值B)地址C)名D)标志 4、若有定义: inta[2][3]; 则以下对a数组元素地址的正确表示为() A)*(a+1)B)*(a[1]+2)C)a[1]+3D)a[0][0] 5、设有定义: unsignedop=2; 则与语句op=op<<1;等价的语句是() A)op=op*2B)op=op/2C)op=op*4D)op=op/4 6、设chararray[]="China! ";则数组所用的内存空间为() A)4个字节B)5个字节C)6个字节D)7个字节 7、在C语言中,要求运算数必须是整型的运算符是() A)/B)++C)! =D)% 8、若有说明: inta=1,b=2,c=3,d=4; 则条件表达式a a: c c: d的值是() A)4B)3C)2D)1 9、以下运算符中优先级最高的算符是() A)&&B)++C)? : D)! = 10、当函数调用时,若实参为一数组名,则向函数传送的是() A)数组的长度B)数组的首地址 C)数组中第一个元素的值D)数组中所有元素的值 11、执行以下程序段后M和N的值分别是() intm=11,n=22;m=m^n;n=n^m;m=m^n; A)m=11,n=22B)m=22,n=22C)m=22,n=11D)m=11,n=11 12、若有定义语句: ints[4][6],t[6][4],(*p)[6];则以下正确的赋值语句是() A)p=t;B)p=s;C)p=s[2];D)p=t[3] 13、有定义: intx[5],*p=x;则不能代表x数组首地址的是() A)xB)&x[0]C)&xD)p 14、若有定义: intc[5],*p=c;,则以下对c数组元素地址的正确引用是() A)p+5B)c++C)&c+1D)&c[0] 15、表达式(0x63^0x55)>>1值的十六进制表示形式是() A)0x36B)0x1bC)0x6cD)0x20 16、设有语句: charx=6,y=10,z;z=x^y<<2;则z的二进制值是() A)00001000B)00110000C)00000010D)00001100 17、若执行fopen函数时发生错误,则函数的返回值是() A)随机值B)1C)NULLD)EOF 18、当正常执行了文件关闭操作时,fclose函数的返回值是() A)–1B)随机值C)0D)1 19、当定义一个结构体变量时系统分配给它的内存是() A)结构中第一个成员所需的内量 B)结构中最后一个成员所需的内存量 C)结构体成员中占内存量最大者所需用的容量 D)结构体中各成员所需用内存量的总和 20、系统的标准输入文件是() A)键盘B)硬盘C)内存D)显示器 21、C语言中逻辑“真”等价于() A)大于零的数B)大于零的整数C)非零的数D)非零的整数 22、已知程序段: inti,j,*p=&i;则与i=j等价的语句是() A)i=*p;B)*p=*&jC)i=&j;D)i=**p; 23、在宏定义中#definePI3.1415926的PI替代的是() A)常量B)整型数C)实型数D)一串字符型数值 24、若有intk=10则表达式(++k*2/3)的值是() A)3B)6C)7D)1 25、对函数及其参数,在C语言中以下描述不正确的是() A)主函数main()可以有参数 B)实参和形参必须类型一致 C)函数调用时是实参传送给形参,而形参不能传送给实参 D)函数的返回值可以有也可以没有 26、设有说明语句: char*str=”\t\’c\\Language\n”; 则指针str所指字符串的长度为() A)13B)15C)17D)说明语句不合法 27、语句int(*ptr)();的含义是() A)ptr是指向一维数组的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数指针,该函数返回一个int型数据的指针 D)ptr是一个函数名,该函数返回值是指向int型数据的指针 28、已知程序段: int*p,b=100; p=&b; b=*p+20; 执行后,b的值是() A)120B)110C)100D)90 29、系统的标准输入文件是() A)键盘B)硬盘C)内存D)显示器 30、在C语言中,switch后的括号内表达式的值() A)只能是整型B)只能是整型、字符型、枚举型 C)只能是整型、字符型D)可以是任何类型 10、若用fopen函数打开一个新的二进制文件,要求文件既能读也能写,则应选用的文件方式字符串是() A)”wb+”B)”r+”C)”rb+”D)”ab+” 11、若有定义: inta[2][3]; 则以下对a数组元素地址的正确表示为() A)*(a+1)B)*(a[1]+2)C)a[1]+3D)a[0][0] 12、语句printf(“%d\n”,NULL);的执行结果是() A)1B)0C)-1D)无确定值 13、执行以下程序段后M和N的值分别是() intm=11,n=22;m=m^n;n=n^m;m=m^n; A)m=11,n=22B)m=22,n=22C)m=22,n=11D)m=11,n=11 14、设有如下定义,若字符型变量占1字节、整型变量占2字节、双精度变量占8字节,则共用体变量b占用内存的字节数是() uniondata {intI;charch;doublef;}b; A)14B)15C)8D)11 15、若已有定义int(*p)();则指针p() A)代表函数的返回值B)指向函数的入口地址 C)表示函数的类型D)表示函数的返回值的类型 16、若有定义: intb[5];,则以下对b数组元素的正确引用的是(D) A)*&b[5]B)b+2C)*(*(b+2))D)*(b+2) 17、若有定义: intx[10],*p=x;则*(p+5)表示() C)数组元素x[5]的地址B)数组元素x[5]的值 C)数组元素x[6]的地址D)数组元素x[6]的值 18、以下运算符中优先级最高的算符是() A)&&B)++C)? : D)! = 19、若有函数max(a,b),并且已使函数指针变量p指向函数max,则利用函数指针调用max函数的正确形式是() A)(*p)max(a,b)B)*pmax(a,b)C)p->max(a,b)D)(*p)(a,b) 20、若有定义语句: ints[4][6],(*p)[6];以下正确的赋值语句是() A)p=tB)p=sC)p=s[2]D)p=t[3] 21、以下表达式不等价的一组是() A)a&=b与a=a&bB)a¦=b与a=a¦bC)a! =b与a=a! bD)a^=b与a=a^b 22、设二进制数x的值是00110101,若想通过运算x&y使中的x低位不变,高位清零,则以下能实现此功能的是() A)x=x¦0x0fB)x=x&0x0fC)x=x¦0x0fD)x=x&0x0f 23、运行下列程序后n的值是() main() {charx=012;intn=0; while(x) {x>>=2;n++;} printf(“%d\n”,n);} A)12B)8C)3D)2 24、若说明: char*pc[]={“aaa”,”bbb”,”ccc”,”ddd”}; 则以下叙述正确的是() A)*pc[0]代表的是字符串“aaa”B)*pc[0]代有是字符串’a’ D)pc[0]代表的是字符串’aaa”D)pc[0]代表的是字符’a’ 25、若有定义: int(*p)[3];则以下叙述正确的是() E)p是一个指针数组名 F)p是一个指针,它指向一个一维数组中的任意元素 G)p是一个指针,它指向一个含有3个整型元素的一维数组 H)(*p)[3]等价于(*p) 26、若K为整型变量,则以下for循环的执行次数是() for(k=2;k=00;) printf(“%d”,k--); A)无限次B)0次C)1次D)2次 27、变量的指针的含义是指该变量的() A)值B)地址C)名D)标志 28、C程序的基本单位是() A)程序行B)语句C)函数D)字符 29、已知: intt[3][2],*pt[3];其中pt是指向t数组的指针数组, 则可取出t数组中元素地址的表达式是() A)&t[3][2]B)*pt[0]C)*(pt+1)D)&pt[2] 30、一个C程序开始执行的位置是() A)头文件B)预编译C)全局变量说明D)main()函数 5、执行下面程序段后,X的值是(C) intx; printf(“%d\n”,(x=3*5,x+5)); A)10B)15C)20D)5 6、以下语句的执行结果是(B) printf(“%d\n”,NULL); A)1B)0C)-1D)无确定值 7、若有定义: intx[5],*p=x;则不能代表x数组首地址的是(C) A)xB)&x[0]C)&xD)p 8、若有定义: inta[2][3];,则以下对a数组元素地址的正确表示为(A) A)*(a+1)B)*(a[1]+2)C)a[1]+3D)a[0][0] 9、若有以下定义和语句,则对a数组元素的正确引用的是(C) inta[2][3],(*p)[3]; p=a; A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p[1]+2 10、设有定义: unsignedop=2,则与语句op=op<<1;等价的语句是(A) A)op=op*2B)op=op/2C)op=op*4D)op=op/4 11、根据下面的定义,能输出字符串“Li“的语句是(C) structperson {charname[10]; intage; }class[10]={“Zhang”,18, “Li”,17, “Ma”,18, “Huang”,18 }; A)printf(“%s\n”,class[2],name)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 复习题 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)