logo资料库

2009年山东青岛大学程序设计考研真题.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
一、单项选择题(每题2分,共40分)
2009 年山东青岛大学程序设计考研真题 一、单项选择题(每题2分,共40分) 1、以下选项中非法的表达式是( )。 (A)0<=x<100 (B)i= j= =0 (C)(char)(65+3) (D)x+1=x+1 2、若有定义:int *p[3];,则以下叙述中正确的是( )。 (A)定义了一个基类型为 int 的指针变量 p,该变量具有三个指针 (B)定义了一个含有三个元素的指针数组 p,每个元素都是基类型为 int 的指针 (C)定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素 (D)定义了一个可指向一维数组的指针变量 p,所指数组应具有三个 int 类型元素 3、已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。 (A)函数调用可以作为独立的语句存在 (B)函数调用可以作为一个函数的实参 (C)函数调用可以出现在表达式中 (D)函数调用可以作为一个函数的形参 4、下列关于单目运算符++、--的叙述中正确的是( )。 (A)它们的运算对象可以是任何变量和常量 (B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 (C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 (D)它们的运算对象可以是char型变量、int型变量和float型变量 5、有以下程序 main() { } int i=1,j=1,k=2; if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); 执行后输出的结果是( )。 (A)1,1,2 (B)2,2,1 (C)2,2,2 (D)2,2,3 6、有以下程序
main() { } int x[8]={8,7,6,5,0,0},*s; s=x+3; printf("%d\n",s[2]); 执行后输出结果是( )。 (A)随机值 (B)0 (C)5 (D)6 7、以下程序的输出结果是( )。 main() { } char st[20]= "hello\0\t\\"; printf(%d,%d \n",strlen(st),sizeof(st)); (A)9,9 (B)5,20 (C)13,20 (D)20,20 8、设int a,x; 表达式正确的是( )。 (A)a=(a[0]+a[1])/2 (B)a=(x=1,x++,x+2),10 (C)a*=*a+1 (D)a="good" 9、若有说明语句:double *p,a; 则能通过 scanf 语句正确给输入项读入数据的程 序段是( )。 (A)*p=&a; scanf("%lf",p); (B)*p=&a; scanf("%f",p); (C)p=&a; scanf("%lf",*p); (D)p=&a; scanf("%lf",p); 10、有以下程序 main() { } int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d); 程序输出( )。 (A)0,1,2,0 (B)0,0,0,3 (C)1,1,2,0 (D)编译有错
11、有以下程序 main() { } int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d",t[2-i][i]); 程序的执行后的输出结果是( )。 (A)7 5 3 (B)3 5 7 (C)3 6 9 (D)7 5 1 12、以下函数值的类型是( )。 fun (float x) { } float y; y= 3*x-4; return y; (A) int (B) 不确定 (C) void (D) float 13、表达式 3.6-5/2+1.2+5%2 的值是( )。 (A)4.3 (B)4.8 (C)3.3 (D)3.8 14、若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的 switch 语句是( )。 (A)switch(x) { } case 1.0: printf("*\n"); case 2.0: printf("**\n"); (B) switch((int)x); { } case 1: printf("*\n"); case 2: printf("**\n"); (C) switch(a+b) { case 1: printf("*\n");
case 2+1: printf("**\n"); } (D) switch(a+b) { } case 1: printf(*\n"); case c: printf("**\n"); 15、下列程序的运行结果是( )。 void fun(int *a, int *b) { } int *k; k=a; a=b; b=k; main() { } int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf("%d %d", a, b); (A)6 3 (B)3 6 (C)编译出错 (D)0 0 16、设有以下说明语句 struct ex { int x ; float y; char z ; }example; 则下面的叙述中不正确的是( )。 (A) struct 是结构体类型的关键字 (B) example 是结构体类型名 (C) x,y,z 都是结构体成员名 (D) struct ex 是结构体类型名 17、若变量已正确定义,要求程序段写成 5!的计算,不能完成此操作的程序段是 ( )。 (A)for(i=1,p=1;i<=5;i++) p*=i; (B)for(i=1;i<=5;i++){p=1;p*=i;} (C)i=1;p=1;while(i<=5){p*=i;i++;}
(D)i=1;p=1;do{p*=i;i++;}while(i<=5); 18、有以下程序 #include void main() { } int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf("%d\n", *p + *q); 程序运行后的输出结果是( )。 (A)16 (B)10 (C)8 (D)6 19、若函数的形参为一维数组,则下列说法中正确的是( )。 (A)调用函数时的对应实参必为数组名 (B)形参数组可以不指定大小 (C)形参数组的元素个数必须等于实参数组的元素个数 (D)形参数组的元素个数必须多于实参数组的元素个数 20、以下关于函数的叙述中正确的是( )。 (A)每个函数都可以被其它函数调用(包括 main 函数) (B)每个函数都可以被单独编译 (C)每个函数都可以单独运行 (D)在一个函数内部可以定义另一个函数 二、程序分析题(每题 5 分,共 30 分) 1、写出下列程序的运行结果: main() { int c; while ((c=getchar())!='\n') switch (c-'2') { case 0 case 1 case 2 case 3 : : : : putchar(c+4); putchar(c+4); break; putchar(c+3);
default : putchar(c+2); break; } } 从键盘输入数据:2473代表回车。 2、写出下列程序的运行结果: void fun1(char *p) { } char *q; q=p; while(*q!='\0') { (*q)++; q++; } main() { } char a[]={"Program"},*p; p=&a[3]; fun1(p); printf("%s\n",a); 3、写出下列程序的运行结果 int fun(int n) { } if(n= =1) return 1; else return (n+fun(n-1)); main( ) { } int x; scanf("%d",&x); x=fun(x); printf("%d\n",x);
程序执行时,给变量 x 输入 10,程序的输出结果是什么? 4、指出下列程序实现的功能 main( ) { int i=0,j=0,k=0,a[3]={2,4,18},b[6]={5,20,25,29,35,60},c[10]; while(i<3&&j<5) if(a[i]>b[j]) { c[k]=b[j];k++;j++;} else { c[k]=a[i];k++;i++;} while(i<3) { c[k]=a[i];k++;i++;} while(j<6) { c[k]=b[j];k++;j++;} for(i=0;i
printf(“d:%d\n”,d); } 问程序中 a,d 与两个数 num1,num2 的关系是什么?如果 num1=12,num2=8,则运行程 序结束后,a,d 的值是多少? 6、指出下面函数实现的功能 fun(char *sl,char *s2) { int i=0; while(sl[i]= =s2[i]&&s2[i]!='\0') i++; return(sl[i]= ='\0'&&s2[i]= ='\0'); } 三、程序填空(每题 10 分,共 20 分) 1、下面是一个选择法递增排序的程序,将划线部分补齐 void selectsort(int a[ ], int n) { int i, j, loc, temp; for(i=0;i< ① ;i++) {loc=i; for(j= ② ;j
分享到:
收藏