C语言第14篇

1.以下定义语句中,错误的是________.

A) int a[]={1,2};              B) char a={"test"};

C) char s[10]={"test"};         D) int a[]={'a','b','c'};

2.以下定义语句中,错误的是________.

A) int a[]={1,2};              B) char a[]={"test"};

C) char s[10]={"test"};         D) int n=5,a[n];

提示:有错误,但是可以编译成功,但是我们不建议这样写

3.下列程序的输出结果是________.

#include <stdio.h>

void main()

{char b[]="ABCDEFG";

 char p=0;

 while(p<7)

   putchar(b[p++]);

 putchar('\n'); 

}

A) GFEDCBA          B) BCDEFG  

C) ABCDEFG         D) GFEDCB

提示:我们在输入输出字符时可以使用getchar或者putchar

4.有如下说明:  int a[10]={0,1,2,3,4,5,6,7,8,9};

则数值不为9的表达式是____ ____.

A) a[10-1]    B) a[8]     C) a[9]-0     D) a[9]-a[0]

同类型附加题4:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数组为9的表达式是()

A.*P+9 B.*(P+8) C.*P+=9 D.P+8

提示:可以考虑输出的是值还是地址

5,.编程题

请仔细读完题目

要求:不使用数组,使用判断来选择输出的值,如果使用三目运算符最好

//三目运算符
<表达式1> ? <表达式2> : <表达式3>;

返回值:先求表达式 1 的值,如果为真,则执行表达式 2,并返回表达式 2 的结果;如果表达式 1 的值为假,则执行表达式 3,并返回表达式 3 的结果。

提示:最大数:(a>b?a:b)>c?(a>b?a:b):c)

中间数:a>b?(a<c?a:(b>c?b:c)): (b<c?b:(a>c?a:c))

逻辑为先从ab里选出大的,

a大就进行(a<c?a:(b>c?b:c)),比c小,刚好a就是中间数,比c大就是最大的,bc找出最大的就是中间数

B大就进行(b<c?b:(a>c?a:c))

(b>c?b:c)是找出bc中大的值

最大数和中间数以给出,如果用三目运算符的方法

请写出最小值并使程序运行,(部分语句我以改动,语句是对的,但是括号有的中文,有的英文,直接复制粘贴要修改)

三目运算符嵌套就可以分别找出三个数,

  1. B
  2. C

    解析:定义数组的长度要用常量1,2,3等等,或者2宏定义#define x 10这样

    不能使用变量,因为修改变量的值,数组的内存就会有问题,当然我们平时代码这么写是没问题的,比如说冒泡排序,我们只要不改变变量的值,代码就没问题,但是规定还是要用常量

  3. C
  4. B 附加题B
  5. 编程题
    #include<stdio.h>
    int main()
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        printf("%d %d %d\n",(a<b?a:b)<c?(a<b?a:b):c,
               a>b?(a<c?a:(b>c?b:c)):(b<c?b:(a>c?a:c)),
               (a>b?a:b)>c?(a>b?a:b):c);
        return 0;
    }
    

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值