Bootstrap

【C语言基础习题】C语言练习题——bite 寒假班作业(4)

C语言练习题——bite 寒假班作业(4)

题目

  1. 第 1 题(单选题)
    题目名称:
    下面代码执行的结果是:( )

#include <stdio.h>

int main()
{
int i = 0;
for (i = 0; i<10; i++)
{
if (i = 5)
printf("%d ", i);
}
return 0;
}
题目内容:
A .1 2 3 4 5 6 7 8 9 10
B .5 5 5 5 5 5 5 5 5 5
C .死循环的打印5
D .0 1 2 3 4 5 6 7 8 9

= 赋值符号
== 等于

  1. 第 2 题(编程题)
    题目名称:
    打印3的倍数的数
    题目内容:
    写一个代码打印1-100之间所有3的倍数的数字
#include <stdio.h>

int main(){
	int count=0;
	//打印1-100之间所有3的倍数的数字
	for (int i = 1; i <=100; i++ ){
		if (i %3 == 0) {
			printf("%d ");
			count++;
		}
		if (count % 6 == 0){
			printf("%d ");
		}
	}
	return 0;
}
  1. 第 3 题(编程题)
    题目名称:
    从大到小输出
    题目内容
    写代码将三个整数数按从大到小输出。

例如:

输入:2 3 1

输出:3 2 1

#include <stdio.h>

int main(){
	
	int a, b, c,tmp;
	scanf("%d%d%d",&a, &b, &c);

	 // max = a > b ? a, a = b : b, b = a ;

	//  方法一  简单的交换
	 if (a < b) {
	 	tmp = a;
	 	a = b;
	 	b = tmp; 
	} 
	if (a < c) {
	 	tmp = a;
	 	a = c;
	 	c = tmp; 
	}  
	if (b < c) {
	 	tmp = b;
	 	b = c;
	 	c = tmp; 
	} 
	// a>b>c
	 
	 printf("%d%d%d\n",a, b, c);
		

	return 0;
}

  1. 第 4 题(单选题)
    题目名称:
    关于if语句说法正确是:(C )

题目内容:
A .if语句后面只能跟一条语句
B .if语句中0表示假,1表示真 (0为假 其他为真?)
C .if语句是一种分支语句,可以实现单分支,也可以实现多分支
D .else语句总是和它的对齐的if语句匹配(就近原则)

  1. 第 5 题(单选题)
    题目名称:
    关于关系操作符说法错误的是?

题目内容:
A .C语言的关系操作符就是用来比较大小关系的
B .关系操作符中判断是否相等使用==
C .==操作符可以用来比较2个字符串是否相等

字符串的比较有专门的函数用于字符串的比较
strcmp()

D .关系操作符参与的关系表达式,通常返回0或1,表示真假

字符串比较大小【字符串比较方法】
strcpm() 函数
使用**标准库函数strcmp()**来比较两个字符串的大小。
这个函数比较两个字符串的大小,并根据它们的字典顺序返回一个整数值。
法1:使用strcmp()函数

#include <stdio.h>
#include <string.h>   
int main() {
    char str1[] = "Hello";
    char str2[] = "World";
 
    if (strcmp(str1, str2) > 0) {
        printf("%s is greater than %s\n", str1, str2);
    } else if (strcmp(str1, str2) < 0) {
        printf("%s is less than %s\n", str1, str2);
    } else {
        printf("%s is equal to %s\n", str1, str2);
    }
 
    return 0; }

法2:使用指针遍历字符串中的每个字符进行比较

#include <stdio.h>
  int compare_strings(const char *str1, const char *str2) {
    for (; *str1 == *str2; str1++, str2++) {
        if (*str1 == '\0')
            return 0;
    }
 
    return *str1 - *str2; }   int main() {
    char str1[] = "Hello";
    char str2[] = "World";
 
    int result = compare_strings(str1, str2);
 
    if (result > 0) {
        printf("%s is greater than %s\n", str1, str2);
    } else if (result < 0) {
        printf("%s is less than %s\n", str1, str2);
    } else {
        printf("%s is equal to %s\n", str1, str2);
    }
 
    return 0; }

应确保字符串是以空字符结尾的。

  1. 第 6 题(单选题)
    题目名称:
    关于逻辑操作符说法错误的是?

题目内容:
A .&& 表示 并且
B .|| 表示或者
C .|| 操作符的两个操作数只要有一个是假,则表达式结果为 假
D .&& 短路的时候,&&的左边操作数为假,右边不再计算

|| 或运算 有真则真

第 7 题(单选题)
题目名称:
关于switch说法不正确的是:( )

题目内容:
A .switch语句中的default子句可以放在任意位置
B .switch语句中case后的表达式只能是整形常量表达式
C .switch语句中case子句必须在default子句之前
D .switch语句中case表达式不要求顺序

C switch语句中case子句必须在default子句之前

  1. 第 8 题(单选题)
    题目名称:
    int func(int a)
    {
    int b;
    switch (a)
    {
    case 1: b = 30;
    case 2: b = 20;
    case 3: b = 16;
    default: b = 0;
    }
    return b;
    }
    则func(1) = ( )

题目内容:
A .30
B .20
C .16
D .0

switch()

  1. 第 9 题(单选题)
    题目名称:
    switch©语句中,c不可以是什么类型( )

题目内容:
A .int
B .long
C .char
D .float

ffloat double 都不可以

  1. 第 10 题(单选题)
    题目名称:
    下面代码的执行结果是什么( )

#include <stdio.h>
int main() {
int x = 3;
int y = 3;
switch (x % 2) { // 1
case 1:
switch (y) //3
{
case 0:
printf(“first”);
case 1:
printf(“second”);
break;
default: printf(“hello”); // 3
}
case 2:
printf(“third”);
}
return 0;
}

default: printf(“hello”); // 3
printf(“third”);

题目内容:
A .secondthird
B .hello
C .firstsecond
D .hellothird

注意 break的使用,有无break

第 11 题(编程题)
题目名称:
BC51-三角形判断
题目内容:
BC51-三角形判断
三角形判断
点击题目链接,做题

// 0. 条件: 任意两条便之和(都会)大于第三边。
// 1. 等腰三角形: a=b || a = c || b = c 【还可以 a=b && b != c || a = c && c != b || b = c && c != a】

// 2. 等边三角形(a=b=c ) :a = b && b = c 【&& a = c】

#include <stdio.h>

int main() {
    int a, b,c;
    // printf("please enter a,b,c u want:");
    while (scanf("%d %d %d", &a, &b,&c) != EOF) { // 注意 while 处理多个 case
       // 两边之和大于第三边
      
       if (a + b > c  && a + c > b && b + c > a) {
        // if (a + b > c  || a + c > b || b + c > a) {
            if (a == b && a== c) {
                printf("Equilateral triangle!\n");
            } else if (a == b || a == c || b == c) {
                printf("Isosceles triangle!\n");
            } else {
                printf("Ordinary triangle!\n");
            }
       } else {
            printf("Not a triangle!\n");
       }
        // printf("%d\n", a + b);
    }
    return 0;
}

提交牛客网提交代码截图和提交通过的2张截图

  1. 第 12 题(编程题)
    题目名称:
    数9的个数
    题目内容:
    编写程序数一下 1到 100 的所有整数中出现多少个数字9

【分析】


	
	#include <stdio.h>
/**
 *   在1-100的所有整数中有多少个数字含有9
 *   【分析 】
 *      9可以出现在 个位数  以及  十位数 上
 *      出现在 个位数  19 取它的余数,余数为9 可以说明个位数含有9  19 % 10 = 9 
 *      十位数  除以10得出的商中含有9 可以判断十位数是9  90 / 10 = 9
 * @return
 */
int main() {
    int count = 0, i;
    for (i = 1; i <= 100; i++) {
        if (i % 10 == 9) {
            count++;
        }
        if (i / 10 == 9) {
            count++;
        }
    }

    printf("Hello, World!  total number : %d\n", count);
    return 0;
}

	
;