logo资料库

2011年云南昆明理工大学C程序设计考研真题A卷.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
2011 年云南昆明理工大学 C 程序设计考研真题 A 卷 一、填空题(共 30 小题,每空 1 分) 1.C 语言中的实型变量分为两种类型,它们是 【1】 和【2】。 2.C 语言中的标识符只能由三种字符组成,它们是【3】、【4】和【5】。 3.若有定义:char c=‘\010’;则变量 c 中包含的字符个数是【6】。 4.C 语言提供的三种逻辑运算符是【7】、【8】、【9】。 5.设 y 为 int 型变量,请写出描述“y 是奇数”的表达式【10】。 6.设 x,y,z 均为 int 型变量,请写出描述“x 或 y 中有一个小于 z”的表达式【11】。 7.在 C 语言中,二维数组元素在内存中的存放顺序是【12】。 8.若有定义:double x[3][5];则 x 数组中行下标的下限为【13】,列小标的 上限为【14】。 9.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1] [2]得到的初值是【15】,a[2][2]得到的初值是【16】。 10.若自定义函数要求返回一个值,则应在该函数体中有一条【17】语句,若自定义 函数要求不返回一个值,则应在该函数说明时加一个类型说明符【18】。 11.函数中的形参和调用时的实参都是数组名时,传递方式为【19】,都是变量时, 传递方式为【20】。 12.在内存中存储“A”要占用【21】个字节,存储‘A’要占用【22】字节。 13.符号常量的定义方法是【23】。 14.结构化程序设计方法规定程序或程序段的结构有三种:顺序结构、【24】和【25】。 15 用{}把一些语句括起来称为【26】语句 16.“*”称为【27】运算符,“&”称为【28】运算符。 17.赋值表达式和赋值语句的区别在于有无【29】号。 18.C 语言编绎系统在判断一个量是否为“真”时,以 0 代表“假”,以【30】代表“真” 二、单选题(共 50 分,每题一分) (1)以下叙述中错误的是 A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 (2)以下叙述中错误的是 A)C 语句必须以分号结束 C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 B)复合语句在语法上被看作一条语句 (3)以下叙述中正确的是
A)调用 printf 函数时,必须要有输出项 B)使用 putchar 函数时,必须在之前包含头文件 stdio.h C)在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出 D)调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码 (4)以下关于函数的叙述中正确的是 A)每个函数都可以被其它函数调用(包括 main 函数) B)每个函数都可以被单独编译 C)每个函数都可以单独运行 D)在一个函数内部可以定义另一个函数 (5)若有语句:char *line[5];,以下叙述中正确的是 A)定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B)定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 C)定义 line 是一个指针数组,语句中的*号称为间址运算符 D)定义 line 是一个指向字符型函数的指针 (6)有以下程序段 typedef struct NODE { int num; struct NODE *next; } OLD; 以下叙述中正确的是 A)以上的说明形式非法 C)OLD 是一个结构体类型 (7)以下叙述中错误的是 B)NODE 是一个结构体类型 D)OLD 是一个结构体变量 A)C 语言中对二进制文件的访问速度比文本文件快 B)C 语言中,随机文件以二进制代码形式存储数据 C)语句 FILE fp; 定义了一个名为 fp 的文件指针 D)C 语言中的文本文件以 ASCII 码形式存储数据 (8)当把以下四个表达式用作 if 语句的控制表达式时,有一个选项与其它三个选项含义 不同,这个选项是 A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1 (9)以下不能正确计算代数式 值的 C 语言表达式是 A)1/3*sin(1/2)*sin(1/2) C)pow(sin(0.5),2)/3 B)sin(0.5)*sin(0.5)/3 D)1/3.0*pow(sin(1.0/2),2) (10)以下能正确定义且赋初值的语句是 A)int n1=n2=10; C)float f=f+1.1; B)char c=32; D)double x=12.3E2.5; (11)算法具有五个特性,以下选项中不属于算法特性的是______。 A)有穷性 (12)以下选项中可作为 C 语言合法常量的是______。 B)简洁性 C)可行性 D)确定性 A)-80. B) -080 C)-8e1.0 D)-80.0e (13)以下叙述中正确的是______。 A)用 C 程序实现的算法必须要有输入和输出操作 B)用 C 程序实现的算法可以没有输出但必须要输入 C)用 C 程序实现的算法可以没有输入但必须要有输出 D)用 C 程序实现的算法可以既没有输入也没有输出 (14)以下不能定义为用户标识符的是______。 A)Main B)_0 C)_int D)sizeof (15)以下选项中不能作为合法常量的是______。
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 (16) 下列叙述中正确的是______。 A) C 语言编译时不检查语法 C) C 语言的函数可以嵌套定义 B) C 语言的子程序有过程和函数两种 D) C 语言所有函数都是外部函数 (17) 以下所列的 C 语言常量中,错误的是______。 A) 0xFF B) 1.2e0.5 C) 2L D) '\72' (18) 下列选项中,合法的 C 语言关键字是______。 A) VAR B) cher C) integer D) default (19) 以下变量 x.、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子 x * zy 的 C 语言表达式是______。 A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z (20) 若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是______。 A) -3 B) 9 C) -12 D) 6 (21) 设 x、y、t 均为 int 型变量,则执行语句:x=y=3;t=++x||++y;后,y 的值为______。 A) 不定值 B) 4 C) 3 D) 1 (22) 若变量已正确说明为 float 类型,要通过语句给 a 赋于 10.0,b 赋予 22.0,c 赋予 33.0,不正确的输入形式是______。 A) 10<回车> 22<回车> 33<回车> B) 10.0,22.0,33.0<回车> C) 10.0<回车> 22.0 33.0<回车> D) 10 22<回车> 33<回车> (23) 若执行以下程序时从键盘上输入 9,则输出结果是______。 A) 11 B) 10 C) 9 D) 8 main() { int n; if(n++<10) printf("%d\n",n); scanf("%d",&n); else printf("%d\n",n--); } (24)要求以下程序的功能是计算:s= 1+1/2+1/3+…+1/10 main() float { int for(n=10;n>1;n--) n; s;s=1.0; s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是______。 A)s=1.0; B)for(n=10;n>1;n--) C)s=s+1/n; D)printf("%6.4f\n", s); (25) 有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是______。 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行 1 次 (26) 以下程序执行后 sum 的值是______。
C) 不确定 D)0 B)14 A)15 min() { int i , sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } (27) 有以下程序段 int x=3 do{ printf("%d",x-=2); }while (!(--x)); 其输出结果是______。 A) 1 B) 3 0 C) 1 -2 D) 死循环 (28) 若变量 c 为 char 类型,能正确判断出 c 为小写字母的表达式是______。 A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z') C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z') (29) 以下所列的各函数首部中,正确的是______。 A) void play(var :Integer,var b:Integer) C) void play(int a,int b) B) void play(int a,b) D) Sub play(a as integer,b as C) 31 D) 无定值 integer) (30) 以下程序的输出结果是______。 B) 29 A) 0 fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } (31) 下列程序段的输出结果是______。 C) 1 2 3 4 B) 1 2 1 2 A) 2 1 4 3 void fun(int *x, int *y) { printf("%d %d", *x, *y); *x=3; *y=4;} main() { int x=1,y=2; fun(&y,&x); printf("%d %d",x, y); } (32) 下列程序的输出结果是______。 C)5 B)a[4]的地址 A) 非法 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*--p); } D) 2 1 1 2 D)3 (33) 下列程序的运行结果是______。 A) 6 3 B) 3 6 C) 编译出错 D) 0 0
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); } (34)) 下面程序的输出结果是______。 B) 1 C) 10 A) 0 main() { int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf("%d\n",*p+9); } D) 9 (35) 当调用函数时,实参是一个数组名,则向函数传送的是______。 A) 数组的长度 C) 数组每一个元素的地址 B) 数组的首地址 D) 数组每个元素中的值 (36) 设有以下说明语句 struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是______。 A) struct 结构体类型的关键字 B) example 是结构体类型名 C) x,y,z 都是结构体成员名 D) struct ex 是结构体类型 (37) 以下只有在使用时才为该类型变量分配内存的存储类说明是______。 A) auto 和 static C) register 和 static B) auto 和 register D) extern 和 register (38) 若 fp 是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是 ______。 A) EOF B) -1 C) 非零值 D) NULL (39) 以下程序的输出结果是______。 A) 20 B) 21 C) 22 D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); } (40) 以下程序的输出结果是______。 B) 1,4,7 A) 1,5,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); C) 3,5,7 D)3,6,9
} (41)有以下程序 main() { int a=1,b; for(b=1;b<=10;b++) if(a>=8)break; { if(a%2==1){a+=5;continue;} a-=3; } printf("%d\n",b); } 程序运行后的输出结果是______。 C)5 B) 4 A)3 (42)有以下程序 D)6 main() { char s[]="159",*p; p=s; printf("%c",*p++);printf("%c",*p++); } 程序运行后的输出结果是______。 A)15 B)16 C)12 D)59 (43)有以下函数 fun(char *a,char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { } return(*a-*b); a++;b++; } 该函数的功能是______。 A)计算 a 和 b 所指字符串的长度之差 B)将 b 所指字符串连接到 a 所指字符串 中 C)将 b 所指字符串连接到 a 所指字符串后面 D)比较 a 和 b 所指字符串的大小 (44)有以下程序 main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { printf("%4c",' '); for(j=0;j<=i;j++) for(j=_____;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 若要按以下形式输出数组右上半三角 1 2 6 3 7 11 4 8 12 16 则在程序下划线处应填入的是______。 A)i-1 B)i C)i+1 D)4-i (45)有以下程序 point(char *p){p+=3;} main() { char b[4]={'a','b','c','d'},*p=b;
point(p);printf("%c\n",*p); } 程序运行后的输出结果是______。 C)c B)b A)a D)d (46)程序中若有如下说明和定义语句 char fun(char *); main() {char *s="one",a[5]={0},(*f1)()=fun,ch; ...... } 以下选项中对函数 fun 的正确调用语句是______。 A)(*f1)(a); B)*f1(*s); C)fun(&a); D)ch=*f1(s); (47)有以下结构体说明和变量定义,如图所示: struct node {int data; struct node *next;} *p,*q,*r; data next data next data next p q r 现要将 q 所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作 的语句是______。 A)p->next=q->next; B)p->next=p->next->next; C)p->next=r; D)p=q->next; (48)以下对结构体类型变量 td 的定义中,错误的是______。 B)struct aa { int n; float m; }td; A)typedef struct aa { int n; float m; }AA; AA td; struct aa td; C)struct { int n; float m; }aa; D)struct { int n; float m; } struct aa td; (49)以下与函数 fseek(fp,0L,SEEK_SET)有相同作用的是______。 A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) (50)有以下程序 FILE *fp; fp=fopen(fn,"w");fputs(str,fp);fclose(fp); } void WriteStr(char *fn,char *str) { main() { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); } 程序运行后,文件 t1.dat 中的内容是______。 A)start C)startend D)endrt B)end 三、写出程序的运行结果(共 15 分,每小题 3 分) (1)以 下程 序运 行时 ,若 从键 盘输 入: 10 20 30<回车 >,输 出的 结果 是 【 1】 。 #include main() { int i=0,j=0,k=0; scanf("%d%*d%d",&i,&j,&k); printf("%d%d%d\n",i,j,k); } (2)以下程序运行后的输出结果是 【2】 。 main() { int a=3,b=4,c=5,t=99;
收藏