c语言单元测试一
- 格式:docx
- 大小:78.58 KB
- 文档页数:28
C语言中的软件测试与调试方法与工具C语言作为一种广泛使用的编程语言,对于软件测试与调试的需求十分重要。
本文将介绍C语言中常用的软件测试和调试方法以及相关工具,帮助读者更加有效地开发和调试C语言程序。
一、单元测试(Unit Testing)单元测试是针对程序中最小的可测试单元进行测试的一种方法。
在C语言中,最小的可测试单元是函数。
通过编写各种测试用例,对函数进行测试并验证其各个功能的正确性。
1.1 断言(Assertion)断言是单元测试中常用的一种方法,通过在程序中插入断言语句来检测特定条件是否为真。
如果断言条件为假,则表示该处存在问题,并会发出相应的警告或错误信息。
例如,以下代码段展示了如何使用断言来测试一个简单的C语言函数:```c#include <stdio.h>#include <assert.h>int sum(int a, int b) {assert(a >= 0 && b >= 0); // 断言a和b都大于等于0return a + b;int main() {int result = sum(3, -2);printf("Sum: %d\n", result);return 0;}```在上述代码中,我们使用assert宏来实现断言,判断a和b是否都大于等于0。
如果不满足条件,程序将会中止并输出相应的错误信息。
1.2 测试框架(Testing Framework)为了更加方便地进行单元测试,C语言中存在一些测试框架,可以帮助开发者进行自动化测试。
常用的C语言测试框架包括Check、Unity和Google Test等,它们提供了丰富的断言和测试组织能力。
以Check测试框架为例,以下是一个简单的示例:```c#include <check.h>START_TEST(test_sum_positive_numbers) {int result = sum(3, 2);ck_assert_int_eq(result, 5);START_TEST(test_sum_negative_numbers) {int result = sum(-3, -2);ck_assert_int_eq(result, -5);}Suite *sum_suite() {Suite *suite = suite_create("Sum");TCase *test_case = tcase_create("Core");tcase_add_test(test_case, test_sum_positive_numbers); tcase_add_test(test_case, test_sum_negative_numbers); suite_add_tcase(suite, test_case);return suite;}int main() {Suite *suite = sum_suite();SRunner *runner = srunner_create(suite);srunner_run_all(runner, CK_VERBOSE);int failed_count = srunner_ntests_failed(runner);srunner_free(runner);return (failed_count == 0) ? 0 : 1;}```上述代码使用了Check测试框架来进行单元测试。
一、单选题1、C语言中,引用数组元素时,其数组下标的数据类型允许是().A.整型表达式B.任何类型的表达式C.整型常量D.整型常量、整型变量或整型表达式正确答案:D2、若有定义:int a[3][4], 则对数组a元素的正确引用是( )A.a(2)(0)B.a[10-10]C.a[1,3]D.a[2][3]正确答案:D3、以下不正确的定义语句是().A.char c1[ ] = { '1', '2', '3', '4', '5' };B.int y[5] = { 0, 1, 3, 5, 7, 9 };C.double x[5] = { 2.0, 4.0, 6.0, 8.0, 10.0 };D.char c2[ ] = { '\x10', '\xa', '\x8' };正确答案:B4、以下程序的输出结果是().#include<stdio.h>int main(){int n[2] = {0},i,j,k = 2;for (i = 0; i < k; i++)for (j = 0; j < k; j++)n[j] = n[i]+1;printf("%d\n",n[k]);return 0;}A.1B. 2C. 3D.不确定的值正确答案:D5、若二维数组a 有m 列,则在a[ i ][ j ] 前的元素个数为( ).A.j*m+iB.i*m+jC.i*m+j+1D.i*m+j-1正确答案:B6、下面语句的输出结果是().int i,x[3][3] = {1,2,3,4,5,6,7,8,9};for (i = 0; i < 3; i++)printf("%d",x[i][2-i]);A.147B.159C.369D.357正确答案:D7、以下对二维数组a的正确说明是()。
C语言程序设计_单元测试题一本单元包含“C语言概述、数据类型、运算符与表达式、顺序程序”的内容。
一、选择题1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5.若x、i、j、k都是int型变量,则计算下面表达式x=(i=4,j=16,k=32)后,x的值为。
A) 4 B) 16 C) 32 D)526.下列四组选项中,均不是C语言关键字的选项是。
A) define IF typeB) getc char printfC) include case scanfD) while go pow7.下列四组选项中,均是不合法的用户标识符的选项是。
A) W P_0 doB) b-a goto intC) float la0 _AD) -123 abc TEMP8.下列四组选项中,均是合法转义字符的选项是。
A) …\”‟…\\‟…\n‟B) …\‟…\017‟…\”‟C) …\018‟…\f‟…xab‟D) …\\0‟…\101‟…xlf‟9.下面正确的字符常量是。
A) “c” B) …\\‟‟ C) …‟ D) …K‟10.以下叙述不正确的是。
C语言单元测试实例1. 什么是单元测试?单元测试是软件开发中的一种测试方法,用于验证程序的最小可测试单元(通常是函数)是否按照预期进行工作。
单元测试可以帮助开发人员快速发现和修复代码中的错误,提高软件质量和可靠性。
在C语言中,单元测试通常使用测试框架来编写和运行测试用例。
常见的C语言单元测试框架包括Unity、Check、CppUTest等。
这些框架提供了丰富的断言和测试工具,使得编写和执行单元测试变得更加方便和高效。
2. 单元测试的优势单元测试具有以下几个优势:2.1 提高代码质量通过编写单元测试,可以对代码进行全面的覆盖,发现潜在的bug和错误。
单元测试可以帮助开发人员及时修复问题,保证代码的质量。
2.2 改善代码设计为了编写可测试的代码,开发人员需要将代码分解为更小的模块,提高代码的可维护性和可测试性。
单元测试可以促使开发人员遵循良好的设计原则,如单一职责原则、依赖倒置原则等。
2.3 提高开发效率单元测试可以快速发现问题,减少调试时间。
通过自动化运行单元测试,可以快速验证代码的正确性,提高开发效率。
2.4 支持重构重构是改进代码质量的重要手段,但重构可能引入新的bug。
通过编写单元测试,可以确保重构后的代码仍然正确工作,提高重构的安全性。
3. C语言单元测试框架3.1 UnityUnity是一个轻量级的C语言单元测试框架,适用于嵌入式系统和低资源环境。
Unity提供了丰富的断言和测试工具,支持测试组织和运行。
以下是一个使用Unity编写的简单的单元测试示例:#include "unity.h"#include "my_math.h"void test_add(void) {TEST_ASSERT_EQUAL_INT(3, add(1, 2));}int main(void) {UNITY_BEGIN();RUN_TEST(test_add);return UNITY_END();}在上面的示例中,我们使用了TEST_ASSERT_EQUAL_INT宏来断言函数add的返回值是否等于3。
一、单选题1、若有以下结构体定义struct A{int x;int y;}a;则正确的引用或定义是()A.struct b;b.x = 10;B.struct A b = [10];C.A.x = 10;D.A b;b.x = 10;正确答案:B解析:B、先定义类型Struct A的一个变量b,使用{}的方式为b提供初值,b正常需要两个值,而这里传一个值10,也是正确的,相当于把10赋值给b.x2、设有以下定义struct Stu{char name [10];int score;}a,b;则以下描述中错误的是()A.Stu为该结构体的类型名,故定义该结构体类型的一个变量c的语法为Stu c;B.a和b为该结构体类型的两个成员C.struct 为结构体类型的关键字D.为变量a的score赋值98的语句可写为a.score = 98;正确答案:A3、设有以下说明语句struct ex{int x;float y;char z;}example;则下面的叙述中不正确的是()A.example是结构体类型名B.x、y、z都是结构体成员名C.struct 是结构体类型的关键字D.struct ex是结构体类型名正确答案:A解析:A、struct example是类型名,只写example并不知道其是函数名还是int变量名还是float变量名4、以下结构体数组的定义格式中正确的是()struct stu{char name[10];char no[15];int score;};A.struct a[10];B.struct stu a[10];C.struct stu [10];D.stu a[10];正确答案:B解析:B、类型名为struct stu 数组名为a 正确5、以下描述中正确的是()typedef struct{int n;char ch[10];A.PER是结构体类型的变量名B.PER是结构体类型的数组名C.PER是结构体类型的类型同义词,代表该结构体类型D.PER是结构体类型的关键字正确答案:C6、以下描述中错误的是()struct Point{float x;float y;}a[5];A.a为struct Point结构体类型的变量,该变量占5个字节B.a为结构体数组名,该数组中含有5个该结构体类型的变量C.struct Point为该结构体类型D.struct为类型关键字正确答案:A7、以下描述中正确的是()struct Point{float x;float y;A.a[5].x = 7.8f;a[5].y = 6.9f;B.a[0].x = 2.1;a[0].y = 4.3;C.a = {1,2}D.a[0] = {2.1,4.3}正确答案:B解析:A、数组下标越界,正确范围0~4 C、数组名是常量,不能为其赋值D、变量a[0]中包含两个成员a[0].x和a[0].y , 不能为变量a[0]整体赋值8、若有以下定义语句,union data{int i;char c;float f;}a;int n;则以下语句中正确的是()A.a= 3.4f;B.a.i = 5;C.a = {3,'e',1.2};D.a.c= "e";正确答案:B解析:A、a.f = 3.4f; C、不能整体赋值D、应为'e'9、下列对枚举类型的定义正确的是()A.enum a{"A","B"=4,"C"};B.enum a{A;B;C};C.enum a={A,B=4;C};D.enum a{A,B=4;C};正确答案:D解析:B、各元素之间用逗号间隔C、不该有赋值号,enum a{A,B=4;C};2、#include<stdio.h>struct abc{ int a, b, c; };int main(void){struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0].a+s[1].b;printf("%d \n",t);return 0;}以上程序的输出结果为:A.8B.5C.7D.6正确答案:D10、struct ex{ int x ; float y; char z ;} example;则下面的叙述中不正确的是()A. x,y,z都是结构体成员名B.struct是结构体类型的关键字C.struct ex是结构体类型D. example是结构体类型名正确答案:D解析:D、example是结构体类型的一个变量,不是类型名11、关于单链表的描述中错误的是()A.结点的指针域中存放下一个数据元素的地址B.为单链表中每个元素分配一个结点,一般结点有两个数据成员,数据域和指针域C.结点的指针域中存放下一个数据元素所在结点的地址D.单链表中头结点可有可无,一般其标志作用,不存储数据元素正确答案:A12、关于单链表基本概念的描述中正确的是()A.单链表中的头结点就是首元结点B.单链表的头指针也就是指向单链表中首元结点的指针C.单链表的头指针是指向单链表中第一个结点的指针D.单链表的头指针也就是指向单链表中头结点的指针正确答案:C二、判断题1、链式存储中每个结点在物理位置上是连续的正确答案:×2、顺序存储结构中,逻辑上相邻的数据元素在物理位置上也相邻正确答案:√3、结构体类型、联合体类型及枚举类型均属于用户自定义的类型正确答案:√。
C语⾔单元测试对于开发来说,单元测试必不可少,对于开发来说,JUnit⾮常好,对于C++开发,也有CPPUnit可供使⽤,⽽对于传统的开发,就没有很好的⼯具可供使⽤,可以找到的有这么⼏个⼯具:1. CuTest -- CuTest(Cute Test)是⼀个⾮常简单的C语⾔单元测试⼯具。
在使⽤它的时候,只需要包含两个⽂件“CuTest.c CuTest.h”,然后就可以写测试⽤例,进⾏测试了。
它对⽤例⼏乎没有管理功能,报表输出也⾮常简单,可以⽤来试验单元测试的基本想法。
2. CUnit -- CUnit是⼀个轻型的C语⾔单元测试框架。
它提供了设计、管理、运⾏测试⽤例的功能。
它的报表功能⽐较强⼤,但是⽐较⿇烦,更适合于较⼤⼀些的项⽬。
3. Check -- 不错的⼯具。
在这⾥()给出了各种软件测试⼯具,没事可以研究⼀下。
CUnitCUnit基本Test Registry|------------------------------| |Suite '1' . . . . Suite 'N'| |--------------- ---------------| | | |Test '11' ... Test '1M' Test 'N1' ... Test 'NM'⼀次测试(Test Registry)可以运⾏多个测试包(Test Suite),⽽每个测试包可以包括多个测试⽤例(Test Case),每个测试⽤例⼜包含⼀个或者多个断⾔类的语句。
具体到程序的结构上,⼀次测试下辖多个Test Suite,它对应于程序中各个独⽴模块;⼀个Suite管理多个Test Case,它对应于模块内部函数实现。
每个Suite可以含有setup和teardown函数,分别在执⾏suite的前后调⽤。
CUnit测试模式CUnit使⽤四种不同的接⼝,供⽤户来运⾏测试和汇报测试结果:1. ⾃动输出到XML⽂件,⾮交互式2. 基本扩展编程⽅式,⾮交互式3. 控制台⽅式,交互式4. Curses图形接⼝,交互式注意1和2是⾮交互式的,4只能在Unix下使⽤,常⽤console,⽽且console是可以⼈机交互的。
C语言单元测试和测试框架在软件开发过程中,测试是至关重要的一环。
单元测试作为软件测试的基础,对于保证代码质量和功能正确性起着至关重要的作用。
C语言作为一种广泛使用的编程语言,也有各种适用于C语言的单元测试框架。
本文将重点介绍C语言单元测试的基本概念和常用的测试框架。
一、C语言单元测试的概念在软件开发中,单元测试是指对软件中的最小可测试单元进行测试。
在C语言中,最小可测试单元通常是函数或者模块。
单元测试的目的是验证这些最小单元的功能是否正确,以确保代码整体的正确性。
通过对各个最小单元进行单独测试,不仅可以发现和解决潜在的问题,还可以提高代码的可维护性和复用性。
二、C语言单元测试框架的作用为了方便进行单元测试,开发人员可以使用各种C语言单元测试框架。
这些框架提供了一系列功能强大的工具,可以帮助开发人员编写、运行和管理单元测试用例。
主要的作用包括:1. 提供断言函数:单元测试框架通常会提供一系列的断言函数,可以用来判断实际结果和预期结果是否一致。
例如,可以使用断言函数来验证函数的返回值、检查变量的值等等。
2. 自动化测试:单元测试框架可以自动运行测试用例,减少手动测试的工作量。
通过自动化测试,可以快速发现和解决问题,并且保证测试的一致性和可追溯性。
3. 测试报告和统计:单元测试框架可以生成详细的测试报告,包括测试用例的执行结果、覆盖率分析等信息。
这些报告可以帮助开发人员了解代码的测试情况,并及时采取措施。
三、常用的C语言单元测试框架下面介绍几个常用的C语言单元测试框架。
1. UnityUnity是一个轻量级的C语言单元测试框架,广泛应用于嵌入式系统和低级别编程。
它提供了简洁的API,支持断言函数、测试集管理、自动化测试等功能。
Unity的设计目标是提供简单易用的测试工具,使测试人员能够快速编写和运行单元测试。
2. CheckCheck是一个功能丰富的C语言单元测试框架,适用于各种规模的项目。
它支持多种断言函数和测试模式,可以进行单个函数、多个函数和整个模块的测试。
单元一:C语言语法基础1、以下说法正确的是()。
A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、C语言中最简单的数据类型包括()。
A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、字符型、实型、逻辑型3、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()。
A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母,数字和下划线中任一字符4、C语言中运算对象必须是整型的运算符是()。
A、%B、/C、=D、-5、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。
A、2.500000B、2.750000C、3.500000D、0.0000006、设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为()。
A、intB、floatC、doubleD、不确定7、已知int a=6; 则执行a+=a-=a*a;语句后,a的值为()。
A、36B、0C、-24D、-608、运行如下程序,其结果为()。
main(){int i=3;printf(“%d\n”,++i);}A、4B、3C、2D、59、以下程序的输出结果为()。
# include <stdio.h>main(){ int a=2,b=5;printf("a=%d,b=%d\n",a,b); }A、a=%2,b=%5B、a=2,b=5C、a=d,b=dD、a=%d,b=%d10、执行下面两个语句后,输出的结果为()。
char c1=97,c2=98;printf(“%d %c”,c1,c2) ;A、97 98B、97 bC、a 98D、a b11、设x=2.3,a=8,y=4.8,则条件表达式a>x+y值为()。
1.(10分) 单选题10根据算术表达式计算如果a=8,b=2,c=3时,a/b-c=?A 1B 2C 3D 4参考答案:A解析:a/b=4;4-c=12.(10分) 单选题10C语言程序的基本单位是A 程序行B 语句C 函数D 字符参考答案:C解析:无3.(10分) 单选题10srand函数中产生的随机数从2到20的是A rand()%(1+1-20)+20B rand()%(20+1-2)+20C rand()%(20+1-2)+2D rand()%(20+2-2)+2参考答案:C解析:格式是rand()%(最大值+1-最小值)+最小值4.(10分) 单选题10在定义变量和变量名时我们要注意:①命名交量名时应尽量做到“见名知意”,这样有助于记忆,又增加了程序的可读性②下划线(_ )符号一般是系统函数常用的开始符号,故一般不要用它作为变量名的第一个字符。
③不能用数字符号(0-- 9)作名字的开始字符。
④系统规定的保留予不可再作为交量名。
⑤大写字母与小写字母表示不同的名字。
A ①②③④B ①②③C ①②③④⑤D ①②解析:变量的定义5.(10分) 单选题10C语言中,char类型数据占()A 1个字节B 2个字节C 4个字节D 8个字节参考答案:A解析:无6.(10分) 单选题10double类型数据在C语言中占()A 1个字节B 2个字节C 4个字节D 8个字节参考答案:D解析:无7.(10分) 单选题10下列和整形,字符型和实型相互对应的选项是()。
A int float doubleB double char intC int char floatD int double char参考答案:C解析:整数是int的,字符串的是char,实行是float或者double;8.(10分) 单选题10下列哪一个运算符在运算中优先级最高()A +B -C ==D ++解析:无9.(10分) 单选题10下列属于合法的变量名是()A a#B 2aC doubleD SHORTINT参考答案:D解析:A含有违法符号#,B用数字开头,C是关键字,都不对10.(10分) 单选题10下列说法正确的是()A C程序中必须包含头文件B C程序中可以有多个含main()函数C C程序main()函数中只有一条语句可以不用{}括起来D C程序中,一行中可以写多条语句,只要每一条语句以分号结尾即可参考答案:D解析:无一、客观题1.(10分) 单选题10C语言的switch语句中,case后A 只能为常量B 只能为常量或常量表达式C 可为常量及表达式或有确定值的变量及表达式D 可为任何量或表达式参考答案:B解析:无2.(10分) 单选题10if(i==1){ printf("ABC");} else{ if(i==-1){ printf("abc");} else printf("efg");}那么i==0时,输出的值为()A ABCB abcC efgD 无定值参考答案:C解析:因为x==0,不等于1或-1,所以应该输出efg3.(10分) 单选题10逻辑运算符中,运算优先级按从高到低依次为A &&!||B ||&&!C &&||!D !&&||参考答案:D解析:逻辑运算符优先级由高到低!>&&>||4.(10分) 单选题10C语言对嵌套if语句的规定是:else总是与_______配对。
titleC语言程序设计(郑州轻工业大学) 中国大学mooc答案100分最新版content点击这里,复制通过码第一章绪论第一章单元测验1、通常把高级语言源程序翻译成目标程序的程序称为( )。
答案: 编译程序2、关于C语言,下面叙述不正确的是()。
答案: 不用编译可以直接运行。
3、程序的开发步骤中不包括()。
答案: 编译链接4、 zzuliOJ的1000:从今天开始入坑C语言通过码答案: ikJ3Wx00syCxTCfJJpvCjVRSePQ5、 zzuliOJ的1001:整数a+b 通过码答案: jkJ2W0pnsnCxTCfJJpvCjVRSePU6、 zzuliOJ1002: 简单多项式求值通过码答案: g0QlCkxntSyxTCfJJpvCjVRSePY第二章简单C程序设计第二单元测验1、关于定点数和浮点数的说法,下列说法错误的是()。
答案: 浮点数表示的数即是数值的精确值2、以下哪种运算能从变量x中取得十进制最低位的数字()。
答案: x % 103、以下哪个数字的值最大()。
答案: 1e24、设有变量定义: float x=2.5; double y=6.0; 则表达式 (int)x / y的值为( )。
(如果结果是浮点类型,用小数点后一位数字表示)答案: 3.05、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
答案: 正确6、变量被定义后没有赋值,其值不可以使用,是内存中残留的垃圾值。
答案: 正确7、变量是在程序执行期间其值可以改变的量,必须先定义后使用。
答案: 正确8、当赋值语句右边表达式类型与左边变量类型不一致时,以右边表达式的值作为赋值表达式的值。
答案: 错误9、 zzuliOJ1003:两个整数的四则运算通过码答案: ikcgXkln5yyxTCfJJpvCjVRSePc10、 zzuliOJ1004:三位数的数位分离通过码答案: iUUkWxg2s3CxTCfJJpvCjVRSePA11、 zzuliOJ1005:整数幂通过码答案: gx5zX082t3SxTCfJJpvCjVRSePE12、 zzuliOJ1006:求等差数列的和通过码答案: 2B8gCk5k5SKxTCfJJpvCjVRSePI13、 zzuliOJ1007:鸡兔同笼通过码答案: iUNzXx015nCxTCfJJpvCjVRSePM14、 zzuliOJ1008:美元和人民币通过码答案: ihJzCkoyvXGxTCfJJpvCjVRSePw15、 zzuliOJ1009:求平均分通过码答案: 2BFyWhs2vHexTCfJJpvCjVRSeP016、 zzuliOJ1010:求圆的周长和面积通过码答案: jBRzD043syWxTCfJJpvCjVRSefQ17、 zzuliOJ1011:圆柱体表面积通过码答案: ixcjXxxnsHaxTCfJJpvCjVRSefU18、 zzuliOJ1012:求绝对值通过码答案: iRV2UR8x5iSxTCfJJpvCjVRSefY19、 zzuliOJ1013:求两点间距离通过码答案: 2hEgXEczsCyxTCfJJpvCjVRSefc20、 zzuliOJ1014:求三角形的面积通过码答案: 2BF1Xkg74iexTCfJJpvCjVRSefA21、 zzuliOJ1015:计算时间间隔通过码答案: 2RMnWUk6sXSxTCfJJpvCjVRSefE22、 zzuliOJ1015:银行利率通过码答案: 3xZxWBswvCSxTCfJJpvCjVRSefI第二章简单C程序设计小练习-不计分1、以下哪种运算能从变量x中取得十进制最低位的数字()。
∙在C#程序中,MyClass 为一个自定义的类,则下列语句执行后,MyClass[ , ]myArray = new MyClass[2][3];创建了多少个MyClass类的对象?()答案所选答案:6正确答案:6得 2 分,满分 2 分在C#程序中,变量openFileDialog 引用一个openFileDialog对象,为检查用户是否单击了“打开”按钮而退出该对话框,应检查()是否等于OpenFileDialog.OK.答案所选答案:OpenFileDialog.ShowDialog()的返回的值正确答案:OpenFileDialog.ShowDialog()的返回的值得 2 分,满分 2 分在定义虚方法时,应在类的方法前加关键字()。
答案所选答案:virtual正确答案:virtual得 2 分,满分 2 分在C#程序设计中,以下不能正确定义二维数组的是()答案所选答案:int A[] = new int[4,4];正确答案:int A[] = new int[4,4];得 2 分,满分 2 分在C#程序设计中,数据库访问 框架中的类主要位于()命名空间。
答案所选答案:System.Data正确答案:System.Data得 2 分,满分 2 分在为类中的数据成员定义时,不是对象所特有的数据成员称为静态成员,在类中用()修饰符声明。
答案所选答案:static正确答案:static得 2 分,满分 2 分在C#程序设计中,引用命名空间System的正确语句是()答案所选答案:using System;正确答案:using System;得 2 分,满分 2 分下列对定义重载函数的要求中,错误的是()答案所选答案:要求函数的返回值不同正确答案:要求函数的返回值不同得 2 分,满分 2 分在C#中,专门用于表示财务计算的类型是:()答案所选答案:Decimal正确答案:Decimal得 2 分,满分 2 分在C#语言中,名称空间的主要作用是:()答案所选答案:避免名称的冲突正确答案:避免名称的冲突得 2 分,满分 2 分在C#程序中,有数组pins的定义如下: int [ ] pins = new in t[4] {9,2,3,1}; 则元素pins[1]的值为( )答案所选答案:2正确答案:2得 2 分,满分 2 分在C#语言中,对类的构造函数和析构函数描述正确的是()答案所选答案:构造函数可以重载,析构函数不能重载正确答案:构造函数可以重载,析构函数不能重载得 2 分,满分 2 分C#中程序的入口方法名是()答案所选答案:Main正确答案:Main得 2 分,满分 2 分在有类的继承的程序中,有时会用到base关键字。
该关键字的作用是()。
答案所选答案:能调用基类对象构造函数,也能调用基类的方法正确答案:能调用基类对象构造函数,也能调用基类的方法得 2 分,满分 2 分在C#语言中,不能正确声明、实例化数组的是()答案所选答案:int A[] = new int[5]{1,2,3,4,5};正确答案:int A[] = new int[5]{1,2,3,4,5};得 2 分,满分 2 分在技术中,程序如果连接到数据库需要用到的对象为()答案所选答案:Connection对象正确答案:Connection对象得 2 分,满分 2 分关于switch语句的叙述,不正确的是()。
答案所选答案:case常量的值不需要互异,可以有重复值。
正确答案:case常量的值不需要互异,可以有重复值。
得 2 分,满分 2 分在数据访问中,可通过()集合遍历DataSet对象中所有的数据。
答案所选答案:Tables正确答案:Tables得 2 分,满分 2 分在C#语言中,假设有类C继承类B,类B继承类A,且类A中有一私有成员abc,则下列说法正确的是()答案所选答案:类C与类B均不能访问类A成员abc正确答案:类C与类B均不能访问类A成员abc得 2 分,满分 2 分在中,通过执行Command对象的ExecuteReader方法返回的DataReader对象是一种()答案所选答案:只向前的只读的结果集正确答案:只向前的只读的结果集得 2 分,满分 2 分在C#语言中,每个BOOL类型变量占用()个字节的内容。
答案所选答案:1正确答案:1得 2 分,满分 2 分以下能正确定义一维数组的选项是()答案所选答案:int [ ] a ={0,1,2,3,4,5};正确答案:int [ ] a ={0,1,2,3,4,5};得 2 分,满分 2 分关于静态构造函数的说法正确的是()。
答案所选答案:静态构造函数只能对静态数据成员进行初始化,不能对非静态数据成员进行初始化正确答案:静态构造函数只能对静态数据成员进行初始化,不能对非静态数据成员进行初始化得 2 分,满分 2 分下面说法中,正确的是()答案所选答案:一个类中只能定义一个析构函数,但可以定义多个构造函数正确答案:一个类中只能定义一个析构函数,但可以定义多个构造函数得 2 分,满分 2 分下列哪一个不是类中的成员的是( )答案所选答案:while循环结构正确答案:while循环结构得 2 分,满分 2 分在C#语言中,在常规的字符串前面加一个_____字符就形成了逐字字符串,有时也称之为原义字符串。
答案所选答案:@正确答案:@得 2 分,满分 2 分下面关于类和对象的描述中,错误的是()答案所选答案:类同结构体类型没有任何区别正确答案:类同结构体类型没有任何区别得 2 分,满分 2 分在C#程序设计中,下列关键字中,用()类来定义命名空间。
答案所选答案:namespace正确答案:namespace得 2 分,满分 2 分在定义密封类和密封方法时,应加关键字()。
答案所选答案:sealed正确答案:sealed得 2 分,满分 2 分关于引用类型和值类型的叙述中,不正确的是()答案所选答案:结构类型属于引用类型。
正确答案:结构类型属于引用类型。
得 2 分,满分 2 分下列哪项不是面向对象程序设计的特征()。
答案所选答案:方法正确答案:方法得 2 分,满分 2 分下列选项中,哪项不属于值类型的是()。
答案所选答案:数组正确答案:数组得 2 分,满分 2 分下列关于对象的叙述不正确的是()。
答案所选答案:对象是抽象的,类是具体的。
正确答案:对象是抽象的,类是具体的。
得 2 分,满分 2 分在C#中,将数据类型分成两大类:一个是值类型,另一个是()。
答案所选答案:引用类型正确答案:引用类型得 2 分,满分 2 分在C#程序设计中,定义接口使用关键字()。
答案所选答案:interface正确答案:interface得 2 分,满分 2 分在声明类时,一般会用来定义该类的访问权限。
其中,能表示该类只能被这个类的成员访问的修饰符是()。
答案所选答案:private正确答案:private得 2 分,满分 2 分在C#程序设计中,如果把对数据的处理结果保存在标准文本文件(readme.txt)中,建议使用()类操作文件。
答案所选答案:treamwriter正确答案:treamwriter得 2 分,满分 2 分C#语言源代码文件的后缀名为()。
答案所选答案:.CS正确答案:.CS得 2 分,满分 2 分在C#语言中,以下()是析构函数的特征。
答案所选答案:一个类中只能定义一个析构函数正确答案:一个类中只能定义一个析构函数得 2 分,满分 2 分在C#语言中,不能作为函数重载的依据的是()答案所选答案:函数的类型正确答案:函数的类型得 2 分,满分 2 分关于构造函数,下列说法不正确的是()。
答案所选答案:构造函数可以不与类同名,可以用户自己起名字正确答案:构造函数可以不与类同名,可以用户自己起名字得 2 分,满分 2 分C#的引用类型包括类、接口、数组、委托、object和string。
其中object ()根类。
答案所选答案:是所有值类型和引用类型的正确答案:是所有值类型和引用类型的得 2 分,满分 2 分关于C#语言中的属性,以下说法正确的是:()答案所选答案:在属性操作中,value是set的隐含参数正确答案:在属性操作中,value是set的隐含参数得 2 分,满分 2 分以下( )的功能是在C#语言中创建对象时,进行初始化工作的。
答案所选答案:构造函数正确答案:构造函数得 2 分,满分 2 分在C#类的设计中,一个类最多有()个析构函数。
答案所选答案:1正确答案:1得 2 分,满分 2 分C#中while和do-while 循环的主要区别是()答案所选答案:do-while的循环体至少无条件执行一次正确答案:do-while的循环体至少无条件执行一次得 2 分,满分 2 分在C#程序中,为了解决命名冲突,可以将类放在不同的名称空间中,如果要使用某个名称空间中的类,可以通过哪()关键字打开其所在的命名空间。
答案所选答案:using正确答案:using得 2 分,满分 2 分在C#程序设计中,定义委托时,使用关键字()。
答案所选答案:delegate正确答案:delegate得 2 分,满分 2 分方法的参数是引用型参数的时候,说法错误的是:()答案所选答案:引用型参数进行参数传递时,对形参的操作不影响实参的值正确答案:引用型参数进行参数传递时,对形参的操作不影响实参的值得 2 分,满分 2 分在C#程序设计中,如果从标准文本文件(readme.txt)中读取文本,建议使用()类操作文件。
答案所选答案:streamreader正确答案:streamreader得 2 分,满分 2 分关于值类型和引用类型的关系,下列叙述中正确的是_____。
答案所选答案:当用装箱操作把值类型转换为一个引用类型时,需要显示地强制类型转换。
正确答案:当用装箱操作把值类型转换为一个引用类型时,需要显示地强制类型转换。
得 2 分,满分 2 分面向对象编程中“继承”的概念是指()答案所选答案:派生自同一个基类的不同类的对象具有一些共同特征正确答案:派生自同一个基类的不同类的对象具有一些共同特征得 2 分,满分 2 分C#中在调用方法时,会用到参数传递。
实参与形参有四种传递方式,引用参数的修饰符是()。
答案所选答案:ref正确答案:ref得 2 分,满分 2 分在C#程序中,可以使用()连接两个字符串。
答案所选答案:+正确答案:+得 2 分,满分 2 分下面关于类概念的叙述中,()是错误的。
答案所选答案:类就是结构体类型正确答案:类就是结构体类型。