《上海海洋大学C语言考试试卷(共六卷).docx》由会员分享,可在线阅读,更多相关《上海海洋大学C语言考试试卷(共六卷).docx(74页珍藏版)》请在优知文库上搜索。
1、break;)B、inti,sum=O;for(i=l;i+)sum=sum+l;Cxintk=0;do+k;while(k=0);Dxints=3379;while(s+%2+3%2)s+;【答案】A【解析】分析各个选项。选项A中,当变量i的值等于20时,会执行break;语句,即退出整个WhiIe循环体。所以选项A的循环语句不是死循环。其他各个选项的循环语句中,没有循环退出点,所以都是死循环。5、有语句CharStrl10,str210=l,china,;则能将字符串China赋给数组Strl的正确语句是.A、strl=,china);B、strcpy(str1,str2);Cxstrl=
2、str2;D、strcpy(str2,strl);【答案】B6、若已定义X和y为double类型,则表达式x=l;y=(x+3)2的值是。A、1B、2C、2.00000D、2.50000【答案】C【解析】()的优先级较高,先计算x+3,结果为4.0,再4.0/2结果为2.0。7、下列哪个数组定义是正确的OA、 inta5)5;B、 INTa10;Cxintan;Dxinta3+2;【答案】D8、按照数的进位制概念,下列各个数中正确的八进制数是_。A、HOlB、 7081C、 1109C语言考试试卷(一)(总分100分.专设时长6。分钟)一、单项选择题(每小题2分,共100分)1、以下选项中不合
3、法的标识是OA、&aB、FORC、printD、_00【答案】A2、下列不属于整型变量的类型是oA、 byteB、 shortC、 floatD、 long【答案】C3、与y=(x0?l:x0)y=l;elseif(x0)y=l;elseif(x0)y=l;elseif(x=0)y=0;elsey=-l;E、 y=0;if(x=O)if(xO)y=l;elsey=-l;【答案】A4、下列各循环语句中,不是死循环的是oA、inti=100;while(i)i=i%100+l;if(i=20)D、实参顺序与形参顺序无关。【答案】B13、下列程序的运行结果是ovoidfun(int*a,int*b)
4、(int*k:k=a;a=b;b=k;)main()inta=3,b=6,*x=&a,*y=Ab;fun(x,y);printf(%d%d,a,b):)A、63B、36C、编译出错D、00【答案】B【解析】在C语言中,调用函数时是将实参复制一份给形参,所以无论怎么改变形参的值,都不会影响到实参,即传值调用。即使形参是指针变量,也没有改变C语言传值调用这个事实,实参指针也还是复制了一份给形参指针,无论怎么改变形参指针的内容(注意:不是形参指针所指向的内容),也不会影响实参指针的内容。但它们两个现在的值一样,BP;指向的是同一个内存地址,所以改变形参指针所指向的内容,也就改变了实参指针所指向:的内
5、容,C语言就是这样实现传址调用的。本题中fun()函数的形参就是两个指针,但函!数中没有任何语句改变这两个指针所指向的内容,只是交换了两个参数的内容,所以该函!数不会对传递给它的实参以及实参所指向的内容造成任何影响,故a,b初始化时为3,:6,输出结果亦为3和6。应该选择B。14、设intf(int);和intg(int);是函数f和g的原形,以下将f作为语句调用的是:IA、g(f(3)B、f(g(3);C、g(f(3)+2);D、p=f(g(3)+1);【答案】D【解析】P=f(g(3)+1):函数f被作为一个语句调用。15、下面程序的输出结果是:mainOD、B03【答案】A【解析】八进制
6、的数字为。7。9、下列字符串中可以用作C标识符的是。A、 2009varB、 gotoC、 test-2009D、 -123【答案】D【解析】在C中,变量标识符必须以大小写字母或下画线开始,是由数字或者字母下画线等组成的一个字符串,其中C+关键字不能作为标识符,不能包含-、+、*、/等运算符号。C+变量区分大小写。10、执行下列语句后,i和n的值为()inti=10;intn=i+%5;A、 10,0B、 10,1C、 11,0D、 11,1【答案】C【解析】本题考查了+和两个运算符。+运算符在前是先使用操作数的值参与表达式的计算,然后将操作数的值加1;%是求余。该题参与运算的i的值是10,而
7、运算完后i的值就变为11,n=0o所以本题选C。11、以下程序的输出结果为omain()(inta=l,b=2,c=3,d=4,e=5;printf(R%dnw,func(a+b,b+c,c+a),(d+e);)intfunc(intx,inty)return(x+y);)A、15B、13C、9D、函数调用出错【答案】B12、以下说法正确的是A、实参类型不必同形参类型一致。B、实参可以是常量、变量和表达式。C、形参可以是常量、变量和表达式。intn,k;floatscore,sum,ave;sum=0.0;for(n=l;n=10;n+)for(k=l;k=4;k+)scanf(%fw,&sc
8、ore);sum+=score:ave=sum4.0;printf(,no%d%fn,n,ave);)上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是。A、sum=0.0;B、sum+=score;Cxave=sum4.0;D、Printf(N0%D%fn,n,ave);【答案】A19、以下语句或语句组中,能正确进行字符串赋值的是一。Axchai*sp;*sp=nright!:B、chars10;s=right!w;Cxchars10;*s=right!D、chai*sp=right!【答案】D【解析】本题考查了考生对字符串常量的理解。字符串常量是一段以双引号括
9、起来的字符序列,它既可以出现在对字符数组的初始化中,也可以出现在表达式中。当它用于对字符数组的初始化时,应注意系统自动为其添加的结束标志0.而当它出现在表达式中时,应该将其看作一个COnStChar*类型的指针常量。在选项A中,首先定义了一个字符指针SP,然后将一个字符串赋给甲所指的地址,这是错误的。因为SP是一个未经初始化的野;指针,不知其指向哪儿,往一个不确定的地址中写数据很容易让程序出错。选项B首先定:义了一个字符数组,然后将一个字符串就给数组名,这是错误的。因为数组名是一个指针:常量,不可以被改变。选项C首先定义了一个字符数组,然后将一个字符串赋给数组的第:一个元素,这也是错误的。因为
10、字符串在表达式中相当于一个常字符指针,将一个指针值,赋给一个字符型变量是行不通的。选项D是定义一个字符指针sp,同时使其指向一个字!符串常量,即将一个常字符型指针赋给sp。这是可行的。所以,4个选项中选项D符合惠;inta=-l,b=4,k;k=(a+l;i-)for(j=l;ji;j+)PUtChar(#);A、无B、#C、#D、#【答案】B17、若有以下说明和定义Uniondt(inta;charb;doublec;)data;以下叙述中错误的是OA、data的每个成员起始地址都相同B、变量data所占的内存字节数与成员c所占字节数相等C、程序段data,a=5;Printf(5fn,da
11、ta.;输出结果为5.OOOOOOD、data可以作为函数的实参【答案】C【解析】UniOn是表示共用体的关键字,成员a,b,c共占用同一个内存空间,data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量data所占的内存字节数与成员C所占字节数相等;执行data.a=5;printfC%fnw,data.c);wprintf函数只是将内存中的数据以不同的类型输出,而不能将内存中的整型数据自动转换为等值的浮点数,故C是错误的。18、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main()4);x+),y!=99&
12、xV4即循环条件当y不等于99以及V4时,执行循环语句,当有一个条件不成立时,均结束循环,因此循环4次,B选项正确。25、若有以下的定义:intta2;,能正确表示t数组元素地址的表达式的是。A、&.t32B、 t3C、 tlDxt22【答案】C26、在C语言中,能表示无符号长整型常数的是一。A、OLB、49627IOUC、912374uD、2UL【答案】D27、若有inta10f*p=a;,且a数组已赋值,则与a4不等价的表达式为oA、p+4B、 *(p+4)C、 *(a+4)D,p4【答案】A【解析】请仔细阅读交规难度:简单28、若已定义:inta9,*p=a;并在以后的语句中未改变P的值
13、,不能表示al地址的表;达式是OAp+1Bxa+1C、&alD、 *pl【答案】D29、字符串指针变量中存入的是oA、字符串B、字符串的首地址C、第一个字符D、字符串变量【答案】B30、以下叙述中错误的是oA、C语言的可执行程序是由一系列机器指令构成的B、用C语言编写的源程序不能直接在计算机上运行C、通过编译得到的二进制目标程序需要连接才可以运行D、在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件20、表达式*(int*)(p+l)+2)的值时.staticstruct(intx,y3;)a3=1,2,3,4,5,6,7,8,9,10,11,12),*p;P=a+1;A、3B、7C、10D、11【答案】D21、下列符号中,可以作为变量名的是。A、+cB、*XC、 _DAYD、 next-day【答案】C22、下列选项中,合法的变量名是oA、 printB、 printttlC、print1D、9printl【答案】C【解析】变量的命名规则为,变量名必须以字母开头;不能在变量名中出现句点、空格或者嵌入下列字符“!,$,乐&”;变量名不能和关键字同名,根据上述规则可得本题答案为C。23、对于void类型函数,调用时不可作为()。A、自定义函数体中的语句B、循环体里的语句C、if语句的