还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
全国2006年4月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.CPU处理数据和指令的基本单位是字(Word),一个字的字长是( )A.8bitsB.16bitsC.32bitsD.与CPU数据总线有关的bit位数
2.与十进制1100等值的十六进制数是( )A.44AB.44CC.54AD.54C
3.退出TurboC
2.0返回系统,在主菜单File项中可选择( )A.LoadB.NewC.SaveD.Quit
4.设有inta=3b=-4c=5;表达式(ab)a+b(a-b,b+4a-=b+4的值是( )A.–1B.0C.3D.
75.若有下列程序段,欲使a=
2、b=3对应正确的数据输入方法是( )(其中CR表示换行)intab;scanf″a=%db=%d″ab;A.2CRB.a=2b=3CRC.a=2b=3CRD.23CR3CR
6.下面程序段的输出结果是( )main{intsp;s=p=5;p=++s;p++;++p;printf″%d\n″p;}A.5B.6C.7D.
87.下列if语句中,有语法错误的是( )A.ifxy;B.ifx=yx+y;C.ifx!=yscanf″%d″xelsescanf″%d″yD.ifxy{x++;y++;}
8.下面程序段执行后的输出结果是( )inti=-1;ifi=0printf″****\n″;elseprintf″%%%%\n″;A.****B.%%%%C.%%%%cD.****c
9.下面程序段的循环次数是( )intk=2;whilek==0printf″%d″k;k--;printf″\n″;A.0次B.1次C.2次D.无限次
10.下面程序段的输出结果是( )a=100;whilea120;a=a+1;printf″%d″a;A.100B.101C.120D.
12111.下面程序执行后,i的值是( )main{inta
[5]={12345}i=2printf″%d″a[i++];}A.1B.2C.3D.
412.下面程序的输出结果是( )main{intix
[3]
[3]={987654321};fori=0;i4;i+=2printf″%d″x[i]
[1];}A.51B.52C.82D.
9313.在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是( )A.由系统自动指定对应实参和形参是否共用存储单元B.对应实参和形参各占一个独立的存储单元C.对应实参和形参共用一个存储单元D.可以由用户指定对应实参和形参是否共用存储单元
14.下面叙述中不正确的是( )A.不同函数中可以使用相同名字的变量B.形式参数是局部变量C.在一个函数内部定义的变量只能在本函数范围内有效D.在一个函数内部的复合语句中定义的变量在本函数范围内有效
15.设有语句inta
[4]
[10]*p=*a;则下面表达式中属于地址表达式的是( )A.a
[1]
[2]B.a
[1]C.*p+1*10+2D.*a
[1]+
216.下面定义不正确的是( )A.structstarB.structstar{{intidintid;char*name;char*name;}star1={1001″Moon″};};star1={1001″Moon″};C.structD.structstar{{intid;intid;char*name;char*name;}star1={123″Sun″};}star1;
17.下面各个位运算符的优先级从左到右依次升高的是( )A.|^B.^~C.|^~D.~|
18.设有说明intu=1v=14;表达式u+v2的值是( )A.0B.3C.5D.
719.如果将文件指针fp指向文件末尾,正确的语句是( )A.feoffp;B.rewindfp;C.fseekfp0L0;D.fseekfp0L2;
20.下面程序段中,不能完成的功能是( )FILE*fp;charch=′v′;fp=fopen″boy″″rb+″;fputcchfp;A.建立文件指针fp与文件boy的联系B.从boy文件中读取一个字符C.向boy文件中写一个字符D.打开名为boy的二进制文件
二、多项选择题本大题共5小题,每小题2分,共10分
21.总线是连接微机CPU、内存和外设之间传送信号的公共通道,微机的总线包括有( )A.电源线B.数据线C.地址线D.控制线E.网络线
22.若定义charc
[11];可将字符串″Iamaboy″赋给数组c下面正确的选项有( )A.c=″Iamaboy″;B.getcharc;C.getsc;D.scanf″%s″c;E.fori=0;i10;i++scanf″%c″c[i];c
[10]=’\0’;
23.若有如下定义和语句,则能正确表示数组a首元素地址的表达式有( )inta
[10]*p;p=a;A.a
[0]B.aC.p+1D.pE.*p
24.设有说明intx=1y=3;下面表达式的值为2的有( )A.y~xB.x^yC.x|yD.y|x1E.x1|y
225.在C语言中,关于符号FILE下面说法正确的有( )A.FILE是C的关键字B.FILE表示一种关于文件参数的结构体类型C.FILE表示一种关于文件参数的结构体变量D.FILE*可以用来说明文件指针E.文件指针指向的变量的数据类型是FILE
三、简答题(本大题共4小题,每小题4分,共16分)26.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?27.什么是“直接递归调用”?什么是“间接递归调用”?28.判断下面两程序段正确与否,并说明原因
(1)charstr
[12];str=″program″;
(2)char*str;str=″program″;
29.设有说明structlanguage{longspearer;charcountry
[20];}chinese;试写出对chinese的成员spearer和country分别赋值1250000000和”China”的C语句
四、阅读分析题(本大题共6小题,每小题5分,共30分)30.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)#include″stdio.h″main{intk=100;charm;m=k;putcharm;printf″%d%c%o″km-32m;}
31.阅读下面程序,并回答问题main{intxyzc;scanf″%d%d%d″xyz;ifxz{c=y;y=z;z=c;}ifxz{c=x;x=z;z=c;}ifxy{c=x;x=y;y=c;}printf″%d%d%d″xyz;}
(1)若程序运行时,输入
3、2和5,则输出结果是什么?
(2)写出程序所实现的功能32.阅读下面程序,并回答问题main{intmn;m=65;n=14;whilem!=n{whilemnm-=n;whilenmn-=m;}printf″m=%d\n″m;}
(1)程序输出结果是多少?
(2)外循环执行完一次时,m和n的值分别是多少?
(3)将whilenmn-=m;语句删除后,程序运行情况如何?33.阅读下面程序,并回答问题gcdintxinty{inttemp;whiley{temp=x%y;x=y;y=temp;}returnx;}main{intaby;scanf″%d%d″ab;y=gcdab;printf″最大公约数是%d″y;}
(1)gcd函数的返回值类型是什么?
(2)若将returnx写成returny会得到什么样的结果?34.阅读下面程序,写出运行结果mian{char*str[]={″Pascal″″CLanguage″″Dbase″″Cobol″};intk;fork=0;k4;k++printf″%s\n″str[k];}
35.阅读下面程序段,写出输出结果structnum{floatf1;intj;}u={
5.68}*p=u;printf″%.2f%d\n″u.f1u.j;printf″%.2f%d\n″*p.f1p-j;
五、程序设计题(本大题共2小题,每小题12分,共24分)36.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和(从键盘输入n*n个整型数,n≤20)
37.若在c:\tclt路径下有一个名为zz.dat的文本文件,它包括10个按升序排列的整数,且每两个数之间用逗号隔开,现要插入一个整数使该序列仍保持升序,并把新序列写入到c:\tclt路径下名为zzz.dat的文本文件中全国2006年7月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.存储量1MB等于( )A.23字节B.210字节C.220字节D.230字节
2.下面数据中最小数是( )A.
0.11002B.
0.648C.
0.812510D.
0.D
163.在TurboC
2.0中,寻求在线帮助可按键( )A.F1B.F5C.F9D.F
104.设有inta=3b=-4c=0;表达式aba:b)c0的值是( )A.-4B.0C.1D.
35.若有下列程序段,欲使a=
2、b=3对应正确的数据输入方法是( )其中CR表示换行intab;scanf″a=%db=%d″ab;A.2CRB.a=2b=3CRC.a=2b=3CRD.23CR3CR
6.下面程序段的输出结果是( )main{intsp;s=p=5;p=--s;p++;++p;printf″%d\n″p;}A.5B.6C.7D.
87.关于if语句下面叙述正确的是( )A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句B.只有当if语句中表达式的值为假时,才执行if的内嵌语句C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句D.只要if语句中表达式的值非0时,就执行if的内嵌语句
8.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是( )main{intabs;scanf″%d″ab;s=a;ifabs=bs=s*s;printf″%d″s;}A.9B.12C.16D.
259.若intx=0;则whilex==0;的循环次数是( )A.0B.1C.2D.无限次
10.下面程序段的输出结果是( )fori=1;i3;i++{forj=1;j3;j++printf″%d″i+j;printf″\n″;}A.2334B.234C.23D.
2343411.下面程序的输出结果是( )mian{inta
[5]={246810}i;i=2;printf″%d″a[i++];}A.2B.4C.6D.
812.下面程序的输出结果是( )main{inta
[3]
[4]={1357911131517192123};intijk=0;fori=0;i3;i++k=k+a[i]
[0];printf″%d\n″k;}A.27B.33C.39D.
4513.以下正确的函数定义形式是( )A.doublefunintxintyB.doublefunintx;intyC.doublefunintxinty;D.doublefunintxy;
14.关于变量以下不正确的说法是( )A.在不同函数中可以使用相同名字的变量B.形式参数是全局变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量是局部变量
15.设有语句inta
[4]
[10]*p=*a;则下列表达式中不是地址表达式的是( )A.a
[1]
[2]B.a
[3]C.*p+1*10+2D.p+1*10+
216.下面关于结构体类型变量定义不正确的是( )A.structscoreB.struct{{intmath;intmath;intChinese;intChinese;}LiWang;}LiWang;C.structscoreD.structscore{{intmath;intmath;intChinese;intChinese;};};LiWang;structscoreLiWang;
17.下面各个运算符的优先级从左到右依次降低的是( )A.|^B.~|C.^|D.~^
18.设有说明intu=1v=2;表达式u+v2的值是( )A.-1B.1C.9D.
1219.下面程序段中,不能完成的功能是( )FILE*fp;charch;fp=fopen″file1″″rb+″;ch=fgetcfp;A.建立文件指针fp与文件file1的联系B.从file1文件中读一个字符C.向file1文件中写一个字符D.打开名为file1的二进制文件
20.在格式freadstusizenfp;中,下面说法不正确的是( )A.stu是内存中存放数据的首地址B.n表示读n次C.size是一个数据块的字节数D.fp表示文件指针
二、多项选择题本大题共5小题,每小题2分,共10分
21.微机系统的主机包含的部件有( )A.输入设备B.存储器C.输出设备D.运算器E.控制器
22.下面各选项中,能正确进行字符串操作的有( )A.chars[]={′a′′b′′c′′d′′e′′\0′};B.chars
[10];s=″abcde″;C.chars
[10];strcpys″abcde″D.chars
[10];getchars;E.chars
[10];getss;
23.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有( )doublea
[5]*p1p1=a;A.aB.p1+1C.*p1D.a
[1]E.p
124.设有说明intu=1v=3w=7;下面表达式的值为3的有( )A.w1v|uB.uvwC.u|vwD.wv1E.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.设有说明structflower{char*part;char*color;}mum;char*part_of_flower
[3]={″花″,″茎″,″叶″};char*seven_color
[7]={″赤″,″橙″,″黄″,″绿″,″青″,″蓝″,″紫″};试写出将mum的成员part定义为″花″、成员color定义为″黄″的C语句
四、阅读分析题(本大题共6小题,每小题5分,共30分)30.阅读下面程序,写出运行结果main{inta=789xyz;x=a/100;y=a/10-10*x;z=a-10*y-100*xprintf″%d%o%x%d″xyz100*z+10*y+x;}
31.阅读下面程序,并回答问题main{intabxy;scanf″%d%d″ab;x=a*a+b*bifx100{y=x/100;printf″%d″y;}elseprintf″%d″a+b;}
(1)若程序运行时,输入6和9,输出结果是什么?
(2)说明程序的功能32.阅读下面程序,并回答问题main{intuvabtr;u=24;v=16;ifuv{t=u;u=v;v=t;}a=u;b=v;whiler=b%a!=0{b=a;a=r;}printf″a=%d\n″a;}
(1)程序输出结果是什么?
(2)该程序完成什么功能?
(3)若将while循环替换为do-while循环,请写出相应的程序段33.阅读下面程序,写出运行结果inta=5b=5;chang1{inta=4;printf″a1=%db1=%d\n″ab++;}chang2intaintb{a++;b--;}main{chang1;a++b++;chang2ab;printf″a2=%db2=%d\n″ab;}
34.阅读下面程序,写出运行结果#includestdio.h#includestring.hmain{charp1p2srt
[50]=″abc″str1
[50];p1=″abc″;p2=″abc″;putsstr;strcpystr1p1;p1=str1;printf″%s\n″strcatp1p2;strcpystr+1p1;printf″%s\n″str;}
35.设有说明语句int*p;请分析下面语句的含义p=int*mallocsizeofint;freep;
五、程序设计题(本大题共2小题,每小题12分,共24分)36.从键盘输入n*n个整型数(n≤20)组成n行n列数组,打印出其上三角数组37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中(第一行的″$″在第20列)$$$$$$$$$$$$$$$$全国2007年4月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)1.I/O设备指的是计算机的( )A.存储设备B.输入和输出设备C.控制器D.运算器2.具有只读功能的内存储器是指( )A.ROMB.RAMC.硬盘D.CD-ROM3.十进制数-5在八位的微机内的存储形式是( )A.00000101B.10000101C.11111010D.111110114.C语言源程序的基本单位是( )A.过程B.函数C.子程序D.语句5.设有intp,q;以下不正确的语句是( )A.p*=3;B.p/=q;C.p+=3;D.p=q;6.若有下列程序段,欲使a=2,b=3,对应正确的数据输入方法是(其中CR表示换行)( )inta,bscanf"%d%d",a,b;A.2CRB.a=2b=3CRC.a=2,b=3CRD.2,3CR3CR7.设有说明intx=0y=2;则执行ifx=0y=1+x;elsey=x-1;后,变量y的值是( )A.-1B.0C.1D.28.下面程序的输出结果是( )main{intx=5y;ifx0y=1;y=0;ifx0y=-1;printf"%d"y;}A.-1B.0C.1D.59.执行下面程序段后,输出字符B的个数是( )x=0;whilex=5{printf"B";x+=2;}A.0个B.3个C.5个D.6个10.在下述程序中,for循环执行的次数是( )main{inti=0j=10k=2s=0;for;;{i+=k;ifij{printf"%d\n"s;break;}s+=i;}}A.4B.5C.6D.711.若有定义inta
[10];则数组元素的下标的下限和上限分别是( )A.0和1B.1和9C.0和9D.1和1012.下列说法不正确的是( )A.一个源程序文件由一个或多个函数组成B.一个C程序由一个或多个源程序文件组成C.一个C程序以函数为独立的编译单位D.一个C程序必须有一个main函数13.在C语言中,确定函数返回值的类型由( )A.return语句中的表达式类型决定B.调用该函数的主函数类型决定C.调用函数时临时决定D.定义函数时所指定的函数类型决定14.若有以下定义和语句,且0≤i<10,则对数组元素地址的正确表示是( )inta[]={0123456789}*p;p=a;A.a+1B.a++C.pD.p[i]15.若有以下说明chars
[10]=“ABCDEFGH”*p=s;不能表示字符C的是( )A.s
[2]B.s
[3]C.s['c'-'a']D.*p+216.有下列程序funcintxintyint*jiaint*jian{*jia=x+y;*jian=x-y;}main{inti=10j=3x1x2;funcijx1x2;printf"%dd\n"x1x2;}则其运行结果是( )A.0,0B.10,3C.13,7D.7,1317.设有结构体的定义如下structdata{intn;charc;floatf;};则sizeofstructdata的值是( )A.1B.3C.7D.1118.如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是( )A.#includestdio.hB.#includemath.hC.#includestring.hD.#includemalloc.h19.设有说明intx=12y=3;则x¦y的值是( )A.0B.3C.12D.1520.测试文件是否结束函数的函数名是( )A.feofB.EOFC.eofD.FEOF
二、多项选择题(本大题共5小题,每小题2分,共10分)21.下列设备中属于外存储设备的有( )A.RAMB.光盘C.硬盘D.软盘E.磁带22.设a=1b=3c=0;下面表达式的值为1的有( )A.!ab||ac+1B.a-b+3C.ab==cD.a=0b=10E.baac23.设有说明chars
[20];( )下面各项中能够正确的将一个字符串"abcd"赋给s数组的有A.s="abcd";B.getss;C.scanf"%s"s;D.strcpys"abcd";E.strcpy"abcd"s;24.关于结构体,下面各项中不正确的有( )A.structperson{longbh;char*name;intage;}psl={9100"wang"20}*pst;pst=psl;printf"%d"*pst→age;B.structmy_data{intnum;structmy_data*next;};C.structtest{char*course;char*class}D.structworker{charname
[9];floatgz;}Li={"LiPing"
532.67};E.structint_num{inti_num;structint_num*next;}ione*pi;pi=ione;25.设有说明intx=1y=2z=3;则下面表达式的值为0的有( )A.xyzB.x¦y¦zC.x^x+y^yD.zyE.x0xff00
三、简答题(本大题共4小题,每小题4分,共16分)26.C语言中的运算符“=”与运算符“==”的意义相同吗?为什么?27.变量的存储类别分为哪几种?它们分别存储在什么区域?28.试定义一个三行的二维字符数组s,并用"Iamaboy""youareagirl""heisateacher"对其进行初始化29.设有说明inta
[2]
[3];请用四种方式来表示数组元素a
[1]
[2]
四、阅读分析题(本大题共6小题,每小题5分,共30分)30.从键盘输入字符A时,写出下面程序的运行结果(注字符A的ASCII码是65)#include"stdio.h"main{charch;ch=putchargetchar;printf"%d%o%c"ch+1ch+1ch+32;}31.阅读下面程序voidmainvoid{ints=0n=0x;label:scanf"%d"x;ifx0{s+=x;n++;printf"s=%dn=%deven=%f\n"sn
1.0*s/n;}ifx!=0gotolabel;elseprintf"goodbye!";}当依次输入12-3-65130↙时,写出程序的运行结果32.阅读下面程序,写出程序的运行结果chara[]={'9','8','7','6','5','4','3','2,'1','0','\0'};voidmainvoid{inti=8j;forj=0;j4;j++printf"%s\n"a[i-j];}33.请写出下面程序的运行结果longfunintk{longfac;ifk==0return1;else{fac=k*funk-1;printf"fac=%ld\n"fac;}returnfac;}voidmainvoid{intn=3;printf"result=%ld\n"funn+1/n;}
34.阅读下面程序,写出运行结果#includestdio.h#includestring.hvoidfchar*s{char*tc*p=s;fort=s+strlens-1;st;s++t――{c=*s*s=*t*t=c;printf"%s\n"p;}}voidmainvoid{chara
[20]="abcdefg";fa;}35.阅读下面程序段,说明其功能intxy=0k;FILE*fp;fp=fopen"data.txt""rb";fork=0;k5;k++freadxsizeofint1fpy+=x;printf"%d"y;fclosefp;
五、程序设计题(本大题共2小题,每小题12分,共24分)36.从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素的累加和并输出该累加和37.在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字若输入的整数不在1~12之间,则打印“Illegalmonth”全国2007年7月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)1.微机中信息的最小单位是( )A.bitB.byteC.KBD.word2.组成计算机硬件系统的是( )A.控制器、运算器和内存储器B.CPU、显示器和键盘C.I/O设备、CPU和内存储器D.控制器、内存储器和I/O设备3.
(75)10的二进制的表示是( )A.
(01001001)2B.
(01001010)2C.
(01001011)2D.
(01001100)24.字符串常数“CHINA”在内存中存储时占的字节数是( )A.5个B.6个C.7个D.8个5.如果a=1,b=2,c=3,d=4,则表达式aba:cdc:d的值是( )A.1B.2C.3D.46.输出字符串的格式说明符是( )A.%cB.%sC.%uD.%g7.设有说明intx=0y=0;则执行ifx++y=1+x;elsey=2+x;后,变量y的值是()A.0B.1C.2D.38.以下程序段所表示的数学函数关系是( )y=-1ifx!=0ifx0y=1;elsey=0;A.B.C.D.9.执行下面程序段后,输出字符A的个数是( )fori=0;i=5;i+=2printf″A″;A.0个B.3个C.5个D.6个10.若有定义chara[]=″computer″;则存储字符m的数组元素是( )A.a
[1]B.a
[2]C.a
[3]D.a
[4]11.若有定义inta
[4]={1234};则a[a
[3]-a
[1]*a
[1]]的值是( )A.1B.2C.3D.412.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )A.自动(auto)B.静态(static)C.外部externD.寄存器(register)13.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为( )A.源文件的全部范围B.本程序的全部范围C.本函数的全部范围D.从定义该变量的位置开始至本文件末尾14.下列定义中,不是指针数组定义的是( )A.int*p
[5];B.float*q
[4];C.int*r
[6];D.char*w
[7];15.若有语句int*pointa=4;和point=a;下面代表地址的一组选项是( )A.apoint*aB.*aa*pointC.*point*pointaD.a*pointpoint16.下列程序的运行结果是( )#difineN9funchars[]{char*p=s+4*q=s;inti;fori=0;i4;i++p++q++{s[i]=*p;s[i+4]=*q}}main{charss[N]=″ABCDEFGH″;funssprintf″%s\n″ss;}A.EFGHABCDB.EFGHEFGHC.ABCDEFGHD.ABCDABCD17.设有结构体的定义如下( )structcjd{longbh;int*q;charxm
[9];};则sizeofstructcjd的值是A.14B.15C.16D.1718.设有说明:intx=0x15y=0x0f;则xy的结果是( )A.0x5B.0x15C.0xf0D.0xf519.如果在程序中要使用系统提供的函数strlen则需要书写的编译预处理命令是( )A.#includestdio.hB.#includemath.hC.#incLudestring.hD.#incLudemalloc.h20.由FILE*fp;fp=\fopen″a:\\abc.txt″,″r+″;可以推知fopen函数的原型是( )A.char*fopenchar,char;B.FILE*fopenchar*char*;C.intfopenchar*char*;D.FILFfopenchar*char*;
二、多项选择题(本大题共5小题,每小题2分,共10分)21.下面基本结构和特性中符合结构化程序设计的要求的有( )A.选择结构B.循环结构C.顺序结构D.各结构之间只有一个入口,至多两个出口E.各结构之间只有一个入口,一个出口22.若有intx;float;y下面结果为整型数的表达式有( )A.intx+yB.intx+yC.´a´+xD.x+intyE.x*y23.设有定义inta
[2]
[3];下面关于数组元素引用正确的有( )A.a
[0]
[3]B.a
[0]
[0]C.a
[2]
[1]D.a
[1]
[2]E.a
[2]
[3]24.设有关于结构体类型的定义:( )structcar{char*name;floatprice;structcar*next;}*p*head=NULL;下面各选项中正确的有A.p=structcar*MALLOCsizeofstructcar;B.p=structcar*mallocsizeofstructcar;C.p.next=head;D.p-next=head;E.p=structcar*mallocsizeofcar;25.设有说明:intu=1v=5;则下列表达式的值为1的有( )A.uvB.v2C.u^uD.u¦vE.u3/5
三、简答题(本大题共4小题,每小题4分,共16分)
26.什么是常量?C语言中常量有哪几种类型?27.用while循环结构完成下面程序段的功能s=0fori=1;i=10;i++s+=i;28.若在一个函数中对变量ab有如下定义staticinta;autointb;简述它们之间的异同29.设有说明inta
[3]
[4]*p
[4]=a;请解释p的含义,并用p给出数组元素a
[2]
[1]的二种表示
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.从键盘输入字符A时,写出下面程序的运行结果(注字符A的ASCII码是65)#include″stdio.h″main{intk;k=getchar;putchark;printf″%d%x%c″kkk+32;}
31.阅读下面程序,写出运行结果main{intxsum=0;loop1:scanf″%d″x;ifx!=8{ifx%2==0{sum+=x;printf″sum=%d\n″sum;}gotoloopl;}sum-=x;printf″sum=%d\n″sum;}当程序执行时输入数据12345678↙,写出程序运行结果32.阅读下面程序,写出运行结果main{inta
[3]
[3]ij;fori=0;i3i++forj=0j3;j++a[i][j]=i+jfori=0;i3;i++{forj=0;j=i;j++printf″%2d″a[i][j];printf″\n″;}}
33.阅读下面程序,写出运行结果longfactorintm{longintfc;ifm==0¦¦m==1fc=1;elsefc=factorm-1*m;returnfc;}main{intn;longintfac;forn=1;n5;n++{fac=factorn;printf″%Id\n″fac;}}
34.阅读下面程序,写出运行结果voidflchara[]charb[]{inti;fori=0;a[i];i++b[i]=a[i];b[i]=´\0´;}voidf2char*cchar*t{while*c++=*t++;}main{chara
[20]=″basic″b
[20]=″fortran″c
[20]=″pascal″;char*p=b*q=c;flba;printf″%s\n″b;f2pq;printf″%s\n″b;}
35.阅读下面程序段structnumber{intu
[2];}v={1115}*p=v;intx;请分析下面语句的含义x=*pu
[0]p-u
[1]*p.u
[0]:p-u
[1];
五、程序设计题(本大题共2小题,每小题12分,共24分)36.用以下近似公式编一个求的近似值的程序,其中n的值由键盘输入37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的lx.dat文件中(第一行的″$″在第20列)$$$$$$$$$$$$$全国2008年4月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)1.存储容量1KB等于( )A.字节B.字节C.字节D.字节2.在计算机中指令通常是由( )A.操作码、操作数组成B.源操作数、目标操作数组成C.反码、补码组成D.直接寻址、目的寻址组成3.与十进制数39等值的二进制数是( )A.00100111B.01001001C.10100111D.010110004.下列设备中属于输出设备的是( )A.扫描仪B.键盘C.鼠标D.显示器5.整数-2在机器内存中的表示是( )A.1000000000000010B.1111111111111110C.11111111111111101D.11111111111111116.下列运算符中优先级最低的是( )A.B.!C.%D.==7.设有inta=3b=-4,c=5;表达式++a-c+b++的值是( )A.-6B.-5C.-4D.-38.以十进制无符号形式输出整数的格式说明符是( )A.%uB.%xC.%oD.%d9.下列程序段的输出结果是( )voidmainvoid{inyy=1x=5;ifx0y=-1;ifx=0y=0;printf"%d\n",y;}A.-1B.0C.1D.510.执行如下程序段后x的值是( )intx=1y=-1;ify0x-=y;elsex+=y;A.-1B.0C.1D.211.执行while表达式循环的条件是( )A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时12.下列程序段输出的结果是( )fori=1;i3;i++forj=1;j3;j++printf"%d"i+j;A.2334B.234C.23D.2343413.若有定义ints
[4]={1234};则a[a
[2]-3*a
[0]+1]的值是( )A.1B.2C.3D.414.下列关于C语言程序说法正确的是( )A.C语言程序总是从有定义的函数起顺序执行B.在C语言程序中被调用函数必须在main函数中定义C.C语言程序中的main函数必须放在程序的开始部分D.C语言程序总是从main函数起开始执行15.若有inta[]={12345678910}且0≤i<10则对数组元素地址正确表示的是( )A.a+1B.a++C.aD.a[i]16.下列关于结构体类型定义正确的是( )A.structABCB.structABC{{intainta;charbcharb;char*pchar*p;}}C.structABCD.structABC{{inta;intacharb;charbchar*p;char*p};};17.下列位运算符中表示按位异或操作的是( )A.~B.│C.^D.18.下列各个位运算符的优先级从左到右依次升高的是( )A.│~B.│~C.│~D.~│19.设有说明:intu=1v=3;则表达式u=v的值是( )A.0B.1C.3D.820.如果文件存储的是数据在内存中存放的字节形式则该文件是( )A.ASCII文件B.文本文件C.二进制文件D.设备文件
二、多项选择题(本大题共5小题,每小题2分,共10分)21.存储在下列哪些设备中的信息可以长期保存( )A.RAMB.ROMC.硬盘D.软盘E.光盘22.下列语句中正确的有( )A.ifxy;B.ifx=yx!=0x+=y;C.ifx!=yscanf“%dx;elsescanf“%d”y;D.ifxy{x++;y++;}E.ifxyx++;y++;elsex――;y――;23.下列循环将会产生死循环的有( )A.while1;B.do{}while0;C.do{}while1;D.fork=1;k―10;k++;E.fork=1;k=10;k++k――;24.设有二维数组inta
[4]
[3];下列表示数组元素a
[0]
[2]地址的有( )A.a
[2]B.*aC.*a+2D.a
[0]+2E.a
[0]
[2]25.设有关于结构体类型的定义:( )structdata{intnum;structdata*next;}*p*head=NULL;下列语句中正确的有A.p=structdata*mallocsizeofstructdata;B.p=structdatamallocsizeofstructdata;C.p=structdata*mallocsizeofdata;D.p->next=head;E.p.next=head;
三、简答题(本大题共4小题,每小题4分,共16分)
26.C语言中的运算符“=”与数学中的“=”的意义相同吗?为什么?
27.简述C语言标准库函数strcpy的格式或函数原型与功能
28.请按照下列要求写出相应的C语句假设float类型的变量x1和x2已经定义过,且x1已经初始化为
7.31定义指向float类型变量的指针变量fpt;2使fptr指向x1;3利用fptr将fptr指向变量的值赋给x2;4利用fptr输出fptr指向变量的值
29.freadstusizenfp;中stu、size、n和fp的含义各是什么?
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.请阅读分析下列程序,然后写出运行结果main{inta=0b=1;printf"a=%db=%d\n"ab;a+=b;b+=a;printf"a=%db=%d\n"ab;}
31.若分别输入0和5时请阅读分析下列程序然后分别写出两种输入情况下程序的运行结果main{intxy;scanf"%d"x;ifx2x=10y=x*x+2;elseifx-1x=2y=2*x;elseifx-1y=x-1;ify!=-1printf"%dy;elseprintf"error";}
32.请阅读分析下列程序,然后写出程序的循环次数和运行结果mainvoid{inti;fori=1;i6;i++{ifi%2{printf"@";continue;}printf"*";}printf"\n";}
33.请阅读分析下列程序,然后写出程序的运行结果voidfun;voidmainvoid{fun;fun;}voidfun{staticinta
[3]={012}b=10;inti;ifb==10{fori=0;i3;i++a[i]+=a[i];fori=0;i3;i++printf"%d"a[i];printf"b=%d\n"b;b++;}else{fori=0;i3;i++a[i]*=a[i];fori=0;i3;i++printf"%d"a[i];printf"b=%d\n"b;}}
34.请阅读分析下列程序然后写出程序的运行结果voidmainvoid{inta[]={123456}*p;p=a;p++;*p+3+=2;printf"%d\n"*p;printf"%d\n"*p+3;}
35.设有下列创建单向链表的部分程序#include"malloc.h"#include"string.h"structautomobile{chartype
[20];intload;structautomobile*next;}*head=NULL;voidmainvoid{structautomobile*p;char*automobile_type
[3]={"Red_Rock"Yellow_River""East_Wind"};intautomobile_load
[3]={241842}j;forj=0;j3;j++{p=
①______________mallocsizeofstructautomobile;strcpy
②_____________automobile_type[j];p->load=automobile_load[j];p->next=head;head=p;}}请阅读分析程序然后写出
①和
②下划线处应该填写的内容
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.若数组a中有十个整数825-3,7,-9,0,-4,10,15请编程求出该数组中的最大值和最小值
37.设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来全国2008年7月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)1.一个完整的计算机系统应该包括( )A.主机和外设B.主机和操作系统C.硬件系统和系统软件D.硬件系统和软件系统2.若用八位二进制表示一个整数,则-4在计算机中的表示是( )A.11111100B.11111011C.10000100D.000001003.下列转义字符中,表示回车的是( )A.\0B.\nC.\rD.\f4.若定义doubled;则d在内存中分配的字节数是( )A.1个B.2个C.4个D.8个5.下列表达式中运算结果为3的表达式是( )A.(-7)%4B.7/4+2C.7/4*4-4D.8/3+8/36.设有inta=3,b=-4,c=5;表达式a++-c+b++的值是( )A.-6B.-5C.-4D.-37.在printf语句中,格式说明符u表示( )A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数8.若有inta=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是( )ifab{ifc==dx=c;}elsex=d++A.4B.5C.6D.79.关于switch中的表达式,正确的说法是( )A.它必须是算术表达式B.它必须是关系表达式C.它必须是逻辑表达式D.它可以是任意类型的表达式10.对do语句while表达式;结构的循环,下列说法正确的是( )A.当表达式的值为非零时不执行循环体B.循环体至少被执行一次C.当表达式的值为零时循环体一次也不执行D.循环体仅被执行一次11.只能在循环语句中用于结束本轮循环的语句是( )A.break;B.continue;C.gotoD.if12.若有定义inta
[4]={1,2,3,4};则a[a
[1]*a
[3]+a
[0]3-1]的值是( )A.1B.2C.3D.413.若有定义inta
[3]
[5];则数组a在内存中分配的字节数是( )A.8B.15C.24D.3014.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?( )A.getsstrlB.getsstrl,str2C.getcharstrlD.getcharstrl,str215.下列关于函数的描述中正确的是( )A.C程序中有调用关系的所有模块必须放在同一个源文件中B.函数必须有返回值,否则不能使用函数C.C程序必须由一个或一个以上函数构成D.C函数既可以嵌套定义又可以嵌套调用16.设有下列程序,则( )intd=10;main{inta=3;printf“%d,%d\n”,a,d;}A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量17.若有说明int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是( )A.p1=m;B.p2=n;C.pl=m;p2=p1;D.*p1=m;18.下列为指针数组定义的是( )A.float*
[6];B.floatp
[6];C.float*;D.float*p
[6];19.设有说明FILE*fp;对于fp=fopen″c:\\abc.dat″,″rb″;语句,下列说法中不正确的是( )A.fp将指向abc.dat文件B.以只读方式打开二进制文件C.打开文件的文件名是abc.datD.以读写方式打开ASCII码文件20.ASCII码文件的结束可以用符号常量EOF表示EOF的值是( )A.0B.1C.-1D.不能确定的值
二、多项选择题(本大题共5小题,每小题2分,共10分)21.下列数据数值相等的有( )A.
(11111111)2B.
(377)8C.
(255)10D.(FF)16E.
(256)1022.以下if语句中没有语法错误的有( )A.ifx0printf″%f″,x;B.ifx0{x=x+y;printf″%f″,x}elseprintf″%f″,xelseprintf″%f″,x;C.ifx0{x=x+y;printf″%f″,x;}D.ifx0x=x+y;printf″%f″,x;elseprintf″%f″,x;elseprintf″%f″,xE.ifxyx++;elsex--;23.设有程序如下main{inti,j,a[]={1,3,5,7,9,11,13,15};i=5;switchi{default;printf″%d\n″,a[i];case1:printf″%d\n″,a
[3];case2:printf″%d\n″,a[++i];break;case3:printf″%d\n″,a[--i];}}上述程序的输出结果不包括( )A.5B.7C.9D.11E.1324.设有定义及赋值( )inta
[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;则引用a中值为5的元素的正确形式是A.a
[5]B.a
[4]C.*a+5D.p
[5]E.*p+525.设有说明intu=1,v=3,w=7;下列表达式的值为7的有( )A.uv|wB.u|v|wC.u^v|wD.wv|uE.u^w|v
三、简答题(本大题共4小题,每小题4分,共16分)26.C语言中整型常量有几种形式,它们是如何表示的?27.写出语句if表达式语句1else语句2的执行过程28.若定义char*str;然后用getsstr;输入字符串可以吗?为什么?29.单个字符的读函数fgetcfp,其中fp表示什么?该函数的功能是什么?
四、阅读分析题(本大题共6小题,每小题5分,共30分)30.阅读下面程序并写出运行结果main{inta=47,x,y,z,w;x=a/2;y=a%2;z=a++;w=++a;printf″%d,%d,%d,%d″,x,y,z,w;}31.阅读分析下面程序,请说明程序的功能;然后写出当键盘输入14时,程序的运行结果main{intx;scanf″%d″,x;ifx%5==0x%7==0printf″yes″;elseprintf″no″;}32.阅读下面程序并写出运行结果main{staticinta[]={5,3,7,2,1,5,4,10};ints=0,k;fork=0;k8;k+=3{s+=a[k];printf″a[%d]=%d,s=%d\n″,k,a[k],s;}}33.阅读下面程序并写出运行结果checkintn,intk{intm;do{m=n%10;n=n/10;}whilek--;returnm;}main{intj,y=2345;forj=1;j4;j++printf″j=%d,numberis%d\n″,j,checky,j;}34.阅读分析下面程序并写出运行结果main{char*a[]={″Pascal″″CLanguage″″dBase″″Cobol″};intj;forj=3;j=0;j--printf″%s\n″a[j];}35.阅读下面程序并说明语句x=p-d
[0]p-d
[1]p-d
[0]p-d
[1];的含义,然后写出程序的运行结果structnumber{intd
[2];}n={128}*p=n;main{intx;x=p-d
[0]p-d
[1]p-d
[0]:p—>d
[1];printf″%d″x;}
五、程序设计题(本大题共2小题,每小题12分,共24分)36.从键盘上输入一个正整数nn≤10,求n的阶乘并输出结果37.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中n、m均不超过20
(1)按n行m列输出该二维数组;
(2)求出该二维数组全部元素的平均值;
(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来全国2009年4月计算机基础与程序设计试题
一、单项选择题本大题共20小题,每小题1分,共20分
1.衡量存储器的基本单位是()A.bitB.byteC.KBD.word
2.Windows操作系统是()A.单用户、单任务B.单用户、多任务C.多用户、单任务D.多用户、多任务
3.组成微机主存储器的是()A.CD—ROM和RAMB.硬盘和RAMC.硬盘和CD—ROMD.ROM和RAM
4.下列数据中最大数是()A.
(1010010)2B.(
123.4)8C.
84.510D.
55165.在TurboC
2.0中,运行一个程序后,要查看运行结果可按键()A.Alt+F1B.Alt+F5C.Alt+F9D.Alt+F
106.下列是合法C语言常量的是()A.eB.7E
4.0C.E4D.-
9.13E-
307.设有inta=3b=-4c=5;表达式(ab)a:bc0的值是()A.0B.1C.3D.
48.以指数形式输出实型数的格式说明符是()A.%uB.%xC.%fD.%e
9.下列程序的输出结果是()main{intx=5y;ifx0y=-1;ifx==0y=0;y=1;printf″%d″y;}A.-5B.-1C.0D.
110.下列程序段的输出结果是()i=1;whilei3{j=1;whilej=i{printf″%d″i+j;j++;}i++;printf″\n″;}A.2334B.234C.23D.
2343411.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是()A.putsstr1str2B.putsstr2C.putcharstrlD.putcharstr1str
212.下列关于函数的说明中不正确的是()A.函数名后面可以不要一对圆括号B.函数参数类型必须作说明C.函数形参个数可以是一个、多个或没有D.空函数被调用时不做任何工作
13.若有定义inta
[5];则a数组中首元素的地址可以表示为()A.aB.a+1C.aD.a
[1]
14.设有chars=″\ta\017bc″;则指针变量s指向的字符串在内存中所占的字节数是()A.5B.6C.7D.
915.下列关于结构体类型的定义正确的是()A.structtreeB.structtree{intbranch;{intbranch;charname
[20];charname
[20]charrelation;charrelation};};C.structtreeD.structtree{intbranch{intbranch;charname
[20]charname
[20];charrelationcharrelation;}}
16.下列各个位运算符的优先级从左到右依次降低的是()A.|ˆB.ˆ|C.~ˆ|D.~|ˆ
17.设有说明:intu=1v=3w=5;表达式v~~u|w的值是()A.3B.5C.6D.
818.设有下列程序()#include″stdio.h″main{unsignedx=8y=2;printf″%d\n″y|~xy;}该程序的运行结果是A.-1B.0xffC.127D.
6553519.若有定义∶#definePxxxx+1和说明语句inta=2;则表达式P
(2)的值是()A.6B.8C.9D.
1020.在语句fgetsstrnp;中,下列说法不正确的是()A.str是字符指针B.一次可以读n个字符C.str是字符数组名D.一次可以读n-1个字符
二、多项选择题本大题共5小题,每小题2分,共10分
21.下列关于计算机的叙述中正确的是()A.CPU是计算机系统的部件B.I/O设备不是计算机系统的部件C.计算机区别于其他计算工具的本质特点是能存储数据D.“裸机”是指不配置任何软件的计算机E.计算机指令是控制计算机进行操作的命令
22.设有inta=3b=-5;下列表达式的值等于1的有()A.ab0B.fabsb-a-10C.abb0D.a2-5==b2aE.a+b
023.下列关于break、goto、continue语句的说法中正确的是()A.break语句能够用于循环语句中B.break语句不能用于switch语句中C.goto语句可以用于直接从多层循环中退出D.continue语句可用于跳出循环体E.continue语句不能用于switch语句中
24.若有定义:inty
[4]
[4]p
[4];及赋值p=y;则下列语句中可以输出数组元数y
[2]
[0]的值的语句是()A.printf″%d\n″y
[2]
[0];B.printf″%d\n″y
[2]
[0];C.printf″%d\n″p
[2]
[0];D.printf″%d\n″y
[2];E.printf″%d\n″y+2;
25.设有关于结构体类型的定义structworker{intid;charname;floatsalary;}wl={102035″Lihua″
2560.50}p;下列选项中语句语法正确的有()A.p=wl;B.p=wl;C.p-id=wl-idD.p-id=wl.id;E.p.salary=wl.salary;
三、简答题本大题共4小题,每小题4分,共16分
26.有无default对switch语句有什么不同的影响?
27.写出do-while语句的一般形式及其执行过程
28.定义chara[]=″Iamastudent.″str=a;等价于chara[]=″Iamastudent.″str;str=a;吗?为什么?
29.设有说明structvegetable{charpart;charcolor;}clove;charpart_of_vegetable
[3]={″AA″″BB″,″CC″};charseven_color={″11″″22″″33″″44″″55″″66″″77″};请分别写出将clove的成员part指向″BB″,成员color指向″55″的C语句
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读分析下面程序后,写出程序的运行结果#include″stdio.h″main{inta=978xyzijw;x=a/100;y=a-100x/10;z=a-10y-100x;i=yzz:y;j=y=zz:y;w=100x+10i+j;printf″%d%d%d%d\n″xyzw;}
31.阅读分析下面程序后,写出程序的运行结果#include″stdio.h″main{intnm;forn=1;n=5;n++{form=1;m=4;m++printf″%4d″,mn;printf″\n″;}}
32.阅读分析下面程序后,写出程序的运行结果#include″stdio.h″main{intarr
[10]ik=0;fori=0;i10;i++arr[i]=i;fori=1;i=4;i++{k+=arr[i]+i;printf″%5d″k;}}
33.阅读分析下面程序后,写出程序的运行结果#include″stdio.h″intfunintx{intp;ifx==0||x==1return3;p=x-funx-2;printf″%5d″p;returnp;}main{fun9;}
34.阅读下面程序,分析cat函数的功能并写出程序的运行结果#include″stdio.h″voidcatcharschart{whiless++;whiles++=t++!=′\0′;}main{charsl
[80]=″computer″s2
[80]=″Pentium_″;cats2s1;printf″%s\n″s2;}
35.阅读分析下面部分程序structcjd{charname
[9];floatscore
[2]
[2];}x;floatt
[2]
[2]={
70.
565.
083.
092.5};intjk;请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值
37.有若干个学生(不超过50人)的某一门课的成绩放在文件c:\cj.dat中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的人数各有多少人全国2009年7月计算机基础与程序设计试题
一、单项选择题本大题共20小题,每小题1分,共20分
1.内存每个基本单元都有唯一的序号,这个序号称为()A.地址B.字节C.代码D.字
2.计算机对编译型高级语言的执行方式是()A.逐条语句边解释边执行,即解释一条就执行一条B.将整个程序编译完成后再执行,不生成目标代码C.将源程序编译成目标程序,执行连接后的程序D.将源程序解释完毕后再执行
3.下列转义字符中,表示换行的是()A.\0B.\nC.\rD.\f
4.unsignedlong型数的取值范围是()A.-215~215-1B.-231~231-1C.0~216-1D.0~232-
15.设有inta=3;表达式a十=a*=a*=a的值是()A.3B.9C.81D.
1626.下列四种运算符中,优先级最低的是()A.=B.!C.&&D.||
7.下列程序段的输出结果是()main{inta=5,b=3,c;c=a;a=b;b=c;printf″%d,%d\n″,a,b;}A.3,5B.5,3C.5,8D.8,
38.下列程序段所表示的逻辑关系是()ifabifc==dx=l;elsex=2;A.B.C.D.
9.执行下列程序段后,i的结果是()inti=10;switchi{case9i+=l;break;case10i+=l;break;case11i+=1;break;default i+=1;break;}A.10B.1lC.12D.
1310.下列程序段的输出结果是()a=100;doa=a+l;whilea120;printf″%d″,a;A.100B.101C.120D.
12111.关于break和continue语句,下列说法正确的是()A.在循环体中可以用break语句结束本次循环B.在循环体中可以用continue语句结束本次循环C.break语句仅能使用在switch结构中D.可以使用continue语句跳出switch结构
12.若有定义inta
[4]={l,2,3,4};则a[a
[0]+2*a
[2]-a
[3]]等于()A.1B.2C.3D.
413.定义如下变量和数组,则下列程序段的输出结果是()inti,x
[3]
[3]={1,2,3,4,5,6,7,8,9};fori=0;i3;i++ifi%2!=1printf″%d″,x[i][i];A.19B.17C.37D.
3914.若有定义staticcharstr2
[10],strl[]=″China″;欲将strl中的字符串拷贝到str2中去,下列正确的语句是()A.strcpystr2,strl;B.strcpystrl,str2;C.strcpy″China″,str2;D.strl=str2;15.下列关于C程序的说法中不正确的是()A.一个源程序文件由一个或多个函数组成B.一个C程序可以有多个名字为main的函数C.一个C程序由一个或多个源程序文件组成D.一个C程序必须有一个main函数
16.用数组名作为函数调用时的实参,实际上传递的是()A.数组全部元素的值B.数组第一个元素的值C.数组的首地址D.数组元素的个数
17.设有函数voidprint_valueint*x{printf″%d\n″++*x;}执行程序段inta=25;print_value&a;的正确输出是A.23B.24C.25D.
2618.语句float*p
[6];的含义是()A.p是一个数组,有6个元素,每个元素都是浮点数B.p是一个指针,指向有6个浮点数据的数组C.p是一个指针数组,有6个元素,每个元素都是浮点型指针D.p是一个指针,指向一个浮点数
19.设有下列程序()#include″stdio.h″voidmainvoid{unsignedx=1y=2;printf″%d\n″~x&y;}该程序的运行结果是A.-1B.0C.1D.
220.设有说明FILE*fp;对于fp=fopen″c:\\abc.dat″″r+″;语句,下列说法正确的是()A.打开ASCII文件读写B.打开二进制文件读写C.打开ASCII文件只读D.打开二进制文件只读
二、多项选择题(本大题共5小题,每小题2分,共10分)
21.下列数据中等值的有()A.(
0.100)2B.(
0.101)2C.(
0.5)8D.(
0.625)10E.(
0.A)
1622.下列有关switch语句的说法中正确的有()A.switch后面的表达式可以为任意类型B.case后的每个常量表达式的值必须互不相同C.若case后面有两个或两个以上的执行语句,必须加花括号D.一个case对应一组执行语句,多个case不可共用同一组执行语句E.default部分可有可无
23.下列对数组赋初值正确的有()A.inta[][]={l,2,5,8,3,7};B.inta[]
[3]={1,2,5,8,3,7};C.inta
[2]
[3]={1,2,5,8,3,7};D.inta
[2][]={1,2,5,8,3,7};E.inta
[3]
[3]={l,2,5,8,3,7};
24.若有说明inta[]={1,2,3,4,5,6,7,8,9,0},i;当0≤i10时,下列对数组元素地址正确的表示有()A.&a+lB.a+lC.a++D.&a[i]E.a+i
25.下列关于结构体类型的定义正确的有()A.structriverB.structriverC.struct{{{intbranch;intbranch;intbranch;charname
[20];charname
[20];charname
[20];};}}D.structE.structriver{{intbranch;intbranch;charname
[20];charname
[20];};structriver*next;};
三、简答题(本大题共4小题,每小题4分,共16分)
26.假设字长为8位,请写出-1的原码和补码
27.写出for语句的一般形式并分析循环体被执行的条件
28.字符数组的初始化与字符串指针变量的初始化有什么不同?
29.语句fwritestusizenfp;中stu、size、n和fp的含义各是什么?
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下列程序并写出运行结果voidmainvoid{inta=987b=l00xy;y=b;x=a/b;print%d%d\nxy;}
31.阅读下列程序,若输入0,3并回车,则程序的输出结果是什么?voidmainvoid{intxyz;scanf%d%d&x&y;ifxy{z=x;x=y;y=z;}print%d%d\nxy;}
32.下列程序的功能和输出结果是什么?voidmainvoid{intk=0total=0;whilek=100{total+=k;k++;}printtotal=%d\ntotal;}
33.阅读下列程序并写出运行结果注A的ASCII码值为65,a的ASClI码值为97voidmainvoid{inti=64;chars
[20]*p=s;whilei++=73{*p=i%2==0i+32:i;p++;}*p=′\0′;printf%s\ns;}
34.阅读下列程序并写出运行结果intfibintn{staticintf0=0fl=lif;fori=3;i=n;i++{f=f0+fl;f0=fl;fl=f;printff0=%dfl=%d\nf0fl;}returnf;}voidmainvoid{printf%d\nfib3+fib3;}
35.阅读下列程序并写出程序的运行结果#includestring.h#includemalloc.hstructplanet{charname
[20];doubleweight;structplanet*next;}*head=NULL;voidmainvoid{structplanet*p;char*planet_name
[3]={earthvenusmars};doubleplanet_weight
[3]={
25455700.
56511253300.
4377286320.512};intj;forj=0;j3;j++{p=structplanet*mallocsizeofstructplanet;strcpyp-nameplanet_name[j];p-weight=planet_weight[j];p-next=head;head=p;}p=p-next;printf%s%lf\np-namep-weight;}
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘上输入20个整数,求其中正数的累加和并输出结果
37.在文本文件c:\pxl.dat中有10个实型数据(每两个数之间用逗号隔开),编程将这10个数按从小到大排序后,写到文本文件c:\xpl.dat中全国2010年4月计算机基础与程序设计试题
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.在TurboC
2.0中,可激活主菜单的键是()A.F1B.F5C.F9D.F
102.在TurboC
2.0中,若定义charch;则变量ch在内存中分配的字节数是()A.1个B.2个C.4个D.8个
3.若有下列程序段,欲使x=5,y=6,对应正确的输入方法是(其中CR表示回车)()intx,y;scanf(″%d%d″,&x,&y);A.x=5y=6CRB.x=5,y=6CRC.5CRD.5,6CR6CR
4.下面程序段的输出结果是()main(){inta=2,b=5;printf(″a=%d%%,b=%d%%″,a,b);}A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d
5.设有条件表达式(exp)a++b--,则下列表达式中能够与该表达式完全等价的表达式是()A.(exp!=0)a++∶b--B.(exp==0)a++∶b--C.(exp==1)a++∶b--D.(exp!=1)a++b--
6.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是()A.表达式1B.表达式2C.表达式3D.表达式l和表达式
37.设有下列程序()voidmain(void){intx
[4]={1,3,5,7},i;i=0printf(%d,x[i++]);}其输出结果是A.1B.3C.5D.
78.下列关于函数的说法中,不正确的是()A.函数名后面一定要一对圆括号B.空函数被调用时不做任何工作C.函数形参个数可以是一个、多个或没有D.函数参数类型可不作说明
9.指向与文件参数有关的结构体类型的指针变量称为()A.函数指针B.整型指针C.字符型指针D.文件指针
10.计算机对解释型高级语言的执行方式是()A.逐条语句边解释边执行,即解释一条就执行一条B.将整个程序编译完成后再执行,不生成目标程序C.将源程序编译成目标程序,生成并保留目标程序然后执行D.将源程序解释完毕后再执行
11.设有intx=2,y,z;执行z=y=x——;后变量y的值是()A.0B.1C.2D.
312.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()voidmain(void){intx;scanf(%d,&x);if(x++5)printf(%dx);elseprintf(%d\n,x——);}A.7和5B.6和3C.7和4D.6和
413.在下列选项中,没有构成死循环的程序段是()A.inti=100;B.for(;;);while
(1){i=i%100+1;if(i100)break;}C.intk=1000;D.ints=36;do{++k;}while(k10000);while(s);一一s;l
4.定义如下变量和数组intk;intx
[3]
[3]={9,8,7,6,5,4,3,2,l};则执行下面语句for(k=0;k3;k++)if(k%2)printf(%5d,x[k][k]);后输出结果是()A.3B.5C.7D.9l
5.设有下列程序ff(){intc=9;staticinta=1,b=4;if(b==4){a+=c;b++;}else{a+=c;b——;}printf(a=%d,b=%d\n,a,b);}main(){ff();ff();}则该程序执行后,显示的结果为()A.a=10b=5B.a=10,b=4C.a=10,b=4D.a=10,b=5a=19,b=5a=l9b=5a=19,b=4a=19b=
416.下面能正确进行字符串赋值操作的是()A.chars
[5]={ABCDE};B.chars
[5]={′A′,′B′,′C′,′D′,′E′};C.char*s;s=ABCDE;D.char*s;scanf(%s,s);
17.下面程序段的运行结果是()chars*s=abcde;s+=2printf(%d,s);A.cdeB.字符′c′C.字符′c′的地址D.无确定的输出结果
18.下面关于结构体类型变量定义正确的是()A.structbunding{intarea=12345;char*name=No1Hotel;}bl;B.structbuilding{intarea=12345;char*name=NolHotel;}b1;.C.building{intarea=12345;char*name=No1Hotel;}b1;D.STRUCTbuilding{intarea=12345;char*name=NolHotel;}b1;
19.设有下面程序#includestdio.hvoidmain(void){unsignedx=1y=3,z=5;printf(%d\n,z^x&y);}该程序的运行结果是()A.0B.3C.4D.
520.设有说明intu=l,v=3,w=5;表达式u=(v|w)的值是()A.1B.5C.13D.128
二、多项选择题(本大题共5小题,每小题2分,共10分)
21.下面能执行循环结构的语句有()A.if语句B.while语句C.do—while语句D.for语句E.switch语句
22.下面合法的C语言转义字符有()A.\123B.\xabC.\\D.\88E.\n
23.以下关于函数和变量的说法中正确的有()A.不同函数中可以使用相同名字的变量B.形式参数是局部变量C.一个函数内部定义的变量只能在本函数范围内有效D.在一个函数内部的复合语句中定义的变量可在本函数范围内有效E.如果全局变量与函数内定义的局部变量同名,则在函数内局部变量无效
24.设变量Vo5的地址已赋给指针变量inV,则下列关系表达式的值为1的有()A.Vo5==&inVB.Vo5==*inVC.inV==*Vo5D.inV==&Vo5E.Vo5==inV
25.设有说明intu=0,v=l,z=2;则下列表达式中结果为-l的有()A.v=~uB.u=u|~(v&z)C.v=(u|z)1D.u=~(u|z)E.v&=(~u)
三、简答题(本大题共4小题,每小题4分,共16分)
26.函数fclose()的功能是什么?
27.简述break语句和continue语句在循环体中的功能
28.简述机器语言、汇编语言和高级语言各自的特点
29.将下面的各种运算符按优先级从高到低排列出来(要同优先级的用“、”号分隔,不同优先级的由高向低用“→”号分隔),、=、=、[]、++、%、+、&&、/
四、阅读理解题(本大题共6小题,每小题5分共30分)
30.写出以下程序的功能如果输入14,写出程序的输出结果voidmain(void){intx;scanf(″%d″&x);if(x%5==0&&x%7==0)printf(″yes″);elseprintf(″no″);}
31.阅读下面的程序并回答问题main(){chara
[20]=″1234567890″;inti;i=8;printf(″%s\n″,&a[i-3]);}
(1)数组中a
[10]号元素中存储的是什么字符
(2)请写出程序的运行结果
32.写出下面程序的运行结果main(){fun();fun();}fun(){inta
[3]={0,1,2},b=10;inti;if(b==10){for(i=0;i3;i++)a[i]+=a[i];for(i=0;i3;i++)printf(″%d,″,a[i]);printf(″b=%d\n″,b);b++;}else{for(i=0;i3;i++)a[i]*=a[i];for(i=0;i3;i++)printf(″%d″a[i]);printf(″b=%d\n″,b);}}
33.写出下面程序的运行结果main(){intx=1987,a,b,c,y;a=x/100;b=x%100/10;c=x%100%10;y=100*c+l0*b+a;printf(″c=%d,b=%o,a=%x,y=%d″c,b,a,y);}
34.分析下列两个程序的区别,并写出它们的运行结果voidmain(void)voidmain(void){{inty=0,s,k;inty=0,s,k;for(k=0;k6;k++)for(k=0;k6;k++){s=k*k;s=k*k;y+=s;y+=s;}printf(″y=%d\n″,y);printf(″y=%d\n″,y);}}
35.写出下面程序的功能以及程序的运行结果swap(int.*p1,int*p2){intp;p=*pl;*p1=*p2;*p2=p;}main(){inta=5,b=7,*ptrl,*ptr2;ptrl=&a;ptr2=&b;swap(ptrl,ptr2);printf(″*ptrl=%d,*ptr2=%d\n″,*ptrl,*ptr2);printf(″a=%d,b=%d\n″,a,b);}
五、编程题(本大题共2小题,每小题12分,共24分)
36.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果
37.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果全国2010年7月计算机基础与程序设计试题
一、单项选择题本大题共20小题,每小题1分,共20分
1.与十进制数49等值的二进制数是()A.101111B.110000C.110001D.
1100102.编译程序的功能是()A.修改并建立源程序B.将源程序翻译成目标程序C.调试程序D.命令计算机运行可执行程序
3.TurboC
2.0中,若定义longb;则变量b在内存中分配的字节数是()A.1个B.2个C.4个D.8个
4.下列语句中不能实现循环结构的语句是()A.if语句B.while语句C.do—while语句D.for语句
5.以下程序的输出结果是()main{inty=10;whiley——;printfy=%d”,y;}A.y=-1B.y=0C.y=1D.y=随机值
6.下列程序的输出结果是()main{inta
[10]={l,2,3,4,5,6,7,8,9,10};printf″%d\n″,a
[2];}A.1B.2C.3D.
47.下面程序的输出结果是()#includestdio.h#includestring.hmain{charp1
[10]=″abc″,p2[]=″ABC″;strcatp1,p2;printf″%s\n″,p1;}A.abcabcB.abcC.ABCD.abcABC
8.设有intx=2,y,z;执行z=y=x++;后变量x的值是()A.0B.1C.2D.
39.下面程序段的输出结果是()main{inta=2,b=5;printf″a=%%%d,b=%%9%d″,a,b;}A.a=2,b=5B.a=2%,b=5%C.a=%2,b=%5D.a=%d,b=%d
10.若有下列程序段,欲使a=2,b=3,对应正确的数据输入法是其中CR表示回车()inta,b;scanf″%d,%d″,a,b;A.2CRB.a=2,b=3CRC.a=2b=3CRD.2,3CR3CR
11.若运行时给变量x输入12,则以下程序的运行结果是()main{intx,y;scanf″%d″,x;y=x12x+10x-12;printf″%d\n″,y;}A.0B.10C.12D.
2212.若执行下列程序时,从键盘上输入3和4,则输出结果是()main{inta,b,s;scanf″%d%d″,&a,b;s=a ifabs=b;s=s*s;printf″%d\n″,s;}A.9B.16C.18D.
2013.C语言的auto型变量存储在()A.动态存储区中B.静态存储区中C.计算机CPU的寄存器中D.外存储器中
14.以下程序的输出结果是()ff{inta=l,c=8;staticintb=4;ifb==4{a+=c;b++;}elsea+=c;b--;printf″a=%d,b=%d\n″,ab;}main{ff;ff;}A.a=9,b=5B.a=9,b=4C.a=9,b=4D.a=9b=5a=9,b=5a=9,b=4a=9b=5a=9b=
415.设p1和p2是指向同一个字符串的指针变量,且c为字符型变量,则以下不能正确执行的赋值语句是()A.c=*p1+*p2;B.p2=*p1;C.p1=p2;D.c=*p1**p2;
16.以下选项中,对指针变量p的正确操作是()A.inta
[5],*p;p=&a;B.inta
[5],*p;p=a;C.inta
[5];int*p=a
[5];D.inta
[5];int*p,p2=a;*p=*p2;
17.设有下面的结构体和结构变量定义structstudent{longid char*name;intmath;};structstudentstudl;关于结构体类型变量赋值正确的是()A.studl.id=1001;studl.name=″Tom″;B.id=1001;*studl.name=″Tom″;C.studl.id=1001;studl.*name=″Tom″;D.studl.id=1001L;*studl.name=″Tom″;
18.设有说明intx=7,y=1;表达式x~y的值是()A.0B.2C.4D.
619.设有说明intu=1,v=14;表达式u|v2的值是()A.-1B.1C.3D.
420.设有说明FILE*fp;charfilename
[10]=″myfile″;对于fp=fopenfilename,″rb+″;语句,下面说法正确的是()A.打开名为myfile的文件读写B.打开名为filename的文件读写C.打开名为myfile的文件只读D.打开名为filename的文件只读
二、多项选择题本大题共5小题,每小题2分共10分
21.下列属于计算机的输入设备的有()A.CD—ROMB.打印机C.键盘D.鼠标E.扫描仪
22.设有inta=3,b=-5;下面表达式值等于0的有()A.!aB.!b&bC.5/6!=0D.a%3!=0E.b+a==-
223.下列有关函数的说法中不正确的有()A.C语言程序总是从首定义的函数起顺序执行B.在C语言程序中,被调用的函数必须在main函数中定义C.C语言程序中的main函数必须放在程序开始部分D.C语言程序总是从main函数开始执行E.定义函数时,参数表中可以没有任何参数
24.若有定义inta
[5],i,*p=a;且0≤i5,则对a数组元素的正确引用有()A.a[i]B.*a+iC.*p+iD.*a+iE.p+i
25.设有说明intx=0,y=1,z=2;则下列表达式中结果非0的有()A.~xyB.xyzC.z2D.y1zE.yz
三、简答题本大题共4小题,每小题4分,共16分
26.写出for语句的一般形式及执行过程
27.函数fputc的功能是什么
28.将下面的各种运算符按优先级从高到低排列出来相同优先级的用“、”号分隔,不同优先级的按由高到低的顺序用“→”号分隔,、、=、==、/、、!、||、、=
29.若有charstrl
[20],str2
[20];简述下面各函数调用的功能1getsstrl2strcmpstrl,str2
四、阅读分析题本大题共6小题,每小题5分,共30分
30.写出下列程序的运行结果main{inta=10,b=8,c;c=a;a=b;b=c;printf″a=%d,b=%d\n″,a,b;}
31.写出下面程序的功能;如果输入6和9,写出程序的输出结果main{inta,b,x,y;scanf″%d%d″,a,&b;x=a*a+b*b;ifx100{y=x/100;printf″%d″,y;}elseprintf″%d″,a+b;}
32.写出下面程序的功能及运行结果main{intn=1,sum=0;do{sum=sum+n;n+=2;}whilen100;printf″sum=%d\n″,sum;}
33.写出下面程序的功能和运行结果intfuninta[]
[4]{inti,j,k,temtem=a
[0]
[0];forI=0;i3;i++forj=0;j4;j++ifa[i][j]temtem=a[i][j];returntem;}main{intb
[3]
[4]={{1,3,-5,7},{2,4,-6,8},{10,20,-30,40}};printf″%d\n″,funb;}
34.下列程序中字符串中各单词之间有一个空格,写出程序的输出结果#includestring.h#includestdio.hmain{charstr1[]=″Howdoyoudo″;putsstr1;strcpystr1+str1enstr1/2,″esshe″;printf″%s\n″,str1;}
35.写出下列程序的功能和运行结果#includestdio.hreversechar*s{char*t,ch;fort=s+strlens-1;st;s++,t--{ch=*s;*s=*t;*t=ch;}}main{char*s1=″123456″;reverses1;printf″%s\n″,s1;}
五、编程题本大题共2小题,每小题12分,共24分
36.编程求20至100之间素数的累加和并输出该累加和
37.编程生成以下A、B两个数组(不得使用输入语句输入数据或对数组初始化),将两数组对应元素相加写入C数组中,最后并排输出A、B、C三个数组共40页第40页。