PTA-分支结构

作者 颜晖

单位 浙大城市学院

执行以下程序段后,x的值为0,y的值为1。(T)

int x, y;
if (x = 0) y = 0;
else y = 1;

作者 颜晖

单位 浙大城市学院

为了检查以下if-else语句的两个分支是否正确,至少需要设计2组测试用例,即x的取值至少有两组(不等于0的数和0)。(T)

if (x != 0){
   y = 1 / x;
} else{ 
   y = 0;
} 

作者 颜晖

单位 浙大城市学院

为了检查以下省略else的if语句的分支是否正确,至少需要设计3组测试用例,即grade的取值至少有三组(小于60、等于60、大于60)。(T)

if(grade < 60){    
    printf("Fail\n"); 
}

作者 崔孝凤

单位 山东理工大学

if(a>b) {t=a;a=b;b=t;}是3条c语句。(F)

作者 孙霞

单位 西北大学

判断字符串a和b是否相等的表达式为if (a==b)。(F)

作者 zhanghd

单位 福州大学

else 总是与它上面最近的且尚未配对的 if 配对。(T)

作者 王从银

单位 吉首大学

在switch语句中,每一个的case常量表达式的值可以相同。(F)

作者 王从银

单位 吉首大学

case语句后如没有break,顺序向下执行。(T)

作者 司广涛

单位 曲阜师范大学

break语句只能用于循环语句中。(F)

作者 丁珂

单位 吉首大学

在switch语句中,可以根据需要使用或不使用break语句。(T)

作者 王秀

单位 福州大学

如果要求在if后一对括号中的表达式在表示a 不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为(D )。

A.a<>0

B.!a

C.a=0

D.a

作者 颜晖

单位 浙江大学

在嵌套使用if语句时,C语言规定else总是(C)。

A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对

D.和之前的第一个if配对

作者 吴永芬

单位 中国人民解放军陆军工程大学

能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是(C)。

A.(x>= -58) && (x<= -40) && (x>=40) &&(x<=58)

B.(x>= -58) || (x<= -40) || (x>=40) || (x<=58)

C.(x>= -58) && (x<= -40) || (x>=40) && (x<=58)

D.(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)

作者 lwn

单位 asmn的测试单位

已知int a=7,b=9,c=6;则c的结果是( D).

{
      if(a<b)
        if(b<0)c=0;
        else c+=1;
      printf("%d\n",c);
}

A.9

B.6

C.0

D.7

作者 赖晓燕

单位 福建农林大学金山学院

若执下面程序时从键盘上输入5,则输出是(B)

main() { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--); }

A.7

B.6

C.5

D.4

作者 颜晖

单位 浙大城市学院

下列叙述中正确的是(D)。

A.break语句只能用于switch语句

B.在switch语句中必须使用default

C.break语句必须与switch语句中的case配对使用

D.在switch语句中,不一定使用break语句

作者 颜晖

单位 浙大城市学院

下列程序段的输出结果是 (A)。

int main(void)
{     
      int x = 1, a = 0, b = 0;
      
      switch(x)        
      {
            case 0:   b++;
            case 1:   a++;
            case 2:   a++; b++;    
      }
      printf("a=%d,b=%d\n",a,b);        

      return 0;
}

A.a=2,b=1

B.a=1,b=1

C.a=1,b=0

D.a=2,b=2

作者 李廷元

单位 中国民用航空飞行学院

若a、b、c1、c2、x、y均是整型变量,以下正确的switch语句是(D)

A.

switch(a+b); { case 1: y=a+b; break; case 0:y=a-b; break;}

B.

switch(a*a+b*b) { case 3: case 1: y=a+b; break; case 3: y=b-a, break;}

C.

switch a { case c1: y=a-b; break; case c2: x=a*b; break; default: x=a+b; }

D.

switch(a-b) { default: y=a*b; break; case 3: case 4: x=a+b; break; case 10: case 11: y=a-b; break; }

作者 lwn

单位 asmn的测试单位

执行下面程序段后,s的值是(A).

int s=6;
switch(++s)
{ case 6:
  case 7:s+=2;
  case 8:
  case 9:s+=2;
}

A.11

B.10

C.8

D.9

作者 唐艳琴

单位 中国人民解放军陆军工程大学

switch 语句的case 后面___B___。

A.只能是常量

B.只能是常量表达式

C.可以是常量或变量

D.可以是任意表达式

6-1 求两个数的最大值

作者 李军

单位 陕西理工大学

编写函数求出两个数的最大值

函数接口定义:

int intMax(int x, int y);

x 和 y 都是传入的参数, 函数返回的是两者中较大的数。

裁判测试程序样例:

#include <stdio.h> /*你编写的函数将被嵌入在这里*/ int main() { int a, b; scanf("%d %d", &a, &b); printf("max = %d\n", intMax(a, b)); return 0; }

输入样例:

在这里给出一组输入。例如:

18 4

输出样例:

在这里给出相应的输出。例如:

max = 18

解答:

int intMax(int a,int b)
{
    return a>b?a:b;
}

6-2 判断闰年(填空)

作者 李祥

单位 湖北经济学院

下面的程序判断 y 年是否为闰年。

请在空白处填写适当内容完成判断。

#include <stdio.h> int main() { int y; scanf("%d", &y); if ( __________ ) { puts("Yes"); } else { puts("No"); } return 0; }

输入样例1
1995

输出样例1
No

输入样例2
1996

输出样例2
Yes

 解答:

y%4==0&&y%100!=0||y%400==0

6-3 判断个位为 7 的自然数(填空)

作者 李祥

单位 湖北经济学院

下面的程序判断自然数 n 的个位是否为7。

请在空白处填写适当内容完成判断。

#include <stdio.h> int main() { int n; scanf("%d", &n); if ( __________ ) { puts("Yes"); } else { puts("No"); } return 0; }

输入样例1
37

输出样例1
Yes

输入样例2
24

输出样例2
No

解答:

n%10==7 

6-4 符号函数 - C/C++ 函数与抽象

作者 海洋饼干叔叔

单位 重庆大学

请结合下述公式定义符号函数sign(x),使得下述程序能正确执行。

image.png

函数接口定义:

int sign(const float x);

裁判测试程序样例:

#include <stdio.h> //定义sign(x)函数 int main() { printf("sign(5.3)=%d\n",sign(5.3)); printf("sign(-1.2)=%d\n",sign(-1.2)); printf("sign(0)=%d",sign(0)); return 0; }

输入样例:

输出样例:

sign(5.3)=1
sign(-1.2)=-1
sign(0)=0

解答:

int sign(const float x)
{
    if(x>0)
        return 1;
    else if(x==0)
        return 0;
    else
        return -1;
}

6-5 成绩等级(if版)

作者 李祥

单位 湖北经济学院

请编写函数,根据学生的分数确定其等级。

分数等级
[90, 100]A
[80, 90)B
[70, 80)C
[60, 70)D
[0, 60)E
函数原型

char ToRank(double score);

说明:参数 score 为分数(0 ~ 100),函数值为等级(A ~ E)。

裁判程序

#include <stdio.h> char ToRank(double score); int main() { double s; char r; scanf("%lg", &s); r = ToRank(s); printf("%c\n", r); return 0; } /* 你提交的代码将被嵌在这里 */

输入格式

成绩

输出格式

等级

输入样例
87.5

输出样例
B

解答:

char ToRank(double score)
{
    char r;
    if(score>=90&&score<=100)
        r='A';
    else if(score>=80&&score<90)
        r='B';
    else if(score>=70&&score<80)
        r='C';
    else if(score>=60&&score<70)
        r='D';
    else  r='E';
    return r;
}

6-6 成绩等级(switch版)

作者 李祥

单位 湖北经济学院

请编写函数,根据学生的分数确定其等级。

分数等级
[90, 100]A
[80, 90)B
[70, 80)C
[60, 70)D
[0, 60)E
函数原型

char ToRank(double score);

说明:参数 score 为分数(0 ~ 100),函数值为等级(A ~ E)。

裁判程序

#include <stdio.h> char ToRank(double score); int main() { double s; char r; scanf("%lg", &s); r = ToRank(s); printf("%c\n", r); return 0; } /* 你提交的代码将被嵌在这里 */

输入格式

成绩

输出格式

等级

输入样例
87.5

输出样例
B

 解答:

char ToRank(double score)
{
    int a=(int)score/10;
    char r;
    switch(a)
    {
        case 10:
        case 9:r='A';break;
        case 8:r='B';break;
        case 7:r='C';break;
        case 6:r='D';break;
        default:r='E';break;
    }
    return r;
}

7-1 两个数的简单计算器

作者 沈睿

单位 浙江大学

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为+-*/%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR

输入样例1:

-7 / 2

输出样例1:

-3

输入样例2:

3 & 6

输出样例2:

ERROR

 解答:
#include <stdio.h>
int main()
{
    int a, b;
    char op;
    scanf("%d %c %d", &a, &op, &b);
    if (op == '+')
        printf("%d\n", a + b);
    else if (op == '-')
        printf("%d\n", a - b);
    else if (op =='*')
        printf("%d\n", a * b);
    else if (op == '/'){
        if(b!=0){
        printf("%d\n", a / b);}
    }
    else if (op == '%'){
        if(b!=0){
        printf("%d\n", a % b);}
    }
    else
        printf("ERROR\n");
    return 0;
}

7-2 查询水果价格

作者 C课程组

单位 浙江大学

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit

用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

输入格式:

输入在一行中给出用户连续输入的若干个编号。

输出格式:

首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

输入样例1:

3 -1 0 2

输出样例1:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00

输入样例2:

1 2 3 3 4 4 5 6 7 8

输出样例2:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20

解答:

#include <iostream>
using namespace std;
void menu()
{

      cout<<"[1] apple"<<endl;

      cout<<"[2] pear"<<endl;

      cout<<"[3] orange"<<endl;

      cout<<"[4] grape"<<endl;

      cout<<"[0] exit"<<endl;
}

int main()
{
    menu();
    int choice;
    for (int i = 1; i <= 5; i++)
    {
        cin >> choice;
        if (choice == 0)
            return 0;
        switch (choice)
        {
        case 1:cout << "price = 3.00" << endl;break;
        case 2:cout << "price = 2.50" << endl;break;
        case 3:cout << "price = 4.10" << endl;break;
        case 4:cout << "price = 10.20" << endl;break;
        default:cout << "price = 0.00" << endl;break;
        }
    }
    return 0;
}

 

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值