《往年长春工程学院C语言程序设计专升本测试卷(八套试卷)及答案.pdf》由会员分享,可在线阅读,更多相关《往年长春工程学院C语言程序设计专升本测试卷(八套试卷)及答案.pdf(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、长春工程学院C语言程序设计专升本测试卷(一)总分:100分 考试时间:90分钟注意事项:题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共4 0分)1、以下说法错误的是 OA、C语言中的常量是指在程序运行过程中经常被用到的变量B、C语言中的常量是指在程序运行过程中其值不能被改变的量C、C语言中的常量可以用一个符号名来代表D、C语言中的常量可以用宏来定义【答案】A【解析】C 语言中的常量是指在程序运行过程中其值不能被改变的量,它可以用宏来定义,用一个符号名代表,选 项
2、A 错误,选 项 B C D 正确,本题答案A2、下列()是合法标识符。A、_ bo o kB、5 f i l e sC、+s t at i cD s -3.1 4 1 5 9【答案】A3、经过以下语句定义后,表达式z+=x y?+x:+y的值为。i n t x=l,y=2,z=3;A、2B、3C、6D、5【答案】C4、当把以下四个表达式用作i f 语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是。A、k%2B、k%2=lC、(k%2)!=0D、!k%2=l【答案】D5 下列 w h i l e 循环的次数是 o w h i l e (i n t i=0)i;A、0B、1C、5
3、D、无限【答案】A6、与实际参数为实型数组名相对应的形式参数不可以定义为 oA、f l o at a ;B、f l o at *a;C、f l o at a;D、f l o at (*a)3 ;【答案】c7、设有定义:f l o at a=2,b=4,h=3;以下c语言表达式与代数式l/2(a+b)计算结果不相符的是。A、(a+*h/2B、(l/2)*(a+*hC、(a+*h*l/2D、h/2*(a+【答案】D【解析】“*”的运算优先级高于“/”的运算优先级,因此,在选项D)中,计算结果为0.25O8、以 下 程 序 的 输 出 结 果 是 o c h ar c h 5 =a,b,0 ,c ,
4、0 ;p r i n t f(%s ,c h);A、aB、bC、abD、abc【答案】c【解析】字符串总是以0 作为串的结束符。有了0 标志后,就不必再用字符数组的长度来判断字符串的长度了。9、下 面 关 于 指 针 的 说 法 中 错 误 的 是。A、在指针定义的同时可以对其进行初始化B、指针根据其所指向变量的类型的不同,所占用内存大小也不同C、指针中存放的是内存单元的地址I)、相同类型的指针之间可以相互赋值【答案】B【解析】指针是一种用来存放其他变量地址的数据类型,它的声明形式为:(类型+变量名,可以在声明的时候对其进行初始化。由于其存放的是内存单元的地址,所以大小一般都是4个字节。1 0
5、、以下正 确 的 字 符 串 常 量 是 A、B、abcC、O lympi cG amesD、,A,【答案】A1k 以下程序的运行结果是 O#i nclude mai n()(i nt a=l,2,3,4,5,6,7,8,9,1 0,ll,1 2);i nt*p=a+5,*q=null;q=8(p+5);pri ntf(H%d%dnw,*p,*q);A、运行后报错B、6 6C、6 1 1D、5 5【答案】A【解析】本题的考查点是通过指针引用数组元素。程序中没有给q 分配存储单元,只是给它赋了一个N UL L,所以程序的运行结果是:6 1 1 N UL L poi nterassi g nmen
6、t,也就是运行后报错。1 2、以下程序的输出结果是#i ncludei nt m=1 3;i nt f un(i nt x,i nt y)i nt np2;return(x*y-m);mai n()(i nt a=7,b=6;pri ntf(H%dw,f un(a,b)/m);A、1B、3C、7D、1 0【答案】B【解析】本题考查的是函数调用时的参数的作用域。在函数调用时,当全局变量和局部变量的名称相同时,在局部变量的作用域内,局部变量起作用,因而在 f un函数内m 的应该等于2,mai n中的m 为 1 3,所以返回值为7 X6-2=4 0,而 f un(a,b)/m 值为 4 0/1 3
7、=3。1 3、结构化程序设计主要强调的是 oA、程序的规模B、程序的易读性C、程序的执行效率I)、程序的可移植性【答案】B1 4、以下正 确 的 说 法 是。A、定义函数时,形参的类型说明可以放在函数体内B、return后边的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类型不一致,以实参类型为准【答案】C【解析】选项A)中定义函数时,形参的类型说明应该放在形参表列内说明。老版本C语言中,对形参类型的声明是放在函数定义的第2 行,也就是不在第1行的括号内指定形参的类型,而在括号外单独指定。选项B)中return后面的值可以是一个表达式。选项D)中实参与
8、形参的类型应相同或赋值兼容。如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换,以形参类型为准。1 5、以下程序的输出结果是 o#i nclude#def i ne F UD G E(y)2.8 4+y#dof i ne P R(a)pri ntf(%d,(i nt)(a)#def i ne P RI N T1(a)PR(a);p u t c h a r(n )m a i n()(i n t x=2;PRINT1(FUDGE(5)*x);)A、1 1B、1 2C、1 3D、1 5【答案】B1 6、运行下面程序时,若从键盘输入数据为1 2 3,则输出结果是.#i n c l
9、 u d e s t d i o.h v o i d m a i n()(i n t n u m,i,j,k,p l a c e;s c a n f (,%d r,&n u m);i f (n u m 9 9)p l a c e=3;e l s e i f(n u m 9)p l a c e=2;e l s e p l a c e=l;i=n u m/1 0 0;j=(n u m-i*1 0 0)/1 0;k=(n u m-i*1 0 0-j*1 0);s w i t c h (p l a c e)c a s e 3:p r i n t f(H%d%d%d nw,k,j,i);b r e a
10、k;c a s e 2:p r i n t f(M%d%d nM,k,j);b r e a k;c a s e 1 :p r i n t f (,%d n r,k);)A、1 2 3B、1,2,3C、3 2 1D、3,2,1【答案】c1 7、当定义一个结构体变量时,系统分配给它的内存是A、各成员所需内存量的总和B、结构中第一个成员所需内存量C、结构中最后一个成员所需内存量D、成员中占内存量最大者所需的容量【答案】A1 8、阅读下面的程序#i n c l u d e v o i d m a i n()(i n t i,j,m,n;i=8;j=1 0;m=+i;n=j+;p r i n t f(%
11、d,%d,%d,%d,i,j,m,n);程序的运行结果是.A、8,1 0,8,1 0B、9,1 1,8,1 0C、9,1 1,9,1 0D、9,1 0,9,1 1【答案】C1 9、有语句 c h a r s t r l 1 0 ,s t r 2 1 0 =Pc h i n an;则能将字符串c h i n a 赋给数组s t r l 的 正 确 语 句 是。A、s t r l=nc h i n aw);B、s t r c p y(s t r l,s t r 2);C、s t r l=s t r 2;D、s t r c p y(s t r 2,s t r l);【答案】B2 0、下列选项中属于c
12、语 言 构 造 类 型 的 是。A、指针类型B、空类型C、枚举类型D、数组类型【答案】D【解析】构造类型数据是由基本类型数据按一定规则组成的。C语言中的构造类型数据只有3 种,它们是数组类型、结构体类型和共用体类型。故应该选择D o二、判断题(每小题2分,共2 0分)()1、在标准c语言中,数组的下标必须是常量,不允许是表达式。【答案】错误()2、变量被定义后,它不仅有一个确定的地址值,而且还会有一个确定的本身值。【答案】错误()3、文件指针和位置指针都是随着文件的读写操作在不断改变。【答案】错误()4、由于d o-w h i l e 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用
13、复合语句。【答案】错误()5、使用s t r c p y(字符数组,字符串)函数时,字符数组长度没有限制。【答案】错误()6、c程序是从函数开始执行的。【答案】正确()7、数组定义后,数组名的值是一个地址,可以被修改。【答案】错误()8、若函数的返回值与r e t u r n 表达式类型不一致时,以 r e t u r n 表达式类型为准。【答案】错误()9、若有说明语句c h a r *p=i t i s m i n e 则 p变量中存放的是整个字符串【答案】错误()1 0、c程序的执行是从程序文件的第一个函数开始,到最后一个函数结束。()【答案】错误三、编程题(每小题分,共 40分)1、编
14、写程序:输入一个圆半径r,当r=0时,计算并输出圆的面积和周长,否则,输出提示信息。(本 题1 0分)【答案】i n c l u d e#d e f i n e P I 3.1 4i n t m ai n(v o i d).d o u bl e r ,ar e a,g i r t h;p r i n t f (,fp l e as e i n p u t r:nn);s c an f (H%l f&r);i f (r =0)ar e a=P I*r*r;g i r t h =2*P I*r ;p r i n t f (,ft h e ar e a i s%.2f n,f,ar e a);p r
15、 i n t f(Ht h e g i r t h i s%.2f n,g i r t h);e l s ep r i n t f (HI n p u t e r r o r!n,f);r e t u r n 0;2、编写程序:从键盘上输入两个正整数x,y,求它们的最大公约数例如:如果从键盘上输入24,36,程序的输出应为:m ax i s :1 2()(本题1 4分)【答案】i t i n c l u d e#i n c l u d e S i n c l u d e m ai n ()(i n t x,y,t,i;p r i n t f(p l e as e e n t e r t w o
16、 n u m be r s:);s c an f(%d,%d,&x,&y);i f (x y)(t =x;x =y;y=t;)t =x%y;w h i l e(t )(x =y;y=t;t =x%y;)p r i n t f(m ax i s:%d,y);)3、有以下学生信息,使用结构体数组存储这些信息s t r u c t s t u d e n t i n t n u m;学号i n t c o m p u t e r;计算机成绩s L5=1 01,75,1 03,80,1 04,85,1 06,90);再输入一条新记录,插入到结构体数组中,让 5 条记录按计算机成绩升序有序。【输入形式】
17、2 个数据都使用空格分隔【输出形式】分五行输出数据,每行数据均使用空格分隔【输入样例】1 02 88【输出样例】每行数据均使用一个空格分隔,分五行输出1 01 751 03 801 04 851 02 881 06 90(本题1 6分)【答案】#i n c l u d e#i n c l u d e s t r u c t s t u d e n t(i n t n u m;学号i n t c o m p u t e r;计算机成绩s 5=1 01,75,1 03,80,1 04,85,1 06,90,t am p;i n t m ai n ()|i n t i,j;s c an f(%d%d
18、,&s 4.n u m,&s L4L c o m p u t e r);f o r(i =1;i 5;i+).f o r(j =0;j s j+1 .c o m p u t e r)(t am p =s j ;s j =s j+l ;s j+l =t am p;)f o r(j =0;j 题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共4 0分)1、在 C语言中,要求参加运算的数必须时整数的运算符是_ _ _ _ _ _ _ _ OA、/B、*C、%D、=【答案】C
19、2、下面四个选项中,均是不合法的用户标识符的选项是 oA、A P _ 0 d oB、f l o at l aO _ AC、b-a g o t o i n tD、_ 1 23 t e m p i n t【答案】C3、设 a 为 i n t 型变量,执行下列赋值语句后,a 的取值分别为()a=1 25.534;a=20.0/3;a=20%3;a=(i n t)1 25%521%4;a=5 7)pr int f(,%d n,n);A、1098B、987C、10987D、9876【答案】B6、若定义语句:int b =1,2,3,4,5 ,*p=b ;则表达式*p+的值是_ _ _ _ _ _ _oA
20、、1B、2C、b 0 的地址D、b l 的地址【答案】A7、若有定义cha r w;int x;floa t y;doub le z;则表达式w*x+z-y值的数据类型为。A、floa tB、cha rC、intD、doub le【答案】D8、有以下程序#includema in()(cha r p =a,b,c),q 10=,a,b,c);pr int f(%d%d n,s t r len(p),s t r len(q);以 下 叙 述 中 正 确 的 是。A、在给p 和 q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B、由于p 数组中没有字符串结束符,长度不能确定,但 q
21、 数组中字符串长度为3C、由于q 数组中没有字符串结束符,长度不能确定,但 p 数组中字符串长度为3D、由于p 和 q 数组中都没有字符串结束符,故长度都不能确定【答案】A【解析】在给p 和q 数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p 和 q 都有3 个字符,所以长度均为3。9、若 c h 为 cha r 型变量,k 为 int 型变量(已知字符a的 a s cii十进制代码为9 7),则以下程 序 段 的 执 行 结 果 是。ch=a;k=12;pr int f(%x,%o,ch,ch,k);pr int f(k=%d n,k);A、因变量类型与格式描述符的类型不匹配
22、,输出无定值B、输出项与格式描述符个数不符,输出为零值或不定值C、6 1,14 1,k=%dD、6 1,14 1,k=%12【答案】C10、下面描述正确的是 OA、两个字符串包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串S T O P与S T O P相等D、字符串T ha t 小于字符串T he【答案】D1 k 设 int a 10 ,*p=a;数组元素a 4 的正确引用是A,*(p+4)B、p+4C,*p+4D、a+4【答案】A12、关于函数参数,说 法 正 确 的 是 A,实参与其对应的形参各自占用独立的内存单元B、实参与其对应的形参共同占用一个
23、内存单元C、只有当形参与实参同名时才占用同一个内存单元I)、形参是虚拟的,不占用内存单元【答案】A13、将空格符赋给字符变量c,正 确 的 赋 值 语 句 是。A、c=r 0rB、c=N U L LC、c=0D、c=32【答案】D14、有以下程序#include include int fun(int n)int *p;p=(int*)ma lloc(s iz eof(int);*p=n;r et ur n*p;ma in()(int a;a=fun(10);pr int f(%d n,a+fun(10);)程序的运行结果是 oA、0B、10C、20D、出错【答案】c15、有以下程序:fun(
24、int a ,int m,int n)int i;for (i=m;i n;i+)a i+l=a i+3;r et ur n a i+l;)void ma in()(int i,a 6 =2,4,6,8,10,12;fun(a,2,5);for (i=0;i 6;i+)pr int f(w%dw,a i);)程 序 运 行 后 输 出 的 结 果 是.A、24 6 9 1315B、24 6 9 1215C、24 9 1215 18I)、24 9 1214 15【答案】B16、下列4个关于c语言的结论中错误的是A、可以用d o whi le语句实现的循环一定可以用whi le语句实现B、可以用f
25、 or语句实现的循环一定可以用whi le语句实现C、可以用whi le 语句实现的循环一定可以用f or语句实现D、d o-whi le 语句与whi le 语句的区别仅是关键字“whi le”出现的位置不同【答案】D1 7、以下关于逻辑运算符两侧运算对象的叙述中正确的是 oA、只能是整数0或 1B、只能是整数0或非0整数C、可以是结构体类型的数据D、可以是任意合法的表达式【答案】D【解析】本题考查的是逻辑运算符。C语言中,逻辑运算符的两个运算分量可以是任意合法的表达式。故本题应该选择D)。1 8、有以下程序#i nc lud e voi d f un(c ha r*a,c ha r*b)(
26、whi le(*a=,*)a+;whi le(*b=*a)(b+;a+;ma i n()(c ha r*s=,*a*b*t 8 0 ;f un(s,t);puts(t);程序的运行结果是 oA、*a*bB、a*bC、a*b*D、a b【答案】c1 9、设有数据定义语句 i nt a 20 0 ;,下列数组元素引用中下标不越界的是A、a -lB、a 20 1 C、a 0 D,a 20 0【答案】C20、定义f i le *fp;则文件指针f p 指向的是。A、文件在磁盘上的读写位置B、文件在缓冲区上的读写位置C、整个磁盘文件D、文件类型结构体【答案】B二、判断题(每 小 题2分,共20分)()1
27、、表达式!(x 0 y 0 )等价于!(x 0)&!(y 0).()【答案】正确()2、逻辑运算符&!的运算顺序是!优 先 于&优 先 于|()【答案】正确()3、指向数组元素的指针只可指向数组的首元素【答案】错误()4、以下程序段中,当 i 大于1 0 或者s 大于20 时,循环结束。【答案】正确()5、字符常量与字符串是两种不同的常量。【答案】正确()6、ma i n函数是c语言的主函数。【答案】正确()7、对以下定义的二维数组ta b le,其行下标的取值范围是 0,2,列下标的取值范围是 0,1 ,数组元素分别是:ta b le 0 0 、ta b le 0 1 ta b le l 0
28、 ,ta b le 1 1 ,ta b le 2 0 和 ta b le 2 1 ,可以表示一个 3 行 2 列的矩阵。i nt ta b le 3 2;【答案】正确()8、函数定义在先、调用在后时,vc+允许省略函数声明。【答案】正确()9、数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。【答案】正确()1 0、要使用标准输入、输出函数,正常情况下应该在文件的开头加上以下内容:tti nc lud e 或#i nc lud e std i o.h o【答案】正确三、编 程 题(每 小 题 分,共40分)1、编写程序:输 出 1 0 0 2 0 0 之间既不能被3 整除也不能被
29、7整除的整数并统计这些整数的个数,要求每行输出8个数。(本 题 1 0 分)【答案】#i nc lud e#i nc lud e tti nc lud e#i nc lud e voi d ma i n()(i nt i;/*f oti nd*/i nt n=0;f or(i=1 0 0;i =20 0;i+)/*f ound*/i f(i%3!=0&i%7!=0)i f(n%8=0)pri ntf(n);pri ntf(%6 d ,i);n+;)pri ntf(nN umb e rs a re:%d n,n);)2、编写程序:有 1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数
30、?都是多少?(本题14分)【答案】#inc lu d e int ma in()(int i,j.k;print f(n);f or(i=l;i5;i+)/以下为三重循环f or(j=l;j5;j+)f or(k=l;k5;k+)/确保i、j、k 三位互不相同if (i!=k&i!=j&j!=k)print f (%d,%d,%d n,i,j,k);)【解析】有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?3、编写程序:创建一个长度为n 的链表,然后反向输出该链表。(本题16分)【答案】#inc lu d e#inc lu d e#inc lu d e t yp
31、e d e f s t ru c t L Nod e int d a t a;s t ru c t L Nod e *ne x t;L Nod e,*L inkL is t;L inkL is t C re a t e L is t(int n);v oid print(L inkL is t h);int ma in()IL inkL is t He a d=NU L L;int n;s c a nf (,f%dM,&n);He a d=C re a t e L is t(n);print f(刚刚建立的各个链表元素的值为:n”);print(He a d);print f (M n n,r
32、);s ys t e m(Hpa u s en);re t u rn 0;)L inkL is t C re a t e L is t (int n)(L inkL is t L,p,q;int i;L=(L Nod e*)ma lloc(s ize of(L Nod e);if(!L)re t u rn 0;L-ne x t =N U L L;q=L;f or(i=l;id a t a);p-ne x t=NU L L;q-ne x t=p;q 二P;re t u rn L;)v oid print (L inkL is t h)LinkList p=h-next;while(p!=NULL
33、)printf(H%d M,p-data);p=p-next;)长春工程学院C语言程序设计专升本测试卷(三)总分:100分 考试时间:90分钟注意事项:题目包括三大部分,单项选择题,判断题,编程题,请按要求在规定时间内作答。考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。一、单项选择题(每小题2分,共4 0分)1、在 C语言中,要求运算数必须是整型的运算符是。A、B、+C、!=D、%【答案】D2、以下不能正确计算代数式值的c语言表达式是 oA、l/3*s in(l/2)*s in(l/2)B、s in(0.5)*s in(0.5)/3C、pow(s in(0.5),
34、2)/3D、1/3.0*pow(s in(1.0/2),2)【答案】A3、若有定义语句int b=2;则表达式(b 3?2:1【答案】c8、对于代码c ha r c l 8;s c a nf(%s,c l);print f (,n%sM,c l);在程序运行时,输入了t his pre t t y b oy”,则 对 应 的 运 行 输 出 显 示 结 果 是。A、t his preB、t hisC、t his pre t t y b oyD、数组越界,不能显示【答案】B9、c程序中的宏展开是在。A、编译时进行的B、程序执行时进行的C、编译前预处理时进行的D、编辑时进行的【答案】C1 0,下列
35、关于boo 1 ean类型的叙述中,正确的是。A、可以将boolean类型的数值转换为i n t 类型的数值B、可以将boolean类型的数值转换为字符串C、可以将boolean类型的数值转换为ch ar类型的数值D、不能将boolean类型的数值转换为其他基本数据类型【答案】D1 1,以下 关 于 数 组 的 描 述 正 确 的 是。A、数组的大小是固定的,但可以有不同的类型的数组元素。B、数组的大小是可变的,但所有数组元素的类型必须相同。C、数组的大小是固定的,但所有数组元素的类型必须相同。D、数组的大小是可变的,但可以有不同的类型的数组元素。【答案】C12、以下描述错误的是 oA、实参数
36、可以与形参个数不一致。B、C 程序中,函数可以直接或间接地调用自己。C、函数调用时,函数名必须与所调用的函数名字完全一致D、函数声明语句中的类型必须与函数返回值得类型一致。【答案】A13、以下关于c 语 言 的 叙 述 中 正 确 的 是。A、C语言中的注释不可以夹在变量名或关键字的中间B、C语言中的变量可以再使用之前的任何位置进行定义C、在 C语言算术的书写中,运算符两侧的运算数类型必须一致D、C语言的数值常量中夹带空格不影响常量值的正确表示【答案】B1 4、以下叙述正确的是A、函数可以嵌套定义但不能嵌套调用B、函数既可以嵌套调用也可以嵌套定义C、函数既不可以嵌套定义也不可以嵌套调用I)、函
37、数可以嵌套调用但不可以嵌套定义【答案】D【解析】考查函数的定义及其调用。解题要点 在C语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。错解分析 函数不能嵌套定义,但可以嵌套调用,故选项A)、B)和C)中的描述都错误。1 5、以下程序的输出结果是 o#d e f i n e N 1 0v o i d f u n(i n t a ,i n t n,i n t m)(i n t i;f o r (i=m;i =n;i)A i+l =a i ;m a i n()(i n t i,a N =l,2,3,4
38、,5,6,7 ;f u n(a,2,6);f o r (i=0;i 4;i+)p r i n t f (%d ,a i );A、1 2 2 3B、1 2 3 3C、1 2 4 4D、1 2 3 4【答案】B1 6、下面程序段执行后输出的结果是#i n c l u d e m a i n()(i n t i;f o r(i=l;i 8;i+)i f(i%3)(p r i n t f(”*);c o n t i n u e;)p r i n t f (,r#n);p r i n t f(n );A、*#*#*#B、*#*#*C、*#*#*D、*#*【答案】B【解析】#i n c l u d e m
39、 a i n()i n t i;f o r(i=l;i 8;i+)/*循环条件为 i V 8,步进值为 1*/i f(i%3)p r i n t f (*);c o n t i n u e;/*如果能被3 整除打印输出并跳过后面的语句直接执行下次徨*/p r i n t f。#);/*如果不能被3 整除打印输出年*/p r i n t f (H n,f);1 7、以下对枚举类型名的定义中正确的是 oA、e n u m a=o n eB、e n u m a o n e=9C、e n u m a二“o n e”D、e n u m a o n e”t w o ,t h r e e ;t w o=-l
40、 ,t h r e e)t w o ,t h r e e”t w o ,t h r e e,r【答案】B1 8、有以下程序段i n t m=0,n=0;c h a r c=r ar;s c a n f(H%d%c%d ,&m,&c,&n);p r i n t f (,%d,%c,%d nM,m,c,n);若从键盘上输入:2 0 b 2 0/,则输出结果是A、20,B,20B、20,b,20C、20,b,0D、20,B,0【答案】A19、以 下 能 正 确 定 义 一 维 数 组 的 选 项 是。A、i n t a 5 =0.1,2.3.4,5);B、c h a r a =0,1,2,3,4,5
41、);C、c h a r a=A ,B,C);D、i n t a 5 =”0123”;【答案】B20、下面说法正确的是 oA、文件指针变量的值是文件当前正在处理的字节地址B,文件指针变量的值是文件中包含的字符个数C、文件指针的类型是一种指针类型D、文件指针的类型是结构体类型【答案】C【解析】文件指针变量的值是文件所在的地址,选 项A B错误;文件指针也是一种指针,属于指针类型不是结构体类型,选 项C正确,D错误;本题答案为C二、判 断 题(每 小 题2分,共20分)()1、在 c语言中,当一个逻辑表达式的值为假时,该表达式的值一定是0()【答案】正确()2、f o r 语句的一般形式如下,若表达
42、式2 的值为真,则先执行循环体语句,再计算表达式3,然后继续循环。【答案】正确()3、c程序中如果对一维数组的全部元素都赋初值,则定义数组时不必指定数组长度。【答案】正确()4、b r e a k 语句可以用来跳出整个循环语句【答案】正确()5、c h a r s=C L a n g u a g e ;表示s 是一个指向字符串的指针变量,把字符串的首地址赋予s【答案】正确()6、在一个c语言源程序中,m a i n 函数的位置可以不位于最开始。【答案】正确()7、若有定义一维数组i n t a 4 的首地址为0078 h,则 a l 元素的首地址是0079 h(设i n t 型数据占两个字节)
43、。【答案】错误()8、输入操作称为写操作,将输入流中的信息存到内存时,使用写函数。【答案】错误()9、p u t c h a r 函数可以向终端输出一个字符串【答案】错误()1 0、在 c程序中,若链接过程没有发现任何错误则表示链接成功,会生成一个.o b j 文件。【答案】错误三、编 程 题(每 小 题 分,共40分)1、编写程序:在第一个循环中给a数组的前10个数组元素依次赋1.2.3.4.5.6.7.8.9.10;在第二个循环中使a数组前10个元素中的值按逆序存放,变成10.9.8.7.6.5.4.3.2.1;在最后一个循环中输出逆序存放以后的a数 组 前 10个 元 素(本 题 10分
44、)【答案】S i n c l u de m a i n()i n t i,a 10,t;f o r(i=0;i 1 0;i+)a i =i+l;f o r (i=0;i5;i+)(t=a i ;a i =a i =a 9-i ;_ _ _ _ _ _ _=t;)f o r(i=0;i 1 0;i+)p r i n t f (%5 d,a i );p r i n t f (n);)2、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针m a x传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请勿改动m a i n。函数和其他函数中的任何内容,仅在函数p r o
45、 c。的花括号中填人所编写的若干语句。试题程序:c h a r*p r o c(c h a r(*a)8 1,i n t n u m)v o i d m a i n()(c h a r s s 10 8 1,*m a x;i n t n,i=0;p r i n t f(输入若干个字符串:);g e t s (s s i );p u t s (s s i );w h i l e(!s t r c m p(s s L i ,*)=0)(i+;g e t s(s s e i );p u t s(s s i );)n=i;m a x=p r o e(s s,n);p r i n t f(n m a x
46、=%s n,m a x);)(本 题1 4分)【答案】c h a r*p r o c (c h a r (*a)L 8 1,i n t m)c h a r*m a x;i n t i=0:m a x=a O :f o r (i=0;im;i+)i f (s t r l e n(m a x)s t r l e n(a i )找出最长的字符串m a x=a i ;r e t u r n m a x;返回最长字符串的地址)3、题目描述有1 0个学生,每个学生的数据包括学号、姓名、3门课程的成绩。读入这10个学生的数据,要求输出3门课程的总平均成绩,以及个人平均分最高的学生的 数 据(包括学号、姓名、
47、3门课程成绩、平均分数)。输入共 有10行,每行包含了一个学生的 学 号(整数)、名 字(长度不超过1 9的无空格字符串)和3门课程的成绩(0至1 00之间的整数),用空格隔开。输出第一行包含了 3个实数,分别表示3门课程的总平均成绩,保 留2位小数,每个数之后输出一个空格。第二行输出个人平均分最高的学生的数据,与输入数据格式相同。如果有多位个人平均分最高的学生,输出按照输入顺序第一个最高分的学生数据。请注意行尾输出换行。样例输入样例输出8 5.60 8 7.9 0 9 0.40105 EEE 9 2 9 3 9 4(本题 16 分)【答案】#i n c l u d e#i n c l u d
48、 e s t r u c t p e o p l e i n t n u m,a,b,c;c h a r n a m e 10;);i n t i n p u t(s t r u c t p e o p l e s t u )f o r(i n t i=0;i 10;i+)s c a n f (,f%d%s%d%d%dH,&s t u i .n u m,s t u i .n a m e,&s t u i .a,&s t u i .b,&st u i .c);)i n t p r i n t(s t r u c t p e o p l e s t u )d o u b 1e x=0,y=0,z=
49、0;f o r(i n t i=0;i 10;i+)x=x+s t u i .a*l.0;y=y+s t u i .b*l.0;z=z+s t u i .c*l.0;)f o r(i n t i=0;i=(s t u i+l .a+s t u i+l .b+s t u i+l .c)s t u i+l .n u m=s t u i .n u m;s t r c p y(s t u i+l .n a m e,s t u i .n a m e);s t u L i+1.a=s t u i .a;s t u i+l .b=s t u i .b;s t u i+l .c=s t u i .c;)p r
50、 i n t f C1%.2f%.2f%.2f n x/10.0,y/10.0,z/10.0);p r i n t f(H%d%s%d%d%d nn,s t u 9 .n u m,s t u 9 .n a m e,s t u 9 .a,s t u 9 .b,s tu 9 .c);i n t m a i n()s t r u c t p e o p l e s t u 10;i n p u t(s t u);p r i n t(s t u);r e t u r n 0;)长春工程学院C语言程序设计专升本测试卷(四)总分:100分 考试时间:90分钟注意事项:题目包括三大部分,单项选择题,判断题,