书签 分享 收藏 举报 版权申诉 / 43
上传文档赚钱

类型Keil&C语言程序设计-习题库(含答案).docx

  • 上传人(卖家):敦行励学
  • 文档编号:4475871
  • 上传时间:2022-12-12
  • 格式:DOCX
  • 页数:43
  • 大小:58.55KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Keil&C语言程序设计-习题库(含答案).docx》由用户(敦行励学)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Keil 语言程序设计 习题 答案
    资源描述:

    1、一、单选题1、通常把高级语言源程序翻译成目标程序的程序称为( )。A.汇编程序B.编译程序C.编辑程序D.解释程序答案:B2、一个算法应该具有确定性等5个特性,下面对另外4个特性的描述中错误的是()。A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性答案:B3、面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()完成的。A.消息B.命令C.调用语句D.口令答案:A4、以下叙述正确的是( )。A.C语言不允许直接访问物理地址,不可以直接对硬件进行操作B.C语言程序只需编译,不需连接即可被计算机运行C.C语言允许直接访问物理地址,可以直接对硬件进行操作D.C语言程序不用编译

    2、,即可被计算机识别运行答案:C5、下面选项()不属于结构化程序设计原则。A.程序模块化B.不限制GOTO语句使用C.逐步求精D.自顶向下答案:B二、判断题6、计算机只能完成其能力范围内的计算工作,超出计算机能力范围的计算计算机将无法完成。(对)7、高级语言是用接近自然语言的符号,按照一定的语法规则编写程序,需要编译程序翻译成机器指令才能被计算机执行。(对)8、面向对象程序设计方法具有与人们的习惯与思维方法一致,便于解决复杂问题的特性。(对)9、程序中适当地添加注释,可以增加程序的可读性和清晰性。(对)10、在VC+6.0环境下,任何一个C程序都必须包含在一个工程项目中,而且只能有一个main函

    3、数。(对)三、填空题11、C语言开发工具直接输入的程序代码是(源 或 源程序)文件,经过编译后生成的是目标程序文件, 经过连接后生成的是可执行程序文件。12、结构化程序设计所规定的三种基本控制结构是顺序结构、(选择 或 分支)结构和循环结构。13、描述算法的方法主要有(自然语言)、专用工具(传统流程图)、(N-S流程图)和伪代码等。14、程序的执行方式分为(编译)和解释两种方式。15、衡量算法的时间复杂度是指对于相同规模的问题,算法的执行(时间)的长短。一、单选题1、关于变量定义,下面说法错误的是()。A.变量的类型确定了变量占据的存储单元的大小B.确定了变量的表数范围C.确定了变量中的内容D

    4、.确定了变量的名字答案:C2、下列叙述正确的是( )。A.C语言中的数据的类型不同,在内存中占据不同长度的存储单元B.C语言中的常量是没有类型的C.C语言中的数据的类型不同,但取值范围都是相同的D.C语言中的数据的类型不同,在内存中占据相同长度的存储单元答案:A3、下列转义字符中,错误的是( )。A. B. 0xa5C. bD. 031答案:B4、下面关于C语言标识符的命名规则叙述中不准确的是()。A.不区分大小写字母B.首字符必须为字母或下划线C.不能使用系统的保留字D.只能由字母、数字和下划线组成答案:A5、关于定点数和浮点数的说法,下列说法错误的是()。A.用浮点数表示既有整数部分、又有

    5、小数部分的实数B.浮点数表示的数即是数值的精确值C.在计算机中通常用定点数表示整数和纯小数D.定点数表示数据的范围有限答案:B6、以下哪个数字的值最大( )。A.10.0B.010C.10D.0x10答案:D二、判断题7、C语言的关键字是由C语言规定的、具有特定功能的固定字母组合,也称为保留字,共计32个。(对)8、变量是在程序执行期间其值可以改变的量,必须先定义后使用。(对)9、变量被定义后没有赋值,其单元内容不可以使用,是内存中的随机数。(对)10、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。(对)三、填空题11、若有定义:char c

    6、=010; 则变量C中包含的字符个数为(1)。12、已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是(15)。13、在C语言中的实型变量分为float型和double型,按浮点数进行存储,分为数符、(阶码)和尾数几部分。14、设有变量定义:int i=3,j=5;float x=2.5;double y=5.0;则表达式 y+=i-=j*=+x;的计算结果为(-9.0 或 -9.000000)。15、设有变量定义:float x=2.5;double y=5.0;则表达式 (int)x / (int)y+y的值为(5.0)。一、单选题1、若变量已正确定义,执行语句sca

    7、nf(%d,%d,%d ,&k1,&k2,&k3);时,正确的数据输入方法是( )。A.20, 30 40B.20,30,40C.2030,40D.20 30 40答案:B2、以下程序的输出结果是()。int main() float x=3.6; int i; i=(int)x; printf(x=%f,i=%dn,x,i); return 0;A.x=3 i=3.600000B.x=3.600000,i=4C.x=3,i=3D.x=3.600000,i=3答案:D3、已定义double a; int i;选择正确的输入格式为( ) 。A.scanf(%6.2f%3d, &a,&i);B.s

    8、canf(%6lf%3d,&a,&i);C.scanf(%f%d, a,i);D.scanf(%lf%s, &a,&i);答案:B4、已有定义char s1,s2;,下面正确的语句是( )。A.scanf (%c%c, &s1,&s2);B.scanf (%s%c, s1,&s2);C.scanf (%c%c,s1,s2);D.scanf (%s%c, s1,s2);答案:A5、运行下面的程序,正确的输出结果是( )。#include int main( ) double x=68.7563, y= -789.127; printf (%f, %10.2fn, x,y); return 0;A

    9、.68.75, -789.13B.68.756300, -789.12C.68.75, -789.12D.68.756300, -789.13答案:D6、已知float x=2.23,y=4.35;,根据下面的输出结果,正确的程序段是( )。x=2.230000,y=4.350000y+x=6.58,y-x=2.12A.printf(x=%8.2f,y=%8.2f,x,y);printf(y+x=%4.2f,y-x=%4.2fn,y+x,y-x);B.printf(x=%7.2f,y=%7.2fn,x,y);printf(y+x=%3.2f,y=%3.2fn,y+x,y-x);C.printf

    10、(x=%f,y=%fn,&x,&y);printf(y+x=%f,y=%fn,y+x,y-x);D.printf(x=%8.6f,y=%8.6fn,x,y);printf(y+x=%4.2f,y-x=%4.2fn,y+x,y-x);答案:D二、判断题7、C语言中本身没有提供专门的输入输出语句,输入输出通过调用函数完成。(对)8、输入数据时不可以指定数据的宽度。(错)9、使用getchar()函数可以一次接受多个字符。(错)10、在使用标准的输入/输出库函数时,应该在程序的开头使用编译预处理命令“#include ”。(对)三、填空题11、getchar()函数只能接收一个(字符)。12、下列语

    11、句输出的结果是(b,98)。 char ch=b; printf(%c,%d,ch,ch);13、用scanf函数输入数据(%lf%lf),使得x=1.23, y=67.1234。#include #include int main( ) double x,y,z; scanf( , &x,&y ); z=2*x+y/sin(3.1415/4); printf(z=%6.2f,z); return 0;14、用scanf函数输入数据(a=%d,b=%c,c=%c 或 a=%d,b=%c,c=%c),使得下面程序运行结果为a=2,b=x,c=z#include int main( ) int a

    12、, b; scanf(%d%c, &a,&b ); printf( ,a,b,b+2); return 0;15、若要将数据以指数形式输出,应该选择(e 或 E)格式符。一、单选题1、若给定条件表达式(m)?(a+):(a-),则其中表达式m()。A.和(m=1)等价B.和(m!=1)等价C.和(m!=0)等价D.和(m=0)等价答案:C2、C语言的switch语句中case后边( )。A.只能为常量或常量表达式B.可为任何量或表达式C.只能为常量D.可为常量或表达式或有确定值的变量及表达式答案:A3、执行下面程序段后,ch的值是( )。char ch=a;ch=(ch=A&ch4B.34=0

    13、C.654D.3!=0答案:C5、设int a=3;,则表达式a1的运算结果和a的值分别是( )。A.1和2B.0和2C.0和3D.1和3答案:C6、设整型变量x、y、z的值分别为3、2、1,则下列程序段的输出是( )。if(xy) x=y;if(xz) x=z;printf(%d,%d,%dn,x,y,z);A.1,2,3B.3,2,1C.1,2,1D.1,1,1答案:C二、判断题7、能正确表达逻辑关系“0a1并且0b1”的表达式是(0a1)&(0bb?a+b:a-b 表达式中,若ab,则条件表达式的值为a+b的值,否则为a-b的值。(对)9、条件运算符的优先级低于算术运算符、关系运算符及逻

    14、辑运算符,高于赋值运算符和逗号运算符。(对)10、同一个switch语句中各个常量表达式的值必须互不相等,且只能是常量。(对)三、填空题11、int x=4,y=4,z=2;x=y=z; 则x的值为(0)。12、当a=1,b=2,c=3时,执行以下程序段后b的值为(2)。 if (ac) b=a; a=c; c=b;13、当a=3,b=2,c=1;时,执行以下程序段后,a=(2)。if(ab) a=b;if(bc) b=c;else c=b;c=a;14、c语言表达式5278的值是(0)。15、为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的(if)语句配对。一、单选题1、关于下

    15、面程序段,正确的是( )。int k=10;while(!k) k-;A.死循环B.循环体执行10次C.循环体执行1次D.循环体一次也不执行答案:D2、下面程序的运行结果是( )。#include int main( ) int x=3; do printf(%3d,x-=2); while(!(-x); return 0;A.1 -2B.死循环C.1D.10答案:A3、下面程序的运行结果是( )。#include int main( ) int i=0,sum=0; while(i+6) sum+=i; printf(%d,sum); return 0;A.21B.22C.15D.16答案:

    16、A4、下面程序的运行结果是( )。#include int main( ) int i=10; while(i-0); printf(%d ,i); return 0;A.-1B.10C.0D.10987654321答案:A5、已定义int j; 下面程序段的输出结果是( )。for(j=7;j10;j+) printf(%d,j);A.91011B.789C.无结果D.8910答案:B6、下面程序的输出结果是( )。#include int main( ) int i,j,s=0; for(j=1,i=7;j=i;j+,i-) s=s+i+j; printf(%d,s); return 0;

    17、A.0B.死循环C.32D.28答案:C二、判断题7、while循环语句至少无条件执行一次循环体。(错)8、do while循环语句中,根据情况可以省略关键字while。(对)9、do while循环语句至少无条件执行一次循环体。(对)10、for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。(对)11、for循环的三个表达式中间用逗号相分隔,并且不能省略。(错)12、do while循环语句的特点是先执行循环体,然后判断循环条件是否成立。(对)三、填空题13、下面程序用来计算10!,请完善程序。(s=1)#include int main( ) int j,s; ; for(j=

    18、1;j=10;j+) s*=j; printf(%d,s); return 0;14、下面程序用来计算1+1/2!+1/3!+1/10!,请完善程序。(double 或 float)#include int main( ) int i,j; sum=0,fac; for(i=1;i=10;i+) fac=1; for(j=1;j=i;j+) fac=fac*j; sum=sum+1/fac; printf(%f,sum); return 0;15、下面程序计算并输出1100之间包括100能被3整除同时能被7整除余3的所有数之和,请完善程序 。(i=100 或 i101)#include int

    19、 main( )int sum=0,i;i=1;while ( )if (i%3=0&i%7=3)sum=sum+i;i+;printf(sum=%d,sum);return 0;一、单选题1、从循环体内某一层跳出,继续执行循环外的语句是( )。A.空语句B.continue语句C.break语句D.if语句答案:C2、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是( )。A.break语句可以一次性跳出多层嵌套循环B.continue语句可以一次性跳出多层嵌套循环C.continue语句只能跳出所在层循环D.break语句只能跳出所在层循环答案:D3、以下正确的

    20、描述是( )。A.在循环体内使用break和continue语句的作用相同。B.只能在循环体内和switch语句内使用break语句。C.continue语句的作用是终止整个循环的执行。D.从多层嵌套的外层循环中退出时,只能使用goto语句。答案:B4、下面程序的运行结果是( )。#include int main( ) int i,j,sum; for(i=2;i7;i+) sum=1; for( j=i;j7;j+) sum=sum+j; printf(%d,sum); return 0;A.49B.48C.1D.7答案:D5、下面程序的运行结果是( )。#include int main

    21、( ) int i=10,s=0; while(i0) if(i%3=0) continue; s=s+i; i-; printf(s=%d,s); return 0;A.55B.死循环C.10D.37答案:B二、判断题6、continue语句用于终止循环体的本次执行。(对)7、break语句能够终止当前进行的多层循环。(错)8、对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式3。(对)9、continue语句在循环体中出现,其作用是结束本次循环,接着进行是否执行下一循环的判定。(对)10、break终止包含该语句的最内层循环。(对)11、for(表

    22、达式1;表达式2;表达式3),当执行循环体内的continue语句时,意味着转去执行表达式2。(错)12、程序中遇到goto语句无条件跳到标号指定的位置继续执行。(对)三、填空题13、程序的功能是:求1到10的阶乘的和。(t=1)#include stdio.hint main ()int n,j,s=0,t;for(n=1;n=10;n+);for(j=1;j=n;j+)t=t*j;s=s+t;printf(s=%dn,s);return 0;14、程序的功能是:从键盘输入10个字符,输出其中数字字符。(continue)#include int main( ) int i; char c;

    23、 for(i=1;i=10;i+) c=getchar( ); if(c 9) ; putchar(c); return 0;15、用10元人民币兑换角币有多少种换法角币有1角、2角、5角三种。(j=50)#include int main( ) int i,j,k,m=0; for(i=0;i=20;i+) for(j=0; ;j+) for(k=0;k=100;k+) if(i*5+j*2+k=100) m+;printf(i=%d,j=%d,k=%dn,i,j,k); printf(m=%d,m); return 0; 一、单选题1、对以下说明语句的正确理解是( )。int a10=6,

    24、7,8,9,10;A.将5个初值依次赋给a1至a5B.将5个初值依次赋给a0至a4C.因为数组长度与初值的个数不相同,所以此语句不正确D.将5个初值依次赋给a6至a10答案:B2、现有如下程序,则程序的输出结果为( )。#include int main( )int k30=12,324,45,6,768,98,21,34,453,456;int count=0,i=0;while(ki)if(ki%2=0ki%5=0)count+;i+;printf(%d,%dn,count,i);return 0;A.8,10B.7,8C.8,8D.7,10答案:A3、以下能对一维数组a进行初始化的正确语

    25、句是( )。A.int a=0;B.int a10=0,1,2,3,4,5,6,7,8,9,10;C.int a10=(0,0,0);D.int a10= ;答案:A4、以下对一维整型数组a的正确说明是( )。A.int a(6);B.#define N 8int aN;C.int n=10,an;D.int n;scanf(“%d”, &n);int an;答案:B5、下面程序的运行结果是( )。#include int main( )int a10,i,k=1;for(i=0;i10;i+)ai=i;for (i=1;i6;i+)k+=ai+i;printf(%dn,k);return 0

    26、;A.33B.20C.31D.32答案:C二、判断题6、如果对数组不赋初值,则数组元素取随机值。(对)7、引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。(对)8、数组名的规定与变量名不相同。(错)9、一个数组可以存放许多不同类型的数值。(错)10、数组的下标通常是float型。(错)三、填空题11、下列程序的功能是输入N个实数,然后依次输出前l个实数和、前2个实数和、前N个实数和。(x=x+fi-1 或 x+=fi-1)12、下列程序的功能是输出数组s中最大元素的下标。(k=i)13、以下程序的功能是求数组num中小于零的数据之和。请填空。(numi+sum 或 sum+

    27、numi)一、单选题1、有以下程序#include int main( ) int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+) for(k=i+1;k4;k+) if(aiiakk) t=aii; aii=akk; akk=t; for(i=0;i4;i+) printf(%d,a0i); return 0;程序运行后的输出结果是()A.2,3,4,6B.6,4,3,2C.1,1,2,6D.6,2,1,1答案:B2、设有数组定义: char array =China; 则数组array所占的空间为()A.7个字节B.6个字

    28、节C.5个字节D.4个字节答案:B3、下述对C语言字符数组的描述中错误的是()A.字符数组可以存放字符串B.字符数组的下标从0开始C.可以在赋值语句中通过赋值运算符=对字符数组整体赋值D.字符数组中的字符串可以进行整体输入/输出答案:C4、下面程序的运行结果是#include stdio.h#includestring.hint main( )char a80=AB,b80=LMNP;int i=0;strcat(a,b);while(ai+!=0)bi=ai;puts(b);return 0;A.LBLMNPB.ABLMNPC.LBD.AB答案:A5、若二维数组a有m列,则在aij前的元素个

    29、数为A.i*m+j+1B.i*m+jC.i*m+j-1D.j*m+i答案:B二、判断题6、字符数组不要求它的最后一个字符为”0”,甚至可以不包含”0”。(错)7、在程序中可以对数值数组中的数据进行整体使用。(对)8、用scanf函数输入的字符串不可以带空格。(错)9、用gets函数输入的字符串可以带空格。(对)10、实现两个字符串的复制可以使用str1=str2;语句。(对)三、填空题11、输出连接后的字符串(#include 或 #include string.h 或 #include 或 #includestring.h)#include stdio.hint main()char ss1

    30、0=12345;strcat(ss,6789);printf(%s,ss);return 0;12、计算矩阵a的下三角(包含主对角线)元素之和,矩阵的行、列数和元素值均由键盘输入(j=j)#define M 20#include stdio.hint main()int i,j,n,aMM;int s=0;scanf(%d,&n);for(i=0;in;i+)for(j=0; jn;j+)scanf(%d,&aij);for(i=0;iaj 或 ajai)#include int main()char a=labchmfye,t;int i,j;for(i=0;i7;i+=2)for(j=i+

    31、2;jb?a:b;B.int max1(a,b)int a,b;return ab?a:b;C.int max1(int a,b)return ab?a:b;D.int max1(int a,int b)return ab?a:b;答案:D二、判断题7、模块化程序设计方法是采用逐步分解、分而治之的方法处理问题。(对)8、函数的表达式调用必须是有返回值的函数调用。(对)9、函数通过return语句可以向主调用函数返回多个值。(错)10、一个函数中有且只能有一个return 语句。(错)三、填空题11、数组作为函数参数进行函数调用时,实参应当采用(数组名)。12、以下函数的功能是连接两个字符串,请

    32、完善程序。(stri=0 或 stri=0)void str_cat(char str1 , char str2 , char str )int i,j;for(i=0;str1i!= 0;i+)stri=str1i;for(j=0;str2j!=0;j+)stri+=str2j;13、以下函数的功能是计算n!,请完善程序。(sum*i 或 i*sum)long mul(int n) int i=1; long sum; if(n=0) return 1; else sum=1; while(i=n) sum= ; i+; return sum;14、在调用一个函数的过程中,直接或间接地调用该

    33、函数本身,称为函数的(递归)调用。15、完善下列程序(void data(int b33); 或 void data(int b3);)#include _int main() int a33,i,j; data(a); for(i=0;i3;i+) for(j=0;j3;j+) printf(%3d,aij); printf(n); return 0;void data(int b33) int i,j; for(i=0;i3;i+) for(j=0;j3;j+) if(i=0|i=2|j=0|j=2) bij=6; else bij=1;一、单选题1、C编译系统对程序中的宏展开是在()。A.编辑时进行的B.编译时进行的C.编译前预处理时进行的D.程序执行时进行的答案:C2、以下叙述不正确的是( )。A.全局变量存放在静态存储区B.在程序运行期间,全局变量所占存储单元的值永久保留C.全局变量可以由系统自动

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Keil&C语言程序设计-习题库(含答案).docx
    链接地址:https://www.163wenku.com/p-4475871.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库