还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《C语言程序设计基础》复习题
一、填空题
1、在C语言中,字符型数据和整形数据之间可以通用,一个字符数据既能以字符型数据输出,也能以整形数据输出
2、当a=5,b=4,c=3时,表达式ab!=c的值是
13、printf函数有两个参数,前一个参数是,有一个参数是
4、intk=4;whilek==1k--;循环体执行次
5、inta=2;do{a++;}whilea2;循环体执行次
6、C语言的注释使用和
7、C程序主函数只能有一个,它的名字是
8、intx=2;则表达式x+=x*=x+1的值是
9、scanf函数有两个参数,前一个参数是,后一个参数是
10、形参和实参的传递方式有和
11、指针表示变量的,在32位微机上,指针的长度为位
12、字符串的结束标志为
13、二维数组在C语言中是按照顺序存放的
14、数组名是指向的常量指针,通过指针的移动可以实现对数组元素的访问如inta
[5]*p=a;那麽*(p+1)表示
15、定义结构体的关键字是,结构体的定义需要先定义结构体的,再定义结构体
16、若inta=3,则a++等于,++a等于/*注意a++和++a的区别*/
17、inti
[9]*p;为了使得p指向i
[0],则应该使用的语句是/*即p指向数组i的首地址*/
18、int*a;int*b(intx,inty);a表示,b表示
19、是在程序运行过程中可以被改变的量,而是在程序运行过程中不可以被改变的量
20、常见的三种循环语句是、、
21、算术表达式、逻辑表达式和关系表达式中,具有最高优先级的是,具有最低优先级的是
22、判断字符串是否相等的库函数是,给字符串变量赋值的库函数是
23、下面程序的功能是计算1到100之间的奇数之和以及偶数之和,请填空inta=0bc=0x;forx=1;x=100;x+=2{a+=x;/*因x初值为1,且每循环一次递增2,所以a存放1至100之内的奇数之和*/;/*让x的值每次增1(即将X值改为偶数)后赋给变量b*/c+=b;/*C存放1至100之内的偶数之和*/}printf“奇数之和=%d\n”a;printf“偶数之和=%d\n”c;
24、以下程序的运行结果是charc
[5];inti=0;c
[0]=‘a’;c
[1]=‘b’;c
[2]=’\’’;c
[3]=’\n’;c
[4]=’\0’;for;i5;i++printf”%c”c[i];/*注意\\n转义字符的含义,即可清楚输出结果*/
25、结构化程序设计中的三种基本结构是、、
26、格式化输入函数是,格式化输出函数是
27、字符串拷贝函数是,字符串连接函数是
28、打开文件函数是,关闭文件函数是
二、选择题
1、一个c程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束
2、在c语言中,char型数据在内存中的存储形式是()A.补码B.ASCII码C.反码D.原码
3、能正确表示“当x的取值在【10100】和【200280】范围内为真,否则为假”的表达式是()A.(x=10)x=100x=200x=280B.(x=10)||x=100||x=200||x=280C.(x=10)x=100||x=200x=280D.(x=10)||x=100x=200||x=
2804、在c语言中,5种基本数据类型的存储空间长度的排列顺序为()A.charintlongint=floatdoubleB.char=intlongint=floatdoubleC.charintlongint=float=doubleD.char=int=longint=floatdouble
5、下列四组选项中,均不是c语言关键字的选项是()A.include、scanf、caseB.getch、char、printfC.Define、IF、typeD.while、for、continue
6、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中任意一种字符
7、以下不正确的if语句形式是()A.ifxyx!=y;B.ifx==yx+=y;C.ifx!=yscanf“%d”xelsescanf“%d”y;D.ifxy{x++;y++;}
8、逻辑运算符两侧运算对象的数据类型()A.只能是0或1B.只能是0或非0正数C.只能是整型或字符型数据D.可以是任何类型的数据
9、有如下语句intb;charc
[9];则正确的输入语句是()A.scanf“%d%s”bc;B.scanf“%d%s”bc;C.scanf“%d%s”bc;D.scanf“%d%s”bc;
10、inta
[7];则正确的初始化语句是()A.inta
[7]=12345;B.inta[]=12345;C.inta[]={12345};D.inta
[7]={12345670};
11、若有定义inta
[10],则数组元素的下标下限和上限分别是()A.0和1B.1和9C.0和9D.1和
1012、对于C程序的函数,下列叙述正确的是()A.函数不可以嵌套定义,但函数调用可以嵌套B.函数定义可以嵌套,但函数调用不能嵌套C.函数定义和调用均不可以嵌套D.函数定义和调用均可以嵌套
13、下面四个选项中,均是不合法的浮点数的是()A.
125.、
0.
18、e3B.
234、2e
4.
3、.e4C.-.
85、123e
6、
0.0D.–e
4、.
246、1e
414、为了表示关系8≤X≤80,应使用的C语言表达式是()A.8=X=80B.X=8ANDX=80C.X=8X=80D.X=8||X=
8015、若有定义inta=1,b=2,c=7;则表达式!a+ba+b+c/3的值是()A.1B.0C.2D.
516、ints=12;执行以下程序后x=()ifs0s=10ifs=3s=6x=2;elseifs1||s8x=3;elsex=1;elsex=0;A.0B.3C.2D.
117、对for(表达式1;;表达式3)可以理解为()A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)
18、下列选项中,没有构成死循环的程序是()A.inti=100;while1{i=i%100+1;ifi100break;}B.for;;;C.intk=100;do{++k;}whilek=100;D.ints=12;whiles--s;
19、下面能正确将字符串“girl”进行完整赋值操作的语句是()A.chars
[4]={‘g’‘i’‘r’‘l’};B.chars[]=“girl”;C.chars
[4]={“girl”};D.chars
[4];s
[0]=‘g’;s
[1]=‘i’;s
[2]=‘rs
[3]=‘l’
20、现有定义chara[]=“xyz”b[]={‘x’’y’’z’};以下叙述中正确的是()A.数组a的长度和b的相同B.数组a的长度小于b的长度C.数组a的长度大于b的长度D.以上说法都不对
21、若x为整型变量,pb为指向整型的指针变量,则正确的是()A.pb=x;B.pb=x;C.*pb=x;D.*pb=*x;
22、若有以下说明语句,intc
[4]
[15]*pc
[15];pc=c;对数组c中元素正确引用的是()A.pc+1B.*pc+3C.*pc+3+1D.**pc+
223、以下对结构体变量成员不正确的引用是()structpupname{charname
[16];intage;charsdept;}pup
[5]*p=pup;A.scanf“%s”pup
[0].name;B.scanf“%d”pup
[0].age;C.scanf“%d”p-sex;D.scanf“%d”p-age;
24、设有定义inta,*pa;则语句pa=a;中的运算符表示()A.逻辑与运算B.位与运算C.取指针内容D.取地址运算
25、设p1和p2均指向同一个int型一维数组的指针变量,m为int型变量,下列正确的语句是()A.m=*p1+*p2;B.m=*p1**p2;C.p2=m;D.p1=p2;
26、若有以下结构体定义,则正确的应用或定义是()structexam{intx;inty;};A.exam.x=5;B.examy.x;C.structexamy=10;D.structexama;a.x=5;
27、如下说明语句,则下面叙述不正确的是()structstu{intb;floatc;}stutype;A.struct是结构体类型的关键字B.structstu是用户定义的结构体类型C.stutype是用户定义的结构体类型名D.a和b是结构体成员名
三、程序分析并填空题
1、写出下列程序中各printf函数的输出结果#includestdio.hvoidmain{intxyz;x=y=z=5;y=x++-1;printf“%4d%4d\n”xy;y=++x–1;printf“%4d%4d\n”xy;y=z--+1;printf“%4d%4d\n”zy;y=--z+1;printf“%4d%4d\n”zy;}
2、下面程序的功能是从键盘输入若干个学生的成绩,统计并输出最高成绩和最低的成绩,当输入负数时结束输入,请填空#includestdio.hvoidmain{floatxmaxmin;scanf“%f”x;;/*将输入的X值分别赋给max和min*/while/*当输入负数时结束*/{ifxmaxmax=x;if/*若X比最小值min还小*/min=x;scanf“%f”x;}printf”\nmax=%lf\nmin=%lf\n”maxmin;}
3、下面程序的运行结果是intx=1y=2z=0i=3;ifxyz=1;elseifxiz=2;printf“z=%d”z;
4、从数组a中找出数组元素的最大值并输出inta
[5]i=0max;printf“input5numbers:”;for;i5;i++scanf;/*分别输入数组中各元素的值*/max=a
[0];fori=1;i5;i++ifa[i]max/*当前a[i]值和max进行比较*/;/*若a[i]值比最大值max还要大,a[i]即为最大值max*/printf;/*输出最大值max*/
5、写出以下程序的输出结果intfinta[]intmintn/*自定义函数f*/{intis=0;fori=m;in;i=i+2s=s+a[i];returns;}voidmainvoid{intyb[]={012345678};y=fb26;/*调用f函数,分别将b,2,6传给a[]mn.即利用f函数计算s=a
[2]+a
[4]的值*/printf“%d”y;}程序最终输出结果为
6、假定运行下列程序的输出是***,请填写程序中缺少的语句成分#includestdio.hvoidmainvoid{intx=6;do{printf“*”;x--;x--;}while;}
7、写出下面程序的输出结果inta
[6]={123456};int*pa=a;printf“%d”*pa+3;结果为
8、指出下面程序的错误,填在下划线处inta
[20]*p;typedefstruct{intage;/*age为年龄*/charname
[10];/*name为姓名*/charsex
[3];/*sex为性别*/}student;/*定义结构体*/studentstu_t*stu_p;a++;p=a;p=1234;stu_t={18”司马南”“男”};stu_p=stu_t;
9、写出下面程序的输出结果Charc1
[20]c2
[20];scanf“%s”c1;getsc2;printf“c1=%sc2=%s\n”c1c2;运行时输入Howareyou?结果为c1=,c2=
四、编程题
1、设有4*3整型数组m(4*3表示4行3列)要求
(1)从键盘输入12个整数并对m进行赋值
(2)查找该数组中的最大值和最小值
(3)输出最大值和最小值
2、写一个程序,要求用函数求出用户输入的五个float型值的平均数。