1、黑龙江省职高对口升学C语言编程基础模拟试卷题号一二三四五总分得分一、单项选择题:共20小题,每小题2分,共40分。1、在C语言程序中,main()函数的位置( )。A、必须作为第一个函数B、必须放在用户自定义函数之后C、可以任意D、必须作为最后一个函数2、C语言提供的合法关键字是( )。A、AUTOB、shortC、uzsignedD、comnt3、在C语言中,下列( )为合法的字符常量。A、084B、/x45C、”ab”D、”?”4、在C语言中,以下四种运算符中,优先级最高的是( )。A、=B、&C、+=D、!=5、在C语言中,表达式18/4*sqrt(4.0)值的数据类型是()。A、int
2、 B、floatC、longD、double6、在C语言中,表达式sizeof(long)的值为( )。A、1B、2C、4D、87、在C语言中,若以定义x和y是double型变量,且x=1,则表达式y=x+3/2的值是( )。A、1B、1.5C、2.0D、2.58、在C语言中,设x为整型变量,且x=8,则表达式x+=2+x%3的值为( )。A、11B、12C、6D、49、在C语言中,设a、b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是( )。A、n&bB、a=bC、a|b+c&b-cD、!(ab&!c|8%3)10、在C语言中,设a、b为int型变量,且b=
3、5,则执行以下语句后,变量a的值为( )。a=2+(b+b+,b+8,+b);A、13B、14C、8D、911、在C语言中,如果a=1,b=2,c=3,d=4,则条件表达式ab?a:c0) y=1;else y=0;A、y= B、y=C、y=D、y=15、以下C语言程序的输出结果是( )。main()int x=12,y=10,z=0;if(xy) if(y0) z=0; else z+=2;printf(“%d”,z); A、2B、1C、3D、016、以下C语言程序的输出结果是( )。main()int c,d;for(c=1,d=1;c=20) break; if(d%3=1) d+=3;
4、countinue; d=-5; printf(“%d”,c);A、6B、8C、10D、1217、有以下C语言程序段:main()int i=0,j=0;while(i+5) j=0; do printf(“*”);while(+j4); 则执行上面的程序后,输出的“*”的个数是( )。A、15B、12C、20D、2518、在C语言中定义如下数组:int b43=1,3,2,4,5,6,0;则数组元素b22的值为( )。A、6B、5C、0D、219、在C语言中,对下列数组初始化中不正确的是( )。A、char a=”ABCDE”;B、char a5=65,66;C、char a5=A,B,C;
5、D、char a5=”ABCDEF”;20、在C语言中,有如下变量的定义,则( )不是对a数组元素的正确引用,其中0=i=2&15%4+2的值为。24、在C语言中,单精度型(float)变量的有效数字为。25、在C语言中,设整型变量a的初值为5,则表达式a+=a-=a*a的值为。26、数学式sin30。写成C语言表达式是。27、在C语言中,允许函数直接或间接地调用自己,这种调用方式称为函数的 。28、在C语言中,若已定义如下的数组:float a10=12,17.5,22.0;则数组a中的各元素占用的存储空间总共为个字节。29、在C语言中,已经定义了一个文件指针变量fp,并指向某一打开的文件,
6、则关闭该文件的语句是 。30、根据程序功能,将C语言程序补充完整:程序功能为:输入任意一个不超过4位的正整数,逆序输出该整数。如输入2374,输出4732;输入270,输出72。main()int n,s=;scanf(“%d”,&n);while(n)s=+n%10;n=;printf(“%d”,s);31、根据程序功能,将C语言程序补充完整。下面程序功能是:输入一组学生的姓名和成绩,根据成绩排出名次,并按下面所示的格式输出数据。排了名次的成绩单如下:名次姓名成绩 1 张小兵 98 2 赵勇 96 3 刘红 95main()char name4010,str10;int score40,nu
7、m,i,j,t;clrscr();printf(“输入学生人数”);scanf(“%d”,&num);for(i=0;inum;i+)printf(“输入第%d位学生的姓名和成绩:”,i+1);scanf(“”,namei,&scorei);for(i=0;i+)for(j=;jscorei)t=scorei; ; strcpy(str,namei);printf(“ 排了名次的成绩单如下:n”);printf(“%8s%12s%8sn”,”名次”,”姓名”,”成绩”);for(i=0;inum;i+)printf(“%8s%12s%8dn”,i+1,;scorei);三、判断题(本大题共10
8、小题,每小题2分,共20分)请在正确的叙述后打“”,错误的叙述后打“”。()32、在C语言中,所有的标识符都必须采用小写。()33、在C语言中,函数是由变量说明部分和可执行部分两部分构成,当函数体被省略时,该函数被称为空函数。()34、C语言程序总是从第一个定义的函数开始执行。()35、在C语言中,在头文件stdio.h中定义了结构体类型FILE,用它可以定义文件指针,如:FILE *fp;()36、编写程序时应尽量少写注释,以提高编程效率。()37、在C语言中,当数组名作为实参时,则传递给形参的是该数组的首地址。 ()38、在C语言中,函数调用时实参与形参的个数应尽量相同,类型应一致。 ()
9、39、在C语言中,while语句和do-while语句的循环体都可能一次也不执行。 ( )40、在C语言中,getchar()函数是标准I/O库中的函数,在使用它时必须程序前加上预编译命令#include。 ()41、在C语言中,自增运算符+只能用于变量,而不能用于常量或表达式,其结合方向是自左至右的。 四、阅读以下C语言程序,写出程序运行结果(本大题共10小题,每小题6分,共60分)42、以下C语言程序后输出的结果是 。main()int i=0,j;for(j=0;j4;j+)switch(j)case 1:i+=1;case 2:i+=2;case 3:i+=3;printf(“%d”,
10、i);43、以下C语言程序的输出结果是 。 main()int n=1;while(n=0);printf(“a=%d,b=%d”,a,b);46、以下C语言程序的输出结果是 。main()int m=36,n=48,r;if(mb) c=1;else if(a=b) c=0;else c=-1;return(c);48、以下C语言程序的输出结果是 。main()int a=30,b=20,n1,n2;funcl(a,b,&n1,&n2);printf(“%d,%d”,n1,n2);funcl(int x,int y,int *m,int *n)*m=x+y;*n=x-y;49、以下C语言程序
11、的输出结果是 。int x,y;func()int a=25,b=10,x,y;x=a+b;y=a-b;main()int a=9,b=5;x=a+b;y=a-b;func();printf(“%d,%d”,x,y);50、以下C语言程序的输出结果是 。main()int i,j,r,c,m;static int a33=100,200,250,27.73,-30,-760,2,5;m=a00;for(i=0;i3;i+)for(j=0;j3;j+)if(aii0;i-)printf(“%d”,ei-1);sub(int a)int c;c=a%2;return c;五、程序设计题(请用C语言
12、按要求编写程序,52题、53题各13分,54题14分,共40分)52、显示斐波那契数列1,1,2,3,5,8,13前20项,要求每一行显示5项。(该数列规律为:第1,2项为1,从第3项开始每项为前两项之和)。53、输入10个实数,并用数组保存,要求按输入顺序输出这些数,并求所有数的平均值。54、用递归的方法编写函数fun()求n!。(n!=1*2*3*n)。要求:输入整数n和输出结果由主函数完成。参考答案一、单项选择题(每题2分,共40分)1、C2、B3、D4、A5、D6、C7、C8、B9、D10、D11、A12、B13、C14、C15、A16、B17、C18、A19、D20、D二、填空题(共
13、11小题,每空2分,共40分)21、 22、#define pi 3.1415923、124、725、-4026、sin(30*3.1416/180)*(a+b)/(a-b)注:的值可由评券人大体掌握。27、递归调用28、4029、fclose(fp);30、0s*10n/1031、%s%dinum-1i+1scorei=scorejscorej=tstrcpy(namei,namej)strcpy(namej,str)namei三、判断题(共10小题,每题2分,共20分)32、错33、错34、错35、对36、错37、对38、对39、错40、对41、错四、写出程序运行结果(共10小题,每题6分
14、,共60分)42、1443、9 2144、1 -245、a=10,b=-646、1247、-148、50,1049、14,450、-760,2,051、1010五、程序设计题(52、53题各13分,54题14分,共40分)52、#include.(1分)main()int a=1,b=1,c,i,n=2;(2分注:变量名可任意)printf(“%5d%5d”,a,b);.(2分注:%5d指定宽度的值可任意)for(i=3;i=20;i+).(1分) c=a+b;a=b;b=c;(3分) printf(“%5d”,c);(1分) n+;if(n%5=0)printf(“n”);.(3分) 53、
15、#include(1分) main()float a10,sum=0; (2分注:变量名、数组名可任意)int i;.(1分)for(i=0;i10;i+).(1分) scanf(“%f”,&ai);. (2分) sum=sum+ai;.(2分)for(i=0;i10;i+). (2分) printf(“%f”,ai);.(1分)printf(“average=%f”,sum/10); (1分)注:或printf(“%f”,sum/10.0)54、#include long fun(int n) long y; if(n1). (4分)注:加下划线的4句共4分,也可用语句:y=n*fun(n-1); else if(n=1)y=1;y=1; else y=n*fun(n-1);return y;. (1分) main()int n;. (1分)long p;. (1分)注:若main()写在程序开头部分,必须有语句:lpng fun();声明自定义函数的类型。scanf(“%d”,&n);(1分)p=fun(n);. (1分)printf(“%ld”,p);. (2分) 注:评卷人可依据参考答案酌情掌握如果只定义了一个变量,主函数也可按以下方法编写。main() int n;. (1分) scanf(“%d”,&n);. (1分) printf(“%ld”,fun(n);(4分)