当前位置:文档之家› 计算机校二级模拟考试试题

计算机校二级模拟考试试题

DLUT计算机校二级模拟考试试题二一.判断题1.用宏可以得到也仅能得到一个返回值。

2.在一个源程序中,main函数的位置可以任意3.二维数组在内存中存贮时,是按下标值递增且左侧的下标比右侧的下标变化快的顺序连续存贮各元素的值。

4.设指针变量已经指向一个有效地址,则表达式&*p==p 的结果为真。

5. 若定义int array[5] , *p=array ;则赋值语句p=&array;是正确的。

6.求解表达式max=(a>b)?a:b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b 赋给max。

7.在do-while循环中,根据情况可以省略while。

8.for语句的循环体至少执行一次。

9.putchar 函数的原型(函数说明)在string .h 内。

10.在一个函数中定义的静态局部变量不能被另外一个函数所调用。

二.选择题1.字符串"\\\"ABC\"\\"的长度是:_________。

A.11 B.7 C.5 D.32.已知字母A的ASCII码为十进制数65,且c为字符型,则执行语句c='A'+'6'-'3'; 后,c中的值为:_____。

A.D B.d C.不确定的值 D.c3.不合法的关系表达式是:()A.x=y B.‟a‟+1<c C.m>n+1 D.x!=x+y4. 以下程序的输出结果是:______fun(int x, int y, int z){ z=x*x+y*y; }main( ){ int a=31;fun(5,2,a);printf("%d", a);}A.0 B.29 C.31 D.无定值5.能够完成求出两个正整数a,b最小公倍数max的程序段。

请在A处填写正确内容。

if(a>=b) t=a;else t=b;for(i=t; ;i++)if(i%a==0&&i%b==0)___A___printf("%d",max);A.{max=i;continue;}B.max=i;continue;C.{max=i;break;}D. max=i;break;6. 执行以下程序段后的y值是______ 。

int a[ ]={1,3,5,7,9}, y,x,*ptr;y=1;ptr=&a[1];for(x=0;x<3;x++)y*=*(ptr+x);A.105 B.15 C. 945 D.无确定值7.已定义char str1, str2[10];选择正确的输入语句____。

A.scanf(“%c%s”,strl1,str2);B.scanf(“%c%s”,strl1,&str2);C. scanf(“%c%s”,&strl1,str2);D. scanf(“%c%s”,&strl1,&str2);8.用下面的scanf函数输入数据,使得i=10, k=15 选择正确的键盘输入方法____。

(用"[CR]"表示回车,U表示空格)main(){ int i,k;scanf("i=%d,k=%d",&i,&k);}A.10,15[CR] B.i=10 ,k=15[CR] C. 10U15[CR] D.i=10[CR]K=15[CR] 9.执行下面程序段后,ch的值是:()char ch='a';ch=(ch>='A'&&ch<='Z')?(ch+32):ch;A.a B.A C.Z D.z10.下面有关for(表达式1;表达式2;表达式3)循环的正确描述是:A.for循环只能用与循环次数已知的情况下B.for循环是先执行循环体内语句,后判断表达式1C. for循环体中不允许嵌套除for以外的循环结构D.for循环体内中的多余语句必须用“{}”括起才能被全部执行11.在Turbo C 运行环境下,下列说法中正确的是______。

A.双括号中字符串的字符,如果与宏名相同,就要替换B.双括号中字符串的字符,即使与宏名相同,也不替换C. 调用函数可以得到个返回值D.用宏定义不可以得到多个返回值12. 以下叙述不正确的是______。

A. static放在定义的局部变量前,使变量存放在静态存储区B:static放在定义的外部变量前,使变量只能被本文件中的函数引用C:static放在函数定义的函数名之前,使函数只能被本文件中的函数调用D:static放在定义的寄存器变量前,寄存器变量放在静态存储区13以下程序的输出结果是_____ 。

main( ){char str[ ]="ABCD",*p=str; printf("%d\n",*(p+3));}A.0 B.68 C. 字符D的地址D.不确定的值14. 下述函数段中,______含有错误。

A.int f(){int x; scanf(“%d”, &x); return x++ ,1; }B.int f(){return (x>1?printf(“R” ): putchar(…r‟) );}C. main ( ){float x=3.5; float y=fmax(2.0,3.0)=x++;}D. void Rep{int *x,int *y} {int t=*x;*x=*y; *y=t;}15.以下程序段给数组所有的元素输入数据,请选择正确答案填入。

#include <stdio.h>main(){ int a[10],i=0;while(i<10) scanf("%d",(_______));...}A.a+(i++) B.&a[i++] C. a+i D.&a[++i]三.完善程序题1. 输入三角形三边a,b,c,求面积area为根号下s(s-a)(s-b)(s-c) ,其中s=(a+b+c)/2 。

#include" _A_ "main( ){float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s= _B_ /2*(a+b+c);area = sqrt (s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);printf ("area=%7.2f\n",area );}2.程序最多从键盘上输入100个字符,遇到“空”字符(即'\0')则退出,遇到空格则跳过,其它字符依次送入字符数组c[ ]中。

#include"stdio.h"main(){int I;char ch,c[100];for(I=0;I<100;I++){if((ch=getchar())=='\0')____A____ ;if(ch==' ')____B____ ;c[I]=ch;}}3.求两个长方形的面积.#include <stdio.h>#define S(a,b) ___A___main(){float a,b,s1,s2;scanf("%f",&a);___B___s1=S(a,b);s2=S(a,3+b);printf("s1=%f,s2=%f.\n",s1,s2);}4. 完善程序:下列程序用于打印学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括学号num、姓名name、三门成绩score[3]。

在主函数输入这些记录,用print函数输出这些记录。

#define N 5struct student{char num[6];char name[8];int score[4];} ___A___;main(){int i,j;for(i=0;i<N;i++){scanf("%s",stu[i].num);scanf("%s",stu[i].name);for(j=0;j<3;j++)scanf("%d",&stu[i].score[j]);}___B___;}print(stu)struct student stu[N];{int i,j;printf("\nnum name score1 score2 score3\n");for(i=0;i<N;i++){printf("%8s%10s",stu[i].num,stu[i].name);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("\n");}}5.以下函数用选择排序法对数组a的元素由小到大排序,请填空。

void func(int a[ ], int n){ int i, j;for(i=0; i<n-1; i++){int max=i;for(j=i+1; j<n; j++)if(____A___)max=____B___;if(j!=max){int t=a[max];a[max]=a[i];a[i]=t;}}}四.阅读程序题.1.#include <stdio.h>main(){ int a,b,c,x=4,y=6,z=8;int *p1=&x,*p2=&y,*p3;a=p1==&x;b=3*(-*p1)/(*p2)+7;c=*(p3=&z)=*p1*(*p2);printf("%d,%d,%d",a,b,c);}2.阅读以下程序,写出程序的运行结果。

main(){ int a=2,b=3;printf("%d," , fun(a,b));printf("%d\n", fun(b,a));}fun(int x, int y){ static int m=0, i=2;i+=m+1;m=i+x+y;return m;}3. (答案中规定,若有空格,则用大写字符U表示空格)main(){int a,b;printf("Input a ,b:\n");scanf("a=%d,b=%d", &a,&b);printf("max=%-4d",(a>b)?a:b);} 输入a=10,b=20[CR] ([CR] 表示回车) 4. 阅读本程序并写出程序的运行结果:main(){int I=0,x[3][3]={1,2,4,4,1,6,7,0,9};for(;;){if(I>2) break;printf("%d",x[I][2-I]);I++;}}5.写出下面程序的运行结果。

相关主题