【C/PTA】选择结构专项练习(额外)

【PTA选择/基础巩固/期末复习】C语言数组常见错误解析与实战避坑指南 本文详细解析了C语言数组在PTA编程题中的常见错误与避坑指南,包括数组定义初始化、越界访问、内存大小计算等核心问题。通过典型错误案例和正确示范,帮助读者掌握数组操作的关键技巧,提升编程效率和代码质量,特别适合C语言初学者和PTA备考者参考。 阅读详情

本文结合PTA专项练习带领读者掌握选择结构,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。

7-1 选择-孔融让梨

孔融小时候聪明好学,才思敏捷,巧言妙答,大家都夸他是奇童。4岁时,他已能背诵许多诗赋,并且懂得礼节,父母亲非常喜爱他。
一日,父亲买了一些梨子,特地拣了一个最大的梨子给孔融,孔融摇摇头,却另拣了一个最小的梨子说:“我年纪最小,应该吃小的梨,你那个梨就给哥哥吧。”父亲听后十分惊喜。

输入格式:

在一行中给出两个不超过32767的正整数a,b,分别表示孔融父亲拿出的两个梨的质量。

输出格式:

输出孔融选择的梨的质量。

输入样例:

3 4

输出样例:

3
#include <stdio.h>
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	printf("%d",a<b?a:b);
}

7-2 选择-最大数

输入三个整数,输出其中最大的数。

输入格式:

输入三个整数,在 int 范围内。

输出格式:

输出其中最大的数。

输入样例:

23 78 32

输出样例:

78
#include <stdio.h>
int main()
{
	int a,b,c;
  scanf("%d%d%d",&a,&b,&c);
  printf("%d",a>(b>c?b:c)?a:(b>c?b:c));

}

7-3 选择-奇偶判断

给定一个整数,请你判断其奇偶性。如果是奇数输出YES,否则输出NO。

输入格式:

输入仅一行,包含一个整数a。

输出格式:

输出仅一行,为整数a的奇偶判断结果。

输入样例:

9

输出样例:

YES
#include <stdio.h>
int main()
{
	int a;
	scanf("%d",&a);
	if(a%2!=0)
	{
		printf("YES");
	}
	else
	printf("NO");
}

7-4 选择-ASCII值

从键盘输入一个字符,若输入的是数字字符则输出它的ASCII值,否则输出提示信息“input error”。

输入格式:

输入一个字符。

输出格式:

若输入的是数字字符则输出它的ASCII值,否则输出提示信息“input error”,输出不含引号。

输入样例1:

7

输出样例1:

55

输入样例2:

W
#include <stdio.h>
int main()
{
	char c;
	scanf("%c",&c);
	if(c>='0'&&c<='9')
	{
		printf("%d",c);
		
	}
	else
	printf("input error");
}

7-5 选择-闰年

判别用year表示的某一年是否闰年。

输入格式:

输入占一行,给出一个不大于32767的整数year。

输出格式:

输出占一行,如果该年是闰年,则输出YES,否则输出NO。

输入样例:

2021

输出样例:

NO
#include <stdio.h>
int main()
{
int year;
scanf("%d",&year);
if((year%4==0&&year%100!=0)||year%400==0)
{
	printf("YES");
}
else
printf("NO");
}

7-6 选择 -排序

对两个实数按代数值从大到小排序。

输入格式:

一行中给出2个两个实数a,b。

输出格式:

将两个实数按从大到小输出,保留三位小数,两个实数间以空格隔开。

输入样例:

9.9 10.0

输出样例:

10.000 9.900
#include <stdio.h>
int main()
{
double a,b;
scanf("%lf%lf",&a,&b);
printf("%.3f %.3f",a>b?a:b,a<b?a:b);
}

7-7 选择-分段函数1

有一函数:
在这里插入图片描述

输入格式:

每组输入数据占一行,包含一个整数x(-32768<=x<181)。

输出格式:

每组输出数据占一行,输出y的值。

输入样例:

5

输出样例:

15
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x>0)
printf("%d",x*x-10);
else if(x==0)
printf("0");
else 
printf("%d",x+10);
}

7-8 选择-分段函数2

输入一个实数 x,按如下公式计算并输出y的值

在这里插入图片描述

输入格式:

输入一个实数 x

输出格式:

输出计算结果,要求结果保留两位小数。

输入样例1:

0.5

输出样例1:

0.50

输入样例2:

3

输出样例2:

4.58
#include <stdio.h>
#include <math.h>
int main()
{
	double x;
	scanf("%lf",&x);
	if(x<1)
	printf("%.2f",abs(x));
	else if(x==1)
	printf("3.00");
	else
	printf("%.2f",sqrt(x*x*x-2*x));
}

7-9 选择-分段函数3

分数 100

作者 Fzu_C

单位 福州大学

设有函数

在这里插入图片描述

输入格式:

输入一个实数 x(-1000<x<1000)。

输出格式:

输出y的值,结果保留3个小数点。

输入样例:

11

输出样例:

3.091
#include <stdio.h>
#include <math.h>
int main()
{
	double x;
	scanf("%lf",&x);
	if(x<1)
	printf("%.3f",x);
	else if(x<10)
	printf("%.3f",sqrt(2*x-1));
	else 
	printf("%.3f",log(3*x-11));
}

7-10 选择-圆塔

有4个圆塔(圆柱体)。圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。令输入任一点的二维平面坐标,求该点的建筑高度(塔外的高度为0)。

输入格式:

输入一个点的平面坐标 (x, y),-3 <= x, y <= 3。

输出格式:

输出该点的建筑高度。

输入样例1:

2 -1.5

输出样例1:

10

输入样例2:

1 1

输出样例2:

0
#include <stdio.h>
#include <math.h>

int main() {
    double x, y;
    int a = 0;
    scanf("%lf %lf", &x, &y);
    if (pow(x - 2.0, 2) + pow(y - 2.0, 2) <= pow(1, 2)) 
    {
        a = 1;
    } 
    else if (pow(x + 2.0, 2) + pow(y - 2.0, 2) <= pow(1, 2)) 
    {
        a = 1;
    } 
    else if (pow(x + 2.0, 2) + pow(y + 2.0, 2) <= pow(1, 2)) 
    {
        a = 1;
    }
    else if (pow(x - 2.0, 2) + pow(y + 2.0, 2) <= pow(1, 2)) 
    {
        a = 1;
    }
    if (a == 1)
        printf("10");
    else
        printf("0");
}

7-11 选择-买奶茶

yz大佬特别爱喝奶茶,他每天上午都要买两杯奶茶,特别的,如果这天是周六,他会在下午再买两杯,如果这天是周天,他会在下午再买四杯。
已知今天是星期x的早晨(1 <= x <= 7),请问直到明天晚上,yz大佬会买多少杯奶茶呢?

输入格式:

一个正整数x (int范围内),代表今天是星期几。

输出格式:

yz大佬购买的奶茶数量。

输入样例:

1

输出样例:

4
#include <stdio.h>
int main()
{
	int x;
	scanf("%d",&x);
	switch(x)
	{
		case 1:
			printf("4");
			break;
		case 2:
			printf("4");
			break;
		case 3:
			printf("4");
			break;
		case 4:
			printf("4");
	        break;
	    case 5:
			printf("6");
		    break;		
		case 6:
			printf("10");
			break;
		case 7:
			printf("8");
	break;
	}
}

7-12 选择-三角形判别

已知三条边的长度为a,b,c,判断三条边是否能构成一个三角形。

输入格式:

每组输入数据占一行,包括不大于10000的3个整数a,b,c。

输出格式:

每组输出数据占一行,如果a,b,c能构成三角形,则输出Yes,否则输出No。

输入样例:

3 4 7

输出样例:

No
#include <stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a+b>c&&a+c>b&&b+c>a)
	{
		printf("Yes");
	}
	else
	printf("No");
}

7-13 选择-三角形分类

输入三角形三边长,判断三角形的种类:等边三角形、等腰三角形或一般三角形。

输入格式:

输入三个整数,表示三角形三边长,范围在 1 到 100 之间。保证输入的三个整数能构成三角形。

输出格式:

按要求输出三角形的类别:

​ 1. 如果是等边三角形,输出 “bian”

​ 2. 如果不是等边三角形,但是等腰三角形,输出 “yao”

​ 3. 否则,输出 “triangle”

输入样例1:

2 2 2

输出样例1:

bian

输入样例2:

3 4 5

输出样例2:

triangle
#include <stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a==b&&b==c)
	{
		printf("bian");
	}
	else if((a==b&&a!=c)||(a==c&&a!=b)||(b==c&&b!=a))
	{
		printf("yao");
	}
	else
	printf("triangle");
}

7-14 选择-五分制转百分制

学生百分制成绩grade分类:

  • 当成绩grade大于等于85分为‘A’等;
  • 当成绩grade大于等于70分且小于85分为‘B’等;
  • 当成绩grade大于等于60分且小于70分为‘C’等;
  • 当成绩grade小于60分为‘D’等。

输入格式:

每组输入数据占一行,包括一个成绩等级。

输出格式:

每组输出数据占一行,根据成绩等级输出百分制分数段,输出不包括引号。

  • 当成绩为‘A’,输出“85~100”
  • 当成绩为‘B’,输出“70~84”
  • 当成绩为‘C’,输出“60~69”
  • 当成绩为‘D’,输出“<60”
  • 其他情况,输出“Error”

输入样例:

A

输出样例:

85~100
#include <stdio.h>
int main()
{
	char a;
	scanf("%c",&a);
	switch(a)
	{
		case 'A':
			printf("85~100");
			break;
		case 'B':
			printf("70~84");
			break;		
		case 'C':
			printf("60~69");
			break;
		case 'D':
			printf("<60");
			break;
		default:
			printf("Error");
			break;
	}
}

7-15 选择-大小写转换

给定一个字母,如果它是小写,请将其转换成大写字母并输出;如果它是大写字母,请将其转换成小写字母并输出。

输入格式:

输入为一行,仅包含一个英文字母。

输出格式:

输出仅为一行,包含一个经过大小写转换的英文字母。

输入样例:

a

输出样例:

A
#include <stdio.h>
int main()
{
	char a;
	scanf("%c",&a);
  if(a>='a'&&a<='z')
    printf("%c",a-32);
  else
    printf("%c",a+32);
}

7-16 选择-体积最大

小明做了一件好事,妈妈准备奖励他,于是让他在三个礼物中挑选一个。小明当然想选最好的,可是他不知道到底哪个最好。他就想应该是越大的越好,于是他就挑选了三个礼物中体积最大的那个。请你编写一段程序帮小明从三个礼物中挑选出体积最大的一个。

输入格式:

输入仅一行包含三个整数a,b,c,用空格隔开。

输出格式:

输出仅一行,是a,b,c中的最大值。

输入样例:

18 98 100

输出样例:

100
#include <stdio.h>
int main()
{
	int x,y,z;
	scanf("%d%d%d",&x,&y,&z);
	printf("%d",x>(y>z?y:z)?x:(y>z?y:z));
	}

7-17 选择-N以内所有正整数和

给你一个整数,请你输出由1加到该数(包括该数)的和。

输入格式:2

输入仅一行,包含一个整数n。

输出格式:

输出为一个整数,表示1加到n的和值。

输入样例:

10

输出样例:

55
#include <stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",(1+n)*n/2);
	}

7-18 选择-计算器

根据输入的数据按要求进行计算并输出计算所得的数值(switch语句实现)。

输入格式:

输入有三个整数a,x,y。

输出格式:

请输入a值,输出x与y的运算结果

  • 当a==1,计算x+y;
  • 当a==2,计算x-y;
  • 当a==3,计算x*y;
  • 当a==4,计算x÷y;(保留1位小数)
  • 当a==5,计算x xor y;(xor:异或)
  • 当a非上面的数值时输出:“orzzgg”(不带引号的字符串)

输入样例:

5 6 10

输出样例:

12
#include <stdio.h>

int main() {
    int a, x, y;
    scanf("%d %d %d", &a, &x, &y);

    switch (a) {
        case 1:
            printf("%d", x + y);
            break;
        case 2:
            printf("%d", x - y);
            break;
        case 3:
            printf("%d", x * y);
            break;
        case 4:
            printf("%.1f", (float)x / y);
            break;
        case 5:
            printf("%d", x ^ y);
            break;
        default:
            printf("orzzgg");
            break;
    }
}

7-19 选择-简易计算机

分数 100

作者 Fzu_C

单位 福州大学

​ 计算机指令就是指挥机器工作的指示和命令,通常一条指令包括两个部分:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
现要求编程模拟一个简易计算机的计算功能。要求给出一条指令,输出相应的运行结果。为方便起见,给定的指令有一个操作码(用十进制数表示),和 3 个操作数(即通过寻址得到的操作数)。现规定这台简易计算机的操作码如下表所示:

操作符操作码操作数1操作数2操作数3等价表达式
+0abca+b
-1abca-b
*2abca*b
/3abca/b
%4abca%b
?:5abca?b:c
>6abca>b
<7abca<b
!=8abca!=b
==9abca==b

例如指令“1 12 9 99”,其中“1”表示“-”。由于减法只需两个操作符,所以我们只需要使用前两个操作数12 和 9,即表达式为“12-9”。执行该指令的结果是“3”。

输入格式:

输入为标准输入,输入共一行,仅四个整数,即操作码X(0<=x<=9),操作数a,b,c(0<=|a|,|b|,|c|<= 1000)。

输出格式:

输出仅一行,为该指令的运行结果,对于逻辑运算符的结果,如果为真输出“1”,否则输出“0”。

输入样例1:

0 9 -1 9

输出样例1:

8

输入样例2:

8 2 2 9

输出样例2:

0
#include <stdio.h>
int main()
{
	int x,a,b,c;
	scanf("%d%d%d%d",&x,&a,&b,&c);
	switch(x)
	{
		case 0:
			printf("%d",a+b);
			break;
		case 1:
			printf("%d",a-b);
			break;
		case 2:
			printf("%d",a*b);
			break;
		case 3:
		    printf("%d",a/b);
			break;		
		case 4:
			printf("%d",a%b);
			break;
		case 5:
			printf("%d",a?b:c);
			break;
		case 6:
			printf("%d",a>b);
			break;		
		case 7:
			printf("%d",a<b);
			break;
		case 8:			
			printf("%d",a!=b);
			break;
		case 9:
			printf("%d",a==b);
			break;
	}
}

7-20 选择-简单的运算

洛洛现在遇到了个很简单的算术题,给定一个实数n,求它的向上取整以及向下取整,当然如果这个数是整数,那么两个运算的结果是一样的。洛洛很懒不想写代码,所以就来找你帮忙了。

输入格式:

输入一个实数n(n<1000000)。

输出格式:

输出对n的向上取整值、向下取整值和n值(保留5位小数)。

输入样例:

3.5

输出样例:

4 3 3.50000
#include <stdio.h>
#include <math.h>
int main()
{
	double x;
	scanf("%lf",&x);
	printf("%d %d %.5f",(int)ceil(x),(int)floor(x),x);
}

7-21 选择-水仙花数

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,它是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。现在要求你判断一个数是不是水仙花数。

输入格式:

输入包含一个整数n(99<n<1000)。

输出格式:

如果n是水仙花数输出yes,否则输出no。

输入样例:

555

输出样例:

no
#include <stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int a=n/100;
	int b=n/10%10;
	int c=n%10;
	if(a*a*a+b*b*b+c*c*c==n)
	{
		printf("yes");
	}
	else
	printf("no");
}

7-22 选择-三角形面积

根据输入的三角形的三条边a、b、c,计算并输出面积和周长。

输入格式:

输入为3个正整数,分别代表三角形的3条边a、b、c。

输出格式:

若输入的边能构成一个三角形,则在一行内输出三角形的面积和周长,保留两位小数。否则,输出 no triangle。

输入样例:

5 5 3

输出样例:

7.15 13.00
#include <stdio.h>
#include <math.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a+b>c&&a+c>b&&b+c>a)
	{
		double p=(a+b+c)/2.0;
		double s=sqrt(p*(p-a)*(p-b)*(p-c));
		double t=a+b+c;
		printf("%.2f %.2f",s,t);
	}
	else
	printf("no triangle");
}

7-23 选择-完全平方数

输入一个正整数N,判断它是否为完全平方数。

输入格式:

一个正整数N(N<=1,000,000,000)

输出格式:

若是完全平方数输出“Yes”,否则输出“No”。

输入样例:

4

输出样例:

Yes
#include <stdio.h>
#include <math.h>
int main()
{
	int n;
	scanf("%d",&n);
    int a=(int)sqrt(n);
    if(a*a==n)
    {
		printf("Yes");
	}
	else
	printf("No");
}

7-24 选择-矩形与点的位置

给定一个矩形A的左上、右下顶点坐标,以及另一个点B的坐标,判断点B是否在矩形A内(恰好在某条边上也算在矩形内)。

输入格式:

输入三个坐标(xL,yL),(xR,yR),(x,y) 分别表示矩形的左上、右下顶点坐标、点B坐标。(坐标均为绝对值<=1000000的整数,保证矩形合法,即xL<xR, yL>yR)。

输出格式:

若点B在矩形A内,输出“Yes”,否则输出“No”(输出不带引号)。

输入样例1:

0 10 10 0 10 10

输出样例1:

Yes

输入样例2:

0 10 10 0 13 3

输出样例2:

No
#include <stdio.h>
#include <math.h>
int main()
{
	int zs1,zs2,yx1,yx2,b1,b2;
	scanf("%d%d%d%d%d%d",&zs1,&zs2,&yx1,&yx2,&b1,&b2);
	int max=abs(zs1)>abs(yx1)?abs(zs1):abs(yx1);
	int min=abs(zs2)>abs(yx2)?abs(zs2):abs(yx2);
	if(abs(b1)<=max&&abs(b2)<=min)
	{
		printf("Yes");
	}
	else 
	printf("No");
}

7-25 选择-数的判别

从键盘输入一个正整数n,先判断它是奇数还是偶数。当它是奇数的时候,进一步判断它是否能被3整除。

输入格式:

输入一个正整数n。

输出格式:

输出相应的判断结果。

  • n是偶数,输出“n is an even number”
  • n是奇数且能被3整除,输出“n is an odd number,it can be divided by 3”
  • n是奇数且不能被3整除,输出“n is an odd number,it can’t be divided by 3”

输出不包含引号。

输入样例:

17

输出样例:

17 is an odd number,it can't be divided by 3
#include <stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	if(n%2!=0)
	{
		if(n%3==0)
		printf("%d is an odd number,it can be divided by 3",n);
		else
		printf("%d is an odd number,it can't be divided by 3",n);
	}
	else
	printf("%d is an even number",n);
}

7-26 选择-数字字符的判别

判断输入字符是否为数字字符,是数字字符,则输出该字符;否则输出“input error”

输入格式:

输入一个字符。

输出格式:

输出相应信息。

输入样例:

a

输出样例:

input error
#include <stdio.h>
int main()
{
	char a;
	scanf("%c",&a);
	if(a>='0'&&a<='9')
	{
		printf("%c",a);
	}
	else
	printf("input error");
}

7-27 选择-销售菜单

假设自动售货机出售四种商品:[1]薯片、[2]爆米花、[3]巧克力和[4]可乐,其单价分别为8元、4.5元、12.8元和3元。现从键盘输入商品编号,当输入为1~4时,输出对应商品的单价;当输入其他编号时,输出“Exit”。(用switch语句实现)

输入格式:

输入一个整数,表示商品编号。

输出格式:

输出所选商品的单价。如果商品编号不在[1,4]区间内,则输出“Exit”(输出不包含引号)

输入样例:

1

输出样例:

8

输入样例:

0

输出样例:

Exit
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
switch (n) {
	case 1:
		printf("8");
		break;
	case 2:
		printf("4.5");
		break;
	case 3:
		printf("12.8");
		break;
	case 4:
		printf("3");
		break;
	default:
		printf("Exit");
		break;
    }
}

7-28 选择-电话费

甲乙两家通讯公司,甲公司每月通话收费标准如下:

甲:

月租费通话费
25元0.1 元/分钟

乙:

0 < t (分)< 100t(分) >= 100
20 元/月0.3 元/分

输入格式:

输入每个月通话时长 t (0 < t < 10^10 ) ,t为整数。

输出格式:

输出选择哪家公司更实惠 ,甲公司更实惠输出 1 ,乙公司输出2 (两公司价格相等优先选择甲公司)。

输入样例1:

50

输出样例1:

2

输入样例2:

300

输出样例2:

1
#include <stdio.h>
int main()
{
	int t;
	scanf("%d",&t);
	double s1,s2;
	s1=25+0.1*t;
	if(t<100)
	s2=20;
	else
	s2=0.3*t;
	if(s1>s2)
	printf("2");
	else
	printf("1");
}

7-29 选择-税收计算1

若规定个人稿费纳税规则为:不超过800元不纳税;超过800不超过4000元的按超过800元部分的15%纳税;超过4000元的按全部稿酬的10%纳税。

输入格式:

输入某人获得的稿费 x(0 < x <10^9),x为整数。

输出格式:

输出应付的税费y (保留一位小数)。

输入样例1:

400

输出样例1:

0.0

输入样例2:

1000

输出样例2:

30.0
#include <stdio.h>
int main()
{
   int x;
   scanf("%d",&x);
   double y;
   if(x<=800)
     y=0;
   else if(x<=4000)
     y=(x-800)*0.15;
   else 
     y=x*0.1;
     printf("%.1f",y);
}

7-30 选择-自然数

判断给定的数a是否为自然数

输入格式:

输入一个浮点数a,a在int的范围内。

输出格式:

若为自然数则输出“Yes”,反之输出“No”。(输出不包括引号)

输入样例:

95.27

输出样例:

No
#include <stdio.h>
int main() {
    float a;
    scanf("%f", &a);
    if (a >= 0 && (int)a == a) {
        printf("Yes");
    } else {
        printf("No");
    }
}

7-28 选择-电话费

甲乙两家通讯公司,甲公司每月通话收费标准如下:

甲:

月租费通话费
25元0.1 元/分钟

乙:

0 < t (分)< 100t(分) >= 100
20 元/月0.3 元/分

输入格式:

输入每个月通话时长 t (0 < t < 10^10 ) ,t为整数。

输出格式:

输出选择哪家公司更实惠 ,甲公司更实惠输出 1 ,乙公司输出2 (两公司价格相等优先选择甲公司)。

输入样例1:

50

输出样例1:

2

输入样例2:

300

输出样例2:

1
#include <stdio.h>
int main()
{
	int t;
	scanf("%d",&t);
	double s1,s2;
	s1=25+0.1*t;
	if(t<100)
	s2=20;
	else
	s2=0.3*t;
	if(s1>s2)
	printf("2");
	else
	printf("1");
}

7-29 选择-税收计算1

若规定个人稿费纳税规则为:不超过800元不纳税;超过800不超过4000元的按超过800元部分的15%纳税;超过4000元的按全部稿酬的10%纳税。

输入格式:

输入某人获得的稿费 x(0 < x <10^9),x为整数。

输出格式:

输出应付的税费y (保留一位小数)。

输入样例1:

400

输出样例1:

0.0

输入样例2:

1000

输出样例2:

30.0
#include <stdio.h>
int main()
{
   int x;
   scanf("%d",&x);
   double y;
   if(x<=800)
      y=0;
   else if(x<=4000)
     y=(x-800)*0.15;
   else 
     y=x*0.1;
     printf("%.1f",y);
}

7-30 选择-自然数

判断给定的数a是否为自然数

输入格式:

输入一个浮点数a,a在int的范围内。

输出格式:

若为自然数则输出“Yes”,反之输出“No”。(输出不包括引号)

输入样例:

95.27

输出样例:

No
#include <stdio.h>
int main() {
    float a;
    scanf("%f", &a);
    if (a >= 0 && (int)a == a) {
        printf("Yes");
    } else {
        printf("No");
    }
}

PTA理论考C语言复习:从docx到可检索题库与代码验证 在C语言学习中,PTA理论考常涉及字符串逆序、指针语义、文件读写等基础概念,这些细节容易混淆。通过解析docx文档,将题目结构化存储为JSON或SQLite数据库,可实现按知识点检索和错题管理。结合C语言代码验证题目结论,如用fgets测试文件读写、用函数指针区分指针函数,能加深理解并提升复习效率。这种方法适用于计算机二级、天梯赛备考及课程评价,将静态资料转化为可复现的复习系统。 阅读详情

相关推荐

C语言选择结构复习题及答案

C语言选择结构复习题及答案 针对高职高专考试题目

C语言基础|选择结构例题

简单的选择排序实验题记录

hfsif66的博客 3768

IntelliJ IDEA 中git使用说明书

IntelliJ IDEA 中git使用说明书

junyang2012的博客 5388

选择结构练习题(if语句、if else语句、switch语句)

二、if else语句练习 1.请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。(Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday) 思路:1.当输入MWF时,三个首字母无重复,直接输出星期几2.当输入ST时,继续读入下一个字母,根据下一个字母输出星期几 注意:当需要使用多个输入函数接收字符时需要注意的是:多使用一次getchar()接收回车换行符 2.输入图书的定价和数量,计算购书金额并输出。其中

老张的博客 3873

高通平台Android稳定性调试笔记:手把手教你用T32、Crash Utility分析Kernel Panic与RAM Dump

本文详细介绍了高通平台Android内核崩溃的分析方法,包括使用T32 Simulator和Crash Utility工具链解析Kernel Panic与RAM Dump。从环境配置、dump文件预处理到高级调试技巧,手把手教你如何定位和解决Android系统崩溃问题,特别适用于MSM/SA8155平台的开发者。

weixin_42543046的博客 525

Circos图审美拯救计划:用TBtools复刻Nature级共线性分析图谱

本文针对Circos图在共线性分析中的审美提升问题,提供了一套基于TBtools的完整优化方案。通过构建和谐的色彩体系、精细控制信息层布局以及模仿顶刊构图逻辑,详细讲解了如何从配色、透明度、标签显示到高级参数设置,将默认图表升级为具有高级学术美感的Nature级图谱,助力研究者提升论文图表质量。

cherry的博客 910

c语言 选择结构例题

前面我有一篇讲选择结构的文章,同学们可以先看一下,温习温习。

qq_63535810的博客 7208

Ovito隐藏技巧:用Expression Selection快速提取分子链(附模糊背景配置参数)

本文详细介绍了Ovito软件中Expression Selection功能的隐藏技巧,用于从复杂的分子动力学模拟数据中快速、精准地提取目标分子链。通过结合Expand Selection和Invert Selection等修饰器,形成一套高效的工作流,并深入解析了实现SCI论文级渲染效果的景深模糊参数配置,帮助研究者大幅提升数据处理与图片生成效率。

pz890123的博客 867

C语言--选择结构、循环结构练习题

编写代码练习选择结构和循环结构语句

KBDYD1010的博客 3265

告别手动拍照!用Python+JAKA机械臂+D455相机实现全自动手眼标定(附完整代码)

本文详细介绍了如何利用Python脚本实现JAKA机械臂与Intel RealSense D455相机的全自动手眼标定流程,提供从硬件配置到代码实现的完整解决方案。通过自动化标定,显著提升工业自动化中的精度和效率,适用于机器人视觉领域的二次开发需求。

weixin_30555125的博客 521

MoveIt2 Servo实战:解锁UR机械臂在ROS2中的实时遥操作与动态响应

本文深入探讨了MoveIt2 Servo在UR机械臂实时遥操作中的应用,展示了如何通过ROS2实现毫秒级动态响应。文章详细解析了Servo的核心价值、环境配置、控制器适配及高级调优技巧,特别适用于需要高精度控制的工业场景,如VR手术训练和汽车装配线。

weixin_29044157的博客 246

PTA 浙大第四版 C语言练习

PTA 浙大版《C语言程序设计实验与习题指导(第4版)》

qq_44016148的博客 2836

RT-DETR升级:TGRS2026 CKConv结合RepC3 | 方向特征与跨阶段融合协同,小目标漏检率大幅下降

小目标鲁棒性提升:CKConv方向选择性抑制背景噪声,RepC3跨阶段传递保留深层微弱热信号,显著改善低对比度、低信噪比场景下的检测精度。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 151

浙江大学PTA程序设计C语言基础编程练习题6-10

介绍了浙江大学PTA程序设计C语言基础编程练习题1-5解题方法

意疏的博客 5873

《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记

软件工程任务:即时缺陷预测(涉及SE+AI知识)

weixin_43646592的博客 700

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C语言新手必看:用switch-case和if-else搞定PTA‘新年倒计时’(附闰年判断详解)

本文详细讲解了如何用C语言的选择结构(switch-case和if-else)实现PTA平台上的‘新年倒计时’题目,重点解析了闰年判断和月份天数差异的处理技巧。通过对比两种结构的优劣,帮助新手掌握高效、清晰的编程逻辑,提升解决实际问题的能力。

weixin_31364787的博客 299

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

pta冒泡排序c语言_第五周作业

这个作业属于哪个课程C语言程序设计2这个作业要求在哪里https://edu.cnblogs.com/campus/zswxy/MS/homework/2829我在这个课程的目标是能正确使用字符串进行程序设计,了解什么是指针这个作业在哪个具体方面帮助我实现目标看书上的例题和同学的讲解参考文献C语言程序设计第七、八章题目一 7-1 英文单词排序本题要求编写程序,输入若干英文单词,对这些单词按长度从小...

weixin_28487725的博客 736

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

(PTA)输出华氏-摄氏温度转换表

空格引发的惨案: 题目链接在此:https://pintia.cn/problem-sets/12/problems/245 缘起: 到了大四课变少了,找点事儿做吧~今天下定决心开始备考PTA考试,还有90天,准备这几天先好好复习一下C语言,这玩意儿已经是两年前学得了,刚开始让我照着敲一遍都满是错误。噗嗤,自己真的太菜了。 这道题其实简单的,我这样智商不在线的按着逻辑也一步步写好了,然而细节部分凉凉~,之前听课老师说PTA如果怕格式出错,可以直接复制题目中的格式来,然而错误就其中,下面是。。。部分正确代.

weixin_44466141的博客 1900

C语言刷题路线指南

学习C语言首先是学习语法,语法了解后,就能写代码,对语法的巩固就是写代码。那学习C语言期间如何刷题呢?很多同学在学习C语言期间,找的题目不合理,直接从入门到放弃,更有很多同学其实找不到合适的题目,那结合网络上的一些刷题网站,给大家整理了一份由到,再到的刷题路线。

实事求是,追求技术,精益求精~将至而立之年,不忘年少初心! 1307

PTA题解 --- 阶梯电价(C语言)

要解决这个问题,我们可以编写一个C语言程序,首先判断输入的月用电量是否有效(即大于等于0)。如果有效,我们根据阶梯电价计算电费:对于50千瓦时及以下的部分,按0.53元/千瓦时计费;超过50千瓦时的部分,每千瓦时额外增加0.05元计费。然后输出最终的电费,保留两位小数。这段代码首先读取月用电量,然后根据用电量计算电费并输出。如果输入的用电量小于0,则输出"Invalid Value!

退役复学在校大学生,目光所至,皆为华夏 2182

C语言入门练习路线与避坑指南:从语法到链表项目

C语言是计算机编程的基础语言,其语法结构看似简单,但内存模型与指针机制才是通往工程实践的关键门槛。理解变量、数组、指针和结构体的底层原理,不仅能提升代码质量,更能培养严谨的编程思维。在计算机二级考试、PTA程序设计平台刷题以及嵌入式单片机开发等典型场景中,扎实的C语言能力都是绕不开的硬技能。从输入输出、字符串处理到链表操作,再到内存管理与文件读写,每一个练习环节都隐藏着易踩的坑。文中结合大量练习题拆解,梳理出一条从语法小题到综合项目的进阶路线,帮助学习者避开常见误区,把“看得懂”变成“写得对”。同时给出了字

cqwmy840702的博客 394

pta19c语言第一次作业,C 语言学习 第一次作业总结(示例代码)

第一次的作业是冯老师布置的练习题,需要在pta平台上完成。我这边看不到结果,但是透过冯老师给出的截图,同学们都还是认真的去做的。同时,我这边也布置了一个持续 3 周的作业:熟悉 git 的使用。因为后期的小项目,肯定是要配合 coding.net 平台完成的,我不希望我的学生到时候一边焦头烂额的写代码,一边还要去熟悉软件的使用。第一次作业,主要有以下 3 项:开通博客写一篇自我介绍写本次作业的总结...

weixin_36000045的博客 230

PTA 乙级 1006 (C)

PTA 乙级 1006 总结: 关于输出格式,如果题目中输出字符串为单个结果,可以考虑运算过程中直接输出,而不是收集在字符集中后再输出 #include<stdio.h> int main(){ int inpunum; scanf("%d",&inpunum); int flag = 0; for(int i = 0;i<inpunum/100;i++) printf("B"); for(int i = 0;...

MayBe_Foolish的博客 394

关于采购中的PTA——概念如何理解及其计算公式

PTA(PTA的全称是Point of Total Assumption,即总体假设点,也可能被不准确地译为“估算的合同价”)是一个固定价加激励费用合同下算出的临界值,算的是实际成本,即实际成本达到多少(PTA)时,多出的成本完全由卖方承担。   PTA的计算公式:   PTA(估算的合同总价) = (最高限价 –预期价格)/买方的分担比例 + 预期成本因为PT

域名空间商 7198

【PTA-C语言】编程练习4 - 数组Ⅱ

PTA-C语言 编程练习4 - 数组 —— 8~15 题

谛凌的博客 2150

PTA组个最小数:贪心策略与C/Python实现详解

在算法入门与编程竞赛中,贪心算法是一类高频考点,其核心在于每一步都做出当前最优选择,从而得到全局最优解。当面临固定位数下拼接最小整数的问题时,数字的高位越小则整体越小,因此需要优先确定首位非零最小数字,再按升序依次输出剩余数字。借助计数数组统计0到9的卡片张数,可以避免展开排序带来的额外开销,同时正确处理全0、仅有一个非零数字等边界情况。这类思路不仅用于PTA实验题,也常见于字典序排序、日志文件合并等工程场景。本文以PTA实验7-1-10组个最小数为例,拆解计数贪心策略的证明过程与C/Python实现细节,

weixin_32520095的博客 294
上一篇: 【深入探索AI原生应用】文心大模型4.0开启人工智能之门
下一篇: 【C | PTA】选择结构进阶练习
秋说
秋说 优质创作者: 编程框架、信息安全技术领域 优质创作者: 编程框架、信息安全技术领域
博客等级 码龄4年 3万+粉丝 1906原创
评论 36
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值