00342第四章 结构化程序设计 思考题和练习题(C语言)

本文主要是介绍00342第四章 结构化程序设计 思考题和练习题(C语言),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、单项选择题

1. 若从键盘输入字符串"HOW ARE YOU?",可以直接使用库函数【】。

        A. scanf        B. getstr        C. gets        D. 都不能直接使用

2. C语言的库函数中,可以输出double型变量值的是【】。

        A. getchar        B. scanf        C. putchar        D. printf

3. 设 int a; ,语句 for(a=0;a==0;a++); 和语句 for(a=0;a=0;a++); 执行的循环次数分别是【】。

        A. 0,0        B. 0,1        C. 1,0        D. 1,1

4. if(表达式) 和 while(表达式)中的“表达式”是【】。

        A. 只能是逻辑的        B. 只能是关系的       

        C. 只能是算术的        D. 以上三种都可以

5. continue 语句不能用于的语句是【】。

        A. switch        B. for        C. do-while        D. while

6. 下列关于 for 语句说法不正确的是【】。

        A. 可以省略“表达式1”和“表达式3”,而只有“表达式2”不能省略        

        B. 可以省略全部的3个表达式       

        C. 若“表达式2”省略,则循环将会无终止地进行        

        D. 全部的3个表达式必须是与循环控制变量有关的表达式

7. 以下程序段中执行循环的次数是【】。

x=-2;
do
{ x=x*x; }
while(!x);

        A. 无限次        B. 4        C. 1        D. 0

8. 设 char x,y;  ,scanf("x=%c,y=%c",x,y); 后使 x 为 'X', y为 'Y',则键盘上的正确输入是【】。

        A. x='X'y='Y'        B. x='X',y='Y'        C. x=X,y=Y        D. x=X y=Y

9. 下列关于do-while 循环的说法不正确的是【】。

        A. do-while 的循环体至少执行一次        

        B. do-while循环由 do 开始,用 while 结束,在 while(表达式)后面不能加分号        

        C. 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(假)的操作        

        D. do-while 的循环体可以是复合语句

10. 为了避免二义性,C语言规定 else 子句总是与【】匹配。

        A. 同一行上的if        B. 缩进位置相同的if        

        C. 其之前最近的if        D. 其之后最近的if

11. 语句 while(!a); 中的表达式 !a 可以替换为【】。

        A. a!=1        B. a!=0        C. a==0        D. a==1

二、填空题

1. C语言中,语句的最后一定要有的一个符号是___。

2. 格式输入函数中,“%f”用于输入___型的数据,“%lf”用于输入___型的数据;格式输出函数中,“%f”用于输出___型和___型的数据。

3. 格式输入/输出函数中,用于输入/输出单个字符的格式字符是___,用于输入/输出字符串的格式字符的格式字符是___。

4. 设 double a=3.1415926; ,则执行语句printf("%.4f\n",a); 后的输出结果是___。

5. C语言中,实现单分支选择结构的是___语句,实现双分支选择结构的是___语句,实现多分支选择结构的是___语句或___语句。

6. 循环结构通常分为___循环结构、___循环结构和___循环结构三种。

7. C语言中,break 语句的功能是___,continue 语句的功能是___。

8. while 和 do-while 循环的主要区别是___。

9.设 int i; ,则执行语句 for(i=0;i++<4;);  后变量 i 的值是___。

10. 设 int x,y; ,则执行以下 for 循环中的 scanf 语句最多可执行的次数是___。

for(x=0,y=0;y!=123&&x<3;x++)  scanf("%d",&y)

三、程序分析题

1. 阅读下列程序,写出程序运行的输出结果。

#include <stdio.h>
int main(void)
{int x=8;do{printf("*");x--;x--;}while(x==0);return 0;
}

2. 阅读下列程序,写出程序运行的输出结果。

#include <stdio.h>
int main(void)
{int s=0, i;for(i=1;;i++){if(s>50) break;if(i%2==0) s+=i;}printf("i=%d,s=%d\n",i,s);return 0;
}

3. 阅读下列程序,写出程序运行的输出结果。

#include <stdio.h>
int main(void)
{int a=3, b=2, c=1, d;switch(a=b==c+1){case 1:d=1;break;case 2:d=2;break;case 3:d=3;break;default:d=4;}printf("d=%d\n",d);return 0;
}

4. 阅读下列程序,写出程序运行的输出结果。

#include <stdio.h>
int main(void)
{int x=3, y=16;while(y-->0){y-=x;x++;}printf("x=%d,y=%d\n",x,y);return 0;
}

5. 阅读下列程序,写出程序运行的输出结果。

#include <stdio.h>
int main(void)
{int i=1,s=3;do{s+=i++;if(s%7==0) continue;else ++i;}while(s<15);printf("%d",i);return 0;
}

6. 阅读下列程序,写出程序运行的输出结果。

#include <stdio.h>
int main(void)
{int x,y=4;for(x=1;x<=100;x++){if(y>=30) break;if(y%3==1){y=y+3;continue;}y=y-2;}printf("%d\n",x);return 0;
}

四、程序填充题

1. 判断输入的整数能否被11和13同时整除,若能则输出“yes”,否则输出“no”。

#include<stdio.h>
int main(void)
{int num;scanf("%d",&num);if(_______)printf("yes\n");__________printf("no\n");return 0;
}

2. 从键盘输入年份,判断其是否是闰年。

#include<stdio.h>
int main(void)
{int year, yes=0;scanf("%d",&year);if(year%400==0) yes=1;else    if(____________)  yes=1;else __________;if(yes)    printf("%d is ",year);else    printf("%d is not ",year);printf(" a leap year.\n");return 0;
}

3. 统计输入字符串中字母的个数。

#include<stdio.h>
int main(void)
{int count=0;char ch;while((ch=getchar())!=_______){if(__________)count++;}printf("%d\n",count);return 0;
}

4. 输入圆的半径 r 和运算标志 m ,按照运算标志进行指定的计算。

运算标志 m运算
a面积
b周长
c二者均计算
#include<stdio.h>
int main(void)
{char m;float r,c,a,pi=3.14159;printf("input mark a,c or b and r: ");scanf("%c %f",&m,&r);if(_________) { a=pi*r*r;    printf("area is %f",a); }if(_________) { c=2*pi*r;    printf("circle is %f",c); }if(_________) { a=pi*r*r; c=2*pi*r;   printf("area and circle are %f%f",a,c); }return 0;
}

5. 从键盘输入一串英文字母(以换行符为结束标志),分别统计其中个元音字母(不区分大小写)出现的次数并输出(元音字母包括a、A、e、E、i、I、o、O、u、U)。

#include<stdio.h>
int main(void)
{int a=0, e=0, i=0, o=0, u=0;char ch;while((ch=getchar())!='\n')switch(_______){case 'a':case 'A':a++; _______;case 'e':case 'E':e++; break;case 'i':case 'I':i++; break;case 'o':case 'O':o++; break;case 'u':case 'U':u++;}printf("(a,A)=%d,(e,E)=%d,(i,I)=%d,(o,O)=%d,(u,U)=%d",a,e,i,o,u);return 0;
}

6. 求1000以内的所有完全数(一个数如果恰好等于除自身外其他因子之和,则称该数为完全数,例如6=1+2+3,6为完全数)。

#include<stdio.h>
int main(void)
{int a,i,m;for(a=1;a<=1000;a++){m=0;for(_____;i<=a/2;i++)if(!(a%i))____________;if(m==a)    printf("%4d",a);}return 0;
}

五、程序设计题

1. 编写程序,输出以下图形(要求使用循环结构)

&&&&&&&&&

  &&&&&&&

    &&&&&

      &&&

        &

2. 从键盘输入三个整数,分别代表年、月和日,输出这一天是该年的第几天。

3. 从键盘任意输入三条边 a 、b 和 c (均为整型)的值,若能构成三角形则计算并输出其面积 s;否则,输出“NO”。面积 s 的计算公式如下:

                       ​​​​​​​        \left\{\begin{matrix}t=\frac{a+b+c}{2} \\ s=\sqrt{t(t-a)(t-b)(t-c)} \end{matrix}\right.

4. 若袋中有2044个小球,第一次取出一半多两个,以后每次取出剩下的一半多两个,问几次取完。

5. 水仙花数是一指一个 n 位的正整数(n\geqslant 3),其各位上的数字的 n 次幂之和等于它本身, 如371=3^{3}+7^{3}+1^{3}。求出100~999所有的水仙花数并输出。

6. 利用公式计算e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+...的值,直到公式中最后一项的值小于10^{-6}为止。

答案:(未完)

一、单项选择题

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

二、填空题

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

三、程序分析题

1.

2.

3.

4.

5.

6.

四、程序填空题

1.

2.

3.

4.

5.

6.

五、程序设计题

1.

2.

3.

4.

5.

6.

这篇关于00342第四章 结构化程序设计 思考题和练习题(C语言)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/857739

相关文章

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本