C语言单元测验
C语言程序设计单元测试题三【精品-doc】
C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。
一、选择题1.以下为一维整型数组a的正确说明是_________.A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.A)int a[3][]; B)float a(3,4);C)double a[1][4] D)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。
)A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+15.25.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.A)gets(a,B); B)scanf("%s%s",a,B);C)scanf("%s%s",&a,&B); D)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,B);printf("%c",a[5]);A)空格B)\0 C)e D)f8.判断字符串s1是否大于字符串s2,应当使用_______.A)if(s1>s2) B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。
C语言程序设计(数组)期末单元测试与答案
一、单选题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语言程序设计_单元测试题一本单元包含“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、若有以下结构体定义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语言单元测试
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语言单元测试框架的作用为了方便进行单元测试,开发人员可以使用各种C语言单元测试框架。
这些框架提供了一系列功能强大的工具,可以帮助开发人员编写、运行和管理单元测试用例。
主要的作用包括:1. 提供断言函数:单元测试框架通常会提供一系列的断言函数,可以用来判断实际结果和预期结果是否一致。
例如,可以使用断言函数来验证函数的返回值、检查变量的值等等。
2. 自动化测试:单元测试框架可以自动运行测试用例,减少手动测试的工作量。
通过自动化测试,可以快速发现和解决问题,并且保证测试的一致性和可追溯性。
3. 测试报告和统计:单元测试框架可以生成详细的测试报告,包括测试用例的执行结果、覆盖率分析等信息。
这些报告可以帮助开发人员了解代码的测试情况,并及时采取措施。
三、常用的C语言单元测试框架下面介绍几个常用的C语言单元测试框架。
1. UnityUnity是一个轻量级的C语言单元测试框架,广泛应用于嵌入式系统和低级别编程。
它提供了简洁的API,支持断言函数、测试集管理、自动化测试等功能。
Unity的设计目标是提供简单易用的测试工具,使测试人员能够快速编写和运行单元测试。
2. CheckCheck是一个功能丰富的C语言单元测试框架,适用于各种规模的项目。
它支持多种断言函数和测试模式,可以进行单个函数、多个函数和整个模块的测试。
C语言程序设计单元测试及考试答案
} 得分/总分 A. 死循环
B. 0 C. 不确定
1.00/1.00 D. 28 正确答案:C 你选对了 6 单选(1 分) 已定义 int j,s; 则下面程序段的输出结果是( )。 int j,s; for(j=1,s=0;j<=5;j++)
s*=j; printf("%d",s); 得分/总分 A. 120 B. 0 1.00/1.00 C. 死循环
D. 不用编译可以直接运行
1.00/1.00 正确答案:D 你选对了 5 单选(1 分) 下面选项()不属于结构化程序设计原则。 得分/总分 A. 不限制 GOTO 语句使用 1.00/1.00 B. 程序模块化
C. 逐步求精
D. 自顶向下 正确答案:A 你选对了 6 判断(2 分) 计算机只能完成其能力范围内的计算工作,超出计算机能力范围的计算计算机将无法完成。 得分/总分 A. B.2.00/2.00 正确答案:B 你选对了 7 判断(2 分) 计算机程序是计算机为完成某一任务所必须执行的一系列指令的有序集合。 得分/总分 A.2.00/2.00 B. 正确答案:A 你选对了 8 判断(2 分) 对于同一个问题,只能有唯一的算法去解决。 得分/总分 A.2.00/2.00 B. 正确答案:A 你选对了 9 判断(2 分) C 语言中不区分大小写字母。
B. 有穷性
C. 可行性
D. 继承性
1.00/1.00 正确答案:D 你选对了 4 单选(1 分) 关于 C 语言,下面叙述不正确的是()。
得分/总分 A. 既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序
B. 既具有高级语言的特点,又具有汇编语言的特点
C语言综合练习(最终版).
C语言单元练习题第一单元数据类型、表达式及顺序结构练习题一、选择题:1、不合法的C语言整型常量是。
A. –012B. 0x35C. 123LD. 8E22、不合法的C语言实型常量是。
A. E3B. .123C. –6.2E4D. 5.03、不合法的C字符常量是。
A. ´2´B. ´\101´C. ´AB´D. ´\n´4、下列四组选项中,均是不合法的用户标识符的选项是。
A. W P_0 doB. b-a goto intC. float la0 _AD. -123 abc TEMP5、定义三个变量a、b、c,并分别赋初值为5。
能实现该功能的语句是。
A. int a=b=c=5;B. int a,b,c=5;C. int a=5,b=5,c=5;D. int a=5;b=5;c=5;6、设有说明:char w;int x; float y;double z;则表达式w*x+z-y值的数据类型为。
A. floatB. charC. intD. double7、以下选项中不能用作C程序合法常量的是()。
A. 1.234B. '123'C.123D."\x7G"8、以下选项中可用作C程序合法实数的是()A. .1e0B.3.0e0.2C.E9D.9.12E9、下列标识符中,不合法的用户标识符为()。
A. PadB. CHARC. a_10D. a≠b10、以下选项中能表示合法常量的是()。
A.整数:1,200B.实数:1.5E2.0C.字符斜杠:‘\’D.字符串:"\007"11、以下选项中,能用作数据常量的是()。
A.o115B. 0118C.1.5e1.5D. 115L12、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A.1B.0C.2D.313、若有定义语句:int x=10;,则表达式x-=x+x的值为()A.-20B.-10C.0D.1014、表达式:(int)((double)9/2)-(9)%2的值是()。
单元测试题及答案(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值为()。
C语言各章节单元测试题及答案(一)
C.在 C 程序的函数中不能定义另一个函数
D.每个 C 程序文件中都必须要有一个 main 函数
10 有以下程序( )
#include <stdio.h>
main()
{ int a=0, b=0;
/* 给 a 赋值 a=10;
b=20;
给 b 赋值 */
printf("a+b=%d\n",a+b); /* 输出计算结果 */
单元一 认识 C 语言
1 计算机能直接执行的程序是( )。 A.源程序 B.目标程序 C.汇编程序 D.可执行程序 2 以下叙述中错误的是( ) A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中 D.C 语言源程序经编译后生成后缀为.obj 的目标程序 3 下列叙述中错误的是( ) A.C 程序可以由多个程序文件组成 B.一个 C 语言程序只能实现一种算法 C.C 程序可以由一个或多个函数组成 D.一个 C 函数可以单独作为一个 C 程序文件存在 4 以下四个程序中,完全正确的是( ) A. #include <stdio.h> main(); {/*/ programming /*/ printf("programming!\n");} B. #include <stdio.h> main() {/* programming */ printf("programming!\n"); } C. #include <stdio.h> main()
c语言单元测试
c语⾔单元测试《C语⾔程序设计》单元测试(⼀)(适⽤于⾃动化专业本科学⽣)⼀、填空题(共5题,每题2分,共10分):1、C语⾔中唯⼀的三元运算符是(条件运算符? : 或 ? : )。
2、C语⾔的标识符只能由⼤⼩写字母,数字和下划线三种字符组成,⽽且第⼀个字符必须为(字母或下划线)。
3、C语⾔程序的三种基本结构是顺序结构、选择结构和(循环)结构。
4、设有:int a=3,b=4,c=5;则!(a>b)&&!c||1的值为(1 )。
5、能表达“2020&&x<30||x<-100)。
⼆、判断题,对的打√,错的打×(共5题,每题2分,共10分):(√)1、⼀个变量在内存中占据⼀定的存储单元。
(×)2、对⼏个变量在定义时赋初值可以写成:int a=b=c=3;(√)3、⾃增运算符(++)或⾃减运算符(--)只能⽤于变量,不能⽤于常量或表达式。
(√)4、在C程序中,逗号运算符的优先级最低。
(×)5、C语⾔不允许混合类型数据间进⾏运算。
三、选择题(共10题,每题2分,共20分):1、合法的字符串常量是(B )。
A)…\t? B) “A” C)…a? D)?\x32?2、合法的字符常量是(D )。
A)…\084? B) …\84? C)…ab? D)?\x43?3、(B)是C语⾔提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char4、下⾯选项中,不是合法整型常量的是(B)。
A)160 B)-0xcdg C)-01 D)-0x48a5、在C语⾔中,要求参加运算的数必须是整数的运算符是(C )。
A)/ B)* C)% D) =6、在C语⾔中,字符型数据在内存中以(A)形式存放。
A)ASCII码B)BCD码C)反码D)原码7、C语⾔中整数-8在内存中的存储形式为(D)。
A)1111111111110111 B)100000000001000C)000000000001000 D)11111111111110008、下列合法的标识符是(B)。
C语言软件测试单元测试和集成测试的方法
C语言软件测试单元测试和集成测试的方法C语言软件测试:单元测试和集成测试的方法在软件开发过程中,测试是确保软件质量的重要环节。
而在C语言开发中,单元测试和集成测试是两种常用的测试方法。
本文将介绍C语言软件测试的相关概念以及单元测试和集成测试的方法。
一、C语言软件测试的概述C语言是一种广泛应用于系统开发和嵌入式软件开发的高级程序设计语言。
在C语言开发过程中,为了确保所编写的软件能够符合预期的功能和质量要求,进行测试是必不可少的环节。
C语言软件测试主要包括如下几个方面:1. 功能测试:验证软件是否具备有效的功能,并且符合预期的需求。
2. 性能测试:测试软件在各种负载情况下的性能表现,包括速度、响应时间和并发性等。
3. 安全性测试:测试软件的抗攻击性和数据安全性,确保软件不易受到恶意攻击。
4. 兼容性测试:测试软件在不同平台和操作系统下的兼容性,确保软件在各种环境中正常运行。
5. 可靠性测试:测试软件的稳定性和可靠性,确保软件在各种异常情况下能够正确运行。
二、单元测试的方法单元测试是指对软件中的最小可测试单元进行的测试。
在C语言开发中,最小可测试单元通常是函数或模块。
1. 设计测试用例:根据函数的需求和输入输出预期,设计测试用例。
包括正常输入和边界条件输入等各种情况。
2. 编写测试代码:根据设计的测试用例,编写测试代码来调用函数并验证其输出是否与预期相符。
3. 运行测试:运行测试代码并观察测试结果,包括输出结果是否正确、函数是否抛出预期错误等。
4. 分析测试结果:根据测试结果分析问题,确定是否需要修改函数代码以满足预期需求。
5. 重复测试:对修改后的代码重新运行测试,确保问题被修复并且不会引入新的问题。
三、集成测试的方法集成测试是指测试软件中多个单元间的相互作用和集成情况。
在C语言开发中,集成测试主要涉及多个函数或模块的交互测试。
1. 设计集成测试用例:根据各个函数的调用关系和数据交互情况,设计集成测试用例。
C语言第三单元单元测验答案
C语言第三单元单元测验答案C语言程序设计第三单元单元测试答案一选择题1.以下程序的运行结果是。
void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}A) 5, 2, 3 B) -5, -12, -7C) -5, -12, -17 D) 5, -2, -7参考答案:A2.执行以下程序后,a的值为【1】,b的值为【2】。
main(){int a,b,k=4,m=6,*p1=&k,*p2=&ma=p1==&mb=(-*p1)/(*p2)+7;printf("a=%d,b=%d\n",a,b);}【1】A)-1 B)1 C)0 D)4【2】A)5 B)6 C)7 D)10参考答案:【1】C 【2】C3.下面程序欲对两个整型变量的值进行交换,以下正确的说法是。
main(){int a=10,b=20;printf("(1)a=%d,b=%d\n",a,b);swap(&a,&b);printf("(2)a=%d,b=%d\n",a,b);}swap (int p,int q){int t;t=p;p=q;q=t;}A)该程序完全正确B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p、q和变量t均定义为指针即可D)以上说法都不正确参考答案:D4.有四组对指针变量进行操作的语句,以下判断正确的选项是。
(1)int *p,*q;q=p;int a,*p,*q;p=q=&a(2)int a,*p,*q;q=&ap=*q;int a=20,*p;*p=a;(3)int a=b=0,*p;p=&ab=*p;int a=20,*p,*q=&a*p=*q;(4)int a=20,*p,*q=&ap=q;int p,*q;q=&pA)正确:(1) 不正确:(2),(3),(4)B)正确:(1),(4) 不正确:(2),(3)C)正确:(3) 不正确:(1),(2),(4)D)以上结论都不正确参考答案:D参考分析:在四组操作中,完全正确的只有(4),对各组操作中出现的错误分析如下。
C语言各章节单元测试题及答案——函数
第5章函数5.1典型考试题剖析5.1.1选择题【例1】下列程序执行后的结果是_______。
#include <stdio.h>f(int a){int b=0;static c=3;a=c++,b++;return(a);}main(){int a=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}A) 3 B) 0 C) 5 D) 4✧考点:变量的作用域。
✧分析:此题函数f中的变量c是一个静态变量。
第一次调用函数时,使用的参数是a,值为2,进入子函数f内,变量b=0,c=3,然后语句“a=c++,b++;”是一个逗号表达式,不是赋值表达式,a被赋的值是c的值,不同逗号表达式的值,所以a=3,此时c的值同时变为4;第二次调用函数,使用的参数是a,值为3,进入子函数内,变量b=0,c=4(这是静态变量的特性)。
✧答案:D【例2】下面程序的输出是_______。
int w=3;fun(int k);main(){int w=10;printf("%d\n",fun(5)*w);}fun(int k){ if (k==0)return(w);return(fun(k-1)*k);}A) 360 B) 3600 C) 1080 D) 1200✧考点:函数的递归调用和全局变量。
✧分析:此题涉及到了函数的递归调用和全局变量的用法,最容易出错的地方是变量w,程序首先定义了全局变量w,并赋了初值为3,然后在主函数中又定义了一个局部变量w,并赋初值为10,在子函数中引用了变量w,一定要认清这个变量是全局变量w的值而不是主函数中局部变量w 的值。
✧答案:B【例3】有以下程序#include <stdio.h>int abc(int u,int v);main(){int a=24,b=16,c;c=abc(a,b);printf("%d\n",c);}int abc(int u,int v){int w;while(v){ w=u%v;u=v;v=w;}return(u);}输出结果为。
慕课c语言单元测试答案
慕课c语言单元测试答案
第一章测试
1、C语言是一种()
A、机器语言
B、汇编语言Q
C、高级语言
D、低级语言
参考答案:C
2、下列各项中,不是C语言的特点是()。
A、语言简洁、紧凑,使用方便
B、数据类型丰富,可移植性好
C、能实现汇编语言的大部分功能
D、有较强的网络操作功能
参考答案:D
3、下列叙述错误的是()。
A、C程序中的每条语句都用一个分号作为结束符
B、C程序中的每条命令都用一个分号作为结束符
C、C程序中的变必须先定义,后使用
D、C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写
参考答案:B
4、一个C程序的执行是从()。
A、本程序的main函数开始,到main函数结束
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序main函数结束
D、本程序的main函数开始,到本程序文件的最后一个函数结束
参考答案:A。
用c语言编写单元测试题及答案
用c语言编写单元测试题及答案用C语言编写单元测试题及答案1. 题目一:编写一个函数,计算两个整数的和。
要求:- 编写一个名为`add`的函数,接收两个整数参数。
- 返回这两个整数的和。
- 在`main`函数中调用`add`函数,并打印结果。
答案:```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int result = add(5, 3);printf("The sum is: %d\n", result);return 0;}```2. 题目二:编写一个函数,反转一个字符串。
要求:- 编写一个名为`reverseString`的函数,接收一个字符串参数。
- 反转传入的字符串,并返回反转后的结果。
- 在`main`函数中调用`reverseString`函数,并打印结果。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```3. 题目三:编写一个函数,检查一个整数是否为素数。
要求:- 编写一个名为`isPrime`的函数,接收一个整数参数。
c语言单元测试实例
c语言单元测试实例【实用版】目录一、C 语言单元测试简介二、C 语言单元测试实例1.实例一:计算两个整数的和2.实例二:计算两个整数的差3.实例三:计算两个整数的积4.实例四:计算两个整数的商三、C 语言单元测试的优点与应用正文一、C 语言单元测试简介C 语言单元测试是对 C 语言程序中的单个函数或模块进行测试的一种方法。
通过编写测试用例,可以检查函数的正确性和健壮性,以确保在实际应用中能够正常工作。
单元测试是软件开发过程中非常重要的一环,可以提高代码质量,减少错误和漏洞,提高开发效率。
二、C 语言单元测试实例1.实例一:计算两个整数的和假设我们有一个名为`add`的函数,用于计算两个整数的和。
我们可以编写一个测试用例来检查该函数的正确性。
```c#include <stdio.h>int add(int a, int b);int main() {int a = 5, b = 3;int result = add(a, b);printf("The sum of %d and %d is %d", a, b, result);return 0;}int add(int a, int b) {return a + b;}```2.实例二:计算两个整数的差接下来,我们编写一个名为`subtract`的函数,用于计算两个整数的差。
我们同样可以编写一个测试用例来检查该函数的正确性。
```c#include <stdio.h>int subtract(int a, int b);int main() {int a = 5, b = 3;int result = subtract(a, b);printf("The difference between %d and %d is %d", a, b, result);return 0;}int subtract(int a, int b) {return a - b;}```3.实例三:计算两个整数的积现在,我们编写一个名为`multiply`的函数,用于计算两个整数的积。
计算机系统基础:C语言编程实践单元测试与答案
一、单选题1、假定两种浮点数表示格式的位数都是32位,但格式1的阶码长、尾数短,而格式2的阶码短、尾数长,其他所有规定都相同。
则它们可表示的数的精度和范围为()A.格式2可表示的数的范围更小,但精度更高B.格式1可表示的数的范围更小,但精度更高C.两者可表示的数的范围和精度均相同D.格式1可表示的数的范围更大,且精度更高正确答案:A2、假设x和y是某C语言程序中的两个char型变量,x=0x5F和y=0xA0,根据C语言中的按位运算和逻辑运算的定义,x^y、x&y、x|y、~x|~y的结果是()A.0xFF,0x00,0xFF,0xFFB.0xFF,0x00,0xFF,0x0FC.0xFF,0x0F,0xFF,0xFFD.0xFF,0x00,0x0F,0xFF正确答案:A3、对于一个n(n≥8)位的变量x,请根据C语言中按位运算的定义,给出C语言表达式使得x的最高有效字节不变,其余各位全变为0 ——()A.((x^ ~0xFF) >>8 )<< 8B.x | 0xFFC.x & 0xFFD.(x>>(n-8))<<(n-8)正确答案:D4、对于一个n(n≥8)位的变量x,根据C语言中按位运算的定义,表达式((x^ ~0xFF) >>8 )<< 8的功能是()A.x的最低有效字节不变,其余各位全变为0B.x的最低有效字节全变为0,其余各位取反C.x的最低有效字节全变1,其余各位不变D.x的最高有效字节不变,其余各位全变为0正确答案:B5、若f为某IEEE754单精度浮点数的机器表示,f的真值为a,则以下代码实现的功能是()unsigned int float_neg(unsigned int f){unsigned exp=f>>23&0xFF;unsigned frac=f&0x7FFFFF;if (exp==0xFF)&&(frac!=0)return f;elsereturn f ^ 0x80000000;}A.令f的真值为0.5aB.令f的真值为-aC.令f的真值为2aD.令f的真值为|a|正确答案:B6、以下哪一种情况能很好地发挥cache的作用? ——()A.程序中不含有过多的I/O操作B.程序的指令间相关度不高C.程序具有较好的访问局部性D.程序的大小不超过实际的内存容量正确答案:C7、在存储器分层体系结构中,存储器从容量最大到最小的排列顺序是()A.辅存-主存-寄存器-cacheB.辅存-主存-cache-寄存器C.主存-辅存-cache-寄存器D.辅存-cache-主存-寄存器正确答案:B8、在主存和CPU之间增加cache的目的是()A.提高内存可靠性B.增加内存容量,同时加快访问速度C.加快信息访问速度D.增加内存容量正确答案:C9、以下关于IA-32/Linux异常处理和中断处理的叙述中,错误的是()A.Linux中异常处理的C函数名由do_前缀和处理程序名组成,与相应信号处理程序名相同B.Linux中对中断的处理不采用发送信号给用户进程的方式,而是对相应中断进行具体处理C.Linux对大多数异常的处理方式是发送相应信号给用户进程以尽快结束异常处理过程D.Linux需要针对IA-32的256个中断设置IDT对应表项的内容,即进行IDT的初始化正确答案:A10、以下关于IA-32/Linux信号机制的叙述中,错误的是()A.采用信号处理机制,是为了尽量避免嵌套执行异常或中断B.用户可以自定义信号处理函数,并将其注册为某个信号的处理函数C.Linux总是采用向发生异常的进程发送信号的机制实现异常处理D.向进程发送信号的机制实现异常处理,可以尽快完成在内核态的异常处理过程正确答案:C。
C语言章节复习检测
复习:第一章1.以下关于C语言的叙述不正确的是(D)。
A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面2.以下叙述正确的是( C )。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套3.一个C语言程序是从( B )开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句4.在计算机上可以直接运行的程序是(C)。
A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序5.一个C语言程序是由(A)。
A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成6.简单地说,设计和调试C语言程序要经过编辑、编译、链接和执行4个阶段。
第二章1.请选出合法的C语言赋值语句_B__。
A a=b=58B i++;C a=58,b=58D k=int(a+b);2.若“w=1,x=2,y=3,z=4”,则条件表达式“w>x?w:y<z?y:z”的结果是 3 。
3.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_2.000000_____。
4.C语言中,设x为int型变量,则描述“x是偶数”的表达式是x%2==0 。
5. 已知scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若从键盘输入5、3、8三个数分别作为变量a、b、c的值,则正确的编辑语句是scanf("%d,%d,%d",&a,&b,&c) 。
6.请选出可以作为C语言用户标识符的一组标识符(B)。
A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof7.sizeof(float)是(C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言单元测验(满分100)学号:姓名: 成绩:一、选择题(每小题1分,共20分)1.不属于高级语言的计算机语言是( D )语言。
A .BASICB .C C .ALGOLD .符号 2.下列选项中,不是转移字符的是( C )。
A .\\B .\’C .074D .\0 3.下列说法中错误的是(C )。
A .主函数可以分成两部分:主函数头和主函数体。
B .主函数可以调用任何不是主函数的其它函数。
C .任何函数可以调用不是主函数的其它函数。
D .程序总是从排在程序前面的某个函数开始执行。
4.下列字符串常量中,占用内存字节数为2的字符串常量是( B )。
A .”12” B .”1” C .”1、0” D .”\n\n”5.设有宏定义“#define R 2+3”,则R*R 的宏替换结果正确的是( A )。
A .(2+3)*(2+3) B .2+3*2+3 C .5*5 D .5.0*5.0 6.设a ,b 和c 都是int 型变量,且a=3,b=4,C=5,则下面的表达式中值为0的是( D )。
A .’a’&&’b’ B .a<=b C .a||b+c&&b-c D .!((a<b)&&!c||1)7.设x 为整型变量,和表达式“!(!x )”值完全相同的表达式是( C )。
A .x==0 B .x==1 C .x!=0 D .x!=1 8.若定义了x=100;,则表达式x++>100?x+20:x+10的值是( C ) A. 110 B. 111 C. 120 D. 121 9.下列说法中错误的是(B )。
A .整型变量可以存放字符常量的值B .字符型变量可以存放任意整型常量的值C .变量必须先定义,后使用D .字符串的长度不等于它占用的字节数 10.下列不属于C 语言保留字的是( D ) A. charB. whileC. typedefD. look11.设float a=2,b=4,c=3;,以下C 语言表达式与代数式c b a )(21计算结果不一致的是( A )A. (a+b)=c/2B. (1/2)*(a+b)*cC. (a+b)*c*1/2D. c/2*(a+b)12.执行语句for(i=1;i++<4;);后i 的值是( D) A. 6 B. 4 C. 5 D.不确定 13.在位运算中,操作数左移一位,其结果相当于操作数( A ) A. 乘以2 B. 除以2 C. 乘以4 D. 除以414.使用语句scanf(“a=%f, b=%f ”,&a,&b);输人变量a,b 的值(口代表空格),正确的是( C )A. 1.25,2.4B.1.25口2.4C. a=1.25,b=2.4D. a=1.25口b=2.415. sizeof(double)是(B )A. 函数调用B. int型表达式C. double型表达式D.非法表达式16.设有以下程序段:int a=1,b=10,c=1,x;x=a&&b||+ c;printf(“%d,%d\n”,x,c);执行后输出的结果是( D)A. 0,0B. 0,1C. 1,0D. 1,117.设for(i=0, j=10; (j>0)&&(i<4);i++,j--);,该语句的循环次数是( C)A. 0B. 3C. 4D. 无限18.执行下列程序段后输出的结果是( A)int x,y,z=1;for(x=1,y=-1;x<y;x++,y--)z++;printf(“%d\n”,z);A. 1B. 2C. 5D. 619.下列给出的符号串中,可以作为C语言标识符的是(A )。
A.static B.do C.register D.GOTO20.在c语言中,合法的长整型常量是( A)。
A.0L B.4962 C.0.054838743 D.2.1869e10二、填空题(每空1.5分,共30分)1.执行语句:for(s=0,i=1;i<11;i++){ if(i==6)continue;s+=i;}后,s值为59 (1) 。
2.执行语句”n=1;if(n=5) n++;”后,变量n值为1 (2) 。
3.计算a,b,c中最小值的条件表达式为(3) min(a,b) 。
4.执行语句”a=5+(c=6);”后,变量a、c的值依次为6,6 (4) 。
5.用高级语言编写的程序称为(5) 程序,它可以通过(6) 程序翻译一句执行一句的方式执行,也可以通过(7) 程序一次翻译产生(8) 程序,然后执行。
6.C语言的标识符是由(9) 或(10) 开头的字母、数字、下划线组成的一串符号。
ANSI C规定标识符的长度≤(11) 个字符;而PC机上规定前(12) 个字符有效。
7.用十进制表示整型常量-017为(13) ,表示整型常量-0xf为(14) 。
8.在内存中存储”A”要占用(15) 个字节,存储’A’要占用(16) 字节。
9.表达式10<<3+1的值是(17) 。
10. C语言中,&作为双目运算符表示的运算是(18) 。
11.符号常量的定义方法是(19) 。
12.C语句的最后一定要有一个(20) 分号。
三、阅读程序题(15分)1.阅读下列程序,写出程序运行的输出结果。
(输出1行,3分) main(){ int x=100,a=10,b=20,ok1=5,ok2=0;if(a<b) if(b!=15)if(!ok1)x=1;else if(ok2)x=10;else x=-1;printf(”%d\n”,x);}2.阅读下列程序,写出程序运行的输出结果。
(输出1行,3分) main(){ int i;for(i=0;i<5;i++)switch(i%2){ case 0:printf(“1”);break;case 1:printf(“0”);}}3.阅读下列程序,写出程序运行的输出结果。
(输出1行,3分) void main(){ int m,n=0,i;m=n;i=4;do{ n+=1;i--;m-=n;}while(i>0);printf(“%d,%d,%d\n”,i,n,m);}4.阅读下列程序,写出程序运行的输出结果。
(输出1行,3分) main(){ int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n“,s);}5.阅读下列程序,写出程序运行的输出结果。
(输出2行,3分) main(){ int a=1,b=2,c=3;if(a<=c)if(b==c)printf(“a=%d\n”,a);else printf(“b=%d\n”,b);printf(“c=%d\n”,c);}四、完善程序题(每空3分,共15分)1.下列程序的功能是将变量x、y、z中大者存放到x中,请填写程序中缺少的语句。
void main(){int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if(x<y)x=y;______(1)_______;printf("%d\n",x);}2.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?提示:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
程序源代码如下:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1; (2) ;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&& (3) ) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}3.下列程序的功能是求输入的4个实数之和并输出,请填写程序中缺少的语句成分。
void main(){ float a,x;int i;for(_____(4)______;i>=0;i (5) ){ scanf("%f",&x);s=s+x;}printf("%f\n",s);}五、编程题(每小题10分,共20分)1.判定2000—2500年中的每一年是否闰年,将结果输出。
提示:闰年的条件是:①能被4整除,但不能被100整除的年份都是闰年,如1996年,2004年是闰年;②能被100整除,又能被400整除的年份是闰年。
如1600年、2000年是闰年。
不符合这两个条件的年份不是闰年。
3.一个小于10000的整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?答题卡二、填空题(每空1.5分,共30分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10 (11)(12)(13)(14)(15)(16)(17)(18)(19)(20)三、阅读程序题(每小题3分,共15分)1.2.3.4.5.四、完善程序题(每空3分,共15分)(1)(2)(3)(4)(5)五、编程题(每小题10分,共20分)参考答案一、。