s=10*s+p[i][j]-'0'; printf(\}
该程序的输出结果是
A) 69825 B) 63825 C) 6385 D) 693825
(32) 以下程序的输出结果是 。 main( ) { int i,n=0;
for(i=2;i<5;i++) { do
{ if(i%3) continue; n++; } while(!i); n++; }
printf(\}
A)n=5 B)n=2 C)n=3 D) n=4
第二卷
说明:(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏填对得3分,两大题10个空栏,全填对得30分。
试题一
函数root的功能是用迭代法求x?a,平方根的迭代公式为xn?1?1a(xn?),要求前后两次求2xn出的x的差的绝对值小于10,即|xn?1?xn|?10?5。填空完成下面的程序。 #include ① main() { float a,f;
float root(float n);
printf(“Enter a positive number:”); scanf(“%f”,&a);
f= ② ; printf(“The square root of %5.2f is %8.5f\\n”, a, f ); }
float root(float a) {float x0,x1; x0=a/2;
x1=(x0+a/x0)/2;
30
?5 do
{x0=x1;
③ ; }while ④ ; ⑤ ; }
试题二
用二维数组存放10个学生5门课程的成绩,其中,函数highest的功能是:在二维数组中,找出最高分作为函数值返回,并通过形参传回此最高分所对应的学生和课程。填空完成下面的程序。 #define N 10 #define M 5 Main( )
{float highest ( );
float a[N][M]; int n,m; for(i=0;i for(j=0;j float highest((int score[N][M],int *n,int *m) { float high; int i,j,student=0,course=0; high=score[0][0]; for(i=0;i if( ⑧ ) { high= ⑨ ;student=i;course=j;} *n= ⑩ ; *m= course ; return(high); } 31 全国高校联合计算机等级考试广西考区 非计算机专业学生计算机水平考试(二级C)模拟试卷5 (本试卷包括第一卷和第二卷,答卷时间总共120分钟) 第一卷 说明:(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。 (2)答本卷的题目时,要在标准答题纸上编号对应的栏目中,用铅笔将正确答 案涂黑。在试题上直接勾划者步得分。 (3)本卷共70分,其中第1~26题每题2分,第27~32每题3分。 第一部分:基础知识(20题,共40分) (1) 在一个C语言程序中 。 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 (2) 以下所列的C语言常量中,错误的是 。 A) 0xFF B) 1.2e0.5 C) 2L D) ‘\\72’ (3) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是 。 A) 3 B) 4 C) 11 D) 12 (4) 若变量已正确说明为float类型,要通过语句scanf(“%f %f %f ”,&a,&b,&c);给a赋于 10.0,b赋予22.0,c赋予33.0,不正确的输入形式是: 。 A) 10<回车> B) 10.0,22.0,33.0<回车> 22<回车> 33<回车> C) 10.0<回车> D) 10 22<回车> 22.0 33.0<回车> 33<回车> (5) 设有以下定义 int a=0; double b=1.25; char c=?A?; #define d 2 则下面语句中错误的是 。 A)a++; B)b++ C)c++; D)d++; (6) 有以下程序 main( ) { int x=102,y=012; printf(\} 执行后输出结果是 。 A)10,01 B)002,12 C)102,10 D)02,10 (7) 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 。 A) -3 B) 9 C) -12 D) 6 (8) 设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是 。 32 A)scanf(\ B)scanf(\C)scanf(\D)scanf(\(9) 有以下程序段 int k=0 while(k=1) k++; while 循环执行的次数是 。 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 (10) 已定义ch为字符型变量,以下赋值语句中错误的是 。 A)ch='\\'; B)ch=62+3; C)ch=NULL; D)ch='\\xaa'; (11) 若有以下调用语句,则不正确的fun函数的首部是 。 A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a) main() { ? int a[50],n; ? fun(n, &a[9]); ? } (12) 当调用函数时,实参是一个数组名,则向函数传送的是 。 A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值 (13) 有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是 。 A)5 B)6 C)8 D)9 (14) 以下程序执行后sum的值是 。 A)15 B)14 C) 不确定 D)0 min() { int i , sum; for(i=1;i<6;i++) sum+=i; printf(“%d\\n”,sum); } (15) 若变量c为char类型,能正确判断出c为小写字母的表达式是 。 A) ?a?<=c<= ?z? B) (c>= ?a?)||(c<= ?z?) C) (?a?<=c)and (?z?>=c) D) (c>= ?a?)&&(c<= ?z?) (16) 下列选项中正确的语句组是 。 A)char s[8]; s={\ B)char *s; s={\ C)char s[8]; s=\ D)char *s; s=\(17) 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是 。 33 A) struct是结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 (18) 以下程序的输出结果是 。 A) 0 B) 29 C) 31 D) 无定值 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf(“%d”,a); } (19) 在说明语句:int *f();中,标识符f代表的是 。 A) 一个用于指向整型数据的指针变量 B) 一个用于指向一维数组的行指针 C) 一个用于指向函数的指针变量 D) 一个返回值为指针型的函数名 (20) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是 。 A) fopen(\ B) fopen(\C) fopen(\ C) fopen(\ 第二部分:简单程序(12题,共30分) (21) 下列程序的输出结果是 。 A) 3 B) 3.2 C) 0 D) 3.07 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(\ } (22) 有以下程序 main() { int i=10,j=1; printf(\} 执行后输出的结果是 。 A) 9,2 B) 10,2 C) 9,1 D) 10,1 (23) 下列程序执行后的输出结果是(小数点后只写一位) 。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 main() { double d; float f; long l; int i; i=f=1=d=20/3; printf(\ } 34