南邮《高级程序设计语言(C)》练习册期末复习题.docx

上传人:夺命阿水 文档编号:834650 上传时间:2023-12-15 格式:DOCX 页数:35 大小:97.25KB
返回 下载 相关 举报
南邮《高级程序设计语言(C)》练习册期末复习题.docx_第1页
第1页 / 共35页
南邮《高级程序设计语言(C)》练习册期末复习题.docx_第2页
第2页 / 共35页
南邮《高级程序设计语言(C)》练习册期末复习题.docx_第3页
第3页 / 共35页
南邮《高级程序设计语言(C)》练习册期末复习题.docx_第4页
第4页 / 共35页
南邮《高级程序设计语言(C)》练习册期末复习题.docx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《南邮《高级程序设计语言(C)》练习册期末复习题.docx》由会员分享,可在线阅读,更多相关《南邮《高级程序设计语言(C)》练习册期末复习题.docx(35页珍藏版)》请在课桌文档上搜索。

1、南京邮电大学高等函授高级程序设计语言(C)综合练习习题与解答南京邮电大学继续教育学院2021年2月高级程序设计语言(C)综合练习注:此版本的综合练习册对应教材是(C程序设计,谭浩强主编,清华大学出版社,2017年7月第一版,ISBN9787302481447第一部分基础知识及最简单的程序设计一、填空题1、C语言中基本的数据类型有:、.2、C语言中普通整型变量的类型说明符为一,在内存中占一字节,有符号普通整型的数据范围是3、整数-35在机内的补码表示为.4,执行下列语句inta=8;a+=a-=a*a;后,a的值是。5、有如下语句:charA=”】amastudent;该字符串的长度是,A3=_

2、.6,符号”a”和出的区别是.7、所谓指针就是o“&运算符的作用是o*运算符的作用是。8、有如下输入语句:SCanfra=%d,b=%d,c=%d,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是。二、选择题1、设整型变量a为5,使b不为2的表达式是()。A.b=a2B.b=6-(-a)C.b=a%2D.b=a372:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是()in

3、tx=10,y=10;print11%d%dn,x-,y);A.1010B.99C.910D.1094、设A为存放(短)整型的维数组,如果A的首地址为P,那么A中第i个元素的地址为(.A.P+i*2B.P+(i-l)*2C.P+(i-l)D.P+i5、选出下列标识符中不是合法的标识符的是()。A.hot_doB.catlC._priD.2ab6、以下程序的输出结果是()。inta=5;floatx=3.14;a*(tE,-iA,);Printfc%fn,(float)a);A.62.00(X)00B.62.800000C.63.000000D.627、设有说明double(*pl)N;其中标识

4、符Pl是()。A.N个指向double型变量的指针。B.指向N个double型变量的函数指针。C.一个指向由N个double型元素组成的-维数组的指针。D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。8、在C程序中有如下语句:char*func(intx,inty);它是()。A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明QD不合法的。9、以下程序的输出结果是()。charstr15=hcllo!;Printf(i%dn,strlen(str);A.15B.14C.7D.610、分析以下程序的输出结果是()。main()inta=5,b

5、=l,c;c=adds(a,b);Printfe%d,c);c=adds(a,b);PrintfC%dn,c);intadds(intx,inty)staticintm=0,n=3;n*=+m;m=n%x+y+;return(m);A.2,3B.2,2C.3,2D.2,411、下列描述中不正确的是()。A.字符型数组中可能存放字符串。B.可以对字符型数组进行整体输入、输出。C.可以对整型数组进行整体输入、输出。D.不能在赋值语句中通过赋值运算符“=对字符型数组进行整体赋值。12、以下程序的输出结果是()。#definef(x)x*xmain()inta=6,b=2,c;c=f(a)f(b);P

6、rintfct%dn,c);A.9B.6C.36D.1813、设有如下定义:intx=10,y=3,z;则语句Printf(%dnz=(x%y,xy);的输出结果是()。A.1B.0C.4D.314、定义如下变量和数组:inti;intx33=1,2,3,4,5,678,9;则语句for(i=0;i5)printf(%dx);elsePrintf(%dn,x);A.7和5B.6和3C.7和4D.6和417、设有如下定义:Char*aa2=SbcdTABCD;则以下说法中正确的是(A)aa数组成元素的值分别是abed和ABCDB)aa是指针变量,它指向含有两个数组元素的字符型-维数组C)aa数组

7、的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符支和A的地址18、下列程序的输出结果是()。char*pl=abcd,*p2=ABCD,str50=xyz;strcpy(str+2,strcat(p1+2,p2+1);printf(,%s,str);A.xyabcABB.abcABzC.ABabczD.xycdBCD19、下列程序的输出结果是()。inta5=2,48J0,*P,*k;p=a;k=&p;printf(,%d,*(p+);Printf(%d产*k);A.44B.22C24D.4620、不能把字符串:HeIIo!赋给数组b的语句是()。

8、A.charb10=H,e,T,T,T;B.charb10;b=Hello!H;C.charb10;StrCPy(bJHcllo!);D.charb10=,Hello!,;三、读程序题1、floatf=3J415927;printf(wfc%f,%5.4f%3.3f,f,f,f);则程序的输出结果是O2、intx=6,y=7;Printfe%d,x+);Printfc%dn,+y);程序的输出结果是O3、a=3;a+=(a1)?a:1;PrintfC%d,a);结果是4、for(a=l,b=l;a=20)break;if(b%3=l)b+=3;continue;b-=5;程序的输出结果a的值为

9、。5、inty=l,x,*p,a=2,4,6,8,10;p=&al;for(x=0;x3;x+)y+=*(px);Printf(%dn,y);程序的输出结果y的值是o四、程序填空题1、从键盘上输入10个数,求其平均值。main()(inti;floatf,sum;for(i=l,sum=0.0jill;i+);jprintf(iiaverage=%fn,sum/10);)2、以下程序是建立一个名为mynic的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。#includemain()FILE*fp;charc;=;doc=getchar();fputs(c,fp);whil

10、e(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入请填空.main()floatx,amax,amin;scanf(%f,x);amax=x;amin=x;while()if(xamax)amax=x;if()amin=x;scanf(,%f,x);printf(,namax=%fnamin=%fnm,amax,amin);五、编程题I.三个整数a、b、C,由键盘输入,输出其中最大的一个数。2.输出19002000年中所有的闰年。每输出3个年号换-行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被

11、400整除。)3.清编个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1:若不是素数,返回0。A的值由主函数从键盘读入。4.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。第二部分数组及简单指针1、C语言中普通整型变量的类型说明符为一,在内存中占一字节,有符号普通整型的数据范围是=2、C语言中基本的数据类型有:、。3、设整型变量n的值为2,执行语句n+=n-=n*n后,n的值是。4、共用体和结构体的定义格式类似,不同点是。5、有如下输入语句:SCanf(“a

12、=%d,b=%d,c=%d”,&a、&b,&c);为使变量a的值为1,b的值为3,C的值为2,从键盘输入数据的正确形式应是。6、有语句:charA=rTamastudent;该字符串的长度是,A3=。7、符号a和言的区别o8、下列程序的输出结果是。intast(intx,inty,int*cp,int*dp)*cp=x+y;*dp=x-y;main()inta=4,b=3,c,d;ast(a,b,&c,&d);Printf(%d,%dnc,d);)二、选择题I、以下选项中属于C语言的数据类型是()。A.复合型B.双精度型C.逻辑型D.集合型2、以下说法中正确的是()。A.C语言程序总是从第-个

13、的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是()。A.hot_doB.catlC._priD.2ab4、下列描述中不正确的是()。A,字符型数组中可能存放字符串。B、可以对字符型数组进行整体输入、输出。C、可以对整型数组进行整体输入、输出。D、不能在赋值语句中通过赋值运算符=”对字符型数组进行整体赋值。5、定义:inta9,*p=a;并在以后的语句中未改变P的值,不能表示al地址的表达式为()A.plB.a+1C.a+D.+p

14、6、设有如下定义:intx=10,y=3,z;则语句PrintfC%dnz=(x%y,xy);的输出结果是()。A.1B.0C.4D.37、定义如下变量和数组:inti,x33=1,2,3,4,5,678,9;则下面语句for(i=0;i5)printf(,%d,x);elseprintf(%dnx-);A.7和5B.6和3C.7和4D6和410、设有如下定义:Char*aa=abcdJABCD;则以下说法中正确的是()。A.aa数组成元素的值分别是abed和ABCDB.aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组的两个元素分别存放的是含有4个字符的维字符数组的首地址D.

15、aa数组的两个元素中各自存放了字符宣和A的地址11、以下语句的输出结果是()。ita=-.b=4,k;k=(+a0)&!(b-=0);printf(%d,%d,%dn,k,a,b);A.1,0,4B.1,0,3C.0,0,3D.0,0,412、下列程序的输出结果是()。char*pl=abcd*p2=ABCD,str50=,xyz,;strcpy(str+2,strcat(p1+2,p2+1);Printf(%s,str);A.xyabcABB.abcABzC.ABabczD.xycdBCD13、执行下面的程序后再的值是()。#defineSQR(X)X*Xmain()inta=10,k=2,

16、m=l;a=SQR(k+m)SQR(k+m);Printf(%dn,a);A.10BJC9D.O14、设A为存放(短)整型的维数组,如果A的首地址为P,那么A中第i个元素的地址为()。A.P+i*2B.P+(i-l)*2C.P+(i-l)D.P+i15、下列程序执行后输出的结果是().intd=l;fun(intp)intd=5;d+=p+;Printf(%dj,d);mai()inta=3;fun(a);d+=a+;printf(,%dn,d);)A.8,4B.9,6C9,4D.8,516、表达式:10!=9的值是()。A.trueB.非零值C.OD.117、若有说明:intij=7p=&i

17、;,则与i=j;等价的语句是()oA.i=*p;B.*p=*&j;C.i=&j;D.i=*p;18、不能把字符串:HelIO!赋给数组b的语句是()。A.charb10=H,e,T,T,o,T;B.charb10;b=Hello!;C.charb10;strcpy(b,Hello!);D.charb10=Hello!w;19、在C程序中有如下语句:Char*func(intx,inty);它是(A.对函数func的定义。B.对函数func的调用。C.对函数func的原型说明。D.不合法的。20、以下程序的输出结果是()。charStr15=hello!;printf(t%dn,strlen(s

18、tr);A.15B.14C.7D.6三、阅读程序题1、intx=6,y=7;PrintfCfc%dj,x+);Printfr%dn,+y);程序的输出结果是O2、11oatf=3.1415927;printf(u%f,%5.4fk%3.3ff,f,f);则程序的输出结果是。3、a=3;a+=(al)?a:1;Printfv%d,a);结果是。4、main()inta5=(2A6,8J0),*P5*k;p=a;k二&p;printf(,%d,*(p+);printf(,%dn*k);J程序的输出结果是O5、main()inta,b;for(a=1,b=l;a=20)break;if(b%3=l)

19、b+=3;continue;b-=5;)程序的输出结果a的值为-四、程序填空题1、求主次对角线之和。main()staticinta3=9,7,54,2,4,6,8;intIj,sl=0,s2=0;for(I=0;I3;I+)for(j=0j3;j+)if(sl=sl+aIj;iffs2=s2+a0;1Printfc%dn%dn,sl,s2);2、从键盘上输入10个数,求其平均值。main()inti;floatf,sum;for(i=1,sum=0.0;i11;i+)printf(4kavcragc=%fn,sum/10);I3、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符

20、存入该文件,当键盘上输入结束时关闭该文件。#includemain()FILE*fp;charc;=;doc=getchar();fputs(c);while(c!=EOF);五、编程题1、三个整数a、b、c,由键盘输入,输出其中最大的数。2、从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环:若未找到,打印notexist。3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分。4、有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。第三部分选择结构及函

21、数-.选择题1.设intx=l,y=l;表达式(!x+y)的值是A.OB.1C.2D.-12.main()intn;(n=6*4,n+6),n*2;prins)t=u;t=s;B.t=u;if(t)t=s;C.if(us)t=s;elset=u;D.t=s;if(u)t=u;7.下列程序段的输出结果是ovoidmain()intk;for(k=l;k5;k+)if(k%2!=0)printf(,);elsePrintf(“”);A.#*#*B.*#*#C.#D.以上都不对8设变量定义为inta3=lA7,*p=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b010.C语言中,合法的

22、字符型常数是。A.AB“A”C.65D.A11设有数组定义:CharalTay=China;则数组所占的空间是。A.4个字节B.5个字节C.6个字节D.7个字节12.若变量C为Char类型,能正确判断出C为小写字母的表达式是A.av=c=,a,)(c=c)D.(c=,a,)&(cyz,应使用C语言表达式A.(x=y)&(y=z)B.(x=y)AND(y=z)C.(x=y=z)D.(x=z)=z)20.以下可以作为C语言合法整数的是。A.IOlOBB.0368C.OXffaD.x2a221.在函数中默认存储类型说明符的变量应该是存储类型。A.内部静态B.外部C.自动D.寄存器二.判断题1.C语言

23、源程序文件通过了编译、连接之后,生成一个后缀为.EXE的文件。()2.在C程序中,函数既可以嵌套定义,也可以嵌套调用。()3.在C程序中,APH和aph代表不同的变量。()4.表达式0195是一个八进制整数。()5.表达式_ya是不合法的C语言标识符。()6.C程序总是从main()函数的第一条语句开始执行的。()7.A-=7等价于a=a-7.()8.利用fcl。Se函数关闭已打开的文件。()9.数组名可以作为参数进行传递。()10.执行Printf(%x,l2345);,输出12345.()三、填空1.C语言的预处理语句以开头。2.表达式7+82&25%5的结果是。3.下列程序段是从键盘输入

24、的字符中统计数字字符的个数,用换行符结束循环。intLi=O,ch;ch=getchar();whle()(f()n+;c=getchar();4.C语言中putchar(c)函数的功能是05.int*p的含义是.o6.定义fp为文件型指针变量的定义方法为。7.数组inta洪定义了个数组元素。四、读出程序。1.改正下列程序中不正确的语句。main()inta=8,b=l;a=a+b;b=a*b;printf(%d,%d&a,&b);2.写出下列程序的运行结果。fun(inta,intb)if(ab)return(a);Elsereturn(b);)main)intx=3,y=8,z=6,r;r

25、=fun(fun(x,y),2*z);Printfe%dnr);3.改正下列程序中不正确的语句。main()inin;floats=1.0;fbr(n=10;nl;n-)s=sln;Printfr%6lftn,s);4.写出下列程序的运行结果。main()intn;For(n=3;n2&25%5的结果是。3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。intn=0,ch;ch=getchar();while()if()n+;4.putchar(c)函数的功能是Q5.int*p的含义是。6.C语言中数组的下标下限为Q7.定义fp为文件型指针变量的定义方法为。8.数组int

26、a34;共定义了个数组元素C二,选择题1、下列属于整型常量的是OA、12B、120C、-12.0D、IOElO2、不属于字符型常量的是QA.AB、宜C、“A”D、b3、下列表达式为关系表达式的为,(其中a为-整型变量)A,3+4*5B、a=10C、aO?a:-aD、a=l4、下面不正确的赋值语句是。A.a=a+lBxa=bC、a+=bD、a=l5、下列对数组定义不正确的语句是。A,intm5;B、Charb=h,u;C、inta10=l,6,8,4);D、chaip;6、若有以下定义,则和是对数组元素的正确引用。inta5,*p=aA+*&a6B、*p+8C、*(a+2)D、*p7、执行下列语

27、句后,a的值是.。inta二8;a+=a-=a*a;A.-240B、64C、112D、-1128.指出下面正确的输入语句()。A.SCanf(a=b=%d”,&a,&b);B.SCanR“d,d,&%&b);C.SCanf(t%c,c);D.scanf(4i%fn,Af);9.下面的变量说明中正确的是。A.int:a,b,c;B.inta;b;c;C*inta,b,CD.inta,b,c;10.C语言用()表示逻辑真值。A,TrueB.t或yC.非零整型值D.整型值O11.若x=5,y=4则y*=+5;y的值为(),A.40B.20C.15D.3013.C语言中以追加方式打开一个文件应选择参数

28、。A*V,B.WC.“rb”D.%14.Break语句的正确的用法是()A.无论在任何情况下,都中断程序的执行,退出到系统下一层。B.在多重循环中,只能退出最靠近的那一层循环语句。C.跳出多重循环。D.只能修改控制变量。15.两个指骨变量的值相等时,表明两个指针变量是。A.占据同一内存单元。B.指向同一内存单元地址或者都为空。C.是两个空指针。D.都没有指向。16.字符串指针变量中存入的是。A.字符串的首地址。B.字符串C.第一个字符D.字符串变量。17.以个是不正确的描述。A.不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。B.在定义函数时,必须指定形参的类型。C.形参和

29、实参之间可以是值传递。D.数组名可以作为参数进行传递。18表达式“1?(0?3:2):(10?1:0)”的值为。A.3B.2C.1D.019.为表示关系xyz,应使用C语言表达式A.(x=y)&(y=z)B.(x=y)AND(y=z)C.(x=y=z)D.(x=z)&(y=z)20.以下说法中正确的是。A.C语言程序总是从第一个定义的函数开始执行。B.在C语言程序中,要调用的函数必须有main()函数中定义。C.C语言程序总是从main()函数开始执行。D.C语言程序中的main()函数必须放在程序的开始部分。21.设有数组定义:chararrayJ=China;则数组所占的存贮空间为。A.4

30、个字节B.5个字节C.6个字节D.7个字节22.根据C语言的语法规则,下列个是不合法标识符。A.WhileB.NameC.Rern5D._exam三、读出下列程序,写出程序的运行结果.1.main()inta=8,b=l;a=ab;b=alkb;printf(a=%d,b=%d,a,b);该程序的运行结果是O2.main()inti,num5;for(i=0;i5;i+)numi=i*10-2;printf(,%d,num3);)该程序的运行结果是Q3.main()floatcrf;c=30.0;f=(6*c)5+32;printf(l,f=%ff,f);该程序的运行结果是,4.main()i

31、nta=6095,b;b=a%1000;printf(,%db);该程序的运行结果是,5.#include“stdio.h”main()inta=89AU,*p;p=a;*(p+2)+=2;Printfr%d,%d,*p,*(p+2);该程序的运行结果是四、将下列程序中不正确的语句改正.1.nain()intk;k=35555;Printf(%d,k);2.main()inta,b;scanf(uinputa,b:,a,b);Printf(a=%d,b=%d,a,b);J3.main()intsum,k;sum=O;k=1;while(k=100)sum=sum+k;k+;printf(sum

32、=%dn,sum);4.main()intk,a(8);for(k=0;k10;k+)SCanfC%d”,&a(k);5.main()3canfC%d,a);if(a=1)Printfrone);五.编程题题1.用程序计算下列表达式:s=l!+2!+3!+4!2、从键盘上输入三个数,求出其中最大的-个数。3.输入两个整数,调用函数stu()求两个数差的平方,返回主函数显示结果。4.从键盘上输入10个评委的分数,去掉-个最高分,去掉-个最低分,求出其余8个人的平均分,输出平均分,最高分,最低分。5.Write.txt中,遇到回车键输入结束。(用表示回车键)第五部分指针及结构体共用体类型应用-.单

33、项选择题1.各种基本数据类型的存贮空间正确的长度排列为。A.CharlongintfloatdoubleB.DoublefloatlongintcharC.CharintlongfloatdoubleD.Floatintlongchardouble2.下面的变量说明中是正确的。A.Char:a,b,c;B.Chara;b;c;C.Chara,b,c;D.Chara,b,c3.main()intn;(n=6*4,n+6),n*2;printfl(4fcn=%dnn);此程序的输出结果是.A.30B.24C.60D.484.若有如下定义,则和是对数组元素的正确的引用。inta10,*p;p=a;A

34、.*12?15:67?8:9)的值为。A9B8C15D.17.若x=5,y=3则y*=x+5;y的值为.A.10B.20C.15D.308.C语言的输入与输出操作是由完成的。A.输入语句B.输出语句C.输入与输出函数D.输入与输出语句9.语句for(k=0;k=A&chv=Z)?ch:(ch+32)的值是A.AB.aC.ZD.z15.根据C语言的语法规则,下列个是不合法标识符。A.WhileB.NameC.Rern5D._exam16.设单精度变量f,g均为5.0,使f为10.0的表达式是oA.f+=gB.f-=g+5C.f*=g-15D.f=g*1017.设整型变量n的值为2,执行语句F+=

35、n.=n*n丁后,n的值是A.0B.4C-4D.218.下列不是赋值语句的是oA.A+B.a=bC.a=bD.a=l19.为表示关系疟yX,应使用C语言表达式A.(x=y)&(y=z)B.(x=y)AND(y=z)C.(x=y=z)D.(x=z)(y=z)20.设有数组定义:Chararray=”China;则数组所占的存贮空间为A.4个字节B.5个字节C.6个字节D.7个字节二.写出下列程序的运行结果1.main()intx=10,y=10;PrintfC%d%dn,x-,-y);该程序的运行结果是o2.main()intj,k,p,s;s=0;for(j=l;j=3;j+)P=Ufor(k=l;k=j;k+)p=p*k;s=s+p;printf(fcks=%dn,s);该程序的运行结果是o3.#in

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号