C语言1-5章复习题及参考答案
C语言练习题1-5及参考答案,DOC
练习题1及参考答案1.单项选择题(1)以下并非C语言的特点的是?????。
A.?C语言简洁和紧凑B.能够编制出功能复杂的程序C.?C语言可以直接对硬件进行操作D.?C语言移植性好【答】B(2)一个CA.?main()B.C.D.?main()【答】A(3)在CA.B.C.可以任意D.【答】C(4)一个CA.B.C.D.【答】B(5A.在执行CB.?CC.?CD.?C【答】C2.填空题(1)一个C源程序至少有??①??个main()函数和??②??个其他函数。
【答】①一?②若干(2)任何C语句必须以?????结束。
【答】分号(3)C语言源程序的基本单位是?????。
【答】函数(4)C编译程序的功能是?????。
【答】将C源程序编译成目标代码练习题2及参考答案1.单项选择题(1)以下字符串为标识符的是?????。
A._MY???????????????B.2_2222??????????????????C.short??????????????????D.LINE5 【答】AA.n%=(m%=5)??????????????????????????B.n%=(m-m%5)C.n%=m-m%5?????????????????????????D.(n%=m)-(m%=5)【答】A、B、C、D选项各表达式的值分别是0、2、2、3。
本题答案为D。
(8)以下程序的运行结果是?????。
#include<stdio.h>main(){???inti=5,j=6,m=i+++j;???printf("%d,%d,%d\n",i,j,m);}A.6,6,11??????B.5,6,11??????C.5,6,12??????D.6,6,12【答】m=i+++j等价于m=(i++)+j。
本题答案为A。
(9)以下程序的运行结果是?????。
#include<stdio.h>voidmain(){???doublef=3.14159;???intn;???n=(int)(f+10)%3;???printf("%d\n",n);的值不改变。
C语言1-5章复习题及参考答案
一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。
A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。
A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。
A . 常量和变量都是表达式。
B. 运算符类型对应表达式的类型。
C. 每一个表达式都有自己的值。
D. 表达式必须以分号结尾。
5、C语言中,合法的长整型常数是()。
A . '\t' B.” A” C.65 D.a6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。
A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。
A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。
#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。
()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。
A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。
A . printf()是格式化输出函数,用于输出信息。
B. printf()括号中的内容为函数的参数。
c语言习题1-5章
C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。
A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。
A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。
A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。
A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。
A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。
int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。
A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。
A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。
A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。
C语言全部章节习题集(参考答案)
C语言全部章节习题集(参考答案).txt如果真诚是一种伤害,请选择谎言;如果谎言是一种伤害,请选择沉默;如果沉默是一种伤害,请选择离开。
第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。
A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。
A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。
A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。
2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。
3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。
4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。
5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。
C语言1-5章复习题及参考答案
一.选择题1、若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是( )。
A .-3 B.9 C.-12 D.62、若有定义: int a=8, b=5, c; 执行语句 c=a/b+0.4; 后, c 的值为( )。
A .1.4 B.1 C.2.0 D.23、有如下程序: void main(){int i,sum;for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum);}该程序的执行结果是( )。
A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是( )。
6、若已定义 x 和 y 为 double 类型,则表达式 x=1;y=( x+3) /2 的值是() A .1 B.2 C.2.00000 D.2.500007、表达式: 10!=9 的值是( )。
A . true B. 非零值 C.0 D.18、以下程序的输出结果是( )。
#include<stdio.h> void main (){printf ("%d\n", NULL );}A . 不确定的 B.0 C.-1 D.19、请选出合法的 C 语言赋值语句。
( )A . a=b=58 B.i++; C. a=58,b=58 D. k=int (a+b );10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是( )。
A .0 B.2 C.4 D.811、关于语句 printf ( “ hello n ”,); 下列描述中错误的是() A . printf () 是格式化输出函数,用于输出信息。
B. printf () 括号中的内容为函数的参数。
C. printf () 括号中的内容会全部输出到控制台上。
D. \n 表示换行操作。
12、下列选项中,哪一项不是 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) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。
x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 522.下列四组选项中,均不是C语言关键字的选项是。
A) define IF type B) getc char printfC) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是。
A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP4.下列四组选项中,均是合法转义字符的选项是。
A)‘\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是。
A) “c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是。
A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是。
(完整版)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.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
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) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言课后习题参考答案
C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。
它以其简洁、高效和可移植性而闻名。
C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。
问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。
它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。
它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。
例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。
它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。
它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。
算法与数据结构C语言习题参考答案1-5章
绪论1.将下列复杂度由小到大重新排序:A.2n B.n! C.n5D.10 000 E.n*log2 (n)【答】10 000< n*log2(n)< n5< 2n < n!2.将下列复杂度由小到大重新排序:A.n*log2(n) B.n + n2 + n3C.24D.n0.5【答】24< n0.5< n*log2 (n) < n + n2 + n33.用大“O”表示法描述下列复杂度:A.5n5/2 + n2/5 B.6*log2(n) + 9nC.3n4+ n* log2(n) D.5n2 + n3/2【答】A:O (n5/2) B:O (n) C:O (n4) D:O (n2)4.按照增长率从低到高的顺序排列以下表达式:4n2 , log3n, 3n , 20n , 2000 , log2n , n2/3。
又n!应排在第几位?【答】按照增长率从低到高依次为:2000, log3n, log2n , n2/3 , 20n , 4n2 , 3n。
n!的增长率比它们中的每一个都要大,应排在最后一位。
5. 计算下列程序片断的时间代价:int i=1;while(i<=n){printf(“i=%d\n”,i);i=i+1;}【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环到n,共执行n次。
所以该程序段总的时间代价为:T(n) = 1 + n + 2n = 3n+ 1 = O(n)6. 计算下列程序片断的时间代价:int i=1;while(i<=n){int j=1;while(j<=n){int k=1;while(k<=n){printf(“i=%d,j=%d,k=%d\n”,I,j,k);k=k+1;}j=j+1;}i=i+1;}【答】循环控制变量i从1增加到n,最外层循环体执行n次,循环控制变量j从1增加到n,中间层循环体执行n次,循环控制变量k从1增加到n,最内层循环体执行n次,所以该程序段总的时间代价为:T(n) = 1 + n + n{1 + n + n[1 + n + 2n +1] +1 +1}+ 1= 3n3 + 3n2 +4n +2= O(n3)2. 线性表1.试写一个插入算法int insertPost_seq(palist, p, x ),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。
c语言习题1-5章
C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。
A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。
A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。
A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。
A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。
A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。
int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。
A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。
A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。
A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。
算法与数据结构C语言习题参考答案1-5章
置*/ palist->element[q] = palist->element[q+1]; palist->n = palist->n - 1; /* 元素个数减 1 */ return 1 ; } return 0; } 3. 设有一线性表 e = (e0, e1 , e2 , …, e n-1 ),其逆线性 表定义为 e'= (e n-1 , …, e2 , e1 ,e0)。 请设计一个算法,将用顺序表表示的线性表置逆,要求逆线性表 仍占用原线性表的 空间。 【答】 数据结构 采用 2.1.2 节中顺序表的定义。 思路 考虑对数组 element[ ]进行置逆,即把第一个元素和最后一个 元素换位置,把第二个元素和倒数第二个元素换位置……。 注意 这种调换的工作只需对数组的前一半元素进行,所以设置整数变 量 count 用于存放数组长度的一半的值。大家可以考虑一下:为 什么不能对整个数组进行如上的对元素“换位置”的工作?(提
PNode p1; if(llist==NULL) return 0; p1=llist; while(p1!=NULL&&p1->link!=p)p1=p1->link; /*寻找 p 所指结 点的前驱结点*/ if(p1=NULL) return 0; PNode q=(PNode)malloc(sizeof(struct Node));/*申请新结点 */ if(q=NULL) {printf(“Out of space!!!\n”);return 0;} q->info=x; q->link=p1->link; p1->link=q; return 1; } 7.写一算法,在带头结点的单链表 llist 中,删除 p 所指的结点, 并返回删除成功与否的标 志。 【答】 数据结构 采用 2.1.3 节中单链表定义。 思想: 由于在单链表中,只有指向后继结点的指针,所以只有首先找到
数据结构C语言版章节练习题(1-6章)
数据结构章节练习题第一章绪论一、单选题1.一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2.下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)3.执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/24.下面算法的时间复杂度为____________。
int f( unsigned int n ){ if ( n==0 || n==1 ) return 1; else return n*f(n-1); }A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1.数据的逻辑结构被分为__________、_________、__________和__________四种。
2.数据的存储结构被分为__________、和__________两种。
3.在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4.一种抽象数据类型包括__________和__________两个部分。
5.当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
6.当需要用一个形参访问对应的实参时,则该形参应说明为__________。
7.在函数中对引用形参的修改就是对相应__________的修改,对__________形参的修改只局限在该函数的内部,不会反映到对应的实参上。
程序设计基础教材1-5章答案
《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个main函数。
c) 在C语言中,输出操作是有库函数printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个 C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S△= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A16、B 17 D解析:1. 答案:C。
C语言1_6章复习题及答案
一、单项选择题1、以下说法中正确的是(C)(2分)A、C语言程序总是从第一个的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、以下选项中,不合法常量的是(B)(2分)A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e03、C语言中最简单的数据类型包括(B)(2分)A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型4、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 (D)(2分)A、 10>=a>=0B、 a>=0 and a<=10C、 a>=0||a<=10D、 a>=0&&a<=105、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、 6.500000B、 6C、 5.500000D、 6.0000006、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分)A、 INPUT x、y、z;B、 scanf("%d%d%d",&x,&y,&z);C、 scanf("%d%d%d",x,y,z);D、 read("%d%d%d",&x,&y,&z);7、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值8、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、 0B、 0.5C、 1D、 29、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。
c语言习题及参考答案
第1章C语言概述(一)选择题1.一个C程序的执行是从 A 。
答案AA) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是 D 。
A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是 C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句D) C程序的每行中只能写一条语句4.一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. C语言程序编译时,程序中的注释部分______D______.A) 参加编译,并会出现在目标程序中B) 参加编译,但不会出现在目标程序中C) 不参加编译,但会出现在目标程序中D) 不参加编译,也不会出现在目标程序中(二)填空题1、C语句结束符为____;_____________.2、C语句注释符号为:_/* */______________.3、一个C程序总是从____main函数______________开始执行的。
第3章数据类型、运算符与表达式(一)选择题1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为( C )。
x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 522.下列四组选项中,均不是C语言关键字的选项是( A )。
A) define IF typeB) getc char printfC) include case scanfD) while go pow3. 下列四组选项中,均是不合法的用户标识符的选项是( B )。
C语言1-5章复习题 参考答案
一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。
A .-3 B.9 C.-12 D.62、若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为(B)。
A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是(C)。
A .6 B.3 C.死循环 D.0 。
4、下列关于表达式的描述中,错误的是(D)。
A . 常量和变量都是表达式。
B. 运算符类型对应表达式的类型。
C. 每一个表达式都有自己的值。
D. 表达式必须以分号结尾。
5、C语言中,合法的长整型常数是()。
A . '\t' B.” A” C.65 D.a6、若已定义x和y为double类型,则表达式x=1;y=(x+3)/2的值是(C)。
A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是(D)。
A . true B. 非零值 C.0 D.18、以下程序的输出结果是(B)。
#include<stdio.h>void main(){printf("%d\n",NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。
(B)A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设int b=2;表达式(b>>2)/(b>>1)的值是(A)。
A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是(C)。
A . printf()是格式化输出函数,用于输出信息。
B. printf()括号中的内容为函数的参数。
C语言习题答案(1-5章)
习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(???)。
A .-3 B.9 C.-12 D.62、若有定义:int?a=8,?b=5,?c;?执行语句?c=a/b+0.4;?后,c的值为(???)。
A .1.4 B.1 C.2.0 D.23、有如下程序:void?main(){?int?i,sum;?for(i=1;i<=3;sum++)??sum+=i;?printf("%d\n",sum);}该程序的执行结果是(???)。
A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是(?)。
A . 常量和变量都是表达式。
B. 运算符类型对应表达式的类型。
C. 每一个表达式都有自己的值。
D. 表达式必须以分号结尾。
5、C语言中,合法的长整型常数是(???)。
A . '\t' B.” A” C.65 D.a6、若已定义?x?和?y为double?类型,则表达式?x=1;y=(x+3)/2?的值是()。
A .1 B.27、表达式:10!=9的值是(???)。
A . true B. 非零值 C.0 D.18、以下程序的输出结果是(???)。
#include<stdio.h>void?main(){?printf("%d\n",?NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。
(? )A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设?int?b=2;?表达式(b>>2)/(b>>1)的值是(???)。
A .0 B.2 C.4 D.811、关于语句printf(“hello?world\n”);,下列描述中错误的是()。
A . printf()是格式化输出函数,用于输出信息。
B. printf()括号中的内容为函数的参数。
C. printf()括号中的内容会全部输出到控制台上。
D. \n表示换行操作。
12、下列选项中,哪一项不是C语言中的位运算符()。
A .& B.|| C.~ D.^13、以下程序的输出结果是(???)。
void?main(){?char?c='z';?printf("%c",?c-25);}A .a B.Z C.z-25 D.y14、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(???)。
A . a<>0 B. !a C. a=0 D. a15、以下循环体的执行次数是(???)。
void?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.016、下列运算符中优先级最高的是(???)。
A .|| B.&& C.+ D.=17、若有以下定义和语句:char?c1='b',c2='e';?printf("%d,%c\n",c2-c1,c2-'a'+'A');?那么输出结果是(???)。
A .2,M B.3,E C.2,E D. 输出项与对应的格式控制不一致,输出结果不确定18、若有以下程序段:int?c1=1,c2=2,c3;?c3=1.0/c2*c1;?那么执行后,c3中的值是(???)。
A .0 B.0.5 C.1 D.219、若变量a是int类型,并执行了语句:a='A'+1.6;?则下列描述中,正确的是(???)。
A . a的值是字符’C' B. a的值是浮点型C. 不允许字符型和浮点型相加D. a的值是字符’A’的ASCII值加上120、若有定义:int?x?,i;则下列for循环语句:for(i?=?0,x?=?0;?i<=?9?&&?x!=876;i++)scanf(“%d”,&x);下列选项中,描述正确的是(??)A . 最多执行10次B. 最多执行9次 C. 是无限循环 D. 循环体一次也不执行21、假定有以下变量定义: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)22、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是(???)。
void?main(){?int?x;?scanf("%d",&x);?if?(x++?>?5)??printf("%d",x);?else??printf("%d\n",x--);}A . 7和5 B. 6和3 C. 7和4 D. 6和423、若已定义x和y为double类型,则表达式:x=1,?y=x+3/2?的值是(???)。
A . 1 B. 2 C. 2.0 D. 2.524、执行下面程序片段的结果是(???)。
int?x=23;do{?printf("%2d",x--);}?while?(!x);A . 打印出321 B. 打印出23 C. 不打印任何内容 D. 陷入死循环25、以下选项中合法的字符常量是(???)。
A . "B" B. '\010' C. 68 D. D26、将二进制数00001011进行>>位运算,将其结果转换为十进制是()。
A . 101 B. 1 C. 11 D. 527、下列说法中正确的是(???)。
A . 在switch语句中一定要使用break语句B. 在switch语句中不一定要使用break语句C. break语句是switch语句的一部分D. break只能用于switch语句中28、假设有如下的变量定义:int?i=8,k,a,b;?unsigned?long?w=5;?double?x=1.42,y=5.2;?则以下符合C语言语法的表达式是(???)。
A . a+=a-=(b=4)*(a=3) B. x%(-3)C. a=a*3=2D. y=float(i)29、若a为int型变量,则下列C语言表达中,不能表达数学关系式10<a<15的是()。
A . 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)30、表示关系x<=y<=z的C语言表达式为(???)。
A . (X<=Y)&&(Y<=Z)B. (X<=Y)AND(Y<=Z)C. (X<=Y<=Z)D. (X<=Y)&(Y<=Z)二.判断题1、C语言属于机器语言。
(×)2、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。
(√)3、在C语言中转义字符有特殊的含义,它以反斜杠\开头,后面接特定的字符。
(√)4、机器语言是由二进制数0和1组成的一串指令。
(√)5、continue只能用于循环语句。
(×)6、C语言中的逻辑值“真”是用1表示的,逻辑值“假”是用0表示的。
(√)7、将浮点型数据转换为整型数据时,小数点后的数会进行四舍五入。
(×)8、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号()引起来。
(×)9、通常将不可改变的数值称为常量。
(√)10、变量虽有不同的数据类型,但它们所占内存的大小是一样的。
(×)11、位运算符“<<”就是将操作数所有二进制位向左移动一位。
运算时,右边的空位补0。
左边移走的部分舍去。
(√)12、十进制数10转换为二进制为1010。
(√)13、计算机使用特定的整数编码来表示对应的字符,我们通常使用的英文字符编码是ASCII。
(√)14、逻辑运算符用于判断数据的真假,其结果为“真”或“假”。
(√)15、十进制转换成二进制可以采用除2取余的方式。
(√)16、变量的值保存在内存单元上,是可以被改变的。
(√)17、十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。
(√)18、位运算符是针对二进制数的每一位进行运算的符号,是专门针对数字0和1进行操作的。
(√)19、sizeof运算符的功能是获取某一数据或数据类型在内存中所占的字节数。
(√)20、两个二进制数进行“|”运算,如果二进制位上只有一个值为1,则该位的运行结果为0。
(×)三.填空题1、在C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和(三目)运算符。
2、定义变量int?x?=?1.20,则%d格式输出x的结果为( 1 )。
3、运算符“||”表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为(假)。
4、运算符“&&”表示与操作,当且仅当运算符两边的表达式结果都为真时,其结果才为(真),否则结果为假。
5、若有定义int?x?=?7;则表达式x/=3;的值为( 2 )????。
6、计算机语言可分为三大类,即机器语言、汇编语言和?(高级语言)。
7、在进行取模运算时,运算结果的正负取决(被模数)的符号,与模数的符号无关。
8、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个(整数)。
9、C语言中的数据类型可分为4种,分别是(基本类型)、构造类型、指针类型、空类型。
10、注释有两种类型,分为(单行注释)和多行注释。
11、整型变量是用来存储整型数据,(实型)变量用来存储小数类型。
12、实型常量也称为浮点数常量,可以分为单精度浮点数和(双精度)两种类型。
13、sizeof运算符用于获取某一数据或(数据类型)在内存中所占的字节数。
14、在C语言中,如果除法运算有浮点数参与运算,得到一个(浮点)型结果。
15、C语言的比较运算中,“真”用数字“(1)”来表示,“假”用数字“(0)”来表示。
16、在C语言中,常量包括(整型常量)、浮点数常量、字符常量等。
17、在C语言中,运算符都有一定的结合性,则赋值运算符的结合性为(左结合)。
18、赋值运算符的作用就是将常量、变量或(表达式)的值赋给某一个变量。