C语言小习题

关键字等作业讲解2

第1题

C语言中下面那个数组的创建错误的:()
题目内容:
A.int arr[10] = {0}
B.int n=10;int arr[n]={0}
c.int arr[] = {1,2,3,4,5,6,7,8,9,0}
D.char ch[10]="hello bit"
答案:B
int main()
{
    int n = 10;
    int arr[n] = {0};//不能包含变量
    return 0;
}

C99 标准中引入一个概念:变长数组。

支持数组创建的时候,用变量指定大小,但是这个数组不能初始化

vs code和VS2019均不支持C99中的变长数组

第2题

#include<stdio.h>
#include<string.h>
int main()
{
    printf("%d\n",strlen("c:\test\121"));
    return 0;
}
答案:7

strlen:计算字符串sting的长度,并返回字符串string的长度,trlen函数遇到\0就会停止下来

但是如下:

#include<stdio.h>
#include<string.h>
int main()
{
    printf("%d\n",strlen("c:\test\121\n"));
    return 0;
}
答案:8

它字符读取时按c : \t e s t \121这7位来划分的,所以输出长度就是7,上述式子是因为加上了\n,所以变成了8位

第3题(编程题)

题目名称:
求两个数的较大值
题目内容:
写一个函数求两个数的较大值
如
输入:10 20
输出较大值:20
#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    if(a>=b)
        cout<<a;
    else cout<<b;
    return 0;
}

下面做法是给函数的

#include<stdio.h>
int Max(int x,int y)
{
    if(x>y)
        return x;
     else return y;
}
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int m = Max(a,b);
    printf("%d\n",m);
    return 0;
}

第4题

关于C语言关键字说法正确的是:()
题目内容:
A.关键字可以自己创建
B.关键字不能自己创建
C.关键字可以做变量名
D.typede不是关键字
答案:B

第5题

而那个不是关键字:()
题目内容:
A.int
B.struct
C.define
D.continue
答案:C

define是预处理指令

#define和#include均是预处理指令

第6题

题目名称
关于指针说法正的是:()
题目内容:
A.sizeof(char*)大小一定是1
B.指针是个变量,用来存放地址
C.指针变量的大小都是4个字节
D.指针不是变量
答案:B

char*指针类型大小是4个或者8个字节

第7题

关于static说法不正确的是:()
题目内容:
A.static可以修饰附变量
B.static可以修全局变量
C.static修饰的变量不能改变
D.static可以修饰函数
答案:C

1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

第8题

#include <stdio.h>
int sum(int a)
{
    int c = 0;
    static int b = 3;
    C += 1;
    b += 2;
    return (a+b+c);
}
int main()
{
    int i;
    int a = 2;
    for(i = 0;i < 5;i++)
    {
        printf ("%d,", sum (a));
    }
}
答案:8,10,12,14,16,

切记int sum函数里输入的a是不变的,每次输出都是在原有的1+5+2的基础上继续加2,同时最后一位16后面的,不要忘记加上去。

第9题

用在switch语言中的关键字不包含哪个?()
抛目内容
A.continue
B.break
C.default
D.case
答案:A

continue是分支语言

第10题

输出小飞机:
#include<stdio.h>
int main()
{
    printf("     **\n");
    printf("     **\n");
    printf("************\n");
    printf("************\n");
    printf("    *  *\n");
    printf("    *  *\n");
    return 0;
}

第19题

判断M整除5是否成立

#include<stdio.h>
int main()
{
    int M;
    scanf("%d",&M);
    if(M%5==0)
        printf("Yes");
    else printf("No");
    return 0;
}

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Williamtym

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值