C语言复习补充题
- 格式:doc
- 大小:94.00 KB
- 文档页数:15
c语言补考试题及答案C语言补考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 123abcB. var1C. forD. case答案:B2. 在C语言中,以下哪个语句是正确的?A. int a = 10;B. int a = "10";C. int a = 10.0;D. int a = 0x10;答案:A3. 下列哪个是C语言中的逻辑运算符?A. &&B. ||C. =D. ++答案:A4. C语言中,以下哪个不是标准库函数?A. printf()B. scanf()C. strcpy()D. myFunction()答案:D5. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {1, 2, 3};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3, 4, 5, 6};D. int array = {1, 2, 3};答案:B6. C语言中,以下哪个是正确的字符串字面量?A. 'Hello World'B. "Hello World"C. Hello WorldD. "Hello\nWorld"答案:B7. 以下哪个是C语言中的控制语句?A. ifB. switchC. do-whileD. 所有选项都是答案:D8. 在C语言中,哪个关键字用于定义函数?A. functionB. defC. voidD. int答案:C9. 下列哪个是C语言中的位运算符?A. +B. -C. &D. /答案:C10. 在C语言中,以下哪个是正确的循环结构?A. for(;;)B. while(1)C. do { ... } while(0)D. 所有选项都是答案:D二、填空题(每空2分,共20分)1. C语言中,定义一个整型变量a的语句是 int a; 。
第一、二章 C语言概述及数据和运算一、单项选择题1.以下关于C语言的特点,正确的是。
A.表达能力强且灵活;B.可移植性好;C.提供了丰富的数据类型,允许程序员定义各种类型的变量指针和函数指针;D.以上答案都对。
2.”a”在内存中占字节。
A. 1个B. 2个C. 3个D. 4个3.‟A‟+10的结果是。
A.‟K‟B.”K”C.‟J‟D.”J”4. a=b+=c+5,若b=1,c=2,则a的值是。
A.1 B.7 C.8 D.出错5.下列合法的变量名是。
A.123 B.next C.int D.*x6.C源程序的基本单位是:A.程序行 B.语句 C.函数 D.字符7.字符型数据在微机内存中的存储形式是:A.反码 B.补码 C.EBCDIC码 D.ASCII码8. 用C语言编制的源程序要变为目标程序,必须经过:A. 汇编B.解释C. 编辑D.编译9. 请选出可作为C语言用户标识符的一组标识符:A.voidB.a3_b3C.ForD.Zadefine _123 _abc DOWORD IF case sizeof10.设有语句char a=‟\73‟;则变量a:A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法11.以下选项中正确的整型常量是:A.12.B.-20C.1,000D.4 5 612若变量已正确定义并赋值,不符合C语言语法的表达式是:A. a=a+7B.a=7+b+c,a++C.(int)(12.3)%4D.a=a+7=c+b13.以下选项中不合法的用户标识符是A.abc.cB.fileC.MainD.PRINTF14.以下选项中正确的实型常量是A. 0B. 3.1415C.0.329 102D. .87115.TURBO C中int类型变量所占字节数是:A.1B.2C.3D.416.下列说法不正确的是___________A.C程序由若干个源文件组成,一个源文件由若干个函数组成。
c语言补考试题及答案一、选择题(每题2分,共10分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 下列哪个选项是正确的C语言变量声明?A. int a = 10, b = 20;B. int a = 10; b = 20;C. int a = 10; int b = 20;D. int a = 10, b = 20;答案:A5. C语言中,用于定义一个空指针的关键字是:A. NULLB. voidC. 0D. none答案:A二、填空题(每题2分,共10分)1. 在C语言中,字符常量可以用单引号括起来,例如:'A'。
()答案:正确2. C语言中,一个函数可以返回多个值,通过使用指针参数。
()答案:正确3. C语言中,数组的索引是从0开始的。
()答案:正确4. 在C语言中,关键字`const`用于定义一个常量。
()答案:正确5. C语言中,`sizeof`运算符用于获取变量的大小。
()答案:正确三、简答题(每题5分,共20分)1. 请简述C语言中指针的作用。
答案:指针在C语言中用于存储变量的内存地址,它允许程序员直接访问和操作内存,从而提高了程序的灵活性和效率。
2. 解释C语言中函数原型的作用。
答案:函数原型在C语言中定义了函数的名称、返回类型和参数类型,它允许编译器在编译时检查函数调用的一致性,确保参数类型和数量正确。
3. 描述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被用作指向数组首元素的指针。
数组和指针紧密相关,数组的每个元素都可以通过指针访问。
补充习题一、单选题1、下列语句中,符合语法的赋值语句是。
CA)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;2、对于char cx='\039';语句,正确的是。
AA)不合法B)cx的ASCII值是33C)cx的值为四个字符D)cx的值为三个字符3、以下所列的C语言常量中,错误的是。
BA)0xFF B)1.2e0.5C)2L D)‘\72’4、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是。
DA)132↙B)1,3,2↙C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙5、逻辑运算符两侧运算对象的数据类型。
DA)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据6、C语言对嵌套if语句的规定是:else总是与。
DA)其之前最近的if配对B)第一个if配对C)缩进位置相同的if配对D)其之前最近的且尚未配对的if配对7、设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。
BA)1 B)2C)3 D)48、以下程序段的循环次数是。
Bfor (i=2; i==0; ) printf(“%d” , i--) ;A)无限次B)0次C)1次D)2次9、循环语句的循环体中执行 continue 语句,其作用是。
CA) 立即终止程序运行B) 继续执行 continue 语句之后的循环体各语句C) 结束本次循环D) 结束本次循环,跳出循环10、以下正确的说法是。
AA)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元11、以下正确的描述是。
c语言考试题及答案补考一、选择题(每题2分,共20分)1. 下列哪个是C语言的关键字?A. intB. integerC. stringD. float答案:A2. C语言中,哪个函数用于计算两个数的和?A. add()B. sum()C. max()D. min()答案:B3. 在C语言中,哪个语句用于结束程序?A. break;B. continue;C. exit();D. return;答案:C4. 以下哪个不是C语言的基本数据类型?A. charC. doubleD. string答案:D5. 在C语言中,数组的索引从哪个数字开始?A. 0B. 1C. -1D. 随机数答案:A6. 下列哪个是正确的C语言变量声明?A. int var = 5;B. var = 5;C. int 5var;D. var = int(5);答案:A7. C语言中,哪个运算符用于求模?A. /B. %C. *D. -答案:B8. 以下哪个是C语言中的逻辑运算符?B. ||C. !D. 所有选项都是答案:D9. 在C语言中,哪个语句用于循环遍历数组?A. forB. whileC. do-whileD. switch答案:A10. C语言中,哪个函数用于将整数转换为字符串?A. to_string()B. itoa()C. sprintf()D. atoi()答案:B二、填空题(每题2分,共20分)1. 在C语言中,`printf`函数用于_______。
答案:输出信息到标准输出2. 一个C语言程序的执行从`main`函数的_______开始。
答案:第一行3. C语言中的`switch`语句中,`case`后面必须跟一个_______。
答案:常量表达式4. 在C语言中,`sizeof`运算符用于获取_______。
答案:变量或类型所占的内存大小5. 如果要在C语言中定义一个字符数组,可以使用_______。
答案:char array_name[size];6. C语言中的`if`语句用于_______。
一、选择题(一)概述1.(A )为正确变量名A)pro_5 B)case C)5_pro D)else2.( C )为正确的用户标识符。
A)min-5 B)3_row C)max_at D)union3.下面叙述正确的是(C )A)程序中必需包含自定义函数B)main( )函数必须位于源程序文件的开头C)所有语句都必须以分号“;”结束D)每行最多只能写两个语句4.下面叙述错误的是(A )A)注释说明部分只能位于C源程序的最前面B)C源程序必须包含一个main()函数C)C源程序可由一个或多个函数组成D)一个C源程序的执行是从main( )函数开始,直到main( )函数结束(二)语法基础5.下面叙述错误的是(C )A)算术运算符中不包含“=”运算符B)模运算符“%”是C语言基本的算术运算符C)算术运算符只有“*”,“/”优先级高于关系运算符D)自增和自减运算符只能用于变量,而不能用于常量或表达式6.下面叙述中正确的是(B )A)(3+9)++是正确的表达式B)C语言中的整型与字符型变量混合运算的结果是整型C)模运算符“%”两边运算数的数据类型是任意的D)“abc”+“xxx”是正确的表达式7.若有定义:int i=3, j=6; 则表达式(- -i)*(j++)的值为(A)。
A)12 B)10 C)18 D)158.若有定义:float x=3.5, y=5.5; 则表达式(B )的值为2.A)(x+y)%7 B)(int)(x+y)%7C)(int)x+y%7 D)int(x+y)%7 9 若有定义int x=1, y=2, n=3; 则(B )为正确表达式A)x=ny B)x=y*3, y=(x+n)/yC)(x+y)(y+n) D)float(y/n)10若有定义:int a, 且表达式!a的值为0,则表达式(BD )的值为1A)!(a<0||a>0) B)a!=0 C)a=0 D)a= =011若有定义:int a=3, b=5, c=8; 则表达式!(a-b)||(c-b)的值为()。
C语言补充题(1-3)一、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.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 522.下列四组选项中,均不是C语言关键字的选项是。
第一章C语言概述之基本规则一、选择题1、C语言程序的基本单位是()(A)函数(B)过程(C)子程序(D)子例程2、下列各选项中,合法的C语言关键字是()(A)integer (B)sin (C)string (D)void3、下列选项中,是C语言提供的合法关键字是()(A)swicth (B)cher (C)default (D)Case4、C语言的程序一行写不下时,应该()(A)用回车符换行(B)在任意一个空格处换行(C)用分号换行(D)用逗号换行5、下列叙述不正确的是()(A)在C程序中,%是只能用于整数运算的运算符(B)在C程序中,无论是整数还是实数,都能正确无误地表示(C)若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值。
(D)在C程序中,语句之间必须用分号“;”分隔6、在C程序中,可以作为用户标识符的一组标识符是()(A)void define WORD (B)as_b3 _224 Else(C)Switch –wer case (D)4b DO SIG7、在C语言中,下列合法的字符常量是()(A)’\039’(B)’\x76’(C)’ab’(D)’\o’注:参见P14,3.字符常量。
8、以下说法正确的是()(A)C语言程序是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main()函数中定义(C)C语言程序是从main()函数开始执行(D)C语言程序中的main()函数必须放在程序的开始部分9、以下叙述中不正确的是()(A)在C程序中所有的变量必须先定义后使用(B)在程序中,aph和APH是两个不同的变量(C)若a和b类型相同,在执行了赋值语句a=b后,b中的值放入a中,b 中的值不变(D)当输入数值时,对于整型变量只能输入整型值,对于实型值只能输入实型值10、以下选项中合法的用户标识符是()(A)int (B)a# (C)5mem (D)_24311、C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()(A)必须为字母(B)必须为下划线(C)必须为字母或下划线(D)可以是字母、数字、下划线中任意一种二、填空题1、C语言中的标识符可分为_____、_____和预定义标识符3类。
c语言基础习题、复习题(含答案)《C语言设计》复习题一选择题1、以下说法中正确的是(C )。
C语言程序总是从main()函数开始执行2、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是___C___.C. 2.03、以下叙述正确的是(D )。
D. 用do…while语句构成循环时,在while后的表达式为零时结束循环4、C程序是( B)B. 从Main函数开始5、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为__C____。
C. 326、设int b=2;表达式b/(b*2)的值是___A_____.A. 07、表示关系X<=Y<=Z的C语言表达式为__A___.A. (X < =Y)&&(Y < =Z)8、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是BB. x=20,y=30,z=309、设A=3,B=4,执行printf("%d,%d",(A,B),(B,A));的输出是___B___.B. 4,310、下面判断正确的是CC. char *s="china";等价于char *s;s="china";11、若有说明:int a[10];,则对a数组元素的正确引用是(D )。
D. a[10-10]12、在C语言中,int、char和short三种类型数据在内存中所占用的字节数DD. 由所用机器的机器字长决定13、C语言规定,函数返回值的类型是由DD. 在定义该函数时所指定的函数类型所决定14、与y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是AA. if(x > 0) y=1; else if(x < 0) y=-1; else y=015、执行语句:for(i=1;i++ < 4;)后;变量i的值是(C )C. 516、语句while(!E);中的表达式!E等价于_____A__A. E==017、假定a和b为int型变量,则执行以下语句后b的值为DD. -418、对以下说明语句的正确理解是____B____int a[10]={6,7,8,9,10};B. 将5个初值依次赋给a[0]至a[4]19、以下不能对二维数组a进行正确初始化的语句是CC. int a[2][3]={{1,2},{3,4},{5,6}}; 20、在C语言中,一维数组的定义方式为:类型说明符数组名___D______D. [整型常量]21、下列说法中正确的是_D___。
第1章程序设计基础一、单项选择题1. C 语言中的标识符只能由字母、数字和下划线 3 种字符组成,且第一个字符( )。
A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种2. 以下选项中,合法的用户自定义标识符是( )。
A.intB.a#C.5memD._2433. 以下选项中,C语言的关键字是( )。
A.swicthB.cherC.defaultD.Case4. 构成C语言程序的基本单位是( )。
A.函数B.变量C.运算符D.语句5. C 语言规定,在一个源程序中,main 函数的位置( )。
A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后6. 以下叙述中,正确的是( )。
A.C 程序中的注释只能出现在程序的开始位置和语句的后面B.C 程序书写格式严谨,要求一行内只能写一个语句C.C 程序的书写格式自由,一个语句可以写在多行上D.用 C 语言编写的程序只能放在一个程序文件中二、填空题1.在C源程序中,注释部分两侧分界符分别为_____和_____。
2.一个用C语言编写的程序是从_____开始执行的。
3.在C源程序中,任意一个函数都由_____和_____两部分组成。
4. C 语言源程序需要用_____将它翻译为机器语言形式的目标程序。
5. C 语言编程过程中除了会遇到连接错误和运行错误外,更多情况下,遇到的是_____错误和_____错误。
第2章数据类型、运算符和表达式一、单项选择题1. C 语言中的基本数据类型有( )。
A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型《高级语言程序设计》(C语言描述)补充练习题第1页/共20页A.-37B.32,758C.326D.63. 设int类型的数据占用2字节内存,则unsigned int类型数据的取值范围是( )。
A.0~255B.0~65535C.-32768~32767D.-256~2554. 以下选项中,不正确的实型常量是( )。
补充例题【补充例题1、2】设磁盘上有一个存放原始成绩的文本文件score.txt,在该文件中,每行有一个百分制的成绩,共有5条成绩。
编写一个程序,按成绩由高到低排序后,存放到排序后的成绩文本文件score2.txt中。
【补充例题3】设磁盘上有一个存放原始成绩的文本文件score.txt,在该文件中,存放学生的姓名和成绩(样式如下),共有5条成绩。
编写一个程序,从该文件读取学生姓名和成绩,并显示之。
zhang83Li93WANG53HONG67GAO100【补充例题4】请写一个程序,把由用户从键盘上输入的5个数据(整数),按二进制形式,存放到磁盘上的一个数据文件中。
设每个数据(整数),占用4个字节。
【补充例题5】设磁盘上有一个存放原始数据的二进制文件abc.dat,在该文件中,存放有5个整型数据(每个数据占用4个字节)。
编写一个程序,从该文件中读出各数据,在屏幕上显示这些数据的平均值。
【补充例题6】设磁盘上有一个存放原始数据的二进制文件abc.dat,在该文件中,存放有5个整型数据(每个数据占用4个字节)。
编写一个程序,从该文件中读出各数据,按从大到小的排序后,存放到另一个二进制数据文件中去。
【补充例题7】设磁盘上有一个存放原始数据的二进制文件abc.dat,在该文件中,存放有若干个整型数据(每个数据占用4个字节)。
编写一个程序,先显示这些数据(每行显示一个数据),再分别找出这个数据文件中的最大值和最小值,并把结果写到文本文件maxmin.txt文件中。
【补充例题8】设磁盘上有两个文件data1和data2。
文件data1已经加密处理,但data2尚未经过加密处理。
编写一个程序,把这两个文件合并到一起,生成另一个文件data3。
具体要求:文件data1中的数据在前,文件data2的数据在后,同时对data2中的每个字节的数据进行异或0xAA 的加密处理。
【补充例题9】设磁盘上有一个文件data1。
C程序设计补充练习答案第一、二章一.单项选择题1. D2. B3. A4. C5. B6. C7. D8. D9. B 10. A11. B 12. D 13. A 14. D 15.B 16. D 17. B 18. B 19. B20. C 21. C 22. D 23. C 24. C 25. D 26. B 27. A 28. D 二.填空题1. main2. 04363. 0x53344. 2.5000005. 先定义,后使用6. { }说明语句执行语句7. 十八十六8. c-329. c-48 或c-‘0’10. 4.00000 11. 3.50000012. 11 1213. 4.200000 4.20000014. int float double 15. 存储单元16. 说明执行17. 1\abc\def 18. 键盘输入一个字符19. 123 45 ‘6’20. 11 12 21. 顺序选择循环22. a=31 , Ha=1f , Oa=3723. 2 和 224. ( -b+sqrt (b*b-4*a*c ) ) / ( 2*a )25. t=a ; a=b ; b=t ;三.判断题1.×2√3.√4.×5.×6.√7.×8.×9.×10.×11.×12.√13.×14. ×15. ×16. ×17. √18. √19. √20. √21. × 22. √四.程序阅读题1. a= -32. 7b=’D’“end”3. 13.7000004. 11, 1, 1,5. x1=6.00 6.CD 7. ax2= 0.67‘b’\c\8. 27.000000五.程序填空题1.PI 3.14159scanf(“%f”,&r) s=PI*r*rprintf(“s=%f\n”,s)2. int t scanf(“%d%d%d” , &a, &b, &c) t=a c=t3. &a, &b b a-b b第三章一.单项选择题1. A2. A3. C4. D5. D6. B7. B8. D9. A 10. D11. A 12. C 13. C 14. A 15. D 16. C 17. C 18. A 19. C 20. A 21. C二.填空题1. x>10 && x<100 ||x<02. a 3.x=y && y>=z4. 15. a>=10 || a<=06. 17. 它上面最近的if8. 非09. 010. y%2= =1 11. x<z || y<z 12. 0 13. !=0 14.结束循环或跳出switch结构15. 死循环16. 505017. for (i=1,s=0; i<=100; i++) {s=s+i; }18. 4 5 19.211 220. bcde#21. k=14 n=-122. ##########23. getchar()三.判断题1. √2. √3. √4. ×5. ×6. √7. ×8. √9. √10. ×11. ×12. √13. ×14. √15. ×四.程序阅读题1. 62. 1.6000003. 3, 2, 3, 34. 0, 15. s=56. s=77. *8.sum=33 9. abcDEF*********10. 0 11. x=8 12. 5, 5五.程序填空题1. -1 1 02. x<0 x/10 y!=-23. a / 500 r=0.084. s=0, n=1 t*n s+t5. i<=50 i=i+26. x7. a-- 8. pi+1.0/(i*i)9. i%3==2 && i%5==3 j%10==0 10. i<=x 11. m=m+10 m%3==0 i++第四章一.单项选择题1. D2. C3. C4. C5. B6. D7. D8. D9. C10. B 11. A 12. C 13. A 二.填空题1. 9 02. a[0] 03. %c %s4. 大写小写5. 0 66. 按行存放三.判断题1. ×2. √3. ×4. √5. ×6. √7. ×8. √9. ×10.×四.程序阅读题1. –5 10 20 40 -100 0 -50 60-100 -50 -5 0 10 20 40 602.* * * * *3. 65* * * * ** * * * ** * * * ** * * * *4.11 11 2 11 3 3 11 4 6 4 11 5 10 10 51五.程序填空题1. (c=getchar()) ++或+= +652. 0 ‘\0’str1 [ i ]- str2 [ i ]3. a a sum/n x[i]<ave第五章一.单项选择题1. B2. B3. C4. D5. D6. D7. A8. A9. D10. D 11. D 12. D 13. A 14. D二.填空题1. 2 2. 13. 4 124. 12 125. s[1][0]6. 8 87. a[0] a[3]8. 6 a[3]9. bcdABCD10. hELLO!11. 所定义的指针p无确定的目标变量12. 12345 13. ef 14. P*D*P*1*-*0*15. *2*4*6*8*三.判断题1. √2. √3. √4. ×5. √6. ×7. ×8. ×9. √四.程序阅读题1. 1682. 11, 93. abcdeedcba7, 114.beijingshanhgai五.程序填空题1. k<N a+i+1 a+i+12. &a[index] i*M+n j<=i第六章一.单项选择题1. C2. C3. B4. A5. D6. A7. B8. A9. A 10. B 11. D 12. A 13. A 14 A 二.填空题1. 函数首部函数体2.在定义一个函数时,其函数体内又包含另一个函数的完整定义在调用一个函数的过程中,又调用另一个过程3. 动态4. main()5. void6. extern7. 从定义变量的位置开始到本源文件结束8. 局部变量的作用三.判断题1. ╳2. √3. ╳4. ╳5.√ 6. √7. ╳8. ╳9. √10. ╳四.程序阅读题1. 4 6 82. 3, 43. 484. 5, 255. the value is 31 五.程序填空题1. age(n-1)+2 age(5)2. k/10 10*a2 n++3. i<10 array[i] average(score)第七章一.单项选择题1. D , A2. B3. B4. D5. B6. C7. C8. D二.填空题1. 编译内存传递2.运行(或执行)编译 3. 8 4. include 包含5. # include isodd(x) ((x)%2)6. 宏定义文件包含条件编译7. # include “file1.h”三.判断题1. ╳2. √3. ╳4. √5.√ 6. ╳7. √8.. ╳四.程序阅读题1. 23 ,2252. 82012五.程序填空题1. #define N #endifa[0] <第八章一.单项选择题1. D2. D3. A4. C5. D6. 无7. B8. C. 1. B二.填空题1. 2 32.(*(&a)).day (&a)->day3. ‘a’‘c’4.. 不同类型的数据占用连续的存储单元不同类型的数据组合在一起三.判断题1. √2. ╳3. √4.╳5. √6. √7. √四.程序阅读题1. 10x2. 1995 is Windows 951.1800000 .000000五.程序填空题1. ymd number+tab[lp][inumber2. p+5 scanf(“%s”,p->name), p+53. struct parts *next (struct parts *)malloc(LEN)第九章一.单项选择题1. B2. D3. B4. A5. B6. C7. B8. C二.填空题1.a=a&b2. $ $ $3. 010001004. 0x0f5. 03776. 111100007. s=(low&0xff)|(high&oxff00)8. x=11,y=17,z=11 9. i^0x0f 10. a=a^b;b=a^b;a=a^b;三.判断题1. √2. ╳3.╳4. √5. √第十章一.单项选择题1. D2. B3. A4. A5. C6. C7. B8. B9. D 10. C 11. D 12. C 13. B 14. C 15. B二.填空题1. 文本或ASCII 2.输入输出的数据流的开始和结束仅受程序控制而不受物理符号的控制。
c语言补考试题及答案一、选择题1. 下列哪个是C语言的关键字?A. inputB. intC. assertD. while答案:B. int2. 在C语言中,下面哪个运算符用于逻辑或操作?A. &&B. ||C. !D. &答案:B. ||3. 下面哪个函数可以用于将一个字符转换为整型?A. scanf()B. gets()C. getchar()D. atoi()答案:D. atoi()二、填空题1. 在C语言中,用于声明一个整型变量的关键字是______。
答案:int2. C语言中用于循环执行一段代码的关键字是______。
答案:while3. C语言中,用于打印字符串的函数是______。
答案:printf三、编程题1. 编写一个C语言程序,要求用户输入两个整数,然后输出它们的和。
代码示例:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d%d", &num1, &num2);sum = num1 + num2;printf("两个数的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,要求用户输入一个整数,然后判断它是否为偶数并输出结果。
代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n");scanf("%d", &num);if (num % 2 == 0) {printf("输入的数是偶数\n");} else {printf("输入的数是奇数\n");}return 0;}```总结:本文介绍了C语言的补考试题及答案,包括选择题、填空题和编程题。
补充习题解答1:1.C 语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。
A、‘{‘和’}’B、‘[‘和’]’C、“/*”和”*/”D、“*/”和”/*”答案:C,这题大家基本都没问题。
2.下列运算符中,优先级最低的是_____。
A、*B、!=C、+D、=答案:D。
本题考察的是运算符的优先级问题,顺序为:初等运算符>单目运算符>算术运算符>关系运算符>逻辑运算符>条件运算符>赋值运算符>逗号运算符.请大家记住这个顺序。
另外,大家在写程序的时候并不能够准确地确定优先级的时候,多加几对括号就可以了,因为在这种情况下读你程序的人可能也不确定优先级。
3.下列运算符中,优先级最低的是:_____A、*B、+C、==D、=答案:D,理由同上。
4.已知字符‘a’的ASCII码为97 ,执行下列语句的输出是_____。
printf ("%d, %c", ’b’, ’b’+1 ) ;A、98, bB、语句不合法C、98, 99D、98, c答案:D。
每一个字符都对应一个整型数值的ASCII码,故可以将字符以int型输出,反过来,也可以将符合ASCII码的int型数值进行字符。
关键在于输出格式控制。
5.有程序段如下:Int k=10;While(k=0)K=k-1;以下选项中描述正确的是_____。
A. 语句“k=k-1;”被执行10次。
B. 语句“k=k-1;”被执行1次。
C. 语句“k=k-1;”被执行无限多次。
D. 语句“k=k-1;”一次也不执行。
答案:D。
while循环体执行的条件为:while判断条件为真(非0为真0为假,特别注意,负数也为真)。
而本题的判断条件为k=0这个表达式的值,为0,故原题等价于while(0)。
所以在写程序的时候要特别避免类似的逻辑错误。
这两题很多同学有错。
6.写出判断一个年份为闰年的C语言表达式:______________________。
《C语言程序设计》习题集习题一一、语言基础(共20分,每题2分)(二)说明语句char s=‘\t’,使s包含了几个字符?。
A)1 B)2 C)3 D)说明有错(三)设a=6,b=4,则表达式b*=a+3A)3 B)18 C)(四)若给定表达式(m)?a++:a--和等价。
A)m==0 B)m!=0 C)m=0 D)m=1(五)设有说明语句int a[10],则数组a包括了个数组元素。
A)1 B)9 C)10 D)20(六)以下函数test返回值类型为。
test(int x){ printf(“%f\n”,(float)x);}A)int B)float C)void D)不确定或错误二、阅读下列程序,写出运行结果(共18分,每题3分)[程序1]#include <stdio.h>void main( ){ int a=1,b=4,c=2; 运行结果: 1a=(a+b)/c;printf(“%d \n”,--a);}[程序2]void main ( ){ char c1=67; /*‘A’的ASCII码值为65 */if (‘A’ <=c1 && c1<=’Z’) 运行结果: 67,Dprintf(“%d,%c”,c1,c1+1);else printf(“%c”,c1); }[程序3]viod main ( ){ int a=0, n=5; 运行结果: 1,5,4,3,2,0for ( ; ; ){ a++; n--;printf(“%d,”,a);a=n;if (n==0) break;}printf(“%d”,a);}[程序4]main ( ){ int i, j; 运行结果: 1,2,4,8,16,32,64,128,256,512 static int a[10]={1,1,1,1,1,1,1,1,1,1};for (i=0;i<10;i++)for (j=0;j<i;j++)a[i]=a[i]+a[j];for (i=0;i<10;i++)printf(“%d,”,a[i]);}[程序5]int k=2;f (int m) 运行结果: 6,8{ m+=k;k+=m; 5,9printf(“%d,%d \n”,m,k++);}main ( ){ int i=4;for (i++);printf(“%d,%d \n”,i,k); }[程序6]void main ( ){ static int a[10],i; 运行结果: 1 3 5 7 9for (i=0;i<10;i++)a[i]=i+1;for (i=0;i<10;i=i+2)printf(“%d”,*(a+i));}三、阅读分析下列程序,在处填上适当的内容使程序(或函数)完整(共21分,每空3分)(一)以下程序输出所有大写字母和其对应的ASCII码值。
1◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)j (2)0 (3)i ++【改错】【参考答案】(1)for(i = 2 ; i<= m ; i++) (2)y -= 1.0/(i * i);【编程】【参考答案】int fun(int score[],int m, int below[]) {int i,j=0; float av=0.0; for(i=0;i<m;i++) av=av+score[i]/m; for(i=0;i<m;i++)if(score[i]<av) below[j++]=score[i];return j; } 2◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)t ,s (2)s[i] (3)0或'\0'【改错】【参考答案】(1)if(i%k==0) (2)if(k==i)【编程】【参考答案】void fun (int x, int pp[], int *n) {int i,j=0;for(i=1;i<=x;i=i+2) if(x%i==0) pp[j++]=i; *n=j; }3◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)s (2)-- (3)return 0【改错】【参考答案】(1)double fun(int n) (2)s =s +(double)a/b ;【编程】【参考答案】void fun(int m,int k,int xx[]) {int i,j,n;for(i=m+1,n=0;n<k;i++) {for(j=2;j<i;j++) if(i%j==0) break; if(j>=i)xx[n++]=i; } }4◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)n++ (2)0 (3)s++【改错】【参考答案】(1)t+=s[k]; (2)*aver=ave ;【编程】【参考答案】int fun(int *s,int t,int *k) {int i;*k=0; for(i=0;i<t;i++)if(s[*k]<s[i]) *k=i;return s[*k]; }5◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】 (1)*s (2)s++ (3)n【改错】【参考答案】 (1) {【编程】【参考答案】long jc(int m) {long s=1; int i ;for(i=1;i<=m;i++) s=s*i ; return s; }float fun(int m, int n) {float p;p=1.0*jc(m)/jc(n)/jc(m-n) ; return p; }6◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)48 (2)s++ (3)sum【改错】【参考答案】(1)if((k%13==0)||(k%17==0)) (2)}【编程】【参考答案】double fun( int n) {double sum=0.0; int i;for(i=21; i<=n; i++)if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum) ; }7◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)*s (2)1 (3)k[n]【改错】【参考答案】(1)double fun(int k) (2)return s ;【编程】【参考答案】double fun(int n) {int i;double s=0.0; for(i=1;i<=n;i++)s=s+1.0/(i*(i+1)); return s; }8◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)i (2)ps[j] (3)tp【改错】【参考答案】(1)double fun(int n) (2)return sum ;【编程】【参考答案】double fun(double x, int n) {int i;double s=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i;s=s+pow(x,i)/s1; }return s; }9◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)double (2)f1 (3)f2【改错】【参考答案】(1)char *fun( char *s ,char *t) (2)ss++; (3)tt++;【编程】【参考答案】void fun (char *w,int m) { int i,j; char t;for(i=1;i<=m;i++) {t=w[0];for(j=1;w[j]!='\0';j++) w[j-1]=w[j]; w[j-1]=t; } }10◆◆◆◆◆◆◆◆◆◆◆◆◆◆【填空】【参考答案】(1)"r" (2)>(3)fwrite【改错】【参考答案】(1)p=s ; (2)while(*p++);【编程】【参考答案】void fun(int *a, int *b) {int i,j;for(j=0;j<M;j++) b[j]=0;for(i=0;i<N;i++) if(a[i]>=100) b[10]++; elseb[a[i]/10]++; }double rnd() {static t=29,c=217,m=1024,r=0; r=(r*t+c)%m;return((double)r/m); }。
第1章C语言程序设计补充习题一1.以下选项中属于C 语言的数据类型是A.复数型 B 逻辑型 C 双精度型 D 集合型2. C 语言程序的基本单位是A) 程序 B)语句 C)函数D)字符程序行3. 下列变量定义中合法的是A) short a=1-.1e-1; B) double b=1+5e2.5;C) long do=0xfdaL D) float 2_end=1-e-34.在C 语言中sum=pad=5;pAd=sum++,pAd++,++pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45. 以下所列的C 语言常量中A) 0xFF B) 1.2e0.5 C) 2L D) '\72'6. 下列程序执行后的输出结果是A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n",i,l,f,d);}7. 若已定义x 和y 为double 类型则表达式x=1 , y=x+3/2 的值是A) 1 B) 2 C) 2.0 D) 2.58. 下列语句中符合C 语言语法的赋值语句是A) a=7+b+c=a+7; B) a=6+b++=a+7;C) a=7+b,b++,a+7 D) a=7+b,c=a+7;9. 设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d) 后n 的值为A)1 B)2 C) 3 D) 410. 能正确表示a 和b 同时为正或同时为负的逻辑表达式是A) (a>=0||b>=0)&&(a<0||b<0) B) (a>=0&&b>=0)&&(a<0&&b<0)C) (a+b>0)&&(a+b<=0) D) a*b>011. 设a、b和c都是int 型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A) 'a'&&'b' B) a<=bC) a||b+c&&b-c D) !((a<b)&&!c||1)12. 假定有以下变量定义: int k=7 , x=12; 则能使值3 的表达式是A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)-(k%=5)13. 语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是A) a\bre\'hi\'y\\\bou B) a\bre\'hi\'y\bouC) re'hi'you D) abre'hi'y\bou14. 对下面的程序描述正确的选项是main(){int x=3,y=0,z=0;if(x=y+z) printf("****");else printf("####"); }A) 有语法错误不能通过编译B) 输出****C) 可以通过编译但是不能通过连接因而不能运行D) 输出####15. 假定所有变量均已正确说明下列程序段运行后x 的值是a=b=c=0 ; x=35;if(!a) x--;else if(b) ; if(c) x=3;else x=4;A) 34 B) 4 C) 35 D) 316. 请读程序#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x<0.0) y=0.0;else if((x<5.0)&&(x!=2.0)) y=1.0/(x+2.0);else if(x<10.0) y=1.0/x;else y=10.0;printf("%f\n",y); }若运行时从键盘上输入2.0<CR> (<CR>表示回车),则上面程序的输出结果是A) 0.000000 B) 0.250000 C) 0.500000 D) 1.00000017. 当a=1,b=3,c=5,d=4 时,执行下面一段程序后,x 的值为A) 1 B) 2 C) 3 D) 6if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;18. 下面程序的输出是main(){ char *s="12134211";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){ defalult : v4++ ;case '1' : v1++;case '3' : v3++;case '2' : v2++; }printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=819. 若已定义int a=25,b=14,c=19 以下三目运算符(?:)所构成的语句的执行结果是____________a++<=25&&b--<=2&&c++?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);20. 当执行以下程序段时,会x= -1;do { x=x*x ; } while (!x);A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 循环体将提示有语法错误21. 以下循环体的执行次数是main(){ int i,j;for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d \n",i);}A) 3 B)2 C)1 D) 022. 在下列选项中没有构成死循环的程序段是A) int i=100;While(1) {i=i%100+1; if(i>100) break;}B) for(; ;)C) int k=1000; do {++k; } while(k>=10000);D) int s=36; while(s) ; --s;23. 若有以下程序段,w 和k 都是整型变量w=k;LB: if(w= =0) go LE;w--; printf("*"); goto LB;LE: …则不能与上面程序段等价的循环语句是A) for(s=k;w!=0;w--) printf("*"); B) w=k; while(w--!=0) printf("*"); w++;C) w=k; do{w--; printf("*");} while(w!=0); D) for(w=k; w; --w) printf("*");24. 有如下程序main(){int n=9;while(n>6) {n--;printf("%d",n);}}A)987 B) 876 C)8765 D) 987625. 要使以下程序段输出10 个整数,请填入一个整数for(i=0;i<=____________;printf("%d\n",i+=2));26. 若x 是int 型变量,且有下面的程序片段:for(x=3;x<6;x++) printf((x%2)?("**%d") : ("##%d\n"),x);该程序段的输出结果是A) **3 b)##3 C)##3 D) **3##4##4 **4 **4##5 **5**5 ##527. 以下程序执行后,a的值是:main(){ int a,k=4,m=6,*p1=&k , &p2=&m;a=p1==&m; printf(“%d\n”,a)A) 4 B) 1 C) 0 D) 运行时出错,a无定值28. 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3 B) 4 C) 5 D) 有语法错29. 函数pi 的功能是根据以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+ +1/(n*n)现在请你在下面的函数中填空,完成求π的功能#include "math.h"double pi(long n){ double s=0.0; long i;for(i=1;i<=n;i++) s=s+__________;return(sqrt(6*s));}30. 设有如下定义int *ptr;int arr[ ]={6,7,8,9,10};则下列程序段的输出结果为ptr=arr;*(ptr+2)+=2;printf("%d,%d\n",*ptr,*(ptr+2));A) 8,10 B) 6,8 C) 7,9 D) 6,1031. 下面fun 函数的功能是将形参x 的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0 的元素中,其他依此类推,请填空fun(int x , int b[ ]){ int k=0,r;do{ r=x%___________; b[k++]=r ; x/=__________; }while(x);}32. 下列程序的运行结果是void fun(int *a,int *b){int *k ;k=a;a=b;b=k;}main(){int a=3 ,b=6 ,*x=&a,*y=&b;fun(x,y); printf("%d %d",a,b);}A 6 3 B) 3 6 C) 编译出错D) 0 033. 以下程序的输出结果是int d=1;fun(int p){ static int d=5; d+=p;printf("%d ",d); return(d);}main(){ int a=3 ; printf("%d\n",fun(a+fun(d));) }A)6 9 9 B)6 6 9 C) 6 15 15 D) 6 6 1534. C 语言中, 函数的隐含存储类型是A)auto B) static C) extern D) 无存储类别35. 下面程序的输出是fun3(int x){static int a=3; a+=x;return(a);}main(){ int k=2,m=1,n;n=fun3(k); n=fun3(m); printf("%d\n",n); }A) 3 B)4 C)6 D) 936. 有以下函数char *fun(char *p){return p;}该函数的返回值是A) 无确切的值B) 形参p 中存放的地址值c)一个临时存储单元的地址 D) 形参p 自身的地址值37. 若有以下说明和定义fun(int *c){…}main(){int (*a)()=fun , *b( ),w[10] , c;… }在必要的赋值之后,对fun 函数的正确调用语句是A) a=a(w); B) (*a)(&c); C) b=*b(w); D) fun(b);38. 下面程序的输出结果是_______#include <stdio.h>funa(int a,int b){return a+b;}funb(int a,int b){return a-b;}sub(int (*t)(),int x,int y){return((*t)(x,y));}main(){ int x,(*p)();p=funa; x=sub(p,9,3); x+=sub(funb,8,3);printf("%d\n",x); }39. 以下程序的输出结果是fun(int n,int *s){int f1,f2;if(n==1||n==2) *s=1;else{fun(n-1,&f1); fun(n-2,&f2) ; *s=f1+f2;}main(){ int x;fun(6,&x); printf("%d\n",x);}40. 设有如下程序#include <stdio.h>main( argc,argv)int argc ; char *argv[ ];{ while(--argc>0) printf("%s",argv[argc]);printf("\n"); }假定上述程序经编译和连接后生成可执行文件PROG.EXE, 如果在DOS 提示符下键入PROG ABCD EFGH IJKL<CR>,则输出结果为__________41. 下面各语句行中,能正确进行赋字符串操作的语句行是:A) char st[4][5]={"ABCDE"};B) char s[5]={'A','B','C','D','E'};C) char *s; s="ABCDE";D) char *s ; scanf("%s",s);42. 以下程序的输出结果是main(){ char ch[3][4]={"123","456","78"} ,*p[3]; int i;for(i=0;i<3;i++) p[i]=ch[i];for(i=0;i<3;i++) printf("%s",p[i]);}A) 123456780 B) 123 456 780C) 12345678 D) 14743. 以下函数用来在w 数组中插入x, w 数组中的数已由小到大顺序存放,n所指存储单元中存放数组中数据的个数。
编程题:1编出完整程序实现打印出1 000以内的所有“完数”。
所谓“完数”是指它的所有小于它本身的因子之和等于它本身的数编程题2:上机实习题:看课本5.39以下题目只作复习题目类型与难度参考。
注意,没有上的章节不考。
一选择题(本大题共40个选项,【1】~【40】每个选择项1.5分,共60分)1. 在C语言中,用户能使用的合法标识符是【D】。
【1】A)姓名B)-xyzC)5i D)For2. 执行语句printf( "%d\n" , strlen("abc\x41\n") );的输出结果是【A】。
【2】A)5 B)7C)abcA D)abc\x413. 在C语言中,合法的字符常量是【D】。
【3】A)'字' B)"A"C)"ABC" D)'\x41'4. C语言中简单数据类型包括【A】。
【4】A)整型、实型、字符型B)整型、实型、逻辑型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型5. 在C语言中,不合法的实型常量是【D】。
【5】A)-0.123 B)-.123C)-1.23e-1 D)-123e-3.06. 以下关于C语言变量的叙述,错误的是【C】。
【6】A)变量名必须由字母或下划线开头B)变量按所定义的类型存放数据C)不同基本类型的变量之间不能混合运算D)变量的类型确定了变量的取值范围7. 以下整数值中,不正确的八进制或十六进制数是【D】。
【7】A)0x9a B)012C)-0x3A D)0908. 下列i、j、k均为整型变量,选项中不正确的C语言赋值语句是【A】。
【8】A)i+1 = k; B)i = j = k = 1;C)i = j += ++k; D)j = i+1 == i++;9. 以下程序的运行结果是【D】。
main(){ int a=1, b=2, c;c = a < b ? 3 : a >= b ? a : b ;printf("%d\n", c);}【9】A)0 B)1C)2 D)310. 设E为表达式,以下与do …while(E);不等价的语句是【C】。
【10】A)do …while(!E==0); B)do …while(E>0||E<0);C)do …while(E==0); D)do …while(E!=0);11.以下程序的运行结果是【C】。
main(){ int a=-1,b=4,k;k=((a++<=0)&&(!b--<=0));printf("%d%d%d",k,a,b);}【11】A)003 B)012 C)103 D)11212. 以下程序的运行结果是【B】。
main(){ int x=023; 注意:八进制转化为十进制,2*8^(2-1)+3*8^(1-1)=19printf("%d",x)}【12】A)35 B)19 C)23 D)02313. sizeof(double)是【C】。
【13】A)一种函数调用B)一个双精度表达式C)一个整型表达式 D)一个不合法的表达式14. 以下程序运行时,若从键盘输入5,则输出结果是【D】。
main(){ int a;scanf("%d",&a);if(a++>5) printf("%d\n",a);else printf("%d\n",a--);}【14】A)7 B)4 C)5 D)615. 以下程序运行后,a的值是【D】。
main(){ int a,b;for(a=1,b=2;a<=100;a++){if(b>=20) break;if(b%3==1){ b+=3; continue; }b+=5;}}【15】A)10 B)9 C)8 D)716. 以下程序段的运行结果是【D】。
int x=3;do{printf("%3d, ", x-=2 );}while(!(--x));【16】A)1 B)3 0 C)死循环D)1 -217. 下列程序段中,非死循环的是【】。
【17】A)int i=100;B)int k=0; C)int s=10; D)for(;;) while(1) do{ while(++s%2+s%2){ i=i%100+1; ++k; s++;if(i>=100) break; }while(k>=0);} printf("d\n",k);17. 设已定义char s[]="\"Name\\Address\023\n";,则字符串所占的字节数是【18】。
【18】A)19 B)15 C)18 D)1418. 以下程序段的运行结果是【19】。
main(){ int a[]={2,4,6,8,10},y=1,x;for(x=0;x<3;x++) y+=a[x+1];printf("%d\n",y);}【19】A)17 B)18 C)19 D)2019. 已定义char c[]="Fujian"; int i;,则下列函数调用中错误的是【20】。
【20】A)printf("%s",c); B)for(i=0;i<8;i++) printf("%c",c[i]);C)puts(c); D)for(i=0;i<8;i++) puts(c[i]);20. 已定义char x[8]; int i;,为了给该数组赋值,下列语句正确的是【21】。
【21】A)x[8]="Turbo C"; B)x="Turbo C";C)x[]="Turbo C"; D)for(i=0;i<7;i++) x[i]=getchar();21. 以下程序运行结果是【22】。
main(){ char a[][5]={ "ABCD","1234","abcd","5678","EFGH"};int i;for(i=0;i<3;i++) printf("%s",a[i]);}【22】A)A1a B)ABCD1234abcdC)ABC D)ABCD1234abcd5678EFGH22. 设int a[][4]={0,0};,则下列描述错误的是:【23】。
【23】A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)数组a的行数为1D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值023. 设有下列语句,则【24】是对a数组元素的不正确引用,其中0≤i<10。
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;【24】A)a[p-a] B) *(&a[i]) C)p[i] D)*(*(a+i))24. 若有以下程序:main{ char ch[]="I am student! ",*p;p=ch;printf("%x\n",p);printf("%x\n",p+9);}其中有两个printf(),如果第一个printf()运行结果是ffd6,则第二个printf()运行结果是【25】。
【25】A)ffdf B)ffe8 C)ffd6 D)ffcf25. 以下程序的运行结果是【26】。
main(){ int i;char aa[][3]={'a','b','c','d','e','f'};char (*p)[3]=aa;for(i=0;i<2;i++)if(i==0) aa[i][i+1]=**(p++);printf("%c\n",**p);}【26】A)a B)b C)d D)c26. 设有下列语句:char str1[]="string",str2[8],*str3,*str4="string";则【27】是对库函数strcpy的不正确调用。
此函数用来复制字符串。
【27】A)strcpy(str3, "HELLO3"); B)strcpy(str2, "HELLO2");C)strcpy(str1, "HELLO1"); D)strcpy(str4, "HELLO4");27. 以下程序是将一个整数存放到一个数组中,存放时按逆序存放,例如483存放成384请选择填空完善程序。
void convert(char *a,int n){ int i;if((i=n/10)!=0) convert(【28】,i);*a=n%10+'0';}char str[10]= " ";main(){ int number;scanf("%d",&number);convert(str,number);puts(str);}【28】A)a++ B)a+1 C)a-- D)a-128. 以下程序的运行结果是【29】。
fun3(int x){ static int a=3;a+=x;return a;}main(){ int k=2,m=1,n;n=fun3(k);n=fun3(m);printf("%d\n",n);}【29】A)3 B)4 C)6 D)929. 以下程序的运行结果是【30】。
void ast (int x,int y,int *cp,int *dp){*cp=x+y; *dp=x-y;}main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf("%d,%d\n",c,d);}【30】A)7,1 B)1,7 C)7,-1 D)c、d未赋值,编译出错30. 以下程序的运行结果是【31】。
main(){ int x=1,y=2,z;z=x>y?++x:++y;printf("%d,%d,%d\n",x,y,z);}【31】A)1,2,3 B)1,3,3 C)2,3,3 D)2,2,3 31. 若有以下程序段,则z的二进制值是【32】。