9.3 C语言输入输出流程控制语句练习

1.下面的一段程序的输出结果为( ) (鲁科安全)

#include <stdio.h>

int main()

{

    if(-1)

        printf("1");

    else

        printf("2");

    if(0)

        printf("3");

    else

        printf("4");

    return 0;

}

A. 23 B. 24 C. 13 D. 14

答案:D

2.( )设int s = 100,要输出字符串"s的值是100"应使用下列哪个语句?(山东精电电气)

A. printf("s 的值是%d", s);            B. printf("s 的值是%s", s)

C. printf("s 的值是%x", s):            D. printf("s 的值是%i", s)

答案:A

解析:B选项缺少语句结束的“;”,C选项输出语句内为“%x”输出的是十六进制的100不符合题意。D项缺少语句结束的“;”

3.if(n==8)和if(8== n)两种判断方式,哪一种更好,为什么?(泰华智)

答:if(8== n)会更好,因为数字在前时,如果判断符“==”不小心输入为“=”时,程序编译会报错。而if(n==8)输入错误时不会报错。

4.if-elseif-else结构和switch-case结构,哪个效率高,为什么?(泰华智慧)

答:switch-case结构,哪个效率高。if-elseif-else结构需要多次判断,影响效率。switch-case结构只需要一次判断。

5.结构化程序设计所规定的三种基本控制结构是:( ) (易购软件)

A. 输入、处理、输出 B. 形、网形、环形

C. 顺序、选择、循环 D. 主程序、子程序、函数

答案:C

6.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符:__________ (智洋)

A. 必须为字母                       B. 必须为下划线

C. 必须为字母或下划线      D. 可以是字母,数字和下划线中任一字符

答案:C

7.C语言中,若执行下面的程序时,从键盘上输入 5,则输出是 ( ) (智洋创新)

int main(int argc, char **argv)

{

    int x;

    scanf("%d", &x);

    if(x++ > 5)       

        printf("%d\n", x);

    else

        printf("%d\n", x--);

    return 0;

}

A. 7                  B. 4                  C. 6                  D. 5

答案:C     x++是先进行运算判断后再进行自加操作,判断后自加1。x-- 是先赋值后减少的操作,所以 x 的值先被赋为 6 ,然后减少 1 变为 5 。但是,由于 printf 是在 x++ 之后执行的,所以实际上打印的是 x 在增加 1 之后的值,即 6 。因此,当输入为 5 时,程序的输出是 6 。这与选项C相匹配。

8.以下语句中,能够判断uiNum(unsigned int)可以被16整除的有()(H3C)

A. if (((uiNum / 16) * 16) == uiNum)

B. if ((uiNum % 16) == 0)

C. if ((uiNum & 0x0F) == 0)

D. if (((uiNum >> 4) << 4) == uiNum)

答案:B 

9.编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32) (中科四平)

10.已知学生成绩(100分为满分)与等级的对应关系为: (中科四平)

成绩(grade)

等级

90<=grade<=100

A

80<=grade<90

B

70<=grade<80

C

60<=grade<70

D

grade<60

E

请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch....case 语句)

11.编写一个程序。a=3,b=5,对a和b的值进行交换。 (北京君正集成电路)

解析:①t=a , a=b , b=t;

②a=a+b; b=a-b; a=a-b;

12.编写一个程序。实现输入一个三位数,判断是否是水仙花数。

解析:水仙花数——各个位立方之和等于本身。

eg: 1*1*1 + 5*5*5 + 3*3*3 = 153,所以153是水仙花数

153由1个100  5个10   3个1

个位 = num%10

十位 = num/10%10

百位 = num/100%10

13.编写一个程序。实现输入一个年份,判断是不是闰年。

解析:

①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)

②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

14.编写一个程序。请实现以下功能:(威海精讯畅通)

输入三个数,分别为年、月、日,输出此日是该年的第几天。

输入:

XXX  XXX  XXX

输出:

此日是该年的第XXX 天

示例:

输入 2020 2 20

程序输出 此日是该年的第51 天

15.编写一个程序。输入三角形的 三个边长,判断能否构成三角形,如果能,输出能构成什么三角形

   解析 : 等边 [a==b && a==c && b==c]

                等腰 [a==b || a==c || b==c]

                直角(勾股定理)[a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a]

                普通

        如果不能

            输出不能构成三角形

16.编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。(山东丁一)

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值