还剩6页未读,继续阅读
文本内容:
2023年C语言程序设计预测卷
一一、单项选择题每小题2分,共40分
1、现代计算机中采用二进制数制是因为二进制数的优点是A、代码表示简短,易读B、物理上容易实现且简单可靠;运算规则简单;适合逻辑运算C、容易阅读,不易出错D、只有01两个符号,容易书写
2、若〃intn;floatf=
13.8;〃,则执行〃n=intf%3〃后,n的值是A、1B、
44.333333D、
4.
63、关于结构化程序设计原则和方法的描述错误的是oA、选用的结构只准许有一个入口和一个出口B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C、不允许使用GOTO语句D、语言中若没有控制结构,应该采用前后一致的方法来模拟
4、用在switch语句的关键字没有哪个?continuebreakCdefaultD、if
5、若chara
[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是oA、getsa;Bscanf〃%s〃a;Cfori=0;i10;i++a[i]=getchar;a=getchar;
6、设char型变量x中的值为10100111则表达式2+xX〜3的值是A、
101010011010100011111101010101017、若已定义:inta[]={0123456789}*p=ai;其中0WiW9则对a数组元素不正确的引用是a[p-a]B、*C、pD、a
[10]
8、下面合法的c语言字符常量是.A、\tB、〃A〃C、65D、A
9、下列选项中,能够满足〃若字符串si等于字符串s2则执行st〃要求的是OA、ifstrcmps2si==0ST;ifsl==s2ST;C、ifstrcpys1s2=1ST;D、ifsl-s2==0ST;
10、定义如下变量和数组inti;intx
[3]
[3]={123456789则下面语句的输出结果是ofori=0;i3;i++prin句x[i][2T];A、258B、147C、357D、
36911、有以下程序#includestdio.hvoidfunintnint*s{intf;ifn==l*s=n+l;elsefunn-lf;*s二f;}main{intx=0;fun4x;printf级d\n〃x;程序运行后的输出结果是OA、2B、1C、3D、
412、设有定义语句:chara二\72;,则变量aA、包含1个字符B、包含2个字符C、包含3个字符D、定义不合法
13、对下述程序的判断中,正确的是omain{char*ps
[256];P=s;whilestrcmps/ztheendprintfinputthestring/;getss;while*pputchar*p++;A、此程序循环接收字符串并输出,直到接收到字符串“theend为止B、此程序循环接收字符串,接收到字符串“theend”则输出,否则程序终止C、此程序循环接收字符串并输出,直到接收字符串“theend”为止,但因为代码有错误,程序不能正常工作D、此程序循环接收字符串并将其连接在一起,直到接收字符串“theend”为止,输出连接在一起的字符串
14、以下对枚举类型名的定义中正确的是oA、enuma={summontue};B、enuma{sum=9mon=-ltue;、enuma={summontue;、enumatsummontue;
15、以下程序的运行结果是omain{inti=lsum=0;whilei10sum=sum+l;i++;printfCzi=%dsum=%d/zisum;A、i=10sum=9B、i=9sum=9C、i-2sum=lD、运行出现错误
16、要求通过while循环不断读人字符,当读入字母n时结束循环若变量已正确定义下列正确的程序段是oA、whilech=getcharO!=’Nprintf%c、ch;B、whilech二getchar!=Nprintf%c”、ch;C、whilech=getchar==,NprintfC%c”ch;D、whilechgetchar=Nprintf”%c”,ch;
17、下面说法正确的是oA、文件指针变量的值是文件当前正在处理的字节地址B、文件指针变量的值是文件中包含的字符个数C、文件指针的类型是一种指针类型D、文件指针的类型是结构体类型
18、下列程序的输出结果是ointb=2;intfuncint*ab+二*a;returnb;main{inta=2res=2;res+=funca;printfz,%d\n〃res;A、4B、6C、8D、
1019、执行完语句int[]x=newint
[25];后,则下列哪项说法是正确的A、x
[24]值为0B、x
[24]值未定义C、x
[25]值为0D、x
[0]值为空
20、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是Ostructstu{inti;intname;}st*p;p=st;A、siB、*iC、礼iD、p-i
二、填空题每小题2分,共20分
1、执行下面程序段后k值是intk=ln=263;do{k*二n%10;n/=10;whilen;
2、若有〃inta
[3]
[2]={{12}{3}{45};〃则a
[2]
[2]的值是o
3、c语言中的关键字共有32个,而且都是写提示:大/小
4、设有变量定义:inta=10c=9;则表达式--a!=c++--a:++c的值是
5、请阅读并分析以下程序,该程序的输出结果是ttincludestdio.hmain{inta[]={2354}i;fori=0;i4;i++switchi%2case0:switcha[i]%2{case0:a[i]++;break;case1:a[i]一;break;case1:a[i]=0;fori=0;i4;i++printf〃%d〃,a[i];printf〃\n〃;
6、函数f的形参a为一个10X10的二维数组,n的值为5以下程序段的运行结果为ofinta[]
[20]intn{intijk;j=n/2+l;a[l][j]=l;i=l;fork=2;k=n*n;k++i=i-l;j=j+l;ifiljni=i+2;j=j-l;elseifili=n;ifjnj=l;ifa[i][j]==0a[i][j]=k;elsei=i+2;j=j-l;a[i][j]=k;main{inta
[20]
[20]={0}nij;scanfn;fan;fori=l;i=n;i++forj=l;j=n;j++printf,z%3d/za[i][j];printf〃\n〃;
7、一个C程序有且仅有一个函数
8、已知charstr口二〃student”则strlenstr的值为
9、下面是实现打印九九乘法表的程序请在画线的位置填上适当的语句,使程序段完整mainintijk;fori=l;;i++forj=l;;j++printf级d*%d=%d〃,;printf〃\n〃;
10、有以下程序#includestdio.hmain{intxy;scanf〃%2d%ldxy;printf〃%d\n〃x+y;}程序运行时输入1234567程序的运行结果是
三、编程题每小题分,共40分
1、输入5个数,求和并输出要求编写求和的函数本题10分
2、输入十个数字,逆序输出数组实现本题14分
3、编程序建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入当输入数据为T时表示输入结束,使用结构体实现本题16分[2023年C语言程序设计预测卷
(一)参考答案】
一、单项选择题
1、B【解析】二进制数只用“0”和“1”来存储,因此物理上容易实现且简单可靠,运算规则简单,适合逻辑运算但不容易阅读,易出错
2、
3、
4、
5、D
6、D【解析】表达式(2+x)二进制表示为10101001(-3)即把3按位取反得到二进制值为“11111100”,再把这两个二进制按位加(异或),得到结果位“01010101”
7、D【解析】通常,引用一个数组元素可以用下标法,如s[p-a]和p[i]的形式;或指针法,如指a[i])的形式在本题中a
[0]=0a
[9]=9显然a
[10]超出了数组范围
8、A
9、A
10、A
11、A【解析】fun函数是递归函数,调用到n为0时*s=l+l为2返回主函数,x为2o
16、A
17、C【解析】文件指针变量的值是文件所在的地址,选项AB错误;文件指针也是一种指针,属于指针类型不是结构体类型,选项C正确D错误;本题答案为C
18、B
19、A【解析】用new动态初始化时,数组元素的默认值元素类型默认初始值booleanfalsechar。