东华理工大学计算机C语言期末预测卷.docx
case1:Printf("%d”,i);case2:rintf(*%dz,i);default:printf(*%c,i);执行后输出的结果是OA、011122B、012C、012020D、120【答案】A【解析】当执行SWitCh语句时,首先计算紧跟其后一对括号中的值,然后在语句体内寻找与该值吻合的CaSe标号。若相等,则执行该标号后开始的各语句,包括在其后的所有case和default后的语句,直到switch语句体结束。4、程序设计语言中oA、while循环语句的执行效率比do-while循环语句的执行效率高B、while循环语句的循环体执行次数比循环条件的判断次数多1,而do-while语句的循环体执行次数比循环条件的判断次数少1C、while语句的循环体执行次数比循环条件的判断次数少1,而do-while语句的循环体执行次数比循环条件的判断次数多1D、while语句的循环体执行次数比循环条件的判断次数少1,而CIOrhile语句的循环体执行次数等于循环条件的判断次数【答案】D5、C语言函数内定义的局部变量的隐含存储类别是AstaticB、 autoC、 registerD、 extern【答案】B6、下列变量定义中合法的是()。A、shorta=l-.Ie-I;B、doubleb=l+5e2.5;C、longdo=0xfda1.;Dsfloat2and=l-e-3;计算机C语言期末预测卷(一)(总分100分.考试时长60分钟题号、总分阅卷人分值100100得分考生应检查“答题卡”正反两面,如果发现“答题卡”字迹模糊,行列歪斜或单面缺印等现象,要及时向监考员报告。作答时须保持答题卡整洁,不得破损、折皱、沾水(汗考试结束前要离开考场的考生须先按答题卡、试卷、草稿纸从上到下的顺序平放在桌面上,再举手提出离场。一、单项选择题(每小题2分,共100分)1、设整型变量n的值为2,执行语句"n+=n-=n*n;"后,n的值是。A、0B、4C、-4D、2【答案】C2、该语句打印结果为(每个d后都有空格)printf("%d”,printf(*%d",printf%d",43);A、 4321B、 434343Cx4332D、4321【答案】C3、有以下程序main()inti;for(i=0;i<3;i+)switch(i)【答案】D12、关于C语言,下列说法正确的是。A、程序就是算法B、一个变量只能定义为一种数据类型C、一个变量只能存储一个字符D、若a和b类型相间,执行a=b;后,b中数值将丢失【答案】B13、下述程序的输出结果是。ftinclude<stdio.h>voidmain()(inta5=l,2,3,4,5;int*p=a,*q=½p;printf(W,*(p+);Printf("%d”,*q);A、22B、11C、34D、12【答案】D【解析】程序首先定义了一个指向一维数组a的指针p,一个指向指针变量P的指针变量q,输出*(p+)是先输出*p即a0的值,再将指针P指向数组的下一个元素al,输出*q是输出指针P所指向单元的内容,即al的值。14、对于以下递归函数f,调用f(3)的返回值是ointf(intn)(if(n)returnf(n-l)+n:elsereturnn;)A、10B、6C、3D、0【答案】B【答案】A7、在定义inta56;后,数组a中的第10个元素是(设a00为第一个元素)A、a25B、aC、 alDxal5【答案】C8、己知字母a的ascii码十进制值为97,则执行以下语句后的输出为。yhgchara='a,;printf(,%d,%cn,*,a+*2'-'0',a+*3*-*0*);A、b,cB、a-运算不合法,故有语法错C、98,cD、格式描述和输出项不匹配,输出无定值【答案】C9、设宏定义#出?门隧PI3.1415926,用宏名PI替换的是。A、算术表达式B、字符串C、单精度实型数D、双精度实型数【答案】B10、已知字母a的ascii代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是OA、kk>=A,&&kk<=Z,B、!(kk>='A'KKV=N)C、(kk+32)>=a&&(kk+32)<=zD、kk>=65&&kk<=90【答案】B11、函数的形式参数隐含的存储类型说明是。AexternB、staticC>registerD、 autoPrintf("%dn”,c&c);程序运行后的输出结果是OA、OB、70C、35D、1【答案】C【解析】按位与,因为0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。19、若在某函数内部有定义:inta34;则数组a中各元素。A、可在程序的运行阶段得到初值0B、可在程序的编译阶段得到初值0C、不能得到确定的初值D、可在程序的编译或运行阶段得到初值0【答案】C【解析】在函数内部定义的存储类型为auto的变量或数组,如果没有进行初始化,就不能得到确定值。20、设有如下定义structss(charname10;intage;charsex;std3,*p=std;下面各输入语句中错误的是。A、scanf(飞d",&(*p).age);B、scanf("%s”,&std.name);C、sean(*%c*,&std0.sex);D、scanf(*%c*,&(p->sex);【答案】B【解析】本题考核的知识点是结构型数组的应用。选项A中“&(*p).age”代表的是stdOage的地址,是正确的,选项C也是正确的,选项D先用指针变量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的“std.name"是错误的引用,因为Std是数组名,代表的是数组的首地址,地址没有成员“name"。所以B选项为所选。15、下面程序段的输出为#include*stdio.h"main()printf(*%dn*,12<<2);)A、OB、47C、48D、24【答案】C【解析】考查位运算的运算原理。解题要点VV为左移运算符,运算符的左边是移位对象:右边是整型表达式,代表左移的位数,左移时,右端(低位)补0;左端(高位)移出的部分舍弃。16、若变量已正确定义,对以下*hilc循环结束条件的准确描述是A、item的绝对值小于O.OOOlB、item的绝对值大于O.OOOlC、item的绝对值等于O.OOOlD、iIem的绝对值不等于0.0001【答案】A17、若有函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b,);那么在此函数调用语句中实参的个数是OA、3B、4C、5D、6【答案】A【解析】调用函数时,在函数名后面跟参数,参数用逗号隔开。调用时,实参与形参的个数相等,类型一致,且按顺序一一对应传递数据。且实参是实际调用函数时所给定的有确定值的常量、变量或表达式。本题函数调用语句中的实参个数为3个。18、有以下程序main()intc=35;赋值语句完成后数组中数据如下:024024024因为fun()函数打印的是第1行第2列的数据,所以为4。24、设j为int型变量,则下面for循环语句的执行结果是_for(j=10jj>3;j-)(if(j%3)j-;j;-j;printf(*d*,j);)A、63B、74C、62Ds73【答案】B25、c语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为oA、该数组的长度B、该数组的元素个数C、该数组中各元素的值D、该数组的首地址【答案】D【解析】数组作为函数参数时,传入的是该数组的首地址。26、设有说明:Charc;intx;doublez;则表达式c*x+z值的数据类型为A、floatB、intC、 charD、 double【答案】D21、算法要有确定的含义,不能出现二义性指的是算法的咖个特性?A、有穷性B、确定性C、可行性D、输入【答案】B22、以下选项中,能用作用户标识符的是oAvoidB、8_8C、_0_D、unsigned【答案】C23、下列程序的输出结果是include,stdio.h"#defineN3JtdefineM3voidfun(intaMN)printf(*%dn*,*(al+2);mainOintaMN;inti,j;for(i=0;i<M;i+)for(j=0;j<N;j+)aij=i+j-(i-j);fun(八);)A、3B、4C、5D、6【答案】B【解析】若有以下定义:inta34,i,j;,且OWiV3,0j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:aij,*(ai+j),*(*(a+i)+j),(*(a+i)j,*(fta00+4*i+j),)31、以下关于结构化程序设计的叙述中正确的是OA、一个结构化程序必须同时由顺序、分支、循环三种结构组成Bs结构化程序使用goto语句会很便捷C、在C语言中,程序的模块化是利用函数实现的D、由三种基本结构构成的程序只能解决小规模的问题【答案】C【解析】C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的种基本结构,研究证明任何程序都可以由这三种基本结构组成。但是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提倡结构化设计以来,goto就成了有争议的语句。首先,由于goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。GOIo语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。32、与二进制数101.OlOll等值的卜六进制数是。A、A.BB、5.51C、A.51D、5.58【答案】D【解析】二进制数0101、OlOl和100o所对应的十六进制数分别为5、5、833、以下叙述中正确的是OA、C程序中注释部分可以出现在程序中任意合适的地方B、花括号“”和“”只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名D、分号是C语句之间的分隔符,不是语句的一部分【答案】A【解析】在C程序中/*/表示注释部分,注释只是让阅读程序的人更容易理解程序,对编译和运行不起作用,可以加在程序中任何位置,选项A)正确;花括号“”和“”不仅可以作为函数体的定界符,还可以构成复合语句,选项B)错误;系统提供的函数和mai