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

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

dp算法练习题【8】

不同二叉搜索树 96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3输出:5 示例 2: 输入:n = 1输出:1 class Solution {public int numTrees(int n) {int[] dp = new int

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,