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

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

时间:2024-03-31 11:33:19浏览次数:21  
标签:练习题 语句 查看 思考题 int while 结构化程序 printf ___

一、单项选择题

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. A (P106)

2. D (P100)

3. C(代码查看)

4. D (P111,P125)

5. A (P132)

6. A (P128)

7. C(代码查看)

8. C(代码查看)

9. B (P126)

10. C (P114)

11. C(代码查看)

二、填空题

1. 分号 (P96)

2. 单精度实,双精度实,单精度实,双精度实 (P108,P100)

3. c , s (P100,P106)

4. 3.1416(代码查看)

5. if   is-else      if-else-if      switch

6. 当型,直到型,次数型 (P124)

7. break强制结束当前循环,不再执行循环体中break语句后面的语句。continue立即结束本次循环,转去判断循环控制条件是否成立。(P131,P132)

8.while先判断后执行;do-while先执行后判断(P124,P126)

9. 5(代码查看

10. 3(代码查看)

三、程序分析题

1. 代码查看

2. 代码查看

3. 代码查看

4. 代码查看

5. 代码查看

6. 代码查看

四、程序填空题

1. 代码查看

2. 代码查看

3. 代码查看

4. 代码查看

5. 代码查看

6. 代码查看

五、程序设计题

1. 代码查看

2. 代码查看

3. 代码查看

4. 代码查看

5. 代码查看

6. 代码查看

标签:练习题,语句,查看,思考题,int,while,结构化程序,printf,___
From: https://blog.csdn.net/LULU_lulu666/article/details/137124269

相关文章

  • 8.C语言的一些练习题坑整理
    总结没有顺序之分想起一个算一个逗号表达式https://blog.csdn.net/qq_43539854/article/details/105757536(参考)设f是实型变量,下列表达式中不是逗号表达式的是_________A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)逗号表达式即执行第......
  • C语言经典练习题
    题目       学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。编程解析: 思路1:条件运算符:运用实例a>b?a:b 思路2:ifelse结构的运用 思路3:switchcase结构的运用//思路1:#include<stdio.h>intmain(intargc,charconst*argv[]){i......
  • 学点儿数据库_Day12_数据库SQL练习题
    0版本与工具mysql-8.0.31NavicatPremium16每做一题,选中相应代码运行即可,很方便1建表createtablegoods(goods_idmediumint(8)unsignedprimarykeyauto_increment,goods_namevarchar(120)notnulldefault'',cat_idsmallint(5)unsignednotnu......
  • 选择排序的练习题及答案(共三种方式实现选择排序)
    习题1班级里五个人成绩比较升序排列,成绩分别为64,75,88,92,21packagexuanze;importjava.util.*;publicclasschapter1{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Scannerscan=newScanner(System.in); intn=scan.nextInt......
  • 30道Python基础练习题
    大家好,我是程序媛学姐,今天为大家梳理了30道Python基础练习题,方便大家学习参考。1.编写一个程序,输出"Hello,World!"这个程序的目标是简单地输出一条消息,即"Hello,World!"。在Python中,可以使用print语句来实现这个功能。示例代码:#输出"Hello,World!"print("Hello,......
  • 蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)
    目录 一、摆花思路一: 确定状态:初始化:思路二:确定状态:初始化:循环遍历: 状态转移方程: 二、数字三角形加强版一、摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了......
  • 蓝桥杯练习题——博弈论
    1.必胜态后继至少存在一个必败态2.必败态后继均为必胜态Nim游戏思路23,先手必赢,先拿1,然后变成22,不管后手怎么拿,先手同样操作,后手一定先遇到00a1^a2^a3…^an=0,先手必败,否则先手必胜#include<iostream>usingnamespacestd;constintN=1e5+1......
  • 第九章总练习题
    赫尔曼·阿曼杜斯·施瓦茨大学初期攻读化学,在魏尔斯特拉斯等人的建议下改攻读数学。施瓦茨在哈雷、哥廷根和柏林工作,范围涉及函数论、微分几何和变分学。以他为名的有柯西-施瓦茨不等式、施瓦茨导数、施瓦茨-克里斯托费尔映射、施瓦茨反射原理和施瓦茨引理。 施瓦茨,即德国数学......
  • Scala函数练习题
    1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作比如:Array(“hh”,“red”,“java”,“hadoop”)规则:对集合中每个元素进行操作,得到集合每个元素的长度objecttest{defmain(args:Array[String]):Unit={vallist=Array("hh","red","ja......
  • Scala练习题
    1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作比如:Array(“hh”,“red”,“java”,“hadoop”)规则:对集合中每个元素进行操作,得到集合每个元素的长度packageljobjectaaa{defmain(args:Array[String]):Unit={vallist=Array("......