c语言考试模拟试题 本卷共有4道大题:
一、单项选择题(20道小题,共20分) 1、以下叙述中不正确的是( c)(1分)
A、在不同的函数中可以使用相同名字的变量 B、函数中的形式参数是局部变量
C、在一个函数内定义的变量只在本函数范围内有效 D、在一个函数内的复合语句中定义的变量在本函数范围内有效 2、有以下函数定义:void fun(int n, double x) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是(b )(1分) A、fun(int y,double m); B、k=fun(10,12.5); C、fun(x,n); D、void fun(n,x);
3、给出以下定义:char x[]=\"abcdefg\";char y[]={'a','b','c','d','e','f','g'};则正确的叙述为( )(1分)
A、数组x和数组y等价 B、数组x和数组y的长度相同
C、数组x的长度大于数组y的长度 D、数组x的长度小于数组y的长度
4、设有如下定义:struct op{int i:float k;} self,*p; 若有p=&self;则对self中的i域的正确引用是( )(1分) A、(*p).self.i B、(*p).i C、p->self.i D、p.self.i
5、设有如下定义:int (*ptr)();则以下叙述中正确的是( )(1分)
A、ptr是指向一维组数的指针变量 B、ptr是指向int型数据的指针变量
C、ptr是指向函数的指针,该函数返回一个int型数据 D、ptr是一个函数名,该函数的返回值是指向int型数据的指针
6、C语言标准库函数\"fgets(string,n,fp)\"的功能是( )(1分)
A、从文件fp中读取长度为n的字符串存入指针string指向的内存 B、从文件fp中读取长度不超过n-1的字符串存入指针string指向的内存
C、从文件fp中读取n个字符串存入指针string指向的内存 D、从文件fp中读取不超过长度为n的字符串存入指针string指向的内存
7、设int类型的数据长度为2个字节,则unsigned int类型数据的 取值范围是( )(1分) A、0至255 B、0至65535
C、-256至255 D、-32768至32767
8、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )(1分) A、3 B、6 C、10 D、20
9、函数调用:strcat(strcpy(str1,str2),str3)的功能是( )(1分)
A、将串str1复制到串str2中后,再连接到串str3之后 B、将串str1连接到串str2之后,再复制到串str3之后
C、将串str2复制到串str1中后,再将串str3连接到串str1之后 D、将串str2连接到串str1之后,再将串str1复制到串str3中
10、指出下面正确的输入语句是( )(1分)
A、scanf(\"a=b=%d\、scanf(\"a=%d,b=%f\ C、scanf(\"%3c\ D、scanf(\"%5.2f,&f\")
11、若有以下定义和语句:int u=010,v=10,w=0x10;printf(\"%d,%d,%d\\n\",u,v,w);则输出结果是( c)(1分) A、8,10,16 B、10,10,10 C、8,10,8 D、8,10,10
12、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )(1分) A、a<>0 B、!a C、a=0 D、a
13、假定有以下变量定义:int k=7,x=12; 则能使值为3的表达式是( )(1分) A、x%=(K%=5) B、x%=(k-k%5) C、x%=k-k%5 D、(x%=k)-(k%=5)
14、以下不能定义为用户标识符的是( )(1分) A、scan B、void1 C、_3com_ D、int
15、已定义c为字符型变量,则下列语句中正确的是( )(1分) A、c='97'; B、c=\"97\"; C、c=97; D、c=\"a\";
16、在下列选项中,没有构成死循环的程序是( )(1分)
A、int i=100;whine(1) {i=i%1001;if (i>100)break;} B、for (;;); C、int k=1000;do {k;}while(k>=1000); D、int s=36;while(s);--s;
17、设a=1,b=2,c=3,d=4,则表达式:a>b?a:c 19、假定所有变量均已正确说明,下列程序段:a=b=c=0;x=65;if (!a) x--;else if (b); if (c) x=11;esle x=12;运行后x的值是( )(1分) A、64 B、12 C、65 D、11 20、以下选项中,非法的字符常量是( )(1分) A、'\' B、'\\17' C、\"n\" D、'\\xaa' 二、填空题(12道小题,共40分) 1、C语言源程序文件经过连接后,生成文件的后缀是 (2分) -------------------------------------------------------------------------------- 2、结构化程序设计的方法是:自顶向下、、模块化设计、结构化编码 (2分) -------------------------------------------------------------------------------- 3、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 c=(a-=(b-5)); c=(a%11)+(b=3); (2分) -------------------------------------------------------------------------------- 4、有以下语句:int a,b;scanf(\"a=%d,b=%d\为使变量a,b的值分别为12,34,则输入数据的形式应该是 (2分) -------------------------------------------------------------------------------- 5、表达式1<0<5的值是 (2分) -------------------------------------------------------------------------------- 6、下面的程序输出是main (){int x=2;while (x--);printf(\"%d\ (2分) -------------------------------------------------------------------------------- 7、C语言的数组名是一个常量,不能对他进行加减和赋值等运算 (2分) -------------------------------------------------------------------------------- 8、从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为 (2分) -------------------------------------------------------------------------------- 9、假定指向一维数组b[10]中元素b[4]的指针为p,则p+3所指向的元素为,p-2所指向的元素为b[2] (2分) -------------------------------------------------------------------------------- 10、定义结构体变量名表可以在定义结构体时直接进行,常用的定义结构体变量名表的方法是 (2分) -------------------------------------------------------------------------------- 11、以下程序的功能是:从键盘上数入10个数值并存储在数组a中,调用函数findmax求数组中的最大值并输出 #include {int a[10],i,j; for(i=0;i<10;++i) scanf(\"%d\ findmax(a,10,); printf(\"%d\} findmax(s,t,k) int *s,t,*k; {int p; for(p=0,*k=p;p (8分) -------------------------------------------------------------------------------- 12、fun函数的功能是:求出以下分数系列的前n项之和2/1,3/2,5/3,8/5,... #include for(k=1;k<=n;k++) {s=s+(double)a/b; c=a; ; b=c;} ; } (12分) -------------------------------------------------------------------------------- 三、判断题(10道小题,共10分) 1、在C程序中,语句之间必须要用分号“;”分隔。(1分) 正确 错误 2、在C程序中,APH和aph是两个不同的变量。(1分) 正确 错误 3、解决int型变量溢出的办法是将其定义成long型或float型。(1分) 正确 错误 4、printf函数是C语言的标准输出函数。(1分) 正确 错误 5、switch语句中各个case出现的顺序不影响执行的结果。(1分) 正确 错误 6、for语句中的三个表达式不可以同时省略。(1分) 正确 错误 7、C语言不允许对数组的大小作动态定义。(1分) 正确 错误 8、在C中函数可以返回任何类型。(1分) 正确 错误 9、指针值加1就是指针向后移动一个字节。(1分) 正确 错误 10、结构体也是基本数据类型。(1分) 正确 错误 四、编程题(4道小题,共60分) 1、一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?(保留小数点后4位小数) (15分) 必须将本题程序最后的运行结果填入下面的框中。否则,该题以零分计! 请将你解答本题所写的源程序粘贴到下面或者上载源程序 -------------------------------------------------------------------------------- 2、某次大奖赛,有7个评委打分,编程序求一名参赛者的得分,输入7个评委的打分分数,去掉 一个最高分和一个最低分后,求出平均分,即为该参赛者的得分。 (15分) (本题不要求填写运行结果) 请将你解答本题所写的源程序粘贴到下面或者上载源程序 -------------------------------------------------------------------------------- 3、编写程序,用普通迭代法求方程f(x)=x+lnx-1.7=0的近似实根r,迭代初值为1.5,精确到0.0001。 〔提示:必须把方程f(x)=0化成其等价形式x=g(x)〕。(允许使用其他迭代法) (15分) 必须将本题程序最后的运行结果填入下面的框中。否则,该题以零分计! 请将你解答本题所写的源程序粘贴到下面或者上载源程序 -------------------------------------------------------------------------------- 4、编写程序,输出下列三角形: (要求用循环做,非循环不给分。) 1 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 (15分) (本题不要求填写运行结果) 请将你解答本题所写的源程序粘贴到下面或者上载源程序 因篇幅问题不能全部显示,请点此查看更多更全内容