2010和2011年计算机c程序设计真题及答案

更新时间:2024-07-01 05:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

二O一O年硕士学位研究生招生入学考试试题

考试科目:计算机程序设计 代码:927

1. 填空题20题,每题1分

1) 程序的三种基本的控制结构是: 顺序结构 、 选择结构 、 循环结构 。 2) 外部函数的储存类型是 ,它既可以在本编译单位中被调用,又可以在 中被调用。 3) 若a函数中调用了b函数,而b函数又调用了c函数,这种调用称为 调用。若a函数中调

用了b函数,而b函数又调用了a函数,这种调用称为 调用。 4) “*”称为 指针 运算符,“&”称为 取值 运算符。 5) 表示结构体成员的“ . ”称为 成员(分量) 运算符,“ -> ”称为 分量 运算符。 6) 如果调用fopen函数不成功,则函数返回值为 0 ;如果调用fclose函数不成功,则函数返

回值为 EOF 。

7) C++语言中有 // 和 /*与*/ 二种注释方法。 8) 在C++中用关键字 class 来定义新的类。

9) 若有以下定义,则不移动指针p,且通过指针p引用值98的数组元素的表达式是 。

int w[10]={23,54,10,33,47,98,72,80,61,102}, *p=w;

10) 位运算:0x1a2c&0x1a79 的运算结果是(用八进位制形式写出) 015050 。 2. 程序填空题4题,每题5分

1) 下列程序的功能是计算1-10之间偶数之和,请填空。

#include void main( ) { int a, b,i: a=0;b=0;

for ( i=0;__i<=10_____;i+=2) { a+=i;

(2) ; }

cout<<“偶数之和为:”<

2) 下列程序是将一个正整数n的各个位向左循环移动4位,请在程序的横线上填写适当的内容。 #include void main(void) { int k,n,a;

scanf(“%d”,&n); k=n&0xf000; k= >>12 ; a=n<<4;

a=k | a;

printf(“n=%o\\n a=%o\\n”,n,a); }

3) 下面是字符串拷贝函数,请填空。 # void ccopy( )

{ char ch1[]=”good morning!”, ch2[20]; int i=0,j=0;

while ( ch1[i]!=null ) { ch2[j]= ch1[i] ; i++ ; }

return ch2[j]; }

第 1 页 ,共 9 页

4) 根据注释和提示,填写函数调用语句。 #include class A

{ public: A(int k=0) {i=k;} void show() {cout<

void main()

{ A *p=new A(5); (A.*p)() ; //调用p所指向的类对象的显示成员函数 }

3. 程序设计题2题,每题10分

1) 编辑一个程序,要求打印出1~100间既不能被5整除,也不被6整除的数且每行输出5个。 #include main()

{ int i,n; for(i=1;i<=100;i++) {

if(i%5!=0&&i%6!=0) {

printf(\ n++; } if(n%5==0) printf(\ } }

mnm n

2. 编辑一个程序,可以输入实数x,y以及整数m,n,求x与y的积,并显示出结果x* y。(提示:建立一个函数xm, 然后调用) #include

float fun(int a,float b) { int i; float s=1;

for(i=1;i<=a;i++) s*=b;

return s; }

main()

{ float k,x,y; int m,n;

scanf(\ k=fun(m,x)*fun(n,y);

printf(\}

第 2 页 ,共 9 页

2011年硕士学位研究生招生入学考试试题

考试科目:计算机程序设计 代码:927

? 选择题40题(每题1.5分,共60分) 1. 面向过程的程序设计语言是 。

A) 机器语言 B) 汇编语言 C) 高级语言 D) Java语言 2. C语言源程序是由 构成的。

A)、主函数与子函数 B) 一个主函数与一个其他函数 C) 一个主函数与若干个子函数 3. 下列叙述中不正确的是 。

D) 主函数与子程序

A) 注释说明只能位于一条语句后面 B) 注释说明被计算机编译系统忽略

C) 注释说明必须放在/*和*/之间 D) 注释符“/”和“*”之间不能有空格 4. 下列保留字中正确的一组是 。

A) integer, float

B) read, data C) const, double

D) void, int

5. 下列标识符中,合法的用户标识符是 。 A) B#123 B) _1234 C) void

D) xy*

6. C语言语句一行写不下时,可以 。

A) 用逗号换行 B) 用分号换行 C) 在任意一空格处换D) 用Tab键(回车符)换行 7. 设有语句int a=4;则执行了语句a+=a-=a*a后,变量 a的值是 。 A) 24 B) -24 C) 4 8. 已知int i;float d;正确的语句是 。

D) 16

A) (int)d B) int(d)%i C) int(d%i) D) (int)d%i 9. 若定义:int w=1,x=2,y=3,z=4,a=5,b=6; 则执行语句(a=w>x)&&(b=y>z);后,a、b的值为 。 A) 1和1 B)0和6 C) 5和0 D) 0和0 10. 在C语言中,逻辑值“真”用 表示。

A) true B) 正数 C) 非0 整数 D) 非0 的数 11. 下列if语句中不正确的是 。 A) if(x>y); B) if(x==y) x+=100;

C) if(x

A) 0

B) 1

C) true

D) 非0

13. 在C语言中,一维数组下标的最小值是 。 A) 1 B) 0 C) 视说明语句而定

D) 无固定下限

14. 若有语句:int a[10];则该语句说明了整型数组a有 个数组元素。 A) 10 B) 11 C) 1 D) 不确定 15. 设有数组定义了:char array []=\;则数组所占空间为 字节。 A) 4个 B) 5个 C) 6个 16. 若有语句char str1[10],str2[10]={ \

D) 7个

则将字符串book赋给数组str1的正确语句是 。

A) str1={ \B) strcpy(str1,str2) C) str1=str2 D) strcpy(str2,str1) 17. 以下描述中,不正确的是 。 A)

调用函数时,实参与形参在数目次序和类型上应一一对应

第 3 页 ,共 9 页

B) C) D) 调用函数时,将为形参分配单元

调用函数时,实参数组与形参数组的类型必须一致 调用函数时,形参必须是整形或字符型

18. 对于C程序的函数,下列叙述中正确的是 。 A) 函数的定义不能嵌套,但函数调用可以嵌套 B) C) D)

函数的定义可以嵌套,但函数调用不能嵌套 函数的定义和调用均不能嵌套 函数的定义和调用均可以嵌套

19. 以下所列的各函数头中,正确的是 。

A) void play(a:interger, b:interger) B) void play(int a, b) C) void play(int a, int b)

D) sub play(a interger, b interger)

20. C语言中函数返回值的类型是由 决定的。 A) return 语句中的表达式类型 B) C) D)

调用该函数的主调函数

调用函数时临时

定义函数时所指定的函数类型

21. 已知“int *p, a;”,则语句“p=&a;”中的运算符“&”的含义是 A) 逻辑与运算 B) 位与运算 C) 取指针内容 D) 取变量地址 22. 若已定义 a 为 int 型变量,则对p的说明和初始化正确的是 。

A) int *p=a; B) int p=a; C) int *p=*a; D) int *p=&a; 23. 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是 。 A) pb=&x; B) pb=x; 24. 以下正确的叙述是 。 A).C语言的主函数是无参函数 25. 已知struct { int i; char c; float a; } ex;

则“sizeof(ex); ”的值是 。

A) 4 B) 5 C) 6 D) 7 26. 已知union

{ int i; char c; float a; } ex;

则“sizeof(ex); ”的值是 。

A) 4 B) 5 C) 6 D) 7 26. 以下对C语言中共用体类型数据的叙述正确的是 。 A 可以对共用体变量名直接赋值 B 一个共用体变量中可以同时存放其所有成员 C 一个共用体变量中不能同时存放其所有成员 D 共用体类型定义中不能出现结构体类型的成员 27. 以下关于 typedef 的叙述不正确的是 。

第 4 页 ,共 9 页

C) *pb=&x; D) *pb=*x;

B).C语言的主函数最多允许有1个参数

C).C语言的主函数最多允许有2个参数 D).C语言的主函数可以有2个以上参数

A) B) C) 用 typedef 可以定义各种类型名,但不能用来定义变量 用 typedef 可以增加新变量

用 typedef只是将已存在的类型用一个新的名称来代表

D) 使用 typedef 便于程序的通用和移植

28. 设a=5,b=3,则表达式a^b<<2的值(二进制表示形式)是 。 A) 00011000 B) 00001101 29. 以下运算符优先级最高的是 。 A)^ B) & C) |

优先级 1 2 3 4 5 6 7 8 9 10 11 12 13 14 类别 基本 单目 乘法与除法 加法与减法 移位运算 关系运算 条件等 位逻辑与 位逻辑异或 位逻辑或 条件与 条件或 条件 赋值 运算符 (x) x.y f(x) a[x] x++ x――new typeof sizeof checked unchecked + - ! ~ ++x ――x (T)x * / % + - << >> ﹤ > <= >= is = = ! = & ^ | && ‖ ?: = *= /= %= += -= <<= >>= &= ^= |= C) 00000100

D) ~

D) 00001001

30. 表达式 a

D) <,&,||

D) 0xaf

C) 0x15

32. 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是 。 A) -1 B) 0 C) 非0值 D) NULL

33. 若要用fopen函数打开一个二进制文件,用于先写后读操作,则打开文件的模式为 。 A) “ab+” B) “wb+” C) “rb+” D)“ab+” 34. 在C语言中,可以把整数以二进制形式存放到文件中的函数是 。 A) fprintf() B) fread() C) fwrite() D) fputc()

35. fgetc函数的作用是从指定的文件读入一个字符,该文件的打开方式必须是 。 A) 只读 B) 追加 C) 读或读/写 D)B和C都正确 36. 关于C++与C语言的关系描述中, 是错误的。 A、C语言是C++的一个子集 B、C语言与C++是兼容的

C、C++与C语言都是面向对象的 D、C++对C语言进行了一些改进 37. 在C++语言中, 是动态分配运算符。

第 5 页 ,共 9 页

A) malloc B) new 38. C++源程序文件的扩展名是 。 A) .cpp B) .c

C) free C) .dll

D) delete(释放) D) .exe

39. 若有: int x; 则正确的定义引用的语句是 。 A) int y=&x; B) int &y=x; C) int &y; D) int &y=&x; 41. 关于C++程序说法不正确的是:

A) C++程序由函数构成,但只有个main( )函数 B) C++程序中 main( )函数 可以在函数的任何位置

C) C++程序由 main( )函数开始执行,由main( )函数结束执行 D) main( )函数 都没有参数的

? 填空题20题(每题1.5分,共30分)

1. 用高级语言编写的源程序必须通过 编译 程序翻译成目标程序后才能执行。 2. C程序的语句结束符是 ; 。

3. 目标程序的扩展名是 .obj 。(源程序(.asm)——目标程序(.obj)——可执行程序(.exe))

4. 在内存中存储“B”要占用 2 字节,存储‘b’要占用 1 个字节。 5. 设int i=5; 则循环语句while(i>=1) i--; 执行后,i的值为 0 。 6. break 语句可在 循环语句 或 开关语句 中使用。

7. 设i、j、k、均为int形变量,则执行“for(i=0,j=9;i<=j;i++,j--) k=i+j;”语句后,k的值是 10 。

8. 设有定义:char s[5]={‘a’,’b’}; 则s[1]中字符是‘a’ ,s[2]中的字符是 , 。 9. 设有定义语句:char s[]=”abcdef\\0”}; 则数组s的长度是 7 ;数组元素s[6]中存放的字符是‘\\0’。

10. 设有定义语句:char s1[10]=”123\\0abc”; 则表达式”strlen(s1)”的值是 3 。 11. 定义函数时,若函数体中出现语句“return(x)”,则这种函数称为 有返回值 函数;若函数体中出现语句“return”或无该语句,则这种函数称为 无返回值 函数,该函数的数据类型为 void 。 练习题: 1、结构化程序设计由三种控制结构组成,即顺序结构、循环结构和选择结构。 2、设有定义语句:char s[][5]={“abcd”};则二维数组s中共有 5 个数组元素,s[0][0]中存放的字符是 ?a? 。 3、若有定义:int a[3][4],则a数组中行下标下限是 0 ,列下标的上限是 3 。 4、C语言中格式化文件输出函数是printf(),用于文件定位的函数是fseek()。 7、调用函数时,若形式参数和实际参数均为变量名时,传递方式为 值传递 ,若形式参数和实际参数均为数组名时,传递方式为 引用传递 。 8、类中定义的数据和函数,称为 成员变量 和 成员函数 。 9、在C++中,提供的动态分配和释放内存的操作符是 new 和 delete 。 10、C语言中,要求参加运算的操作数必须是整型数或字符型的运算符是___%______。 1、C语言所提供的基本数据类型包括:单精度型、 整型 、 布尔 、 字符 。 2、C语言提供三种逻辑运算符是 && 、 || 、 ! 。 第 6 页 ,共 9 页

3、变量的指针,其含义是指向该变量的 地址 。 5、C语言中, *运算符作为单目运算符时表示的是 指针 运算, 作为双目运算符时表示的是 乘 运算。 7、C源程序基本单位是 .cpp 。 ? 程序填空题4题(每题7.5分,共30分) 1. 下列程序的功能是计算并输出1!+2!+3!??+10!。 void main(void) {float x, y=0 ; int i, n;

for(n=1;n<=10;n++) { x=1 ;

for(i=1;i<=n;i++) x*=i ; y= y+x; }

printf(“%f\\n”,y); }

2. 从键盘读入若干个字符,输入到名为 abc.dat 的新文件中,请填空。 #include void main(void) {

FILE *fp; char ch;

if((fp=fopen( “abc.dat”,”w” ))==NULL) exit;

while((ch=getchar()) !=’@’) /*以@作为结束标志*/ fputc(ch,fp); fclose(fp); }

? 程序设计题2题(每题15分,共30分)

1. 编辑一个程序,可以输入一个字符,将字符与对应的ASCII码一起输出。 #include main()

{ char c;

scanf(\ printf(\ printf(\}

选择题

11.若有说明:char *s[]={“FORTRAN”, “BASIC”,”PASCAL”,”JAVA”,”C”}; 则表达式 *s[1]>*s[3]比较的是( )。

第 7 页 ,共 9 页

A)字符F和字符P B)字符串BASIC和字符串JAVA C)字符B和字符J D)字符串FORTRAN和字符串PASCAL 12.如下程序的输出结果是( )。 #include main()

{ char a[20]=\; char *p=a; for (; p

A)chinese B)ciee C)chine D)cie

13. 若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( )。

A)*(*(a+i)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j

14. 若有以下定义和语句,则对a数组元素的正确引用为( )。 int a[2][3],(*p)[3]; p=a;

A)(p+1)[0] B)*(*(p+2)+1) C)*(p[1]+1) D)p[1]+2

15.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系统的命令状态下输入某一命令行后得到的输出是chian tianjin,则命令行的内容应是( )。 A)chian tianjin B)echo chian tianjin C)echo D)echo chian tianjin china tianjin

16.以下对结构体变量stu中成员age的非法引用是( )。 struct student

{ int age; int num; } stu, *p; p=&stu;

A)stu.age B)student.age C)p->age D)(*p).age 17.已知学生记录描述为: struct DATE { int year; int month; int day; };

struct student

{ int no; /*学号*/ char name[10]; /*姓名*/

第 8 页 ,共 9 页

char sex; /*性别*/ struct DATE birth; };

struct student s;

设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是( )。 A)year=1984; B)birth.year=1984; month=11; birth.month=11; day=11; birth.day=11; C)s.year=1984; D)s.birth.year=1984; s.month=11; s. birth.month=11; s.day=11; s.birth.day=11; 18.若有以下定义的语句: union data { int i; char c; float f; }a; int n;

则以下语句正确的是( )。

A)a.i=5 B)a={2,?a?,1.2} C)printf(“%d”,a) D)n=a 19. 表达式a

A)~,&,<, || B)~,||,&,< C)~,&,||,< D)~,<,&, || 20.若执行fopen函数时发生错误,则函数的返回值为( )。 A)地址值 B)0 C)1 D)EOF 11.C 12.B 13.A 14.C 15.B 16.B 17.D 18.A

第 9 页 ,共 9 页

本文来源:https://www.bwwdw.com/article/17y.html

Top