C语言程序设计各章练习题
- 格式:doc
- 大小:64.00 KB
- 文档页数:15
第一章一种新的C语言学习方式1.一台能够工作的计算机包括?CPU (Central Processing Unit,中央处理单元,进行运算和控制,包括运算器和控制器等)、存储器(如RAM、ROM等)、输入设备、输出设备(包括串行/并行接口、USB等)。
其中,RAM (RandomAccess Memory,随机存储器)主要用于存储数据,ROM (RcadOnlyMemory, 只读存储器)主要用于存储程序。
2.单片机工作时需要什么?需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机工作时需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。
微控制器是将单片机独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等封装到一个模块上,这样就能直接与计算机连接并进行编程开发,不需任何其他芯片和电路。
3. AT89S52是一种什么样的单片机?是一种高性能、低功耗的8位单片机,内含8 KBISPdn-System Programmable系统在线编程)可反复擦写IOOO次的Flash只读程存器,采用ATMEL公司的高密度非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。
在实际工程应用中,功能强大的AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。
4. Progisp是一款什么样的软件?是一款免费下载的ISP软件,不需要专门的安装即可使用,非常方便。
使用该软件,读者可以将C语言程序生成的可执行文件下载到机器人单片机上。
使用时需要1根USBA转B 信号线。
5.简述串口调试工具的特点。
串口调试工具就是串行通信接口调试软件,集数据发送、数据接收、数据监控、数据分析等功能于一身,具有小巧精致、操作简捷、功能强大的特点,可以在串口通信监控、设备通信测试工作中有效提高效率。
6. pr i ntf ()函数称为?称为格式输出函数,其功能是按用户指定的格式,把指定的数据输出显示。
Print ()函数是C语言提供的标准输出函数,定义在C语言的标准函数库中,要使用它,必须包括定义标准函数库的头文件stdio. h o第二章最简单的C程序设计——机器人做算数1. C语言用什么整型变量?C语言用关键字imt定义整型变量。
习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
一、单项选择题题目1若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为()。
a. 14b. 15c. 10d. 16题目2若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为()。
a. -9b. -11c. -10d. 0题目3若x的值为10,则执行“switch(x%3){case0: x++; case 1:x++; case 2: x++;}”语句后,x的值为()。
a. 13b. 12c. 11d. 10题目4若x的值为10,则执行“switch(x%3){case0: x++; break; case 1:x++; default: x++;}”语句后,x的值为()。
a. 9b. 10c. 11d. 12题目5若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i=1共被执行的次数为()。
a. nb. n+1c. 1 B. n-1 C.n-1d. 1题目6若n的值为10,则执行“for(i=0;; i++) if(i>n/3) break;”语句后,i的值为()。
a. 3b. 6c. 4d. 5题目7若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i++共被执行的次数为()。
a. n+1b. nc. 1d. n-1题目8若n的值为10,则执行“for(i=0;i<n; i++) for(j=i; j<n; j++) S;”语句后,层循环体S语句的执行总次数为()。
a. n(n-1)/2b. (n+1)/2c. n*nd. n(n+1)/2题目9若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为()。
a. 8b. 10c. 11d. 9题目10若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为()。
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
一、C语言概述练习题选择1.一个C程序的执行是从。
本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成函数组成 C) 若干过程组成 D) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。
x=(i=4,j=16,k=32) A) 4 B) 16 D) 522.下列四组选项中,均不是C语言关键字的选项是。
C) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是。
int C) float la0 _A D) -123 abc TEMP4.下列四组选项中,均是合法转义字符的选项是。
\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是。
“c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是。
A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是。
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
第一单元(1-5章)基本概念练习题一、单选选择(直接在正确的选项上打勾,每题)1、下面关于C语言特点的描述,不正确的是( )。
DA、C语言兼有高级语言和低级语言的双重特点,执行效率高B、C语言既可以用来编写应用程序,又可以用来编写系统软件C、C语言是一种结构式模块化程序设计语言D、C语言的可移植性较差2、C语言规定,在一个源程序中,main函数的位置( )。
BA、必须在最开始B、可以任意C、必须在最后D、必须在系统调用的库函数的后面3、下列说法中正确的是( )。
CA、C程序书写时,不区分大小写字母B、C程序书写时,一行只能写一个语句C、C程序书写时,一个语句可分成几行书写D、C程序书写时每行必须有行号4、C语言编译程序的首要工作是( )。
AA、检查C语言程序的语法错误B、检查C语言程序的逻辑错误C、检查程序的完整性D、生成目标文件5、C语言程序经过连接以后生成的文件名的后缀为( )。
CA、.cB、.objC、.exeD、.cpp6、以下关于算法的说法中,错误的是( )。
DA、一个算法应包含有限个步骤B、在计算机上实现的算法是用来处理数据对象的C、算法的目的是为了求解D、算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现7、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是( )。
CA、确定性B、有穷性C、零个或多个输出D、零个或多个输入8、以下不属于结构化程序设计三种基本结构之一的是( )。
BA、顺序B、递归C、循环D、选择9、下列数据中,不合法的C语言实型数据是( )。
CA、0.123B、123e3C、2.1e3.5D、789.010、若变量a、i已正确定义,且i已正确赋值,以下属于合法的C语句是( )。
A、a==1B、++i;C、a=a++=5;D、a=int(i);11、已有定义int a=6; 则执行语句a+=a-=a*a;后,a的值为( )。
C语言程序设计各章练习题《C 语言程序设计》各章练习题2016年12月汇编第1-3章 C 语言基础、编程规范、顺序结构程序设计编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。
要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。
附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。
第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
⎪⎪⎩⎪⎪⎨⎧>=<+-=0020212x x x x x y编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
⎪⎩⎪⎨⎧>≤≤--<=002222x x x x x y编程题3:求 ax 2+bx+c=0方程的解。
(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算∑=ni i 1。
要求提示键盘输入n ,如n 为负数,不予计算,直接返回。
编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。
编程题6:从键盘输入一个数n ,判断n 是否是素数。
编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。
编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。
编程题8:求满足下列条件的三位数n ,它除以11(整数相除)所得到的商等于n 的各位数字的平方和,且其中至少有二位数字相同的数。
编程题9:有一些十进制整数对ab 和cd 具有如下特性:ab×cd=ba×dc,其中a≠b 且c≠d。
如:12×42=21×24。
请编程找出30~50之间满数,将100~200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。
《C语言程序设计》各章练习题2016年12月汇编第1-3章C语言基础、编程规范、顺序结构程序设计编程题1:设a和b均为int型变量,编写一个程序,通过键盘读入a,b的值,然后交换a,b的值。
要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b的值,交换后a,b的值。
个变量,实现交换;)允许定义第3附加要求:(1 个变量,实现交换。
)不允许定义第3 (2章选择结构程序设计第4的值。
的值,输出y编程题2:根据下列函数关系写程序,要求提示输入x y的值。
x编程题2:根据下列函数关系写程序,要求提示输入的值,输出22b(只输出+bx+c=0方程的解。
,输出“不予3:求 ax的求解结果,小于0-4ac>=0编程题”)求?,如n编程题4:编程计算为负数,不予计算,直接返解!循环结构程序设计第5章n回。
要求提示键盘输入n i1i?,不予计算。
小于0!,要求n从键盘输入,如n5编程题:编程序计算n n是否是素数。
,判断编程题6:从键盘输入一个数n55个偶数一行,每个数占6:编写程序输出1~100之间的偶数,要求屏幕显示时编程题位,右对齐。
,并将其输出。
1000之间有多少个数其各位数字之和是5:编程计算编程题7100到的各位数n11(整数相除)所得到的商等于编程题8:求满足下列条件的三位数n,它除以字的平方和,且其中至少有二位数字相同的数。
如:c≠d且。
,和abcd具有如下特性:ab×cd=ba×dc其中a≠b有一些十进制整数对9编程题:值,并按上述等式的格式输,mn之间满足上述等式所有。
请编程找出12×42=21×2430~50 表示)*(×用出。
.编程题10:从键盘上输入一个整数,然后把这个整数的各位逆序输出。
例如,输入123456,输出654321。
第6章数组编程题11:有一个已排好序的数组int a[11]={-5,-3,0,6,8,12,16,28,66,88};,要求输入一个数后,按原来排序的规律将它插入数组中。
编程题12:输入一个字符串(字符个数为小于100),统计其中字母、数字、空格以及其它符号的个数,并将大写字母改为小写字母,输出改变后的字符串。
(提示:A的ASCII值为65,a的ASCII值为97)编程题12:输入一行字符(字符数组的个数小于100),统计其中字母、数字以及其它符号的个数。
(注:数组限定字符个数小于100)编程题12:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
(注:字符个数不受限制)第7章函数编程题13:编写一个子函数int fun ( int n),其功能是判断整数n是否为素数,n是素数,返回值为1;n不是素数,返回值为0。
调用该函数,将100~200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。
(循环、条件分支、子函数、变量的值传递、屏幕显示格式控制)编程题14:主函数中定义两个数组int a[5]={5,4,8,-1,2},b[10]={1,-1,2,4,8,4,0,9,3,7};用子函数实现从小到大的冒泡排序,子函数为void bubble(int [ ],int);要求在主函数中显示排序前、后的数组a和b的元素。
(循环、条件分支、子函数、数组、地址传递)编程题15:主函数中定义两个数组int a[5]={5,4,8,-1,2},b[10]={1,-1,2,4,8,4,0,9,3,7};用子函数实现从小到大的选择法排序,子函数为void sort(int [ ],int);要求在主函数中显示排序前、后的数组a和b 的元素。
(循环、条件分支、子函数、数组、地址传递)编程题16:用递归函数计算n!。
编程题17:编写一个子函数int fact ( int n),计算n的阶乘。
调用该函数计算1!+2!+3!+…+n!,要求n从键盘输入,如输入n小于0,不予计算。
(循环、递归函数)编程题18:将16进制或8进制或2进制数转换为十进制数(字符数组、字符串函数、子函数、字符ASCII值与10进制数的转换,指数函数的调用)编程题18:编程实现八进制数转换为十进制数(注:用字符数组n[100]接收输入,输入的八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为int htoi(char hnum[ ]);)编程题18:编写一个子函数,将16进制数转换为10进制数。
编程题19:编写一个子函数,主函数用字符数组作为实参,统计字符串中字母、数字、空格以及其他符号的个数,要求主函数中显示字符串与统计结果。
:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并20编程题.显示结果。
编程题21:用递归法将一个整数n转换为字符串。
例如:输入483,输出字符串“483”,n的位数不确定。
编程题22:写一个子函数,将输入的字符串按反序存放,在main中输入和输出字符串。
第8章指针编程题23:编写一个子函数mystrcmp(char *s1,char *s2)实现2个字符串的比较。
编程题23:编程实现两个字符串连接起来,不要用strcat函数。
编程题23:用函数调用实现字符串的复制。
编程题23:写一个函数,求一个字符串的长度。
在main函数中输入字符串,并输出其长度。
:写一个用矩形法求定积分的通用函数,分别计算编程题24112x???dx、cosxdx、esinxdx010?编程题25:输入一个字符串,内有数字和非数字字符,如: A123x456 tab5876,将其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这些数。
编程题26:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入n个整数,用子函数void bubble(int [ ],int)实现从小到大的冒泡排序。
第9章结构编程题27:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
编程题28:13个人围成一圈,从第一个人开始顺序报号,凡报到3者退出圈子,找出最后留在圈子中的人原来的序号。
要求用链表实现。
编程题29:阅读链表操作相关函数,完成指定的操作函数。
#include \链表内容仅限表头表尾添加、删#include \除、查询、显示、保存,不考排序、中间节点的插入和删除#include \ struct Student { char name[20];num; intint math;struct Student *next;};struct Student *Create(struct Student *head); 低级B. 面向对象 C. 高级 D.智能C语言的特征。
)不是D2. 下列特性中,(类型检测严格 C.能直接访问物理地址D.A.运行效率高B.结构化程序设计3.下列标识符中,( D )不是C的关键字;A. intB. floatC. charD. scanf4.下列标识符中,( D )不是C的关键字;A. sizeofB. shortC. longD. define5.下列标识符中,( D)不是C的关键字;A. gotoB. breakC. autoD. printf6.下列标识符中,( D)不是C的关键字;A. staticB. structC. voidD. include7.下列自定义标识符中,( C)是不符合规定。
A. point1xB. _point1xC. 2pointxD. pointx_28.下列自定义标识符中,( C)是不符合规定。
A. MAXB. _MINC. MAX$D. MIN_29.下列自定义标识符中,( D)是不符合规定。
A. point1_B. _point1xC. pointxD. pointx_?#10.下列自定义标识符中,( A )是不符合规定。
A. 2_point1xB. _point1xC. pointxD. pointx_211.下列四个选项中,是不合法的用户标识符的选项是( C )A.P_0 B._abcC.gotoD.temp) A .下面是不正确的字符串常量的是(12.A.'abc'B.“12'12”C.“0”D.“”13. 已知int a; float f; scanf(“a=%d,f=%f”,&a,&f); 为了把10和分别赋值给a和f,则正确的输入为(C)A.10, B. 10 C. a=10,f= D. a=10 f=14.输入语句为:scanf(%f,%f\n,&radius,&high);下列键盘输入( D )是正确的。
A.1 2↙;B.1,2\n↙;C.1↙2↙;D.1,2↙;15.输入语句为:scanf(a=%f,b=%f,&radius,&high);从键盘输入( D )是正确的。
A.1 2↙;B.1,2↙;C.1↙2↙;D.a=1,b=2↙;16.输入语句为:scanf(a=%f,b=%f\n,&radius,&high);从键盘输入(D)是正确的。
A.1 2↙;B.1,2↙;C.1↙2↙;D.a=1,b=2\n↙;17.输入语句为:scanf(a=?=%f,&radius,&high);从键盘输入(D)是正确的。
A.1 2↙;B.1,2↙;C.1↙2↙;D.a=1b=2↙;18.double PI=, 输出语句为:printf(%,PI);下列输出结果( D )是正确的。
A.;B.;C.;D.;19.double PI=, 输出语句为:printf(%,PI);下列输出结果(B)是正确的。
A.;B.;C.;D.;20.double PI=, 输出语句为:printf(%,PI);下列输出结果()是正确的。
A.;B.;C.;D.;21.设x,y均为float型变量,则下列不合法的赋值语句是()A.++x B.y=(x%2)/10C.x*=y+8 D.x=y=022.double PI=, 输出语句为:printf(%,PI);下列输出结果()是正确的。
A.;B.;C.;D.;23. int a=-1;C语言整型数分配4个字节,在计算机中下列十六进制表示的(A)是正确的。
;00000001.D ;.C ;.B ;ffffffff.A24.int a=1;C语言整型数分配4个字节,在计算机中下列十六进制表示的a()是正确的。
A.00000001;B.;C.;D.ffffffff;25.?int a=-1;C语言整型数分配4个字节,在计算机中下列十六进制表示的a()是正确的。