海南医学院往年C语言程序设计专升本(含六卷).docx
往年C语言程序设计专升本(一)(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、以下叙述中正确的是。A、a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值B、在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C、执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为OD、已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3【答案】A2、若变量已正确说明为float型,要通过语句SCanf("%f%f%f",&a,&b,&c);给a赋予10,0,b赋予22.0,c赋予33.0,下列不正确的输入形式是。A、IOV回车22V回车33V回车B、10.0,22.0,33.0V回车C、10.0V回车22.033.OV回车D、1022V回车33V回车【答案】B【解析】在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。逗号不是合法的间隔符。3、下列程序的输出结果是omain()inta=4,b=5,c;if(ab)c=a*b;printf(w%d,%d,%d11n,b,a,c);elsec=b/a;printf("%d,%d,%dn”,b,a,c);)A、4,5,12B、20C、5,4,20D、12【答案】C【解析】本题考查ifelse语句。第一个if语句,先判断条件,发现aVb成立,执行下列的复合语句,得c=a*b=20,b、a的值不变。4、以下()循环并非重复5次?A、inti;for(i=l;i<6;i+)B、inti;for(i=0;i<5;i+)C、inti;for(i=0;i<=5;i+)D、inti;for(i=l;i<=5;i+)【答案】C5、下列说法正确的是oA、在C程序中,main()函数必须位于程序的最前面B、在C程序中,一条语句只能写一行而不能写多行C、C程序是以行为基本单位的D、C语言本身没有输入输出语句【答案】D【解析】本题涉及C语言最基本的4个知识点:C语言程序是由函数构成的,C程序的基本单位是函数;每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,但是main()函数可以放在程序中的任意位置;C语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上:C语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。6、设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。A、552B、144C、264D、-264【答案】D7、以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn)inti,j=O,p;P二j;for(i=j;i<n;i+)if(ai<aj)return(p);)在下划线处应填入的是OA、i=PB、ap=aiC、P=JD、p=i【答案】D8、两个或两个以上模块之间联系的紧密程度称为()oA、耦合性B、内聚性C、复杂性D、数据传输特性【答案】A9、设有字符串a="hehas钱!",则该字符串的长度为()。A、9B、10C、11D、8【答案】B10、假定有以下变量定义:intk=6,x=12;则能使x、k值为5、6的表达式是A、 x%=+k%10B、 x%=k+k%5C、 -=+k%5D、 -=k+÷%5【答案】B【解析】在进行"x%=k+k%5”的计算时,根据运算符的优先级将先计算”k%5,k%5=l;再计算"k+k%5",k+k%5=7;最后计算"x%=k+k%5","x%=k+k%5"的含义是x=x%(k+k%5),即x=5。在整个运算过程中没有对k的赋值操作,k的值不变,k=6oIk若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是OA、 sqrt(fabs(pow(n,x)÷exp(x)B、 sqrt(fabs(pow(n,x)+pow(x,e)C、sqrt(abs(nx+ex)D、sqrt(fabs(pow(x,n)+exp(x)【答案】A【解析】B选项中函数pow(x,e)错误应该直接使用exp(x)函数。C选项中函数abs(n"x+x)错误,应该使用fabs返回浮点数的绝对值。D选项中pow(x,n)参数顺序错误。12、数据的存储结构是指oA、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示【答案】D【解析】数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构,所以选项D正确。13、若使用一位数组名作为函数实参,则以下正确的说法是0A、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、在被调函数中,不需要考虑形参数组的大小D、实参数组名与形参数组名必须一致【答案】C14、e语言程序的三种基本结构是顺序结构、选择结构和结构.A、循环B、递归C、转移D、嵌套【答案】A15、有以下程序#include<stdio.h>4include<string.h>voidfun(char*s,intn)(char*t;inti,j;for(i=0;i<nl;i+)for(j=i+l;j<n;j+)if(strlen(si)>strlen(sj)(t=si;si=sj;sj=t;main()char*ss=,bccr,bbccr,xyr,naaaaccr,aabcc,;fun(ss,5);printf(n%s,%snn,ss0,ss4);程序的运行结果是OA、 xy,aaaaccB、 aaaacc,xyC、 bcc,aabccD、 aabcc,bcc【答案】A16、下列语句中执行跳转功能的语句是OA、for语句B、WhiIe语句C、continue语句D、SWitCh语句【答案】C【解析】for语句和While语句都是循环控制语句;SWitCh语句是多分支语句;选项C的ContinUe语句是跳转语句,ContinUe语句跳过循环体中下面尚未执行的语句,回到循环体的开始继续下一轮的循环。17、下列说法正确的是OA、main函数必须放在C程序的最后面B、Inain函数必须放在C程序的最前面C、main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D、main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的【答案】D【解析】每个C程序有且只有一个主函数(main),且程序必须从main()函数开始执行。别外main()函数可以放在程序中的任意位置。18、以下程序运行后的输出结果是omain()inty=18,i=0,j,a8;do(ai=y%2;i+;y=y2;while(y>=l);for(j=i-l;j>=0;j)printf("%dw,aj);printf(m11h);A、 1000B、 10010C、 00110D、 10100【答案】B19、用冒泡排序对4,5,6,3,2,1进行从小到大排序,第三趟排序后的状态为A. 453216B. 432156C. 321456D. 213456【答案】C20、下面结构体的定义语句中,错误的是A、structordintx;inty;intz;structorda;B、structord(intx;inty;intz;structorda;C、structord(intx;inty;intz;n;D、structintx;inty;intz;a;【答案】B21、下列形式的常数中,c程序不允许出现的是A、100B、E3C、30.6E-2D、1.235【答案】B22、以下能正确定义且赋初值的语句是OA、 intnl:=n2:=10;B、 charc=32;C、floatf=f+l.1;D、doublex=12.3E2.5;【答案】B23、结构化程序设计所规定的三种基本控制结构是oA、输入、输出、处理B、顺序结构、选择结构、循环结构C、 for、while、switchD、主程序、子程序、函数【答案】B【解析】结构化程序有三种基本结构组成,分别是顺序结构、选择结构和循环结构。24、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:OA、 switchB、 continueC、 breakD、if【答案】C25、设有二维数组a(12,10),其每个元素占4个字节,数据按列优先顺序存储,第一个元素的存储地址为100o则元素a(5,5)的存储地址为OA、176B、276C、208D、308【答案】D26、在C语言中,合法的字符常量是.A、 ,084,B、 'x43'C、 ,ab'D、 0"【答案】B27、有说明语句inta45;则a2+3表示A、a数组行下标为2、列下标为3的元素的地址B、a数组行下标为2、列下标为3的元素的值C、a数组第2行的首地址D、a数组第3行的首地址【答案】A28、下列不正确的转义字符是OA、,B、mC、074,D、0,【答案】C29、下列字符串中,不可以用作C标识符的是OA、 y_2006B、 _FESTJIC、 ReturnD、 switch【答案】D【解析】在C中,变量标识符必须是以大小写字母、下画线开始,由数字或者字母下画线等组成的一个字符串,其中C+关键字不能作为标识符,不能包含-、+、*、/等运算符号。C+变量区分大小写,所以RetrUn不是关键字,而是一个合法变量;SWith为关键字,所以不能定义为标示符。30、关于fgets()函数,下列描述中正确的是OA、从文件fp中读取长度为n的字符串存入Str指向的内存B、从文件fp中读取长度不超过n-1的字符串存入Str指向的内存C、从文件fp中读取n个字符存入Str指向的内存D、从Str读取至多n个字符到文件fp中【答案】B【解析】fgets()是从文件fp中读取长度不超过nT的字符串存入str指向的内存31、以下叙述正确的是OA、函数可以嵌套定义但不能嵌套调用B、函数既可以嵌套调用也可以嵌套定义C、函数既不可以嵌套定义也不可以嵌套调用D、函数可以嵌套调用但不可以嵌套定义【答案】D【解析】考查函数的定