![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
|||||
| 计算机基础与程序设计试题 | |||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-12 ![]() |
|||||
|
2006年7月计算机基础与程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 1.存储量1MB等于( ) A.23字节 B.210字节 C.220字节 D.230字节 2.下面数据中最小数是( ) A.(0.1100)2 B.(0.64)8 C.(0.8125)10 D.(0.D)16 3.在Turbo C 2.0中,寻求在线帮助可按键( ) A.F1 B.F5 C.F9 D.F10 4.设有 int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是( ) A.-4 B.0 C.1 D.3 5.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( ) (其中<CR>表示换行) int a, b; scanf(″a=%d, b=%d″,&a,&b); A.2<CR> B.a=2 b=3<CR> 3<CR> C.a=2, b=3<CR> D.2,3<CR> 6.下面程序段的输出结果是( ) main( ) { int s, p; s=p=5; p=--s; p++;++p; printf(″%d\n″,p); } A.5 B.6 C.7 D.8 7.关于if语句下面叙述正确的是( ) A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句 B.只有当if语句中表达式的值为假时,才执行if的内嵌语句 C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句 D.只要if语句中表达式的值非0时,就执行if的内嵌语句 8.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是( ) main( ) { int a,b,s; scanf(″%d″, &a,&b); s=a; if(a<b) s=b s=s*s; printf(″%d″,s); } A.9 B.12 C.16 D.25 9.若int x=0; 则while(x= =0); 的循环次数是( ) 10.下面程序段的输出结果是( ) for (i=1; i<3;i++) {for (j=1;j<3;j++) printf(″%d ″, i+j); A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 4 3 4 11.下面程序的输出结果是( ) mian ( ) { int a[5]={2,4,6,8,10},i; i=2; printf(″%d″,a[i++]); } 12.下面程序的输出结果是( ) main( ) { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int i,j,k=0; for(i=0;i<3;i++) k=k+a[i][0]; printf(″%d\n″,k); } 13.以下正确的函数定义形式是( ) A. double fun(int x, int y) B. double fun(int x; int y) C. double fun(int x, int y); D. double fun(int x, y); 14.关于变量以下不正确的说法是( ) A.在不同函数中可以使用相同名字的变量 B.形式参数是全局变量 C.在函数内定义的变量只在本函数范围内有效 D.在函数内的复合语句中定义的变量是局部变量 15.设有语句int a[4][10],*p=*a;则下列表达式中不是地址表达式的是( ) A.&a[1][2] B.a[3] C.*(p+1*10+2) D.p+1*10+2 16.下面关于结构体类型变量定义不正确的是( ) A. struct score B. struct { { int math; int math; int Chinese; int Chinese; }Li, Wang; }Li, Wang; C. struct score D. struct score { { int math; int math; int Chinese; int Chinese; }; };Li, Wang; struct score Li, Wang; 17.下面各个运算符的优先级从左到右依次降低的是( ) A.& >> | ^ B.~ & >> | C.>> & ^ | D.~ >> & ^ 18.设有说明:int u=1, v=2;表达式:u+v<<2的值是( ) A.-1 B.1 C.9 D.12 19.下面程序段中,不能完成的功能是( ) FILE *fp; char ch; fp=fopen(″file1″, ″rb+″); ch=fgetc(fp); A.建立文件指针fp与文件file1的联系 B.从file1文件中读一个字符 C.向file1文件中写一个字符 D.打开名为file1的二进制文件 20.在格式:fread(stu,size,n,fp);中,下面说法不正确的是( ) A.stu是内存中存放数据的首地址 B.n表示读n次 C.size是一个数据块的字节数 D.fp表示文件指针 二、多项选择题(本大题共5小题,每小题2分,共10分) 21.微机系统的主机包含的部件有( ) A.输入设备 B.存储器 C.输出设备 D.运算器 E.控制器 22.下面各选项中,能正确进行字符串操作的有( ) A. char s[ ]={′a′, ′b′, ′c′, ′d′, ′e′, ′\0′}; B. char s[10];s=″abcde″; C.char s[10];strcpy(s, ″abcde″) D.char s[10];getchar(s); E.char s[10];gets(s); 23.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有( ) double a[5],*p1 p1=a; A.a B.p1+1 C.*p1 D.&a[1] E.p1 24.设有说明: int u=1, v=3, w=7;下面表达式的值为3的有( ) A.w>>1&v|u B.u&v&w C.u|v&w D.w&v<<1 E.v^w|u 25.在C语言中,下面关于文件说法正确的有( ) A.按数据的组织形式,可分为文本文件和二进制文件 B.文件只能是ASCII码文件 C.文件能用fopen( )函数打开 D.文件只能是二进制文件 E.对打开的文件可以进行读或写操作 三、简答题(本大题共4小题,每小题4分,共16分) 26.简述C语言中标识符的命名规则并说明C语言中哪些名是用标识符来标识的? 27.变量有哪几种存储类别?指明它们存储数据的区域。 28.定义char*str=″computer″;是将字符串″computer″赋值给变量str,这种说法对吗?为什么? 29.设有说明: struct flower {char *part; char * color;} mum; char*part_of_flower[3]={ ″花″,″茎″,″叶″}; char*seven_color[7]={ ″赤″,″橙″,″黄″,″绿″,″青″,″蓝″,″紫″}; 试写出将mum的成员part定义为″花″、成员color定义为″黄″的C语句。 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下面程序,写出运行结果。 main( ) { int a=789, x,y,z; x=a/100; y=a/10-10*x; z=a-10*y-100*x printf(″%d,%o,%x,%d″, x,y,z,100*z+10*y+x); } 31.阅读下面程序,并回答问题: main( ) { int a,b,x,y; scanf(″%d,%d″,&a,&b); x=a*a+b*b if(x>100) {y=x/100;printf(″%d″,y);} else printf(″%d″,a+b);} (1)若程序运行时,输入6和9,输出结果是什么? (2)说明程序的功能。 32.阅读下面程序,并回答问题: main( ) { int u,v,a,b,t,r; u=24;v=16; if(u>v){t=u;u=v;v=t;} a=u;b=v; while ((r=b%a)!=0) {b=a;a=r;} printf(″a=%d\n″,a);} (1)程序输出结果是什么?(2)该程序完成什么功能?(3)若将while循环替换为do-while循环,请写出相应的程序段。 33.阅读下面程序,写出运行结果。 int a=5, b=5; chang1( ) { int a=4; printf(″a1=%d,b1=%d\n″,a,b++); } chang2(int a, int b) { a++; b--;} main( ) { chang1( );a++,b++;chang2(a,b); printf(″a2=%d,b2=%d\n″,a,b);} 34.阅读下面程序,写出运行结果。 #include <stdio.h> #include <string.h> main( ) { char p1,p2,srt[50]= ″abc″, str1[50]; p1=″abc″;p2=″abc″; puts(str); strcpy(str1,p1); p1=str1; printf(″%s\n″,strcat(p1,p2)); strcpy(str+1,p1); printf(″%s\n″,str);} 35.设有说明语句int*p; 请分析下面语句的含义: p=(int *)malloc(sizeof(int)); free(p); 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。 37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中。(第一行的″$″在第20列) $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2006年4月计算机基础与程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 1. CPU处理数据和指令的基本单位是字(Word),一个字的字长是( ) A. 8bits B. 16bits C. 32bits D. 与CPU数据总线有关的bit位数 2. 与十进制1100等值的十六进制数是( ) A. 44A B. 44C C. 54A D. 54C 3. 退出Turbo C 2.0返回系统,在主菜单File项中可选择( ) A. Load B. New C. Save D. Quit 4. 设有int a=3, b=-4, c=5;表达式(a<b)? a+b: (a-b,b+4,a-=b+4)的值是( ) A. –1 B. 0 C. 3 D. 7 5. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( ) (其中<CR>表示换行) int a, b; scanf(″a=%d b=%d″,&a, &b); A. 2<CR> B. a=2 b=3<CR> 3<CR> C. a=2, b=3<CR> D. 2,3<CR> 6. 下面程序段的输出结果是( ) main() { int s, p; s=p=5; p=++s; p++; ++p; printf(″%d\n″,p); } A. 5 B. 6 C. 7 D. 8 7. 下列if语句中,有语法错误的是( ) A. if(x>y); B. if(x=y) x+y; C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y) D. if(x<y) {x++; y++;} 8. 下面程序段执行后的输出结果是( ) int i=-1; if(i<=0) printf(″* * * * \n″); else printf(″%%%%\n″); A. **** B.%%%% C. %%%%c D. ****c 9. 下面程序段的循环次数是( ) int k=2; while(k==0) printf(″%d″,k); k--; printf(″\n″); A. 0次 B. 1次 C. 2次 D. 无限次 10. 下面程序段的输出结果是( ) a=100; while(a>120); a=a+1; printf(″%d″,a); A. 100 B. 101 C. 120 D. 121 11. 下面程序执行后,i的值是( ) main( ) { int a [5]={1,2,3,4,5},i=2 printf(″%d″,a[i++]); } A. 1 B. 2 C. 3 D. 4 12. 下面程序的输出结果是( ) main( ) { int i, x[3][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<4;i+=2) printf(″%d″, x[i][1]); } A. 5 1 B. 5 2 C. 8 2 D. 9 3 13. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是( ) A. 由系统自动指定对应实参和形参是否共用存储单元 B. 对应实参和形参各占一个独立的存储单元 C. 对应实参和形参共用一个存储单元 D. 可以由用户指定对应实参和形参是否共用存储单元 14. 下面叙述中不正确的是( ) A. 不同函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在一个函数内部定义的变量只能在本函数范围内有效 D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效 15. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是( ) A. a[1][2] B. a[1] C. *(p+1*10+2) D. *(a[1]+2) 16. 下面定义不正确的是( ) A. struct star B. struct star { { int id int id; char *name; char *name; } star1={1001, ″Moon″}; }; star1={1001, ″Moon″}; C. struct D. struct star { { int id; int id; char *name; char *name; } star1={123, ″Sun″}; } star1; 17. 下面各个位运算符的优先级从左到右依次升高的是( ) A. | ^ & >> B. ^ >> & ~ C. << | ^ ~ D. ~ | & >> 18. 设有说明:int u=1, v=14;表达式u+v>>2的值是( ) A. 0 B. 3 C. 5 D. 7 19. 如果将文件指针fp指向文件末尾,正确的语句是( ) A. feof(fp); B. rewind(fp); C. fseek(fp,0L,0); D. fseek(fp,0L,2); 20. 下面程序段中,不能完成的功能是( ) FILE *fp; char ch =′v′; fp=fopen(″boy″, ″rb+″); fputc(ch,fp); A. 建立文件指针fp与文件boy的联系 B. 从boy文件中读取一个字符 C. 向boy文件中写一个字符 D. 打开名为boy的二进制文件 二、多项选择题(本大题共5小题,每小题2分,共10分)在每小题列出的五个备选项中有二至五个是符合题目要求的。 21. 总线是连接微机CPU、内存和外设之间传送信号的公共通道,微机的总线包括有 A. 电源线 B. 数据线 C. 地址线 D. 控制线 E. 网络线 22. 若定义 char c[11]; 可将字符串″I am a boy″ 赋给数组c,下面正确的选项有 A. c=″I am a boy″; B. getchar(c); C. gets(c); D. scanf(″%s″,c); E. for(i=0;i<10;i++) scanf(″%c″,&c[i];c[10])=’\0’; 23. 若有如下定义和语句,则能正确表示数组a首元素地址的表达式有 int a[10], *p; p=a; A. a[0] B. a C. p+1 D. p E. *p 24. 设有说明:int x=1, y=3; 下面表达式的值为2的有( ) A. y&~x B. x^y C. x|y D. y|x>>1 E. x<<1|y>>2 25. 在C语言中,关于符号FILE下面说法正确的有( ) A. FILE是C的关键字 B. FILE表示一种关于文件参数的结构体类型 C. FILE表示一种关于文件参数的结构体变量 D. FILE*可以用来说明文件指针 E. 文件指针指向的变量的数据类型是FILE 三、简答题(本大题共4小题,每小题4分,共16分) 26.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 27.什么是“直接递归调用”?什么是“间接递归调用”? 28.判断下面两程序段正确与否,并说明原因。 (1)char str[12]; str=″program″; (2)char *str; str=″program″; 29.设有说明: struct language {long spearer; char country[20];} chinese; 试写出对chinese的成员spearer和country分别赋值1250000000和”China”的C语句。 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。 #include ″stdio. h″ main( ) { int k=100;char m; m=k; putchar(m); printf(″,%d,%c,%o, ″k,m-32,m); } 31.阅读下面程序,并回答问题: main() { int x, y, z, c; scanf(″%d%d%d″,&x, &y, &z); if(x<z){c=y; y=z; z=c;} if(x<z){c=x; x=z; z=c;} if(x<y){c=x; x=y; y=c;} printf(″%d, %d, %d″, x, y, z); } (1)若程序运行时,输入3、2和5,则输出结果是什么? (2)写出程序所实现的功能。 32.阅读下面程序,并回答问题: main( ) { int m, n; m=65; n=14; while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf(″m=%d\n″, m); } (1)程序输出结果是多少? (2)外循环执行完一次时,m和n的值分别是多少? (3)将while(n>m)n-=m;语句删除后,程序运行情况如何? 33.阅读下面程序,并回答问题: gcd(int x, int y) { int temp; while (y){temp=x%y; x=y; y=temp;} return x; } main() { int a, b, y; scanf(″%d, %d″, &a, &b); y=gcd(a,b); printf(″最大公约数是:%d″, y); } (1)gcd函数的返回值类型是什么? (2)若将return x写成return y会得到什么样的结果? 34.阅读下面程序,写出运行结果。 mian( ) { char * str[ ]={″Pascal″, ″C Language″, ″Dbase″, ″Cobol″}; int k; for(k=0; k<4;k++) printf(″%s\n″, str[k]);} 35.阅读下面程序段,写出输出结果。 struct num { float f1; int j; }u={5.6,8},*p=&u; printf(″%.2f,%d\n″,u.f1, u.j); printf(″%.2f,%d\n″, (*p).f1,p->j); 五、程序设计题(本大题共2小题,每小题12分,共24分) 36.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。(从键盘输入n*n个整型数,n≤20) 37.若在c:\tclt路径下有一个名为zz.dat的文本文件,它包括10个按升序排列的整数,且每两个数之间用逗号隔开,现要插入一个整数使该序列仍保持升序,并把新序列写入到c:\tclt路径下名为zzz.dat的文本文件中。 2005年4月计算机基础与程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 1.与二进制数1011.01等值的十进制数是( ) A.7.25 B.11.05 C.11.25 D.19.25 2.Unix是( ) A.单用户、单任务的操作系统 B.单用户、多任务的操作系统 C.多用户、单任务的操作系统 D.多用户、多任务的操作系统 3.下面数据中最大的数是( ) A.(1010001.101)2 B.(121.3)8 C.(97.6)10 D.(51.5)16 4.断电后会使存储器失去信息的是( ) A.CD-ROM B.RAM C.ROM D.硬盘 5.一个二进制数位也称为一个( ) A.word B.byte C.KB D.bit 6.下面转义字符中,表示字符串结束的是( ) A.\ r B.\ n C.\ 0 D.\ f 7.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是( ) A.1个 B.2个 C.4个 D.8个 8.设有int x=2,y,z;执行z=y=x--;后,变量z的值是( ) A.0 B.1 C.2 D.3 9. | |||||