东华理工大学2018年硕士生入学考试初试试题,c语言怎么编程输出带边框

边框 2
注意:答案请做在答题纸上,做在试卷上无效 东华理工大学2018年硕士生入学考试初试试题科目代码:814;科目名称:《C语言程序设计》;(正卷)适用专业(领域)名称:电路与系统、控制工程
一、选择题:(共30小题,1-20每小题1分,21-30每小题2分,共40分)
1.C语言提供的合法关键字是( ) A.switch B.cher C.default D.case
2.在C语言中,合法的字符常量是( )
A.′\084′
B.′ab′
C.′\x43′
D.′\0′
3.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( ) A.2.0 B.2 C.1 D.2.5
4.合法的数组定义是( ) A.inta[]=〃string〃;B.chara[]={0,1,2,3,4,5}; C.chara=〃string〃;D.inta[5]={0,1,2,3,4,5};
5.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是( ) A.a>10&&a<15 B.a==11||a==12||a==13||a==14 C.10<a<15
D.!
(a<=10)&&!
(a>=15)
6.若t为double类型,表达式t=1,t+5,t++的值是( ) A.2.0 B.6.0 C.1 D.1.0
7.若有定义和语句:chars[10];s=〃abcd〃;printf(〃%s\n〃,s);则结果是(以下μ 代表空格)( )
A.编译不通过
B.输出a
C.输出abcdμμμμμ
D.输出abcd
8.若有定义和语句:int**pp,*p,a=10,b=20; pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);则输出结果是( ) A.10,10 B.20,20 C.20,10 D.10,20
9.若有以下定义和语句:intu=010,v=0x10,w=10; printf(〃%d,%d,%d\n〃,u,v,w);则输出结果是( ) A.8,8,10B.10,10,10C.8,16,10D.8,10,10 10.若有以下定义和语句:charc1=′b′,c2=′e′; printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);则输出结果是( ) A.2,MB.2,EC.3,ED.输出项与对应的格式控制不一致,输出结果不确定 11.若有定义:inta[3][4];,()不能表示数组元素a[1][1]。

A.*(a[1]+1)
B.*(a+5)
C.(*(a+1))[1]
D.*(&a[1][1]) 12.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是( ) for(i=5;i>0;i--) for(j=0;j<4;j++){…} 第1页,共6页 注意:答案请做在答题纸上,做在试卷上无效 A.30 B.24 C.25 D.20 13.若有以下定义和语句: char*s1=〃12345〃,*s2=〃1234〃; printf(〃%d\n〃,strlen(strcpy(s1,s2)));则输出结果是( ) A.9 B.5 C.4D.10 14.若有以下定义和语句: inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是( )
A.*p B.a[p-a]
C.*a D.a[10] 15.下面程序的输出结果是( ) A.k=2a=3b=
2 B.k=3a=3b=
2 C.k=3a=2b=
3 D.k=2a=2b=
3 16.下面程序的输出结果是( ) main() {unsigneda=32768;printf(〃a=%d\n〃,a);} A.a=32768B.a=-32767 C.a=32768 D.a=-
1 17.执行下面语句后的输出结果为( ) inti=-1; if(i<=0)printf(〃****\n〃); elseprintf(〃%%%%\n〃)
A.有语法错误,不能正确执行
B.%%%%
C.%%%%cD.**** 18.对于条件表达式(M)?
(a++):(a--),其中的表达式M等价于( )
A.M!
=0B.M==
1 C.M==
0 D.M!
=
1 19.下述程序段的输出结果是() intx=10;int7nbspy=x++;printf(〃%d,%d〃,(x++,y),y++); A.10,10B.11,11C.11,10D.10,11 20.若有以下的定义: inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是() A.p+=
2,*++pB.p+=
2,*(p++)C.p+=
3,*p++D.p+=
2,++*p 21.假定所有变量均已正确说明,下列是程序段运行后x的值是( ) a=b=c=0;x=35; if(!
a)x--; elseif(b); if(c)x=3; elsex=4; A.34 B.3C.35 D.4 22.在以下一组运算中,优先级最高的运算符是( ) 第2页,共6页 注意:答案请做在答题纸上,做在试卷上无效
A.<=
B.=
C.&&
D.% 23.若有以下定义和语句: intw[2][3],(*pw)[3];pw=w; 则对w数组元素的非法引用是() A.pw[0][0]
B.*(pw+1)[2]
C.*(w[0]+2)
D.*(pw[1]+2) 24.若有以下程序片段:charstr[]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));上面程序片段的输出结果是( ) A.12 B.6 C.4 D.3 25.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )
A.将串
str2复制到串str1中后再将串str3连接到串str1之后
B.将串str2连接到串str1之后再将串str1复制到串str3中
C.将串str1复制到串str2中后再连接到串str3之后
D.将串str1连接到串str2之后再复制到串str3之后 26.以下对C语言函数的有关描述中,正确的是( )
A.C函数既可以嵌套定义又可以递归调用
B.函数必须有返回值,否则不能使用函数
C.C程序中有调用关系的所有函数必须放在同一个源程序文件中
D.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 27.以下叙述中不正确的是( )
A.在C中,外部变量的隐含类别是自动存储类别
B.在C中,函数形参可以说明为register变量
C.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值
D.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容 28.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字 节)() structdate {long*cat;structdate*next;doubledog;}too; printf(〃%d〃,sizeof(too)); A.12B.14C.16 D.20 29.设有定义:structsk{inta;floatb;}data,*p; 若有p=&data;,则对data中的a域的正确引用是( )
A.(*p).data.aB.p->data.aC.(*p).aD.p.data.a 30.以下对枚举类型名的定义中正确的是( ) A.enuma={〃one〃,〃two〃,〃three〃}; B.enuma{〃one〃,〃two〃,〃three〃}; C.enuma={one,two,three}; 第3页,共6页 注意:答案请做在答题纸上,做在试卷上无效 D.enuma{one=9,two=-1,three};
二、程序填空题:(每空2分,共50分)11.下列算法为奇偶交换排序,思路如下:第一趟对所有偶数的i,将a[i]和a[i+1] 进行比较,第二趟对所有奇数的i,将a[i]和a[i+1]进行比较,每次比较时若 a[i]>a[i+1],将二者交换;以后重复上述二趟过程,直至整个数组有序。
voidoesort(inta[],intn) {intflag,i,t; do{flag=0; for(i=0;i(1)) if(a[i]>a[i+1]){flag=
(2);t=a[i+1];a[i+1]=a[i];a[i]=t;} for(
(3)) if(a[i]>a[i+1]){flag=
(4);t=a[i+1];a[i+1]=a[i];a[i]=t;} }while
(5); }
2.下面是对有序表(递增)进行二分查找的递归算法(如果找到,返回起下标,否则 返回-1)。
intBSearch(ElemTypeA[],intlow,inthigh,KeyTypeK) {if(low<=high) {intmid=
(1); if(K==A[mid].key)return
(2); elseif(K>A[mid].key)return
(3); else return
(4); } else return
(5); }
3.下面程序在数组a中查找与x值相同的元素所在位置。
voidmain() {inta[11],i,x; printf(“输入10个整数:”); for(i=0;i<10;i++)
(1); printf(“输入要找的数x:”); scanf(“%d”,
(2)); a[10]=x;i=0; while(x!
=
(3))
(4); if(
(5))printf(“与x值相同的元素位置是:%d\n“,i+1); elseprintf(“找不到与x值相同的元素!
\n“); } 第4页,共6页 注意:答案请做在答题纸上,做在试卷上无效 4.i数列A={1,1,2,3,5,
8,…}有如下性质: a
(0)=a
(1)=
1 a(i)=a(i-1)+a(i-2)i>
1 另外有一个数列xn,该数列中各元素的值为:x(i)=a(i)/a(i+1)i=0,
1,…,n 要求对xn中的元素按升序进行排序,然后以分数形式输出排序后的xn。
例如n=5时,排序前的xn={1/1,1/2,2/3,3/5,5/8}, 排序后的xn={1/2,3/5,5/8,2/3,1/1}。
make函数首先生成排序前的xn,然后调用函数sort()进行排序,最后输出所求结果。
structfact{longm,n;}; voidsort(intn,structfact*p) {inta;longs,t,u,v;structfact*q,*end; for(end=p+(n-1),a=1;
(1);end--) for(a=0,q=p;
(2);q++) {s=q->m;t=q->n;u=(q+1)->m;v=(q+1)->n; if(
(3)) {q->m=u;
(4);
(5);(q+1)->n=t;a=1;} } } voidmake(intn) {inti; longa,b,c; structfact*x,*y; x=(structfact*)malloc(sizeof(structfact)*n); x->m=1; x->n=1; for(a=1,b=1,i=2;i<=n;i++) {c=
(6);a=b;b=c;(x+(i-1))->m=a;(x+(i-1))->n=b;}
(7); printf("x%d={%d/%d",n,x->m,x->n); for(y=x+1;
(8);y++)printf(",%d/%d",y->m,y->n); printf("}\n");
(9); } voidmain() {intn; (10); make(n); } 第5页,共6页 注意:答案请做在答题纸上,做在试卷上无效
三、程序设计题:(共4小题,每小题各15分,共60分)
1、打印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。
例如,三阶魔方阵为 816357492要求打印出由1~n2的自然数构成的魔方阵。
(15分)
2、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
(15分)
3、有n人围成一圈,顺序排号。
从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
(要求用指针变量)(15分)
4、定义一个结构体变量(包括年、月、日)。
计算该日在本年中是第几天,注意闰年问题。
(15分) 第6页,共6页

标签: #蓝屏 #测试 #英语 #排位 #战绩 #不上 #潜龙 #变速箱