c语言输入输出流基本练习

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

#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

解析:if语句中非零就是真

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

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

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

解析:整型的转义标识符:%d,%ld,%u,%i,c语言中每个语句都应该以分号结尾

  1. if(n==8)和if(8== n)两种判断方式,哪一种更好,为什么?(泰华智)
  2. 解析:if(8==n)好,当少输出一个=时,后者编译器会产生报错,前者不会。
  3. if-elseif-else结构和switch-case结构,哪个效率高,为什么?(泰华智慧)
  4. 解析:再多分支语句下,swich-case效率高,因为swich只会判断一次条件
  5. 结构化程序设计所规定的三种基本控制结构是:( ) (易购软   C

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

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

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

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

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

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

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

解析:x++为后置++,先判断后++,所以条件不满足,执行else语句,x--、同上,所以输出六

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

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

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

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

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

  1. 编写一个程序。实现输入一个小写字母,程序输出它对应的大写字母。(提示:小写字母的ASCII码值比大写宇母大32) (中科四平)
  2. #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int main(int argc, const char *argv[])
    { 
    	char a;
    	printf("请输入一个小写字母\n");
    	scanf("%c",&a);
    	if(a>='a'&&a<='z'){        //判断是不是小写字母
    		printf("%c\n",a+32);
    	}else{
    		printf("输入有误,请重新输入\n");
    	}
    	return 0;
    }

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

成绩(grade)

等级

90<=grade<=100

A

80<=grade<90

B

70<=grade<80

C

60<=grade<70

D

grade<60

E

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

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{ 
	int  a;
	printf("请输入成绩\n");
	scanf("%d",&a);
	if(a>=0&&a<=100){
		switch(a/10){        //将成绩转换为单个数字以进行case的条件语句
			case 10: case 9: printf("A级");break;
			case 8:printf("B级");break;
			case 7:printf("C级");break;
			case 6:printf("D级");break;
			default: printf("E级");break;
		}
	}
	return 0;
}

  1. 编写一个程序。a=3,b=5,对a和b的值进行交换。 (北京君正集成电路)
  2. #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int main(int argc, const char *argv[])
    { 
    	int a = 5,b = 9;
    	int t;
    	t = a;
    	a = b;
    	b = t;
    
    
    	a = a + b;
    	b = a - b;
    	a = a - b;
    	return 0;
    }
    

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

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

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

153由1个100  5个10   3个1

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{ 
	int a;
	printf("请输入一个三位数\n");
	scanf("%d",&a);
	if(a>99&&a<1000){
		int g,s,b;
		g = a%10;
		s = a/10%10;
		b = a/100%10;
		if(g*g*g+s*s*s+b*b*b == a){
			printf("%d是水仙花数\n");
		}
	}
	return 0;
}

个位 = num%10

十位 = num/10%10

百位 = num/100%10

  1. 编写一个程序。实现输入一个年份,判断是不是闰年。
  2. #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int main(int argc, const char *argv[])
    { 
    	int a;
    	printf("请输入年份\n");
    	scanf("%d",&a);
    	if((a%4==0&&a%100!=0)||a%400==0){
    		printf("该年份是闰年\n");
    	}else{
    		
    		printf("该年份不是闰年\n");
    	}
    	return 0;
    }
    

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

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

输入:

XXX  XXX  XXX

输出:

此日是该年的第XXX 天

示例:

输入 2020 2 20

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

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{ 
	int year, month,day,num;
	int m1 =31,m3 = 31,m5 = 31,m7 = 31, m8 = 31, m10 = 31, m12 = 31;
	int m4 = 30, m6 = 30,m9 = 30, m11 = 30;
	int m2 = 28;
	printf("请输入年月日\n");
	scanf("%d%d%d",&year,&month,&day);
	if((year%4==0&&year%100!=0)||year%400==0){
		m2 = 29;
	}
	if(month>=1&&month<=12){
		switch(month){
			case 12:num = num+m11;
			case 11:num = num+m10;
			case 10:num = num+m9;
			case 9:num = num+m8;
			case 8:num = num+m7;
			case 7:num = num+m6;
			case 6:num = num+m5;
			case 5:num = num+m4;
			case 4:num = num+m3;
			case 3:num = num+m2;
			case 2:num = num+m1;
			case 1:num = num+day;
		}
		printf("是今年的第%d天\n",num);
	}

	return 0;
}
  1. 编写一个程序。输入三角形的 三个边长

        判断能否构成三角形,如果能

            输出能构成三角形

            再输出是什么三角形

                等边 [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]

                普通

        如果不能

            输出不能构成三角形

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{ 
	int a,b,c;
	printf("请输入三边\n");
	scanf("%d%d%d",&a,&b,&c);
	if((a+b>c||a+c>b||b+c>a){
		if(a == b||b == c||a==c){
			if(a==b&&b==c){
				printf("等边三角形\n");
			}else{printf("等腰三角形\n");}
		}else if(a*a+b*b == c*c||b*b+c*c == a*a||a*a+c*c == b*b){
            printf("直角三角形");
        }else{printf("普通三角形");}
	}else{printf("不是三角形\n");}


	return 0;
}
  1. 编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意。(山东丁一)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{ 
	int a,b, c, d ,t;
	scanf("%d%d%d%d",&a,&b,&c,&d);
	if(a<b)t = a,a = b, b = t;
	if(b<c)t = b,b = c, c = t;
	if(c<d)t = c,c = d, d = t;

	if(a<b)t = a,a = b, b = t;
	if(b<c)t = b,b = c, c = t;

	if(a<b)t = a,a = b, b = t;
	printf("%d%d%d%d",a,b,c,d);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值