程序设计部分答案
答案第二章 C语言程序设计的初步知识
第二章 C语言程序设计的初步知识一、选择题1.在C 语言中,下列类型属于构造类型的是 D 。
(0级)A)整型B)字符型C)实型D)数组类型2.在C 语言中,下列类型属于构造类型的是D 。
(0级)A)空类型B)字符型C)实型D)共用体类型3.在C 语言中,下列类型属于构造类型的是 D 。
(0级)A)整型B)指针类型C)实型D)结构体类型4.在C 语言中,下列类型属于基本类型的是 A 。
(0级)A)整型、实型、字符型B)空类型、枚举型C)结构体类型、实型D)数组类型、实型5.下列类型属于基本类型的是 C 。
(0级)A)结构体类型和整型B)结构体类型、数组、指针、空类型C)实型D)空类型和枚举类型6.下列字符串属于标识符的是 A 。
(0级)A)INT B)5_student C)2ong D)!DF7.下列字符串属于标识符的是 A 。
(0级)A)_WL B)3_3333 C)int D)LINE 38.下列字符串不属于标识符的是 D 。
(0级)A)sum B)average C).day_night D)M.D.JOHN9.下列字符串不属于标识符的是 D 。
(0级)A)total B)lutos_1_2_3 C)_night D)$ 12310.下列字符串不属于标识符的是D 。
(0级)A)_above B)all C)_end D)# dfg11.C语言中不能用来表示整常数的进制是 D 。
(0级)A)十进制B)十六进制C)八进制D)二进制12.C语言中能用来表示整常数的进制是 A 。
(0级)A)十进制、八进制、十六进制B)十二进制、十进制C)六进制、八进制D)二进制、十进制13.在C语言中,回车换行符是 A 。
(0级)A)\n B)\t C)\v D)\b14.在C语言中,退格符是 D 。
(0级)A)\n B)\t C)\v D)\b15.在C语言中,反斜杠符是 D 。
(0级)A)\n B)\t C)\v D)\ \16.在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII 码 A 。
C语言程序设计课后各章节习题答案
main()
{
float x,y,d;
printf("Input x,y:");
scanf("%f,%f",&x,&y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d>1)printf(ntf("inside");
}
12有一函数
x-1 -5<x<0
y= x x=0
x+1 0<x<8
编写一程序,要求输入x的值,输出y的值。分别用不嵌套的if语句,嵌套的if语句,switch语句编写。
答使用不嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
答main()
{
int x,a,b,c;
printf("Input number:");
scanf("%d",&x);
a=x/100;/*变量a中记录x的百倍数字*/
b=x/10%10;/*变量b中记录x的十位数字*/
c=x%10;/*变量c中记录x的个位数字*/
if(a*a*a+b*b*b+c*c*c==x)
if(m==2)
d=28+f;
else
d=31-(m==4)+(m==6)+(m==9)+(m==11);
printf("%d-%d is %d days.\n",y,m,d);
语言程序设计习题答案
C 语言程序设计习题答案习题一 C 语言程序设计概述一、名词解释(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2(5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4(9)结构化的程序设计P9二、简述题1. 设计程序时应遵循哪些基本原则P4答:正确性、可靠性、简明性、有效性、可维护性、可移植性。
2. 算法的要素是什么算法具有哪些特点答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
3. 算法的表示形式有哪几种答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。
4. 有哪三种基本结构答:三种基本结构是:顺序结构、选择结构和循环结构。
5. 传统流程图与N-S 流程图最大的区别是什么答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。
三、用传统流程图、N-S 图分别表示求解以下问题的算法。
1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。
2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。
3. 求1+2+3+…+100的值。
4. 求1×2×3×…×10的值。
5. 求下列分段函数的值。
6. 求100~200之间的所有素数。
7. 求一元二次方程ax 2+bx+c=0的根。
分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。
四、注释下面C 程序的各个组成部分。
main() /*主函数 */{ /*程序开始 */int a,k,m; /*定义三个用来存放整数的变量 */a=10; /*将整数10赋值给变量a */k=2; /*将整数2赋值给变量k */m=1; /*将整数1赋值给变量1 */a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */printf("%d\n",a); /*在屏幕上打印出变量a 的值 */} /*程序结束 */习题二 数据类型、运算符与表达式一、选择题1~10:BCDCB DDBCA11~20: ADDAA DBADC21~28: DABAD CDDY= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1<X<5) 6-3X (X ≥5) 输入一个数给x X<=1 Yes no X<1 x<5 Yes no yes no Y=3x y=4x-1 y=5x+1 y=6-3x 输出s 的值 i =100 当i<=200时 n=2; flag=1; 当n< i 时i 能否被n 整除yes no flag=0 n = n+1 flag=1yes no输出i 的值i = i+1二、填空题1.字母L 或字母l2.字符或%c 、整数或%d3.在程序运行过程中,其值可以在一定的范围内变化的量。
C程序设计课后习题1-3(答案)
C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。
A.main函数的入口 B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。
A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。
A. B.C.Tom B.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check_quality C.sal_ary_tot_al(5)C程序是由(D)组成。
A.若干个过程B.若干子程序C.一个主程序和若干子程序D.若干函数2.填空题(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。
(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。
(3)一个C语言程序至少应包含一个__主函数或main()__。
(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。
(5)函数体用___{______符号开始,用_____}______符号结束。
(6)注释的开始和结束标志分别为__/*____和____*/____。
为增强程序的__可读性___,应该为程序写上清晰的注释。
3.编程题:参考本章例题,编写一个C程序,输出以下信息。
***********************The data is ** 2005-03-23 ***********************程序如下:#include <stdio.h>Void main(){printf(“**********************\n”);printf(“*The data is *\n”);printf(“* 2005-03-23 *\n”);printf(“**********************\n”);}第二章习题1.选择题(1)设int m=10 ,则下列表达式的值不等于零的有(A F)。
32位汇编语言程序设计部分课后习题答案
3.1 简答题-1
(1)如何修改“MOV ESI, WORD PTR 250”语句使其 正确?
• 删除“WORD PTR”即可
(2)为什么说“XCHG EDX,CX”是一条错误的指令?
32位汇编语言习题解答
课件制作: 钱晓捷
钱晓捷,32位汇编语言程序设计,机械工业出版社
第1章习题:汇编语言基础
1.1 简答题(1、3、6、7、8) 1.2 判断题(1、6、7、8、9) 1.3 填空题(3、4、5、7、10) 1.9、1.13、1.15、1.16
1.1 简答题-1
(1)哪个处理器的指令系统成为Intel
• 没有
(8)汇编语言的标识符大小写不敏感意味着什么?
• 表示字母大小写不同、但表示同一个符号
4
习题解答
1.2 判断题
1)EAX也被称为累加器,因为它使用最频繁。
• 对,EAX中的A来自英文累加器(Accumulator)
6)处理器的传送指令MOV属于汇编语言的执行性语句
•对
7)汇编语言的语句由明显的4部分组成,不需要分隔 符区别。
13,10
byte
'---+-------------------------------',
13,10
byte '20 |',20h,20h,21h,20h,22h,20h,23h,20h,
24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h,20h
byte 2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh,20h,
• 寄存器寻址,立即数寻址
(9)已知ESI=04000H,EBX=20H,指令“MOV EAX, [ESI+EBX*2+8]”中访问的有效地址是__________。
C程序设计题目集答案之第4章
第四章判断题1-1continue 不是结束本次循环,而是终止整个循环的执行。
(1分)T F1-2do-while循环的while后的分号可以省略。
(1分)T F1-3do-while循环至少要执行一次循环语句。
(1分)T F1-4C语言的三种循环不可以互相嵌套。
(1分)T F1-5continue 只能用于循环体中。
(1分)T F在多层循环中, 一个break语句只向外跳一层。
(1分)T F1-7do - while语句的一般形式如下,其中的循环体语句至少执行一次。
(1分)T F1-8在嵌套循环(多层循环)中, 每一层循环都应该使用自己的循环变量,以免互相干扰。
(1分)T F1-9while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了。
(1分)T F在循环中使用break语句或者continue语句,其作用是相同的。
(1分)T F选择题答案BCDCD CCCBC2-1The following piece of code prints out__. (2分)A. 2 3 1B.-1C. 1 2 0D.32-2A.15B.9C.6D.52-3A.15B.10C.9D.62-4The following code fragment prints out __. (2分)A.B.C.D.2-5A.15B.10C.9D.62-6A.8B.9C.10D.112-7若变量已正确定义,以下while循环正常结束时,累加到pi的最后一项item的值满足()。
(2分)A.item的绝对值小于0.0001B.item的绝对值大于0.0001C.item的绝对值大于等于0.0001D.item的绝对值小于等于0.00012-8设有程序段则下面描述中正确的是()。
(2分)A.B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2-9下面的这个循环的循环次数是()。
(2分)A.语法错误,不能执行B.无限次C.10D.12-10对下列代码的描述:正确的是:(2分)A.程序有编译错误,不能执行B.循环条件永为真,循环无限次,程序根本停不下来,打印输出无限行C.循环有限次,程序正常结束,打印输出有限行D.程序运行过程必定会出错(崩溃),结果打印输出有限行。
《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]
第一篇:《C语言程序设计教程》(第三版)课后习题参考答案C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
《C程序设计》作业参考答案(1-4章)
第1章C语言概述习题(P13):1.3 写出一个C程序的构成。
答:C程序由一个main函数和0个或多个自定义函数构成,每个函数的构成如下:函数类型函数名(函数参数列表){说明部分执行部分}1.4 C语言以函数为程序的基本单位,有什么好处?答:一个函数实现一个相对独立的功能,便于实现程序的模块化。
1.5 请参照本章例题,编写一个C程序,输出以下信息:*************************************************Very good!*************************************************答:参照例1.1编程如下# include <stdio.h>void main(){printf("********************************************\n");printf(" Very good!\n");printf("********************************************\n");}1.6 编写一个C程序,输入a、b、c 3个值,输出其中最大者。
答:参照例1.3编程如下法一:修改例1.3的主函数,自定义max函数不变。
# include <stdio.h>void main(){int max(int x,int y); /*函数声明*/int a,b,c,m; /*定义4个变量,m用于存放最大值*/scanf("%d%d%d",&a,&b,&c);/*从键盘上输入3个整数*/m=max(a,b); /*第一次调用max函数求出前两个数的最大值放在m中*/m=max(m,c); /*再调max函数求出m和第三个数的最大数*/printf("max is %d\n",m); /*输出结果*/}int max(int x,int y) /*定义求两个数的最大数的函数max */{int z;if(x>y) z=x;else z=y;return(z);}法二:修改例1.3的主函数和max函数,将max函数改为求3个数的最大数。
何钦铭-C语言程序设计(第3版)部分课后习题参考答案.docx
何钦铭《C语言程序设计》(第3版)课后习题参考答案习题11.对C 语言来说,下列标识符中哪些是合法的,哪些是不合法的?total, _debug, Large&Tall, Counter1, begin_解答:合法标识符:total, _debug, Counter1;不合法标识符:Large&Tall, begin_。
2.改写本章1.4 节中的流程图1.2,求1~100 中能被6 整除的所有整数的和。
解答:3.改写本章1.4 节中的程序,求1~100 中能被6 整除的所有整数的和,并在编程环境中验证该程序的运行结果。
解答:#include <stdio.h>int main(void){int i, sum = 0;for(i = 1; i <= 100; i++)if (i % 6 == 0)sum = sum + i;printf("%d", sum);return 0;}4.对于给定的整数n(n>1),请设计一个流程图判别n 是否为一个素数(只能被1 和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构与循环结构。
解答:在流程图中,分支结构和循环结构如图1.2 所示,自上而下的2 个实线框和2 个虚线组成了顺序结构。
习题21.求整数均值:输入4 个整数,计算并输出这些整数的和与平均值,其中平均值精确到小数点后1 位。
试编写相应程序。
解答:#include <stdio.h>int main (void){int num1, num2, num3, num4;double average, sum;scanf ("%d%d%d%d", & num1, & num2, & num3, & num4);sum = num1+ num2+ num3 + num4;average = sum / 4;printf ("Sum = %.0f; Average = %.1f\n", sum, average);return 0;}2.阶梯电价:为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50 千瓦时(含50 千瓦时)以内的,电价为0.53 元/千瓦时;超过50 千瓦时的,超出部分的用电量,电价上调0.05 元/千瓦时。
程序设计试卷及答案
程序设计试卷及答案一、选择题(每题2分,共20分)1. 下列哪个选项是正确的?A. 程序设计是一种艺术形式B. 程序设计是一种科学C. 程序设计只涉及硬件的操作D. 程序设计只需要机器语言的理解和应用2. C语言中的函数可以返回多个值吗?A. 可以B. 不可以3. 以下哪个关键字用于定义常量?A. constB. staticC. volatileD. extern4. 以下哪个选项是正确的?A. 集成开发环境(IDE)只用于调试程序代码B. 集成开发环境(IDE)只用于编译程序代码C. 集成开发环境(IDE)用于编写、调试和编译程序代码D. 集成开发环境(IDE)只用于编写程序代码5. 在C语言中,以下哪个运算符用于获取变量的地址?A. &B. *C. ->D. sizeof6. 下列哪个选项是正确的?A. 结构体是由相同类型的数据组成B. 结构体是 C 语言中的一种数据类型C. 结构体可以包含函数D. 结构体只能包含基本数据类型的成员7. 以下哪个关键字用于定义函数的形参类型?A. voidB. intC. externD. typedef8. 哪个是指针的正确声明方式?A. int *p;B. pointer p;C. p int;D. ptr int;9. 标识符的命名规则中,以下哪个选项是错误的?A. 可以使用数字作为标识符的开头B. 可以使用下划线作为标识符的开头C. 标识符可以由字母、数字和下划线组成D. 标识符长度可以任意长短10. 哪个是正确的if语句的用法?A. if (条件) 语句;B. if 条件语句;C. if 条件 then 语句;D. if (条件) then 语句;二、填空题(每空2分,共20分)1. C语言中,定义带有两个整型参数和整型返回值的函数的声明应该是:`int add(int a, int b);`2. 在C语言中,通过`malloc()`函数动态分配内存之后,应使用`free()`函数释放内存。
(完整版)C语言程序设计习题集及答案
C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。
A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。
A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。
A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。
A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。
A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。
A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。
y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。
A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。
printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。
程序设计习题集(带答案)
一、选择题1.结构化程序设计的3种结构是(D)A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构2.以下叙述中正确的是(C)A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点3.C语言中用于结构化程序设计的3种基本结构是(A)A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue4.C语言中最简单的数据类型包括(B)A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型5.若变量已正确定义并赋值,以下符合C语言语法的表达式是(B) A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b6.下列可用于C语言用户标识符的一组是(B)A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof7.C语言中运算对象必须是整型的运算符是(A)A)%=B)/C)=D)<=8.若变量a,i已正确定义,且i已正确赋值,合法的语句是(B)A)a= =1B)++i;C)a=a++=5;D)a=int(i);9.已知int t=0;while (t=1){...}则以下叙述正确的是(B)A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对10.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是(B) A)10<回车>22<回车>33<回车>B)10.0,22.0,33.0<回车>C)10.0<回车>22.0<空格>33.0<回车>D)10<<空格>>22<回车>33<回车>11.有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是(A)A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=212.有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是(C)A)1,1,2B)2,2,1C)2,2,2D)2,2,313.有如下程序main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是(C)A)0.000000B)0.250000C)0.500000D)1.00000014.有如下程序:main(){int n=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是(B)A)987B)876C)8765D)987615.在下列选项中,没有构成死循环的是(D)A) int i=100;while(1){i=i 0+1;if(i>100)break;}B) for(;;);C) int k=10000;do{k++;}while(k>10000);D) int s=36;while(s)--s;16.设int x=1,y=1;表达式(!x||y--)的值是(B)A)0B)1C)2D)-117.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D) A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参18.有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是(B)A)编译出错B)9C)21D)9.019.若有以下调用语句,则不正确的fun函数的首部是(D)main(){int a[50],n;…fun(n,&a[9]);…}A)void fun(int m,int x[])B)void fun(int s,int h[41])C)void fun(int p,int *s)D)void fun(int n,int a)20.fseek函数的正确调用形式是(B)A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)21.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(C)A)EOFB)-1C)1D)NULL22.若有说明语句:char c='\72';则变量c (A)A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定23.若有说明 int a[3][4];则a数组元素的非法引用是(D)A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]24.设有以下说明语句struct stu{int a;float b;}stutype;则下面的叙述不正确的是(C)A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名25.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C) A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式26.若运行时给变量x输入12,则以下程序的运行结果是(A)main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)1027.以下说法正确的是(C)A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分28.表达式0x13^0x17的值是(A)A)0x04B)0x13C)0xE8D)0x1729.有以下程序main(){int a=3, b=4;printf("%d\n", (a++)*(b++));}程序运行后的输出结果是 (A)A)12B)15C)16D)2030.下列程序执行后的输出结果是(A)void func(int *a,int b[]){b[0]=*a+6;}main(){int a,b[5];a=0; b[0]=3;func(&a,b);printf("%d\n",b[0]);}A)6B)7C)8D)931.若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是(D)A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是(C)A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,33.以下程序的运行结果是(A)struct date{int year,month,day;}today;main(){printf("%d\n",sizeof(struct date));}A)6B)8C)10D)1234.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是(D) A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point35.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是(B)A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定36.fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是(A)A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'37.若执行下述程序时,若从键盘输入6和8时,结果为(B)main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对38.fscanf函数的正确调用形式是(D)A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);39.下列关于C语言数据文件的叙述中正确的是(D)A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件40.有以下程序void ss(char *s,char t){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是(B)A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd41.struct link{int data;struct link *next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
国家开放大学C语言程序设计章节测试参考答案
国家开放大学《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、关于下面程序段,正确的是()。
int k=10;while(!k)k--;A.循环体一次也不执行B.死循环C.循环体执行1次D.循环体执行10次正确答案:A2、下面程序的运行结果是( )。
#include <stdio.h>int main( ){int x=3;do{printf("%3d",x-=2);}while(!(--x));return 0;}A.1B.死循环C.1 -2D.10正确答案:C3、已定义int j; 下面程序段的输出结果是()。
for(j=7;j<10;j++)printf("%d",j);A.无结果B.8910C.789D.91011正确答案:C4、下面程序的输出结果是()。
#include <stdio.h>int main( ){int i,j,s=0;for(j=1,i=7;j<=i;j++,i--)s=s+i+j;printf("%d",s);return 0;}A.0B.死循环C.32D.28正确答案:C5、下面程序的输出结果是()。
#include <stdio.h>int main( ){int j,s;for(j=1;j<=7;j++)s=s+j;printf("%d",s);}A.死循环B.0C.不确定D.28正确答案:C6、已定义int j,s; 则下面程序段的输出结果是()。
int j,s;for(j=1,s=0;j<=5;j++)s*=j;printf("%d",s);A.0B.无结果C.120D.死循环正确答案:A7、从循环体内某一层跳出,继续执行循环外的语句是( )。
A.if语句B.break语句C.空语句D.continue语句正确答案:B8、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是()。
C程序设计课后习题1-3(答案)
C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。
A.main函数的入口 B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。
A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。
A. B.C.Tom B.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check_quality C.sal_ary_tot_al(5)C程序是由(D)组成。
A.若干个过程B.若干子程序C.一个主程序和若干子程序D.若干函数2.填空题(1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。
(2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。
(3)一个C语言程序至少应包含一个__主函数或main()__。
(4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。
(5)函数体用___{______符号开始,用_____}______符号结束。
(6)注释的开始和结束标志分别为__/*____和____*/____。
为增强程序的__可读性___,应该为程序写上清晰的注释。
3.编程题:参考本章例题,编写一个C程序,输出以下信息。
***********************The data is ** 2005-03-23 ***********************程序如下:#include <stdio.h>Void main(){printf(“**********************\n”);printf(“*The data is *\n”);printf(“* 2005-03-23 *\n”);printf(“**********************\n”);}第二章习题1.选择题(1)设int m=10 ,则下列表达式的值不等于零的有(A F)。
程序设计基础答案
程序设计基础习题一答案一、单项选择题本大题共20小题,每小题2分,共40分a10;合法的数组元素的最小下标值为;A:10B:9C:1D:0答案:D2.以下运算符中优先级最低的是;A:&&B:&C:||D:|答案:C3.若使用一维数组名作函数实参,则以下正确的说法是;A:必须在主调函数中说明此数组的大小B:实参数组类型与形参数组类型可以不匹配C:在被调用函数中,不需要考虑形参数组的大小D:实参数组名与形参数组名必须一致答案:A4.已知函数的调用形式:freadbuffer,size,count,fp;其中buffer代表的是;A:一个整数,代表要读入的数据项总数B:一个文件指针,指向要读的文件C:一个指针,指向要读入数据的存放地址D:一个存储区,存放要读的数据项答案:C5.对以下说明语句int a10={6,7,8,9,10}; 的正确理解是;A:将5个初值依次赋给a1至a5B:将5个初值依次赋给a0至a4C:将5个初值依次赋给a6至a10D:因为数组长度与初值的个数不相同,所以此语句不正确答案:B6.下列程序的输出结果是;main{ int x=1,y=0,a=0,b=0;switchx{case 1:switchy{case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;case 3:a++;b++;break;}printf"a=%d,b=%d\n",a,b;}A:a=1,b=0B:a=2,b=1C:a=1,b=1D:a=2,b=2答案:B7.下列程序的输出结果为;main{int m=7,n=4;float a=,b=,x;x=m/2+na/b+1/2;printf"%f\n",x;}A:B:C:D:答案:A8.若k为int型变量,则以下程序段的执行结果是; k=-8567; printf"|%06D|\n",k;A:格式描述符不合法,输出无定值B:输出为|%06D|C:输出为|0-8567|D:输出为|-8567|答案:B9.下列程序段的输出结果为;int x=3,y=2;printf"%d",x-=y,x=y+8/5;A:1B:7C:3D:5答案:Ca="This is a program.";输出前5个字符的语句是; A:printf"%.5s",a;B:putsa;C:printf"%s",a;D:a52=0;putsa;答案:A11.下列程序的输出结果是;main{char c1=97,c2=98;printf"%d %c",c1,c2;}A:97 98B:97 bC:a 98D:a b答案:B12.以下选项中合法的实型常数是;A:B:E-3C:.2E0D:答案:C语言中的文件类型只有;A:索引文件和文本文件两种B:ASCII文件和二进制文件两种C:文本文件一种D:二进制文件一种答案:B14.以下叙述不正确的是;A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C程序的基本组成单位是函数D:在C程序中,注释说明只能位于一条语句的后面答案:D15.以下运算符中,优先级最高的运算符是;A:||B:%C:D:==16.执行以下程序段后,输出结果和a的值是;int a=10;printf"%d",a++;A:10 和10B:10 和11C:11 和10D:11 和11答案:B17.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是;A:a>=10 or a<=0B:a>=0|a<=10C:a>=10&&a<=0D:a>=10‖a<=0答案:D18.以下叙述中错误的是;A:二进制文件打开后可以先读文件的末尾,而顺序文件不可以B:在程序结束时,应当用fclose函数关闭已打开的文件C:在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D:不可以用FILE定义指向二进制文件的文件指针答案:D19.下列程序段的输出结果为;float k=;printf"%%%",k100;A:%%B:%C:%D:.85720.若有int p=int mallocsizeofint;则向内存申请到内存空间存入整数123的语句为;A:scanf"%d",p;B:scanf"%d",&p;C:scanf"%d",p;D:scanf"%d",p;答案:A21.经过下列的语句int j,a10,p;定义后,下列语句中合法的是; A:p=p+2;B:p=a5;C:p=a2+2;D:p=&j+2;答案:A22.以下对二维数组a的正确说明是;A:int a3B:float a3,4C:double a14D:float a34答案:C23.经下列语句定义后,sizeofx,sizeofy,sizeofa,sizeofb在微机上的值分别为;char x=65;float y=;int a=100;double b=;A:2,2,2,4B:1,2,2,4C:1,4,2,8答案:C24.以下叙述中不正确的是;A:一个好的程序应该有详尽的注释B:在C程序中,赋值运算符的优先级最低C:在C程序中,j++;是一条赋值语句D:C程序中的include和define均不是C语句答案:B25.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为; A:fcloseB:closeC:freadD:fwrite答案:Astruct {int a1;float a2;char a3;}a10={1,,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是;A:a1B:a-1C:a0D:a10答案:C27.函数的形式参数隐含的存储类型说明是;A:externB:staticC:registerD:auto答案:D28.可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的形式存在磁盘上;A:内存B:缓冲区C:文件D:寄存器答案:C29.若用数组名作为函数的实参,传递给形参的是;A:数组的首地址B:数组第一个元素的值C:数组中全部元素的值D:数组元素的个数答案:Ax;scanf"%lf",&x;不可以赋值给x变量的常量是;A:123B:100000C:A'D:"abc"答案:D31.以下的选择中,正确的赋值语句是;A:a=1,b=2B:j++C:a=b=5;D:y=intx答案:C32.要打开A盘上user子目录下名为的文本文件进行读、写操作, 下面符合此要求的函数调用是;A:fopen"A:\user\","r"B:fopen"A:\\user\\","r+"C:fopen"A:\user\","rb"D:fopen"A:\\user\\","w"33.与实际参数为实型数组名相对应的形式参数不可以定义为;A:float a;B:float a;C:float a;D:float a3;答案:C34.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为;A:自动autoB:静态staticC:外部externD:寄存器register答案:A35.下面有关for 循环的正确描述是;A:for 循环只能用于循环次数已经确定的情况B:for 循环是先执行循环循环体语句,后判断表达式C:在for 循环中,不能用break 语句跳出循环体D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D36.下列语句的结果是;main{ int j;j=3;printf"%d,",++j;printf"%d",j++;}A:3,3B:3,4C:4,3D:4,437.执行下列程序后,其输出结果是;main{int a=9;a+=a-=a+a;printf"%d\n",a;}A:18B:9C:-18D:-9答案:C38.以下函数调用语句中实参的个数是;funce1,e2,e3,e4,e5;A:2B:3C:5D:语法错误答案:A39.下列四个选项中,均是C语言关键字的选项是; A:auto enum includeB:switch typedef continueC:signed union scanfD:if struct type答案:B40.下列数组说明中,正确的是;A:static char str="China";B:static char str; str="China";C:static char str15,str2={"China"}; str1=str2;D:static char str1,str2;str2={"China"}; strcpystr1,str2;答案:A语言中,要求运算数必须是整型的运算符是;A:^B:%C:D:>答案:B42.以下不能正确定义二维数组的选项是;A:int a22={{1},{2}};B:int a2={1,2,3,4};C:int a22={{1},2,3};D:int a2={{1,2},{3,4}};答案:D43.设int x=1, y=1; 表达式x||y--的值是;A:0B:1C:2D:-1答案:B44.下列选项中正确的语句组是;A:char s8; s={"Beijing"};B:char s; s={"Beijing"};C:char s8; s="Beijing";D:char s; s="Beijing";答案:D45.若有int a10={0,1,2,3,4,5,6,7,8,9},p=a;则输出结果不为5 的语句为;A:printf"%d",a+5;B:printf"%d",p5;C:printf"%d",p+5;D:printf"%d",p5;答案:D46.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+if值的数据类型为;A:intB:floatC:doubleD:不确定答案:C47.以下叙述正确的是;A:在C程序中,main函数必须位于程序的最前面B:C程序的每行中只能写一条语句C:C语言本身没有输入输出语句D:在对一个C程序进行编译的过程中,可发现注释中的拼写错误答案:Ca=1,b=2,c=3;ifa>ba=b;ifa>ca=c;则a的值为;A:1B:2C:3D:不一定答案:A语言中,定义结构体的保留字是;A:unionB:structC:enumD:typedef50.逻辑运算符两侧运算对象的数据类型;A:只能是0或1B:只能是0或非0正数C:只能是整型或字符型数据D:可以是任何类型的数据答案:D51.以下叙述中正确的是;A:C语言的源程序不必通过编译就可以直接运行B:C语言中的每条可执行语句最终都将被转换成二进制的机器指令C:C源程序经编译形成的二进制代码可以直接运行D:C语言中的函数不可以单独进行编译52.下列程序的输出结果是;main{ int x=1,y=0,a=0,b=0;switchx{case 1:switchy{case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;case 3:a++;b++;break;}printf"a=%d,b=%d\n",a,b;}A:a=1,b=0B:a=2,b=1C:a=1,b=1答案:B53.若二维数组a有m列,则在aij前的元素个数为;A:jm+iB:im+jC:im+j-1D:im+j+1答案:B54.用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是; long a=0xffffff;int b; char c;A:0ffffff 和0x61B:-1和98C:-1和97D:指向同一地址答案:C55.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是;A:地址传递B:单向值传递C:由实参传给形参,再由形参传回实参D:传递方式由用户指定答案:B56.以下数值中,不正确的八进制数或十六进制数是;A:0x16B:16C:-16D:0xaaaa答案:C57.以下运算符中,优先级最高的运算符是;A:=B:>=C:类型D:+答案:C58.以下选项中,与k=n++完全等价的表达式是;A:k=n,n=n+1B:n=n+1,k=nC:k=++nD:k+=n+1答案:A59.结构体类型的定义允许嵌套是指;A:成员是已经或正在定义的结构体型B:成员可以重名C:结构体型可以派生D:定义多个结构体型答案:A60.用户定义的函数不可以调用的函数是;A:非整型返回值的B:本文件外的C:main函数D:本函数下面定义的答案:C二. 多选题本大题共20小题,每小题2分,共40分1.以下对C语言中的函数描述不正确的有;A:可以嵌套定义,不可以嵌套调用B:不可以嵌套定义,可以嵌套调用C:可以嵌套定义,也可以嵌套调用D:嵌套定义和嵌套调用都不允许答案:ACD2.以下叙述正确的是;A:预处理命令行都必须以""开始B:在程序中凡是以""开始的语句行都是预处理命令行C:C程序在执行过程中对预处理命令行进行处理D:define ABCD是正确的宏定义答案:ABD3.以下描述错误的是;A:continue语句的作用是重新开始一次循环体的执行B:只能在循环体内和switch语句体内使用break语句C:在循环体内使用break语句和continue语句的作用相同D:从多重循环嵌套中退出是,只能使用goto语句答案:CD4.有定义语句:int x,y;若要通过scanf"%d,%d",&x,&y;语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中, 正确的有;A:11 12<回车>B:11,<空格>12<回车>C:11,12<回车>D:11,<回车> 12<回车>答案:BCD5.以下合法的十六进制数是;A:oxffB:0XabcC:0x01D:0X9X答案:BC6.以下描述正确的是;A:调用函数时,实参可以是表达式B:调用函数时,实参与形参可以共用内存单元C:调用函数时,将为形参分配内存单元D:调用函数时,实参与形参的类型必须一致答案:ACD7.以下选项中合法的表达式是;A:0<=x<100B:i=j==0C:char65+3D:x+1=x+1答案:ABC8.设有以下定义int a=0;double b=;char c='A';define d 2则下面语句中正确的是;A:a++;B:b++;C:c++;D:d++;答案:ABC9.以下对二维数组a进行正确初始话的是;A:static char word='Turbo\0';B:static char word={'T','u','r','b','o','\0'}; C:static char word={"Turbo\0"};D:static char word="Turbo\0";答案:BCD10.符合C语言语法的实型常量是;A:答案:ABD11.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是; A:a=b=c=d=100;B:d++;C:c+b;D:d=c=22-b++;答案:ABD12.以下关于数组描述错误的是;A:数组的大小是固定的,但可以有不同的类型的数组元素B:数组的大小是可变的,但所有数组元素的类型必须相同C:数组的大小是固定的,所有数组元素的类型必须相同D:数组的大小是可变的,可以有不同的类型的数组元素答案:ABD13.以下正确的if语句形式是;A:if x>y && x=y;B:if x==y x+=y;C:if x=y scanf"%d",&x else scanf"%d",&y;D:if x<y {x++;y++;}答案:ABD14.以下叙述中正确的是;A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C源程序的基本组成单位是函数D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC15.以下合法的十六进制数是;A:oxffB:0XabcC:0x01D:0X9X答案:BC16.以下选项中,合法的字符常量是;A:'\t'B:'\17'C:"n"D:'\xaa'答案:ABD17.以下用户标识符,其中合法的是;A:returnB:f2_G3C:A3-3D:abc答案:BD18.以下可以定义为用户标识符的有; A:scanfB:shortC:_3com_D:int答案:AC19.以下选项中合法的表达式是;A:0<=x<100B:i=j==0C:char65+3D:x+1=x+1答案:ABC20.以下不符合C语言语法的实型常量是; A:答案:ABD个选项中,可以看作是一条语句的有;A:{;}B:a=0,b=0,c=0;C:ifa>0;D:ifb==0 m=1;n=2;答案:ABC22.以下选项中,合法的字符常量是;A:'\t'B:'\17'C:"n"D:'\xaa'答案:ABD23.以下描述正确的是;A:使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成B:while循环是先判断表达式,后执行循环语句C:do-while和for循环均是先执行循环语句,后判断表达式D:for,while和do-while循环中的循环体均可以由空语句构成答案:ABD24.以下关于数组描述错误的是;A:数组的大小是固定的,但可以有不同的类型的数组元素B:数组的大小是可变的,但所有数组元素的类型必须相同C:数组的大小是固定的,所有数组元素的类型必须相同D:数组的大小是可变的,可以有不同的类型的数组元素答案:ABD25.以下选项中不是C语言合法整数的是;A:10110B:0386C:0XffaD:x2a2答案:BD26.若以下选项中的变量已正确定义,则不正确的赋值语句是;A:x1=%3B:x=3x+xC:x3=0x12D:x4=1+2=3;答案:AD27.下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是; A:只能是0或1B:只能是0或非0正数C:可以是整型或字符型数据D:可以是任何类型的数据答案:ABD28.下列选项中是C语言合法标志符的有;A:good_morningB:mainC:D:8abc答案:AB29.以下对switch语句和break语句中描述错误的有;A:在switch语句中必须使用break语句B:break语句只能用于switch语句C:在switch语句中,可以根据需要使用或不使用break语句D:break语句是switch语句的一部分答案:ABD30.以下叙述中正确的是;A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C源程序的基本组成单位是函数D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC31.下对C语言中的函数描述不正确的有;A:可以嵌套定义,不可以嵌套调用B:不可以嵌套定义,可以嵌套调用C:可以嵌套定义,也可以嵌套调用D:嵌套定义和嵌套调用都不允许答案:ACD32.设有以下定义int a=0;double b=;char c='A';define d 2则下面语句中正确的是;A:a++;B:b++;C:c++;D:d++;答案:ABC33.对do-while语句描述正确的是;A:do-while语句构成的循环可以使用break语句退出循环B:do-while语句构成的循环必须使用break语句退出循环C:do-while语句构成的循环,当while中的表达式值为非零时结束循环D:do-while语句构成的循环,当while中的表达式值为零时结束循环答案:AD34.以下可以定义为用户标识符的有;A:scanfB:shortC:_3com_D:int答案:AC35.以下选项中不是C语言合法整数的是;A:10110B:0386C:0XffaD:x2a2答案:BD36.以下叙述中正确的是;A:一个C源程序可由一个或多个函数组成B:一个C源程序必须包含一个main函数C:C源程序的基本组成单位是函数D:在C源程序中,注释说明只能位于一条语句的最后答案:ABC37.以下正确的if语句形式是;A:if x>y && x=y;B:if x==y x+=y;C:if x=y scanf"%d",&x else scanf"%d",&y;D:if x<y {x++;y++;}答案:ABD38.以下选项中不是C语言合法整数的是;A:10110B:0386C:0XffaD:x2a2答案:BD39.以下关于数组描述错误的是;A:数组的大小是固定的,但可以有不同的类型的数组元素B:数组的大小是可变的,但所有数组元素的类型必须相同C:数组的大小是固定的,所有数组元素的类型必须相同D:数组的大小是可变的,可以有不同的类型的数组元素答案:ABD40.以下描述正确的是;A:使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成B:while循环是先判断表达式,后执行循环语句C:do-while和for循环均是先执行循环语句,后判断表达式D:for,while和do-while循环中的循环体均可以由空语句构成答案:ABD41.对do-while语句描述正确的是;A:do-while语句构成的循环可以使用break语句退出循环B:do-while语句构成的循环必须使用break语句退出循环C:do-while语句构成的循环,当while中的表达式值为非零时结束循环D:do-while语句构成的循环,当while中的表达式值为零时结束循环答案:AD42.在定义int a23;之后,对a的引用正确的有;A:a02B:a1,3C:a1>21D:a20答案:AC43.以下用户标识符,其中合法的是;A:returnB:f2_G3C:A3-3D:abc答案:BD44.以下选项中不合法的字符常量是;A:"B"B:'\010'C:68D:D答案:ACD45.正确的if语句形式是;A:if x>y && x=y;B:if x==y x+=y;C:if x=y scanf"%d",&x else scanf"%d",&y;D:if x<y {x++;y++;}答案:ABD46.以下叙述正确的是;A:C语言严格区分大小写英文字母B:C语言用";"作为语句分隔符C:C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上. D:可以使用/…/对C程序中的任何部分作注释答案:ABCD47.以下描述正确的是;A:调用函数时,实参可以是表达式B:调用函数时,实参与形参可以共用内存单元C:调用函数时,将为形参分配内存单元D:调用函数时,实参与形参的类型必须一致答案:ACD48.若以下选项中的变量已正确定义,则不正确的赋值语句是;A:x1=%3B:x=3x+xC:x3=0x12D:x4=1+2=3;答案:AD49.下列选项中是C语言合法标志符的有;A:good_morningB:mainC:D:8abc答案:AB50.以下4个选项中,可以看作是一条语句的有;A:{;}B:a=0,b=0,c=0;C:ifa>0;D:ifb==0 m=1;n=2;答案:ABC51.以下叙述正确的是;A:预处理命令行都必须以""开始B:在程序中凡是以""开始的语句行都是预处理命令行C:C程序在执行过程中对预处理命令行进行处理D:define ABCD是正确的宏定义答案:ABD52.以下选项中不合法的字符常量是;A:"B"B:'\010'C:68D:D答案:ACD53.以下用户标识符,其中合法的是;A:returnB:f2_G3D:abc答案:BD54.以下选项中,合法的字符常量是;A:'\t'B:'\17'C:"n"D:'\xaa'答案:ABD55.以下选项中合法的表达式是;A:0<=x<100B:i=j==0C:char65+3D:x+1=x+1答案:ABC56.以下4个选项中,可以看作是一条语句的有; A:{;}B:a=0,b=0,c=0;C:ifa>0;D:ifb==0 m=1;n=2;答案:ABC57.设有以下定义int a=0;double b=;char c='A';define d 2则下面语句中正确的是;A:a++;B:b++;D:d++;答案:ABC58.若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是;A:a=b=c=d=100;B:d++;C:c+b;D:d=c=22-b++;答案:ABD59.以下叙述正确的是;A:C语言严格区分大小写英文字母B:C语言用";"作为语句分隔符C:C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上. D:可以使用/…/对C程序中的任何部分作注释答案:ABCD60.定义语句:int x,y;若要通过scanf"%d,%d",&x,&y;语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的有;A:11 12<回车>B:11,<空格>12<回车>C:11,12<回车>D:11,<回车> 12<回车>答案:BCD三、判断题本大题共10小题,每小题2分,共20分语言可以直接访问物理位元元址;T语言既可以用来写系统软件,也可以用来写应用软件;T3.用户标识符中可以出现下划线和中划线减号;F4.在C中变量不定义也可以使用;F5.若a=7,b=5; 则执行a&&b++ 后,b为6; T6.在C中能代表逻辑值“假”的是0; T7.若有static int a10; 则a数组的10个元素的值都是0; T8.全局变量的作用域一定比局部变量的作用域范围大;F9.结构类型变量所占内存长度等于成员的长度;而共享体类型变量所占用的内存长度是各成员的内存长度之和,每个成员分别占用其自己的内存单元;F10.有unsigned int a=16;a=a>>2;则a的值是4;T中的变量必须“先定义,后使用”,函数也不例外;T12.一个C源程序只能有一个main函数;T13.表达式’a’和“a”是不同的,前者长度为1,后者长度为2;T14.自增自减运算符++,--可以用于int型、float型和double型资料;T15.若有int x,y,z; x=y=z=1;则执行++x&&++y&&++z后,x,y,z的值分别为2,1,1;F16. continue语句可用于switch语句,也可用于for、while和do循环语句中;F17.函数的实参可以传递给形参,形参也可以传递给实参;F18.define命令是在编译之前处理的;T19.有unsigned int a=16;a=a<<2;则a的值是64;T20.一个无符号整数各数字往左移动2位后,一定是原数的4倍;F21.一个C源程序可以由一个main函数和若干个其它函数组成;T程序中和每一行就是一个语句;F23.在某种意义上,char和int通用;T24.自增运算符和自减运算符的结合方向也是“自左向右”;F语句可用于switch语句,也可用于for、while和do循环语句中;T26.数组类型不是C的基本数据类型,而是一种构造类型 ;T27.一个包含命令include可以包含几个头檔;F28.若定义char str;则str="BOOK";是正确的;T语言中,feof函数用来判断即将读入的是否是文件结束标志,它可用于二进制文件,但不能用于文本文件;F语言的文件存取方式只能是顺序存取,不能随机存取;F1.在C语言中,形参的缺省存储类是:A.auto2.以下选项,与K=n++完全等价的表达式是:=n n=n+1=n=1,k=n =++n +=n+13.以下不能实现回车换行的是:A.printf“n” Bputchar“n”stdout,”n” “n”,1,1stdout4. main{ char s="123",p;p=s;printf"%c%c%c\n",p++,p++,p++;}5. 以下错误的是:A.二进制文件打开后可以先读文件的末尾而顺序文件不可用B.在程序结束时,应该用fclose函数关闭已打开的文件C。
程序设计基础教材章答案.doc
《程序设计基础》习题参考答案与部分解析第1章C语言概述一、填空a)C源程序的基本单位是函数。
b)—个C程序中至少应包括一个_____ 。
c)在C语言中,输出操作是有库函数printf()函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A o因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C o因为main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:Bo因为一个C语言程序是由若干个函数组成的。
但至少包含一个main函数,且main函数的位置不限。
二、编程题1、编写一个输出“Welcome to C!"信息的小程序。
解:程序如下#include "stdio.h"main(){printfC'Welcome to CL);}2、已知三角形的三边长分别为3, 4, 5,试用海轮公式编程求其面积。
海伦公式为:S△二,其中S= (a+b+s)/2 ;解:程序如下#include u math. h"ttinclude "stdio. h"main(){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s , si ; /* si作为面积变量,s作为屮间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;sl= sqrt(s*(s-a)*(s-b)*(s~c)) ; /* sqrt 函数完成开平方根功能。
*/printf( u area=%f\n^ , si);第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.答案:Co这里考察的是用户标识符的定义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//2-26 #include<iostream> using namespace std; int main() { char c;//设置一个名叫c的字符型变量do//大括号内do while 循环体,即循环的内容{ cout<<"现在正在下雨吗?(Y/N)"; cin>>c; cout<<endl;//输出一个回车if ((c=='Y')||(c=='y')) cout<<"现在正在下雨"<<endl; if ((c=='N')||(c=='n')) cout<<"现在没有下雨"<<endl; cout<<"========================="<<endl; }while ((c!='Y')&&(c!='y')&&(c!='N')&&(c!='n')); /*当bool表达式(c!='Y')&&(c!='y')&&(c!='N')&&(c!='n')为false时循环结束即,当(c!='Y')&&(c!='y')&&(c!='N')&&(c!='n')为true时意为c不等于Y且不等于y且不等于N且不等于n成立*/ system("pause");//暂停指令return 0; } //2-27 #include<iostream> using namespace std; int main() { int num,key=0; //定义两个整型变量num与key,其中key为循环结束标志,初始值为0 do { key=0; cout<<"你考了多少分?: "; cin>>num; cout<<endl; if ((num>=0)&&(num<60)) cout<<"差"<<endl; else if ((num>=60)&&(num<80)) cout<<"中"<<endl; else if ((num>=80)&&(num<90)) cout<<"良"<<endl; else if ((num>=90)&&(num<=100)) cout<<"优"<<endl; else key=1; if (key==1) cout<<"你输入的数据违法,请重新输入!"<<endl; cout<<"================================"<<endl; }while(key==1); //当key的值为1时循环继续,否则结束system("pause");//暂停指令return 0; } //2-28 #include<iostream> using namespace std; int main() { char c;//设置一个字符型变量c cout<<"Menu: A(dd) D(elete) S(ort) Q(uit),Select one: "; do { cin>>c; cout<<endl; switch (c) { case 'A': cout<<"The date have been add"<<endl; break;//从switch语句中跳出不再比较剩下的可能case 'D': cout<<"The date have been delete"<<endl; break; case 'S': cout<<"The date have been sort"<<endl; break; case 'Q': cout<<"Thank you for using this software!"<<endl; break; } cout<<"===================================================="<<endl; if ((c!='Q')&&((c=='A')||(c=='D')||(c=='S'))) //if语句的判断表达式可以是十分复杂的逻辑表达式cout<<"Please input your order: "; else if ((c!='A')&&(c!='D')&&(c!='S')&&(c!='Q')) cout<<"Your order is unlawful!Please input it again: "; }while(c!='Q'); return 0; } //2-29 #include<iostream> #include<cmath>//导入数学库,可以使用如开方函数sqrt之类的数学函数using namespace std; int main() { int i,j,k; cout<<'2'<<endl;//独立考虑2 for (i=3;i<=100;i++)//从3到100循环{ k=0; for (j=2;j<=static_cast<int>(sqrt(i));j++) //从2到取过整的i的开平方值循环if (i%j==0) //判断i是否可被j整除{ k=1;//k为判断标志变量,当i可被j整除,即j 是i的一个因数时,k赋1 break;//一旦出现i被j整除的情况从循环中跳出} if (k==0) cout<<i<<endl; } system("pause"); return 0; } //2-34 #include<iostream> using namespace std; int num(int x) { int i,j; j=1; for (i=1;i<=x;i++) j*=i; return j; } int main() { int n; int red,yellow,blue,white,black; cout<<"Please input the number of the balls"<<endl; cout<<"red,yellow,blue,white,black : "<<endl; cout<<"======================================"<<endl;cin>>red>>yellow>>blue>>white>>black;cout<<"======================================"<<endl;n=num(5)/num(3)/num(2)*red*yellow*blue*white*black; cout<<"There are "<<n<<" methods to get three kinds of the balls"<<endl; system("pause"); return 0; } //2-35 #include<iostream> #include<iomanip> //I/O函数库的头文件,可使用setw。
//注意:教材上打错了是iomanip不是iomainp !!!using namespace std; int main() { int i,j; for (i=1;i<=9;i++) { for (j=i;j<=9;j++) { cout<<i<<'*'<<j<<'='; cout<<setw(2)<<i*j; cout<<' '; } cout<<endl; } system("pause"); return 0; } //3-9 #include<iostream> #include<cmath> using namespace std; bool zhishu(int n) { int i=2;bool t=true; while ( (n%i!=0)&&( i<(static_cast<int>( sqrt(n) ) ) ) ) { i++; } if (n%i==0) t=false; return t; } int main() { int n; cin>>n; if (n==1) cout <<"不是质数"; else if (n==2) cout<<"是质数"; else if (zhishu(n)==true) cout<<"是质数"; else cout<<"不是质数"; system("pause"); return 0; } //3-15 #include<iostream> using namespace std; int x; int p(int n) { if (n==0) return 1; else if (n==1) return x; else return (((2*n-1)*x*p(n-1)-(n-1)*p(n-2))/n); } int main() { int n; cout<<"Please input the date of 'n' and 'x' :"<<endl; cin>>n; cin>>x; cout<<p(n); system("pause"); return 0; } //4-9 #include<iostream> #include<cmath> using namespace std; class Rectangle { public: int getArea(); Rectangle(int a=0,int b=0,int c=0,int d=0) { x1=a; y1=b; x2=c; y2=d; } private: int x1,y1,x2,y2; }; int Rectangle::getArea() { return (x2-x1)*(y2-y1); } int main() { int a,b,c,d; cout<<"Please input the first point :"<<endl; cin>>a; cin>>b; cout<<"Please input the second point :"<<endl; cin>>c; cin>>d; Rectangle s(a,b,c,d); cout<<abs(s.getArea()); system("pause"); return 0; } //4-13 #include<iostream> using namespace std; class Circle { public: double getArea(); Circle(double r=0){radius=r;} private: double radius; }; double Circle::getArea() { return 3.14159265*radius*radius; } int main() { int r; cin>>r; cout<<endl; Circle cir(r); cout<<cir.getArea(); system("pause"); return 0; } //4-20 #include<iostream> using namespace std; class Complex { public: Complex(double x,double y) { a=x; b=y; } Complex(double x) { a=x; b=0; } void add(Complex t) { a+=t.a; b+=t.b; } void show() { cout<<a<<'+'<<b<<'i'<<endl; } private: double a,b; }; int main() { Complex c1(3,5); Complex c2=4.5; c1.add(c2); c1.show(); system("pause"); return 0; } //5-16 #include<iostream> using namespace std; class X; class Y { public: void g(X &x); }; class X { public: X(int j=0):i(j){} friend void Y::g(X &x); friend class Z; friend void h(X &x); void show(){cout<<i<<endl;} private: int i; }; void Y::g(X &x){x.i++;} void h(X &x){ x.i+=10; } class Z{ public: void f(X &x) {x.i+=5;} }; int main() { X x; x.show(); Y y; y.g(x); x.show(); Z z; z.f(x); x.show(); h(x); x.show(); system("pause"); return 0; }。