循环程序设计习题及答案
c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
其基本结构包括顺序结构、选择结构和循环结构三种。
2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。
#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。
图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。
高级语言程序设计习题(最新版带答案)

第1章C语言概述习题1.单项选择题(1)C语言是在B语言的基础上产生的。
A.AB.BC.DD.E(2)在C语言中,每个语句必须以D结束。
A.回车符B.冒号C.逗号D.分号(3)标识符和关键字间,要用C隔开。
A.回车符B.冒号C.空格D.分号(4)用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。
A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件(5)下列说法中正确的是(B)。
A.由于C源程序是高级语言程序,因此一定要在TC软件中输入B.由C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C.由于C程序是高级语言程序,因此输入后即可执行D.由于C程序是高级语言程序,因此它由命令组成(6)下列说法中正确的是(A)。
A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成(7)下列说法中错误的是(D)。
A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行2.填空题(1)C语言只有32个关键字和9种控制语句。
(2)C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3)每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4)在C语言程序中允许出现的字符集是ASCII码字符集。
(5)C语言的程序中有特殊含义的英语单词称为保留字。
(6)C语言标识符的长度是前8位有效。
(7)C语言中,标识符的定义规则是以字母或下划线为开头。
(8)C语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以*/符号作为结束标记。
第2章数据类型运算符和表达式习题1.单项选择题(1)以下选项中,正确的C语言整型常量是D。
程序设计基础理论练习题(带答案)

程序设计基础理论练习题(带答案)程序设计基础理论练习题(带答案)1. 编程语言的发展历程从机器语言到高级语言的发展,现代计算机编程语言的分类和特点。
答案:编程语言的发展经历了多个阶段。
最早的计算机只能使用机器语言进行编程,这是一种由0和1组成的二进制代码。
随着计算机的发展,高级语言逐渐出现。
高级语言通过使用更接近自然语言的语法和结构,使得编程更加易于理解和用户友好。
现代计算机编程语言多种多样,比如C、Java、Python等。
它们各自有着不同的特点和用途。
2. 数据类型与变量不同编程语言中常见的数据类型和变量的定义、使用方法。
答案:不同编程语言中常见的数据类型包括整数、浮点数、布尔值、字符和字符串等。
变量用于存储不同类型的数据。
在大部分编程语言中,变量需要先定义,然后才能使用。
定义变量时需要指定变量名和数据类型。
变量名是用于标识变量的名称,而数据类型决定了变量可以存储的值的种类和范围。
使用变量时可以给其赋值或者读取其值。
3. 运算符常见的运算符有哪些?它们的功能和使用方法是什么?答案:常见的运算符包括算术运算符、比较运算符、逻辑运算符和赋值运算符等。
算术运算符包括加、减、乘、除、取余等,用于执行基本的数学运算。
比较运算符用于比较两个值的大小关系,包括等于、大于、小于等。
逻辑运算符用于处理布尔值,比如与、或、非等。
赋值运算符用于将一个值赋给一个变量。
4. 控制流程程序中常见的控制流程结构,包括条件判断和循环结构。
答案:程序中常见的控制流程包括条件判断和循环结构。
条件判断结构用于根据某个条件的真假来决定执行不同的代码段。
常见的条件判断结构有if语句和switch语句。
循环结构用于反复执行某段代码,直到满足某个条件才停止。
常见的循环结构有while循环、do-while循环和for循环。
5. 函数和模块函数和模块的定义和使用方法,函数的参数传递和返回值。
答案:函数是一段封装了特定功能的代码块,可以被反复调用。
c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案1. 基本概念和语法1.1 变量和数据类型题目:请将下列C语言的变量定义语句补充完整,并给出每个变量的数据类型和初始化值。
代码:```c#include <stdio.h>int main() {int a;float b;char c;double d;int x = 5;float y = 3.14;char z = 'A';printf("a的数据类型:%s,a的初始值:%d\n", typeof(a), a);printf("b的数据类型:%s,b的初始值:%f\n", typeof(b), b); printf("c的数据类型:%s,c的初始值:%c\n", typeof(c), c); printf("d的数据类型:%s,d的初始值:%lf\n", typeof(d), d); printf("x的数据类型:%s,x的初始值:%d\n", typeof(x), x); printf("y的数据类型:%s,y的初始值:%f\n", typeof(y), y); printf("z的数据类型:%s,z的初始值:%c\n", typeof(z), z); return 0;}```答案:a的数据类型:int,a的初始值:随机值b的数据类型:float,b的初始值:随机值c的数据类型:char,c的初始值:'\0'd的数据类型:double,d的初始值:随机值x的数据类型:int,x的初始值:5y的数据类型:float,y的初始值:3.140000z的数据类型:char,z的初始值:A1.2 运算符和表达式题目:请在下列C语言程序中补充运算符,使程序达到题目要求。
```c#include <stdio.h>int main() {int a = 5;int b = 3;int c;// 1. 将a和b的和赋值给c,并将c的值输出// 补充代码// 2. 将a和b的差赋值给c,并将c的值输出// 补充代码// 3. 将a和b的积赋值给c,并将c的值输出// 补充代码// 4. 将a除以b的商赋值给c,并将c的值输出// 补充代码// 5. 将a除以b的余数赋值给c,并将c的值输出// 补充代码return 0;}```要求:1. 补充代码,使程序能够正确输出运算结果;2. 使用合适的运算符。
《C语言程序设计》教材习题答案第5章

一、选择题1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行2.设有程序段”int x=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);”则A 运行程序段后输出13.若有语句”int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));”,则该程序段C 输出的是1和-24.下面循环语句中,错误的是D int a=1,b=2;do b--while(b= =0);5.已知”int i=5;”,下列do…while循环语句的循环次数为C 5do{printf(“%d\n”,i--);}while(i!=0);6.循环语句”for(int i=0,j=10;i=j=10;i++,j--)”的循环次数是D 无限7.循环语句”while(int i=0;)i--;”的循环次数是A 08.下述有关break语句的描述中,不正确的是C break语句用于if语句的内嵌语句内,它结束该if语句9.下面关于循环语句的描述中,错误的是B 循环体内必须同时出现break语句和continue语句10.以下不是死循环的是D for(;(c=getchar()!=’\n’);)printf(“%c”,c);11.执行语句”for(i=0;i++<3;);”后,变量i的值为C 412.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C 循环4次13.与语句”while(!x);”等价的语句是A while(x= =0);14.执行下列程序段后a的值为B 2int a=1,b=10;do{b-=a;a++;}while(b--<0)二、编程题1.读入用户输入的6个整数并显示其平均值。
#include<stdio.h>main(){float sum=0;int tmp;int i;for(i=0;i<6;i++){printf("输入第%d个数:",i+1);scanf("%d",&tmp);sum=sum+tmp;}printf("平均值是:%f",sum/6);}2.先读入一个正整数n,然后计算并显示前n个偶数的和。
大学《Python程序设计》试题及答案

大学《Python程序设计》试题及答案大学《Python程序设计》试题及答案一、选择题1、在Python中,以下哪个选项可以正确表示小于等于操作符? A) <=B) <* C) .≤ D) 以上都不是答案:A) <=2、下列哪个模块可用于绘制图形? A) math B) plot C) canvas D) none of the above 答案:C) canvas3、在Python中,如何将字符串转换为整数? A) str() B) int() C) float() D) 以上都不是答案:B) int()4、若要打印出所有的素数,以下哪个循环结构可以实现? A) whileB) for C) do-while D) switch-case 答案:B) for5、以下哪个选项可以用于导入模块? A) import math as m B) include math as m C) #include <math.h> D) #import <math.h> 答案:A) import math as m二、填空题1、Python中的注释符号是_____。
答案:#2、在Python中,所有变量都必须具有_____。
答案:类型(types)3、Python中的逻辑运算符用于执行_____运算。
答案:逻辑(logical)4、以下哪个函数可以用于将字符串转换为浮点数? A) str() B) int() C) float() D) none of the above 答案:C) float()5、以下哪个循环结构可以用于打印出所有的偶数? A) for i in range(0, 10): print(i2) B) for i in range(0, 10): if i % 2 == 0: print(i2) C) for i in range(0, 10): if i % 2 != 0: print(i2) D) none of the above 答案:B) for i in range(0, 10): if i % 2 == 0: print(i2)三、编程题编写一个Python程序,打印出所有的水仙花数(Narcissistic Number)。
(完整版)C语言程序设计练习题(含程序及参考答案)
float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;} if (*p<*q) { k=*p;*p=*q;*q=k;} }
int i,s=0; for (i=2;i<n;i++)
if (n%i==0) s=s+i; return s; }
void main() /*主函数*/ {
void NONO(); printf("%d\n",fun(120)); NONO(); }
void NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
The shortest way to do many things is
10、判断两个整数m和n是否互质(即是否有公共的因子)(m≠1,n≠1)。方 法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能 同时被某个数除尽,则m和n不互质;否则它们互质。
例如,若输入187和85,则应输出No(表示它们不互质,它们有公因子17)。 若输入89和187,则应输出Yes(表示它们互质)。 #include <stdio.h> int IsThat( int m, int n ) {
The shortest way to do many things is
C 语言练习题
(所提供的源程序均采用自定义函数方式解决,如不
采用函数方式,也可直接在 main 函数中借鉴该思想
编程,因时间有限,所有程序未能一一验证,仅供参
C语言程序设计 上机实验指导与习题 参考答案
C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
程序设计习题集(带答案)
一、选择题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 语言程序设计概述一、名词解释(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 CDD3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1<X<5) 6-3X (X ≥5)二、填空题1.字母L 或字母l2.字符或%c 、整数或%d3.在程序运行过程中,其值可以在一定的范围内变化的量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模块三循环程序设计习题及答案
一、填空题
1、当在数据处理中要重复执行相同的操作时,宜采用程序结构来实现。
2、循环的3要素是、、。
3、在循环语句体中包含另一个循环语句的用法称为。
4、执行循环语句体中的break语句后将使用包含它的循环语句。
5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行语句。
6、在for语句中表达式允许省略,但不能少,语句for( ; ;) ;构成的是循环。
7、在for语句中,省略表达式2时,则循环为循环。
8、执行语句for(i=1;i++<4; );后变量i的值是。
9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用语句。
10、在每次循环周期均要执行一次的语句,称为。
11、for语句括号内的3个表达式的作用分别是、和循环控制变量的更新。
二、选择题
1、若k为整形变量,则while循环共循环()。
k=5;
while(k>=0) k-1;
A、无限循环
B、6次
C、5次
D、4次
2、与while( ! n) ; 中表达式!dn等价的是()。
A、dn>=0 B 、dn!=0
C、dn == 0
D、dn != 1
3、以下程序段,while循环执行的次数是()
int k=0;
while( k == 1) k++;
A、无限次
B、有语法错,不能执行
C、一次也不执行
D、执行1次
4、在C语言中,当do while语句中的条件为()时,结束该循环。
A、0
B、1
C、TRUE
D、非0
5、下面程序段的输出结果是()
do
{ b-=a;
a++;
}while(b--<0);
A、10,-1
B、2,8
C、9,0
D、4,-3
6、以下描述正确的是()
A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号
C、在do while循环体中,一定要有能使while后面匠值变为零的操作
D、do while循环中,根据情况可以省略while
7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。
s=c;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是()
A、s=a+b;
B、s=a+c;
C、s=s+c;
D、s=b+c;
8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是()
A、d=a+b;
B、d=a+c;
C、d=a-b;
D、d=a-c
9、下列关于for循环的说法正确的是()
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式2
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
10、下列语句中能跳出循环的是()
A、for(y=0,x=1;x>++y;x=i++) i=x;
B、for( ; ;x++)
C、while(1) {x++; }
D、for(i=10; ;i--) sum+=i;
三、程序填空题
1、等比数列的第一项a=1,公比q=2,下列程序是求满足前n项和小于100的最大n。
main()
{ int a,q,n,sum=0;
a=1;q=2;n=0;
do
{ ;
n++;
a*=q;
}while( );
;
printf(“%d\n”,n);
}
2、计算1-3+5-7+…-99+101的值。
#include"stdio.h"
main()
{
int i;t=1,s=0;
for(i=1;i<=101;i+=2)
{ ;
; }
printf("1-3+5+...-99+101=%d",y);
}
3、输出100以内个位数为6且能被3整除的数。
#include"stdio.h"
main()
{
int i,j;
for(i=0; ;i++)
{ j=i*10+6;
if( )
printf("%d ", );
}
}
四、程序运行结果
1、#include"stdio.h"
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
printf("%d\n",a);
}
程序运行结果:
2、#include"stdio.h"
main()
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
{
case 0:printf("*");break; case 1:printf("#");break; case 2:printf("&");break;
default:printf("\n");
}
}
程序运行结果:
3、#include"stdio.h"
main()
{
int i,x;
for(i=1,x=1;i<=50;i++)
{
if(x>=10) break;
if(x%2==1)
{
x+=5;
continue;
}
x=3;
}
printf("x=%d,i=%d",x,i);
}
程序运行结果:
4、#include"stdio.h"
main()
{
int i , j ;
for(i=4;i>=1;i--)
{
printf("*");
for(j=1;j<=4-i;j++)
printf("*");
printf("\n");
}
}
程序运行结果:
五、编程题
1、用C语言编程实现任意输入一个十进制数,将其转换为二进制数并输出。
2、输入n的值,编程计算并输出 s(n)=1*1+2*2+3*3+……+n*n
模块三循环程序设计答案
一、填空题
1. 循环
2. 循环条件循环体循环控制变量
3. 循环嵌套(嵌套循环)
4. 提前结束包含它的循环语句的执行
5. continue
6. 分号无限
7. 无限
8. 5
9. continue
10. 循环体
11. 循环变量赋初值循环测试条件
二、填空题
1. A
2. C
3. C
4. A
5. B
6. C
7. C
8. D
9. D
10. A
三、程序填空题
1. sum+=a sum<100 n- -
2. s+i*t t=-t
3. i<10 j%3==0 j
四、程序阅读
1. 8
2. $&
*
3. x=3,i=51
4. *
**
***
****
五、编写程序
1.
#include"stdio.h"
main()
{
int s,t=1;
long e=0;
printf("请输入一个十进制数:\n");
scanf("%d",&s);
while(s!=0)
{
e=e+(s%2)*t;
s=s/2;
t=t*10;
}
printf("该数的二进制数为%d\n",e); }
2.
#include"stdio.h"
main()
{
int i,n,s=0;
printf("请输入n的值:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
s+=i*i;
printf("%d",s);
}
Welcome !!! 欢迎您的下载,资料仅供参考!。