关键字等作业讲解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;
}