首页 > 其他分享 >【C语言基础习题】C语言练习题——bite 寒假班作业(4)

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

时间:2024-07-23 21:58:47浏览次数:17  
标签:练习题 题目 int str2 str1 C语言 printf return 习题

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;
}

	

标签:练习题,题目,int,str2,str1,C语言,printf,return,习题
From: https://blog.csdn.net/weixin_52372189/article/details/140252075

相关文章

  • 学习C语言第十一天(操作符)
    1.算术操作符/    整型的除法    1/2--->0        出不开得到商    浮点型除法    1.0/2--->0.5    保证至少有一个小数  %    计算整除之后的余数     %操作符两端必须是整数   *若要......
  • 学习C语言第十天(数组练习)
    一、三子棋game.h#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<time.h>#include<stdlib.h>#defineROW3#defineCOL3//初始化棋盘voidinitboard(charboard[ROW][COL],introw,intcol);//打印棋盘voiddispalyboard(charboard[ROW][CO......
  • 用C语言打印杨辉三角形:**
    用C语言打印杨辉三角形:1.杨辉三角形规律:1.每行数字左右对称,由1开始逐渐变大,然后变小,回到1。2.第n行的数字个数等于n,第n行的第一个和最后一个数字都是1。3.对于第i行,除首尾两个1之外,任意位置的数等于它肩上的两个数之和。即第i行第j个数等于第i-1行第j-1个数与第i-1行第......
  • C语言输入输出函数
    输入函数1.scanf函数:用于格式化输入。例如:scanf("%d",&num);用于读取一个整数并存储到变量num中。输出函数:   1.printf函数:    用于格式化输出。例如:printf("Thenumberis%d\n",num);会输出指定的字符串和变量num     的值。   ......
  • C语言100道基础拔高题(1)
    1.有1,2,3,4这几个数字,问能组成多少个互不相同且无重复数字的三位数?    解题思路:首先输出由这几个数字所组成的所有三位数,接着再设置条件,使其输出的三位数不重复,下面我们来看下源代码。值得注意的是:所以题目的代码都是作者自行编写,如有更好的思路或者代码的优化,还请......
  • C语言100道基础拔高题(2)
    1.求两个数的最小公倍数和最大公约数        解题思路:求最小公倍数可以通过两个数的积再除以最大公约数来计算。而最大公约数则可以通过辗转相除法(又名欧几里得算法)来得到。源代码如下:#include<stdio.h>intmain(){ //程序分析:最小公倍数=两个数的积除以......
  • C语言100基础拔高题(3)
    1.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。                 解题思路:通过反复调用一个打印最后一个元素的函数,来实现此功能。源代码如下:#include<stdio.h>voidoposize(charstr[],intlen);intmain(){ //利用......
  • C语言程序设计第三讲:选择结构程序设计
    1.选择结构概述定义与重要性:选择结构使得程序可以根据不同的条件执行不同的代码段。2.if语句详解基本形式:if(表达式)语句;:当表达式为真时执行语句。基本形式示例:inta=10;if(a>5){printf("aisgreaterthan5\n");}扩展形式:if(表......
  • 【时时三省】(C语言基础)操作符
    山不在高,有仙则名。水不在深,有龙则灵。              ——csdn时时三省操作符~按(二进制)位取法把所有二进制位中数字,1变成0,0变成1比如把0按位取法a=0二进制:00000000000000000000000000000000把0变成111111111111111111111111111111111~a(补......
  • C语言 结构体——《跟老吕学C》
    C语言结构体——《跟老吕学C》C语言结构体一、C语言结构体的基本概念二、C语言结构体的定义与初始化1.结构体的定义2.结构体的初始化3.结构体的初始化(指定成员)4.结构体数组的初始化5.结构体指针的初始化6.注意事项三、C语言结构体的使用1.访问结构体的成员2.......