2018年江西师范大学程序设计(C语言)考研真题.doc
2018年江西师范大学程序设计(C语言)考研真题一、单项选择题(每小题2分,共30分)1、组成C程序的若干函数在源程序文件中的位置顺序为:()A.第一个函数必须是主函数,其他函数任意B.可以在任意位置C.必须完全按照执行的顺序排列D.其他函数可以任意,主函数必须在最后2、以下选项中不合法的常量是()A.123L B.0×35 C.018 D.6e-23、判断字符串s1与字符串s2相等,应当使用()。A.if(sl=s2) B.if(strcmp(sl,s2)C.if(lstrcmp(sl,s2) D.if(strcmp(sl,s2)=0)4、二维数组a有m行n列,则在aij之前的元素个数为()。A.j*n+i B.i*n+j C.i*n+j-1 D.*n+j+15、若有定义int (*p)4,则标识符p是一个()。A.指向整型变量的指针变量B.指向函数的指针变量C.指向有四个整型元素的一维数组的指针变量D.指针数组名,有四个元素,每个元素均为一个指向整型变量的指针6、下列对变量进行初始化有可能导致将来出现问题的是:( )。A.char str7="FORTRAN" B.char str="FORTRAN"C.char*str="FORTRAN" D.charst=F,'O,R,T,R,A,N,0;7、C语言中允许的基本数据类型包括:( )A.整型、实型、逻辑型, B.整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型8、下列能正确表示a10或a-10的关系表达式是:( )A.a>=10or a<=-10 B.a<=10z>=-10C.a>=10|a<=-10 D.a>=10&&a<=-109、若有定义和语句:chars;s="nanchang" printf("%n",s);则结果是:( )A.输出97 B.输出aC.输出adcb D.编译不能通过10、若变量要给int型变量a,b,c输入数据,正确的输入语句是:()11、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w>x)?w:x;m=(m>y)?m:y;m=(m>z)?m:z;则该程序运行后,m的值是:()A.4 B.3 C.2 D.112、假设int型变量占两个字节的存储单元,若有定义:int x5=1,2,3;则数组x在内存中所占字节数为( )。A. 3 B.6 C.10 D.2013、下列合法的数组定义是( )A.inta="string" B.int a5=0,1,2,3,4,5;C. char a="string" D.char a=0,1,2,3,4,5;14、在C语言中,下列错误的说法是( )。A.函数可以递归调用B.不允许在函数中再定义函数C.递归程序不可能用非递归算法实现D.对于continue语句,可以通过改变程序的结构而不使用它15、下列属于文件包含的命令是( )。A.#define N 25 B.#endifC.#include "stdio.h" D.#else二、填空题(每空2分,共20分)1、高级语言编写的程序必须转化成机器语言才能在计算机上运行,这个转化过程称为_。2、与二进制数(1100001)2等价的八进制为_。3、C程序编译后最终产生(即计算机执行)的文件的扩展名为_。4、若有以下定义和语句:int a=5,bb=a+;则b的值为_。5、C程序中调用函数时,实参与对应形参之间的数据传递方式是6、从键盘上获得一个字符数据的函数是_。7、编译预处理命令以_结尾。8、已定义以下函数fun(int *pr) return *pr;该函数的返回值是:_ 。9、当定义一个结构体变量时系统分配给它的内存是: _。10、若执行fopen函数时发生错误,则函数的返回值是_。三、 程序分析题(本大题共4小题,每小题6分,共24分)1、#include <stdio.h>main()int a=5,b=4,x,y;x=2*a+;printf("a=?x=?n",a,x);y=-b*2;printf("b=?y=?n",b,y);程序运行结果是:2、#include <stdio.h>main()int x,y;scanf("-?s-",&x,&y);printf("?,y-x);程序运行时输入:123456789<程序运行结果是:3、#include <stdio.h>main()char a="Hello"char *p=NULL;for(p=a;p<a+5;p+)printf("|n", p);程序运行结果是:4、#include <stdio.h>int fun(int x, int y)return x>y?x:y;main()int a=2,b=5,c=8;printf("?n", fun(fun(a+c,b),a-c);程序运行结果是:四、程序填空题(本大题共4小题,每小题6分,共24分)1、 下面程序的功能是输入三个整数,按由小到大的顺序输出这三个数:#include <stdio.h>void swap_/*交换两个数*int temp;temp=*pa;*pa=*pb;*pb=temp;void main()2、 下面程序的功能是删除字符串S中的空格#include <stdio.h>main()char s="Jiangxi Normal University"int i,j;for(i=j=0;si!=10;i+)if(si!=!' ;else ;printf("2,s);3、 下面程序的功能是计算1-3+5-7+-99+101的值:main()int i,t=1,s=0;for(i=1;i<=101;i+=2)s=s+t;4、 下面程序的功能是打印一个数列的第30项的值。该数列的第1,2项均为1,其他各项值均为其前两项之和。即1,1,2,3,5,8,13#include<stdio.h>void main()printf("?ln",f(30);long f(int n)if ) return1;else returnf(n-1)+f(n-2);五、 程序设计题(本大题共4小题,第13小题每小题12分,第4小题16分,共52分)1、编程打印出如下图案,要求一条输出输出语句只能打印一个字符。ABBCCCDDDDEEEEE2、编程计算1!+2!+3!+10!的值。3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。4、写一个函数,功能为求一个字符串的长度,在main函数中输入字符串,调用该函数并输出其长度。