C语言选择题_c语言选择题
C语言选择题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言选择题”。
1.结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句.2.对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好.⒊数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。是一种在操作系统之上的系统软件。
4.继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。5.面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性 6.对象间的通信靠消息传递:消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。7.结构化程序设计中,应尽量避免使用GOTO语句,但不是禁止使用 8.在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。
9.可行性分析阶段产生可行性分析报告。概要设计说明书是总体设计阶段产生的文档。集成测试计划是在概要设计阶段编写的文档。需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
10.在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表
11.编译软件、操作系统、汇编程序都属于系统软件。软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。教务管理系统才是应用软件。12.软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误 13.对被调试的程序进行“错误定位”是程序调试的必要步骤 14.降低耦合性提高内聚性有利于提高模块的独立性
15.软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护
16.程序调试的任务是诊断和改正程序中的错误。
17.数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。
18.软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
19.黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明
20.系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到
21.黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法、因果图等,主要用于软件确认测试
22.白盒测试的主要方法有逻辑覆盖、基本路径测试等
23.结构化分析就是使用数据流图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为机构化规格说明的目标文档
24.软件测试的过程一般按照四个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试
25.软件需求分析阶段的主要工作为需求获取、需求分析、编写需求规格说明书和需求评审
26.E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
27.自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉 28.数据库应用系统中的核心问题是数据库的设计。
29.从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。
30.在E-R图中实体集用矩形,属性用椭圆,联系用菱形。
31.数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。32.数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。33.C语言中的非执行语句不会被编译,不会生成二进制的机器指令
34.一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。
35.程序的执行总是从main函数开始,在main函数中结束,其他函数通过main函数调用执行
以下选项中能表示合法常量的是()。答案:A A)“ 07”
B)1.5E2.0
C)’’
D)1,200 E前E后有数字,E后数字为整数,B)错误;为转义字符,后面跟特定字符,用来表示ASCII字符,C)错误;一个整数之间不能有逗号,D)错误。
36.计算机能直接执行的程序是二进制的可执行程序,其他的不能直接执行 37.算法有零个或多个输入,有一个或多个输出 38.C程序在运行过程中所有计算都以二进制方式进行 39.C语言中的注释不可以夹在变量名或关键字的中间
40.在C语言中函数不能嵌套定义,即在C程序的函数中不能定义另一个函数 41.算法是为了解决一个一个问题而采取的方法和步骤,和运行时间无关 42.E-R图是数据库中数据模型之一
43.C语言程序可以由几个.c文件组成,每个.c文件都可以单独编译,一个程序只有一个main函数,main函数位置可以任意
44.取模运算符“%”为二元运算符,具有左结合性,参与运算的量应均为整型 45.整型数据int占4个字节,double型数据占8个字节。有以下程序
#include main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%dn”,x,y,z);} 程序运行后的输出结果是()。答案:A A)2,3,1
B)2,3,2
C)2,3,3
D)2,2,1
46.在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制
以下定义语句中正确的是()。答案:A A)char A=65+1,b=’b’ B)int a=b=0;
定义变量时不能连等
C)float a=1,*b=&a,*c=&b;
b是指针,c定义为指向指针的指针才可以接受&b
D)double a=0.0;b=1.1;
b=1.1前没有类型名
47.常量是在程序运行时,其值不能被改变的量,跟经常使用没关系
以下关于C语言数据类型使用的叙述中错误的是()。A
A)若只处理“真”和“假”两种逻辑值,应使用逻辑类型
B)若要保存带有多位小数的数据,可使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D)整数类型表示的自然数是准确无误差的C语言不存在逻辑类型,所以A)错误。单精度float类型可提供6位有效数字,双精度double类型可提供16位有效数字,所以要保存带有多位小数的数据,要使用双精度类型
设有定义: int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。答案:A A)k++
B)k+=1
C)++k
k++表达式值为k的值,其余为k+1的值。
D)k+1 48.符号常量习惯上用大写,但不是必须。符号常量是指在程序中通过宏定义用一个符号名来代表一个常量
若有以下程序 #include main(){ int b=10, a=-11;a %= b %= 4;printf(“%d %dn”, a, b);} 则程序的输出结果是()。A
A)-1 2
B)1 2
C)-1-2
D)1-2
若有以下程序 #include main(){ int a=0,b=0,c=0,d;c=(a+=b, b+=a);/*第4行*/ d=c;;/*第5行*/;/*第6行*/;printf(“%d,%d,%dn”,a,b,c);/*第7行*/ } 编译时出现错误,你认为出错的是()。A
A)第4行
两个连续逗号,语法上错误
B)第5行
C)第6行 D)第7行
49.变量一旦定义,变量所占的存储单元地址不可以随时改变 若有以下程序
#include main(){ int a=0,b=0,c=0;c=(a+=++b, b+=4);printf(“%d,%d,%dn”,a,b,c);} 则程序的输出结果是()。答案:A A)1,5,5
先执行a+=++b后,a值为1,b值为1,再执行b+=4后,b为5,最后把b赋值给c,c值为5
以下选项中不属于C语言标识符的是()。A
A)常量 常量中数值常量等不是标识符
B)用户标识符
C)关键字
D)预定义标识符
以下选项中不属于C语言程序运算符的是()。答案:A A)
B)sizeof
C)()
D)&& 有以下程序
#include main(){ int sum, pad, pAd;sum = pad = 5;pAd = ++sum,pAd++, ++pad;printf(“%dn”, pad);} 程序的输出结果是()。A
A)6
C语言中标识符区分大小写,所以pAd和pad是不同的变量,pad值只自增一次,值为6
有以下定义语句,编译时会出现编译错误的是()。答案:A A)char a=“aa”;不能将一个字符串赋值给一个字符变量
B)char a=’n’;
C)char a=’a’;
D)char a=’x2d’;
.以下选项中,值为1的表达式是()。答案:A A)1’0’
以下叙述中正确的是()。A
A)由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象
B)C语言的关系表达式:0
C)逻辑“非”(即运算符!)的运算级别是最低的D)逻辑“或”(即运算符||)的运算级别比算术运算要高
50.字符常量实际存放的就是整数,可以进行任何整数运算 51.后跟八进制数据,不能出现数字8 52.%d表示要输入的是整数;%c则表示输入的是字符,且各控制符之间无任何分隔字符
设有定义: int a;float b;执行
scanf(“%2d%f”, &a, &b);语句时,若从键盘输入 876 543.0 则a和b的值分别是()。A
A)87和6.0
B)876和543.0
C)87和543.0
D)76和543..有如下程序段: int x=12;double y=3.141593;printf(“%d%8.6f”, x, y);其输出结果是()。答案:A A)123.141593
B)12 3.141593
C)12, 3.141593
D)123.1415930 x和y之间没有间隔符,%8.6f表示占据8个字符,小数点后有6位
以下叙述中正确的是()。A
A)赋值语句是一种执行语句,必须放在函数的可执行部分
B)scanf和printf是C语言提供的输入和输出语句
C)由printf输出的数据都隐含左对齐
D)由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的scanf和printf是输入输出函数,不是语句.printf输出如果有宽度控制,默认是右对齐.数据的实际精度是由数据存储类型决定的,double精度高于float 以下叙述中正确的是()。答案:A A)当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改
B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的 C)空语句就是指程序中的空行
D)复合语句在语法上包含多条语句,其中不能定义局部变量
花括号对{}也可以能用来表示程序中需要整体处理的一组语句的符合语句,空语句表示是只有一个分号的语句,复合语句内可以定义局部变量
有以下程序
#include main(){ char a,b,c,d;scanf(“%c%c”,&a, &b);c=getchar();d=getchar();printf(“%c%c%c%cn”,a,b,c,d);} 当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)12 34 则输出结果是()。A
A)12 3
B)12
C)1234
D)12 34 getchar()函数的值就是从输入设备得到的字符,在输入时,空格、回车符将作为字符读入,请注意,getchar()只能接收一个字符。所以变量a被赋予1,变量b被赋予2,变量c被赋予回车符,变量d被赋予3
有以下程序
#include main(){ int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);} 若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下□代表空格,代表回车)()。答案:A A)12a34b
B)12□a□34□b
C)12,a,34,b
D)12□a34□b
在输入多个数据时,如果格式控制串中没有非格式字符,则认为所有输入的字符均为有效字符。
有以下程序
#include main(){ char b,c;int i;b= ’a’;c = ’A’;for(i=0;i
A)AbCdEf
B)ABCDEF
C)aBcDeF D)abcdef
有以下程序
#include main(){ char c1,c2,c3,c4,c5,c6;scanf(“%c%c%c%c”, &c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(“%c%cn”,c5,c6);} 程序运行后,若从键盘输入(从第1列开始)123 45678 则输出结果是()。答案:A A)1245
B)1256
C)1278
D)1267 scanf()是格式化输入函数;getchar()函数从键盘缓冲区读入下一个字符;putchar()输出一个字符;printf()函数是格式化输出函数。在题目中,程序执行到scanf()函数时,会暂停等待用户输入4个字符,按题意输入123后,字符1~3被分别赋值到c1~c3中,而c4会得到一个换行符' n'。然后执行第1个getchar()函数,由于前面的scanf()函数读完了缓冲区中的所有字符,所以此时程序会又暂停等待用户输入,按题意输入45678后,缓冲区第一个字符4赋值到c5,第二个字符5输入到c6,所以本题应该选择A)。
有以下程序段 #include int j;float y;char name[50];scanf(“%2d%f%s”, &j, &y, name);当执行上述程序段,从键盘上输入55566 7777abc 后,y的值为()。A
A)566.0
B)55566.0
C)7777.0
D)566777.0 按用户指定的格式从键盘上把数据输入到指定的变量之中,其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。因此j的值为55,y的值为566.0,字符数组name的值为7777abc
以下叙述中错误的是()。A
A)getchar函数用于从磁盘文件读入字符
B)gets函数用于从终端读入字符串
C)fputs函数用于把字符串输出到文件
D)fwrite函数用于以二进制形式输出数据到文件
题中“fopen(fn,”w“)”的作用是打开fn所指向的文件,使用文件方式为“写入”;“fputs(str,fp)”的作用是将字符str的值输出到fp所指向的文件中去。在程序中,两次使用“写入”的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中t1.dat的内容为end。
有以下程序
#include main(){ int x=1, y=0;if(!x)y++;else if(x==0)if(x)y+=2;else y+=3;printf(“%dn”, y);} 程序运行后的输出结果是()。答案:A A)0
B)2
C)1
D)3
若有定义: float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()。A
A)switch(a+b){ case 1: printf(“*n”);case 2+1: printf(“**n”);}
B)switch((int)x);{ case 1: printf(“*n”);case 2: printf(“**n”);}
C)switch(x){ case 1.0: printf(“*n”);case 2.0: printf(“**n”);}
D)switch(a+b){ case 1: printf(“*n”);case c: printf(“**n”);} 若变量已正确定义,在if(W)printf(“%dn” ,k);中,以下不可替代W的是()。答案:A A)ab+c
是非法的表达式,C语言中没有“”运算符
B)ch=getchar()
C)a==b+c
D)a++
设有定义: int a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是()。A
A)if(a>b)c=a;a=b;b=c;
B)if(a>b){c=a,a=b,b=c;}
C)if(a>b)c=a,a=b,b=c;
D)if(a>b){c=a;a=b;b=c;}
有以下程序
#include main(){ int x;scanf(“%d”, &x);if(x
B)不等于10的整数 C)大于3或等于10的整数
D)小于3的整数
下列条件语句中,输出结果与其他语句不同的是()。A
A)if(a==0)printf(“%dn”, x);else printf(“%dn”, y);
B)if(a==0)printf(“%dn”, y);else printf(“%dn”, x);
C)if(a!=0)printf(“%dn”, x);else printf(“%dn”, y);
D)if(a)printf(“%dn”, x);else printf(“%dn”, y);
若有以下程序 #include main(){ int a=1,b=2,c=3,d=4;if((a=2)||(b=1))c=2;if((c==3)&&(d=-1))a=5;printf(“%d,%d,%d,%dn”, a,b,c,d);} 则程序的输出结果是()。A
A)2,2,2,4
B)2,1,2,-1
C)5,1,2,-1
D)1,2,3,4
若有以下程序
#include main(){ int a=1,b=2,c=3,d=4;if((a=2)&&(b=1))c=2;if((c==3)||(d=-1))a=5;printf(“%d,%d,%d,%dn”, a,b,c,d);} 则程序的输出结果是()。答案:A A)5,1,2,-1
B)2,1,2,-1
C)2,2,2,4
D)1,2,3,4
若有以下程序 #include main(){ int a=1,b=2,c=3,d=4, r=0;if(a!=1);else r=1;if(b==2)r+=2;if(c!=3);r+=3;if(d==4)r+=4;printf(“%dn”, r);} 则程序的输出结果是()。A
A)10
B)7
C)6
D)3
以下叙述中正确的是()。A A)关系运算符两边的运算对象可以是C语言中任意合法的表达式
B)在C语言中,逻辑真值和假值分别对应1和0
C)对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误
D)分支结构是根据算术表达式的结果来判断流程走向的逻辑真值和假值分别对应非零和零。对于浮点变量x和y,表达式“x==y”是合法的;分支结构是根据表达式的真假来判断流程走向的在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。A
A)(E==0)
B)(E>0||E
C)(!E==0)
D)(E!=0)
以下叙述中正确的是()。A
A)break语句只能用在循环体内和switch语句体内
B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C)在循环体内使用break语句和continue语句的作用相同
D)break语句只能用于switch语句体中
break和continue语句。break语句可以用于switch或循环体内,作用是跳出switch或循环体。continue语句只能用于循环体内,作用是结束当前循环,进入下次循环 若有以下程序 #include main(){ int a=6, b=0, c=0;for(;a;){ b += a;a-= ++c;} printf(“%d,%d,%dn”, a,b,c);} 则程序的输出结果是()。A
A)0,14,3
B)1,14,3
C)0,18,3
D)0,14,6
有以下程序
#include main(){ int y=10;while(y--);printf(“y=%dn”,y);} 程序执行后的输出结果是()。A
A)y=-1
B)y=0
C)y=1
D)while构成无限循环
有以下程序
#include main(){ int k=5;while(--k)printf(“%d”,k-= 3);printf(“n”);} 执行后的输出结果是()。答案:A A)1
B)2
C)4
D)死循环
判断循环条件--k,k值为4,条件为假,执行输出语句,其中k-= 3执行后,k为1,即输出为1,然后判断循环条件--k,值为0,为假,循环结束
有以下程序
#include main(){ int a=1, b=2;for(;a
B)8,11
C)7,11
D)9,18
由以下while构成的循环,循环体执行的次数是 int k=0;while(k=1)k++;()。A A)无限次
B)一次也不执行
C)执行一次
D)有语法错,不能执行
有以下程序
#include main(){ int i, sum;for(i=1;i
B)0
C)15
D)16 sum没有初始化,为随机值,再加上若干值,仍为随机值
有以下程序
#include main(){ int a = 3;do { printf(“%d,”, a-=2);} while(!(--a));printf(“n”);} 程序运行后的输出结果是()。A A)1,-2,B)1,C)3,0,D)1,0
53.循环for,while,do-while可以互相嵌套循环嵌套可以超过2层,对缩进也没有要求,for语句的圆括号中的表达式都省略掉,表示死循环。若变量已正确定义
for(x=0,y=0;(y!=99 && x
B)执行3次
C)执行无限次
D)执行次数不定
for循环没有循环语句,不确定x,y变量会怎样赋值,所以执行次数不定。
对于while(!E)s;,若要执行循环体s,则E的取值应为:()。A
A)E等于0
B)E不等于0
C)E不等于1 D)E等于1
若有以下程序
#include main(){ char w[20]=“dogs”, a[5][10]={“abcdef”, “ghijkl”, “mnopq”, “rstuv”, “wxyz.”};int i, j, k;for(i=0;w[i];i++){ for(j=0;j
B)1,4,3,3,2,1,4,2,C)5,6,5,6,5,6,5,6,D)6,7,6,7,6,7,6,7,有以下程序
#include main(){ char *s=“12134”;int k=0, a=0;while(s[ k +1 ]){ k++;if(k % 2 ==0){ a = a +(s[ k ]’0’);} printf(“ k=%d a=%dn”, k, a);} 程序运行后的输出结果是()。A
A)k=4 a=12
B)k=5 a=15
C)k=6 a=11
D)k=3 a=14
54.++i和--i 是先增(减)1,在使用。i++和i--是先使用,在增(减)1。例如:main()
{
int m=12,n=32;
printf(“%d %d n”, ++m,n++)
printf(“%d %d n”, m++,++n)} 运行结果:13,32
13,34 Main(){ float a=3.14;Int area, R=5; Area=a*R*R;Printf(“area is %dn”,area);} 结果是area=5*5*3.14=78,因为是78.5转化为int型,area是整型 Main(){
Float=2.9;
Printf(“%d”, a); } 结果是a=2,因为是printf中起决定作用的。
55.逗号表达式:y=a=4,b=5,a+b;其结果为a+b的值是9 56.逗号表达式:y=(a=4,b=5,a=b);
其结果为y的值是9 57.逗号表达式;y=(a=4,b=5),a+b;
其结果为a=4,y=5,b=5,a+b的值为9 58.逗号表达式:y=a=(4,b=5),a+b:
其结果为y=a=5,a+b的值为10 59.指针类型的null其逻辑值为0,还有0, , 0.0其逻辑表达式为0。60.
C语言选择题精选*1、A 一个C程序的执行是从_____。 A)本程序的main函数开始,到main函数结束√ B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的m......
## ~~~1 下列叙述中正确的是( )。 程序设计就是编制程序 程序的测试必须由程序员自己去完成程序经调试改错后还应进行再测试程序经调试改错后不必进行再测试 ~C ~~~1 以下叙......
### ~~~1 下列叙述中正确的是( )。 程序设计就是编制程序 程序的测试必须由程序员自己去完成程序经调试改错后还应进行再测试程序经调试改错后不必进行再测试~C ~~~1 以下......
2.C语言的基本单位是A A 函数 B 源程序C 语句D 程序行3..以下说法中正确的是C A C语言程序总是从第一个定义的函数开始执行C;B C语言程序中至少有一个main函数;C C语言程序总......
一、(1-3段) 6.第二段中“大自然语言”指什么?A.劳动人民心中理解的话。B.布谷鸟唱歌。 C.古代流传下来的许多农谚。D.花香鸟语,草长莺飞等自然现象。7.对第③段文字运用的说明方......
